[SV 40043] Set the current directory before printing errors.

This commit is contained in:
Paul Smith 2013-09-18 19:29:28 -04:00
parent 8a6205b43f
commit 30a5ee0d85
2 changed files with 10 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2013-09-18 Paul Smith <psmith@gnu.org>
* main.c (main): Set starting_directory before we write any
errors. Fixes Savannah bug #40043.
2013-09-16 Eli Zaretskii <eliz@gnu.org> 2013-09-16 Eli Zaretskii <eliz@gnu.org>
* output.c [WINDOWS32]: Include windows.h and sub_proc.h, to avoid * output.c [WINDOWS32]: Include windows.h and sub_proc.h, to avoid

10
main.c
View File

@ -1477,6 +1477,9 @@ main (int argc, char **argv, char **envp)
#endif /* WINDOWS32 */ #endif /* WINDOWS32 */
#endif #endif
/* We may move, but until we do, here we are. */
starting_directory = current_directory;
#ifdef MAKE_JOBSERVER #ifdef MAKE_JOBSERVER
/* If the jobserver-fds option is seen, make sure that -j is reasonable. /* If the jobserver-fds option is seen, make sure that -j is reasonable.
This can't be usefully set in the makefile, and we want to verify the This can't be usefully set in the makefile, and we want to verify the
@ -1667,11 +1670,8 @@ main (int argc, char **argv, char **envp)
construct_include_path (include_directories == 0 construct_include_path (include_directories == 0
? 0 : include_directories->list); ? 0 : include_directories->list);
/* Figure out where we are now, after chdir'ing. */ /* If we chdir'ed, figure out where we are now. */
if (directories == 0) if (directories)
/* We didn't move, so we're still in the same place. */
starting_directory = current_directory;
else
{ {
#ifdef WINDOWS32 #ifdef WINDOWS32
if (getcwd_fs (current_directory, GET_PATH_MAX) == 0) if (getcwd_fs (current_directory, GET_PATH_MAX) == 0)