Skip to content

Commit 2c2aa3b

Browse files
committed
deploy: c249eba
1 parent b3da12b commit 2c2aa3b

24 files changed

+181
-51
lines changed

dev/search-index.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dev/src/uu_basename/basename.rs.html

+34
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,23 @@
150150
<span id="145">145</span>
151151
<span id="146">146</span>
152152
<span id="147">147</span>
153+
<span id="148">148</span>
154+
<span id="149">149</span>
155+
<span id="150">150</span>
156+
<span id="151">151</span>
157+
<span id="152">152</span>
158+
<span id="153">153</span>
159+
<span id="154">154</span>
160+
<span id="155">155</span>
161+
<span id="156">156</span>
162+
<span id="157">157</span>
163+
<span id="158">158</span>
164+
<span id="159">159</span>
165+
<span id="160">160</span>
166+
<span id="161">161</span>
167+
<span id="162">162</span>
168+
<span id="163">163</span>
169+
<span id="164">164</span>
153170
</pre><pre class="rust"><code><span class="comment">// This file is part of the uutils coreutils package.</span>
154171
<span class="comment">//</span>
155172
<span class="comment">// (c) Jimmy Lu &lt;jimmy.lu.2011@gmail.com&gt;</span>
@@ -183,6 +200,23 @@
183200
<span class="kw">let</span> <span class="ident">args</span> <span class="op">=</span> <span class="ident">args</span>
184201
.<span class="ident">collect_str</span>(<span class="ident">InvalidEncodingHandling::ConvertLossy</span>)
185202
.<span class="ident">accept_any</span>();
203+
204+
<span class="comment">// Since options have to go before names,</span>
205+
<span class="comment">// if the first argument is not an option, then there is no option,</span>
206+
<span class="comment">// and that implies there is exactly one name (no option =&gt; no -a option),</span>
207+
<span class="comment">// so simple format is used</span>
208+
<span class="kw">if</span> <span class="ident">args</span>.<span class="ident">len</span>() <span class="op">&gt;</span> <span class="number">1</span> <span class="op">&amp;&amp;</span> <span class="op">!</span><span class="ident">args</span>[<span class="number">1</span>].<span class="ident">starts_with</span>(<span class="string">&#39;-&#39;</span>) {
209+
<span class="kw">if</span> <span class="ident">args</span>.<span class="ident">len</span>() <span class="op">&gt;</span> <span class="number">3</span> {
210+
<span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="ident">UUsageError::new</span>(
211+
<span class="number">1</span>,
212+
<span class="macro">format!</span>(<span class="string">&quot;extra operand {}&quot;</span>, <span class="ident">args</span>[<span class="number">3</span>].<span class="ident">to_string</span>().<span class="ident">quote</span>()),
213+
));
214+
}
215+
<span class="kw">let</span> <span class="ident">suffix</span> <span class="op">=</span> <span class="kw">if</span> <span class="ident">args</span>.<span class="ident">len</span>() <span class="op">&gt;</span> <span class="number">2</span> { <span class="ident">args</span>[<span class="number">2</span>].<span class="ident">as_ref</span>() } <span class="kw">else</span> { <span class="string">&quot;&quot;</span> };
216+
<span class="macro">println!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">basename</span>(<span class="kw-2">&amp;</span><span class="ident">args</span>[<span class="number">1</span>], <span class="ident">suffix</span>));
217+
<span class="kw">return</span> <span class="prelude-val">Ok</span>(());
218+
}
219+
186220
<span class="comment">//</span>
187221
<span class="comment">// Argument parsing</span>
188222
<span class="comment">//</span>

dev/src/uu_nice/nice.rs.html

