Commit graph

6313 commits

Author SHA1 Message Date
Sylvestre Ledru
811698b658
Merge pull request #2712 from jfinkels/head-take-lines-reader
head: use std::io::copy() with TakeLines reader
2021-10-23 17:53:44 +02:00
Sylvestre Ledru
803c05cb4a
Merge pull request #2720 from Smicry/master
head: use UResult in util
2021-10-23 17:53:35 +02:00
Jeffrey Finkelstein
858b0a9e9f head: use std::io::copy() with TakeLines reader
Replace the custom `split::walk_lines()` function with a call to
`std::io::copy()`, using a new `TakeLines` reader as the source and
`stdout` as the destination. The `TakeLines` reader is an adaptor that
scans the bytes being read for line ending characters and stops the
reading after a given number of lines has been read (similar to the
`std::io::Take` adaptor).

This change

* makes the `read_n_lines()` function more concise,
* allows it to mirror the implementation of `read_n_bytes()`,
* increases the speed of `head -n NUM`.
2021-10-20 20:59:44 -04:00
Smicry
b89b11f5da fix lint error 2021-10-21 00:22:36 +08:00
Smicry
396fa7a9b4 fix lint error 2021-10-21 00:13:28 +08:00
Smicry
2cbc2aa59b head: use UResult in util 2021-10-20 23:49:04 +08:00
Sylvestre Ledru
c43436d50a
Merge pull request #2710 from jfinkels/tests-add-missing-assert-placeholder
tests: add template string to assert! statements
2021-10-19 20:53:35 +02:00
Sylvestre Ledru
ede77c6099
Merge pull request #2711 from jfinkels/hashsum-crlf-windows-across-blocks
hashsum: fix handling of \r\n in Windows text mode
2021-10-19 20:50:16 +02:00
Sylvestre Ledru
c65dc1ee7b
Merge pull request #2718 from jhscheer/test_common_util
tests/util: add more wrappers for common file handling tasks
2021-10-19 20:48:55 +02:00
Sylvestre Ledru
cc82303804
Merge pull request #2717 from Smicry/master
add tail usage
2021-10-19 17:39:18 +02:00
Jan Scheer
bfa8a2a068
tests/util: add more wrappers for common file handling tasks
truncate, rename, remove, copy, rmdir, etc.
2021-10-19 01:12:12 +02:00
Jan Scheer
4cf26f0fc2
Merge branch 'master' into clippy_warnings 2021-10-19 00:48:38 +02:00
Jan Scheer
7c5395a27a
build.rs: silence clippy warnings 2021-10-18 23:47:09 +02:00
Smicry
cb34b660cb add tail usage 2021-10-19 00:15:17 +08:00
James Robson
0b2483452a Add symbolic mode support to mkdir 2021-10-16 12:57:55 +01:00
Sylvestre Ledru
40a895f79d
Merge pull request #2705 from adamreichold/tac-mmap
Minor improvements to tac
2021-10-12 21:51:38 +02:00
Sylvestre Ledru
0a14fba3db
Merge pull request #2713 from jfinkels/head-default-options
head: use default() instead of new() for options
2021-10-12 21:47:18 +02:00
Jeffrey Finkelstein
429e1d0f12 head: use default() instead of new() for options
Remove the `HeadOptions::new()` function in favor of the `Default`
implementation. Both were implemented, but only `Default::default()` is
needed.
2021-10-11 18:30:03 -04:00
Jeffrey Finkelstein
d1e02665bf fixup! hashsum: fix handling of \r\n in Windows text mode 2021-10-11 18:18:29 -04:00
Jeffrey Finkelstein
c50b5ac110 hashsum: fix handling of \r\n in Windows text mode
Fix a bug in which "\r\n" was not being replaced with "\n" in text mode
on Windows. This would happen only if one call to `write()` ended with a
"\r" character and the next call to `write()` started with a "\n"
character. This commit fixes the bug by buffering a "\r" character if it
appears at the end of one call to `write()` and only writing if the
first character in the next call to `write()` is *not* a "\n" character.

Fixes issue #2681.
2021-10-11 17:36:08 -04:00
Jeffrey Finkelstein
9e21d26b7c tests: add template string to assert! statements
Add missing "{}" template strings to `assert!()` statements.
2021-10-11 16:51:14 -04:00
Adam Reichold
86d22aaa1d tac: Add a simple how to for benchmarking 2021-10-10 14:29:37 +02:00
Adam Reichold
c526df57b8 tac: opportunistically use memory maps
Since tac must read its input files completely to start processing them
from the end, it is particularly suited to use memory maps to benefit
from the page cache maintained by the operating systems to bring the
necessary data into memory as required.

