c93ca46cf5
'git column's '--nl' option can be used to specify a "string to be
printed at the end of each line" (quoting the man page), but this
option and its mandatory argument has been parsed as OPT_INTEGER since
the introduction of the command in 7e29b8254f
(Add column layout
skeleton and git-column, 2012-04-21). Consequently, any non-number
argument is rejected by parse-options, and any number other than 0
leads to segfault:
$ printf "%s\n" one two |git column --mode=plain --nl=foo
error: option `nl' expects a numerical value
$ printf "%s\n" one two |git column --mode=plain --nl=42
Segmentation fault (core dumped)
$ printf "%s\n" one two |git column --mode=plain --nl=0
one
two
Parse this option as OPT_STRING.
Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
199 lines
3.0 KiB
Bash
Executable File
199 lines
3.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description='git column'
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success 'setup' '
|
|
cat >lista <<\EOF
|
|
one
|
|
two
|
|
three
|
|
four
|
|
five
|
|
six
|
|
seven
|
|
eight
|
|
nine
|
|
ten
|
|
eleven
|
|
EOF
|
|
'
|
|
|
|
test_expect_success 'never' '
|
|
git column --indent=Z --mode=never <lista >actual &&
|
|
test_cmp lista actual
|
|
'
|
|
|
|
test_expect_success 'always' '
|
|
cat >expected <<\EOF &&
|
|
Zone
|
|
Ztwo
|
|
Zthree
|
|
Zfour
|
|
Zfive
|
|
Zsix
|
|
Zseven
|
|
Zeight
|
|
Znine
|
|
Zten
|
|
Zeleven
|
|
EOF
|
|
git column --indent=Z --mode=plain <lista >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
test_expect_success '--nl' '
|
|
cat >expected <<\EOF &&
|
|
oneZ
|
|
twoZ
|
|
threeZ
|
|
fourZ
|
|
fiveZ
|
|
sixZ
|
|
sevenZ
|
|
eightZ
|
|
nineZ
|
|
tenZ
|
|
elevenZ
|
|
EOF
|
|
git column --nl="Z$LF" --mode=plain <lista >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
test_expect_success '80 columns' '
|
|
cat >expected <<\EOF &&
|
|
one two three four five six seven eight nine ten eleven
|
|
EOF
|
|
COLUMNS=80 git column --mode=column <lista >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<\EOF
|
|
one
|
|
two
|
|
three
|
|
four
|
|
five
|
|
six
|
|
seven
|
|
eight
|
|
nine
|
|
ten
|
|
eleven
|
|
EOF
|
|
|
|
test_expect_success COLUMNS_CAN_BE_1 'COLUMNS = 1' '
|
|
COLUMNS=1 git column --mode=column <lista >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
test_expect_success 'width = 1' '
|
|
git column --mode=column --width=1 <lista >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
COLUMNS=20
|
|
export COLUMNS
|
|
|
|
test_expect_success '20 columns' '
|
|
cat >expected <<\EOF &&
|
|
one seven
|
|
two eight
|
|
three nine
|
|
four ten
|
|
five eleven
|
|
six
|
|
EOF
|
|
git column --mode=column <lista >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
test_expect_success '20 columns, nodense' '
|
|
cat >expected <<\EOF &&
|
|
one seven
|
|
two eight
|
|
three nine
|
|
four ten
|
|
five eleven
|
|
six
|
|
EOF
|
|
git column --mode=column,nodense < lista > actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
test_expect_success '20 columns, dense' '
|
|
cat >expected <<\EOF &&
|
|
one five nine
|
|
two six ten
|
|
three seven eleven
|
|
four eight
|
|
EOF
|
|
git column --mode=column,dense < lista > actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
test_expect_success '20 columns, padding 2' '
|
|
cat >expected <<\EOF &&
|
|
one seven
|
|
two eight
|
|
three nine
|
|
four ten
|
|
five eleven
|
|
six
|
|
EOF
|
|
git column --mode=column --padding 2 <lista >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
test_expect_success '20 columns, indented' '
|
|
cat >expected <<\EOF &&
|
|
one seven
|
|
two eight
|
|
three nine
|
|
four ten
|
|
five eleven
|
|
six
|
|
EOF
|
|
git column --mode=column --indent=" " <lista >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
test_expect_success '20 columns, row first' '
|
|
cat >expected <<\EOF &&
|
|
one two
|
|
three four
|
|
five six
|
|
seven eight
|
|
nine ten
|
|
eleven
|
|
EOF
|
|
git column --mode=row <lista >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
test_expect_success '20 columns, row first, nodense' '
|
|
cat >expected <<\EOF &&
|
|
one two
|
|
three four
|
|
five six
|
|
seven eight
|
|
nine ten
|
|
eleven
|
|
EOF
|
|
git column --mode=row,nodense <lista >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
test_expect_success '20 columns, row first, dense' '
|
|
cat >expected <<\EOF &&
|
|
one two three
|
|
four five six
|
|
seven eight nine
|
|
ten eleven
|
|
EOF
|
|
git column --mode=row,dense <lista >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
test_done
|