This is suggestion.m in view mode; [Download] [Up]
// The following code was send to me by Michael Hawley (c) // Carefully modified by Sven Lehmann to fit at Zoom.app /* * Implement the "suggestion" box, to catch user's comments, * and also a simple tracking mechanism, to send a blip of * mail from the first-time user. This is akin to releasing * helium balloons with postcards that say "If you find me, * send this card back to . . ." -- it should be interesting * to the community to track the free flow of software on * the ethernet. * * If you have any concerns about this, please check with me. * * Michael Hawley * mike@media-lab.mit.edu */ static char *stripnl(char *s) { char *p; for (p=s;*p;p++) if (*p == '\n' || *p == '\r') *p = '\0'; return s; } char *execstr(s) char *s; { FILE *f = popen(s,"r"); char *p = s; *s = '\0'; if (f) { while (fgets(p,256,f)) stripnl(p), p += strlen(p); pclose(f); } return s; } - suggestion: sender { #define call(a,b) [s performRemoteMethod: a with: b length: strlen(b) + 1] char subj[256], w[256] = "whoami"; char body[4096]= "Sven:\n\n" "A handy bit of software! Using your" " magnificient\napplication gives me fun for days" " and enjoys my soul.\nNevertheless, I have these" " scrimpy electronic comments:\n\n\n" " <insert accolades & suggestions here>\n\n\n" " parsimoniously,\n" " "; id s = [NXApp appSpeaker]; NXPortFromName("Mail", NULL); // make sure app is launched [s setSendPort: NXPortFromName("MailSendDemo", NULL)]; sprintf(subj, "Comments and suggestions for BibTeXfrontend (V%s)", "0.99f"); strcat(body, execstr(w)); strcat(body, "\n"); call("setTo:", "giesen@informatik.uni-koblenz.de"); call("setSubject:", subj); call("setBody:", body); return self; }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.