Hi

This commit changed status stuff to go directly to formats rather than
having an intermediate step (we have been working towards this for a
while in small increments).

Part of that change was to not include the output if the job failed,
instead to print the return value (the "<test" bit you are seeing is the
start of '<test ... exited with 1>' probably). I think that was the
wrong decision, so I'm going to change that bit back.

Also I just noticed with your example that #H was not being expanded
anymore inside #(). I've fixed that now also.

You will need to change \# into ## probably.

You can wait for SF to sync, or use the diff below.

Thanks



Index: format.c
===================================================================
RCS file: /cvs/src/usr.bin/tmux/format.c,v
retrieving revision 1.68
diff -u -p -r1.68 format.c
--- format.c    27 May 2015 13:28:04 -0000      1.68
+++ format.c    29 May 2015 23:22:35 -0000
@@ -175,17 +175,6 @@ format_job_callback(struct job *job)
        fj->job = NULL;
        free(fj->out);
 
-       if (WIFEXITED(job->status) && WEXITSTATUS(job->status) != 0) {
-               xasprintf(&fj->out, "<'%s' exited with %d>", fj->cmd,
-                   WEXITSTATUS(job->status));
-               return;
-       }
-       if (WIFSIGNALED(job->status)) {
-               xasprintf(&fj->out, "<'%s' got signal %d>", fj->cmd,
-                   WTERMSIG(job->status));
-               return;
-       }
-
        buf = NULL;
        if ((line = evbuffer_readline(job->event->input)) == NULL) {
                len = EVBUFFER_LENGTH(job->event->input);
@@ -490,7 +479,7 @@ format_expand_time(struct format_tree *f
 char *
 format_expand(struct format_tree *ft, const char *fmt)
 {
-       char            *buf, *tmp;
+       char            *buf, *tmp, *cmd;
        const char      *ptr, *s;
        size_t           off, len, n, slen;
        int              ch, brackets;
@@ -530,9 +519,13 @@ format_expand(struct format_tree *ft, co
                        tmp = xmalloc(n + 1);
                        memcpy(tmp, fmt, n);
                        tmp[n] = '\0';
+                       cmd = format_expand(ft, tmp);
 
-                       s = format_job_get(ft, tmp);
+                       s = format_job_get(ft, cmd);
                        slen = strlen(s);
+
+                       free(cmd);
+                       free(tmp);
 
                        while (len - off < slen + 1) {
                                buf = xreallocarray(buf, 2, len);





On Fri, May 29, 2015 at 03:56:45PM -0700, Suraj N. Kurapati wrote:
> Hello,
> 
> I build tmux from git under Xubuntu 15.04.  Starting with commit
> 379400c, the #(interpolation) no longer works in status-right:
> 
>     set-option -g status-right '#{=26:pane_title} 
> #[fg=colour208,bg=colour236] #S:#I.#P #(test -n "$SSH_TTY" && echo 
> "\#[bold,reverse] #H ")'
>     set-option -g status-right-length 48
> 
> Before upgrading to this commit, I would not see anything at the end
> of status-right when running tmux locally.  But now, I always see:
> 
>     <'test -n "$S"'
> 
> Is this expected?  If so, what is the new #(interpolation) syntax?
> 
> Thanks for your consideration.
> 
> ------------------------------------------------------------------------------
> _______________________________________________
> tmux-users mailing list
> tmux-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/tmux-users

------------------------------------------------------------------------------
_______________________________________________
tmux-users mailing list
tmux-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tmux-users

Reply via email to