// leicht modifiziert, liest jetzt aus angegebenem Pasteboard statt aus Datei

#import <appkit/appkit.h>
#import "PBTypes.h"
#import "PBNames.h"

int main (int argc, char * argv [])
{
	[Application new];	// anscheinend nðtig...
	if (argc > 1)
	{	id pb; NXAtom type; char * buf; int len; id src; NXAtom pbKey;

		pbKey = argv[1][0] == '-' ? [[PBNames new] key:argv[1]+1] :
			NXUniqueString(argv[1]);
		src = [Pasteboard newName:pbKey];

		if (! (pb = [Pasteboard newByFilteringTypesInPasteboard:src]))
			fprintf(stderr, "%s: cannot filter\n", *argv), exit(1);

		if (argc > 2)
			type = argv[2][0] == '-' ?
		    		[[PBTypes new] type:argv[2]+1] :
				NXUniqueString(argv[2]);
		else
		{	char * p = strrchr(argv[0], '/');

			if (! p)
				p = argv[0];
			else
				++ p;
			type = [[PBTypes new] type:p];
		}

		if (! (type = [pb findAvailableTypeFrom:&type num:1]))
			[pb error:"no type\n"];
		else if ([pb readType:type data:&buf length:&len])
		{	fwrite(buf, len, 1, stdout);
			[pb deallocatePasteboardData:buf length:len];
		}
		else
			[pb error:"no data\n"];
	}
	return 0;
}
