Respect cursor position when pasting.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@1829 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
d34c3d9df5
commit
87b7c45da4
@ -46,6 +46,7 @@ char* haiku_get_clipboard()
|
|||||||
ssize_t len;
|
ssize_t len;
|
||||||
be_clipboard->Data()->FindData("text/plain", B_MIME_TYPE, &(const void*)value, &len);
|
be_clipboard->Data()->FindData("text/plain", B_MIME_TYPE, &(const void*)value, &len);
|
||||||
|
|
||||||
|
be_clipboard->Unlock();
|
||||||
return strdup(value);
|
return strdup(value);
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|||||||
@ -85,6 +85,21 @@ void Insert_character(char * str, char letter, byte position)
|
|||||||
str[position]='\0';
|
str[position]='\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Prepend_string(char* dest, char* src, int max)
|
||||||
|
{
|
||||||
|
// Insert src before dest
|
||||||
|
int sized = strlen(dest);
|
||||||
|
int sizes = strlen(src);
|
||||||
|
|
||||||
|
if (sized + sizes >= max)
|
||||||
|
{
|
||||||
|
sizes = max - sized;
|
||||||
|
}
|
||||||
|
|
||||||
|
memmove(dest+sizes, dest, sized);
|
||||||
|
memcpy(dest, src, sizes);
|
||||||
|
}
|
||||||
|
|
||||||
int Valid_character(int c)
|
int Valid_character(int c)
|
||||||
{
|
{
|
||||||
// Sous Linux: Seul le / est strictement interdit, mais beaucoup
|
// Sous Linux: Seul le / est strictement interdit, mais beaucoup
|
||||||
@ -466,10 +481,11 @@ byte Readline_ex(word x_pos,word y_pos,char * str,byte visible_size,byte max_siz
|
|||||||
{
|
{
|
||||||
char* data = getClipboard();
|
char* data = getClipboard();
|
||||||
if (data == NULL) continue; // No clipboard data
|
if (data == NULL) continue; // No clipboard data
|
||||||
// TODO Insert it at the cursor position, not at the end
|
// Insert it at the cursor position
|
||||||
|
Prepend_string(str + position, data, max_size - position);
|
||||||
// TODO Update cursor position
|
// TODO Update cursor position
|
||||||
// TODO This doesn't respect the "allowed chars" restriction
|
// TODO This doesn't respect the "allowed chars" restriction
|
||||||
strncat(str, data, max_size - size);
|
//strncat(str, data, max_size - size);
|
||||||
free(data);
|
free(data);
|
||||||
goto affichage;
|
goto affichage;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user