void docopy(pdfapp_t *app, Atom copy_target) { unsigned short copyucs2[16 * 1024]; char *latin1 = copylatin1; char *utf8 = copyutf8; unsigned short *ucs2; int ucs; pdfapp_oncopy(&gapp, copyucs2, 16 * 1024); for (ucs2 = copyucs2; ucs2[0] != 0; ucs2++) { ucs = ucs2[0]; utf8 += fz_runetochar(utf8, ucs); if (ucs < 256) *latin1++ = ucs; else *latin1++ = '?'; } *utf8 = 0; *latin1 = 0; XSetSelectionOwner(xdpy, copy_target, xwin, copytime); justcopied = 1; }
void windocopy(pdfapp_t *app) { HGLOBAL handle; unsigned short *ucsbuf; if (!OpenClipboard(hwndframe)) return; EmptyClipboard(); handle = GlobalAlloc(GMEM_MOVEABLE, 4096 * sizeof(unsigned short)); if (!handle) { CloseClipboard(); return; } ucsbuf = GlobalLock(handle); pdfapp_oncopy(&gapp, ucsbuf, 4096); GlobalUnlock(handle); SetClipboardData(CF_UNICODETEXT, handle); CloseClipboard(); justcopied = 1; /* keep inversion around for a while... */ }
void windocopy(pdfapp_t *app) { unsigned short copyucs2[16 * 1024]; char *latin1 = copylatin1; char *utf8 = copyutf8; unsigned short *ucs2; int ucs; pdfapp_oncopy(&gapp, copyucs2, 16 * 1024); for (ucs2 = copyucs2; ucs2[0] != 0; ucs2++) { ucs = ucs2[0]; utf8 += runetochar(utf8, &ucs); if (ucs < 256) *latin1++ = ucs; else *latin1++ = '?'; } *utf8 = 0; *latin1 = 0; printf("oncopy utf8=%zd latin1=%zd\n", strlen(copyutf8), strlen(copylatin1)); XSetSelectionOwner(xdpy, XA_PRIMARY, xwin, copytime); justcopied = 1; }