Description: Hurd build without PATH_MAX; currently broken Forwarded: no Origin: vendor, https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=761036;filename=hurd_file_name_support;msg=5 Bug-Debian: https://bugs.debian.org/761036 Author: Don Armstrong Author: Petter Reinholdtsen Reviewed-by: Dr. Tobias Quathamer Reviewed-by: Anthony Fok Last-Update: 2017-01-27 --- a/flower/file-name.cc +++ b/flower/file-name.cc @@ -96,9 +96,16 @@ string get_working_directory () { +#ifdef _GNU_SOURCE + char *cwd = get_current_dir_name(); + string scwd(cwd); + free(cwd); + return scwd; +#else char cwd[PATH_MAX]; // getcwd returns NULL upon a failure, contents of cwd would be undefined! return string (getcwd (cwd, PATH_MAX)); +#endif } /* Join components to full file_name. */ --- a/flower/test-file-path.cc +++ b/flower/test-file-path.cc @@ -6,12 +6,26 @@ #include "yaffut.hh" #include "config.hh" +string +get_working_directory () +{ +#ifdef _GNU_SOURCE + char *cwd = get_current_dir_name(); + string scwd(cwd); + free(cwd); + return scwd; +#else + char cwd[PATH_MAX]; + // getcwd returns NULL upon a failure, contents of cwd would be undefined! + return string (getcwd (cwd, PATH_MAX)); +#endif +} + TEST (File_path, Find) { char const *extensions[] = {"ly", "", 0}; string file = "init"; - char cwd[PATH_MAX]; - if (!getcwd (cwd, PATH_MAX)) + if (get_working_directory().empty()) { cerr << "Could not get current work directory\n"; exit (1);