programmet bör köra på alla posixsystem som har GTK+2.
används typ så här:
CODE
[davve@pythagoras ~/misc/clipboard]$ cat clip3.c | clip
med resultatet att innehållet i clip3.c hamnar på clipboarden.
CODE
/*
* compile: gcc clip.c -o clip `pkg-config gtk+-2.0 --cflags --libs`
*/
#include <gtk/gtk.h>
#include <sys/types.h>
#include <sys/uio.h>
#include <unistd.h>
#define BUFSIZE 1024
int main(int argc, char **argv){
GtkClipboard *clip;
int size,len;
char *str,*ptr;
gtk_init(&argc, &argv);
clip = gtk_clipboard_get(gdk_atom_intern("CLIPBOARD",FALSE));
ptr = str = (char*)malloc(BUFSIZE);
size=BUFSIZE;
len=0;
while((len=read(0,ptr,BUFSIZE-len))>0){
if(len==BUFSIZE){
size+=BUFSIZE;
str = (char*)realloc(str,size);
ptr = str + size - BUFSIZE;
len=0;
}else{
ptr+=len;
}
}
gtk_clipboard_set_text(clip, str, -1);
gtk_clipboard_store(clip);
return 0;
}
* compile: gcc clip.c -o clip `pkg-config gtk+-2.0 --cflags --libs`
*/
#include <gtk/gtk.h>
#include <sys/types.h>
#include <sys/uio.h>
#include <unistd.h>
#define BUFSIZE 1024
int main(int argc, char **argv){
GtkClipboard *clip;
int size,len;
char *str,*ptr;
gtk_init(&argc, &argv);
clip = gtk_clipboard_get(gdk_atom_intern("CLIPBOARD",FALSE));
ptr = str = (char*)malloc(BUFSIZE);
size=BUFSIZE;
len=0;
while((len=read(0,ptr,BUFSIZE-len))>0){
if(len==BUFSIZE){
size+=BUFSIZE;
str = (char*)realloc(str,size);
ptr = str + size - BUFSIZE;
len=0;
}else{
ptr+=len;
}
}
gtk_clipboard_set_text(clip, str, -1);
gtk_clipboard_store(clip);
return 0;
}
