#ifndef CST_CLIPBOARD_H #define CST_CLIPBOARD_H #include #ifdef __cplusplus extern "C" { #endif /* Image bytes on the system clipboard (PNG, or BMP from a Windows DIB). * Wayland: wl-paste; X11: xclip; macOS: pngpaste or osascript; Windows: the * clipboard API. Returns 0 with *data malloc'd, or -1 with err filled in * ("no image on the clipboard", "install wl-clipboard", ...). */ int cst_clipboard_image(char **data, size_t *n, char *err, size_t err_sz); /* Windows CF_DIB bytes (BITMAPINFOHEADER + pixels) as an image file: a PNG * for uncompressed 24/32-bit bitmaps, else a BMP. NULL when malformed. */ char *cst_dib_to_image(const void *dib, size_t sz, size_t *n); #define CST_PASTE_MAX_PATHS 8 #define CST_PASTE_PATH_MAX 1024 /* Split pasted text into file paths the way terminals paste dropped files: * whitespace- or newline-separated, '...' / "..." quoting, file:// URIs * (percent-decoded) and, outside Windows, backslash escapes. Returns the * count, or -1 when the text is empty or holds more than max paths. Whether * the paths exist is up to the caller. */ int cst_paste_paths(const char *text, size_t len, char out[][CST_PASTE_PATH_MAX], int max); #ifdef __cplusplus } #endif #endif