[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44707] trunk/blender/source/blender: edit to cursor adjustment, use int rather then short to store the cursor position.

Campbell Barton ideasman42 at gmail.com
Wed Mar 7 17:24:32 CET 2012


Revision: 44707
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44707
Author:   campbellbarton
Date:     2012-03-07 16:24:25 +0000 (Wed, 07 Mar 2012)
Log Message:
-----------
edit to cursor adjustment, use int rather then short to store the cursor position.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/text.c
    trunk/blender/source/blender/blenlib/BLI_string_cursor_utf8.h
    trunk/blender/source/blender/blenlib/intern/string_cursor_utf8.c
    trunk/blender/source/blender/editors/interface/interface_handlers.c
    trunk/blender/source/blender/editors/space_console/console_ops.c

Modified: trunk/blender/source/blender/blenkernel/intern/text.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/text.c	2012-03-07 15:55:12 UTC (rev 44706)
+++ trunk/blender/source/blender/blenkernel/intern/text.c	2012-03-07 16:24:25 UTC (rev 44707)
@@ -955,7 +955,7 @@
 	TextLine **linep, *oldl;
 	int *charp, oldc, oldflags, i;
 	unsigned char oldu;
-	short pos;
+	int pos;
 
 	if (!text) return;
 	if(sel) txt_curs_sel(text, &linep, &charp);
@@ -989,7 +989,7 @@
 	TextLine **linep, *oldl;
 	int *charp, oldc, oldflags, i;
 	unsigned char oldu;
-	short pos;
+	int pos;
 
 	if (!text) return;
 	if(sel) txt_curs_sel(text, &linep, &charp);

Modified: trunk/blender/source/blender/blenlib/BLI_string_cursor_utf8.h
===================================================================
--- trunk/blender/source/blender/blenlib/BLI_string_cursor_utf8.h	2012-03-07 15:55:12 UTC (rev 44706)
+++ trunk/blender/source/blender/blenlib/BLI_string_cursor_utf8.h	2012-03-07 16:24:25 UTC (rev 44707)
@@ -30,17 +30,6 @@
  *  \ingroup bli
  */
 
-typedef enum strCursorDelimType {
-	STRCUR_DELIM_NONE,
-	STRCUR_DELIM_ALPHA,
-	STRCUR_DELIM_PUNCT,
-	STRCUR_DELIM_BRACE,
-	STRCUR_DELIM_OPERATOR,
-	STRCUR_DELIM_QUOTE,
-	STRCUR_DELIM_WHITESPACE,
-	STRCUR_DELIM_OTHER
-} strCursorDelimType;
-
 typedef enum strCursorJumpType {
 	STRCUR_JUMP_NONE,
 	STRCUR_JUMP_DELIM,
@@ -52,11 +41,11 @@
 	STRCUR_DIR_NEXT
 } strCursorJumpDirection;
 
-int BLI_str_cursor_step_next_utf8(const char *str, size_t maxlen, short *pos);
-int BLI_str_cursor_step_prev_utf8(const char *str, size_t maxlen, short *pos);
+int BLI_str_cursor_step_next_utf8(const char *str, size_t maxlen, int *pos);
+int BLI_str_cursor_step_prev_utf8(const char *str, size_t maxlen, int *pos);
 
 void BLI_str_cursor_step_utf8(const char *str, size_t maxlen,
-                              short *pos, strCursorJumpDirection direction,
+                              int *pos, strCursorJumpDirection direction,
                               strCursorJumpType jump);
 
 #endif /* __BLI_STRING_CURSOR_UTF8_H__ */

Modified: trunk/blender/source/blender/blenlib/intern/string_cursor_utf8.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/string_cursor_utf8.c	2012-03-07 15:55:12 UTC (rev 44706)
+++ trunk/blender/source/blender/blenlib/intern/string_cursor_utf8.c	2012-03-07 16:24:25 UTC (rev 44707)
@@ -36,6 +36,16 @@
 
 #include "BLI_string_cursor_utf8.h" /* own include */
 
+typedef enum strCursorDelimType {
+	STRCUR_DELIM_NONE,
+	STRCUR_DELIM_ALPHA,
+	STRCUR_DELIM_PUNCT,
+	STRCUR_DELIM_BRACE,
+	STRCUR_DELIM_OPERATOR,
+	STRCUR_DELIM_QUOTE,
+	STRCUR_DELIM_WHITESPACE,
+	STRCUR_DELIM_OTHER
+} strCursorDelimType;
 
 /* return 1 if char ch is special character, otherwise return 0 */
 static strCursorDelimType test_special_char(const char ch)
