Branch: refs/heads/master
Author: Colomban Wendling <ban(a)herbesfolles.org>
Committer: Colomban Wendling <ban(a)herbesfolles.org>
Date: Sun, 08 Jul 2012 14:22:55
Commit: 90bcb9d11071df446c04f1699165a50d59c8ccb1
https://github.com/geany/geany-plugins/commit/90bcb9d11071df446c04f1699165a…
Log Message:
-----------
Merge branch 'fixes/geanypg'
Modified Paths:
--------------
geanypg/src/decrypt_cb.c
geanypg/src/encrypt_cb.c
geanypg/src/geanypg.c
geanypg/src/geanypg.h
geanypg/src/helper_functions.c
geanypg/src/key_selection_dialog.c
geanypg/src/pinentry.c
geanypg/src/sign_cb.c
geanypg/src/verify_aux.c
geanypg/src/verify_cb.c
Modified: geanypg/src/decrypt_cb.c
48 files changed, 25 insertions(+), 23 deletions(-)
===================================================================
@@ -1,26 +1,27 @@
-// decrypt_cb.c
-//
-// Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-// MA 02110-1301, USA.
+/* decrypt_cb.c
+ *
+ * Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
#include "geanypg.h"
-void geanypg_decrypt_verify(encrypt_data * ed)
+static void geanypg_decrypt_verify(encrypt_data * ed)
{
gpgme_data_t plain, cipher;
gpgme_error_t err;
@@ -37,9 +38,9 @@ void geanypg_decrypt_verify(encrypt_data * ed)
geanypg_load_buffer(&cipher);
err = gpgme_op_decrypt_verify(ed->ctx, cipher, plain);
- if (gpgme_err_code(err) == GPG_ERR_NO_DATA) // no encription, but maybe signatures
+ if (gpgme_err_code(err) == GPG_ERR_NO_DATA) /* no encription, but maybe signatures */
{
- // maybe reaload cipher
+ /* maybe reaload cipher */
gpgme_data_release(cipher);
geanypg_load_buffer(&cipher);
rewind(tempfile);
@@ -55,7 +56,7 @@ void geanypg_decrypt_verify(encrypt_data * ed)
}
fclose(tempfile);
- // release buffers
+ /* release buffers */
gpgme_data_release(cipher);
gpgme_data_release(plain);
}
@@ -63,8 +64,9 @@ void geanypg_decrypt_verify(encrypt_data * ed)
void geanypg_decrypt_cb(GtkMenuItem * menuitem, gpointer user_data)
{
encrypt_data ed;
+ gpgme_error_t err;
geanypg_init_ed(&ed);
- gpgme_error_t err = gpgme_new(&ed.ctx);
+ err = gpgme_new(&ed.ctx);
if (err && geanypg_show_err_msg(err))
return;
gpgme_set_protocol(ed.ctx, GPGME_PROTOCOL_OpenPGP);
Modified: geanypg/src/encrypt_cb.c
48 files changed, 25 insertions(+), 23 deletions(-)
===================================================================
@@ -1,27 +1,28 @@
-// encrypt_cb.c
-//
-// Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-// MA 02110-1301, USA.
+/* encrypt_cb.c
+ *
+ * Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
#include "geanypg.h"
-void geanypg_encrypt(encrypt_data * ed, gpgme_key_t * recp, int sign, int flags)
-{ // FACTORIZE
+static void geanypg_encrypt(encrypt_data * ed, gpgme_key_t * recp, int sign, int flags)
+{ /* FACTORIZE */
gpgme_data_t plain, cipher;
gpgme_error_t err;
FILE * tempfile;
@@ -36,7 +37,7 @@ void geanypg_encrypt(encrypt_data * ed, gpgme_key_t * recp, int sign, int flags)
geanypg_load_buffer(&plain);
- // do the actual encryption
+ /* do the actual encryption */
if (sign)
err = gpgme_op_encrypt_sign(ed->ctx, recp, flags, plain, cipher);
else
@@ -50,7 +51,7 @@ void geanypg_encrypt(encrypt_data * ed, gpgme_key_t * recp, int sign, int flags)
}
fclose(tempfile);
- // release buffers
+ /* release buffers */
gpgme_data_release(plain);
gpgme_data_release(cipher);
}
@@ -59,8 +60,9 @@ void geanypg_encrypt_cb(GtkMenuItem * menuitem, gpointer user_data)
{
int sign;
encrypt_data ed;
+ gpgme_error_t err;
geanypg_init_ed(&ed);
- gpgme_error_t err = gpgme_new(&ed.ctx);
+ err = gpgme_new(&ed.ctx);
if (err && geanypg_show_err_msg(err))
return;
gpgme_set_armor(ed.ctx, 1);
Modified: geanypg/src/geanypg.c
66 files changed, 37 insertions(+), 29 deletions(-)
===================================================================
@@ -1,21 +1,22 @@
-// geanypg.c
-//
-// Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-// MA 02110-1301, USA.
+/* geanypg.c
+ *
+ * Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
#include "geanypg.h"
@@ -41,12 +42,12 @@
static gpgme_error_t geanypg_init_gpgme(void)
{
- // Initialize the locale environment.
+ /* Initialize the locale environment. */
setlocale(LC_ALL, "");
fprintf(stderr, "GeanyPG: %s %s\n", _("Using libgpgme version:"),
gpgme_check_version("1.1.0"));
gpgme_set_locale(NULL, LC_CTYPE, setlocale(LC_CTYPE, NULL));
-#ifdef LC_MESSAGES // only necessary for portability to W32 systems
+#ifdef LC_MESSAGES /* only necessary for portability to W32 systems */
gpgme_set_locale(NULL, LC_MESSAGES, setlocale(LC_MESSAGES, NULL));
#endif
return gpgme_engine_check_version(GPGME_PROTOCOL_OpenPGP);
@@ -63,22 +64,29 @@ gpgme_error_t geanypg_show_err_msg(gpgme_error_t err)
void plugin_init(GeanyData *data)
{
+ GtkWidget * submenu;
+ GtkWidget * encrypt;
+ GtkWidget * sign;
+ GtkWidget * decrypt;
+ GtkWidget * verify;
+
gpgme_error_t err = geanypg_init_gpgme();
if (err)
{
geanypg_show_err_msg(err);
return;
}
- // Create a new menu item and show it
+ /* Create a new menu item and show it */
main_menu_item = gtk_menu_item_new_with_mnemonic("GeanyPG");
gtk_widget_show(main_menu_item);
+ ui_add_document_sensitive(main_menu_item);
- GtkWidget * submenu = gtk_menu_new();
+ submenu = gtk_menu_new();
gtk_widget_show(submenu);
- GtkWidget * encrypt = gtk_menu_item_new_with_mnemonic(_("Encrypt"));
- GtkWidget * sign = gtk_menu_item_new_with_mnemonic(_("Sign"));
- GtkWidget * decrypt = gtk_menu_item_new_with_mnemonic(_("Decrypt / Verify"));
- GtkWidget * verify = gtk_menu_item_new_with_mnemonic(_("Verify detached signature"));
+ encrypt = gtk_menu_item_new_with_mnemonic(_("Encrypt"));
+ sign = gtk_menu_item_new_with_mnemonic(_("Sign"));
+ decrypt = gtk_menu_item_new_with_mnemonic(_("Decrypt / Verify"));
+ verify = gtk_menu_item_new_with_mnemonic(_("Verify detached signature"));
gtk_widget_show(encrypt);
gtk_widget_show(sign);
@@ -92,12 +100,12 @@ void plugin_init(GeanyData *data)
gtk_menu_item_set_submenu(GTK_MENU_ITEM(main_menu_item), submenu);
- // Attach the new menu item to the Tools menu
+ /* Attach the new menu item to the Tools menu */
gtk_container_add(GTK_CONTAINER(geany->main_widgets->tools_menu),
main_menu_item);
- // Connect the menu item with a callback function
- // which is called when the item is clicked
+ /* Connect the menu item with a callback function
+ * which is called when the item is clicked */
g_signal_connect(encrypt, "activate", G_CALLBACK(geanypg_encrypt_cb), NULL);
g_signal_connect(sign, "activate", G_CALLBACK(geanypg_sign_cb), NULL);
g_signal_connect(decrypt, "activate", G_CALLBACK(geanypg_decrypt_cb), NULL);
Modified: geanypg/src/geanypg.h
47 files changed, 24 insertions(+), 23 deletions(-)
===================================================================
@@ -1,21 +1,22 @@
-// geanypg.h
-//
-// Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-// MA 02110-1301, USA.
+/* geanypg.h
+ *
+ * Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
#include <stdio.h>
@@ -53,7 +54,7 @@ enum
extern GeanyData *geany_data;
extern GeanyFunctions *geany_functions;
-// auxiliary functions (helper_functions.c)
+/* auxiliary functions (helper_functions.c) */
void geanypg_init_ed(encrypt_data * ed);
int geanypg_get_keys(encrypt_data * ed);
int geanypg_get_secret_keys(encrypt_data * ed);
@@ -61,23 +62,23 @@ enum
void geanypg_load_buffer(gpgme_data_t * buffer);
void geanypg_write_file(FILE * file);
-// some more auxiliary functions (verify_aux.c)
+/* some more auxiliary functions (verify_aux.c) */
void geanypg_handle_signatures(encrypt_data * ed, int need_error);
void geanypg_check_sig(encrypt_data * ed, gpgme_signature_t sig);
const char * geanypg_validity(gpgme_validity_t validity);
-// dialogs
+/* dialogs */
int geanypg_encrypt_selection_dialog(encrypt_data * ed, gpgme_key_t ** selected, int * sign);
int geanypg_sign_selection_dialog(encrypt_data * ed);
gpgme_error_t geanypg_show_err_msg(gpgme_error_t err);
-// callback functions
+/* callback functions */
void geanypg_encrypt_cb(GtkMenuItem * menuitem, gpointer user_data);
void geanypg_sign_cb(GtkMenuItem * menuitem, gpointer user_data);
void geanypg_decrypt_cb(GtkMenuItem * menuitem, gpointer user_data);
void geanypg_verify_cb(GtkMenuItem * menuitem, gpointer user_data);
-// pinentry callback
+/* pinentry callback */
gpgme_error_t geanypg_passphrase_cb(void *hook,
const char *uid_hint,
const char *passphrase_info,
Modified: geanypg/src/helper_functions.c
85 files changed, 44 insertions(+), 41 deletions(-)
===================================================================
@@ -1,21 +1,22 @@
-// helper_functions.c
-//
-// Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-// MA 02110-1301, USA.
+/* helper_functions.c
+ *
+ * Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
#include "geanypg.h"
@@ -32,9 +33,9 @@ int geanypg_get_keys(encrypt_data * ed)
{
gpgme_error_t err;
unsigned long size = SIZE;
- //initialize idx to 0
+ /* initialize idx to 0 */
unsigned long idx = 0;
- //allocate array of size 1N
+ /* allocate array of size 1N */
gpgme_key_t * key;
ed->key_array = (gpgme_key_t*) malloc(SIZE * sizeof(gpgme_key_t));
err = gpgme_op_keylist_start(ed->ctx, NULL, 0);
@@ -44,12 +45,12 @@ int geanypg_get_keys(encrypt_data * ed)
err = gpgme_op_keylist_next(ed->ctx, key);
if (err)
break;
- if ((*key)->revoked || // key cannot be used
+ if ((*key)->revoked || /* key cannot be used */
(*key)->expired ||
(*key)->disabled ||
(*key)->invalid)
gpgme_key_unref(*key);
- else // key is valid
+ else /* key is valid */
++idx;
if (idx >= size)
{
@@ -70,9 +71,9 @@ int geanypg_get_secret_keys(encrypt_data * ed)
{
gpgme_error_t err;
unsigned long size = SIZE;
- //initialize idx to 0
+ /* initialize idx to 0 */
unsigned long idx = 0;
- //allocate array of size 1N
+ /* allocate array of size 1N */
gpgme_key_t * key;
ed->skey_array = (gpgme_key_t*) malloc(SIZE * sizeof(gpgme_key_t));
err = gpgme_op_keylist_start(ed->ctx, NULL, 1);
@@ -82,12 +83,12 @@ int geanypg_get_secret_keys(encrypt_data * ed)
err = gpgme_op_keylist_next(ed->ctx, key);
if (err)
break;
- if ((*key)->revoked || // key cannot be used
+ if ((*key)->revoked || /* key cannot be used */
(*key)->expired ||
(*key)->disabled ||
(*key)->invalid)
gpgme_key_unref(*key);
- else // key is valid
+ else /* key is valid */
++idx;
if (idx >= size)
{
@@ -130,14 +131,11 @@ void geanypg_release_keys(encrypt_data * ed)
void geanypg_load_buffer(gpgme_data_t * buffer)
{
- //gpgme_data_new_from_mem(buffer, text, size, 0);
+ /* gpgme_data_new_from_mem(buffer, text, size, 0); */
GeanyDocument * doc = document_get_current();
- //SCI_GETSELECTIONSTART-SCI_GETSELECTIONEND
char * data = NULL;
- unsigned long sstart = scintilla_send_message(doc->editor->sci, SCI_GETSELECTIONSTART, 0, 0);
- unsigned long send = scintilla_send_message(doc->editor->sci, SCI_GETSELECTIONEND, 0, 0);
unsigned long size = 0;
- if (sstart - send)
+ if (sci_has_selection(doc->editor->sci))
{
size = scintilla_send_message(doc->editor->sci, SCI_GETSELTEXT, 0, 0);
data = (char *) malloc(size + 1);
@@ -151,29 +149,34 @@ void geanypg_load_buffer(gpgme_data_t * buffer)
scintilla_send_message(doc->editor->sci, SCI_GETTEXT, (uptr_t)(size + 1), (sptr_t)data);
gpgme_data_new_from_mem(buffer, data, size, 1);
}
- if (data) // if there is no text data may still be NULL
+ if (data) /* if there is no text data may still be NULL */
free(data);
gpgme_data_set_encoding(*buffer, GPGME_DATA_ENCODING_BINARY);
}
void geanypg_write_file(FILE * file)
{
- unsigned bufsize = 2048;
+#define BUFSIZE 2048
+
unsigned long size;
- char buffer[bufsize];
+ char buffer[BUFSIZE] = {0};
GeanyDocument * doc = document_get_current();
- if (abs(sci_get_selection_start(doc->editor->sci) - sci_get_selection_end(doc->editor->sci)))
- { // replace selected text
- // clear selection, cursor should be at the end or beginneng of the selection
+ sci_start_undo_action(doc->editor->sci);
+ if (sci_has_selection(doc->editor->sci))
+ { /* replace selected text
+ * clear selection, cursor should be at the end or beginneng of the selection */
scintilla_send_message(doc->editor->sci, SCI_REPLACESEL, 0, (sptr_t)"");
- while ((size = fread(buffer, 1, bufsize, file)))
- // add at the cursor
+ while ((size = fread(buffer, 1, BUFSIZE, file)))
+ /* add at the cursor */
scintilla_send_message(doc->editor->sci, SCI_ADDTEXT, (uptr_t) size, (sptr_t) buffer);
}
else
- { //replace complete document
+ { /* replace complete document */
scintilla_send_message(doc->editor->sci, SCI_CLEARALL, 0, 0);
- while ((size = fread(buffer, 1, bufsize, file)))
+ while ((size = fread(buffer, 1, BUFSIZE, file)))
scintilla_send_message(doc->editor->sci, SCI_APPENDTEXT, (uptr_t) size, (sptr_t) buffer);
}
+ sci_end_undo_action(doc->editor->sci);
+
+#undef BUFSIZE
}
Modified: geanypg/src/key_selection_dialog.c
72 files changed, 37 insertions(+), 35 deletions(-)
===================================================================
@@ -1,23 +1,24 @@
-// key_selection_dialog.c
-//
-// Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-// MA 02110-1301, USA.
-
-// something about premature optimization, it still needs to be done
+/* key_selection_dialog.c
+ *
+ * Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+/* something about premature optimization, it still needs to be done */
#include "geanypg.h"
@@ -69,14 +70,14 @@ static GtkListStore * geanypg_makelist(gpgme_key_t * key_array, unsigned long nk
{
char * name = (key_array[idx]->uids && key_array[idx]->uids->name) ? key_array[idx]->uids->name : &empty_string;
char * email = (key_array[idx]->uids && key_array[idx]->uids->email) ? key_array[idx]->uids->email : &empty_string;
- char buffer[strlen(name) + strlen(email) + 7];
- sprintf(buffer, "%s <%s>", name, email);
+ gchar * buffer = g_strdup_printf("%s <%s>", name, email);
gtk_list_store_append(list, &iter);
gtk_list_store_set(list, &iter,
TOGGLE_COLUMN, FALSE,
RECIPIENT_COLUMN, buffer,
KEYID_COLUMN, key_array[idx]->subkeys->keyid,
-1);
+ g_free(buffer);
}
return list;
}
@@ -96,7 +97,7 @@ static GtkWidget * geanypg_listview(GtkListStore * list, listdata * data)
GtkTreeViewColumn * column;
GtkCellRenderer * togglerenderer, * textrenderer;
GtkWidget * listview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(list));
- // checkbox column
+ /* checkbox column */
togglerenderer = gtk_cell_renderer_toggle_new();
g_signal_connect(G_OBJECT(togglerenderer), "toggled", G_CALLBACK(geanypg_toggled_cb), NULL);
column = gtk_tree_view_column_new_with_attributes("?",
@@ -107,7 +108,7 @@ static GtkWidget * geanypg_listview(GtkListStore * list, listdata * data)
data->store = list;
data->column = TOGGLE_COLUMN;
g_signal_connect(G_OBJECT(togglerenderer), "toggled", G_CALLBACK(geanypg_toggled_cb), (gpointer) data);
- // recipient column
+ /* recipient column */
textrenderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes("recipient",
textrenderer,
@@ -115,7 +116,7 @@ static GtkWidget * geanypg_listview(GtkListStore * list, listdata * data)
NULL);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_append_column(GTK_TREE_VIEW(listview), column);
- // keyid column
+ /* keyid column */
column = gtk_tree_view_column_new_with_attributes("keyid",
textrenderer,
"text", KEYID_COLUMN,
@@ -134,10 +135,11 @@ int geanypg_encrypt_selection_dialog(encrypt_data * ed, gpgme_key_t ** selected,
GtkTreeIter iter;
listdata data;
gboolean active;
+ GtkListStore * list;
*sign = 0;
- GtkListStore * list = geanypg_makelist(ed->key_array, ed->nkeys, 0);
+ list = geanypg_makelist(ed->key_array, ed->nkeys, 0);
listview = geanypg_listview(list, &data);
scrollwin = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrollwin),
@@ -153,13 +155,13 @@ int geanypg_encrypt_selection_dialog(encrypt_data * ed, gpgme_key_t ** selected,
gtk_box_pack_start(GTK_BOX(contentarea), combobox, FALSE, FALSE, 0);
- // add ok and cancel buttons
+ /* add ok and cancel buttons */
gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_OK, GTK_RESPONSE_OK);
gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
gtk_window_set_title(GTK_WINDOW(dialog), _("Select recipients"));
gtk_widget_show_all(dialog);
- // make sure dialog is destroyed when user responds
+ /* make sure dialog is destroyed when user responds */
response = gtk_dialog_run(GTK_DIALOG(dialog));
if (response == GTK_RESPONSE_CANCEL)
{
@@ -170,12 +172,12 @@ int geanypg_encrypt_selection_dialog(encrypt_data * ed, gpgme_key_t ** selected,
if (idx && idx <= ed->nskeys)
{
*sign = 1;
- gpgme_signers_add(ed->ctx, ed->skey_array[idx - 1]); // -1 because the first option is `None'
+ gpgme_signers_add(ed->ctx, ed->skey_array[idx - 1]); /* -1 because the first option is `None' */
}
- // try to loop all the keys in the list
- // if they are active (the user checked the checkbox in front of the key)
- // add it to the selected array, finaly make sure that the array
- // is NULL terminated
+ /* try to loop all the keys in the list
+ * if they are active (the user checked the checkbox in front of the key)
+ * add it to the selected array, finaly make sure that the array
+ * is NULL terminated */
if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(list), &iter))
{
capacity = SIZE;
@@ -222,13 +224,13 @@ int geanypg_sign_selection_dialog(encrypt_data * ed)
gtk_box_pack_start(GTK_BOX(contentarea), gtk_label_new(_("Choose a key to sign with:")), FALSE, FALSE, 5);
gtk_box_pack_start(GTK_BOX(contentarea), combobox, TRUE, TRUE, 0);
- // add ok and cancel buttons
+ /* add ok and cancel buttons */
gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_OK, GTK_RESPONSE_OK);
gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
gtk_widget_show_all(dialog);
gtk_window_set_title(GTK_WINDOW(dialog), _("Select signer"));
- // make sure dialog is destroyed when user responds
+ /* make sure dialog is destroyed when user responds */
response = gtk_dialog_run(GTK_DIALOG(dialog));
if (response == GTK_RESPONSE_CANCEL)
{
Modified: geanypg/src/pinentry.c
68 files changed, 36 insertions(+), 32 deletions(-)
===================================================================
@@ -1,21 +1,22 @@
-// pinentry.c
-//
-// Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-// MA 02110-1301, USA.
+/* pinentry.c
+ *
+ * Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
#include "geanypg.h"
@@ -44,17 +45,18 @@ static void geanypg_read_till(int fd, char delim)
while (1)
{
char val;
- unsigned long rv = read(fd, &val, 1);
- if (!rv || val == delim)
+ ssize_t rv = read(fd, &val, 1);
+ if (rv <= 0 || val == delim)
break;
}
}
static int geanypg_read(int fd, char delim, int max, char * buffer)
{
- int idx, rv = 1;
+ int idx;
+ ssize_t rv = 1;
char ch = 0;
- for (idx = 0; (idx < max - 1) && rv && ch != delim; ++idx)
+ for (idx = 0; (idx < max - 1) && rv > 0 && ch != delim; ++idx)
{
rv = read(fd, &ch, 1);
buffer[idx] = ch;
@@ -72,7 +74,7 @@ gpgme_error_t geanypg_passphrase_cb(void * hook,
int inpipe[2];
int childpid;
int status;
- char readbuffer[2080]; // pinentry should at least support passphrases of up to 2048 characters
+ char readbuffer[2080] = {0}; /* pinentry should at least support passphrases of up to 2048 characters */
FILE * childin;
if (pipe(outpipe))
@@ -88,9 +90,11 @@ gpgme_error_t geanypg_passphrase_cb(void * hook,
childpid = fork();
if (!childpid)
- { // pinentry
+ { /* pinentry */
char arg1[] = "pinentry";
- char * argv[] = {arg1, NULL};
+ char * argv[] = {NULL, NULL};
+
+ argv[0] = arg1;
close(outpipe[READ]);
dup2(outpipe[WRITE], STDOUT_FILENO);
@@ -99,16 +103,16 @@ gpgme_error_t geanypg_passphrase_cb(void * hook,
dup2(inpipe[READ], STDIN_FILENO);
execvp(*argv, argv);
- // shouldn't get here
+ /* shouldn't get here */
fprintf(stderr, "GeanyPG: %s\n%s\n", _("Could not use pinentry."), strerror(errno));
- exit(1); // kill the child
+ exit(1); /* kill the child */
}
- // GeanpyPG
+ /* GeanpyPG */
close(outpipe[WRITE]);
close(inpipe[READ]);
childin = fdopen(inpipe[WRITE], "w");
- // To understand what's happening here, read the pinentry documentation
+ /* To understand what's happening here, read the pinentry documentation */
geanypg_read(outpipe[READ], ' ', 2049, readbuffer);
if (strncmp(readbuffer, "OK", 3))
{
@@ -119,7 +123,7 @@ gpgme_error_t geanypg_passphrase_cb(void * hook,
close(fd);
return gpgme_err_make(GPG_ERR_SOURCE_PINENTRY, GPG_ERR_GENERAL);
}
- geanypg_read_till(outpipe[READ], '\n'); // read the rest of the first line after OK
+ geanypg_read_till(outpipe[READ], '\n'); /* read the rest of the first line after OK */
fprintf(childin, "SETTITLE GeanyPG %s\n", _("Passphrase entry"));
fflush(childin);
geanypg_read_till(outpipe[READ], '\n');
@@ -143,8 +147,8 @@ gpgme_error_t geanypg_passphrase_cb(void * hook,
while (1)
{
char val;
- register unsigned long rv = read(outpipe[READ], &val, 1);
- if (!rv || val == '\n')
+ register ssize_t rv = read(outpipe[READ], &val, 1);
+ if (rv <= 0 || val == '\n')
{
while (!write(fd, "\n", 1));
break;
Modified: geanypg/src/sign_cb.c
46 files changed, 24 insertions(+), 22 deletions(-)
===================================================================
@@ -1,26 +1,27 @@
-// sign_cb.c
-//
-// Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-// MA 02110-1301, USA.
+/* sign_cb.c
+ *
+ * Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
#include "geanypg.h"
-void geanypg_sign(encrypt_data * ed)
+static void geanypg_sign(encrypt_data * ed)
{
gpgme_data_t plain, cipher;
gpgme_error_t err;
@@ -47,7 +48,7 @@ void geanypg_sign(encrypt_data * ed)
}
fclose(tempfile);
- // release buffers
+ /* release buffers */
gpgme_data_release(plain);
gpgme_data_release(cipher);
}
@@ -55,13 +56,14 @@ void geanypg_sign(encrypt_data * ed)
void geanypg_sign_cb(GtkMenuItem * menuitem, gpointer user_data)
{
encrypt_data ed;
+ gpgme_error_t err;
geanypg_init_ed(&ed);
- gpgme_error_t err = gpgme_new(&ed.ctx);
+ err = gpgme_new(&ed.ctx);
if (err && geanypg_show_err_msg(err))
return;
ed.key_array = NULL;
ed.nkeys = 0;
- //gpgme_set_armor(ed.ctx, 1);
+ /*gpgme_set_armor(ed.ctx, 1);*/
gpgme_set_passphrase_cb(ed.ctx, geanypg_passphrase_cb, NULL);
if (geanypg_get_secret_keys(&ed))
{
Modified: geanypg/src/verify_aux.c
56 files changed, 29 insertions(+), 27 deletions(-)
===================================================================
@@ -1,27 +1,28 @@
-// verify_aux.c
-//
-// Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-// MA 02110-1301, USA.
+/* verify_aux.c
+ *
+ * Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
#include "geanypg.h"
-void geanypg_get_keys_with_fp(encrypt_data * ed, char * buffer)
+static void geanypg_get_keys_with_fp(encrypt_data * ed, char * buffer)
{
unsigned long idx, found = 0;
char empty_string = '\0';
@@ -47,7 +48,7 @@ void geanypg_get_keys_with_fp(encrypt_data * ed, char * buffer)
sprintf(buffer, "%s <%s>", name, email);
else
{
- char tmp[62];
+ char tmp[62] = {0};
strncpy(tmp, buffer, 41);
sprintf(buffer, "%s %s", _("a key with fingerprint"), tmp);
}
@@ -74,7 +75,7 @@ const char * geanypg_validity(gpgme_validity_t validity)
}
static char * geanypg_summary(gpgme_sigsum_t summary, char * buffer)
-{ // buffer should be more than 105 bytes long
+{ /* buffer should be more than 105 bytes long */
if (summary & GPGME_SIGSUM_VALID) strcat(buffer, _(" valid"));
if (summary & GPGME_SIGSUM_GREEN) strcat(buffer, _(" green"));
if (summary & GPGME_SIGSUM_RED) strcat(buffer, _(" red"));
@@ -106,11 +107,11 @@ static char * geanypg_result(gpgme_signature_t sig)
"other flags:%s%s\n"
"notations .: %s\n");
char * buffer;
- char summary[128];
+ char summary[128] = {0};
const char * pubkey = gpgme_pubkey_algo_name(sig->pubkey_algo);
const char * hash = gpgme_hash_algo_name(sig->hash_algo);
- char created[64];
- char expires[64];
+ char created[64] = {0};
+ char expires[64] = {0};
size_t buffer_size;
if (sig->timestamp)
strncpy(created, ctime((time_t*)&sig->timestamp), 64);
@@ -136,7 +137,7 @@ static char * geanypg_result(gpgme_signature_t sig)
strlen(sig->pka_trust == 0 ? _("n/a") : sig->pka_trust == 1 ? _("bad") : sig->pka_trust == 2 ? _("okay"): _("RFU")) +
strlen(sig->wrong_key_usage ? _(" wrong-key-usage") : "") +
strlen(sig->chain_model ? _(" chain-model") : "") +
- strlen(sig->notations ? _("yes") : _("no")) + 1; // and a trailing \0
+ strlen(sig->notations ? _("yes") : _("no")) + 1; /* and a trailing \0 */
buffer = (char *)calloc(buffer_size, 1);
memset(summary, 0, 128);
@@ -160,12 +161,13 @@ void geanypg_check_sig(encrypt_data * ed, gpgme_signature_t sig)
{
GtkWidget * dialog;
gpgme_sigsum_t summary;
- char buffer[512];
+ char buffer[512] = {0};
+ char * result;
strncpy(buffer, sig->fpr, 40);
buffer[40] = 0;
geanypg_get_keys_with_fp(ed, buffer);
summary = sig->summary;
- char * result = geanypg_result(sig);
+ result = geanypg_result(sig);
dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW(geany->main_widgets->window),
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
Modified: geanypg/src/verify_cb.c
44 files changed, 23 insertions(+), 21 deletions(-)
===================================================================
@@ -1,25 +1,26 @@
-// verify_cb.c
-//
-// Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-// MA 02110-1301, USA.
+/* verify_cb.c
+ *
+ * Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
#include "geanypg.h"
-char * geanypg_choose_sig()
+static char * geanypg_choose_sig(void)
{
int response;
char * file = NULL;
@@ -37,7 +38,7 @@ char * geanypg_choose_sig()
return file;
}
-void geanypg_verify(encrypt_data * ed, char * signame)
+static void geanypg_verify(encrypt_data * ed, char * signame)
{
gpgme_data_t sig, text;
gpgme_error_t err;
@@ -61,8 +62,9 @@ void geanypg_verify_cb(GtkMenuItem * menuitem, gpointer user_data)
{
char * sigfile = NULL;
encrypt_data ed;
+ gpgme_error_t err;
geanypg_init_ed(&ed);
- gpgme_error_t err = gpgme_new(&ed.ctx);
+ err = gpgme_new(&ed.ctx);
if (err && geanypg_show_err_msg(err))
return;
gpgme_set_protocol(ed.ctx, GPGME_PROTOCOL_OpenPGP);
@@ Diff output truncated at 100000 characters. @@
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: TBD).
Branch: refs/heads/1.22_release
Author: Colomban Wendling <ban(a)herbesfolles.org>
Committer: Colomban Wendling <ban(a)herbesfolles.org>
Date: Sun, 08 Jul 2012 14:22:55
Commit: 90bcb9d11071df446c04f1699165a50d59c8ccb1
https://github.com/geany/geany-plugins/commit/90bcb9d11071df446c04f1699165a…
Log Message:
-----------
Merge branch 'fixes/geanypg'
Modified Paths:
--------------
geanypg/src/decrypt_cb.c
geanypg/src/encrypt_cb.c
geanypg/src/geanypg.c
geanypg/src/geanypg.h
geanypg/src/helper_functions.c
geanypg/src/key_selection_dialog.c
geanypg/src/pinentry.c
geanypg/src/sign_cb.c
geanypg/src/verify_aux.c
geanypg/src/verify_cb.c
Modified: geanypg/src/decrypt_cb.c
48 files changed, 25 insertions(+), 23 deletions(-)
===================================================================
@@ -1,26 +1,27 @@
-// decrypt_cb.c
-//
-// Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-// MA 02110-1301, USA.
+/* decrypt_cb.c
+ *
+ * Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
#include "geanypg.h"
-void geanypg_decrypt_verify(encrypt_data * ed)
+static void geanypg_decrypt_verify(encrypt_data * ed)
{
gpgme_data_t plain, cipher;
gpgme_error_t err;
@@ -37,9 +38,9 @@ void geanypg_decrypt_verify(encrypt_data * ed)
geanypg_load_buffer(&cipher);
err = gpgme_op_decrypt_verify(ed->ctx, cipher, plain);
- if (gpgme_err_code(err) == GPG_ERR_NO_DATA) // no encription, but maybe signatures
+ if (gpgme_err_code(err) == GPG_ERR_NO_DATA) /* no encription, but maybe signatures */
{
- // maybe reaload cipher
+ /* maybe reaload cipher */
gpgme_data_release(cipher);
geanypg_load_buffer(&cipher);
rewind(tempfile);
@@ -55,7 +56,7 @@ void geanypg_decrypt_verify(encrypt_data * ed)
}
fclose(tempfile);
- // release buffers
+ /* release buffers */
gpgme_data_release(cipher);
gpgme_data_release(plain);
}
@@ -63,8 +64,9 @@ void geanypg_decrypt_verify(encrypt_data * ed)
void geanypg_decrypt_cb(GtkMenuItem * menuitem, gpointer user_data)
{
encrypt_data ed;
+ gpgme_error_t err;
geanypg_init_ed(&ed);
- gpgme_error_t err = gpgme_new(&ed.ctx);
+ err = gpgme_new(&ed.ctx);
if (err && geanypg_show_err_msg(err))
return;
gpgme_set_protocol(ed.ctx, GPGME_PROTOCOL_OpenPGP);
Modified: geanypg/src/encrypt_cb.c
48 files changed, 25 insertions(+), 23 deletions(-)
===================================================================
@@ -1,27 +1,28 @@
-// encrypt_cb.c
-//
-// Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-// MA 02110-1301, USA.
+/* encrypt_cb.c
+ *
+ * Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
#include "geanypg.h"
-void geanypg_encrypt(encrypt_data * ed, gpgme_key_t * recp, int sign, int flags)
-{ // FACTORIZE
+static void geanypg_encrypt(encrypt_data * ed, gpgme_key_t * recp, int sign, int flags)
+{ /* FACTORIZE */
gpgme_data_t plain, cipher;
gpgme_error_t err;
FILE * tempfile;
@@ -36,7 +37,7 @@ void geanypg_encrypt(encrypt_data * ed, gpgme_key_t * recp, int sign, int flags)
geanypg_load_buffer(&plain);
- // do the actual encryption
+ /* do the actual encryption */
if (sign)
err = gpgme_op_encrypt_sign(ed->ctx, recp, flags, plain, cipher);
else
@@ -50,7 +51,7 @@ void geanypg_encrypt(encrypt_data * ed, gpgme_key_t * recp, int sign, int flags)
}
fclose(tempfile);
- // release buffers
+ /* release buffers */
gpgme_data_release(plain);
gpgme_data_release(cipher);
}
@@ -59,8 +60,9 @@ void geanypg_encrypt_cb(GtkMenuItem * menuitem, gpointer user_data)
{
int sign;
encrypt_data ed;
+ gpgme_error_t err;
geanypg_init_ed(&ed);
- gpgme_error_t err = gpgme_new(&ed.ctx);
+ err = gpgme_new(&ed.ctx);
if (err && geanypg_show_err_msg(err))
return;
gpgme_set_armor(ed.ctx, 1);
Modified: geanypg/src/geanypg.c
66 files changed, 37 insertions(+), 29 deletions(-)
===================================================================
@@ -1,21 +1,22 @@
-// geanypg.c
-//
-// Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-// MA 02110-1301, USA.
+/* geanypg.c
+ *
+ * Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
#include "geanypg.h"
@@ -41,12 +42,12 @@
static gpgme_error_t geanypg_init_gpgme(void)
{
- // Initialize the locale environment.
+ /* Initialize the locale environment. */
setlocale(LC_ALL, "");
fprintf(stderr, "GeanyPG: %s %s\n", _("Using libgpgme version:"),
gpgme_check_version("1.1.0"));
gpgme_set_locale(NULL, LC_CTYPE, setlocale(LC_CTYPE, NULL));
-#ifdef LC_MESSAGES // only necessary for portability to W32 systems
+#ifdef LC_MESSAGES /* only necessary for portability to W32 systems */
gpgme_set_locale(NULL, LC_MESSAGES, setlocale(LC_MESSAGES, NULL));
#endif
return gpgme_engine_check_version(GPGME_PROTOCOL_OpenPGP);
@@ -63,22 +64,29 @@ gpgme_error_t geanypg_show_err_msg(gpgme_error_t err)
void plugin_init(GeanyData *data)
{
+ GtkWidget * submenu;
+ GtkWidget * encrypt;
+ GtkWidget * sign;
+ GtkWidget * decrypt;
+ GtkWidget * verify;
+
gpgme_error_t err = geanypg_init_gpgme();
if (err)
{
geanypg_show_err_msg(err);
return;
}
- // Create a new menu item and show it
+ /* Create a new menu item and show it */
main_menu_item = gtk_menu_item_new_with_mnemonic("GeanyPG");
gtk_widget_show(main_menu_item);
+ ui_add_document_sensitive(main_menu_item);
- GtkWidget * submenu = gtk_menu_new();
+ submenu = gtk_menu_new();
gtk_widget_show(submenu);
- GtkWidget * encrypt = gtk_menu_item_new_with_mnemonic(_("Encrypt"));
- GtkWidget * sign = gtk_menu_item_new_with_mnemonic(_("Sign"));
- GtkWidget * decrypt = gtk_menu_item_new_with_mnemonic(_("Decrypt / Verify"));
- GtkWidget * verify = gtk_menu_item_new_with_mnemonic(_("Verify detached signature"));
+ encrypt = gtk_menu_item_new_with_mnemonic(_("Encrypt"));
+ sign = gtk_menu_item_new_with_mnemonic(_("Sign"));
+ decrypt = gtk_menu_item_new_with_mnemonic(_("Decrypt / Verify"));
+ verify = gtk_menu_item_new_with_mnemonic(_("Verify detached signature"));
gtk_widget_show(encrypt);
gtk_widget_show(sign);
@@ -92,12 +100,12 @@ void plugin_init(GeanyData *data)
gtk_menu_item_set_submenu(GTK_MENU_ITEM(main_menu_item), submenu);
- // Attach the new menu item to the Tools menu
+ /* Attach the new menu item to the Tools menu */
gtk_container_add(GTK_CONTAINER(geany->main_widgets->tools_menu),
main_menu_item);
- // Connect the menu item with a callback function
- // which is called when the item is clicked
+ /* Connect the menu item with a callback function
+ * which is called when the item is clicked */
g_signal_connect(encrypt, "activate", G_CALLBACK(geanypg_encrypt_cb), NULL);
g_signal_connect(sign, "activate", G_CALLBACK(geanypg_sign_cb), NULL);
g_signal_connect(decrypt, "activate", G_CALLBACK(geanypg_decrypt_cb), NULL);
Modified: geanypg/src/geanypg.h
47 files changed, 24 insertions(+), 23 deletions(-)
===================================================================
@@ -1,21 +1,22 @@
-// geanypg.h
-//
-// Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-// MA 02110-1301, USA.
+/* geanypg.h
+ *
+ * Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
#include <stdio.h>
@@ -53,7 +54,7 @@ enum
extern GeanyData *geany_data;
extern GeanyFunctions *geany_functions;
-// auxiliary functions (helper_functions.c)
+/* auxiliary functions (helper_functions.c) */
void geanypg_init_ed(encrypt_data * ed);
int geanypg_get_keys(encrypt_data * ed);
int geanypg_get_secret_keys(encrypt_data * ed);
@@ -61,23 +62,23 @@ enum
void geanypg_load_buffer(gpgme_data_t * buffer);
void geanypg_write_file(FILE * file);
-// some more auxiliary functions (verify_aux.c)
+/* some more auxiliary functions (verify_aux.c) */
void geanypg_handle_signatures(encrypt_data * ed, int need_error);
void geanypg_check_sig(encrypt_data * ed, gpgme_signature_t sig);
const char * geanypg_validity(gpgme_validity_t validity);
-// dialogs
+/* dialogs */
int geanypg_encrypt_selection_dialog(encrypt_data * ed, gpgme_key_t ** selected, int * sign);
int geanypg_sign_selection_dialog(encrypt_data * ed);
gpgme_error_t geanypg_show_err_msg(gpgme_error_t err);
-// callback functions
+/* callback functions */
void geanypg_encrypt_cb(GtkMenuItem * menuitem, gpointer user_data);
void geanypg_sign_cb(GtkMenuItem * menuitem, gpointer user_data);
void geanypg_decrypt_cb(GtkMenuItem * menuitem, gpointer user_data);
void geanypg_verify_cb(GtkMenuItem * menuitem, gpointer user_data);
-// pinentry callback
+/* pinentry callback */
gpgme_error_t geanypg_passphrase_cb(void *hook,
const char *uid_hint,
const char *passphrase_info,
Modified: geanypg/src/helper_functions.c
85 files changed, 44 insertions(+), 41 deletions(-)
===================================================================
@@ -1,21 +1,22 @@
-// helper_functions.c
-//
-// Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-// MA 02110-1301, USA.
+/* helper_functions.c
+ *
+ * Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
#include "geanypg.h"
@@ -32,9 +33,9 @@ int geanypg_get_keys(encrypt_data * ed)
{
gpgme_error_t err;
unsigned long size = SIZE;
- //initialize idx to 0
+ /* initialize idx to 0 */
unsigned long idx = 0;
- //allocate array of size 1N
+ /* allocate array of size 1N */
gpgme_key_t * key;
ed->key_array = (gpgme_key_t*) malloc(SIZE * sizeof(gpgme_key_t));
err = gpgme_op_keylist_start(ed->ctx, NULL, 0);
@@ -44,12 +45,12 @@ int geanypg_get_keys(encrypt_data * ed)
err = gpgme_op_keylist_next(ed->ctx, key);
if (err)
break;
- if ((*key)->revoked || // key cannot be used
+ if ((*key)->revoked || /* key cannot be used */
(*key)->expired ||
(*key)->disabled ||
(*key)->invalid)
gpgme_key_unref(*key);
- else // key is valid
+ else /* key is valid */
++idx;
if (idx >= size)
{
@@ -70,9 +71,9 @@ int geanypg_get_secret_keys(encrypt_data * ed)
{
gpgme_error_t err;
unsigned long size = SIZE;
- //initialize idx to 0
+ /* initialize idx to 0 */
unsigned long idx = 0;
- //allocate array of size 1N
+ /* allocate array of size 1N */
gpgme_key_t * key;
ed->skey_array = (gpgme_key_t*) malloc(SIZE * sizeof(gpgme_key_t));
err = gpgme_op_keylist_start(ed->ctx, NULL, 1);
@@ -82,12 +83,12 @@ int geanypg_get_secret_keys(encrypt_data * ed)
err = gpgme_op_keylist_next(ed->ctx, key);
if (err)
break;
- if ((*key)->revoked || // key cannot be used
+ if ((*key)->revoked || /* key cannot be used */
(*key)->expired ||
(*key)->disabled ||
(*key)->invalid)
gpgme_key_unref(*key);
- else // key is valid
+ else /* key is valid */
++idx;
if (idx >= size)
{
@@ -130,14 +131,11 @@ void geanypg_release_keys(encrypt_data * ed)
void geanypg_load_buffer(gpgme_data_t * buffer)
{
- //gpgme_data_new_from_mem(buffer, text, size, 0);
+ /* gpgme_data_new_from_mem(buffer, text, size, 0); */
GeanyDocument * doc = document_get_current();
- //SCI_GETSELECTIONSTART-SCI_GETSELECTIONEND
char * data = NULL;
- unsigned long sstart = scintilla_send_message(doc->editor->sci, SCI_GETSELECTIONSTART, 0, 0);
- unsigned long send = scintilla_send_message(doc->editor->sci, SCI_GETSELECTIONEND, 0, 0);
unsigned long size = 0;
- if (sstart - send)
+ if (sci_has_selection(doc->editor->sci))
{
size = scintilla_send_message(doc->editor->sci, SCI_GETSELTEXT, 0, 0);
data = (char *) malloc(size + 1);
@@ -151,29 +149,34 @@ void geanypg_load_buffer(gpgme_data_t * buffer)
scintilla_send_message(doc->editor->sci, SCI_GETTEXT, (uptr_t)(size + 1), (sptr_t)data);
gpgme_data_new_from_mem(buffer, data, size, 1);
}
- if (data) // if there is no text data may still be NULL
+ if (data) /* if there is no text data may still be NULL */
free(data);
gpgme_data_set_encoding(*buffer, GPGME_DATA_ENCODING_BINARY);
}
void geanypg_write_file(FILE * file)
{
- unsigned bufsize = 2048;
+#define BUFSIZE 2048
+
unsigned long size;
- char buffer[bufsize];
+ char buffer[BUFSIZE] = {0};
GeanyDocument * doc = document_get_current();
- if (abs(sci_get_selection_start(doc->editor->sci) - sci_get_selection_end(doc->editor->sci)))
- { // replace selected text
- // clear selection, cursor should be at the end or beginneng of the selection
+ sci_start_undo_action(doc->editor->sci);
+ if (sci_has_selection(doc->editor->sci))
+ { /* replace selected text
+ * clear selection, cursor should be at the end or beginneng of the selection */
scintilla_send_message(doc->editor->sci, SCI_REPLACESEL, 0, (sptr_t)"");
- while ((size = fread(buffer, 1, bufsize, file)))
- // add at the cursor
+ while ((size = fread(buffer, 1, BUFSIZE, file)))
+ /* add at the cursor */
scintilla_send_message(doc->editor->sci, SCI_ADDTEXT, (uptr_t) size, (sptr_t) buffer);
}
else
- { //replace complete document
+ { /* replace complete document */
scintilla_send_message(doc->editor->sci, SCI_CLEARALL, 0, 0);
- while ((size = fread(buffer, 1, bufsize, file)))
+ while ((size = fread(buffer, 1, BUFSIZE, file)))
scintilla_send_message(doc->editor->sci, SCI_APPENDTEXT, (uptr_t) size, (sptr_t) buffer);
}
+ sci_end_undo_action(doc->editor->sci);
+
+#undef BUFSIZE
}
Modified: geanypg/src/key_selection_dialog.c
72 files changed, 37 insertions(+), 35 deletions(-)
===================================================================
@@ -1,23 +1,24 @@
-// key_selection_dialog.c
-//
-// Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-// MA 02110-1301, USA.
-
-// something about premature optimization, it still needs to be done
+/* key_selection_dialog.c
+ *
+ * Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+/* something about premature optimization, it still needs to be done */
#include "geanypg.h"
@@ -69,14 +70,14 @@ static GtkListStore * geanypg_makelist(gpgme_key_t * key_array, unsigned long nk
{
char * name = (key_array[idx]->uids && key_array[idx]->uids->name) ? key_array[idx]->uids->name : &empty_string;
char * email = (key_array[idx]->uids && key_array[idx]->uids->email) ? key_array[idx]->uids->email : &empty_string;
- char buffer[strlen(name) + strlen(email) + 7];
- sprintf(buffer, "%s <%s>", name, email);
+ gchar * buffer = g_strdup_printf("%s <%s>", name, email);
gtk_list_store_append(list, &iter);
gtk_list_store_set(list, &iter,
TOGGLE_COLUMN, FALSE,
RECIPIENT_COLUMN, buffer,
KEYID_COLUMN, key_array[idx]->subkeys->keyid,
-1);
+ g_free(buffer);
}
return list;
}
@@ -96,7 +97,7 @@ static GtkWidget * geanypg_listview(GtkListStore * list, listdata * data)
GtkTreeViewColumn * column;
GtkCellRenderer * togglerenderer, * textrenderer;
GtkWidget * listview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(list));
- // checkbox column
+ /* checkbox column */
togglerenderer = gtk_cell_renderer_toggle_new();
g_signal_connect(G_OBJECT(togglerenderer), "toggled", G_CALLBACK(geanypg_toggled_cb), NULL);
column = gtk_tree_view_column_new_with_attributes("?",
@@ -107,7 +108,7 @@ static GtkWidget * geanypg_listview(GtkListStore * list, listdata * data)
data->store = list;
data->column = TOGGLE_COLUMN;
g_signal_connect(G_OBJECT(togglerenderer), "toggled", G_CALLBACK(geanypg_toggled_cb), (gpointer) data);
- // recipient column
+ /* recipient column */
textrenderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes("recipient",
textrenderer,
@@ -115,7 +116,7 @@ static GtkWidget * geanypg_listview(GtkListStore * list, listdata * data)
NULL);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_append_column(GTK_TREE_VIEW(listview), column);
- // keyid column
+ /* keyid column */
column = gtk_tree_view_column_new_with_attributes("keyid",
textrenderer,
"text", KEYID_COLUMN,
@@ -134,10 +135,11 @@ int geanypg_encrypt_selection_dialog(encrypt_data * ed, gpgme_key_t ** selected,
GtkTreeIter iter;
listdata data;
gboolean active;
+ GtkListStore * list;
*sign = 0;
- GtkListStore * list = geanypg_makelist(ed->key_array, ed->nkeys, 0);
+ list = geanypg_makelist(ed->key_array, ed->nkeys, 0);
listview = geanypg_listview(list, &data);
scrollwin = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrollwin),
@@ -153,13 +155,13 @@ int geanypg_encrypt_selection_dialog(encrypt_data * ed, gpgme_key_t ** selected,
gtk_box_pack_start(GTK_BOX(contentarea), combobox, FALSE, FALSE, 0);
- // add ok and cancel buttons
+ /* add ok and cancel buttons */
gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_OK, GTK_RESPONSE_OK);
gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
gtk_window_set_title(GTK_WINDOW(dialog), _("Select recipients"));
gtk_widget_show_all(dialog);
- // make sure dialog is destroyed when user responds
+ /* make sure dialog is destroyed when user responds */
response = gtk_dialog_run(GTK_DIALOG(dialog));
if (response == GTK_RESPONSE_CANCEL)
{
@@ -170,12 +172,12 @@ int geanypg_encrypt_selection_dialog(encrypt_data * ed, gpgme_key_t ** selected,
if (idx && idx <= ed->nskeys)
{
*sign = 1;
- gpgme_signers_add(ed->ctx, ed->skey_array[idx - 1]); // -1 because the first option is `None'
+ gpgme_signers_add(ed->ctx, ed->skey_array[idx - 1]); /* -1 because the first option is `None' */
}
- // try to loop all the keys in the list
- // if they are active (the user checked the checkbox in front of the key)
- // add it to the selected array, finaly make sure that the array
- // is NULL terminated
+ /* try to loop all the keys in the list
+ * if they are active (the user checked the checkbox in front of the key)
+ * add it to the selected array, finaly make sure that the array
+ * is NULL terminated */
if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(list), &iter))
{
capacity = SIZE;
@@ -222,13 +224,13 @@ int geanypg_sign_selection_dialog(encrypt_data * ed)
gtk_box_pack_start(GTK_BOX(contentarea), gtk_label_new(_("Choose a key to sign with:")), FALSE, FALSE, 5);
gtk_box_pack_start(GTK_BOX(contentarea), combobox, TRUE, TRUE, 0);
- // add ok and cancel buttons
+ /* add ok and cancel buttons */
gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_OK, GTK_RESPONSE_OK);
gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
gtk_widget_show_all(dialog);
gtk_window_set_title(GTK_WINDOW(dialog), _("Select signer"));
- // make sure dialog is destroyed when user responds
+ /* make sure dialog is destroyed when user responds */
response = gtk_dialog_run(GTK_DIALOG(dialog));
if (response == GTK_RESPONSE_CANCEL)
{
Modified: geanypg/src/pinentry.c
68 files changed, 36 insertions(+), 32 deletions(-)
===================================================================
@@ -1,21 +1,22 @@
-// pinentry.c
-//
-// Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-// MA 02110-1301, USA.
+/* pinentry.c
+ *
+ * Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
#include "geanypg.h"
@@ -44,17 +45,18 @@ static void geanypg_read_till(int fd, char delim)
while (1)
{
char val;
- unsigned long rv = read(fd, &val, 1);
- if (!rv || val == delim)
+ ssize_t rv = read(fd, &val, 1);
+ if (rv <= 0 || val == delim)
break;
}
}
static int geanypg_read(int fd, char delim, int max, char * buffer)
{
- int idx, rv = 1;
+ int idx;
+ ssize_t rv = 1;
char ch = 0;
- for (idx = 0; (idx < max - 1) && rv && ch != delim; ++idx)
+ for (idx = 0; (idx < max - 1) && rv > 0 && ch != delim; ++idx)
{
rv = read(fd, &ch, 1);
buffer[idx] = ch;
@@ -72,7 +74,7 @@ gpgme_error_t geanypg_passphrase_cb(void * hook,
int inpipe[2];
int childpid;
int status;
- char readbuffer[2080]; // pinentry should at least support passphrases of up to 2048 characters
+ char readbuffer[2080] = {0}; /* pinentry should at least support passphrases of up to 2048 characters */
FILE * childin;
if (pipe(outpipe))
@@ -88,9 +90,11 @@ gpgme_error_t geanypg_passphrase_cb(void * hook,
childpid = fork();
if (!childpid)
- { // pinentry
+ { /* pinentry */
char arg1[] = "pinentry";
- char * argv[] = {arg1, NULL};
+ char * argv[] = {NULL, NULL};
+
+ argv[0] = arg1;
close(outpipe[READ]);
dup2(outpipe[WRITE], STDOUT_FILENO);
@@ -99,16 +103,16 @@ gpgme_error_t geanypg_passphrase_cb(void * hook,
dup2(inpipe[READ], STDIN_FILENO);
execvp(*argv, argv);
- // shouldn't get here
+ /* shouldn't get here */
fprintf(stderr, "GeanyPG: %s\n%s\n", _("Could not use pinentry."), strerror(errno));
- exit(1); // kill the child
+ exit(1); /* kill the child */
}
- // GeanpyPG
+ /* GeanpyPG */
close(outpipe[WRITE]);
close(inpipe[READ]);
childin = fdopen(inpipe[WRITE], "w");
- // To understand what's happening here, read the pinentry documentation
+ /* To understand what's happening here, read the pinentry documentation */
geanypg_read(outpipe[READ], ' ', 2049, readbuffer);
if (strncmp(readbuffer, "OK", 3))
{
@@ -119,7 +123,7 @@ gpgme_error_t geanypg_passphrase_cb(void * hook,
close(fd);
return gpgme_err_make(GPG_ERR_SOURCE_PINENTRY, GPG_ERR_GENERAL);
}
- geanypg_read_till(outpipe[READ], '\n'); // read the rest of the first line after OK
+ geanypg_read_till(outpipe[READ], '\n'); /* read the rest of the first line after OK */
fprintf(childin, "SETTITLE GeanyPG %s\n", _("Passphrase entry"));
fflush(childin);
geanypg_read_till(outpipe[READ], '\n');
@@ -143,8 +147,8 @@ gpgme_error_t geanypg_passphrase_cb(void * hook,
while (1)
{
char val;
- register unsigned long rv = read(outpipe[READ], &val, 1);
- if (!rv || val == '\n')
+ register ssize_t rv = read(outpipe[READ], &val, 1);
+ if (rv <= 0 || val == '\n')
{
while (!write(fd, "\n", 1));
break;
Modified: geanypg/src/sign_cb.c
46 files changed, 24 insertions(+), 22 deletions(-)
===================================================================
@@ -1,26 +1,27 @@
-// sign_cb.c
-//
-// Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-// MA 02110-1301, USA.
+/* sign_cb.c
+ *
+ * Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
#include "geanypg.h"
-void geanypg_sign(encrypt_data * ed)
+static void geanypg_sign(encrypt_data * ed)
{
gpgme_data_t plain, cipher;
gpgme_error_t err;
@@ -47,7 +48,7 @@ void geanypg_sign(encrypt_data * ed)
}
fclose(tempfile);
- // release buffers
+ /* release buffers */
gpgme_data_release(plain);
gpgme_data_release(cipher);
}
@@ -55,13 +56,14 @@ void geanypg_sign(encrypt_data * ed)
void geanypg_sign_cb(GtkMenuItem * menuitem, gpointer user_data)
{
encrypt_data ed;
+ gpgme_error_t err;
geanypg_init_ed(&ed);
- gpgme_error_t err = gpgme_new(&ed.ctx);
+ err = gpgme_new(&ed.ctx);
if (err && geanypg_show_err_msg(err))
return;
ed.key_array = NULL;
ed.nkeys = 0;
- //gpgme_set_armor(ed.ctx, 1);
+ /*gpgme_set_armor(ed.ctx, 1);*/
gpgme_set_passphrase_cb(ed.ctx, geanypg_passphrase_cb, NULL);
if (geanypg_get_secret_keys(&ed))
{
Modified: geanypg/src/verify_aux.c
56 files changed, 29 insertions(+), 27 deletions(-)
===================================================================
@@ -1,27 +1,28 @@
-// verify_aux.c
-//
-// Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-// MA 02110-1301, USA.
+/* verify_aux.c
+ *
+ * Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
#include "geanypg.h"
-void geanypg_get_keys_with_fp(encrypt_data * ed, char * buffer)
+static void geanypg_get_keys_with_fp(encrypt_data * ed, char * buffer)
{
unsigned long idx, found = 0;
char empty_string = '\0';
@@ -47,7 +48,7 @@ void geanypg_get_keys_with_fp(encrypt_data * ed, char * buffer)
sprintf(buffer, "%s <%s>", name, email);
else
{
- char tmp[62];
+ char tmp[62] = {0};
strncpy(tmp, buffer, 41);
sprintf(buffer, "%s %s", _("a key with fingerprint"), tmp);
}
@@ -74,7 +75,7 @@ const char * geanypg_validity(gpgme_validity_t validity)
}
static char * geanypg_summary(gpgme_sigsum_t summary, char * buffer)
-{ // buffer should be more than 105 bytes long
+{ /* buffer should be more than 105 bytes long */
if (summary & GPGME_SIGSUM_VALID) strcat(buffer, _(" valid"));
if (summary & GPGME_SIGSUM_GREEN) strcat(buffer, _(" green"));
if (summary & GPGME_SIGSUM_RED) strcat(buffer, _(" red"));
@@ -106,11 +107,11 @@ static char * geanypg_result(gpgme_signature_t sig)
"other flags:%s%s\n"
"notations .: %s\n");
char * buffer;
- char summary[128];
+ char summary[128] = {0};
const char * pubkey = gpgme_pubkey_algo_name(sig->pubkey_algo);
const char * hash = gpgme_hash_algo_name(sig->hash_algo);
- char created[64];
- char expires[64];
+ char created[64] = {0};
+ char expires[64] = {0};
size_t buffer_size;
if (sig->timestamp)
strncpy(created, ctime((time_t*)&sig->timestamp), 64);
@@ -136,7 +137,7 @@ static char * geanypg_result(gpgme_signature_t sig)
strlen(sig->pka_trust == 0 ? _("n/a") : sig->pka_trust == 1 ? _("bad") : sig->pka_trust == 2 ? _("okay"): _("RFU")) +
strlen(sig->wrong_key_usage ? _(" wrong-key-usage") : "") +
strlen(sig->chain_model ? _(" chain-model") : "") +
- strlen(sig->notations ? _("yes") : _("no")) + 1; // and a trailing \0
+ strlen(sig->notations ? _("yes") : _("no")) + 1; /* and a trailing \0 */
buffer = (char *)calloc(buffer_size, 1);
memset(summary, 0, 128);
@@ -160,12 +161,13 @@ void geanypg_check_sig(encrypt_data * ed, gpgme_signature_t sig)
{
GtkWidget * dialog;
gpgme_sigsum_t summary;
- char buffer[512];
+ char buffer[512] = {0};
+ char * result;
strncpy(buffer, sig->fpr, 40);
buffer[40] = 0;
geanypg_get_keys_with_fp(ed, buffer);
summary = sig->summary;
- char * result = geanypg_result(sig);
+ result = geanypg_result(sig);
dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW(geany->main_widgets->window),
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
Modified: geanypg/src/verify_cb.c
44 files changed, 23 insertions(+), 21 deletions(-)
===================================================================
@@ -1,25 +1,26 @@
-// verify_cb.c
-//
-// Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-// MA 02110-1301, USA.
+/* verify_cb.c
+ *
+ * Copyright 2011 Hans Alves <alves.h88(a)gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
#include "geanypg.h"
-char * geanypg_choose_sig()
+static char * geanypg_choose_sig(void)
{
int response;
char * file = NULL;
@@ -37,7 +38,7 @@ char * geanypg_choose_sig()
return file;
}
-void geanypg_verify(encrypt_data * ed, char * signame)
+static void geanypg_verify(encrypt_data * ed, char * signame)
{
gpgme_data_t sig, text;
gpgme_error_t err;
@@ -61,8 +62,9 @@ void geanypg_verify_cb(GtkMenuItem * menuitem, gpointer user_data)
{
char * sigfile = NULL;
encrypt_data ed;
+ gpgme_error_t err;
geanypg_init_ed(&ed);
- gpgme_error_t err = gpgme_new(&ed.ctx);
+ err = gpgme_new(&ed.ctx);
if (err && geanypg_show_err_msg(err))
return;
gpgme_set_protocol(ed.ctx, GPGME_PROTOCOL_OpenPGP);
@@ Diff output truncated at 100000 characters. @@
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: TBD).