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
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/tmux-users
------------------------------------------------------------------------------
_______________________________________________
tmux-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tmux-users