Applied with a couple of fixes - usages need to be sorted, and you need to free both the format itself and the return from format_expand.
Cheers On Sun, Mar 04, 2012 at 12:08:09PM -0800, George Nachman wrote: > Sorry for the HTML mess. I've added split-window to the patch. > > On Sat, Mar 3, 2012 at 10:59 PM, Nicholas Marriott > <nicholas.marri...@gmail.com> wrote: > > Hi > > > > Your mailer seems to have converted to HTML and screwed up the patch, > > can you either send it inline as text only or as an attachment? > > > > Also I guess the same -F flag should be added to split-window? > > > > > > On Sat, Mar 03, 2012 at 07:01:51PM -0800, George Nachman wrote: > >> ? ?Thanks for committing the previous patch. Here is a patch that adds a -F > >> ? ?format arg to new-window that can be used in conjunction with -P. Note > >> ? ?that it doesn't support any of the window pane format strings because it > >> ? ?doesn't seem to make sense in this context. > >> ? ?Index: cmd-new-window.c > >> ? ?=================================================================== > >> ? ?--- cmd-new-window.c ? ?(revision 2710) > >> ? ?+++ cmd-new-window.c ? ?(working copy) > >> ? ?@@ -30,9 +30,9 @@ > >> ? ?* > >> ? ?*const struct cmd_entry cmd_new_window_entry = { > >> ? ?* ? ? ? "new-window", "neww", > >> ? ?- ? ? ? "ac:dkn:Pt:", 0, 1, > >> ? ?- ? ? ? "[-adk] [-c start-directory] [-n window-name] [-t > >> target-window] " > >> ? ?- ? ? ? "[command]", > >> ? ?+ ? ? ? "ac:dkn:Pt:F:", 0, 1, > >> ? ?+ ? ? ? "[-adkP] [-c start-directory] [-n window-name] [-t > >> target-window] > >> ? ?" > >> ? ?+ ? ? ? "[-F format] [command]", > >> ? ?* ? ? ? 0, > >> ? ?* ? ? ? NULL, > >> ? ?* ? ? ? NULL, > >> ? ?@@ -42,12 +42,15 @@ > >> ? ?*int > >> ? ?*cmd_new_window_exec(struct cmd *self, struct cmd_ctx *ctx) > >> ? ?*{ > >> ? ?- ? ? ? struct args ? ? *args = self->args; > >> ? ?- ? ? ? struct session ?*s; > >> ? ?- ? ? ? struct winlink ?*wl; > >> ? ?- ? ? ? const char * * ?*cmd, *cwd; > >> ? ?- ? ? ? char ? ? ? ? ? ?*cause; > >> ? ?- ? ? ? int ? ? ? ? ? ? ?idx, last, detached; > >> ? ?+ ? ? ? struct args ? ? ? ? ? ? *args = self->args; > >> ? ?+ ? ? ? struct session ? ? ? ? ?*s; > >> ? ?+ ? ? ? struct winlink ? ? ? ? ?*wl; > >> ? ?+ ? ? ? struct client ? ? ? ? ? *c; > >> ? ?+ ? ? ? const char ? ? ? ? ? ? ?*cmd, *cwd; > >> ? ?+ ? ? ? const char ? ? ? ? ? ? ?*template; > >> ? ?+ ? ? ? char ? ? ? ? ? ? ? ? ? ?*cause; > >> ? ?+ ? ? ? int ? ? ? ? ? ? ? ? ? ? ?idx, last, detached; > >> ? ?+ ? ? ? struct format_tree ? ? ?*ft; > >> ? ?* > >> ? ?* ? ? ? if (args_has(args, 'a')) { > >> ? ?* ? ? ? ? ? ? ? wl = cmd_find_window(ctx, args_get(args, 't'), &s); > >> ? ?@@ -116,7 +119,19 @@ > >> ? ?* ? ? ? } else > >> ? ?* ? ? ? ? ? ? ? server_status_session_group(s); > >> ? ?* > >> ? ?- ? ? ? if (args_has(args, 'P')) > >> ? ?- ? ? ? ? ? ? ? ctx->print(ctx, "%s:%u", s->name, wl->idx); > >> ? ?+ ? ? ? if (args_has(args, 'P')) { > >> ? ?+ ? ? ? ? ? ? ? if (args_has(args, 'F')) > >> ? ?+ ? ? ? ? ? ? ? ? ? ? ? template = args_get(args, 'F'); > >> ? ?+ ? ? ? ? ? ? ? else > >> ? ?+ ? ? ? ? ? ? ? ?* *template = "#{session_name}:#{window_index}"; > >> ? ?+ ? ? ? ? ? ? ? c = cmd_find_client(ctx, NULL); > >> ? ?+ ? ? ? ? ? ? ? ft = format_create(); > >> ? ?+ ? ? ? ? ? ? ? if (c != NULL) > >> ? ?+ ? ? ? ? ? ? ? ?* *format_client(ft, c); > >> ? ?+ ? ? ? ? ? ? ? format_session(ft, s); > >> ? ?+ ? ? ? ? ? ? ? format_winlink(ft, s, wl); > >> ? ?+ ? ? ? ? ? ? ? ctx->print(ctx, "%s", format_expand(ft, template)); > >> ? ?+ ? ? ? } > >> ? ?+ > >> ? ?* ? ? ? return (0); > >> ? ?*} > >> ? ?Index: tmux.1 > >> ? ?=================================================================== > >> ? ?--- tmux.1 ? ? ?(revision 2710) > >> ? ?+++ tmux.1 ? ? ?(working copy) > >> ? ?@@ -1253,6 +1253,7 @@ > >> ? ?*.Op Fl c Ar start-directory > >> ? ?*.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 ) > >> ? ?@@ -1310,7 +1311,14 @@ > >> ? ?*.Pp > >> ? ?*The > >> ? ?*.Fl P > >> ? ?-option prints the location of the new window after it has been created. > >> ? ?+option prints information about the new window after it has been > >> created. > >> ? ?+By default, it uses the format > >> ? ?+.Ql #{session_name}:#{window_index} , > >> ? ?+but a different format may be specified with the > >> ? ?+.Fl F > >> ? ?+flag with a > >> ? ?+.Ar format > >> ? ?+argument. > >> ? ?*.It Ic next-layout Op Fl t Ar target-window > >> ? ?*.D1 (alias: Ic nextl ) > >> ? ?*Move a window to the next layout and rearrange the panes to fit. ------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d _______________________________________________ tmux-users mailing list tmux-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tmux-users