The branch, master has been updated
       via  7f191c7951e54f635fc55a4c409bef3060eaacfb (commit)
      from  0ccd84d2ef3b925d1039144d26af692fef69b866 (commit)

- Log -----------------------------------------------------------------
commit 7f191c7951e54f635fc55a4c409bef3060eaacfb
Author: Nicholas Marriott <[email protected]>
Commit: Nicholas Marriott <[email protected]>

    Add -P and -F to new-session.
---
 cmd-new-session.c |   50 ++++++++++++++++++++++++++++++++++----------------
 cmd-new-window.c  |    6 ++----
 tmux.1            |   13 +++++++++++--
 tmux.h            |    1 +
 4 files changed, 48 insertions(+), 22 deletions(-)

diff --git a/cmd-new-session.c b/cmd-new-session.c
index 3b1e917..4eebe63 100644
--- a/cmd-new-session.c
+++ b/cmd-new-session.c
@@ -35,9 +35,9 @@ enum cmd_retval        cmd_new_session_exec(struct cmd *, 
struct cmd_q *);
 
 const struct cmd_entry cmd_new_session_entry = {
        "new-session", "new",
-       "AdDn:s:t:x:y:", 0, 1,
-       "[-AdD] [-n window-name] [-s session-name] " CMD_TARGET_SESSION_USAGE
-       " [-x width] [-y height] [command]",
+       "AdDF:n:Ps:t:x:y:", 0, 1,
+       "[-AdDP] [-F format] [-n window-name] [-s session-name] "
+       CMD_TARGET_SESSION_USAGE " [-x width] [-y height] [command]",
        CMD_STARTSERVER|CMD_CANTNEST|CMD_SENDENVIRON,
        NULL,
        cmd_new_session_check,
@@ -55,19 +55,20 @@ cmd_new_session_check(struct args *args)
 enum cmd_retval
 cmd_new_session_exec(struct cmd *self, struct cmd_q *cmdq)
 {
-       struct args     *args = self->args;
-       struct client   *c = cmdq->client;
-       struct session  *s, *groupwith;
-       struct window   *w;
-       struct environ   env;
-       struct termios   tio, *tiop;
-       struct passwd   *pw;
-       const char      *newname, *target, *update, *cwd, *errstr;
-       char            *cmd, *cause;
-       int              detached, idx;
-       u_int            sx, sy;
-       int              already_attached;
-
+       struct args             *args = self->args;
+       struct client           *c = cmdq->client;
+       struct session          *s, *groupwith;
+       struct window           *w;
+       struct environ           env;
+       struct termios           tio, *tiop;
+       struct passwd           *pw;
+       const char              *newname, *target, *update, *cwd, *errstr;
+       const char              *template;
+       char                    *cmd, *cause, *cp;
+       int                      detached, idx;
+       u_int                    sx, sy;
+       int                      already_attached;
+       struct format_tree      *ft;
 
        newname = args_get(args, 's');
        if (newname != NULL) {
@@ -233,6 +234,23 @@ cmd_new_session_exec(struct cmd *self, struct cmd_q *cmdq)
        if (cfg_finished)
                cfg_show_causes(s);
 
+       /* Print if requested. */
+       if (args_has(args, 'P')) {
+               if ((template = args_get(args, 'F')) == NULL)
+                       template = NEW_SESSION_TEMPLATE;
+
+               ft = format_create();
+               if ((c = cmd_find_client(cmdq, NULL, 1)) != NULL)
+                       format_client(ft, c);
+               format_session(ft, s);
+
+               cp = format_expand(ft, template);
+               cmdq_print(cmdq, "%s", cp);
+               free(cp);
+
+               format_free(ft);
+       }
+
        if (!detached)
                cmdq->client_exit = 0;
        return (CMD_RETURN_NORMAL);
diff --git a/cmd-new-window.c b/cmd-new-window.c
index 28cc088..cfc0b8b 100644
--- a/cmd-new-window.c
+++ b/cmd-new-window.c
@@ -46,12 +46,10 @@ cmd_new_window_exec(struct cmd *self, struct cmd_q *cmdq)
        struct session          *s;
        struct winlink          *wl;
        struct client           *c;
-       const char              *cmd, *cwd;
-       const char              *template;
-       char                    *cause;
+       const char              *cmd, *cwd, *template;
+       char                    *cause, *cp;
        int                      idx, last, detached;
        struct format_tree      *ft;
-       char                    *cp;
 
        if (args_has(args, 'a')) {
                wl = cmd_find_window(cmdq, args_get(args, 't'), &s);
diff --git a/tmux.1 b/tmux.1
index cd9637b..395bc53 100644
--- a/tmux.1
+++ b/tmux.1
@@ -675,7 +675,8 @@ command.
 Lock all clients attached to
 .Ar target-session .
 .It Xo Ic new-session
-.Op Fl AdD
+.Op Fl AdDP
+.Op Fl F Ar format
 .Op Fl n Ar window-name
 .Op Fl s Ar session-name
 .Op Fl t Ar target-session
@@ -740,6 +741,14 @@ or
 are invalid if
 .Fl t
 is used.
+.Pp
+The
+.Fl P
+option prints information about the new session after it has been created.
+By default, it uses the format
+.Ql #{session_name}:
+but a different format may be specified with
+.Fl F .
 .It Xo Ic refresh-client
 .Op Fl S
 .Op Fl t Ar target-client
@@ -1470,9 +1479,9 @@ option.
 .It Xo Ic new-window
 .Op Fl adkP
 .Op Fl c Ar start-directory
+.Op Fl F Ar format
 .Op Fl n Ar window-name
 .Op Fl t Ar target-window
-.Op Fl F Ar format
 .Op Ar shell-command
 .Xc
 .D1 (alias: Ic neww )
diff --git a/tmux.h b/tmux.h
index 834ac6e..9c91d6a 100644
--- a/tmux.h
+++ b/tmux.h
@@ -155,6 +155,7 @@ extern char   **environ;
 
 /* Default templates for break-pane, new-window and split-window. */
 #define BREAK_PANE_TEMPLATE "#{session_name}:#{window_index}.#{pane_index}"
+#define NEW_SESSION_TEMPLATE "#{session_name}:"
 #define NEW_WINDOW_TEMPLATE BREAK_PANE_TEMPLATE
 #define SPLIT_WINDOW_TEMPLATE BREAK_PANE_TEMPLATE
 


-----------------------------------------------------------------------

Summary of changes:
 cmd-new-session.c |   50 ++++++++++++++++++++++++++++++++++----------------
 cmd-new-window.c  |    6 ++----
 tmux.1            |   13 +++++++++++--
 tmux.h            |    1 +
 4 files changed, 48 insertions(+), 22 deletions(-)


hooks/post-receive
-- 
tmux

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
tmux-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tmux-cvs

Reply via email to