diff --git a/gtk.c b/gtk.c index 3078e51..7deb753 100644 --- a/gtk.c +++ b/gtk.c @@ -2886,25 +2886,6 @@ static frontend *new_window(char *arg, int argtype, char **error) return fe; } -char *fgetline(FILE *fp) -{ - char *ret = snewn(512, char); - int size = 512, len = 0; - while (fgets(ret + len, size - len, fp)) { - len += strlen(ret + len); - if (ret[len-1] == '\n') - break; /* got a newline, we're done */ - size = len + 512; - ret = sresize(ret, size, char); - } - if (len == 0) { /* first fgets returned NULL */ - sfree(ret); - return NULL; - } - ret[len] = '\0'; - return ret; -} - static void list_presets_from_menu(struct preset_menu *menu) { int i; diff --git a/misc.c b/misc.c index b6a190b..852f869 100644 --- a/misc.c +++ b/misc.c @@ -169,6 +169,25 @@ unsigned char *hex2bin(const char *in, int outlen) return ret; } +char *fgetline(FILE *fp) +{ + char *ret = snewn(512, char); + int size = 512, len = 0; + while (fgets(ret + len, size - len, fp)) { + len += strlen(ret + len); + if (ret[len-1] == '\n') + break; /* got a newline, we're done */ + size = len + 512; + ret = sresize(ret, size, char); + } + if (len == 0) { /* first fgets returned NULL */ + sfree(ret); + return NULL; + } + ret[len] = '\0'; + return ret; +} + void game_mkhighlight_specific(frontend *fe, float *ret, int background, int highlight, int lowlight) { diff --git a/puzzles.h b/puzzles.h index 40f5bcb..6b6e6b3 100644 --- a/puzzles.h +++ b/puzzles.h @@ -357,6 +357,7 @@ char *dupstr(const char *s); */ void free_cfg(config_item *cfg); void obfuscate_bitmap(unsigned char *bmp, int bits, int decode); +char *fgetline(FILE *fp); /* allocates output each time. len is always in bytes of binary data. * May assert (or just go wrong) if lengths are unchecked. */