Index: doc/src/sgml/ref/psql-ref.sgml
===================================================================
RCS file: /cvsroot/pgsql-server/doc/src/sgml/ref/psql-ref.sgml,v
retrieving revision 1.112
diff -c -c -r1.112 psql-ref.sgml
*** doc/src/sgml/ref/psql-ref.sgml 21 Apr 2004 00:34:18 -0000 1.112
--- doc/src/sgml/ref/psql-ref.sgml 21 Apr 2004 03:51:13 -0000
***************
*** 440,446 ****
! Do not read the start-up file ~/.psqlrc.
--- 440,447 ----
! Do not read the start-up file /psql.rc or
! ~/.psqlrc.
***************
*** 1859,1866 ****
The autocommit-on mode is PostgreSQL>'s traditional
behavior, but autocommit-off is closer to the SQL spec. If you
! prefer autocommit-off, you may wish to set it in
! your .psqlrc file.
--- 1860,1868 ----
The autocommit-on mode is PostgreSQL>'s traditional
behavior, but autocommit-off is closer to the SQL spec. If you
! prefer autocommit-off, you may wish to set it in the system-wide
! psql.rc or your
! .psqlrc file.
***************
*** 2488,2496 ****
Before starting up, psql attempts to
! read and execute commands from the file
! $HOME/.psqlrc. It could be used to set up
! the client or the server to taste (using the \set
and SET commands).
--- 2490,2501 ----
Before starting up, psql attempts to
! read and execute commands from the the system-wide
! psql.rc file and the
! $HOME/.psqlrc file in the user's home
! directory. See PREFIX>/share/psql.rc.sample>
! for information on setting up the system-wide file. It could be used
! to set up the client or the server to taste (using the \set
and SET commands).
Index: src/bin/psql/Makefile
===================================================================
RCS file: /cvsroot/pgsql-server/src/bin/psql/Makefile,v
retrieving revision 1.40
diff -c -c -r1.40 Makefile
*** src/bin/psql/Makefile 9 Mar 2004 19:47:05 -0000 1.40
--- src/bin/psql/Makefile 21 Apr 2004 03:51:14 -0000
***************
*** 15,21 ****
REFDOCDIR= $(top_srcdir)/doc/src/sgml/ref
! override CPPFLAGS := -I$(libpq_srcdir) $(CPPFLAGS) -DFRONTEND
OBJS= command.o common.o help.o input.o stringutils.o mainloop.o copy.o \
startup.o prompt.o variables.o large_obj.o print.o describe.o \
--- 15,21 ----
REFDOCDIR= $(top_srcdir)/doc/src/sgml/ref
! override CPPFLAGS := -I$(libpq_srcdir) $(CPPFLAGS) -DFRONTEND -DSYSCONFDIR='"$(sysconfdir)"'
OBJS= command.o common.o help.o input.o stringutils.o mainloop.o copy.o \
startup.o prompt.o variables.o large_obj.o print.o describe.o \
***************
*** 50,55 ****
--- 50,56 ----
install: all installdirs
$(INSTALL_PROGRAM) psql$(X) $(DESTDIR)$(bindir)/psql$(X)
+ $(INSTALL_DATA) $(srcdir)/psql.rc.sample $(DESTDIR)$(datadir)/psql.rc.sample
installdirs:
$(mkinstalldirs) $(DESTDIR)$(bindir)
Index: src/bin/psql/startup.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/bin/psql/startup.c,v
retrieving revision 1.88
diff -c -c -r1.88 startup.c
*** src/bin/psql/startup.c 19 Apr 2004 17:42:58 -0000 1.88
--- src/bin/psql/startup.c 21 Apr 2004 03:51:15 -0000
***************
*** 44,50 ****
*/
PsqlSettings pset;
! #define PSQLRC ".psqlrc"
/*
* Structures to pass information between the option parsing routine
--- 44,51 ----
*/
PsqlSettings pset;
! #define PSQLRC ".psqlrc"
! #define SYSPSQLRC "psql.rc"
/*
* Structures to pass information between the option parsing routine
***************
*** 74,79 ****
--- 75,81 ----
static void parse_psql_options(int argc, char *argv[],
struct adhoc_opts * options);
static void process_psqlrc(void);
+ static void process_psqlrc_file(char *filename);
static void showVersion(void);
#ifdef USE_SSL
***************
*** 562,567 ****
--- 564,572 ----
}
+ #ifndef SYSCONFDIR
+ #error "You must compile this file with SYSCONFDIR defined."
+ #endif
/*
***************
*** 570,601 ****
static void
process_psqlrc(void)
{
! char *psqlrc;
char *home;
#if defined(WIN32) && (!defined(__MINGW32__))
#define R_OK 4
#endif
! /* Look for one in the home dir */
! home = getenv("HOME");
!
! if (home)
! {
! psqlrc = pg_malloc(strlen(home) + 1 + strlen(PSQLRC) + 1 +
! strlen(PG_VERSION) + 1);
! sprintf(psqlrc, "%s/%s-%s", home, PSQLRC, PG_VERSION);
! if (access(psqlrc, R_OK) == 0)
! process_file(psqlrc);
! else
! {
! sprintf(psqlrc, "%s/%s", home, PSQLRC);
! if (access(psqlrc, R_OK) == 0)
! process_file(psqlrc);
! }
! free(psqlrc);
! }
}
--- 575,613 ----
static void
process_psqlrc(void)
{
! char *globalFile = SYSCONFDIR "/" SYSPSQLRC;
char *home;
+ char *psqlrc;
+
+ process_psqlrc_file(globalFile);
+
+ if ((home = getenv("HOME")) != NULL)
+ {
+ psqlrc = pg_malloc(strlen(home) + 1 + strlen(PSQLRC) + 1);
+ sprintf(psqlrc, "%s/%s", home, PSQLRC);
+ process_psqlrc_file(psqlrc);
+ }
+ }
+
+
+
+ static void
+ process_psqlrc_file(char *filename)
+ {
+ char *psqlrc;
#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);
! if (access(psqlrc, R_OK) == 0)
! process_file(psqlrc);
! else if (access(filename, R_OK) == 0)
! process_file(filename);
! free(psqlrc);
}