[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53841] trunk/blender/source/blender: dont add identifiers starting with digits to autocomplete

Campbell Barton ideasman42 at gmail.com
Wed Jan 16 05:43:43 CET 2013


Revision: 53841
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53841
Author:   campbellbarton
Date:     2013-01-16 04:43:37 +0000 (Wed, 16 Jan 2013)
Log Message:
-----------
dont add identifiers starting with digits to autocomplete

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_text.h
    trunk/blender/source/blender/blenkernel/intern/text.c
    trunk/blender/source/blender/editors/space_text/text_autocomplete.c

Modified: trunk/blender/source/blender/blenkernel/BKE_text.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_text.h	2013-01-16 04:23:55 UTC (rev 53840)
+++ trunk/blender/source/blender/blenkernel/BKE_text.h	2013-01-16 04:43:37 UTC (rev 53841)
@@ -105,6 +105,7 @@
 int text_check_delim(const char ch);
 int text_check_digit(const char ch);
 int text_check_identifier(const char ch);
+int text_check_identifier_nodigit(const char ch);
 int text_check_whitespace(const char ch);
 int text_find_identifier_start(const char *str, int i);
 

Modified: trunk/blender/source/blender/blenkernel/intern/text.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/text.c	2013-01-16 04:23:55 UTC (rev 53840)
+++ trunk/blender/source/blender/blenkernel/intern/text.c	2013-01-16 04:43:37 UTC (rev 53841)
@@ -2930,6 +2930,16 @@
 	return 0;
 }
 
+int text_check_identifier_nodigit(const char ch)
+{
+	if (ch <= '9') return 0;
+	if (ch < 'A') return 0;
+	if (ch <= 'Z' || ch == '_') return 1;
+	if (ch < 'a') return 0;
+	if (ch <= 'z') return 1;
+	return 0;
+}
+
 int text_check_whitespace(const char ch)
 {
 	if (ch == ' ' || ch == '\t' || ch == '\r' || ch == '\n')

Modified: trunk/blender/source/blender/editors/space_text/text_autocomplete.c
===================================================================
--- trunk/blender/source/blender/editors/space_text/text_autocomplete.c	2013-01-16 04:23:55 UTC (rev 53840)
+++ trunk/blender/source/blender/editors/space_text/text_autocomplete.c	2013-01-16 04:43:37 UTC (rev 53841)
@@ -167,7 +167,7 @@
 
 			while (i_start < linep->len) {
 				/* seek identifier beginning */
-				while (i_start < linep->len && !text_check_identifier(linep->line[i_start])) {
+				while (i_start < linep->len && !text_check_identifier_nodigit(linep->line[i_start])) {
 					i_start++;
 				}
 				i_end = i_start;
@@ -175,7 +175,11 @@
 					i_end++;
 				}
 
-				if (i_start != i_end) {
+				if ((i_start != i_end) &&
+				    /* check we're at the beginning of a line or that the previous char is not an identifier
+					 * this prevents digits from being added */
+				    ((i_start < 1) || !text_check_identifier(linep->line[i_start - 1])))
+				{
 					char *str_sub = &linep->line[i_start];
 					const int choice_len = i_end - i_start;
 




More information about the Bf-blender-cvs mailing list