SF.net SVN: geany: [1603] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Sat Jun 9 12:11:19 UTC 2007
Revision: 1603
http://svn.sourceforge.net/geany/?rev=1603&view=rev
Author: eht16
Date: 2007-06-09 05:11:18 -0700 (Sat, 09 Jun 2007)
Log Message:
-----------
Apply from Fran?\195?\167ois Cami and Guillaume Duviol to improve replacement of tabs by spaces (thank you).
Modified Paths:
--------------
trunk/ChangeLog
trunk/THANKS
trunk/src/document.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2007-06-08 19:09:35 UTC (rev 1602)
+++ trunk/ChangeLog 2007-06-09 12:11:18 UTC (rev 1603)
@@ -1,3 +1,10 @@
+2007-06-09 Enrico Tröger <enrico.troeger at uvena.de>
+
+ * THANKS, src/document.c:
+ Apply from François Cami and Guillaume Duviol to improve replacement
+ of tabs by spaces (thank you).
+
+
2007-06-08 Frank Lanitz <frank at frank.uvena.de>
* THANKS, src/about.c: Added new translator Adrovane Marques Kade.
Modified: trunk/THANKS
===================================================================
--- trunk/THANKS 2007-06-08 19:09:35 UTC (rev 1602)
+++ trunk/THANKS 2007-06-09 12:11:18 UTC (rev 1603)
@@ -30,6 +30,7 @@
Guillaume Hoffmann <guillaumh(at)gmail(dot)com> - Haskell filetype patch
Peter Strand <peter(at)zarquon(dot)se> - Haskell CTags patch
Dave Moore <wrex006(at)gmail(dot)com> - code navigation patch
+François Cami <francois.cami(at)free(dot)fr>, Guillaume Duviol - tab replacement patch
Translators:
----------------------------------
Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c 2007-06-08 19:09:35 UTC (rev 1602)
+++ trunk/src/document.c 2007-06-09 12:11:18 UTC (rev 1603)
@@ -1800,7 +1800,7 @@
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;
struct TextToFind ttf;
@@ -1811,22 +1811,25 @@
tab_len = sci_get_tab_width(doc_list[idx].sci);
ttf.chrg.cpMin = 0;
ttf.chrg.cpMax = sci_get_length(doc_list[idx].sci);
- ttf.lpstrText = (gchar*)"\t";
- tab_str = g_strnfill(tab_len, ' ');
+ ttf.lpstrText = (gchar*) "\t";
while (TRUE)
{
search_pos = sci_find_text(doc_list[idx].sci, SCFIND_MATCHCASE, &ttf);
- if (search_pos == -1) break;
+ 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
+ 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
+ g_free(tab_str);
}
sci_end_undo_action(doc_list[idx].sci);
- g_free(tab_str);
}
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