+2-6
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,6 @@
126126
<span id="121">121</span>
127127
<span id="122">122</span>
128128
<span id="123">123</span>
129-
<span id="124">124</span>
130-
<span id="125">125</span>
131129
</pre><pre class="rust"><code><span class="comment">// * This file is part of the uutils coreutils package.</span>
132130
<span class="comment">// *</span>
133131
<span class="comment">// * (c) Alex Lyon &lt;arcterus@mail.com&gt;</span>
@@ -167,10 +165,8 @@
167165
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">uumain</span>(<span class="ident">args</span>: <span class="kw">impl</span> <span class="ident">uucore::Args</span>) -&gt; <span class="ident">UResult</span><span class="op">&lt;</span>()<span class="op">&gt;</span> {
168166
<span class="kw">let</span> <span class="ident">matches</span> <span class="op">=</span> <span class="ident">uu_app</span>().<span class="ident">try_get_matches_from</span>(<span class="ident">args</span>).<span class="ident">with_exit_code</span>(<span class="number">125</span>)<span class="question-mark">?</span>;
169167

170-
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">niceness</span> <span class="op">=</span> <span class="kw">unsafe</span> {
171-
<span class="ident">nix::errno::Errno::clear</span>();
172-
<span class="ident">libc::getpriority</span>(<span class="ident">PRIO_PROCESS</span>, <span class="number">0</span>)
173-
};
168+
<span class="ident">nix::errno::Errno::clear</span>();
169+
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">niceness</span> <span class="op">=</span> <span class="kw">unsafe</span> { <span class="ident">libc::getpriority</span>(<span class="ident">PRIO_PROCESS</span>, <span class="number">0</span>) };
174170
<span class="kw">if</span> <span class="ident">Error::last_os_error</span>().<span class="ident">raw_os_error</span>().<span class="ident">unwrap</span>() <span class="op">!</span><span class="op">=</span> <span class="number">0</span> {
175171
<span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="ident">USimpleError::new</span>(
176172
<span class="number">125</span>,

dev/src/uu_wc/count_fast.rs.html

+60
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,36 @@
139139
<span id="134">134</span>
140140
<span id="135">135</span>
141141
<span id="136">136</span>
142+
<span id="137">137</span>
143+
<span id="138">138</span>
144+
<span id="139">139</span>
145+
<span id="140">140</span>
146+
<span id="141">141</span>
147+
<span id="142">142</span>
148+
<span id="143">143</span>
149+
<span id="144">144</span>
150+
<span id="145">145</span>
151+
<span id="146">146</span>
152+
<span id="147">147</span>
153+
<span id="148">148</span>
154+
<span id="149">149</span>
155+
<span id="150">150</span>
156+
<span id="151">151</span>
157+
<span id="152">152</span>
158+
<span id="153">153</span>
159+
<span id="154">154</span>
160+
<span id="155">155</span>
161+
<span id="156">156</span>
162+
<span id="157">157</span>
163+
<span id="158">158</span>
164+
<span id="159">159</span>
165+
<span id="160">160</span>
166+
<span id="161">161</span>
167+
<span id="162">162</span>
168+
<span id="163">163</span>
169+
<span id="164">164</span>
170+
<span id="165">165</span>
171+
<span id="166">166</span>
142172
</pre><pre class="rust"><code><span class="kw">use</span> <span class="ident"><span class="kw">crate</span>::word_count::WordCount</span>;
143173

144174
<span class="kw">use</span> <span class="ident"><span class="kw">super</span>::WordCountable</span>;
@@ -275,6 +305,36 @@
275305
}
276306
}
277307
}
308+
309+
<span class="doccomment">/// Returns a WordCount that counts the number of Unicode characters encoded in UTF-8 read via a Reader.</span>
310+
<span class="doccomment">///</span>
311+
<span class="doccomment">/// This corresponds to the `-m` command line flag to wc.</span>
312+
<span class="doccomment">///</span>
313+
<span class="doccomment">/// # Arguments</span>
314+
<span class="doccomment">///</span>
315+
<span class="doccomment">/// * `R` - A Reader from which the UTF-8 stream will be read.</span>
316+
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn</span> <span class="ident">count_chars_fast</span><span class="op">&lt;</span><span class="ident">R</span>: <span class="ident">Read</span><span class="op">&gt;</span>(<span class="ident">handle</span>: <span class="kw-2">&amp;mut</span> <span class="ident">R</span>) -&gt; (<span class="ident">WordCount</span>, <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">io::Error</span><span class="op">&gt;</span>) {
317+
<span class="doccomment">/// Mask of the value bits of a continuation byte</span>
318+
<span class="kw">const</span> <span class="ident">CONT_MASK</span>: <span class="ident">u8</span> <span class="op">=</span> <span class="number">0b0011_1111u8</span>;
319+
<span class="doccomment">/// Value of the tag bits (tag mask is !CONT_MASK) of a continuation byte</span>
320+
<span class="kw">const</span> <span class="ident">TAG_CONT_U8</span>: <span class="ident">u8</span> <span class="op">=</span> <span class="number">0b1000_0000u8</span>;
321+
322+
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">total</span> <span class="op">=</span> <span class="ident">WordCount::default</span>();
323+
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">buf</span> <span class="op">=</span> [<span class="number">0</span>; <span class="ident">BUF_SIZE</span>];
324+
<span class="kw">loop</span> {
325+
<span class="kw">match</span> <span class="ident">handle</span>.<span class="ident">read</span>(<span class="kw-2">&amp;mut</span> <span class="ident">buf</span>) {
326+
<span class="prelude-val">Ok</span>(<span class="number">0</span>) =&gt; <span class="kw">return</span> (<span class="ident">total</span>, <span class="prelude-val">None</span>),
327+
<span class="prelude-val">Ok</span>(<span class="ident">n</span>) =&gt; {
328+
<span class="ident">total</span>.<span class="ident">chars</span> <span class="op">+</span><span class="op">=</span> <span class="ident">buf</span>[..<span class="ident">n</span>]
329+
.<span class="ident">iter</span>()
330+
.<span class="ident">filter</span>(<span class="op">|</span><span class="op">&amp;&amp;</span><span class="ident">byte</span><span class="op">|</span> (<span class="ident">byte</span> <span class="op">&amp;</span> <span class="op">!</span><span class="ident">CONT_MASK</span>) <span class="op">!</span><span class="op">=</span> <span class="ident">TAG_CONT_U8</span>)
331+
.<span class="ident">count</span>();
332+
}
333+
<span class="prelude-val">Err</span>(<span class="kw-2">ref</span> <span class="ident">e</span>) <span class="kw">if</span> <span class="ident">e</span>.<span class="ident">kind</span>() <span class="op">==</span> <span class="ident">ErrorKind::Interrupted</span> =&gt; <span class="kw">continue</span>,
334+
<span class="prelude-val">Err</span>(<span class="ident">e</span>) =&gt; <span class="kw">return</span> (<span class="ident">total</span>, <span class="prelude-val">Some</span>(<span class="ident">e</span>)),
335+
}
336+
}
337+
}
278338
</code></pre></div>
279339
</section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="uu_wc" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.62.1 (e092d0b6b 2022-07-16)" ></div>
280340
</body></html>

