Fix startup working dir bug on NeXTSTEP
* src/emacs.c (main) [NS_IMPL_COCOA]: Update emacs_wd after a NS GUI chdirs successfully (Bug#42836).
This commit is contained in:
parent
69568674b3
commit
16f4f26632
1 changed files with 10 additions and 6 deletions
16
src/emacs.c
16
src/emacs.c
|
@ -1638,23 +1638,27 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem
|
||||||
{
|
{
|
||||||
#ifdef NS_IMPL_COCOA
|
#ifdef NS_IMPL_COCOA
|
||||||
/* Started from GUI? */
|
/* Started from GUI? */
|
||||||
/* FIXME: Do the right thing if get_homedir returns "", or if
|
bool go_home = (!ch_to_dir && !inhibit_window_system
|
||||||
chdir fails. */
|
&& !isatty (STDIN_FILENO));
|
||||||
if (! inhibit_window_system && ! isatty (STDIN_FILENO) && ! ch_to_dir)
|
|
||||||
chdir (get_homedir ());
|
|
||||||
if (skip_args < argc)
|
if (skip_args < argc)
|
||||||
{
|
{
|
||||||
if (!strncmp (argv[skip_args], "-psn", 4))
|
if (!strncmp (argv[skip_args], "-psn", 4))
|
||||||
{
|
{
|
||||||
skip_args += 1;
|
skip_args += 1;
|
||||||
if (! ch_to_dir) chdir (get_homedir ());
|
go_home |= !ch_to_dir;
|
||||||
}
|
}
|
||||||
else if (skip_args+1 < argc && !strncmp (argv[skip_args+1], "-psn", 4))
|
else if (skip_args+1 < argc && !strncmp (argv[skip_args+1], "-psn", 4))
|
||||||
{
|
{
|
||||||
skip_args += 2;
|
skip_args += 2;
|
||||||
if (! ch_to_dir) chdir (get_homedir ());
|
go_home |= !ch_to_dir;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (go_home)
|
||||||
|
{
|
||||||
|
char const *home = get_homedir ();
|
||||||
|
if (*home && chdir (home) == 0)
|
||||||
|
emacs_wd = emacs_get_current_dir_name ();
|
||||||
|
}
|
||||||
#endif /* COCOA */
|
#endif /* COCOA */
|
||||||
}
|
}
|
||||||
#endif /* HAVE_NS */
|
#endif /* HAVE_NS */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue