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); }