dev/src/uu_wc/wc.rs.html

+3-1
Original file line numberDiff line numberDiff line change
@@ -624,6 +624,7 @@
624624
<span id="619">619</span>
625625
<span id="620">620</span>
626626
<span id="621">621</span>
627+
<span id="622">622</span>
627628
</pre><pre class="rust"><code><span class="comment">// * This file is part of the uutils coreutils package.</span>
628629
<span class="comment">// *</span>
629630
<span class="comment">// * (c) Boden Garman &lt;bpgarman@gmail.com&gt;</span>
@@ -639,7 +640,7 @@
639640
<span class="kw">mod</span> <span class="ident">count_fast</span>;
640641
<span class="kw">mod</span> <span class="ident">countable</span>;
641642
<span class="kw">mod</span> <span class="ident">word_count</span>;
642-
<span class="kw">use</span> <span class="ident">count_fast</span>::{<span class="ident">count_bytes_and_lines_fast</span>, <span class="ident">count_bytes_fast</span>};
643+
<span class="kw">use</span> <span class="ident">count_fast</span>::{<span class="ident">count_bytes_and_lines_fast</span>, <span class="ident">count_bytes_fast</span>, <span class="ident">count_chars_fast</span>};
643644
<span class="kw">use</span> <span class="ident">countable::WordCountable</span>;
644645
<span class="kw">use</span> <span class="ident">unicode_width::UnicodeWidthChar</span>;
645646
<span class="kw">use</span> <span class="ident">utf8</span>::{<span class="ident">BufReadDecoder</span>, <span class="ident">BufReadDecoderError</span>};
@@ -941,6 +942,7 @@
941942
) {
942943
<span class="comment">// Specialize scanning loop to improve the performance.</span>
943944
(<span class="bool-val">false</span>, <span class="bool-val">false</span>, <span class="bool-val">false</span>, <span class="bool-val">false</span>, <span class="bool-val">false</span>) =&gt; <span class="macro">unreachable!</span>(),
945+
(<span class="bool-val">false</span>, <span class="bool-val">true</span>, <span class="bool-val">false</span>, <span class="bool-val">false</span>, <span class="bool-val">false</span>) =&gt; <span class="ident">count_chars_fast</span>(<span class="kw-2">&amp;mut</span> <span class="ident">reader</span>),
944946
(<span class="bool-val">true</span>, <span class="bool-val">false</span>, <span class="bool-val">false</span>, <span class="bool-val">false</span>, <span class="bool-val">false</span>) =&gt; {
945947
<span class="comment">// Fast path when only show_bytes is true.</span>
946948
<span class="kw">let</span> (<span class="ident">bytes</span>, <span class="ident">error</span>) <span class="op">=</span> <span class="ident">count_bytes_fast</span>(<span class="kw-2">&amp;mut</span> <span class="ident">reader</span>);

dev/src/uucore/features/fs.rs.html

+19-9
Original file line numberDiff line numberDiff line change
@@ -630,6 +630,11 @@
630630
<span id="625">625</span>
631631
<span id="626">626</span>
632632
<span id="627">627</span>
633+
<span id="628">628</span>
634+
<span id="629">629</span>
635+
<span id="630">630</span>
636+
<span id="631">631</span>
637+
<span id="632">632</span>
633638
</pre><pre class="rust"><code><span class="comment">// This file is part of the uutils coreutils package.</span>
634639
<span class="comment">//</span>
635640
<span class="comment">// (c) Joseph Crail &lt;jbcrail@gmail.com&gt;</span>
@@ -783,6 +788,7 @@
783788
}
784789
}
785790

