1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-28 23:42:10 +03:00

Allow a major PG version psql .psqlrc file to be used if a minor

matching version file does not exist.  This avoids needing to rename
.psqlrc files after minor version upgrades.
This commit is contained in:
Bruce Momjian
2011-10-14 20:26:28 -04:00
parent d26e1ebaf5
commit 2795592e52
2 changed files with 17 additions and 8 deletions

View File

@ -594,20 +594,27 @@ process_psqlrc(char *argv0)
static void
process_psqlrc_file(char *filename)
{
char *psqlrc;
char *psqlrc_minor, *psqlrc_major;
#if defined(WIN32) && (!defined(__MINGW32__))
#define R_OK 4
#endif
psqlrc = pg_malloc(strlen(filename) + 1 + strlen(PG_VERSION) + 1);
sprintf(psqlrc, "%s-%s", filename, PG_VERSION);
psqlrc_minor = pg_malloc(strlen(filename) + 1 + strlen(PG_VERSION) + 1);
sprintf(psqlrc_minor, "%s-%s", filename, PG_VERSION);
psqlrc_major = pg_malloc(strlen(filename) + 1 + strlen(PG_MAJORVERSION) + 1);
sprintf(psqlrc_major, "%s-%s", filename, PG_MAJORVERSION);
if (access(psqlrc, R_OK) == 0)
(void) process_file(psqlrc, false, false);
/* check for minor version first, then major, then no version */
if (access(psqlrc_minor, R_OK) == 0)
(void) process_file(psqlrc_minor, false, false);
else if (access(psqlrc_major, R_OK) == 0)
(void) process_file(psqlrc_major, false, false);
else if (access(filename, R_OK) == 0)
(void) process_file(filename, false, false);
free(psqlrc);
free(psqlrc_minor);
free(psqlrc_major);
}