Hi, I have added a -l xxx% option to split-window. It is equivalent to
using -p xxx.

Best,
Anindya


On Wed, Oct 9, 2019 at 1:16 AM Anindya Mukherjee <[email protected]>
wrote:

> Thanks!! I'll look into split-window next :)
>
> On Wednesday, October 9, 2019, Nicholas Marriott <
> [email protected]> wrote:
>
>> Looks great. OpenBSD is currently approaching lock so I don't want to
>> add new features but I will apply this after the tree unlocks, then it
>> will be in tmux 3.1.
>>
>> If you want something else to do it would be nice if split-window -l
>> also accepted 10% (ie -l 10% was equivalent to -p 10) :-).
>>
>> Thanks!
>>
>>
>> On Wed, Oct 09, 2019 at 12:10:57AM -0700, Anindya Mukherjee wrote:
>> >    Hi, the current version does what we discussed.
>> >    Best,
>> >    Anindya
>> >    On Tue, Oct 8, 2019 at 8:14 AM Anindya Mukherjee <
>> [email protected]>
>> >    wrote:
>> >
>> >      Thanks sounds perfect.
>> >      Best,
>> >      Anindya
>> >      On Tue, Oct 8, 2019 at 7:41 AM Nicholas Marriott
>> >      <[email protected]> wrote:
>> >
>> >        Sure that makes sense.
>> >
>> >        Maybe it would be better to look for a % on the number so that
>> you do
>> >        '-x 25%' instead of -p flag?
>> >
>> >        On Tue, Oct 08, 2019 at 07:36:43AM -0700, Anindya Mukherjee
>> wrote:
>> >        >A  A  Thanks, yes using the window itself is perfect for the
>> root
>> >        size. No need
>> >        >A  A  to walk.
>> >        >A  A  Using -p to set rather than adjust the size makes sense.
>> In
>> >        that case
>> >        >A  A  should we make it a part of the -x or -y commands rather
>> than
>> >        UDLR?
>> >        >A  A  Something like:
>> >        >A  A  resize-pane -x -p 25
>> >        >A  A  to resize the pane horizontally to 25% of root width (and
>> >        similarly for
>> >        >A  A  y).
>> >        >A  A  Best,
>> >        >A  A  Anindya
>> >        >
>> >        >A  A  (PGP public key:
>> >        >A  A
>> >
>> http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x1C198D2DB291E1B0
>> >        >A  A  )
>> >        >A  A  On Tue, Oct 8, 2019 at 6:04 AM Nicholas Marriott
>> >        >A  A  <[email protected]> wrote:
>> >        >
>> >        >A  A  A  It seems less useful to me to be able to say "add 50%
>> of the
>> >        size of the
>> >        >A  A  A  pane/window to the size of this cell" than to say
>> "make this
>> >        cell cover
>> >        >A  A  A  50% of the window". But I don't really mind that much
>> if you
>> >        think it is
>> >        >A  A  A  better.
>> >        >
>> >        >A  A  A  Oh the top cell will be the size of the WINDOW not the
>> pane,
>> >        sorry. So
>> >        >A  A  A  it will be w->layout_root or w->sx and w->sy, not
>> >        wp->layout_cell.
>> >        >
>> >        >A  A  A  On Tue, Oct 08, 2019 at 05:34:27AM -0700, Anindya
>> Mukherjee
>> >        wrote:
>> >        >A  A  A  >AA  AA  I was thinking that "-p percent" would be a
>> way to
>> >        enter an
>> >        >A  A  A  adjustment for
>> >        >A  A  A  >AA  AA  the "resize by" commands like LRUD. So it
>> would
>> >        "resize by".
>> >        >A  A  A  >AA  AA  In my 2x2 grid example when I look at the top
>> level
>> >        cell (found
>> >        >A  A  A  by walking
>> >        >A  A  A  >AA  AA  up) its size is 244x65 (for the current
>> terminal
>> >        size), while the
>> >        >A  A  A  size of
>> >        >A  A  A  >AA  AA  both the target wp and its layout cell is
>> 122x32.
>> >        Is there a
>> >        >A  A  A  quick way to
>> >        >A  A  A  >AA  AA  get to the top level given the target pane?
>> >        >A  A  A  >AA  AA  Alternatively we can resize by a percentage
>> of the
>> >        target pane's
>> >        >A  A  A  size like
>> >        >A  A  A  >AA  AA  I was doing initially which is also intuitive.
>> >        >A  A  A  >AA  AA  Best,
>> >        >A  A  A  >AA  AA  Anindya
>> >        >A  A  A  >AA  AA  On Tue, Oct 8, 2019 at 1:53 AM Nicholas
>> Marriott
>> >        >A  A  A  >AA  AA  <[email protected]> wrote:
>> >        >A  A  A  >
>> >        >A  A  A  >AA  AA  AA  OK this looks good but there are two
>> things:
>> >        >A  A  A  >
>> >        >A  A  A  >AA  AA  AA  - if you are using the whole size you
>> should be
>> >        able to use
>> >        >A  A  A  wp->sx and
>> >        >A  A  A  >AA  AA  AA  AAA  sy for the size rather than walking
>> up to
>> >        it (or you can
>> >        >A  A  A  get the root
>> >        >A  A  A  >AA  AA  AA  AAA  cell directly from wp->layout_cell).
>> >        >A  A  A  >
>> >        >A  A  A  >AA  AA  AA  - this resizes BY a % of the total size
>> which
>> >        seems a bit odd
>> >        >A  A  A  - I was
>> >        >A  A  A  >AA  AA  AA  AAA  thinking it would resize TO a % of
>> the
>> >        total size?
>> >        >A  A  A  >
>> >        >A  A  A  >AA  AA  AA  On Tue, Oct 08, 2019 at 12:34:13AM -0700,
>> >        Anindya Mukherjee
>> >        >A  A  A  wrote:
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  Great, thanks!
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  I updated the code to use the
>> root
>> >        layout cell as
>> >        >A  A  A  that seems
>> >        >A  A  A  >AA  AA  AA  intuitive to
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  me, and also tried to fix some
>> of
>> >        the formatting
>> >        >A  A  A  issues.
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  Best,
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  Anindya
>> >        >A  A  A  >AA  AA  AA  >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  On Tue, Oct 8, 2019 at 12:05 AM
>> >        Nicholas Marriott
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  <[email protected]>
>> wrote:
>> >        >A  A  A  >AA  AA  AA  >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  Looks good aside from a
>> few
>> >        style nits I can fix
>> >        >A  A  A  before commit
>> >        >A  A  A  >AA  AA  AA  (use tabs
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  not spaces, all the u_int
>> >        variable declarations
>> >        >A  A  A  go in the same
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  statement, line length
>> needs to
>> >        be <= 80 columns,
>> >        >A  A  A  new line for
>> >        >A  A  A  >AA  AA  AA  each new
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  sentence in tmux.1,
>> "lines or
>> >        columns" not "lines
>> >        >A  A  A  or cells" in
>> >        >A  A  A  >AA  AA  AA  tmux.1).
>> >        >A  A  A  >AA  AA  AA  >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  I don't have strong
>> feelings
>> >        whether -p means %
>> >        >A  A  A  of parent cell
>> >        >A  A  A  >AA  AA  AA  or total
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  size, it's up to you
>> which you
>> >        prefer. I'd add a
>> >        >A  A  A  line to the
>> >        >A  A  A  >AA  AA  AA  manual
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  explaining what it means
>> in
>> >        either case.
>> >        >A  A  A  >AA  AA  AA  >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  Thanks!
>> >        >A  A  A  >AA  AA  AA  >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  On Mon, Oct 07, 2019 at
>> >        11:44:46PM -0700, Anindya
>> >        >A  A  A  Mukherjee
>> >        >A  A  A  >AA  AA  AA  wrote:
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  Fixed a
>> mistake in
>> >        the last upload.
>> >        >A  A  A  Sorry for the
>> >        >A  A  A  >AA  AA  AA  noise.
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  Although
>> currently
>> >        I am using the
>> >        >A  A  A  parent layout cell
>> >        >A  A  A  >AA  AA  AA  of the
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  target window
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  pane's cell
>> to
>> >        calculate the available
>> >        >A  A  A  space, I
>> >        >A  A  A  >AA  AA  AA  wonder if it
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  would be
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  better to
>> use the
>> >        root layout cell,
>> >        >A  A  A  which is
>> >        >A  A  A  >AA  AA  AA  basically the entire
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  terminal. An
>> >        example is a 2x2 grid
>> >        >A  A  A  with 4 panes. Here
>> >        >A  A  A  >AA  AA  AA  if I just
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  use the
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  parent cell,
>> it
>> >        only covers half of
>> >        >A  A  A  the available
>> >        >A  A  A  >AA  AA  AA  space and the
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  results
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  are a little
>> less
>> >        intuitive compared
>> >        >A  A  A  to using the top
>> >        >A  A  A  >AA  AA  AA  level cell.
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  Best,
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  Anindya
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  On Mon, Oct
>> 7,
>> >        2019 at 10:42 PM
>> >        >A  A  A  Anindya Mukherjee
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  <[email protected]>
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  wrote:
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  Some
>> further
>> >        adjustments. I
>> >        >A  A  A  realised that
>> >        >A  A  A  >AA  AA  AA  checking the
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  percentage is not
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA
>> necessary
>> >        because downstream code
>> >        >A  A  A  handles large
>> >        >A  A  A  >AA  AA  AA  values
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  correctly. Also,
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  the
>> layout
>> >        type of the parent
>> >        >A  A  A  layout_cell is
>> >        >A  A  A  >AA  AA  AA  always
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  LAYOUT_WINDOWPANE so
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  I
>> check the
>> >        args instead while
>> >        >A  A  A  calculating the
>> >        >A  A  A  >AA  AA  AA  adjustment
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  (which is also
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  what's
>> done
>> >        in split-window).
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  Best,
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  Anindya
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  On
>> Mon, Oct
>> >        7, 2019 at 9:17 PM
>> >        >A  A  A  Anindya Mukherjee
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  <[email protected]>
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  wrote:
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> Hi
>> >        Nicholas,
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> Thanks
>> >        for the feedback! I
>> >        >A  A  A  have adjusted the
>> >        >A  A  A  >AA  AA  AA  code
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  accordingly.
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> >        percentage can now be 0 to
>> >        >A  A  A  INT_MAX as in
>> >        >A  A  A  >AA  AA  AA  split-window.
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> Yes,
>> >        initially I was setting
>> >        >A  A  A  the increment as
>> >        >A  A  A  >AA  AA  AA  a percentage
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  of the
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> >        current pane size thinking
>> >        >A  A  A  that would be
>> >        >A  A  A  >AA  AA  AA  convenient.
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  However, upon
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> trying
>> >        percentage of the
>> >        >A  A  A  available space in
>> >        >A  A  A  >AA  AA  AA  the parent cell
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  I prefer
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> that.
>> >        Also it is then
>> >        >A  A  A  consistent with
>> >        >A  A  A  >AA  AA  AA  split-window.
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> >        Changes attached. Please
>> >        >A  A  A  have a look.
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> Best,
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> >        Anindya
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> On
>> >        Mon, Oct 7, 2019 at 4:57
>> >        >A  A  A  AM Nicholas
>> >        >A  A  A  >AA  AA  AA  Marriott
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAA
>> >        >A  A  A  <[email protected]> wrote:
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        Thanks for this.
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        For strtonum - I think
>> >        >A  A  A  it does no harm to
>> >        >A  A  A  >AA  AA  AA  let people do
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  -p0 or
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        -p99999999 to mean as
>> >        >A  A  A  small or as big as
>> >        >A  A  A  >AA  AA  AA  possible.
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        With split-window, -p
>> >        >A  A  A  is a % of the
>> >        >A  A  A  >AA  AA  AA  available space, but
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  you have
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        made
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        it a % of the existing
>> >        >A  A  A  size? Is this more
>> >        >A  A  A  >AA  AA  AA  useful?
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        You should be able to
>> >        >A  A  A  get the available
>> >        >A  A  A  >AA  AA  AA  space by looking
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  at the size
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        of
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        the parent cell
>> >        >A  A  A  >AA  AA  AA  (wp->layout_cell->parent->sx and sy).
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        On Sun, Oct 06, 2019 at
>> >        >A  A  A  03:34:33PM -0700,
>> >        >A  A  A  >AA  AA  AA  Anindya
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  Mukherjee wrote:
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  Thanks
>> >        >A  A  A  Thomas for the tips! I
>> >        >A  A  A  >AA  AA  AA  have adjusted the
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  code
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        accordingly.
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  Regarding
>> >        >A  A  A  the args_strtonum
>> >        >A  A  A  >AA  AA  AA  call: I want to
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  disallow percent
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        <=0 and >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  100. I
>> >        >A  A  A  thought adding 1, 100
>> >        >A  A  A  >AA  AA  AA  is a convenient
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  way of doing
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        that, and I get
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  a "too
>> >        >A  A  A  small/large" error when
>> >        >A  A  A  >AA  AA  AA  invalid values
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  are
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        supplied.AAAAAA  Is
>> >        >A  A  A  there any
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  issue with
>> >        >A  A  A  doing it this way?
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  Best,
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  Anindya
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  On Sun,
>> >        >A  A  A  Oct 6, 2019 at 3:03 PM
>> >        >A  A  A  >AA  AA  AA  Thomas Adam
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        <[email protected]>
>> >        >A  A  A  wrote:
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  Hi,
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAA
>> >        >A  A  A  Thanks.AAAAAA  Comments
>> >        >A  A  A  >AA  AA  AA  below:
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAA
>> >        >A  A  A  1.AAAAAA  You shouldn't
>> >        >A  A  A  >AA  AA  AA  need to use 0U for
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  integer
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        definitions.
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAA
>> >        >A  A  A  2.AAAAAA  In terms of
>> >        >A  A  A  >AA  AA  AA  calling args_strtonum()
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  for
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        percentage:AAAAAA  0,
>> >        >A  A  A  INT_MAX
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAA
>> >        >A  A  A  should be OK, rather than
>> >        >A  A  A  >AA  AA  AA  1, 100, no?
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAA
>> >        >A  A  A  3.AAAAAA  When you're
>> >        >A  A  A  >AA  AA  AA  resizing in either L/R
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  or U/D, the
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        layout cells are
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAA
>> >        >A  A  A  either LEFTRIGHT or
>> >        >A  A  A  >AA  AA  AA  TOPBOTTOM.AAAAAA  Rather
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  than embed your
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        percentage
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAA
>> >        >A  A  A  check in all of the if
>> >        >A  A  A  >AA  AA  AA  statements that
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  check for 'L', 'R',
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        etc., you
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  can
>> >        >A  A  A  pull this check out
>> >        >A  A  A  >AA  AA  AA  to the top,
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  something like:
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  if
>> >        >A  A  A  (layout ==
>> >        >A  A  A  >AA  AA  AA  LAYOUT_TOPBOTTOM)
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAA
>> >        >A  A  A  AAAAAA  AAAAAA  adjust =
>> >        >A  A  A  >AA  AA  AA  (wp->sy * percentage) /
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  100
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  else
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAA
>> >        >A  A  A  AAAAAA  AAAAAA  adjust =
>> >        >A  A  A  >AA  AA  AA  (wp->sx * percentage) /
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  100
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  I'm
>> >        >A  A  A  sure you get the
>> >        >A  A  A  >AA  AA  AA  idea.
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAA
>> >        >A  A  A  Kindly,
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAA
>> >        >A  A  A  Thomas
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  On
>> >        >A  A  A  Sun, 6 Oct 2019 at
>> >        >A  A  A  >AA  AA  AA  20:56, Anindya
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  Mukherjee
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        <[email protected]>
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAA
>> >        >A  A  A  wrote:
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  >
>> >        >A  A  A  Hi, I have been playing
>> >        >A  A  A  >AA  AA  AA  with adding a
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  percent option to
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        resize-pane.
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  It's
>> >        >A  A  A  on the todo list
>> >        >A  A  A  >AA  AA  AA  (small things) for
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  tmux, and I find
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        it very
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAA
>> >        >A  A  A  useful. Right now it's
>> >        >A  A  A  >AA  AA  AA  working for me but
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  being new to
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        tmux code I would
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  love
>> >        >A  A  A  to have some eyes on
>> >        >A  A  A  >AA  AA  AA  it. I have
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  attached my changes.
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  > If
>> >        >A  A  A  this is
>> >        >A  A  A  >AA  AA  AA  worthwhile/useful then I can
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  do it properly
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        via github. In
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  that
>> >        >A  A  A  case any advice on
>> >        >A  A  A  >AA  AA  AA  the proper
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  procedure is welcome!
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  >
>> >        >A  A  A  Anindya
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  > --
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  >
>> >        >A  A  A  You received this
>> >        >A  A  A  >AA  AA  AA  message because you are
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  subscribed to
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        the Google
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAA
>> >        >A  A  A  Groups "tmux-users"
>> >        >A  A  A  >AA  AA  AA  group.
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  > To
>> >        >A  A  A  unsubscribe from
>> >        >A  A  A  >AA  AA  AA  this group and stop
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  receiving emails
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        from it, send
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  an
>> >        >A  A  A  email to
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA
>> >        [email protected].
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  AAAAA  > To
>> >        >A  A  A  view this discussion
>> >        >A  A  A  >AA  AA  AA  on the web, visit
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        >AAAAA  AAAAA  A
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA  A
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  A
>> >        >A  A  A  >AA  AA  A
>> >        >A  A  A
>> >
>> https://groups.google.com/d/msgid/tmux-users/CAN%2Bi5iO9yh4TSNJ_r7397%2BCwW55%2BwHqDOs20CBYpFmoXeZfHTA%40mail.gmail.com
>> .
>> >        >A  A  A  >AA  AA  AA  >
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > diff --git
>> >        a/cmd-resize-pane.c
>> >        >A  A  A  b/cmd-resize-pane.c
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > index 8d35d96f..519c9d5e
>> >        100644
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > --- a/cmd-resize-pane.c
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +++ b/cmd-resize-pane.c
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > @@ -35,9 +35,9 @@ const
>> >        struct cmd_entry
>> >        >A  A  A  >AA  AA  AA  cmd_resize_pane_entry = {
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  A
>> .name =
>> >        "resize-pane",
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  A
>> .alias =
>> >        "resizep",
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >A
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > -AAAA  AAAA  A .args = {
>> >        "DLMRt:Ux:y:Z", 0, 1 },
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  A .args = {
>> >        "DLMp:Rt:Ux:y:Z", 0, 1
>> >        >A  A  A  },
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  A
>> .usage =
>> >        "[-DLMRUZ] [-x width]
>> >        >A  A  A  [-y height] "
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  CMD_TARGET_PANE_USAGE " "
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > -AAAA  AAAA  AAAA  AAAA
>> >        AAAA  AAAA  AAA
>> >        >A  A  A  "[adjustment]",
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA  AAAA
>> >        AAAA  AAAA  AAAA  "[-p
>> >        >A  A  A  percentage] [adjustment]",
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >A
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  A
>> .target =
>> >        { 't', CMD_FIND_PANE,
>> >        >A  A  A  0 },
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >A
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > @@ -57,8 +57,9 @@
>> >        cmd_resize_pane_exec(struct
>> >        >A  A  A  cmd *self,
>> >        >A  A  A  >AA  AA  AA  struct
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  cmdq_item *item)
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  A
>> struct
>> >        sessionAAAA  AAAA  AAA
>> >        >A  A  A  AAAA  AAAA  *s =
>> >        >A  A  A  >AA  AA  AA  item->target.s;
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  A const
>> >        charAAAA  AAAA  AAAA  AAA
>> >        >A  A  A  AAAA  AAAA  AAAA  *errstr;
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  A
>> charAAAA
>> >        AAAA  AAAA  AAAA  AAA
>> >        >A  A  A  AAAA  AAAA  AAAA  AAAA  AA
>> >        >A  A  A  >AA  AA  AA  *cause;
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > -AAAA  AAAA  A
>> u_intAAAA
>> >        AAAA  AAAA  AAAA  AAAA  AAA
>> >        >A  A  A  AAAA  AAAA  AAAA  AA
>> >        >A  A  A  >AA  AA  AA  adjust;
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  A
>> u_intAAAA
>> >        AAAA  AAAA  AAAA  AAAA  AAA
>> >        >A  A  A  AAAA  AAAA  AAAA  AA
>> >        >A  A  A  >AA  AA  AA  adjust = 0;
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  A
>> intAAAA
>> >        AAAA  AAAA  AAAA  AAA
>> >        >A  A  A  AAAA  AAAA  AAAA  AAAA  AAAA  AA
>> >        >A  A  A  >AA  AA  AA  x, y;
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA  AAAA
>> >        u_intAAAA  AAAA  AAAA  AAA
>> >        >A  A  A  AAAA  AAAA  AAAA  AAAA  AA
>> >        >A  A  A  >AA  AA  AA  AAAA  percentage = 0;
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >A
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  A if
>> >        (args_has(args, 'M')) {
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        AAAA  AAAA  A if
>> >        >A  A  A  >AA  AA  AA  (cmd_mouse_window(&shared->mouse, &s) ==
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  NULL)
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > @@ -81,7 +82,29 @@
>> >        cmd_resize_pane_exec(struct
>> >        >A  A  A  cmd *self,
>> >        >A  A  A  >AA  AA  AA  struct
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  cmdq_item *item)
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  A }
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  A
>> >        server_unzoom_window(w);
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >A
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > -AAAA  AAAA  A if
>> (args->argc
>> >        == 0)
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA
>> AAAA  if
>> >        (args_has(args, 'p')) {
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA  AAAA
>> >        AAAA  AAAA  AAAA  AAA
>> >        >A  A  A  percentage =
>> >        >A  A  A  >AA  AA  AA  args_strtonum(args, 'p', 0,
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  INT_MAX, &cause);
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA  AAAA
>> >        AAAA  AAAA  A if (cause !=
>> >        >A  A  A  NULL) {
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA  AAAA
>> >        AAAA  AAAA  AAAA  AAAA  AAA
>> >        >A  A  A  AAAA  A cmdq_error(item,
>> >        >A  A  A  >AA  AA  AA  "percentage %s",
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  cause);
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA  AAAA
>> >        AAAA  AAAA  AAAA  AAAA  AAA
>> >        >A  A  A  AAAA  A free(cause);
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA  AAAA
>> >        AAAA  AAAA  AAAA  AAAA  AAA
>> >        >A  A  A  AAAA  A return
>> >        >A  A  A  >AA  AA  AA  (CMD_RETURN_ERROR);
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA  AAAA
>> >        AAAA  AAAA  A }
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA  AAAA
>> >        AAAA  AAAA  AAAA  AAAA  /*
>> >        >A  A  A  Should not also have an
>> >        >A  A  A  >AA  AA  AA  adjustment in this
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  case. */
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA  AAAA
>> >        AAAA  AAAA  AAAA  AAAA  if
>> >        >A  A  A  (args->argc > 0) {
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA  AAAA
>> >        AAAA  AAAA  AAAA  AAAA  AAA
>> >        >A  A  A  AAAA  A cmdq_error(item,
>> >        >A  A  A  >AA  AA  AA  "percentage and
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  adjustment are mutually
>> >        exclusive");
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA  AAAA
>> >        AAAA  AAAA  AAAA  AAAA  AAA
>> >        >A  A  A  AAAA  A return
>> >        >A  A  A  >AA  AA  AA  (CMD_RETURN_ERROR);
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA  AAAA
>> >        AAAA  AAAA  AAAA  AAAA  }
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA  AAAA
>> >        AAAA  AAAA  AAAA  AAAA  /*
>> >        >A  A  A  Calculate adjustment
>> >        >A  A  A  >AA  AA  AA  from parent cell
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  size. */
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA  AAAA
>> >        AAAA  AAAA  AAAA  AAAA  if
>> >        >A  A  A  >AA  AA  AA  (wp->layout_cell->parent) { /* A cell
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  filling the terminal has
>> no
>> >        parent */
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA  AAAA
>> >        AAAA  AAAA  AAAA  AAAA  AAA
>> >        >A  A  A  AAAA  AAAA  AAAA  if
>> >        >A  A  A  >AA  AA  AA  (args_has(args, 'U') ||
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  args_has(args, 'D'))
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA  AAAA
>> >        AAAA  AAAA  AAAA  AAAA  AAA
>> >        >A  A  A  AAAA  AAAA  AAAA  AAAA  AAAA  AA
>> >        >A  A  A  >AA  AA  AA  AAAA  adjust =
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA
>> (wp->layout_cell->parent->sy *
>> >        percentage) / 100;
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA  AAAA
>> >        AAAA  AAAA  AAAA  AAAA  AAA
>> >        >A  A  A  AAAA  AAAA  AAAA  else
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA  AAAA
>> >        AAAA  AAAA  AAAA  AAAA  AAA
>> >        >A  A  A  AAAA  AAAA  AAAA  AAAA  AAAA  AA
>> >        >A  A  A  >AA  AA  AA  AAAA  adjust =
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA
>> (wp->layout_cell->parent->sx *
>> >        percentage) / 100;
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA  AAAA
>> >        AAAA  AAAA  AAAA  AAAA  }
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  AAAA
>> AAAA  }
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +AAAA  AAAA  A else if
>> >        (args->argc == 0)
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        AAAA  AAAA  A adjust = 1;
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  A else
>> {
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
>> AAAA
>> >        AAAA  AAAA  A adjust =
>> >        >A  A  A  >AA  AA  AA  strtonum(args->argv[0], 1, INT_MAX,
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  &errstr);
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > diff --git a/tmux.1
>> b/tmux.1
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > index e095ba40..f548af2c
>> >        100644
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > --- a/tmux.1
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +++ b/tmux.1
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > @@ -2224,13 +2224,18 @@
>> if
>> >        specified, to
>> >>        left or right by a
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +.Ar percentage
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +of the available space
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +.Fl p
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +or by
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  .Ar adjustment
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  with
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  .Fl U ,
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > @@ -2246,7 +2251,11 @@
>> or
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  .Fl y .
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  The
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  .Ar adjustment
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > -is given in lines or
>> cells
>> >        (the default is 1).
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +is given in lines or
>> cells
>> >        (the default is 1).
>> >        >A  A  A  The
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +.Ar percentage
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +and the
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +.Ar adjustment
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  > +are mutually exclusive.
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  .Pp
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  With
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  .Fl Z ,
>> >        >A  A  A  >
>> >        >A  A  A  >AA  AA  AA  > diff --git a/cmd-resize-pane.c
>> >        b/cmd-resize-pane.c
>> >        >A  A  A  >AA  AA  AA  > index 8d35d96f..eeddabf9 100644
>> >        >A  A  A  >AA  AA  AA  > --- a/cmd-resize-pane.c
>> >        >A  A  A  >AA  AA  AA  > +++ b/cmd-resize-pane.c
>> >        >A  A  A  >AA  AA  AA  > @@ -35,9 +35,9 @@ const struct cmd_entry
>> >        >A  A  A  cmd_resize_pane_entry = {
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  A .name = "resize-pane",
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  A .alias = "resizep",
>> >        >A  A  A  >AA  AA  AA  >A
>> >        >A  A  A  >AA  AA  AA  > -AAA  AAA  A .args = { "DLMRt:Ux:y:Z",
>> 0, 1
>> >        },
>> >        >A  A  A  >AA  AA  AA  > +AAA  AAA  A .args = {
>> "DLMp:Rt:Ux:y:Z", 0, 1
>> >        },
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  A .usage = "[-DLMRUZ] [-x
>> >        width] [-y height] "
>> >        >A  A  A  >AA  AA  AA  CMD_TARGET_PANE_USAGE " "
>> >        >A  A  A  >AA  AA  AA  > -AAA  AAA  AAA  AAA  AAA  AAA  AAA
>> >        "[adjustment]",
>> >        >A  A  A  >AA  AA  AA  > +AAA  AAA  AAA  AAA  AAA  AAA  AAA  "[-p
>> >        percentage] [adjustment]",
>> >        >A  A  A  >AA  AA  AA  >A
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  A .target = { 't',
>> >        CMD_FIND_PANE, 0 },
>> >        >A  A  A  >AA  AA  AA  >A
>> >        >A  A  A  >AA  AA  AA  > @@ -55,9 +55,10 @@
>> >        cmd_resize_pane_exec(struct cmd *self,
>> >        >A  A  A  struct
>> >        >A  A  A  >AA  AA  AA  cmdq_item *item)
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  A struct windowAAA  AAA
>> AAA
>> >        AAA  AAA  A *w =
>> >        >A  A  A  wl->window;
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  A struct clientAAA  AAA
>> AAA
>> >        AAA  AAA  A *c =
>> >        >A  A  A  item->client;
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  A struct sessionAAA  AAA
>> AAA
>> >        AAA  AAA  *s =
>> >        >A  A  A  item->target.s;
>> >        >A  A  A  >AA  AA  AA  > +AAA  AAA  A struct layout_cellAAA
>> AAA  AAA
>> >        *rootlc;
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  A const charAAA  AAA
>> AAA  AAA
>> >        AAA  AAA  AAA  *errstr;
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  A charAAA  AAA  AAA  AAA
>> AAA
>> >        AAA  AAA  AAA  AAA  AA
>> >        >A  A  A  *cause;
>> >        >A  A  A  >AA  AA  AA  > -AAA  AAA  A u_intAAA  AAA  AAA  AAA
>> AAA
>> >        AAA  AAA  AAA  AAA  AA
>> >        >A  A  A  adjust;
>> >        >A  A  A  >AA  AA  AA  > +AAA  AAA>        >A  A  A  adjust = 0,
>> percentage =
>> >        >A  A  A  >AA  AA  AA  0;
>> >        >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  A intAAA  AAA  AAA  AAA
>> AAA
>> >        AAA  AAA>        >A  A  A  >AA  AA  AA  >A
>> >  >
>
>
>
> --
> Best,
> Anindya
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"tmux-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/tmux-users/CAN%2Bi5iPRHD%3DT1Kqq4OnOxXsR8qq3A%3Df3qahqWDk2WmKOV6Kffg%40mail.gmail.com.
diff --git a/cmd-resize-pane.c b/cmd-resize-pane.c
index 8d35d96f..4ceaa37d 100644
--- a/cmd-resize-pane.c
+++ b/cmd-resize-pane.c
@@ -19,6 +19,7 @@
 #include <sys/types.h>
 
 #include <stdlib.h>
+#include <string.h>
 
 #include "tmux.h"
 
@@ -55,10 +56,10 @@ cmd_resize_pane_exec(struct cmd *self, struct cmdq_item 
*item)
        struct window           *w = wl->window;
        struct client           *c = item->client;
        struct session          *s = item->target.s;
-       const char              *errstr;
-       char                    *cause;
+       const char              *errstr, *percentstr;
+       char                    *cause, *percentvalstr;
        u_int                    adjust;
-       int                      x, y;
+       int                      x, y, percent, percentstrlen;
 
        if (args_has(args, 'M')) {
                if (cmd_mouse_window(&shared->mouse, &s) == NULL)
@@ -92,21 +93,72 @@ cmd_resize_pane_exec(struct cmd *self, struct cmdq_item 
*item)
        }
 
        if (args_has(args, 'x')) {
-               x = args_strtonum(args, 'x', PANE_MINIMUM, INT_MAX, &cause);
-               if (cause != NULL) {
-                       cmdq_error(item, "width %s", cause);
-                       free(cause);
+               /* First check for percentage */
+               percentstr = args_get(args, 'x');
+               if (percentstr == NULL) {
+                       cmdq_error(item, "missing");
                        return (CMD_RETURN_ERROR);
                }
+
+               percentstrlen = strlen(percentstr);
+               if (percentstr[percentstrlen - 1] == '%') {
+                       percentvalstr = xstrdup(percentstr);
+                       percentvalstr[percentstrlen - 1] = '\0';
+                       percent = strtonum(percentvalstr, 0, INT_MAX, &errstr);
+                       free(percentvalstr);
+                       if (errstr != NULL) {
+                               cmdq_error(item, "width percent %s", errstr);
+                               return (CMD_RETURN_ERROR);
+                       }
+                       x = (w->sx * percent) / 100;
+                       if (x < PANE_MINIMUM)
+                               x = PANE_MINIMUM;
+                       if (x > INT_MAX)
+                               x = INT_MAX;
+               } else {
+                       /* Check for absolute value */
+                       x = args_strtonum(args, 'x', PANE_MINIMUM, INT_MAX, 
&cause);
+                       if (cause != NULL) {
+                               cmdq_error(item, "width %s", cause);
+                               free(cause);
+                               return (CMD_RETURN_ERROR);
+                       }
+               }
                layout_resize_pane_to(wp, LAYOUT_LEFTRIGHT, x);
        }
        if (args_has(args, 'y')) {
-               y = args_strtonum(args, 'y', PANE_MINIMUM, INT_MAX, &cause);
-               if (cause != NULL) {
-                       cmdq_error(item, "height %s", cause);
-                       free(cause);
+               /* First check for percentage */
+               percentstr = args_get(args, 'y');
+               if (percentstr == NULL) {
+                       cmdq_error(item, "missing");
                        return (CMD_RETURN_ERROR);
                }
+
+               percentstrlen = strlen(percentstr);
+               if (percentstr[percentstrlen - 1] == '%') {
+                       percentvalstr = xstrdup(percentstr);
+                       percentvalstr[percentstrlen - 1] = '\0';
+                       percent = strtonum(percentvalstr, 0, INT_MAX, &errstr);
+                       free(percentvalstr);
+                       if (errstr != NULL) {
+                               cmdq_error(item, "height percent %s", errstr);
+                               return (CMD_RETURN_ERROR);
+                       }
+                       y = (w->sy * percent) / 100;
+                       if (y < PANE_MINIMUM)
+                               y = PANE_MINIMUM;
+                       if (y > INT_MAX)
+                               y = INT_MAX;
+               }
+               else {
+                       /* Check for absolute value */
+                       y = args_strtonum(args, 'y', PANE_MINIMUM, INT_MAX, 
&cause);
+                       if (cause != NULL) {
+                               cmdq_error(item, "height %s", cause);
+                               free(cause);
+                               return (CMD_RETURN_ERROR);
+                       }
+               }
                layout_resize_pane_to(wp, LAYOUT_TOPBOTTOM, y);
        }
 
diff --git a/cmd-split-window.c b/cmd-split-window.c
index 8d63473f..e53147d0 100644
--- a/cmd-split-window.c
+++ b/cmd-split-window.c
@@ -63,9 +63,9 @@ cmd_split_window_exec(struct cmd *self, struct cmdq_item 
*item)
        enum layout_type         type;
        struct layout_cell      *lc;
        struct cmd_find_state    fs;
-       int                      size, percentage, flags, input;
-       const char              *template, *add;
-       char                    *cause, *cp;
+       int                      size, percentage, flags, input, percentstrlen;
+       const char              *template, *add, *errstr, *percentstr;
+       char                    *cause, *cp, *percentvalstr;
        struct args_value       *value;
 
        if (args_has(args, 'h'))
@@ -73,12 +73,36 @@ cmd_split_window_exec(struct cmd *self, struct cmdq_item 
*item)
        else
                type = LAYOUT_TOPBOTTOM;
        if (args_has(args, 'l')) {
-               size = args_strtonum(args, 'l', 0, INT_MAX, &cause);
-               if (cause != NULL) {
-                       cmdq_error(item, "create pane failed: -l %s", cause);
-                       free(cause);
+               /* First check for percentage */
+               percentstr = args_get(args, 'l');
+               if (percentstr == NULL) {
+                       cmdq_error(item, "missing");
                        return (CMD_RETURN_ERROR);
                }
+
+               percentstrlen = strlen(percentstr);
+               if (percentstr[percentstrlen - 1] == '%') {
+                       percentvalstr = xstrdup(percentstr);
+                       percentvalstr[percentstrlen - 1] = '\0';
+                       percentage = strtonum(percentvalstr, 0, INT_MAX, 
&errstr);
+                       free(percentvalstr);
+                       if (errstr != NULL) {
+                               cmdq_error(item, "percent %s", errstr);
+                               return (CMD_RETURN_ERROR);
+                       }
+                       if (type == LAYOUT_TOPBOTTOM)
+                               size = (wp->sy * percentage) / 100;
+                       else
+                               size = (wp->sx * percentage) / 100;
+               } else {
+                       /* Check for absolute value */
+                       size = args_strtonum(args, 'l', 0, INT_MAX, &cause);
+                       if (cause != NULL) {
+                               cmdq_error(item, "create pane failed: -l %s", 
cause);
+                               free(cause);
+                               return (CMD_RETURN_ERROR);
+                       }
+               }
        } else if (args_has(args, 'p')) {
                percentage = args_strtonum(args, 'p', 0, INT_MAX, &cause);
                if (cause != NULL) {
diff --git a/tmux.1 b/tmux.1
index e095ba40..effd95e1 100644
--- a/tmux.1
+++ b/tmux.1
@@ -2225,8 +2225,8 @@ if specified, to
 .It Xo Ic resize-pane
 .Op Fl DLMRUZ
 .Op Fl t Ar target-pane
-.Op Fl x Ar width
-.Op Fl y Ar height
+.Op Fl x Ar width | percentage%
+.Op Fl y Ar height | percentage%
 .Op Ar adjustment
 .Xc
 .D1 (alias: Ic resizep )
@@ -2246,7 +2246,8 @@ or
 .Fl y .
 The
 .Ar adjustment
-is given in lines or cells (the default is 1).
+is given in lines or columns (the default is 1).
+The percentages are based on the root window dimensions.
 .Pp
 With
 .Fl Z ,
@@ -2440,7 +2441,7 @@ the command behaves like
 .Op Fl c Ar start-directory
 .Op Fl e Ar environment
 .Oo Fl l
-.Ar size |
+.Ar size | percentage% |
 .Fl p Ar percentage Oc
 .Op Fl t Ar target-pane
 .Op Ar shell-command
@@ -2460,7 +2461,8 @@ The
 and
 .Fl p
 options specify the size of the new pane in lines (for vertical split) or in
-cells (for horizontal split), or as a percentage, respectively.
+columns (for horizontal split), or as a percentage, respectively.
+The percentages are based on the target pane dimensions.
 The
 .Fl b
 option causes the new pane to be created to the left of or above

Reply via email to