For all you format string writers out there: oh, I mean, yeah -- you.
A value expression within a format string now has access to a new function,
curr_offset. The value is always an integer giving the column where the
string will be interpolated. Example:
"12345%(curr_offset)" => "123456"
This makes writing complex reports which use the justify() function much
simpler. Here is what the built-in --register-format looks like now:
%(ansify_if(
ansify_if(justify(format_date(date), int(date_width)),
green if color and date > today),
bold if should_bold))
%(ansify_if(
ansify_if(justify(truncated(payee, int(payee_width)),
int(payee_width)),
bold if color and !cleared and actual),
bold if should_bold))
%(ansify_if(
ansify_if(justify(truncated(display_account, int(account_width),
int(abbrev_len)), int(account_width)),
blue if color),
bold if should_bold))
%(ansify_if(justify(scrub(display_amount), int(amount_width),
curr_offset + int(meta_width) + int(prepend_width),
true, color),
bold if should_bold))
%(ansify_if(justify(scrub(display_total), int(total_width),
curr_offset + int(meta_width) + int(prepend_width),
true, color),
bold if should_bold))\n%/
%(justify(" ", int(date_width)))
%(ansify_if(justify(truncated(has_tag("Payee") ? payee : " ",
int(payee_width)), int(payee_width)),
bold if should_bold))
%$3 %$4 %$5\n
Um, yeah. It doth scintillate with clarity, don't it? So, back to what you
were doing. :)
John