Index: src/backend/utils/fmgr/dfmgr.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/utils/fmgr/dfmgr.c,v
retrieving revision 1.70
diff -c -r1.70 dfmgr.c
*** src/backend/utils/fmgr/dfmgr.c	17 Feb 2004 03:35:57 -0000	1.70
--- src/backend/utils/fmgr/dfmgr.c	5 Mar 2004 00:15:15 -0000
***************
*** 343,348 ****
--- 343,351 ----
  {
  	size_t		macroname_len;
  	char	   *replacement = NULL;
+ #ifdef WIN32
+ 	char		basename[MAXPGPATH];
+ #endif
  
  	AssertArg(name != NULL);
  
***************
*** 356,362 ****
--- 359,384 ----
  #endif
  
  	if (strncmp(name, "$libdir", macroname_len) == 0)
+ #ifndef WIN32
  		replacement = PKGLIBDIR;
+ #else
+ 	{
+ 		char *p;
+ 		if (GetModuleFileName(NULL,basename,MAXPGPATH) == 0)
+ 			ereport(FATAL,
+ 					(errmsg("GetModuleFileName failed (%i)",(int)GetLastError())));
+ 
+ 		canonicalize_path(basename);
+ 		if ((p = last_path_separator(basename)) == NULL)
+ 			ereport(FATAL,
+ 					(errmsg("unexpected failure in determining PKGLIBDIR (%s)",basename)));
+ 		else
+ 			*p = '\0';
+ 
+ 		strcat(basename,"/../lib");
+ 		replacement = basename;
+ 	}
+ #endif
  	else
  		ereport(ERROR,
  				(errcode(ERRCODE_INVALID_NAME),
