ftp.nice.ch/pub/next/connectivity/news/Alexandra-0.9.s.tar.gz#/alex/readline.c

This is readline.c in view mode; [Download] [Up]

#import "readline.h"
#include <string.h>
#include <stdlib.h>

static char *buffer=NULL;
static unsigned long length_of_buffer;


char *readline(FILE *theFile)
{
    void *ptr;
    int offset;

    if(buffer==NULL){
      buffer=(char *)malloc(64*sizeof(char));
      length_of_buffer=64;
    }
    ptr=NULL;
    offset=0;
	 *buffer='\0';
    while(ptr=fgets(buffer+offset,length_of_buffer-offset,theFile), ((ptr!=NULL)&&(buffer[strlen(buffer)-1]!='\n'))){
       buffer=realloc((char *)buffer,length_of_buffer*2);
       offset=length_of_buffer-1;
       length_of_buffer*=2;
    }
    
    if(ptr==NULL)
       return NULL;
    else
       return buffer;
}

char *get_buffer()
{
   return buffer;
}

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