791+
<span class="doccomment">/// resolve a relative path</span>
786792
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">resolve_relative_path</span>(<span class="ident">path</span>: <span class="kw-2">&amp;</span><span class="ident">Path</span>) -&gt; <span class="ident">Cow</span><span class="op">&lt;</span><span class="ident">Path</span><span class="op">&gt;</span> {
787793
<span class="kw">if</span> <span class="ident">path</span>.<span class="ident">components</span>().<span class="ident">all</span>(<span class="op">|</span><span class="ident">e</span><span class="op">|</span> <span class="ident">e</span> <span class="op">!</span><span class="op">=</span> <span class="ident">Component::ParentDir</span>) {
788794
<span class="kw">return</span> <span class="ident">path</span>.<span class="ident">into</span>();
@@ -832,10 +838,12 @@
832838
<span class="ident">Logical</span>,
833839
}
834840

835-
<span class="comment">// copied from https://github.com/rust-lang/cargo/blob/2e4cfc2b7d43328b207879228a2ca7d427d188bb/src/cargo/util/paths.rs#L65-L90</span>
836-
<span class="comment">// both projects are MIT https://github.com/rust-lang/cargo/blob/master/LICENSE-MIT</span>
837-
<span class="comment">// for std impl progress see rfc https://github.com/rust-lang/rfcs/issues/2208</span>
838-
<span class="comment">// replace this once that lands</span>
841+
<span class="doccomment">/// Normalize a path by removing relative information</span>
842+
<span class="doccomment">/// For example, convert &#39;bar/../foo/bar.txt&#39; =&gt; &#39;foo/bar.txt&#39;</span>
843+
<span class="doccomment">/// copied from `&lt;https://github.com/rust-lang/cargo/blob/2e4cfc2b7d43328b207879228a2ca7d427d188bb/src/cargo/util/paths.rs#L65-L90&gt;`</span>
844+
<span class="doccomment">/// both projects are MIT `&lt;https://github.com/rust-lang/cargo/blob/master/LICENSE-MIT&gt;`</span>
845+
<span class="doccomment">/// for std impl progress see rfc `&lt;https://github.com/rust-lang/rfcs/issues/2208&gt;`</span>
846+
<span class="doccomment">/// replace this once that lands</span>
839847
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">normalize_path</span>(<span class="ident">path</span>: <span class="kw-2">&amp;</span><span class="ident">Path</span>) -&gt; <span class="ident">PathBuf</span> {
840848
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">components</span> <span class="op">=</span> <span class="ident">path</span>.<span class="ident">components</span>().<span class="ident">peekable</span>();
841849
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">ret</span> <span class="op">=</span> <span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">c</span> @ <span class="ident">Component::Prefix</span>(..)) <span class="op">=</span> <span class="ident">components</span>.<span class="ident">peek</span>().<span class="ident">cloned</span>() {
@@ -1025,12 +1033,15 @@
10251033
}
10261034

