Applied it now, thanks.

On Fri, Aug 02, 2013 at 04:16:45PM -0400, Naseer Ahmed wrote:
>    Thanks - this patch fixes it.
> 
>    On Fri, Aug 2, 2013 at 12:48 PM, Nicholas Marriott
>    <[1]nicholas.marri...@gmail.com> wrote:
> 
>      In fact try this instead, this one changes the syntax to prefix it with
>      an =, so #{=20:pane_title}. This'll mean later on we can add additional
>      operators for padding, quoting etc without conflicting with length
>      limits.
> 
>      diff --git a/format.c b/format.c
>      index 0845df6..b7faab3 100644
>      --- a/format.c
>      +++ b/format.c
>      @@ -18,6 +18,8 @@
> 
>      **#include <sys/types.h>
> 
>      +#include <ctype.h>
>      +#include <errno.h>
>      **#include <netdb.h>
>      **#include <stdarg.h>
>      **#include <stdlib.h>
>      @@ -188,18 +190,41 @@ format_find(struct format_tree *ft, const char
>      *key)
>      ** * #{?blah,a,b} is replace with a if blah exists and is nonzero else
>      b.
>      ** */
>      **int
>      -format_replace(struct format_tree *ft,
>      - ** **const char *key, size_t keylen, char **buf, size_t *len, size_t
>      *off)
>      +format_replace(struct format_tree *ft, const char *key, size_t keylen,
>      + ** **char **buf, size_t *len, size_t *off)
>      **{
>      - ** ** ** char ** ** ** ** ** ***copy, *ptr;
>      + ** ** ** char ** ** ** ** ** ***copy, *copy0, *endptr, *ptr;
>      ** ** ** ** const char ** ** ***value;
>      ** ** ** ** size_t ** ** ** ** ** valuelen;
>      + ** ** ** u_long ** ** ** ** ** limit = ULONG_MAX;
>      + ** ** ** int ** ** ** ** ** ** **finished;
>      ** ** ** ** /* Make a copy of the key. */
>      - ** ** ** copy = xmalloc(keylen + 1);
>      + ** ** ** copy0 = copy = xmalloc(keylen + 1);
>      ** ** ** ** memcpy(copy, key, keylen);
>      ** ** ** ** copy[keylen] = '\0';
> 
>      + ** ** ** /* Is there a length limit or whatnot? */
>      + ** ** ** if (!isalpha((u_char) *copy) && *copy != '?') {
>      + ** ** ** ** ** ** ** while (*copy != ':' && *copy != '\0') {
>      + ** ** ** ** ** ** ** ** ** ** ** switch (*copy) {
>      + ** ** ** ** ** ** ** ** ** ** ** case '=':
>      + ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** errno = 0;
>      + ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** limit = strtoul(copy + 1,
>      &endptr, 10);
>      + ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** if (errno == ERANGE &&
>      limit == ULONG_MAX)
>      + ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** goto fail;
>      + ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** copy = endptr;
>      + ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** break;
>      + ** ** ** ** ** ** ** ** ** ** ** default:
>      + ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** copy++;
>      + ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** break;
>      + ** ** ** ** ** ** ** ** ** ** ** }
>      + ** ** ** ** ** ** ** }
>      + ** ** ** ** ** ** ** if (*copy != ':')
>      + ** ** ** ** ** ** ** ** ** ** ** goto fail;
>      + ** ** ** ** ** ** ** copy++;
>      + ** ** ** }
>      +
>      ** ** ** ** /*
>      ** ** ** ** *** Is this a conditional? If so, check it exists and
>      extract either the
>      ** ** ** ** *** first or second element. If not, look up the key
>      directly.
>      @@ -230,6 +255,10 @@ format_replace(struct format_tree *ft,
>      ** ** ** ** }
>      ** ** ** ** valuelen = strlen(value);
> 
>      + ** ** ** /* Truncate the value if needed. */
>      + ** ** ** if (valuelen > limit)
>      + ** ** ** ** ** ** ** valuelen = limit;
>      +
>      ** ** ** ** /* Expand the buffer and copy in the value. */
>      ** ** ** ** while (*len - *off < valuelen + 1) {
>      ** ** ** ** ** ** ** ** *buf = xrealloc(*buf, 2, *len);
>      @@ -238,11 +267,11 @@ format_replace(struct format_tree *ft,
>      ** ** ** ** memcpy(*buf + *off, value, valuelen);
>      ** ** ** ** *off += valuelen;
> 
>      - ** ** ** free(copy);
>      + ** ** ** free(copy0);
>      ** ** ** ** return (0);
> 
>      **fail:
>      - ** ** ** free(copy);
>      + ** ** ** free(copy0);
>      ** ** ** ** return (-1);
>      **}
> 
>      diff --git a/options-table.c b/options-table.c
>      index 2281d65..bede743 100644
>      --- a/options-table.c
>      +++ b/options-table.c
>      @@ -386,7 +386,7 @@ const struct options_table_entry
>      session_options_table[] = {
> 
>      ** ** ** ** { .name = "status-right",
>      ** ** ** ** ** .type = OPTIONS_TABLE_STRING,
>      - ** ** ** ** .default_str = "\"#22T\" %H:%M %d-%b-%y"
>      + ** ** ** ** .default_str = "\"#{22:pane_title}\" %H:%M %d-%b-%y"
>      ** ** ** ** },
> 
>      ** ** ** ** { .name = "status-right-attr",
>      diff --git a/tmux.1 b/tmux.1
>      index 340109b..19ae4a9 100644
>      --- a/tmux.1
>      +++ b/tmux.1
>      @@ -3026,6 +3026,12 @@ will include the string
>      **if the session is attached and the string
>      **.Ql not attached
>      **if it is unattached.
>      +A limit may be placed on the length of the resultant string by
>      prefixing it
>      +by an
>      +.Ql = ,
>      +a number and a colon, so
>      +.Ql #{=10:pane_title}
>      +will include at most the first 10 characters of the pane title.
>      **.Pp
>      **The following variables are available, where appropriate:
>      **.Bl -column "XXXXXXXXXXXXXXXXXXX" "XXXXX"
> 
>      On Fri, Aug 02, 2013 at 11:57:34AM -0400, Naseer Ahmed wrote:
>      > ** **This option used to work on tmux-1.8, now it just shows the full
>      title.
>      > ** **set-option -gw window-status-format "#I:#20W#F"
> 
>      >
>      
> ------------------------------------------------------------------------------
>      > Get your SQL database under version control now!
>      > Version control is standard for application code, but databases havent
>      > caught up. So what steps can you take to put your SQL databases under
>      > version control? Why should you start doing it? Read more to find out.
>      >
>      
> [2]http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
> 
>      > _______________________________________________
>      > tmux-users mailing list
>      > [3]tmux-users@lists.sourceforge.net
>      > [4]https://lists.sourceforge.net/lists/listinfo/tmux-users
> 
> References
> 
>    Visible links
>    1. mailto:nicholas.marri...@gmail.com
>    2. 
> http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
>    3. mailto:tmux-users@lists.sourceforge.net
>    4. https://lists.sourceforge.net/lists/listinfo/tmux-users

------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent 
caught up. So what steps can you take to put your SQL databases under 
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
tmux-users mailing list
tmux-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tmux-users

Reply via email to