Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-03-07 20:24:25 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-03-07 20:24:25 +0400
commitc78f02d9908773ec29d10b31c9401bb17eb5eacb (patch)
tree97d62e6e2bb375b05d41924cd51579a513476fda /source/blender
parent00781668ce936db58681e2b49d635857e5b2d25e (diff)
edit to cursor adjustment, use int rather then short to store the cursor position.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenkernel/intern/text.c4
-rw-r--r--source/blender/blenlib/BLI_string_cursor_utf8.h17
-rw-r--r--source/blender/blenlib/intern/string_cursor_utf8.c16
-rw-r--r--source/blender/editors/interface/interface_handlers.c18
-rw-r--r--source/blender/editors/space_console/console_ops.c4
5 files changed, 31 insertions, 28 deletions
diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c
index 61c69d94d26..6cd900c9ed2 100644
--- a/source/blender/blenkernel/intern/text.c
+++ b/source/blender/blenkernel/intern/text.c
@@ -955,7 +955,7 @@ void txt_jump_left(Text *text, short sel)
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 @@ void txt_jump_right(Text *text, short sel)
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);
diff --git a/source/blender/blenlib/BLI_string_cursor_utf8.h b/source/blender/blenlib/BLI_string_cursor_utf8.h
index 4bdc7f612c6..11c91aac6ac 100644
--- a/source/blender/blenlib/BLI_string_cursor_utf8.h
+++ b/source/blender/blenlib/BLI_string_cursor_utf8.h
@@ -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 @@ typedef enum strCursorJumpDirection {
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__ */
diff --git a/source/blender/blenlib/intern/string_cursor_utf8.c b/source/blender/blenlib/intern/string_cursor_utf8.c
index 6dc88ec00a4..7fdeaf35514 100644
--- a/source/blender/blenlib/intern/string_cursor_utf8.c
+++ b/source/blender/blenlib/intern/string_cursor_utf8.c
@@ -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 @@ static strCursorDelimType test_special_char(const char ch)
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 @@ int BLI_str_cursor_step_next_utf8(const char *str, size_t maxlen, short *pos)
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 @@ int BLI_str_cursor_step_prev_utf8(const char *str, size_t UNUSED(maxlen), short
}
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;
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 8504677ce56..b7c250743a9 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -1265,7 +1265,7 @@ static void ui_textedit_set_cursor_pos(uiBut *but, uiHandleButtonData *data, sho
/* 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 @@ static void ui_textedit_set_cursor_pos(uiBut *but, uiHandleButtonData *data, sho
/* 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 @@ static void ui_textedit_move(uiBut *but, uiHandleButtonData *data, strCursorJump
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 @@ static int ui_textedit_delete(uiBut *but, uiHandleButtonData *data, int directio
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 @@ static int ui_textedit_delete(uiBut *but, uiHandleButtonData *data, int directio
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);
diff --git a/source/blender/editors/space_console/console_ops.c b/source/blender/editors/space_console/console_ops.c
index ab1cada8f0c..b52bc75eac8 100644
--- a/source/blender/editors/space_console/console_ops.c
+++ b/source/blender/editors/space_console/console_ops.c
@@ -276,9 +276,9 @@ static int console_move_exec(bContext *C, wmOperator *op)
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,