aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2018-04-22 13:58:27 +0100
committerSimon Tatham <anakin@pobox.com>2018-04-22 16:35:50 +0100
commitb7034aeb51a99336fca2e15837c8337481964f6d (patch)
treef1e4fb0a418bec69e36ac6ab084467f338235f07
parent12cb1adc886078d715abbc04e80912703340f496 (diff)
downloadpuzzles-b7034aeb51a99336fca2e15837c8337481964f6d.zip
puzzles-b7034aeb51a99336fca2e15837c8337481964f6d.tar.gz
puzzles-b7034aeb51a99336fca2e15837c8337481964f6d.tar.bz2
puzzles-b7034aeb51a99336fca2e15837c8337481964f6d.tar.xz
Move fgetline out into misc.c.
I'm about to want to use it outside the GTK front end.
-rw-r--r--gtk.c19
-rw-r--r--misc.c19
-rw-r--r--puzzles.h1
3 files changed, 20 insertions, 19 deletions
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. */