This is CVSPalette.m in view mode; [Download] [Up]
/* * Bob_Vadnais@pdh.com Sun Jun 27 13:46:11 PDT 1993 * * Interface Builder palette that preserves the CVS directory inside a * nib documement. * * Wouldn't it be nice if all apps had a document controller paradigm? * Then we could solve this same problem with Edit wiping out the CVS * directory inside .rtfd documents. */ #import "CVSPalette.h" @implementation CVSPalette extern char *sys_errlist[]; #define TAR "gnutar" - finishInstantiate /* * Register ourselves as an IBDocumentController so we will receive * didSaveDocument: messages from IB whenever the user saves a document. * * Due to an apparent bug in IB, we won't get registered correctly if * we're autoloaded at IB launch time, hence the delayed registration. */ { [NXApp perform:@selector(registerDocumentController:) with:self afterDelay:10000 cancelPrevious:NO]; return self; } - didSaveDocument:theDocument { char path[MAXPATHLEN+10]; int pathlen; [theDocument getDocumentPathIn:path]; pathlen = strlen(path); strcpy(path + pathlen, "~/CVS"); if (access(path, R_OK|X_OK) == 0) { char cmdbuf[MAXPATHLEN * 2 + 32]; path[pathlen] = 0; // Chop off the ~/CVS we added sprintf(cmdbuf, TAR " cCf %s~ - CVS | " TAR " xpCf %s -", path, path); if (system(cmdbuf) < 0) { NXRunAlertPanel("Error", "Unable to copy %s~/CVS into %s: %s", 0, 0, 0, path, path, sys_errlist[errno]); } } return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.