Revision: 414 Author: ntrel Date: 2006-06-05 15:04:50 -0700 (Mon, 05 Jun 2006) ViewCVS: http://svn.sourceforge.net/geany/?rev=414&view=rev
Log Message: ----------- Fix empty white box glitch with tag autocompletion, also improves typing response efficiency
Modified Paths: -------------- trunk/ChangeLog trunk/src/sci_cb.c Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2006-06-05 17:39:58 UTC (rev 413) +++ trunk/ChangeLog 2006-06-05 22:04:50 UTC (rev 414) @@ -1,6 +1,8 @@ 2006-06-05 Nick Treleaven nick.treleaven@btinternet.com
* doc/geany.docbook: Added save current file behaviour when building. + * src/sci_cb.c: Fix empty white box glitch with tag autocompletion, + also improves typing response efficiency.
2006-06-05 Enrico Troeger enrico.troeger@uvena.de
Modified: trunk/src/sci_cb.c =================================================================== --- trunk/src/sci_cb.c 2006-06-05 17:39:58 UTC (rev 413) +++ trunk/src/sci_cb.c 2006-06-05 22:04:50 UTC (rev 414) @@ -398,7 +398,6 @@ gint line_start = sci_get_position_from_line(sci, line); gint line_len = sci_get_line_length(sci, line); gint line_pos = pos - line_start - 1; - gint i = 0; gint current = pos - line_start; gint rootlen; gint startword = current, lexer = SSM(sci, SCI_GETLEXER, 0, 0); @@ -407,14 +406,15 @@ gchar *root; const GPtrArray *tags;
- sci_get_line(sci, line, linebuf); - //if (lexer != SCLEX_CPP && lexer != SCLEX_HTML && lexer != SCLEX_PASCAL) return FALSE; if (lexer == SCLEX_HTML && style == SCE_H_DEFAULT) return FALSE; if (lexer == SCLEX_CPP && (style == SCE_C_COMMENT || style == SCE_C_COMMENTLINE || style == SCE_C_COMMENTDOC)) return FALSE;
- while ((startword > 0) && (strchr(GEANY_WORDCHARS, linebuf[startword - 1]) || strchr(GEANY_WORDCHARS, linebuf[startword - 1]))) + sci_get_line(sci, line, linebuf); + + // find the start of the current word + while ((startword > 0) && (strchr(GEANY_WORDCHARS, linebuf[startword - 1]))) startword--; linebuf[current] = '\0'; root = linebuf + startword; @@ -440,11 +440,13 @@ } else { // C and C++ tag autocompletion - while (! g_ascii_isspace(linebuf[line_pos - i])) i++; + gint i = 0; + + while ((line_pos - i >= 0) && ! g_ascii_isspace(linebuf[line_pos - i])) i++; if (i < 4) return FALSE; // go home if typed less than 4 chars
tags = tm_workspace_find(root, tm_tag_max_t, NULL, TRUE); - if (NULL != tags) + if (NULL != tags && tags->len > 0) { GString *words = g_string_sized_new(150); TMTag *tag;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.