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;
|
||||
be_clipboard->Data()->FindData("text/plain", B_MIME_TYPE, &(const void*)value, &len);
|
||||
|
||||
be_clipboard->Unlock();
|
||||
return strdup(value);
|
||||
}
|
||||
return NULL;
|
||||
|
||||
@ -85,6 +85,21 @@ void Insert_character(char * str, char letter, byte position)
|
||||
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)
|
||||
{
|
||||
// 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();
|
||||
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 This doesn't respect the "allowed chars" restriction
|
||||
strncat(str, data, max_size - size);
|
||||
//strncat(str, data, max_size - size);
|
||||
free(data);
|
||||
goto affichage;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user