]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
column: remove remaining bitfield in struct member
authorChristian Goeschel Ndjomouo <cgoesc2@wgu.edu>
Sat, 6 Jun 2026 15:51:28 +0000 (11:51 -0400)
committerChristian Goeschel Ndjomouo <cgoesc2@wgu.edu>
Sat, 6 Jun 2026 21:32:45 +0000 (17:32 -0400)
Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
tests/expected/column/colors-ansi-esc-seq [new file with mode: 0644]
tests/expected/column/colors-colorscheme [new file with mode: 0644]
tests/expected/column/colors-header-only [new file with mode: 0644]
tests/expected/column/colors-names [new file with mode: 0644]
tests/ts/column/colors [new file with mode: 0755]
tests/ts/column/files/terminal-colors.d/test.scheme [new file with mode: 0644]
text-utils/column.c

diff --git a/tests/expected/column/colors-ansi-esc-seq b/tests/expected/column/colors-ansi-esc-seq
new file mode 100644 (file)
index 0000000..f90e2c3
--- /dev/null
@@ -0,0 +1,49 @@
+\e[7;37mCOL1 \e[0m              
+\e[7;37mAAA  \e[0m  BBBB  C     DDDD
+\e[7;37mA    \e[0m  BBB   CCCC  DDD
+\e[7;37mAA   \e[0m  BB    CCC   DD
+\e[7;37mAAAA \e[0m  B     CC    D
+\e[7;37mAA   \e[0m  BB    CC    DD
+\e[7;37mAAAAA\e[0m  BBB   CCC   DDDD
+\e[1;33mCOL1 \e[0m              
+\e[1;33mAAA  \e[0m  BBBB  C     DDDD
+\e[1;33mA    \e[0m  BBB   CCCC  DDD
+\e[1;33mAA   \e[0m  BB    CCC   DD
+\e[1;33mAAAA \e[0m  B     CC    D
+\e[1;33mAA   \e[0m  BB    CC    DD
+\e[1;33mAAAAA\e[0m  BBB   CCC   DDDD
+\e[3;31mCOL1 \e[0m              
+\e[3;31mAAA  \e[0m  BBBB  C     DDDD
+\e[3;31mA    \e[0m  BBB   CCCC  DDD
+\e[3;31mAA   \e[0m  BB    CCC   DD
+\e[3;31mAAAA \e[0m  B     CC    D
+\e[3;31mAA   \e[0m  BB    CC    DD
+\e[3;31mAAAAA\e[0m  BBB   CCC   DDDD
+\e[9;35mCOL1 \e[0m              
+\e[9;35mAAA  \e[0m  BBBB  C     DDDD
+\e[9;35mA    \e[0m  BBB   CCCC  DDD
+\e[9;35mAA   \e[0m  BB    CCC   DD
+\e[9;35mAAAA \e[0m  B     CC    D
+\e[9;35mAA   \e[0m  BB    CC    DD
+\e[9;35mAAAAA\e[0m  BBB   CCC   DDDD
+\e[1;4;31;45mCOL1 \e[0m              
+\e[1;4;31;45mAAA  \e[0m  BBBB  C     DDDD
+\e[1;4;31;45mA    \e[0m  BBB   CCCC  DDD
+\e[1;4;31;45mAA   \e[0m  BB    CCC   DD
+\e[1;4;31;45mAAAA \e[0m  B     CC    D
+\e[1;4;31;45mAA   \e[0m  BB    CC    DD
+\e[1;4;31;45mAAAAA\e[0m  BBB   CCC   DDDD
+\e[2;32;46mCOL1 \e[0m              
+\e[2;32;46mAAA  \e[0m  BBBB  C     DDDD
+\e[2;32;46mA    \e[0m  BBB   CCCC  DDD
+\e[2;32;46mAA   \e[0m  BB    CCC   DD
+\e[2;32;46mAAAA \e[0m  B     CC    D
+\e[2;32;46mAA   \e[0m  BB    CC    DD
+\e[2;32;46mAAAAA\e[0m  BBB   CCC   DDDD
+\e[4;38;5;123mCOL1 \e[0m              
+\e[4;38;5;123mAAA  \e[0m  BBBB  C     DDDD
+\e[4;38;5;123mA    \e[0m  BBB   CCCC  DDD
+\e[4;38;5;123mAA   \e[0m  BB    CCC   DD
+\e[4;38;5;123mAAAA \e[0m  B     CC    D
+\e[4;38;5;123mAA   \e[0m  BB    CC    DD
+\e[4;38;5;123mAAAAA\e[0m  BBB   CCC   DDDD
diff --git a/tests/expected/column/colors-colorscheme b/tests/expected/column/colors-colorscheme
new file mode 100644 (file)
index 0000000..d6f2a12
--- /dev/null
@@ -0,0 +1,7 @@
+\e[1;4;31mCOL1 \e[0m              
+\e[34mAAA  \e[0m  BBBB  C     DDDD
+\e[34mA    \e[0m  BBB   CCCC  DDD
+\e[34mAA   \e[0m  BB    CCC   DD
+\e[34mAAAA \e[0m  B     CC    D
+\e[34mAA   \e[0m  BB    CC    DD
+\e[34mAAAAA\e[0m  BBB   CCC   DDDD
diff --git a/tests/expected/column/colors-header-only b/tests/expected/column/colors-header-only
new file mode 100644 (file)
index 0000000..b6959f3
--- /dev/null
@@ -0,0 +1,133 @@
+\e[30mCOL1 \e[0m              
+AAA    BBBB  C     DDDD
+A      BBB   CCCC  DDD
+AA     BB    CCC   DD
+AAAA   B     CC    D
+AA     BB    CC    DD
+AAAAA  BBB   CCC   DDDD
+\e[5mCOL1 \e[0m              
+AAA    BBBB  C     DDDD
+A      BBB   CCCC  DDD
+AA     BB    CCC   DD
+AAAA   B     CC    D
+AA     BB    CC    DD
+AAAAA  BBB   CCC   DDDD
+\e[34mCOL1 \e[0m              
+AAA    BBBB  C     DDDD
+A      BBB   CCCC  DDD
+AA     BB    CCC   DD
+AAAA   B     CC    D
+AA     BB    CC    DD
+AAAAA  BBB   CCC   DDDD
+\e[1mCOL1 \e[0m              
+AAA    BBBB  C     DDDD
+A      BBB   CCCC  DDD
+AA     BB    CCC   DD
+AAAA   B     CC    D
+AA     BB    CC    DD
+AAAAA  BBB   CCC   DDDD
+\e[33mCOL1 \e[0m              
+AAA    BBBB  C     DDDD
+A      BBB   CCCC  DDD
+AA     BB    CCC   DD
+AAAA   B     CC    D
+AA     BB    CC    DD
+AAAAA  BBB   CCC   DDDD
+\e[36mCOL1 \e[0m              
+AAA    BBBB  C     DDDD
+A      BBB   CCCC  DDD
+AA     BB    CCC   DD
+AAAA   B     CC    D
+AA     BB    CC    DD
+AAAAA  BBB   CCC   DDDD
+\e[1;30mCOL1 \e[0m              
+AAA    BBBB  C     DDDD
+A      BBB   CCCC  DDD
+AA     BB    CCC   DD
+AAAA   B     CC    D
+AA     BB    CC    DD
+AAAAA  BBB   CCC   DDDD
+\e[37mCOL1 \e[0m              
+AAA    BBBB  C     DDDD
+A      BBB   CCCC  DDD
+AA     BB    CCC   DD
+AAAA   B     CC    D
+AA     BB    CC    DD
+AAAAA  BBB   CCC   DDDD
+\e[32mCOL1 \e[0m              
+AAA    BBBB  C     DDDD
+A      BBB   CCCC  DDD
+AA     BB    CCC   DD
+AAAA   B     CC    D
+AA     BB    CC    DD
+AAAAA  BBB   CCC   DDDD
+\e[2mCOL1 \e[0m              
+AAA    BBBB  C     DDDD
+A      BBB   CCCC  DDD
+AA     BB    CCC   DD
+AAAA   B     CC    D
+AA     BB    CC    DD
+AAAAA  BBB   CCC   DDDD
+\e[1;34mCOL1 \e[0m              
+AAA    BBBB  C     DDDD
+A      BBB   CCCC  DDD
+AA     BB    CCC   DD
+AAAA   B     CC    D
+AA     BB    CC    DD
+AAAAA  BBB   CCC   DDDD
+\e[1;36mCOL1 \e[0m              
+AAA    BBBB  C     DDDD
+A      BBB   CCCC  DDD
+AA     BB    CCC   DD
+AAAA   B     CC    D
+AA     BB    CC    DD
+AAAAA  BBB   CCC   DDDD
+\e[37mCOL1 \e[0m              
+AAA    BBBB  C     DDDD
+A      BBB   CCCC  DDD
+AA     BB    CCC   DD
+AAAA   B     CC    D
+AA     BB    CC    DD
+AAAAA  BBB   CCC   DDDD
+\e[1;32mCOL1 \e[0m              
+AAA    BBBB  C     DDDD
+A      BBB   CCCC  DDD
+AA     BB    CCC   DD
+AAAA   B     CC    D
+AA     BB    CC    DD
+AAAAA  BBB   CCC   DDDD
+\e[1;35mCOL1 \e[0m              
+AAA    BBBB  C     DDDD
+A      BBB   CCCC  DDD
+AA     BB    CCC   DD
+AAAA   B     CC    D
+AA     BB    CC    DD
+AAAAA  BBB   CCC   DDDD
+\e[1;31mCOL1 \e[0m              
+AAA    BBBB  C     DDDD
+A      BBB   CCCC  DDD
+AA     BB    CCC   DD
+AAAA   B     CC    D
+AA     BB    CC    DD
+AAAAA  BBB   CCC   DDDD
+\e[35mCOL1 \e[0m              
+AAA    BBBB  C     DDDD
+A      BBB   CCCC  DDD
+AA     BB    CCC   DD
+AAAA   B     CC    D
+AA     BB    CC    DD
+AAAAA  BBB   CCC   DDDD
+\e[31mCOL1 \e[0m              
+AAA    BBBB  C     DDDD
+A      BBB   CCCC  DDD
+AA     BB    CCC   DD
+AAAA   B     CC    D
+AA     BB    CC    DD
+AAAAA  BBB   CCC   DDDD
+\e[1;33mCOL1 \e[0m              
+AAA    BBBB  C     DDDD
+A      BBB   CCCC  DDD
+AA     BB    CCC   DD
+AAAA   B     CC    D
+AA     BB    CC    DD
+AAAAA  BBB   CCC   DDDD
diff --git a/tests/expected/column/colors-names b/tests/expected/column/colors-names
new file mode 100644 (file)
index 0000000..9c17f7b
--- /dev/null
@@ -0,0 +1,133 @@
+\e[30mCOL1 \e[0m              
+\e[30mAAA  \e[0m  BBBB  C     DDDD
+\e[30mA    \e[0m  BBB   CCCC  DDD
+\e[30mAA   \e[0m  BB    CCC   DD
+\e[30mAAAA \e[0m  B     CC    D
+\e[30mAA   \e[0m  BB    CC    DD
+\e[30mAAAAA\e[0m  BBB   CCC   DDDD
+\e[5mCOL1 \e[0m              
+\e[5mAAA  \e[0m  BBBB  C     DDDD
+\e[5mA    \e[0m  BBB   CCCC  DDD
+\e[5mAA   \e[0m  BB    CCC   DD
+\e[5mAAAA \e[0m  B     CC    D
+\e[5mAA   \e[0m  BB    CC    DD
+\e[5mAAAAA\e[0m  BBB   CCC   DDDD
+\e[34mCOL1 \e[0m              
+\e[34mAAA  \e[0m  BBBB  C     DDDD
+\e[34mA    \e[0m  BBB   CCCC  DDD
+\e[34mAA   \e[0m  BB    CCC   DD
+\e[34mAAAA \e[0m  B     CC    D
+\e[34mAA   \e[0m  BB    CC    DD
+\e[34mAAAAA\e[0m  BBB   CCC   DDDD
+\e[1mCOL1 \e[0m              
+\e[1mAAA  \e[0m  BBBB  C     DDDD
+\e[1mA    \e[0m  BBB   CCCC  DDD
+\e[1mAA   \e[0m  BB    CCC   DD
+\e[1mAAAA \e[0m  B     CC    D
+\e[1mAA   \e[0m  BB    CC    DD
+\e[1mAAAAA\e[0m  BBB   CCC   DDDD
+\e[33mCOL1 \e[0m              
+\e[33mAAA  \e[0m  BBBB  C     DDDD
+\e[33mA    \e[0m  BBB   CCCC  DDD
+\e[33mAA   \e[0m  BB    CCC   DD
+\e[33mAAAA \e[0m  B     CC    D
+\e[33mAA   \e[0m  BB    CC    DD
+\e[33mAAAAA\e[0m  BBB   CCC   DDDD
+\e[36mCOL1 \e[0m              
+\e[36mAAA  \e[0m  BBBB  C     DDDD
+\e[36mA    \e[0m  BBB   CCCC  DDD
+\e[36mAA   \e[0m  BB    CCC   DD
+\e[36mAAAA \e[0m  B     CC    D
+\e[36mAA   \e[0m  BB    CC    DD
+\e[36mAAAAA\e[0m  BBB   CCC   DDDD
+\e[1;30mCOL1 \e[0m              
+\e[1;30mAAA  \e[0m  BBBB  C     DDDD
+\e[1;30mA    \e[0m  BBB   CCCC  DDD
+\e[1;30mAA   \e[0m  BB    CCC   DD
+\e[1;30mAAAA \e[0m  B     CC    D
+\e[1;30mAA   \e[0m  BB    CC    DD
+\e[1;30mAAAAA\e[0m  BBB   CCC   DDDD
+\e[37mCOL1 \e[0m              
+\e[37mAAA  \e[0m  BBBB  C     DDDD
+\e[37mA    \e[0m  BBB   CCCC  DDD
+\e[37mAA   \e[0m  BB    CCC   DD
+\e[37mAAAA \e[0m  B     CC    D
+\e[37mAA   \e[0m  BB    CC    DD
+\e[37mAAAAA\e[0m  BBB   CCC   DDDD
+\e[32mCOL1 \e[0m              
+\e[32mAAA  \e[0m  BBBB  C     DDDD
+\e[32mA    \e[0m  BBB   CCCC  DDD
+\e[32mAA   \e[0m  BB    CCC   DD
+\e[32mAAAA \e[0m  B     CC    D
+\e[32mAA   \e[0m  BB    CC    DD
+\e[32mAAAAA\e[0m  BBB   CCC   DDDD
+\e[2mCOL1 \e[0m              
+\e[2mAAA  \e[0m  BBBB  C     DDDD
+\e[2mA    \e[0m  BBB   CCCC  DDD
+\e[2mAA   \e[0m  BB    CCC   DD
+\e[2mAAAA \e[0m  B     CC    D
+\e[2mAA   \e[0m  BB    CC    DD
+\e[2mAAAAA\e[0m  BBB   CCC   DDDD
+\e[1;34mCOL1 \e[0m              
+\e[1;34mAAA  \e[0m  BBBB  C     DDDD
+\e[1;34mA    \e[0m  BBB   CCCC  DDD
+\e[1;34mAA   \e[0m  BB    CCC   DD
+\e[1;34mAAAA \e[0m  B     CC    D
+\e[1;34mAA   \e[0m  BB    CC    DD
+\e[1;34mAAAAA\e[0m  BBB   CCC   DDDD
+\e[1;36mCOL1 \e[0m              
+\e[1;36mAAA  \e[0m  BBBB  C     DDDD
+\e[1;36mA    \e[0m  BBB   CCCC  DDD
+\e[1;36mAA   \e[0m  BB    CCC   DD
+\e[1;36mAAAA \e[0m  B     CC    D
+\e[1;36mAA   \e[0m  BB    CC    DD
+\e[1;36mAAAAA\e[0m  BBB   CCC   DDDD
+\e[37mCOL1 \e[0m              
+\e[37mAAA  \e[0m  BBBB  C     DDDD
+\e[37mA    \e[0m  BBB   CCCC  DDD
+\e[37mAA   \e[0m  BB    CCC   DD
+\e[37mAAAA \e[0m  B     CC    D
+\e[37mAA   \e[0m  BB    CC    DD
+\e[37mAAAAA\e[0m  BBB   CCC   DDDD
+\e[1;32mCOL1 \e[0m              
+\e[1;32mAAA  \e[0m  BBBB  C     DDDD
+\e[1;32mA    \e[0m  BBB   CCCC  DDD
+\e[1;32mAA   \e[0m  BB    CCC   DD
+\e[1;32mAAAA \e[0m  B     CC    D
+\e[1;32mAA   \e[0m  BB    CC    DD
+\e[1;32mAAAAA\e[0m  BBB   CCC   DDDD
+\e[1;35mCOL1 \e[0m              
+\e[1;35mAAA  \e[0m  BBBB  C     DDDD
+\e[1;35mA    \e[0m  BBB   CCCC  DDD
+\e[1;35mAA   \e[0m  BB    CCC   DD
+\e[1;35mAAAA \e[0m  B     CC    D
+\e[1;35mAA   \e[0m  BB    CC    DD
+\e[1;35mAAAAA\e[0m  BBB   CCC   DDDD
+\e[1;31mCOL1 \e[0m              
+\e[1;31mAAA  \e[0m  BBBB  C     DDDD
+\e[1;31mA    \e[0m  BBB   CCCC  DDD
+\e[1;31mAA   \e[0m  BB    CCC   DD
+\e[1;31mAAAA \e[0m  B     CC    D
+\e[1;31mAA   \e[0m  BB    CC    DD
+\e[1;31mAAAAA\e[0m  BBB   CCC   DDDD
+\e[35mCOL1 \e[0m              
+\e[35mAAA  \e[0m  BBBB  C     DDDD
+\e[35mA    \e[0m  BBB   CCCC  DDD
+\e[35mAA   \e[0m  BB    CCC   DD
+\e[35mAAAA \e[0m  B     CC    D
+\e[35mAA   \e[0m  BB    CC    DD
+\e[35mAAAAA\e[0m  BBB   CCC   DDDD
+\e[31mCOL1 \e[0m              
+\e[31mAAA  \e[0m  BBBB  C     DDDD
+\e[31mA    \e[0m  BBB   CCCC  DDD
+\e[31mAA   \e[0m  BB    CCC   DD
+\e[31mAAAA \e[0m  B     CC    D
+\e[31mAA   \e[0m  BB    CC    DD
+\e[31mAAAAA\e[0m  BBB   CCC   DDDD
+\e[1;33mCOL1 \e[0m              
+\e[1;33mAAA  \e[0m  BBBB  C     DDDD
+\e[1;33mA    \e[0m  BBB   CCCC  DDD
+\e[1;33mAA   \e[0m  BB    CCC   DD
+\e[1;33mAAAA \e[0m  B     CC    D
+\e[1;33mAA   \e[0m  BB    CC    DD
+\e[1;33mAAAAA\e[0m  BBB   CCC   DDDD
diff --git a/tests/ts/column/colors b/tests/ts/column/colors
new file mode 100755 (executable)
index 0000000..ffafa0d
--- /dev/null
@@ -0,0 +1,60 @@
+#!/usr/bin/env bash
+
+#
+# Copyright (C) 2026 Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
+#
+# This file is part of util-linux.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This file is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+TS_TOPDIR="${0%/*}/../.."
+TS_DESC="colors"
+
+. "$TS_TOPDIR"/functions.sh
+ts_init "$*"
+
+ts_check_test_command "$TS_CMD_COLUMN"
+ts_cd "$TS_OUTDIR"
+
+COLOR_NAMES=( black blink blue bold brown cyan darkgray gray green halfbright 
+                lightblue lightcyan lightgray lightgreen lightmagenta lightred
+                magenta red yellow )
+
+ts_init_subtest "names"
+    for n in "${COLOR_NAMES[@]}"; do
+        $TS_CMD_COLUMN --table --color=always --table-column "name=COL1,color=${n}" \
+            "$TS_SELF"/files/table >> "$TS_OUTPUT" 2>> "$TS_ERRLOG"
+    done
+ts_finalize_subtest
+
+ts_init_subtest "header-only"
+    for n in "${COLOR_NAMES[@]}"; do
+        $TS_CMD_COLUMN --table --color=always --table-column "name=COL1,headercolor=${n}" \
+            "$TS_SELF"/files/table >> "$TS_OUTPUT" 2>> "$TS_ERRLOG"
+    done
+ts_finalize_subtest
+
+ts_init_subtest "ansi-esc-seq"
+    for s in "7;37" "1;33" "3;31" "9;35" "1;4;31;45" "2;32;46" "4;38;5;123"; do
+        $TS_CMD_COLUMN --table --color=always --table-column "name=COL1,color=${s}" \
+            "$TS_SELF"/files/table >> "$TS_OUTPUT" 2>> "$TS_ERRLOG"
+    done
+ts_finalize_subtest
+
+
+ts_init_subtest "colorscheme"
+    XDG_CONFIG_HOME="$TS_SELF/files" $TS_CMD_COLUMN --table --color=always \
+        --table-colorscheme test --table-column "name=COL1,colorkey=cols,headercolorkey=header" \
+        "$TS_SELF"/files/table >> "$TS_OUTPUT" 2>> "$TS_ERRLOG"
+ts_finalize_subtest
+
+
+ts_finalize
diff --git a/tests/ts/column/files/terminal-colors.d/test.scheme b/tests/ts/column/files/terminal-colors.d/test.scheme
new file mode 100644 (file)
index 0000000..5194780
--- /dev/null
@@ -0,0 +1,2 @@
+cols blue
+header 1;4;31
index 00e880e6162664a003239aceb550386dfaa20f93..d37f87efd4b612c34e88b9c3f428278905df4e5b 100644 (file)
@@ -102,7 +102,7 @@ struct column_control {
                header_repeat,
                header_as_columns,      /* --table-header-as-columns */
                hide_unnamed,
-               maxout : 1,
+               maxout,
                keep_empty_lines,       /* --keep-empty-lines */
                tab_noheadings,
                use_spaces;