@@ -100,7 +110,7 @@
 	return STRCUR_DELIM_NONE;
 }
 
-int BLI_str_cursor_step_next_utf8(const char *str, size_t maxlen, short *pos)
+int BLI_str_cursor_step_next_utf8(const char *str, size_t maxlen, int *pos)
 {
 	const char *str_end= str + (maxlen + 1);
 	const char *str_pos= str + (*pos);
@@ -114,7 +124,7 @@
 	return FALSE;
 }
 
-int BLI_str_cursor_step_prev_utf8(const char *str, size_t UNUSED(maxlen), short *pos)
+int BLI_str_cursor_step_prev_utf8(const char *str, size_t UNUSED(maxlen), int *pos)
 {
 	if((*pos) > 0) {
 		const char *str_pos= str + (*pos);
@@ -129,7 +139,7 @@
 }
 
 void BLI_str_cursor_step_utf8(const char *str, size_t maxlen,
-                              short *pos, strCursorJumpDirection direction,
+                              int *pos, strCursorJumpDirection direction,
                               strCursorJumpType jump)
 {
 	const short pos_prev= *pos;

Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c	2012-03-07 15:55:12 UTC (rev 44706)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2012-03-07 16:24:25 UTC (rev 44707)
@@ -1265,7 +1265,7 @@
 	
 	/* mouse dragged outside the widget to the left */
 	if (x < startx && but->ofs > 0) {	
-		short i= but->ofs;
+		int i = but->ofs;
 
 		origstr[but->ofs] = 0;
 		
@@ -1288,9 +1288,11 @@
 		
 		/* XXX does not take zoom level into account */
 		while (startx + aspect_sqrt * BLF_width(fstyle->uifont_id, origstr+but->ofs) > x) {
+			int pos_i = but->pos;
 			if (but->pos <= 0) break;
-			if (BLI_str_cursor_step_prev_utf8(origstr, but->ofs, &but->pos)) {
-				origstr[but->pos+but->ofs] = 0;
+			if (BLI_str_cursor_step_prev_utf8(origstr, but->ofs, &pos_i)) {
+				but->pos = pos_i;
+				origstr[but->pos + but->ofs] = 0;
 			}
 			else {
 				break; /* unlikely but possible */
@@ -1391,7 +1393,9 @@
 		data->selextend = 0;
 	}
 	else {
-		BLI_str_cursor_step_utf8(str, len, &but->pos, direction, jump);
+		int pos_i = but->pos;
+		BLI_str_cursor_step_utf8(str, len, &pos_i, direction, jump);
+		but->pos = pos_i;
 
 		if(select) {
 			/* existing selection */
@@ -1457,10 +1461,10 @@
 			changed= ui_textedit_delete_selection(but, data);
 		}
 		else if (but->pos>=0 && but->pos<len) {
-			short pos= but->pos;
+			int pos = but->pos;
 			int step;
 			BLI_str_cursor_step_utf8(str, len, &pos, direction, jump);
-			step= pos - but->pos;
+			step = pos - but->pos;
 			memmove(&str[but->pos], &str[but->pos + step], (len + 1) - but->pos);
 			changed= 1;
 		}
@@ -1471,7 +1475,7 @@
 				changed= ui_textedit_delete_selection(but, data);
 			}
 			else if(but->pos>0) {
-				short pos= but->pos;
+				int pos = but->pos;
 				int step;
 
 				BLI_str_cursor_step_utf8(str, len, &pos, direction, jump);

Modified: trunk/blender/source/blender/editors/space_console/console_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_console/console_ops.c	2012-03-07 15:55:12 UTC (rev 44706)
+++ trunk/blender/source/blender/editors/space_console/console_ops.c	2012-03-07 16:24:25 UTC (rev 44707)
@@ -276,9 +276,9 @@
 	
 	int type= RNA_enum_get(op->ptr, "type");
 	int done= 0;
-	short pos;
+	int pos;
 	
-	switch(type) {
+	switch (type) {
 	case LINE_BEGIN:
 			pos = ci->cursor;
 			BLI_str_cursor_step_utf8(ci->line, ci->len,




More information about the Bf-blender-cvs mailing list