]> git.eshelyaron.com Git - emacs.git/commitdiff
* emacs.c (daemon_name): New variable.
authorDan Nicolaescu <dann@ics.uci.edu>
Mon, 27 Oct 2008 07:02:30 +0000 (07:02 +0000)
committerDan Nicolaescu <dann@ics.uci.edu>
Mon, 27 Oct 2008 07:02:30 +0000 (07:02 +0000)
(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.

doc/emacs/ChangeLog
doc/emacs/cmdargs.texi
lisp/ChangeLog
lisp/startup.el
src/ChangeLog
src/emacs.c

index 7f1cf1b78e09a8d2725c171f1abb86c70399775e..fbbe7ec0ed3d94d7e52f05acfa88c4f813c3ad3d 100644 (file)
@@ -1,3 +1,7 @@
+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>
 
        * custom.texi (Function Keys): Note that modified keypad keys are not
index 94e69bcdfe8da8e8c4a3813cfd9ea830d86dd227..6be6a9834616762902225b326bcb19a45de2635e 100644 (file)
@@ -286,6 +286,10 @@ terminal), do not open any frames and start the server.  Clients can
 connect and create graphical or terminal frames using
 @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
 @opindex --no-splash
 @vindex inhibit-startup-screen
index 9175fe33918a96c2ee73765fc46805ca810c0fb7..0efd40b7fad6778e37bb3d3e36c7a8d74a218829 100644 (file)
@@ -1,3 +1,9 @@
+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>
 
        * startup.el (command-line): Call daemon-initialized after
index 7b7fbb2fd6802373b132ea25c9ef7f7d1425a3ab..2d7995a1c0b8c7806b8ab081426950d9025c8d6c 100644 (file)
@@ -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-setup "tool-bar")
 
+(defvar server-name)
+
 (defun command-line ()
   (setq before-init-time (current-time)
        after-init-time nil
@@ -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
   ;; processing all command line arguments to allow e.g. `server-name'
   ;; to be changed before the server starts.
-  (when (daemonp)
-    (server-start)
-    (daemon-initialized))
+  (let ((dn (daemonp)))
+    (when dn
+      (when (stringp dn) (setq server-name dn))
+      (server-start)
+      (daemon-initialized)))
 
   ;; Run emacs-session-restore (session management) if started by
   ;; the session manager and we have a session manager connection.
index 4de35db502fa72b24566e2de311dffc1642bea82..6379e86b9e68c5e85b5047645daa6918d62f67eb 100644 (file)
@@ -1,3 +1,9 @@
+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>
 
        * emacs.c (daemon_pipe): New variable.
index bcc7fb05792cc4885131901f46324cb2a4f61d5a..6f54291a5144b242471a5c3bc15d91b4d4b77700 100644 (file)
@@ -237,6 +237,8 @@ int noninteractive1;
 
 /* Nonzero means Emacs was started as a daemon.  */
 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
    startup.  */
@@ -796,6 +798,7 @@ main (int argc, char **argv)
 #endif
   int no_loadup = 0;
   char *junk = 0;
+  char *dname_arg = 0;
 
 #if GC_MARK_STACK
   extern Lisp_Object *stack_base;
@@ -1074,7 +1077,8 @@ main (int argc, char **argv)
       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
       pid_t f;
@@ -1123,6 +1127,8 @@ main (int argc, char **argv)
          exit (1);
        }
 
+      if (dname_arg)
+               daemon_name = xstrdup (dname_arg);
       /* Close unused reading end of the pipe.  */
       close (daemon_pipe[0]);
       is_daemon = 1;
@@ -2419,10 +2425,17 @@ decode_env_path (evarname, defalt)
 }
 
 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,