X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fterminal%2Fread-line.c;h=54f90858a5d90542aa70d0d7bade755d5ecd9621;hb=e14e3990ef75795b40ee06a4b59a3e6af2d3aef0;hp=493a3d63cf5bd6399e7ea90de6081ae59d967e5c;hpb=bce579d144b66ca2eee18f6d27d847285a96d7b9;p=pspp diff --git a/src/ui/terminal/read-line.c b/src/ui/terminal/read-line.c index 493a3d63cf..54f90858a5 100644 --- a/src/ui/terminal/read-line.c +++ b/src/ui/terminal/read-line.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 1997-9, 2000, 2007 Free Software Foundation, Inc. + Copyright (C) 1997-9, 2000, 2007, 2009 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -22,18 +22,22 @@ #include #include #include +#if ! HAVE_READLINE +#include +#endif #include "msg-ui.h" #include #include #include +#include #include #include #include #include #include -#include +#include #include #include "xalloc.h" @@ -92,7 +96,7 @@ readln_uninitialize (void) initialised = false; #if HAVE_READLINE - if (history_file != NULL && false == get_testing_mode() ) + if (history_file != NULL && false == settings_get_testing_mode () ) write_history (history_file); clear_history (); free (history_file); @@ -104,8 +108,7 @@ static bool read_interactive (struct getl_interface *s, struct string *line) { - struct readln_source *is = - (struct readln_source *) s ; + struct readln_source *is = UP_CAST (s, struct readln_source, parent); return is->interactive_func (line, prompt_get_style ()); } @@ -152,8 +155,7 @@ readln_read (struct string *line, enum prompt_style style) welcome (); - if (style == PROMPT_FIRST) - som_flush (); + output_flush (); #if HAVE_READLINE rl_attempted_completion_function = (style == PROMPT_FIRST @@ -173,7 +175,7 @@ readln_read (struct string *line, enum prompt_style style) #else fputs (prompt, stdout); fflush (stdout); - if (ds_read_line (line, stdin)) + if (ds_read_line (line, stdin, SIZE_MAX)) { ds_chomp (line, '\n'); eof = false; @@ -212,7 +214,7 @@ create_readln_source (void) rlns->parent.read = read_interactive; rlns->parent.close = readln_close; - return (struct getl_interface *) rlns; + return &rlns->parent; }