Hi Cami,
Thanks a lot, now it's perfect.
Cheers Amir
FD Cami francois.cami@free.fr wrote: Hi List,
On Fri, 8 Jun 2007 01:20:50 +0200 FD Cami wrote:
Patch attached & validated against the attached test file and sonata.py with tab_len = 8.
The same patch without the obvious memory leak...
Cheers
François Cami & Guillaume Duviol --- ../geany-0.11/src/document.c 2007-05-21 17:36:37.000000000 +0200 +++ src/document.c 2007-06-08 07:06:17.000000000 +0200 @@ -1785,5 +1785,5 @@ void document_replace_tabs(gint idx) { - gint search_pos; + gint search_pos, pos_in_line, current_tab_true_length; gint tab_len; gchar *tab_str; @@ -1797,5 +1797,4 @@ ttf.chrg.cpMax = sci_get_length(doc_list[idx].sci); ttf.lpstrText = (gchar*)"\t"; - tab_str = g_strnfill(tab_len, ' ');
while (TRUE) @@ -1804,12 +1803,15 @@ if (search_pos == -1) break;
+ pos_in_line = sci_get_col_from_position(doc_list[idx].sci,search_pos); + current_tab_true_length = tab_len - (pos_in_line % tab_len) ; + tab_str = g_strnfill(current_tab_true_length, ' '); sci_target_start(doc_list[idx].sci, search_pos); sci_target_end(doc_list[idx].sci, search_pos + 1); sci_target_replace(doc_list[idx].sci, tab_str, FALSE); - ttf.chrg.cpMin = search_pos + tab_len - 1; // next search starts after replacement - ttf.chrg.cpMax += tab_len - 1; // update end of range now text has changed + g_free(tab_str); + ttf.chrg.cpMin = search_pos + current_tab_true_length - 1; // next search starts after replacement + ttf.chrg.cpMax += current_tab_true_length - 1; // update end of range now text has changed } sci_end_undo_action(doc_list[idx].sci); - g_free(tab_str); }
_______________________________________________ Geany mailing list Geany@uvena.de http://uvena.de/cgi-bin/mailman/listinfo/geany
--------------------------------- Pinpoint customers who are looking for what you sell.