ftp.nice.ch/pub/next/graphics/3d/StereoScope.3.7.N.bs.tar.gz#/StereoScope-3.7/monitor.m

This is monitor.m in view mode; [Download] [Up]

/*
 * 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
 */

#define _NAME "StereoScope"

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 {
    char subj[256], w[256] = "whoami";
    char body[4096]="\
John:\n\n\
A handy bit of software!  I use it ALL the time.\n\
Now, I know I should be sending you a T shirt, a card, \n\
maybe a tax deductible surprise to assist in feeding your\n\
hungry family, but all I have are these scrimpy electronic\n\
comments:\n\n\
   <insert accolades & suggestions here>\n\n\
             parsimoniously,\n\
             ";
#define fcall(a)  [s performRemoteMethod:a]
#define call(a,b) [s performRemoteMethod:a with:b length:strlen(b)+1]
    id s = [NXApp appSpeaker];
    NXPortFromName("Mail", NULL); // make sure app is launched
    [s setSendPort:NXPortFromName("MailSendDemo", NULL)];

    sprintf(subj,"Comments and suggestions for ``%s'' ",_NAME);
    strcat(subj,[version stringValue]);
    strcat(body,execstr(w)); strcat(body,"\n");
    call("setTo:","woo@ornl.gov");
    call("setSubject:",subj);
    call("setBody:",body);
    
    return self;
}

/*
    monitor("StereoScope-1.0-newuser");
*/

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.