10271035
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">unix</span>)]</span>
1036+
<span class="doccomment">/// Display the permissions of a file</span>
1037+
<span class="doccomment">/// On non unix like system, just show &#39;----------&#39;</span>
10281038
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">display_permissions</span>(<span class="ident">metadata</span>: <span class="kw-2">&amp;</span><span class="ident">fs::Metadata</span>, <span class="ident">display_file_type</span>: <span class="ident">bool</span>) -&gt; <span class="ident">String</span> {
10291039
<span class="kw">let</span> <span class="ident">mode</span>: <span class="ident">mode_t</span> <span class="op">=</span> <span class="ident">metadata</span>.<span class="ident">mode</span>() <span class="kw">as</span> <span class="ident">mode_t</span>;
10301040
<span class="ident">display_permissions_unix</span>(<span class="ident">mode</span>, <span class="ident">display_file_type</span>)
10311041
}
10321042

10331043
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">unix</span>)]</span>
1044+
<span class="doccomment">/// Display the permissions of a file on a unix like system</span>
10341045
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">display_permissions_unix</span>(<span class="ident">mode</span>: <span class="ident">mode_t</span>, <span class="ident">display_file_type</span>: <span class="ident">bool</span>) -&gt; <span class="ident">String</span> {
10351046
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">result</span>;
10361047
<span class="kw">if</span> <span class="ident">display_file_type</span> {
@@ -1095,11 +1106,10 @@
10951106
<span class="ident">result</span>
10961107
}
10971108

1098-
<span class="comment">// For some programs like install or mkdir, dir/. can be provided</span>
1099-
<span class="comment">// Special case to match GNU&#39;s behavior:</span>
1100-
<span class="comment">// install -d foo/. should work and just create foo/</span>
1101-
<span class="comment">// std::fs::create_dir(&quot;foo/.&quot;); fails in pure Rust</span>
1102-
<span class="comment">// See also mkdir.rs for another occurrence of this</span>
1109+
<span class="doccomment">/// For some programs like install or mkdir, dir/. can be provided</span>
1110+
<span class="doccomment">/// Special case to match GNU&#39;s behavior:</span>
1111+
<span class="doccomment">/// install -d foo/. should work and just create foo/</span>
1112+
<span class="doccomment">/// std::fs::create_dir(&quot;foo/.&quot;); fails in pure Rust</span>
11031113
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">dir_strip_dot_for_creation</span>(<span class="ident">path</span>: <span class="kw-2">&amp;</span><span class="ident">Path</span>) -&gt; <span class="ident">PathBuf</span> {
11041114
<span class="kw">if</span> <span class="ident">path</span>.<span class="ident">to_string_lossy</span>().<span class="ident">ends_with</span>(<span class="string">&quot;/.&quot;</span>) {
11051115
<span class="comment">// Do a simple dance to strip the &quot;/.&quot;</span>

0 commit comments

Comments
 (0)