|
820 | 820 | <span id="815">815</span>
|
821 | 821 | <span id="816">816</span>
|
822 | 822 | <span id="817">817</span>
|
| 823 | +<span id="818">818</span> |
| 824 | +<span id="819">819</span> |
| 825 | +<span id="820">820</span> |
| 826 | +<span id="821">821</span> |
| 827 | +<span id="822">822</span> |
| 828 | +<span id="823">823</span> |
| 829 | +<span id="824">824</span> |
| 830 | +<span id="825">825</span> |
| 831 | +<span id="826">826</span> |
| 832 | +<span id="827">827</span> |
| 833 | +<span id="828">828</span> |
| 834 | +<span id="829">829</span> |
| 835 | +<span id="830">830</span> |
| 836 | +<span id="831">831</span> |
| 837 | +<span id="832">832</span> |
| 838 | +<span id="833">833</span> |
| 839 | +<span id="834">834</span> |
| 840 | +<span id="835">835</span> |
823 | 841 | </pre><pre class="rust"><code><span class="comment">// This file is part of the uutils coreutils package.</span>
|
824 | 842 | <span class="comment">//</span>
|
825 | 843 | <span class="comment">// (c) Fangxu Hu <framlog@gmail.com></span>
|
|
834 | 852 | <span class="kw">mod</span> <span class="ident">table</span>;
|
835 | 853 |
|
836 | 854 | <span class="kw">use</span> <span class="ident">blocks</span>::{<span class="ident">HumanReadable</span>, <span class="ident">SizeFormat</span>};
|
| 855 | +<span class="kw">use</span> <span class="ident">table::HeaderMode</span>; |
837 | 856 | <span class="kw">use</span> <span class="ident">uucore::display::Quotable</span>;
|
838 | 857 | <span class="kw">use</span> <span class="ident">uucore::error</span>::{<span class="ident">UError</span>, <span class="ident">UResult</span>, <span class="ident">USimpleError</span>};
|
839 | 858 | <span class="kw">use</span> <span class="ident">uucore::fsext</span>::{<span class="ident">read_fs_list</span>, <span class="ident">MountInfo</span>};
|
|
894 | 913 | <span class="ident">show_all_fs</span>: <span class="ident">bool</span>,
|
895 | 914 | <span class="ident">size_format</span>: <span class="ident">SizeFormat</span>,
|
896 | 915 | <span class="ident">block_size</span>: <span class="ident">BlockSize</span>,
|
| 916 | + <span class="ident">header_mode</span>: <span class="ident">HeaderMode</span>, |
897 | 917 |
|
898 | 918 | <span class="doccomment">/// Optional list of filesystem types to include in the output table.</span>
|
899 | 919 | <span class="doccomment">///</span>
|
|
921 | 941 | <span class="ident">show_all_fs</span>: <span class="ident">Default::default</span>(),
|
922 | 942 | <span class="ident">block_size</span>: <span class="ident">Default::default</span>(),
|
923 | 943 | <span class="ident">size_format</span>: <span class="ident">Default::default</span>(),
|
| 944 | + <span class="ident">header_mode</span>: <span class="ident">Default::default</span>(), |
924 | 945 | <span class="ident">include</span>: <span class="ident">Default::default</span>(),
|
925 | 946 | <span class="ident">exclude</span>: <span class="ident">Default::default</span>(),
|
926 | 947 | <span class="ident">show_total</span>: <span class="ident">Default::default</span>(),
|
|
998 | 1019 | ),
|
999 | 1020 | <span class="ident">ParseSizeError::ParseFailure</span>(<span class="ident">s</span>) => <span class="ident">OptionsError::InvalidBlockSize</span>(<span class="ident">s</span>),
|
1000 | 1021 | })<span class="question-mark">?</span>,
|
| 1022 | + <span class="ident">header_mode</span>: { |
| 1023 | + <span class="kw">if</span> <span class="ident">matches</span>.<span class="ident">is_present</span>(<span class="ident">OPT_HUMAN_READABLE_BINARY</span>) |
| 1024 | + <span class="op">|</span><span class="op">|</span> <span class="ident">matches</span>.<span class="ident">is_present</span>(<span class="ident">OPT_HUMAN_READABLE_DECIMAL</span>) |
| 1025 | + { |
| 1026 | + <span class="ident">HeaderMode::HumanReadable</span> |
| 1027 | + } <span class="kw">else</span> <span class="kw">if</span> <span class="ident">matches</span>.<span class="ident">is_present</span>(<span class="ident">OPT_PORTABILITY</span>) { |
| 1028 | + <span class="ident">HeaderMode::PosixPortability</span> |
| 1029 | + <span class="comment">// is_present() doesn't work here, it always returns true because OPT_OUTPUT has</span> |
| 1030 | + <span class="comment">// default values and hence is always present</span> |
| 1031 | + } <span class="kw">else</span> <span class="kw">if</span> <span class="ident">matches</span>.<span class="ident">occurrences_of</span>(<span class="ident">OPT_OUTPUT</span>) <span class="op">></span> <span class="number">0</span> { |
| 1032 | + <span class="ident">HeaderMode::Output</span> |
| 1033 | + } <span class="kw">else</span> { |
| 1034 | + <span class="ident">HeaderMode::Default</span> |
| 1035 | + } |
| 1036 | + }, |
1001 | 1037 | <span class="ident">size_format</span>: {
|
1002 | 1038 | <span class="kw">if</span> <span class="ident">matches</span>.<span class="ident">is_present</span>(<span class="ident">OPT_HUMAN_READABLE_BINARY</span>) {
|
1003 | 1039 | <span class="ident">SizeFormat::HumanReadable</span>(<span class="ident">HumanReadable::Binary</span>)
|
|
0 commit comments