This is util.c in view mode; [Download] [Up]
/*
* Puppeteer 1.1
*
* Copyright (c) 1994 Primitive Software Ltd. All rights reserved.
*
* Author: Dave Griffiths <dave@prim.demon.co.uk>
*/
#include <streams/streams.h>
#include <sys/types.h>
#include <sys/time.h>
#include <stdio.h>
char chtbl[256];
void
uuinit()
{
int i, j;
for (i = 0; i < ' '; i++)
chtbl[i] = 0;
for (i = ' ', j = 0; i < ' ' + 64; i++, j++)
chtbl[i] = j;
for (i = ' ' + 64; i < 128; i++)
chtbl[i] = 0;
chtbl['`'] = chtbl[' '];
chtbl['~'] = chtbl['^'];
}
void
uudecode(NXStream *in, NXStream *out)
{
int count, b0, b1, b2, b3;
while (count = chtbl[NXGetc(in)]) {
while (count > 0) {
b0 = NXGetc(in);
b1 = NXGetc(in);
b2 = NXGetc(in);
b3 = NXGetc(in);
NXPutc(out, (chtbl[b0] << 2 | chtbl[b1] >> 4));
count--;
if (count > 0) {
NXPutc(out, (chtbl[b1] << 4 | chtbl[b2] >> 2));
count--;
}
if (count > 0) {
NXPutc(out, (chtbl[b2] << 6 | chtbl[b3]));
count--;
}
}
NXGetc(in);
}
NXFlush(out);
}
void
printTime(char *msg)
{
struct timeval tp;
struct timezone tzp;
gettimeofday(&tp, &tzp);
printf("%s, SECS = %d, MSECS = %d\n", msg, tp.tv_sec, tp.tv_usec/1000);
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.