X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fline-buffer.c;h=0dcb70f94952bab00fdd98cf09db83f02d729d6e;hb=5f7f751a47c68946a0fcbc9898f43f5499c5c6c5;hp=96ef8559a0e63dbe47f449270a02629fff87d587;hpb=5729150f2c4a00caf688e7e3b514b10b1987e211;p=pspp diff --git a/src/language/line-buffer.c b/src/language/line-buffer.c index 96ef8559a0..0dcb70f949 100644 --- a/src/language/line-buffer.c +++ b/src/language/line-buffer.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -97,7 +98,6 @@ static struct getl_source *last_source; static struct string getl_include_path; -struct string getl_buf; static void close_source (void); @@ -105,16 +105,17 @@ static void init_prompts (void); static void uninit_prompts (void); static enum getl_prompt_style get_prompt_style (void); + /* Initialize getl. */ void getl_initialize (void) { ds_init_cstr (&getl_include_path, fn_getenv_default ("STAT_INCLUDE_PATH", include_path)); - ds_init_empty (&getl_buf); init_prompts (); } + /* Delete everything from the include path. */ void getl_clear_include_path (void) @@ -377,6 +378,7 @@ getl_location (const char **fn, int *ln) /* File locator stack. */ static const struct msg_locator **file_loc; + static int nfile_loc, mfile_loc; /* Close getl. */ @@ -385,7 +387,6 @@ getl_uninitialize (void) { while (cur_source != NULL) close_source (); - ds_destroy (&getl_buf); ds_destroy (&getl_include_path); free(file_loc); file_loc = NULL; @@ -423,10 +424,10 @@ msg_pop_msg_locator (const struct msg_locator *loc) nfile_loc--; } -/* Puts the current file and line number in F, or NULL and -1 if +/* Puts the current file and line number into LOC, or NULL and -1 if none. */ void -msg_location (struct msg_locator *loc) +get_msg_location (struct msg_locator *loc) { if (nfile_loc) *loc = *file_loc[nfile_loc - 1]; @@ -492,7 +493,7 @@ read_line_from_source (struct string *line, struct getl_source *s) return s->u.interactive (line, get_prompt_style ()); } - abort (); + NOT_REACHED (); } /* Reads a single line into LINE. @@ -500,7 +501,7 @@ read_line_from_source (struct string *line, struct getl_source *s) If INTERACTIVE is non-null, then when true is returned *INTERACTIVE will be set to true if the line was obtained interactively, false otherwise. */ -static bool +bool do_read_line (struct string *line, bool *interactive) { while (cur_source != NULL) @@ -523,16 +524,6 @@ do_read_line (struct string *line, bool *interactive) return false; } -/* Reads a single line into getl_buf. - Returns true when a line has been read, false at end of input. - If INTERACTIVE is non-null, then when true is returned - *INTERACTIVE will be set to true if the line was obtained - interactively, false otherwise. */ -bool -getl_read_line (bool *interactive) -{ - return do_read_line (&getl_buf, interactive); -} /* Current prompts in each style. */ static char *prompts[GETL_PROMPT_CNT];