Revision: 613 Author: eht16 Date: 2006-07-23 13:26:57 -0700 (Sun, 23 Jul 2006) ViewCVS: http://svn.sourceforge.net/geany/?rev=613&view=rev
Log Message: ----------- Let Find usage search for the current selection if there is one.
Modified Paths: -------------- trunk/ChangeLog trunk/src/callbacks.c Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2006-07-23 16:00:46 UTC (rev 612) +++ trunk/ChangeLog 2006-07-23 20:26:57 UTC (rev 613) @@ -4,6 +4,8 @@ * src/documents.c: Fixed some mistakes from last commit. * src/dialogs.c, src/utils.c, src/document.c, src/geany.h: Renamed document element unicode_bom in has_bom. + * src/callbacks.c: + Let Find usage search for the current selection if there is one.
2006-07-22 Nick Treleaven nick.treleaven@btinternet.com
Modified: trunk/src/callbacks.c =================================================================== --- trunk/src/callbacks.c 2006-07-23 16:00:46 UTC (rev 612) +++ trunk/src/callbacks.c 2006-07-23 20:26:57 UTC (rev 613) @@ -1331,19 +1331,30 @@ { gint i, pos, line = -1; gint flags = SCFIND_MATCHCASE | SCFIND_WHOLEWORD; + gint idx; struct TextToFind ttf; - gchar *buffer, *short_file_name, *string; + gchar *buffer, *short_file_name, *string, *search_text;
gtk_notebook_set_current_page(GTK_NOTEBOOK(msgwindow.notebook), MSG_MESSAGE); gtk_list_store_clear(msgwindow.store_msg); + + idx = document_get_cur_idx(); + if (sci_can_copy(doc_list[idx].sci)) + { // take selected text if there is a selection + search_text = g_malloc(sci_get_selected_text_length(doc_list[idx].sci) + 1); + sci_get_selected_text(doc_list[idx].sci, search_text); + } + else + search_text = g_strdup(current_word); + for(i = 0; i < GEANY_MAX_OPEN_FILES; i++) { if (doc_list[i].is_valid) { ttf.chrg.cpMin = 0; ttf.chrg.cpMax = sci_get_length(doc_list[i].sci); - ttf.lpstrText = g_malloc(sizeof current_word); - strncpy(ttf.lpstrText, current_word, sizeof current_word); + ttf.lpstrText = g_malloc(sizeof search_text); + strncpy(ttf.lpstrText, search_text, sizeof search_text); while (1) { pos = sci_find_text(doc_list[i].sci, flags, &ttf); @@ -1369,7 +1380,9 @@ } } if (line == -1) // no matches were found (searching from unnamed file) - msgwin_status_add(_("No matches found for '%s'."), current_word); + msgwin_status_add(_("No matches found for '%s'."), search_text); + + g_free(search_text); }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.