saveHistory(char *fname, int max_lines)
{
#ifdef USE_READLINE
+ int errnum;
/*
* Suppressing the write attempt when HISTFILE is set to /dev/null may
* history from other concurrent sessions (although there are still
* race conditions when two sessions exit at about the same time). If
* we don't have those functions, fall back to write_history().
- *
- * Note: return value of write_history is not standardized across GNU
- * readline and libedit. Therefore, check for errno becoming set to
- * see if the write failed. Similarly for append_history.
*/
#if defined(HAVE_HISTORY_TRUNCATE_FILE) && defined(HAVE_APPEND_HISTORY)
{
nlines = Min(max_lines, history_lines_added);
else
nlines = history_lines_added;
- errno = 0;
- (void) append_history(nlines, fname);
- if (errno == 0)
+ errnum = append_history(nlines, fname);
+ if (errnum == 0)
return true;
}
#else /* don't have append support */
if (max_lines >= 0)
stifle_history(max_lines);
/* ... and overwrite file. Tough luck for concurrent sessions. */
- errno = 0;
- (void) write_history(fname);
- if (errno == 0)
+ errnum = write_history(fname);
+ if (errnum == 0)
return true;
}
#endif
psql_error("could not save history to file \"%s\": %s\n",
- fname, strerror(errno));
+ fname, strerror(errnum));
}
#endif