patches.
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.75 2004/07/12 02:22:49 momjian Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.76 2004/08/13 14:47:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
        strncpy(piece, p, len);
        piece[len] = '\0';
 
-       canonicalize_path(piece);
        mangled = substitute_libpath_macro(piece);
        pfree(piece);
 
+       canonicalize_path(mangled);
+
        /* only absolute paths */
        if (!is_absolute_path(mangled))
            ereport(ERROR,
 
  *
  * Copyright (c) 2000-2003, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/command.c,v 1.122 2004/07/15 03:56:06 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/command.c,v 1.123 2004/08/13 14:47:23 tgl Exp $
  */
 #include "postgres_fe.h"
 #include "command.h"
            fname = psql_scan_slash_option(scan_state,
                                           OT_NORMAL, NULL, true);
            expand_tilde(&fname);
-           canonicalize_path(fname);
+           if (fname)
+               canonicalize_path(fname);
            status = do_edit(fname, query_buf) ? CMD_NEWEDIT : CMD_ERROR;
            free(fname);
        }
 
  *
  * Copyright (c) 2000-2003, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/copy.c,v 1.50 2004/07/11 21:34:03 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/copy.c,v 1.51 2004/08/13 14:47:23 tgl Exp $
  */
 #include "postgres_fe.h"
 #include "copy.h"
        appendPQExpBuffer(&query, " FORCE NOT NULL %s", options->force_notnull_list);
    }
 
-   canonicalize_path(options->file);
+   if (options->file)
+       canonicalize_path(options->file);
 
    if (options->from)
    {
 
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/port/path.c,v 1.29 2004/08/12 19:03:44 momjian Exp $
+ *   $PostgreSQL: pgsql/src/port/path.c,v 1.30 2004/08/13 14:47:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 {
    char path[MAXPGPATH];
    char my_exec_path[MAXPGPATH];
-   char env_path[MAXPGPATH + sizeof("PGLOCALEDIR=")]; /* longer than PGSYSCONFDIR */
+   char env_path[MAXPGPATH + sizeof("PGSYSCONFDIR=")]; /* longer than PGLOCALEDIR */
 
    /* don't set LC_ALL in the backend */
    if (strcmp(app, "postgres") != 0)
    {
        /* set for libpq to use */
        snprintf(env_path, sizeof(env_path), "PGLOCALEDIR=%s", path);
-       canonicalize_path(env_path);
+       canonicalize_path(env_path + 12);
        putenv(strdup(env_path));
    }
 #endif
    
        /* set for libpq to use */
        snprintf(env_path, sizeof(env_path), "PGSYSCONFDIR=%s", path);
-       canonicalize_path(env_path);
+       canonicalize_path(env_path + 13);
        putenv(strdup(env_path));
    }
 }