mirror of https://github.com/bsnes-emu/bsnes.git
SameBoy Windows getline() compilation fix.
This commit is contained in:
parent
73f0b7bb41
commit
ea75d1bc7c
bsnes/gb
|
@ -2,6 +2,9 @@
|
|||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include "gb.h"
|
||||
#ifdef _WIN32
|
||||
#include "../Windows/getline.h"
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
bool has_bank;
|
||||
|
|
|
@ -12,7 +12,9 @@
|
|||
#endif
|
||||
#include "random.h"
|
||||
#include "gb.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#include "../Windows/getline.h"
|
||||
#endif
|
||||
|
||||
#ifdef DISABLE_REWIND
|
||||
#define GB_rewind_free(...)
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
/* This code is public domain -- Will Hartung 4/9/09 */
|
||||
static inline size_t getline(char **lineptr, size_t *n, FILE *stream) {
|
||||
char *bufptr = NULL;
|
||||
char *p = bufptr;
|
||||
size_t size;
|
||||
int c;
|
||||
|
||||
if (lineptr == NULL) {
|
||||
return -1;
|
||||
}
|
||||
if (stream == NULL) {
|
||||
return -1;
|
||||
}
|
||||
if (n == NULL) {
|
||||
return -1;
|
||||
}
|
||||
bufptr = *lineptr;
|
||||
size = *n;
|
||||
|
||||
c = fgetc(stream);
|
||||
if (c == EOF) {
|
||||
return -1;
|
||||
}
|
||||
if (bufptr == NULL) {
|
||||
bufptr = malloc(128);
|
||||
if (bufptr == NULL) {
|
||||
return -1;
|
||||
}
|
||||
size = 128;
|
||||
}
|
||||
p = bufptr;
|
||||
while (c != EOF) {
|
||||
if ((p - bufptr) > (size - 1)) {
|
||||
size = size + 128;
|
||||
bufptr = realloc(bufptr, size);
|
||||
if (bufptr == NULL) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
*p++ = c;
|
||||
if (c == '\n') {
|
||||
break;
|
||||
}
|
||||
c = fgetc(stream);
|
||||
}
|
||||
|
||||
*p++ = '\0';
|
||||
*lineptr = bufptr;
|
||||
*n = size;
|
||||
|
||||
return p - bufptr - 1;
|
||||
}
|
Loading…
Reference in New Issue