insert into a col and append to other cols?

I have a table like this

A    B    C
/a  /c   /e
/b  /d   /f

Now I need to insert “/foo” into row 0, column “B” while keeping the values for row 0 in col “A” and “B”

So the end result should be:

A    B    C
/a  /foo /e
/b  /c   /f
    /d

I think there’s nothing in tab* family to achieve this, but maybe someone knows a litle hack which could be used?
Achim

would a shift option in tabcell make sense?

Selina

would a shift option auto-append additional rows/cols to the table if needed?

Or maybe:
tabinsert -f 0 -c 0 /table1 r c foo
which would insert a cell into row 0 column 0 and fill it with “foo”. For the other cols the row will be appended to the end (in case not all cells in the last row are already empty). The new -c (optionally -r) just specifies the column (row) at which the cell will be inserted and number/name type is still controlled via r R c C.

I’m thinking that in this case, doing something in 2 commands maybe clearer.
first command would be append a row, 2nd command would be to set the value
and shift either the row or column, with a -s r|c option. r to shift all values down
1 starting at the specified row, and c to shift all values to the right starting at
the specified col.

tabinsert   /table1 r
tabcell -s r /table rC 1 "B" foo

how does this sound to you?

Selina

Malcolm and I just had a short discussion, and we decided what makes sense is to
have a tabshift command, probably of a form

tabshift tablepath rc|Rc|rC|RC row col r|c value0 [value1 value2...]

I’ll also update the other tab commands so rows and columns are automatically created
when needed.

Selina

sounds great. Thanks Selina