mirror of
https://github.com/DrBeef/ioq3quest.git
synced 2024-11-26 22:11:18 +00:00
Get clipboard data from SDL
This makes pasting in client console and UI edit fields work on X11 and OS X. Sys_GetClipboardData is only used by client, so returning NULL in dedicated is fine.
This commit is contained in:
parent
077f6bd068
commit
137ddb9dc6
3 changed files with 29 additions and 37 deletions
|
@ -127,6 +127,35 @@ char *Sys_ConsoleInput(void)
|
||||||
return CON_Input( );
|
return CON_Input( );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
==================
|
||||||
|
Sys_GetClipboardData
|
||||||
|
==================
|
||||||
|
*/
|
||||||
|
char *Sys_GetClipboardData(void)
|
||||||
|
{
|
||||||
|
#ifdef DEDICATED
|
||||||
|
return NULL;
|
||||||
|
#else
|
||||||
|
char *data = NULL;
|
||||||
|
char *cliptext;
|
||||||
|
|
||||||
|
if ( ( cliptext = SDL_GetClipboardText() ) != NULL ) {
|
||||||
|
if ( cliptext[0] != '\0' ) {
|
||||||
|
size_t bufsize = strlen( cliptext ) + 1;
|
||||||
|
|
||||||
|
data = Z_Malloc( bufsize );
|
||||||
|
Q_strncpyz( data, cliptext, bufsize );
|
||||||
|
|
||||||
|
// find first listed char and set to '\0'
|
||||||
|
strtok( data, "\n\r\b" );
|
||||||
|
}
|
||||||
|
SDL_free( cliptext );
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef DEDICATED
|
#ifdef DEDICATED
|
||||||
# define PID_FILENAME PRODUCT_NAME "_server.pid"
|
# define PID_FILENAME PRODUCT_NAME "_server.pid"
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -148,16 +148,6 @@ char *Sys_GetCurrentUser( void )
|
||||||
return p->pw_name;
|
return p->pw_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
==================
|
|
||||||
Sys_GetClipboardData
|
|
||||||
==================
|
|
||||||
*/
|
|
||||||
char *Sys_GetClipboardData(void)
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define MEM_THRESHOLD 96*1024*1024
|
#define MEM_THRESHOLD 96*1024*1024
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -190,33 +190,6 @@ char *Sys_GetCurrentUser( void )
|
||||||
return s_userName;
|
return s_userName;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
================
|
|
||||||
Sys_GetClipboardData
|
|
||||||
================
|
|
||||||
*/
|
|
||||||
char *Sys_GetClipboardData( void )
|
|
||||||
{
|
|
||||||
char *data = NULL;
|
|
||||||
char *cliptext;
|
|
||||||
|
|
||||||
if ( OpenClipboard( NULL ) != 0 ) {
|
|
||||||
HANDLE hClipboardData;
|
|
||||||
|
|
||||||
if ( ( hClipboardData = GetClipboardData( CF_TEXT ) ) != 0 ) {
|
|
||||||
if ( ( cliptext = GlobalLock( hClipboardData ) ) != 0 ) {
|
|
||||||
data = Z_Malloc( GlobalSize( hClipboardData ) + 1 );
|
|
||||||
Q_strncpyz( data, cliptext, GlobalSize( hClipboardData ) );
|
|
||||||
GlobalUnlock( hClipboardData );
|
|
||||||
|
|
||||||
strtok( data, "\n\r\b" );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
CloseClipboard();
|
|
||||||
}
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define MEM_THRESHOLD 96*1024*1024
|
#define MEM_THRESHOLD 96*1024*1024
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in a new issue