|
1023 | 1023 | <span id="1018">1018</span>
|
1024 | 1024 | <span id="1019">1019</span>
|
1025 | 1025 | <span id="1020">1020</span>
|
| 1026 | +<span id="1021">1021</span> |
| 1027 | +<span id="1022">1022</span> |
| 1028 | +<span id="1023">1023</span> |
| 1029 | +<span id="1024">1024</span> |
| 1030 | +<span id="1025">1025</span> |
| 1031 | +<span id="1026">1026</span> |
| 1032 | +<span id="1027">1027</span> |
| 1033 | +<span id="1028">1028</span> |
| 1034 | +<span id="1029">1029</span> |
| 1035 | +<span id="1030">1030</span> |
| 1036 | +<span id="1031">1031</span> |
| 1037 | +<span id="1032">1032</span> |
| 1038 | +<span id="1033">1033</span> |
1026 | 1039 | </pre><pre class="rust"><code><span class="comment">// This file is part of the uutils coreutils package.</span>
|
1027 | 1040 | <span class="comment">//</span>
|
1028 | 1041 | <span class="comment">// (c) Jian Zeng <anonymousknight96@gmail.com></span>
|
|
1496 | 1509 | }
|
1497 | 1510 |
|
1498 | 1511 | <span class="kw">fn</span> <span class="ident">new</span>(<span class="ident">matches</span>: <span class="kw-2">&</span><span class="ident">ArgMatches</span>) -> <span class="ident">UResult</span><span class="op"><</span><span class="self">Self</span><span class="op">></span> {
|
1499 |
| - <span class="kw">let</span> <span class="ident">files</span>: <span class="ident">Vec</span><span class="op"><</span><span class="ident">String</span><span class="op">></span> <span class="op">=</span> <span class="ident">matches</span> |
| 1512 | + <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">files</span>: <span class="ident">Vec</span><span class="op"><</span><span class="ident">String</span><span class="op">></span> <span class="op">=</span> <span class="ident">matches</span> |
1500 | 1513 | .<span class="ident">values_of</span>(<span class="ident">ARG_FILES</span>)
|
1501 | 1514 | .<span class="ident">map</span>(<span class="op">|</span><span class="ident">v</span><span class="op">|</span> <span class="ident">v</span>.<span class="ident">map</span>(<span class="ident">ToString::to_string</span>).<span class="ident">collect</span>())
|
1502 | 1515 | .<span class="ident">unwrap_or_default</span>();
|
1503 |
| - |
| 1516 | + <span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">unix</span>)]</span> |
| 1517 | + <span class="kw">if</span> <span class="ident">files</span>.<span class="ident">contains</span>(<span class="kw-2">&</span><span class="ident">String::from</span>(<span class="string">"-"</span>)) { |
| 1518 | + <span class="kw">let</span> <span class="ident">redirected_path</span> <span class="op">=</span> <span class="ident">Path::new</span>(<span class="string">"/dev/stdin"</span>) |
| 1519 | + .<span class="ident">canonicalize</span>() |
| 1520 | + .<span class="ident">expect</span>(<span class="string">"unable to canonicalize /dev/stdin"</span>) |
| 1521 | + .<span class="ident">into_os_string</span>() |
| 1522 | + .<span class="ident">into_string</span>() |
| 1523 | + .<span class="ident">unwrap</span>(); |
| 1524 | + <span class="kw">for</span> <span class="ident">file</span> <span class="kw">in</span> <span class="kw-2">&mut</span> <span class="ident">files</span> { |
| 1525 | + <span class="kw">if</span> <span class="ident">file</span> <span class="op">==</span> <span class="string">"-"</span> { |
| 1526 | + <span class="kw-2">*</span><span class="ident">file</span> <span class="op">=</span> <span class="ident">redirected_path</span>.<span class="ident">clone</span>(); |
| 1527 | + } |
| 1528 | + } |
| 1529 | + } |
1504 | 1530 | <span class="kw">let</span> <span class="ident">format_str</span> <span class="op">=</span> <span class="kw">if</span> <span class="ident">matches</span>.<span class="ident">is_present</span>(<span class="ident">options::PRINTF</span>) {
|
1505 | 1531 | <span class="ident">matches</span>
|
1506 | 1532 | .<span class="ident">value_of</span>(<span class="ident">options::PRINTF</span>)
|
|
0 commit comments