This does also include situations where the input is stdin, but not via
a pipe but for example a file descriptor set up by the user's shell
through an input redirection.
2021-10-10 13:20:31 +02:00
Adam Reichold
4eab275235 tac: buffer stdout more coarsely than line-based following the GNU tac implementation. 2021-10-10 13:20:31 +02:00
Adam Reichold
28b04fa899 tac: do not use a buffered read as fs::read is more efficient and io::Stdin is buffered internally 2021-10-10 13:20:31 +02:00
Adam Reichold
0d583754ca tac: lock stdout only once instead for each line 2021-10-10 13:20:31 +02:00
Adam Reichold
e041fda51d tac: do not re-compile regular expression for each file 2021-10-10 13:20:31 +02:00
Sylvestre Ledru
11ca4be1aa
Merge pull request #2707 from sylvestre/more-clippy
More clippy fixes
2021-10-10 12:46:35 +02:00
Sylvestre Ledru
51613c02ec add a word to ignore... 2021-10-10 12:16:01 +02:00
Sylvestre Ledru
788618e9de
Merge pull request #2708 from adamreichold/fix-pr-stdout-lock
pr: fix locking of stdout
2021-10-10 12:15:23 +02:00
Adam Reichold
b4864d760e pr: fix locking of stdout 2021-10-10 11:33:46 +02:00
Sylvestre Ledru
54ae2fa64a
Merge pull request #2689 from jhscheer/fix_chroot_2687
`chroot`: quick fix for #2687
2021-10-10 10:15:22 +02:00
Sylvestre Ledru
00de952592 Fix various 'if_then_panic' clippy warnings 2021-10-10 09:57:39 +02:00
Sylvestre Ledru
32ec3f75ee
Merge pull request #2706 from chadbrewbaker/master
Fix need for ssh keys
2021-10-10 09:41:34 +02:00
Chad Brewbaker
a9bfd5df06
Fix need for ssh keys
Github now mandates git ssh keys instead of username/password. I modified the download instructions to remove the need for ssh authentication.
2021-10-09 23:01:05 -05:00
Jan Scheer
3e985cb029
Merge branch 'master' into fix_chroot_2687 2021-10-10 01:04:25 +02:00
Jan Scheer
3300d80e3f
tests: silence clippy warnings for unused_imports 2021-10-10 00:52:18 +02:00
Sylvestre Ledru
080d3d2fa7
Merge pull request #2697 from vulppine/cp-uresult
cp: uumain returns UResult, implements UError for Error enum in cp.rs
2021-10-09 11:03:33 +02:00
Sylvestre Ledru
03a037e8ea
Merge pull request #2701 from vulppine/seq-hex
seq: Adds hexadecimal integer parsing
2021-10-09 11:01:42 +02:00
Sylvestre Ledru
ba53844b19
Merge pull request #2704 from thomasqueirozb/users_uresult
Users: use UResult | #[macro_use] refactor
2021-10-06 21:29:21 +02:00
vulppine
cddd40b4e1 seq: Updates hex parse readability, adds hex test 2021-10-05 18:41:28 -07:00
Thomas Queiroz
e2fa6f9412
users: use UResult 2021-10-04 19:53:46 -03:00
Thomas Queiroz
00c9710206
uucore_procs+uu: specify uucore::show_error
This allows crates to use `#[uucore_procs::gen_uumain]` without `use uucore::show_error` or

    #[macro_use]
    extern crate uucore;

Removed unecessary usage
2021-10-04 19:53:16 -03:00
vulppine
4e1f945e86 seq: Adds testing for large hex numbers 2021-10-03 09:50:49 -07:00
Sylvestre Ledru
368fa54520
Merge pull request #2703 from thomasqueirozb/base_uresult
base32 + base64 + basenc: use UResult
2021-10-03 17:34:56 +02:00
Sylvestre Ledru
20becf8166
Merge pull request #2699 from jfinkels/lint-fixes
ls,more,csplit,sort,od,dd: fix clippy complaints
2021-10-03 10:35:13 +02:00
Thomas Queiroz
b924774c8a
basenc: use UResult 2021-10-02 23:17:16 -03:00
Thomas Queiroz
f85ccf8e46
tests/base64: update test 2021-10-02 23:16:07 -03:00
Thomas Queiroz
452329ad19
base64: use UResult 2021-10-02 23:15:40 -03:00
Thomas Queiroz
051284de4c
tests/base32: update test 2021-10-02 23:12:42 -03:00