diff --git a/code/sys/sys_main.c b/code/sys/sys_main.c index 078011aa..3102cf56 100644 --- a/code/sys/sys_main.c +++ b/code/sys/sys_main.c @@ -127,6 +127,35 @@ char *Sys_ConsoleInput(void) 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 # define PID_FILENAME PRODUCT_NAME "_server.pid" #else diff --git a/code/sys/sys_unix.c b/code/sys/sys_unix.c index c2de336d..2fcb58bd 100644 --- a/code/sys/sys_unix.c +++ b/code/sys/sys_unix.c @@ -148,16 +148,6 @@ char *Sys_GetCurrentUser( void ) return p->pw_name; } -/* -================== -Sys_GetClipboardData -================== -*/ -char *Sys_GetClipboardData(void) -{ - return NULL; -} - #define MEM_THRESHOLD 96*1024*1024 /* diff --git a/code/sys/sys_win32.c b/code/sys/sys_win32.c index 57c7ed56..14be1364 100644 --- a/code/sys/sys_win32.c +++ b/code/sys/sys_win32.c @@ -190,33 +190,6 @@ char *Sys_GetCurrentUser( void ) 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 /*