* cygwin.din (get_current_dir_name): Export.
* path.cc (get_current_dir_name): New function. * posix.sgml (std-gnu): Add get_current_dir_name. * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
This commit is contained in:
		| @@ -0,0 +1,6 @@ | |||||||
|  | 2012-01-01  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net> | ||||||
|  |  | ||||||
|  | 	* cygwin.din (get_current_dir_name): Export. | ||||||
|  | 	* path.cc (get_current_dir_name): New function. | ||||||
|  | 	* posix.sgml (std-gnu): Add get_current_dir_name. | ||||||
|  | 	* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. | ||||||
|   | |||||||
| @@ -672,6 +672,7 @@ _gcvt = gcvt SIGFE | |||||||
| gcvtf SIGFE | gcvtf SIGFE | ||||||
| _gcvtf = gcvtf SIGFE | _gcvtf = gcvtf SIGFE | ||||||
| get_avphys_pages SIGFE | get_avphys_pages SIGFE | ||||||
|  | get_current_dir_name SIGFE | ||||||
| get_nprocs SIGFE | get_nprocs SIGFE | ||||||
| get_nprocs_conf SIGFE | get_nprocs_conf SIGFE | ||||||
| get_osfhandle SIGFE | get_osfhandle SIGFE | ||||||
|   | |||||||
| @@ -426,12 +426,13 @@ details. */ | |||||||
|       255: Export ptsname_r. |       255: Export ptsname_r. | ||||||
|       256: Add CW_ALLOC_DRIVE_MAP, CW_MAP_DRIVE_MAP, CW_FREE_DRIVE_MAP. |       256: Add CW_ALLOC_DRIVE_MAP, CW_MAP_DRIVE_MAP, CW_FREE_DRIVE_MAP. | ||||||
|       257: Export getpt. |       257: Export getpt. | ||||||
|  |       258: Export get_current_dir_name. | ||||||
|      */ |      */ | ||||||
|  |  | ||||||
|      /* Note that we forgot to bump the api for ualarm, strtoll, strtoull */ |      /* Note that we forgot to bump the api for ualarm, strtoll, strtoull */ | ||||||
|  |  | ||||||
| #define CYGWIN_VERSION_API_MAJOR 0 | #define CYGWIN_VERSION_API_MAJOR 0 | ||||||
| #define CYGWIN_VERSION_API_MINOR 257 | #define CYGWIN_VERSION_API_MINOR 258 | ||||||
|  |  | ||||||
|      /* There is also a compatibity version number associated with the |      /* There is also a compatibity version number associated with the | ||||||
| 	shared memory regions.  It is incremented when incompatible | 	shared memory regions.  It is incremented when incompatible | ||||||
|   | |||||||
| @@ -2855,6 +2855,27 @@ getwd (char *buf) | |||||||
|   return getcwd (buf, PATH_MAX + 1);  /*Per SuSv3!*/ |   return getcwd (buf, PATH_MAX + 1);  /*Per SuSv3!*/ | ||||||
| } | } | ||||||
|  |  | ||||||
|  | extern "C" char * | ||||||
|  | get_current_dir_name (void) | ||||||
|  | { | ||||||
|  |   char *pwd = getenv ("PWD"); | ||||||
|  |   char *cwd = getcwd (NULL, 0); | ||||||
|  |  | ||||||
|  |   if (pwd) | ||||||
|  |     { | ||||||
|  |       struct __stat64 pwdbuf, cwdbuf; | ||||||
|  |       stat64 (pwd, &pwdbuf); | ||||||
|  |       stat64 (cwd, &cwdbuf); | ||||||
|  |       if ((pwdbuf.st_dev == cwdbuf.st_dev) && (pwdbuf.st_ino == cwdbuf.st_ino)) | ||||||
|  |         { | ||||||
|  |           cwd = (char *) malloc (strlen (pwd) + 1); | ||||||
|  |           strcpy (cwd, pwd); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |   return cwd; | ||||||
|  | } | ||||||
|  |  | ||||||
| /* chdir: POSIX 5.2.1.1 */ | /* chdir: POSIX 5.2.1.1 */ | ||||||
| extern "C" int | extern "C" int | ||||||
| chdir (const char *in_dir) | chdir (const char *in_dir) | ||||||
|   | |||||||
| @@ -1111,6 +1111,7 @@ also IEEE Std 1003.1-2008 (POSIX.1-2008).</para> | |||||||
|     fremovexattr |     fremovexattr | ||||||
|     fsetxattr |     fsetxattr | ||||||
|     get_avphys_pages |     get_avphys_pages | ||||||
|  |     get_current_dir_name | ||||||
|     get_phys_pages |     get_phys_pages | ||||||
|     get_nprocs |     get_nprocs | ||||||
|     get_nprocs_conf |     get_nprocs_conf | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user