X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/ab6a99677293c9ddb96a717f03b8a009e98ab955..cb3af09ebd8f79390b56c7cae15e3a4d10847241:/nominatim/sprompt.c diff --git a/nominatim/sprompt.c b/nominatim/sprompt.c index f972366d..7666be5e 100644 --- a/nominatim/sprompt.c +++ b/nominatim/sprompt.c @@ -11,7 +11,7 @@ * $PostgreSQL: pgsql/src/port/sprompt.c,v 1.18 2006/10/04 00:30:14 momjian Exp $ * *------------------------------------------------------------------------- - * + * * PostgreSQL Database Management System * (formerly known as Postgres, then as Postgres95) * @@ -76,124 +76,125 @@ extern char *simple_prompt(const char *prompt, int maxlen, int echo); char * simple_prompt(const char *prompt, int maxlen, int echo) { - int length; - char *destination; - FILE *termin, - *termout; + int length; + char *destination; + FILE *termin, + *termout; #ifdef HAVE_TERMIOS_H - struct termios t_orig, - t; + struct termios t_orig, + t; #else #ifdef WIN32 - HANDLE t = NULL; - LPDWORD t_orig = NULL; + HANDLE t = NULL; + LPDWORD t_orig = NULL; #endif #endif - destination = (char *) malloc(maxlen + 1); - if (!destination) - return NULL; - - /* - * Do not try to collapse these into one "w+" mode file. Doesn't work on - * some platforms (eg, HPUX 10.20). - */ - termin = fopen(DEVTTY, "r"); - termout = fopen(DEVTTY, "w"); - if (!termin || !termout + destination = (char *) malloc(maxlen + 1); + if (!destination) + return NULL; + + /* + * Do not try to collapse these into one "w+" mode file. Doesn't work on + * some platforms (eg, HPUX 10.20). + */ + termin = fopen(DEVTTY, "r"); + termout = fopen(DEVTTY, "w"); + if (!termin || !termout #ifdef WIN32 - /* See DEVTTY comment for msys */ - || (getenv("OSTYPE") && strcmp(getenv("OSTYPE"), "msys") == 0) + /* See DEVTTY comment for msys */ + || (getenv("OSTYPE") && strcmp(getenv("OSTYPE"), "msys") == 0) #endif - ) - { - if (termin) - fclose(termin); - if (termout) - fclose(termout); - termin = stdin; - termout = stderr; - } + ) +{ + if (termin) + fclose(termin); + if (termout) + fclose(termout); + termin = stdin; + termout = stderr; + } #ifdef HAVE_TERMIOS_H - if (!echo) - { - tcgetattr(fileno(termin), &t); - t_orig = t; - t.c_lflag &= ~ECHO; - tcsetattr(fileno(termin), TCSAFLUSH, &t); - } + if (!echo) + { + tcgetattr(fileno(termin), &t); + t_orig = t; + t.c_lflag &= ~ECHO; + tcsetattr(fileno(termin), TCSAFLUSH, &t); + } #else #ifdef WIN32 - if (!echo) - { - /* get a new handle to turn echo off */ - t_orig = (LPDWORD) malloc(sizeof(DWORD)); - t = GetStdHandle(STD_INPUT_HANDLE); - - /* save the old configuration first */ - GetConsoleMode(t, t_orig); - - /* set to the new mode */ - SetConsoleMode(t, ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT); - } + if (!echo) + { + /* get a new handle to turn echo off */ + t_orig = (LPDWORD) malloc(sizeof(DWORD)); + t = GetStdHandle(STD_INPUT_HANDLE); + + /* save the old configuration first */ + GetConsoleMode(t, t_orig); + + /* set to the new mode */ + SetConsoleMode(t, ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT); + } #endif #endif - if (prompt) - { - fputs(prompt, termout); - fflush(termout); - } - - if (fgets(destination, maxlen + 1, termin) == NULL) - destination[0] = '\0'; - - length = strlen(destination); - if (length > 0 && destination[length - 1] != '\n') - { - /* eat rest of the line */ - char buf[128]; - int buflen; - - do - { - if (fgets(buf, sizeof(buf), termin) == NULL) - break; - buflen = strlen(buf); - } while (buflen > 0 && buf[buflen - 1] != '\n'); - } - - if (length > 0 && destination[length - 1] == '\n') - /* remove trailing newline */ - destination[length - 1] = '\0'; + if (prompt) + { + fputs(prompt, termout); + fflush(termout); + } + + if (fgets(destination, maxlen + 1, termin) == NULL) + destination[0] = '\0'; + + length = strlen(destination); + if (length > 0 && destination[length - 1] != '\n') + { + /* eat rest of the line */ + char buf[128]; + int buflen; + + do + { + if (fgets(buf, sizeof(buf), termin) == NULL) + break; + buflen = strlen(buf); + } + while (buflen > 0 && buf[buflen - 1] != '\n'); + } + + if (length > 0 && destination[length - 1] == '\n') + /* remove trailing newline */ + destination[length - 1] = '\0'; #ifdef HAVE_TERMIOS_H - if (!echo) - { - tcsetattr(fileno(termin), TCSAFLUSH, &t_orig); - fputs("\n", termout); - fflush(termout); - } + if (!echo) + { + tcsetattr(fileno(termin), TCSAFLUSH, &t_orig); + fputs("\n", termout); + fflush(termout); + } #else #ifdef WIN32 - if (!echo) - { - /* reset to the original console mode */ - SetConsoleMode(t, *t_orig); - fputs("\n", termout); - fflush(termout); - free(t_orig); - } + if (!echo) + { + /* reset to the original console mode */ + SetConsoleMode(t, *t_orig); + fputs("\n", termout); + fflush(termout); + free(t_orig); + } #endif #endif - if (termin != stdin) - { - fclose(termin); - fclose(termout); - } + if (termin != stdin) + { + fclose(termin); + fclose(termout); + } - return destination; + return destination; }