#include "pdcdos.h"
#include <stdlib.h>
static char *pdc_DOS_clipboard = NULL;
int PDC_getclipboard(char **contents, long *length)
{
int len;
PDC_LOG(("PDC_getclipboard() - called\n"));
if (!pdc_DOS_clipboard)
return PDC_CLIP_EMPTY;
len = strlen(pdc_DOS_clipboard);
if ((*contents = malloc(len + 1)) == NULL)
return PDC_CLIP_MEMORY_ERROR;
strcpy(*contents, pdc_DOS_clipboard);
*length = len;
return PDC_CLIP_SUCCESS;
}
int PDC_setclipboard(const char *contents, long length)
{
PDC_LOG(("PDC_setclipboard() - called\n"));
if (pdc_DOS_clipboard)
{
free(pdc_DOS_clipboard);
pdc_DOS_clipboard = NULL;
}
if (contents)
{
if ((pdc_DOS_clipboard = malloc(length + 1)) == NULL)
return PDC_CLIP_MEMORY_ERROR;
strcpy(pdc_DOS_clipboard, contents);
}
return PDC_CLIP_SUCCESS;
}
int PDC_freeclipboard(char *contents)
{
PDC_LOG(("PDC_freeclipboard() - called\n"));
if (contents)
{
if (strlen(contents) >= strlen("PDCURSES"))
strcpy(contents, "PDCURSES");
free(contents);
}
return PDC_CLIP_SUCCESS;
}
int PDC_clearclipboard(void)
{
PDC_LOG(("PDC_clearclipboard() - called\n"));
if (pdc_DOS_clipboard)
{
free(pdc_DOS_clipboard);
pdc_DOS_clipboard = NULL;
}
return PDC_CLIP_SUCCESS;
}