This is Talk.m in view mode; [Download] [Up]
#import <appkit/Pasteboard.h> #import <appkit/Speaker.h> #import <appkit/Listener.h> #import "Talk.h" /*=========================================================================== File: Talk.m Purpose: This file contains the code which implements the UNIX talk facility. When a user requests "talk", terminal is launched and the resulting csh is passed the talk command. ===========================================================================*/ @implementation Talk:Object - init { return self; } - copyString:(char *)s { id p = [Pasteboard new]; [p declareTypes:&NXAsciiPboard num:1 owner:self]; [p writeType:NXAsciiPboard data:s length:strlen(s)]; return self; } - launchTerminal:(char *)program { id p = [NXApp appSpeaker]; port_t t = NXPortFromName("Terminal",NULL); int ok; if (t==PORT_NULL) return self; [p setSendPort:t]; [self copyString:program]; (void)[p msgPaste:&ok]; return self; } - talk:(char *) name tty:(char *) tty host:(char *) host { char command[256]; sprintf(command,"talk %s %s\n", name, tty); [self launchTerminal:command]; return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.