This is get.m in view mode; [Download] [Up]
#import <appkit/appkit.h>
#import "PBTypes.h"
#import "PBNames.h"
int main (int argc, char * argv [])
{ NXStream * inp, * outp = NXOpenFile(1, NX_WRITEONLY),
* errp = NXOpenFile(2, NX_WRITEONLY);
NXAtom type = argc <= 1 ? NXAsciiPboardType :
argv[1][0] == '-' ? [[PBTypes new] type:argv[1]+1] :
NXUniqueString(argv[1]);
NXAtom pbKey = argc <= 2 ? NXGeneralPboard :
argv[2][0] == '-' ? [[PBNames new] key:argv[2]+1] :
NXUniqueString(argv[2]);
id pb = [Pasteboard newName:pbKey];
const NXAtom * types;
if (type)
type = [pb findAvailableTypeFrom:&type num:1];
else if (types = [pb types])
type = types[0];
if (! type)
[pb error:"no type\n"];
else if (inp = [pb readTypeToStream:type])
{ char * buf; int len, maxlen;
NXPrintf(errp, "'%s' from '%s'\n", type, pbKey), NXFlush(errp);
NXGetMemoryBuffer(inp, &buf, &len, &maxlen);
if (len)
{ NXWrite(outp, buf, len);
if (buf[len-1] != '\n')
NXPutc(outp, '\n');
}
NXCloseMemory(inp, NX_FREEBUFFER);
}
else
[pb error:"no data\n"];
NXClose(outp); // exception bei Fehler
return 0;
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.