Commit 4ff029f6 authored by Dan Nicolaescu's avatar Dan Nicolaescu

* emacs.c (daemon_name): New variable.

(main): Deal with --daemon=SERVER_NAME.
(Fdaemonp): Return a name if one was passed to --daemon.

* startup.el (server-name): Pacify byte compiler.
(command-line): If --daemon=SERVER_NAME was used, set server-name
before calling server-start.

* cmdargs.texi (Initial Options): Document -daemon=SERVER_NAME.
parent b918aa6b
2008-10-27 Dan Nicolaescu <dann@ics.uci.edu>
* cmdargs.texi (Initial Options): Document -daemon=SERVER_NAME.
2008-10-23 Chong Yidong <cyd@stupidchicken.com> 2008-10-23 Chong Yidong <cyd@stupidchicken.com>
* custom.texi (Function Keys): Note that modified keypad keys are not * custom.texi (Function Keys): Note that modified keypad keys are not
......
...@@ -286,6 +286,10 @@ terminal), do not open any frames and start the server. Clients can ...@@ -286,6 +286,10 @@ terminal), do not open any frames and start the server. Clients can
connect and create graphical or terminal frames using connect and create graphical or terminal frames using
@code{emacsclient}. @code{emacsclient}.
@item -daemon=@var{SERVER-NAME}
Start emacs in background as a daemon, and start the server with the
name set to @var{SERVER-NAME}.
@item --no-splash @item --no-splash
@opindex --no-splash @opindex --no-splash
@vindex inhibit-startup-screen @vindex inhibit-startup-screen
......
2008-10-27 Dan Nicolaescu <dann@ics.uci.edu>
* startup.el (server-name): Pacify byte compiler.
(command-line): If --daemon=SERVER_NAME was used, set server-name
before calling server-start.
2008-10-26 Romain Francoise <romain@orebokech.com> 2008-10-26 Romain Francoise <romain@orebokech.com>
* startup.el (command-line): Call daemon-initialized after * startup.el (command-line): Call daemon-initialized after
......
...@@ -693,6 +693,8 @@ opening the first frame (e.g. open a connection to an X server).") ...@@ -693,6 +693,8 @@ opening the first frame (e.g. open a connection to an X server).")
(declare-function tool-bar-mode "tool-bar" (&optional arg)) (declare-function tool-bar-mode "tool-bar" (&optional arg))
(declare-function tool-bar-setup "tool-bar") (declare-function tool-bar-setup "tool-bar")
(defvar server-name)
(defun command-line () (defun command-line ()
(setq before-init-time (current-time) (setq before-init-time (current-time)
after-init-time nil after-init-time nil
...@@ -1212,9 +1214,11 @@ the `--debug-init' option to view a complete error backtrace." ...@@ -1212,9 +1214,11 @@ the `--debug-init' option to view a complete error backtrace."
;; This is done after loading the user's init file and after ;; This is done after loading the user's init file and after
;; processing all command line arguments to allow e.g. `server-name' ;; processing all command line arguments to allow e.g. `server-name'
;; to be changed before the server starts. ;; to be changed before the server starts.
(when (daemonp) (let ((dn (daemonp)))
(server-start) (when dn
(daemon-initialized)) (when (stringp dn) (setq server-name dn))
(server-start)
(daemon-initialized)))
;; Run emacs-session-restore (session management) if started by ;; Run emacs-session-restore (session management) if started by
;; the session manager and we have a session manager connection. ;; the session manager and we have a session manager connection.
......
2008-10-27 Dan Nicolaescu <dann@ics.uci.edu>
* emacs.c (daemon_name): New variable.
(main): Deal with --daemon=SERVER_NAME.
(Fdaemonp): Return a name if one was passed to --daemon.
2008-10-26 Romain Francoise <romain@orebokech.com> 2008-10-26 Romain Francoise <romain@orebokech.com>
* emacs.c (daemon_pipe): New variable. * emacs.c (daemon_pipe): New variable.
......
...@@ -237,6 +237,8 @@ int noninteractive1; ...@@ -237,6 +237,8 @@ int noninteractive1;
/* Nonzero means Emacs was started as a daemon. */ /* Nonzero means Emacs was started as a daemon. */
int is_daemon = 0; int is_daemon = 0;
/* Name for the server started by the daemon.*/
static char *daemon_name;
/* Pipe used to send exit notification to the daemon parent at /* Pipe used to send exit notification to the daemon parent at
startup. */ startup. */
...@@ -796,6 +798,7 @@ main (int argc, char **argv) ...@@ -796,6 +798,7 @@ main (int argc, char **argv)
#endif #endif
int no_loadup = 0; int no_loadup = 0;
char *junk = 0; char *junk = 0;
char *dname_arg = 0;
#if GC_MARK_STACK #if GC_MARK_STACK
extern Lisp_Object *stack_base; extern Lisp_Object *stack_base;
...@@ -1074,7 +1077,8 @@ main (int argc, char **argv) ...@@ -1074,7 +1077,8 @@ main (int argc, char **argv)
exit (0); exit (0);
} }
if (argmatch (argv, argc, "-daemon", "--daemon", 5, NULL, &skip_args)) if (argmatch (argv, argc, "-daemon", "--daemon", 5, NULL, &skip_args)
|| argmatch (argv, argc, "-daemon", "--daemon", 5, &dname_arg, &skip_args))
{ {
#ifndef DOS_NT #ifndef DOS_NT
pid_t f; pid_t f;
...@@ -1123,6 +1127,8 @@ main (int argc, char **argv) ...@@ -1123,6 +1127,8 @@ main (int argc, char **argv)
exit (1); exit (1);
} }
if (dname_arg)
daemon_name = xstrdup (dname_arg);
/* Close unused reading end of the pipe. */ /* Close unused reading end of the pipe. */
close (daemon_pipe[0]); close (daemon_pipe[0]);
is_daemon = 1; is_daemon = 1;
...@@ -2419,10 +2425,17 @@ decode_env_path (evarname, defalt) ...@@ -2419,10 +2425,17 @@ decode_env_path (evarname, defalt)
} }
DEFUN ("daemonp", Fdaemonp, Sdaemonp, 0, 0, 0, DEFUN ("daemonp", Fdaemonp, Sdaemonp, 0, 0, 0,
doc: /* Return t if the current emacs process is a daemon. */) doc: /* Return non-nil if the current emacs process is a daemon.
If the daemon was given a name argument, return that name. */)
() ()
{ {
return is_daemon ? Qt : Qnil; if (is_daemon)
if (daemon_name)
return build_string (daemon_name);
else
return Qt;
else
return Qnil;
} }
DEFUN ("daemon-initialized", Fdaemon_initialized, Sdaemon_initialized, 0, 0, 0, DEFUN ("daemon-initialized", Fdaemon_initialized, Sdaemon_initialized, 0, 0, 0,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment