SF.net SVN: geany: [1059] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Thu Dec 7 16:09:45 UTC 2006
Revision: 1059
http://svn.sourceforge.net/geany/?rev=1059&view=rev
Author: eht16
Date: 2006-12-07 08:09:45 -0800 (Thu, 07 Dec 2006)
Log Message:
-----------
Revert the last change to utils_str_equal() and use it again because g_str_equal() is not NULL-safe.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/about.c
trunk/src/build.c
trunk/src/callbacks.c
trunk/src/document.c
trunk/src/encodings.c
trunk/src/gb.c
trunk/src/keyfile.c
trunk/src/prefs.c
trunk/src/sci_cb.c
trunk/src/search.c
trunk/src/symbols.c
trunk/src/ui_utils.c
trunk/src/utils.c
trunk/src/utils.h
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2006-12-07 15:47:00 UTC (rev 1058)
+++ trunk/ChangeLog 2006-12-07 16:09:45 UTC (rev 1059)
@@ -7,6 +7,11 @@
scintilla/include/SciLexer.h, src/highlighting.c:
Added new scintilla lexer for D. It needs testing and there is more
work to do to get it working properly.
+ * src/about.c, src/build.c, src/callbacks.c, src/document.c,
+ src/encodings.c, src/gb.c, src/keyfile.c, src/prefs.c, src/sci_cb.c,
+ src/search.c, src/symbols.c, src/ui_utils.c, src/utils.c,
+ src/utils.h: Revert the last change to utils_str_equal() and use it
+ again because g_str_equal() is not NULL-safe.
2006-12-06 Enrico Tröger <enrico.troeger at uvena.de>
Modified: trunk/src/about.c
===================================================================
--- trunk/src/about.c 2006-12-07 15:47:00 UTC (rev 1058)
+++ trunk/src/about.c 2006-12-07 16:09:45 UTC (rev 1059)
@@ -132,7 +132,7 @@
header_label = gtk_label_new(NULL);
gtk_label_set_use_markup(GTK_LABEL(header_label), TRUE);
// print the subversion revision if it is available
- g_snprintf(buffer, sizeof(buffer), HEADER, (g_str_equal(REVISION, "-1")) ? "" : " (" REVISION ")");
+ g_snprintf(buffer, sizeof(buffer), HEADER, (utils_str_equal(REVISION, "-1")) ? "" : " (" REVISION ")");
gtk_label_set_markup(GTK_LABEL(header_label), buffer);
gtk_widget_show(header_label);
gtk_box_pack_start(GTK_BOX(header_hbox), header_label, FALSE,FALSE,0);
Modified: trunk/src/build.c
===================================================================
--- trunk/src/build.c 2006-12-07 15:47:00 UTC (rev 1058)
+++ trunk/src/build.c 2006-12-07 16:09:45 UTC (rev 1059)
@@ -1147,9 +1147,9 @@
GtkWidget *menuitem =
build_get_menu_items(filetypes[run_info.file_type_id])->item_exec;
- if (stop && g_str_equal(
+ if (stop && utils_str_equal(
gtk_tool_button_get_stock_id(GTK_TOOL_BUTTON(app->run_button)), "gtk-stop")) return;
- if (! stop && g_str_equal(
+ if (! stop && utils_str_equal(
gtk_tool_button_get_stock_id(GTK_TOOL_BUTTON(app->run_button)), "gtk-execute")) return;
// use the run button also as stop button
Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c 2006-12-07 15:47:00 UTC (rev 1058)
+++ trunk/src/callbacks.c 2006-12-07 16:09:45 UTC (rev 1059)
@@ -1604,24 +1604,24 @@
if (idx < 0 || ! doc_list[idx].is_valid) return;
- if (g_str_equal(_("dd.mm.yyyy"), (gchar*) user_data))
+ if (utils_str_equal(_("dd.mm.yyyy"), (gchar*) user_data))
format = "%d.%m.%Y";
- else if (g_str_equal(_("mm.dd.yyyy"), (gchar*) user_data))
+ else if (utils_str_equal(_("mm.dd.yyyy"), (gchar*) user_data))
format = "%m.%d.%Y";
- else if (g_str_equal(_("yyyy/mm/dd"), (gchar*) user_data))
+ else if (utils_str_equal(_("yyyy/mm/dd"), (gchar*) user_data))
format = "%Y/%m/%d";
- else if (g_str_equal(_("dd.mm.yyyy hh:mm:ss"), (gchar*) user_data))
+ else if (utils_str_equal(_("dd.mm.yyyy hh:mm:ss"), (gchar*) user_data))
format = "%d.%m.%Y %H:%M:%S";
- else if (g_str_equal(_("mm.dd.yyyy hh:mm:ss"), (gchar*) user_data))
+ else if (utils_str_equal(_("mm.dd.yyyy hh:mm:ss"), (gchar*) user_data))
format = "%m.%d.%Y %H:%M:%S";
- else if (g_str_equal(_("yyyy/mm/dd hh:mm:ss"), (gchar*) user_data))
+ else if (utils_str_equal(_("yyyy/mm/dd hh:mm:ss"), (gchar*) user_data))
format = "%Y/%m/%d %H:%M:%S";
- else if (g_str_equal(_("Use custom date format"), (gchar*) user_data))
+ else if (utils_str_equal(_("Use custom date format"), (gchar*) user_data))
format = app->custom_date_format;
else
{
// set default value
- if (g_str_equal("", app->custom_date_format)) app->custom_date_format = g_strdup("%d.%m.%Y");
+ if (utils_str_equal("", app->custom_date_format)) app->custom_date_format = g_strdup("%d.%m.%Y");
dialogs_show_input(_("Custom date format"),
_("Enter here a custom date and time format. You can use any conversion specifiers which can be used with the ANSI C strftime function. See \"man strftime\" for more information."),
@@ -1655,7 +1655,7 @@
gint idx = document_get_cur_idx(), pos = -1;
gchar *text;
- if (g_str_equal(user_data, "blank"))
+ if (utils_str_equal(user_data, "blank"))
{
text = g_strdup("#include \"\"\n");
pos = editor_info.click_pos + 10;
@@ -1690,7 +1690,7 @@
{
newstr = gtk_entry_get_text(
GTK_ENTRY(lookup_widget(GTK_WIDGET(dialog), "includes_entry1")));
- if (! g_str_equal(newstr, programs->compiler))
+ if (! utils_str_equal(newstr, programs->compiler))
{
if (programs->compiler) g_free(programs->compiler);
programs->compiler = g_strdup(newstr);
@@ -1701,7 +1701,7 @@
{
newstr = gtk_entry_get_text(
GTK_ENTRY(lookup_widget(GTK_WIDGET(dialog), "includes_entry2")));
- if (! g_str_equal(newstr, programs->linker))
+ if (! utils_str_equal(newstr, programs->linker))
{
if (programs->linker) g_free(programs->linker);
programs->linker = g_strdup(newstr);
@@ -1712,7 +1712,7 @@
{
newstr = gtk_entry_get_text(
GTK_ENTRY(lookup_widget(GTK_WIDGET(dialog), "includes_entry3")));
- if (! g_str_equal(newstr, programs->run_cmd))
+ if (! utils_str_equal(newstr, programs->run_cmd))
{
if (programs->run_cmd) g_free(programs->run_cmd);
programs->run_cmd = g_strdup(newstr);
@@ -1738,7 +1738,7 @@
newstr = gtk_entry_get_text(
GTK_ENTRY(lookup_widget(GTK_WIDGET(dialog), "tex_entry1")));
- if (! g_str_equal(newstr, programs->compiler))
+ if (! utils_str_equal(newstr, programs->compiler))
{
if (programs->compiler) g_free(programs->compiler);
programs->compiler = g_strdup(newstr);
@@ -1746,7 +1746,7 @@
}
newstr = gtk_entry_get_text(
GTK_ENTRY(lookup_widget(GTK_WIDGET(dialog), "tex_entry2")));
- if (! g_str_equal(newstr, programs->linker))
+ if (! utils_str_equal(newstr, programs->linker))
{
if (programs->linker) g_free(programs->linker);
programs->linker = g_strdup(newstr);
@@ -1754,7 +1754,7 @@
}
newstr = gtk_entry_get_text(
GTK_ENTRY(lookup_widget(GTK_WIDGET(dialog), "tex_entry3")));
- if (! g_str_equal(newstr, programs->run_cmd))
+ if (! utils_str_equal(newstr, programs->run_cmd))
{
if (programs->run_cmd) g_free(programs->run_cmd);
programs->run_cmd = g_strdup(newstr);
@@ -1762,7 +1762,7 @@
}
newstr = gtk_entry_get_text(
GTK_ENTRY(lookup_widget(GTK_WIDGET(dialog), "tex_entry4")));
- if (! g_str_equal(newstr, programs->run_cmd2))
+ if (! utils_str_equal(newstr, programs->run_cmd2))
{
if (programs->run_cmd2) g_free(programs->run_cmd2);
programs->run_cmd2 = g_strdup(newstr);
@@ -1845,7 +1845,7 @@
guint i = GPOINTER_TO_INT(user_data);
if (app->ignore_callback || ! DOC_IDX_VALID(idx) || encodings[i].charset == NULL ||
- g_str_equal(encodings[i].charset, doc_list[idx].encoding)) return;
+ utils_str_equal(encodings[i].charset, doc_list[idx].encoding)) return;
if (doc_list[idx].readonly)
{
Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c 2006-12-07 15:47:00 UTC (rev 1058)
+++ trunk/src/document.c 2006-12-07 16:09:45 UTC (rev 1059)
@@ -92,7 +92,7 @@
// ignore the case of filenames and paths under WIN32, causes errors if not
if (dl_fname && ! strcasecmp(dl_fname, filename)) return i;
#else
- if (dl_fname && g_str_equal(dl_fname, filename)) return i;
+ if (dl_fname && utils_str_equal(dl_fname, filename)) return i;
#endif
}
return -1;
@@ -427,7 +427,7 @@
handle_forced_encoding(gchar **data, gsize *size, const gchar *forced_enc, gchar **enc,
gboolean *bom)
{
- if (g_str_equal(forced_enc, "UTF-8"))
+ if (utils_str_equal(forced_enc, "UTF-8"))
{
if (! g_utf8_validate(*data, *size, NULL))
{
@@ -435,7 +435,7 @@
}
else
{
- *bom = g_str_equal(utils_scan_unicode_bom(*data), "UTF-8");
+ *bom = utils_str_equal(utils_scan_unicode_bom(*data), "UTF-8");
*enc = g_strdup(forced_enc);
}
}
@@ -452,7 +452,7 @@
g_free(*data);
*data = (void*)converted_text;
*size = strlen(converted_text);
- *bom = g_str_equal(utils_scan_unicode_bom(*data), "UTF-8");
+ *bom = utils_str_equal(utils_scan_unicode_bom(*data), "UTF-8");
*enc = g_strdup(forced_enc);
}
}
@@ -631,7 +631,7 @@
if (forced_enc != NULL)
{
// the encoding should be ignored(requested by user), so open the file "as it is"
- if (g_str_equal(forced_enc, encodings[GEANY_ENCODING_NONE].charset))
+ if (utils_str_equal(forced_enc, encodings[GEANY_ENCODING_NONE].charset))
{
bom = FALSE;
enc = g_strdup(encodings[GEANY_ENCODING_NONE].charset);
@@ -830,8 +830,8 @@
}
// save in original encoding, skip when it is already UTF-8 or has the encoding "None"
- if (doc_list[idx].encoding != NULL && ! g_str_equal(doc_list[idx].encoding, "UTF-8") &&
- ! g_str_equal(doc_list[idx].encoding, encodings[GEANY_ENCODING_NONE].charset))
+ if (doc_list[idx].encoding != NULL && ! utils_str_equal(doc_list[idx].encoding, "UTF-8") &&
+ ! utils_str_equal(doc_list[idx].encoding, encodings[GEANY_ENCODING_NONE].charset))
{
GError *conv_error = NULL;
gchar* conv_file_contents = NULL;
@@ -1538,7 +1538,7 @@
void document_set_encoding(gint idx, const gchar *new_encoding)
{
if (! DOC_IDX_VALID(idx) || new_encoding == NULL ||
- g_str_equal(new_encoding, doc_list[idx].encoding)) return;
+ utils_str_equal(new_encoding, doc_list[idx].encoding)) return;
g_free(doc_list[idx].encoding);
doc_list[idx].encoding = g_strdup(new_encoding);
@@ -1635,7 +1635,7 @@
doc_list[idx].changed =
(sci_is_modified(doc_list[idx].sci) ||
doc_list[idx].has_bom != doc_list[idx].saved_encoding.has_bom ||
- ! g_str_equal(doc_list[idx].encoding, doc_list[idx].saved_encoding.encoding));
+ ! utils_str_equal(doc_list[idx].encoding, doc_list[idx].saved_encoding.encoding));
document_set_text_changed(idx);
}
Modified: trunk/src/encodings.c
===================================================================
--- trunk/src/encodings.c 2006-12-07 15:47:00 UTC (rev 1058)
+++ trunk/src/encodings.c 2006-12-07 16:09:45 UTC (rev 1059)
@@ -176,7 +176,7 @@
i = 0;
while (i < GEANY_ENCODINGS_MAX)
{
- if (g_str_equal(charset, encodings[i].charset)) break;
+ if (utils_str_equal(charset, encodings[i].charset)) break;
i++;
}
if (i == GEANY_ENCODINGS_MAX) i = GEANY_ENCODING_UTF_8; // fallback to UTF-8
Modified: trunk/src/gb.c
===================================================================
--- trunk/src/gb.c 2006-12-07 15:47:00 UTC (rev 1058)
+++ trunk/src/gb.c 2006-12-07 16:09:45 UTC (rev 1059)
@@ -1324,7 +1324,7 @@
{
text[4] = 'y';
text[5] = '\0';
- if (g_str_equal(text, "geany")) gb_start_easteregg();
+ if (utils_str_equal(text, "geany")) gb_start_easteregg();
return TRUE;
break;
}
Modified: trunk/src/keyfile.c
===================================================================
--- trunk/src/keyfile.c 2006-12-07 15:47:00 UTC (rev 1058)
+++ trunk/src/keyfile.c 2006-12-07 16:09:45 UTC (rev 1059)
@@ -383,7 +383,7 @@
vc = g_new0(VteConfig, 1);
vte_info.dir = utils_get_setting_string(config, "VTE", "last_dir", NULL);
- if ((vte_info.dir == NULL || g_str_equal(vte_info.dir, "")) && pw != NULL)
+ if ((vte_info.dir == NULL || utils_str_equal(vte_info.dir, "")) && pw != NULL)
// last dir is not set, fallback to user's home directory
vte_info.dir = g_strdup(pw->pw_dir);
else if (vte_info.dir == NULL && pw == NULL)
Modified: trunk/src/prefs.c
===================================================================
--- trunk/src/prefs.c 2006-12-07 15:47:00 UTC (rev 1058)
+++ trunk/src/prefs.c 2006-12-07 16:09:45 UTC (rev 1059)
@@ -872,7 +872,7 @@
for (idx = 0; idx < GEANY_MAX_KEYS; idx++)
{
- if (g_str_equal(dialog_key_name, keys[idx]->label)) break;
+ if (utils_str_equal(dialog_key_name, keys[idx]->label)) break;
}
gtk_accelerator_parse(gtk_label_get_text(GTK_LABEL(dialog_label)), &lkey, &lmods);
Modified: trunk/src/sci_cb.c
===================================================================
--- trunk/src/sci_cb.c 2006-12-07 15:47:00 UTC (rev 1058)
+++ trunk/src/sci_cb.c 2006-12-07 16:09:45 UTC (rev 1059)
@@ -1090,15 +1090,15 @@
str_found = utils_find_open_xml_tag(sel, pos - min, FALSE);
// when found string is something like br, img or another short tag, quit
- if (g_str_equal(str_found, "br")
- || g_str_equal(str_found, "img")
- || g_str_equal(str_found, "base")
- || g_str_equal(str_found, "basefont") // < or not <
- || g_str_equal(str_found, "frame")
- || g_str_equal(str_found, "input")
- || g_str_equal(str_found, "link")
- || g_str_equal(str_found, "area")
- || g_str_equal(str_found, "meta"))
+ if (utils_str_equal(str_found, "br")
+ || utils_str_equal(str_found, "img")
+ || utils_str_equal(str_found, "base")
+ || utils_str_equal(str_found, "basefont") // < or not <
+ || utils_str_equal(str_found, "frame")
+ || utils_str_equal(str_found, "input")
+ || utils_str_equal(str_found, "link")
+ || utils_str_equal(str_found, "area")
+ || utils_str_equal(str_found, "meta"))
{
return FALSE;
}
@@ -1115,7 +1115,7 @@
if (ch == '>')
{
SSM(sci, SCI_SETSEL, pos, pos);
- if (g_str_equal(str_found, "table")) sci_cb_auto_table(sci, pos);
+ if (utils_str_equal(str_found, "table")) sci_cb_auto_table(sci, pos);
}
sci_end_undo_action(sci);
g_free(to_insert);
@@ -1710,19 +1710,17 @@
SSM(sci, SCI_BRACEBADLIGHT, -1, 0);
}
}
-
-
void sci_cb_auto_multiline(ScintillaObject *sci, gint pos)
{
gint style = SSM(sci, SCI_GETSTYLEAT, pos - 2, 0);
gint lexer = SSM(sci, SCI_GETLEXER, 0, 0);
gint i = pos;
- if ((lexer == SCLEX_CPP && style == SCE_C_COMMENT) ||
+ if ((lexer == SCLEX_CPP && (style == SCE_C_COMMENT || style == SCE_C_COMMENTDOC)) ||
(lexer == SCLEX_HTML && style == SCE_HPHP_COMMENT))
{
while (isspace(sci_get_char_at(sci, i))) i--;
- if (sci_get_char_at(sci, i) == '/' && sci_get_char_at(sci, i - 1) == '*') return;
+ if (sci_get_char_at(sci, i - 1) == '*' && sci_get_char_at(sci, i) == '/') return;
if (strlen(indent) == 0)
{ // if strlen(indent) is 0, there is no indentation, but should
Modified: trunk/src/search.c
===================================================================
--- trunk/src/search.c 2006-12-07 15:47:00 UTC (rev 1058)
+++ trunk/src/search.c 2006-12-07 16:09:45 UTC (rev 1059)
@@ -632,7 +632,7 @@
}
// put the focus to the directory entry if it is empty
- if (g_str_equal(gtk_entry_get_text(GTK_ENTRY(entry)), ""))
+ if (utils_str_equal(gtk_entry_get_text(GTK_ENTRY(entry)), ""))
gtk_widget_grab_focus(dir_combo);
else
gtk_widget_grab_focus(combo);
@@ -948,7 +948,7 @@
const gchar *utf8_dir =
gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(dir_combo))));
- if (utf8_dir == NULL || g_str_equal(utf8_dir, ""))
+ if (utf8_dir == NULL || utils_str_equal(utf8_dir, ""))
msgwin_status_add(_("Invalid directory for find in files."));
else if (search_text && *search_text)
{
Modified: trunk/src/symbols.c
===================================================================
--- trunk/src/symbols.c 2006-12-07 15:47:00 UTC (rev 1058)
+++ trunk/src/symbols.c 2006-12-07 16:09:45 UTC (rev 1059)
@@ -169,7 +169,7 @@
}
// do this comparison only once
- if (g_str_equal(doc_list[idx].encoding, "UTF-8")) doc_is_utf8 = TRUE;
+ if (utils_str_equal(doc_list[idx].encoding, "UTF-8")) doc_is_utf8 = TRUE;
for (i = 0; i < (doc_list[idx].tm_file)->tags_array->len; ++i)
{
@@ -254,7 +254,7 @@
for (i = 0; i < tags->len; ++i)
{
- if (g_str_equal(TM_TAG(tags->pdata[i])->name, tag_name))
+ if (utils_str_equal(TM_TAG(tags->pdata[i])->name, tag_name))
return TM_TAG(tags->pdata[i]);
}
return NULL;
Modified: trunk/src/ui_utils.c
===================================================================
--- trunk/src/ui_utils.c 2006-12-07 15:47:00 UTC (rev 1058)
+++ trunk/src/ui_utils.c 2006-12-07 16:09:45 UTC (rev 1059)
@@ -912,7 +912,7 @@
gchar *menu_text = menu_item_get_text(GTK_MENU_ITEM(list_data));
gint result;
- if (g_str_equal(menu_text, user_data))
+ if (utils_str_equal(menu_text, user_data))
result = 0;
else
result = 1;
@@ -1144,7 +1144,7 @@
if (gtk_tree_model_get_iter_first(model, &iter))
{
gtk_tree_model_get(model, &iter, 0, &combo_text, -1);
- equal = g_str_equal(combo_text, text);
+ equal = utils_str_equal(combo_text, text);
g_free(combo_text);
}
if (equal) return; // don't prepend duplicate
Modified: trunk/src/utils.c
===================================================================
--- trunk/src/utils.c 2006-12-07 15:47:00 UTC (rev 1058)
+++ trunk/src/utils.c 2006-12-07 16:09:45 UTC (rev 1059)
@@ -679,6 +679,23 @@
}
+/* (taken from libexo from os-cillation)
+ * NULL-safe string comparison. Returns TRUE if both a and b are
+ * NULL or if a and b refer to valid strings which are equal.
+ */
+gboolean utils_str_equal(const gchar *a, const gchar *b)
+{
+ if (a == NULL && b == NULL) return TRUE;
+ else if (a == NULL || b == NULL) return FALSE;
+
+ while (*a == *b++)
+ if (*a++ == '\0')
+ return TRUE;
+
+ return FALSE;
+}
+
+
/* removes the extension from filename and return the result in
* a newly allocated string */
gchar *utils_remove_ext_from_filename(const gchar *filename)
Modified: trunk/src/utils.h
===================================================================
--- trunk/src/utils.h 2006-12-07 15:47:00 UTC (rev 1058)
+++ trunk/src/utils.h 2006-12-07 16:09:45 UTC (rev 1059)
@@ -71,6 +71,12 @@
gdouble utils_scale_round(gdouble val, gdouble factor);
+/* (taken from libexo from os-cillation)
+ * NULL-safe string comparison. Returns TRUE if both a and b are
+ * NULL or if a and b refer to valid strings which are equal.
+ */
+gboolean utils_str_equal(const gchar *a, const gchar *b);
+
/* removes the extension from filename and return the result in
* a newly allocated string */
gchar *utils_remove_ext_from_filename(const gchar *filename);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list