mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-06 06:20:55 -08:00
emacsclient: one ‘main’ function
* lib-src/emacsclient.c (main): Simplify by having just one ‘main’ function instead of two. Don’t assume argc is positive (!).
This commit is contained in:
parent
5daba9d8a5
commit
ef1f60301a
1 changed files with 20 additions and 29 deletions
|
|
@ -732,21 +732,7 @@ fail (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if !defined (HAVE_SOCKETS) || !defined (HAVE_INET_SOCKETS)
|
#if defined HAVE_SOCKETS && defined HAVE_INET_SOCKETS
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char **argv)
|
|
||||||
{
|
|
||||||
main_argc = argc;
|
|
||||||
main_argv = argv;
|
|
||||||
progname = argv[0];
|
|
||||||
message (true, ("%s: Sorry, the Emacs server is supported only\n"
|
|
||||||
"on systems with Berkeley sockets.\n"),
|
|
||||||
argv[0]);
|
|
||||||
fail ();
|
|
||||||
}
|
|
||||||
|
|
||||||
#else /* HAVE_SOCKETS && HAVE_INET_SOCKETS */
|
|
||||||
|
|
||||||
enum { AUTH_KEY_LENGTH = 64 };
|
enum { AUTH_KEY_LENGTH = 64 };
|
||||||
|
|
||||||
|
|
@ -1519,7 +1505,7 @@ start_daemon_and_retry_set_socket (void)
|
||||||
d_argv[0] = emacs;
|
d_argv[0] = emacs;
|
||||||
d_argv[1] = daemon_option;
|
d_argv[1] = daemon_option;
|
||||||
d_argv[2] = 0;
|
d_argv[2] = 0;
|
||||||
#ifndef NO_SOCKETS_IN_FILE_SYSTEM
|
# ifndef NO_SOCKETS_IN_FILE_SYSTEM
|
||||||
if (socket_name != NULL)
|
if (socket_name != NULL)
|
||||||
{
|
{
|
||||||
/* Pass --daemon=socket_name as argument. */
|
/* Pass --daemon=socket_name as argument. */
|
||||||
|
|
@ -1529,7 +1515,7 @@ start_daemon_and_retry_set_socket (void)
|
||||||
strcpy (stpcpy (daemon_arg, deq), socket_name);
|
strcpy (stpcpy (daemon_arg, deq), socket_name);
|
||||||
d_argv[1] = daemon_arg;
|
d_argv[1] = daemon_arg;
|
||||||
}
|
}
|
||||||
#endif
|
# endif
|
||||||
execvp ("emacs", d_argv);
|
execvp ("emacs", d_argv);
|
||||||
message (true, "%s: error starting emacs daemon\n", progname);
|
message (true, "%s: error starting emacs daemon\n", progname);
|
||||||
}
|
}
|
||||||
|
|
@ -1605,26 +1591,32 @@ start_daemon_and_retry_set_socket (void)
|
||||||
}
|
}
|
||||||
# endif /* WINDOWSNT */
|
# endif /* WINDOWSNT */
|
||||||
}
|
}
|
||||||
|
#endif /* HAVE_SOCKETS && HAVE_INET_SOCKETS */
|
||||||
|
|
||||||
int
|
int
|
||||||
main (int argc, char **argv)
|
main (int argc, char **argv)
|
||||||
{
|
{
|
||||||
int rl = 0;
|
|
||||||
bool skiplf = true;
|
|
||||||
char string[BUFSIZ+1];
|
|
||||||
int exit_status = EXIT_SUCCESS;
|
|
||||||
|
|
||||||
main_argc = argc;
|
main_argc = argc;
|
||||||
main_argv = argv;
|
main_argv = argv;
|
||||||
progname = argv[0];
|
progname = argv[0] ? argv[0] : "emacsclient";
|
||||||
|
|
||||||
#ifdef HAVE_NTGUI
|
#if ! (defined HAVE_SOCKETS && defined HAVE_INET_SOCKETS)
|
||||||
|
message (true, "%s: Sorry, support for Berkeley sockets is required.\n",
|
||||||
|
progname);
|
||||||
|
fail ();
|
||||||
|
#else /* HAVE_SOCKETS && HAVE_INET_SOCKETS */
|
||||||
|
int rl = 0;
|
||||||
|
bool skiplf = true;
|
||||||
|
char string[BUFSIZ + 1];
|
||||||
|
int exit_status = EXIT_SUCCESS;
|
||||||
|
|
||||||
|
# ifdef HAVE_NTGUI
|
||||||
/* On Windows 7 and later, we need to explicitly associate
|
/* On Windows 7 and later, we need to explicitly associate
|
||||||
emacsclient with emacs so the UI behaves sensibly. This
|
emacsclient with emacs so the UI behaves sensibly. This
|
||||||
association does no harm if we're not actually connecting to an
|
association does no harm if we're not actually connecting to an
|
||||||
Emacs using a window display. */
|
Emacs using a window display. */
|
||||||
w32_set_user_model_id ();
|
w32_set_user_model_id ();
|
||||||
#endif /* HAVE_NTGUI */
|
# endif /* HAVE_NTGUI */
|
||||||
|
|
||||||
/* Process options. */
|
/* Process options. */
|
||||||
decode_options (argc, argv);
|
decode_options (argc, argv);
|
||||||
|
|
@ -1637,7 +1629,7 @@ main (int argc, char **argv)
|
||||||
exit (EXIT_FAILURE);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef WINDOWSNT
|
# ifndef WINDOWSNT
|
||||||
if (tty)
|
if (tty)
|
||||||
{
|
{
|
||||||
pid_t pgrp = getpgrp ();
|
pid_t pgrp = getpgrp ();
|
||||||
|
|
@ -1645,7 +1637,7 @@ main (int argc, char **argv)
|
||||||
if (0 <= tcpgrp && tcpgrp != pgrp)
|
if (0 <= tcpgrp && tcpgrp != pgrp)
|
||||||
kill (-pgrp, SIGTTIN);
|
kill (-pgrp, SIGTTIN);
|
||||||
}
|
}
|
||||||
#endif /* !WINDOWSNT */
|
# endif /* !WINDOWSNT */
|
||||||
|
|
||||||
/* If alternate_editor is the empty string, start the emacs daemon
|
/* If alternate_editor is the empty string, start the emacs daemon
|
||||||
in case of failure to connect. */
|
in case of failure to connect. */
|
||||||
|
|
@ -1935,6 +1927,5 @@ main (int argc, char **argv)
|
||||||
|
|
||||||
CLOSE_SOCKET (emacs_socket);
|
CLOSE_SOCKET (emacs_socket);
|
||||||
return exit_status;
|
return exit_status;
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* HAVE_SOCKETS && HAVE_INET_SOCKETS */
|
#endif /* HAVE_SOCKETS && HAVE_INET_SOCKETS */
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue