/* * Put any startup stuff related to input in here. It's good to maintain * abstraction this way. * * The only "flag" right now is 1 for use readline & history. */ void initializeInput(int flags) { #ifdef USE_READLINE if (flags & 1) { const char *histfile; char home[MAXPGPATH]; useReadline = true; initialize_readline(); useHistory = true; using_history(); history_lines_added = 0; histfile = GetVariable(pset.vars, "HISTFILE"); if (histfile == NULL) { char *envhist; envhist = getenv("PSQL_HISTORY"); if (envhist != NULL && strlen(envhist) > 0) histfile = envhist; } if (histfile == NULL) { if (get_home_path(home)) { psql_history = pg_malloc(strlen(home) + 1 + strlen(PSQLHISTORY) + 1); snprintf(psql_history, MAXPGPATH, "%s/%s", home, PSQLHISTORY); } } else { psql_history = pg_strdup(histfile); expand_tilde(&psql_history); } if (psql_history) { read_history(psql_history); decode_history(); } } #endif atexit(finishInput); }
/* * Put any startup stuff related to input in here. It's good to maintain * abstraction this way. * * The only "flag" right now is 1 for use readline & history. */ void initializeInput(int flags) { #ifdef USE_READLINE if (flags & 1) { const char *histfile; char home[MAXPGPATH]; useReadline = true; initialize_readline(); useHistory = true; using_history(); histfile = GetVariable(pset.vars, "HISTFILE"); if (histfile == NULL) { if (get_home_path(home)) { psql_history = pg_malloc(strlen(home) + 1 + strlen(PSQLHISTORY) + 1); snprintf(psql_history, MAXPGPATH, "%s/%s", home, PSQLHISTORY); } } else { psql_history = pg_strdup(histfile); expand_tilde(&psql_history); } if (psql_history) { read_history(psql_history); decode_history(); } } #endif #ifdef HAVE_ATEXIT atexit(finishInput); #else on_exit(finishInput, NULL); #endif }