X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/f22bc725a1c8294fc042f6a9541be01a177755f6..f5d90b5fcf0251466055c7dbed6069c1850d802d:/lib/save-cwd.c?ds=sidebyside diff --git a/lib/save-cwd.c b/lib/save-cwd.c index fd746584fa..1fa5d69e85 100644 --- a/lib/save-cwd.c +++ b/lib/save-cwd.c @@ -1,6 +1,6 @@ /* save-cwd.c -- Save and restore current working directory. - Copyright (C) 1995, 1997-1998, 2003-2006, 2009-2014 Free Software + Copyright (C) 1995, 1997-1998, 2003-2006, 2009-2016 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -50,14 +50,14 @@ you're still using an obsolete system with these problems, please send email to the maintainer of this code. */ +#if !defined HAVE_FCHDIR && !defined fchdir +# define fchdir(fd) (-1) +#endif + int save_cwd (struct saved_cwd *cwd) { -#ifdef HAVE_FCHDIR cwd->desc = open (".", O_SEARCH | O_CLOEXEC); -#else - cwd->desc = -1; -#endif /* The 'name' member is present only to minimize differences from gnulib. Initialize it to zero, if only to simplify debugging. */ cwd->name = 0; @@ -71,16 +71,14 @@ save_cwd (struct saved_cwd *cwd) int restore_cwd (const struct saved_cwd *cwd) { -#ifdef HAVE_FCHDIR /* Restore the previous directory if possible, to avoid tying down - the file system of the new directory (Bug#18232). */ + the file system of the new directory (Bug#18232). + Don't worry if fchdir fails, as Emacs doesn't care what the + working directory is. The fchdir call is inside an 'if' merely to + pacify compilers that complain if fchdir's return value is ignored. */ if (fchdir (cwd->desc) == 0) return 0; - /* Don't worry if fchdir fails, as Emacs doesn't care what the - working directory is. The fchdir call is inside an 'if' merely to - pacify compilers that complain if fchdir's return value is ignored. */ -#endif return 0; }