X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fline-buffer.c;h=146ca00a92847e93d5179a85a8180fa53f1946c2;hb=92f198d13c9214c0d75b936f0ea0dc2684ea914b;hp=1b48f5386e26457bf95bcc797e5458d1ffb96429;hpb=b74d09af5e07f954c18e7cdb8aca3af47fa10208;p=pspp diff --git a/src/language/line-buffer.c b/src/language/line-buffer.c index 1b48f5386e..146ca00a92 100644 --- a/src/language/line-buffer.c +++ b/src/language/line-buffer.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -85,7 +86,7 @@ struct getl_source function; /* INTERACTIVE. */ - bool (*interactive) (struct string *line, const char *prompt); + bool (*interactive) (struct string *line, enum getl_prompt_style); } u; @@ -103,7 +104,7 @@ static void close_source (void); static void init_prompts (void); static void uninit_prompts (void); -static const char *get_prompt (void); +static enum getl_prompt_style get_prompt_style (void); /* Initialize getl. */ void @@ -214,7 +215,7 @@ create_function_source (bool (*read) (struct string *line, /* Creates an interactive source with the given FUNCTION. */ static struct getl_source * create_interactive_source (bool (*function) (struct string *line, - const char *prompt)) + enum getl_prompt_style)) { struct getl_source *s = xmalloc (sizeof *s); s->fn = NULL; @@ -297,7 +298,7 @@ getl_include_function (bool (*read) (struct string *line, obtained or false at end of file. */ void getl_append_interactive (bool (*function) (struct string *line, - const char *prompt)) + enum getl_prompt_style)) { append_source (create_interactive_source (function)); } @@ -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. */ @@ -423,10 +425,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]; @@ -489,10 +491,10 @@ read_line_from_source (struct string *line, struct getl_source *s) case FUNCTION: return s->u.function.read (line, &s->fn, &s->ln, s->u.function.aux); case INTERACTIVE: - return s->u.interactive (line, get_prompt ()); + return s->u.interactive (line, get_prompt_style ()); } - abort (); + NOT_REACHED (); } /* Reads a single line into LINE. @@ -589,8 +591,8 @@ getl_set_prompt_style (enum getl_prompt_style style) } /* Returns the current prompt. */ -static const char * -get_prompt (void) +static enum getl_prompt_style +get_prompt_style (void) { - return prompts[current_style]; + return current_style; }