This is mapfile.c in view mode; [Download] [Up]
#import <streams/streams.h>
#import <stdio.h>
#import "mapfile.h"
#import <appkit/NXCType.h>
#import "readline.h"
#define NNTP_LIST_END(s) ((s)[0]=='.' && ((s)[1]=='\0' || (s)[1]=='\r'))
int MapNntpToStream(FILE *theFile,NXStream *theStream,BOOL echoSocket)
{
char *buffer;
while(buffer=readline(theFile),(buffer!=NULL)&&(!NNTP_LIST_END(buffer))){
int n;
n = strlen(buffer);
if (n >= 2 && buffer[n-1] == '\n' && buffer[n-2] == '\r'){
buffer[n-2]='\n';
buffer[n-1]='\0';
n--;
}
if(*buffer=='.'){
buffer++; //remove byte stuffing
n--;
}
if(echoSocket)
printf("%s",buffer);
NXWrite(theStream,buffer,n);
}
if(echoSocket && (buffer!=NULL) && (NNTP_LIST_END(buffer)))
printf("%s",buffer);
if(buffer==NULL)
return -1;
return 0;
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.