Revision: 5855 http://geany.svn.sourceforge.net/geany/?rev=5855&view=rev Author: colombanw Date: 2011-06-17 22:52:17 +0000 (Fri, 17 Jun 2011)
Log Message: ----------- Fix a few signed vs. unsigned and differently-sized integer problems
Most notably, utils_get_line_endings() and document_open_file_list() don't support -1 as the size anymore. If the size should be computed from null-terminated data, the caller code must take care of doing so.
Modified Paths: -------------- trunk/ChangeLog trunk/plugins/classbuilder.c trunk/plugins/htmlchars.c trunk/src/dialogs.c trunk/src/document.c trunk/src/document.h trunk/src/editor.c trunk/src/utils.c trunk/src/utils.h
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2011-06-17 22:51:51 UTC (rev 5854) +++ trunk/ChangeLog 2011-06-17 22:52:17 UTC (rev 5855) @@ -1,3 +1,11 @@ +2011-06-18 Colomban Wendling <colomban(at)geany(dot)org> + + * src/document.c, src/document.h, src/editor.c: + Remove support of size being -1 in document_open_file_list(). + * src/utils.c src/utils.h: + Remove support of size being -1 in utils_get_line_endings(). + + 2011-06-16 Colomban Wendling <colomban(at)geany(dot)org>
* src/document.c, src/main.c, src/ui_utils.c, src/utils.c:
Modified: trunk/plugins/classbuilder.c =================================================================== --- trunk/plugins/classbuilder.c 2011-06-17 22:51:51 UTC (rev 5854) +++ trunk/plugins/classbuilder.c 2011-06-17 22:52:17 UTC (rev 5855) @@ -374,7 +374,7 @@ /* Attaches a new section label at the specified table row, optionally * padded at the top, and returns the new label. */ static GtkWidget *cc_table_attach_section_label(GtkWidget *table, const gchar *text, - gint row, gboolean top_padding) + guint row, gboolean top_padding) { gchar *markup; GtkWidget *label, *align; @@ -399,7 +399,7 @@
/* Attach a new option label at the specified table row and returns * the label */ -static GtkWidget *cc_table_attach_option_label(GtkWidget *table, const gchar *text, gint row) +static GtkWidget *cc_table_attach_option_label(GtkWidget *table, const gchar *text, guint row) { GtkWidget *opt_label = cc_option_label_new(text); gtk_table_attach(GTK_TABLE(table), opt_label, @@ -412,7 +412,7 @@ * The label associated with the widget is set as data on the entry * with the "label" key, if access to it is needed later. The entry * widget is returned. */ -static GtkWidget *cc_table_attach_option_entry(GtkWidget *table, const gchar *text, gint row) +static GtkWidget *cc_table_attach_option_entry(GtkWidget *table, const gchar *text, guint row) { GtkWidget *label; GtkWidget *entry; @@ -430,7 +430,7 @@ CreateClassDialog *cc_dlg; GtkWidget *main_box, *table, *label, *hdr_hbox; GtkWidget *opt_table, *align; - gint row; + guint row;
cc_dlg = g_new0(CreateClassDialog, 1); cc_dlg->class_type = type;
Modified: trunk/plugins/htmlchars.c =================================================================== --- trunk/plugins/htmlchars.c 2011-06-17 22:51:51 UTC (rev 5854) +++ trunk/plugins/htmlchars.c 2011-06-17 22:52:17 UTC (rev 5855) @@ -649,10 +649,10 @@
if (doc != NULL && sci_has_selection(doc->editor->sci)) { - guint selection_len; + gsize selection_len; gchar *selection; GString *replacement = g_string_new(NULL); - guint i; + gsize i; gchar *new; const gchar *entity = NULL; gchar buf[7]; @@ -664,7 +664,7 @@ for (i = 0; i < selection_len; i++) { len = g_unichar_to_utf8(g_utf8_get_char(selection + i), buf); - i = len - 1 + i; + i = (guint)len - 1 + i;
buf[len] = '\0'; entity = get_entity(buf);
Modified: trunk/src/dialogs.c =================================================================== --- trunk/src/dialogs.c 2011-06-17 22:51:51 UTC (rev 5854) +++ trunk/src/dialogs.c 2011-06-17 22:52:17 UTC (rev 5855) @@ -221,7 +221,7 @@ iter_utf8, iter_middleeast; GtkTreeIter *iter_parent; gchar *encoding_string; - guint i; + gint i;
store = gtk_tree_store_new(2, G_TYPE_INT, G_TYPE_STRING);
Modified: trunk/src/document.c =================================================================== --- trunk/src/document.c 2011-06-17 22:51:51 UTC (rev 5854) +++ trunk/src/document.c 2011-06-17 22:52:17 UTC (rev 5855) @@ -307,7 +307,7 @@ length = 30;
base_name = g_path_get_basename(DOC_FILENAME(doc)); - short_name = utils_str_middle_truncate(base_name, length); + short_name = utils_str_middle_truncate(base_name, (guint)length);
g_free(base_name);
@@ -926,7 +926,7 @@ ScintillaObject *sci = editor->sci; gsize count = 0; struct Sci_TextToFind ttf; - gchar *soft_tab = g_strnfill(iprefs->width, ' '); + gchar *soft_tab = g_strnfill((gsize)iprefs->width, ' '); gchar *regex = g_strconcat("^\t+", soft_tab, "[^ ]", NULL);
g_free(soft_tab); @@ -955,7 +955,7 @@ { const GeanyIndentPrefs *iprefs = editor_get_indent_prefs(editor); ScintillaObject *sci = editor->sci; - guint line, line_count; + gint line, line_count; gsize tabs = 0, spaces = 0;
if (detect_tabs_and_spaces(editor)) @@ -997,7 +997,7 @@ { const GeanyIndentPrefs *iprefs = editor_get_indent_prefs(editor); ScintillaObject *sci = editor->sci; - guint line, line_count; + gint line, line_count; gint widths[7] = { 0 }; /* width can be from 2 to 8 */ gint count, width, i;
@@ -1282,18 +1282,15 @@
/* Takes a new line separated list of filename URIs and opens each file. - * length is the length of the string or -1 if it should be detected */ -void document_open_file_list(const gchar *data, gssize length) + * length is the length of the string */ +void document_open_file_list(const gchar *data, gsize length) { - gint i; + guint i; gchar *filename; gchar **list;
g_return_if_fail(data != NULL);
- if (length < 0) - length = strlen(data); - list = g_strsplit(data, utils_get_eol_char(utils_get_line_endings(data, length)), 0);
for (i = 0; list[i] != NULL; i++)
Modified: trunk/src/document.h =================================================================== --- trunk/src/document.h 2011-06-17 22:51:51 UTC (rev 5854) +++ trunk/src/document.h 2011-06-17 22:52:17 UTC (rev 5855) @@ -209,7 +209,7 @@ GeanyDocument *document_open_file_full(GeanyDocument *doc, const gchar *filename, gint pos, gboolean readonly, GeanyFiletype *ft, const gchar *forced_enc);
-void document_open_file_list(const gchar *data, gssize length); +void document_open_file_list(const gchar *data, gsize length);
void document_open_files(const GSList *filenames, gboolean readonly, GeanyFiletype *ft, const gchar *forced_enc);
Modified: trunk/src/editor.c =================================================================== --- trunk/src/editor.c 2011-06-17 22:51:51 UTC (rev 5854) +++ trunk/src/editor.c 2011-06-17 22:52:17 UTC (rev 5855) @@ -1102,7 +1102,7 @@ case SCN_URIDROPPED: if (nt->text != NULL) { - document_open_file_list(nt->text, -1); + document_open_file_list(nt->text, strlen(nt->text)); } break;
Modified: trunk/src/utils.c =================================================================== --- trunk/src/utils.c 2011-06-17 22:51:51 UTC (rev 5854) +++ trunk/src/utils.c 2011-06-17 22:52:17 UTC (rev 5855) @@ -120,15 +120,12 @@
/* taken from anjuta, to determine the EOL mode of the file */ -gint utils_get_line_endings(const gchar* buffer, glong size) +gint utils_get_line_endings(const gchar* buffer, gsize size) { - gint i; + gsize i; guint cr, lf, crlf, max_mode; gint mode;
- if (size == -1) - size = strlen(buffer); - cr = lf = crlf = 0;
for (i = 0; i < size ; i++) @@ -247,7 +244,7 @@ else { FILE *fp; - gint bytes_written, len; + gsize bytes_written, len; gboolean fail = FALSE;
if (filename == NULL) @@ -266,7 +263,7 @@ { fail = TRUE; geany_debug( - "utils_write_file(): written only %d bytes, had to write %d bytes to %s", + "utils_write_file(): written only %"G_GSIZE_FORMAT" bytes, had to write %"G_GSIZE_FORMAT" bytes to %s", bytes_written, len, filename); } if (fclose(fp) != 0) @@ -291,7 +288,7 @@ gchar *utils_find_open_xml_tag(const gchar sel[], gint size) { const gchar *cur, *begin; - gint len; + gsize len;
cur = utils_find_open_xml_tag_pos(sel, size); if (cur == NULL) @@ -302,7 +299,7 @@ while (strchr(":_-.", *cur) || isalnum(*cur)) cur++;
- len = cur - begin; + len = (gsize)(cur - begin); return len ? g_strndup(begin, len) : NULL; }
Modified: trunk/src/utils.h =================================================================== --- trunk/src/utils.h 2011-06-17 22:51:51 UTC (rev 5854) +++ trunk/src/utils.h 2011-06-17 22:52:17 UTC (rev 5855) @@ -132,7 +132,7 @@
void utils_open_browser(const gchar *uri);
-gint utils_get_line_endings(const gchar* buffer, glong size); +gint utils_get_line_endings(const gchar* buffer, gsize size);
gboolean utils_isbrace(gchar c, gboolean include_angles);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.