~nabijaczleweli/voreutils

ca75c05765b95f00854ddcf062e70cf3ada7163c — наб 24 days ago d6ea570
Add paste
219 files changed, 1215 insertions(+), 9 deletions(-)

M README.md
A cmd/paste.cpp
M include/vore-file
M lib/libstdbuf.cpp
A man/paste.1
M man/shred.1
M man/truncate.1
A tests/paste/data/ls-paste.1-1
A tests/paste/data/out/ls-paste.1-1
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1- -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1- - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1- - - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1- - - - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-dABCDEFG
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-dABCDEFG-
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-dABCDEFG- -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-dABCDEFG- - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-dABCDEFG- - - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-dABCDEFG- - - - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\0
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\0-
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\0- -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\0- - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\0- - - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\0- - - - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\t\n
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\t\n-
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\t\n- -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\t\n- - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\t\n- - - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\t\n- - - - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s- -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s- - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s- - - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s- - - - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-dABCDEFG
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-dABCDEFG-
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-dABCDEFG- -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-dABCDEFG- - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-dABCDEFG- - - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-dABCDEFG- - - - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\0
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\0-
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\0- -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\0- - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\0- - - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\0- - - - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\t\n
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\t\n-
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\t\n- -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\t\n- - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\t\n- - - -
A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\t\n- - - - -
A tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1
A tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-dABCDEFG
A tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-d\0
A tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-d\t\n
A tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-s
A tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-s-dABCDEFG
A tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-s-d\0
A tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-s-d\t\n
A tests/paste/data/out/ls-paste.1-1-
A tests/paste/data/out/ls-paste.1-1- -
A tests/paste/data/out/ls-paste.1-1- - -
A tests/paste/data/out/ls-paste.1-1- - - -
A tests/paste/data/out/ls-paste.1-1- - - - -
A tests/paste/data/out/ls-paste.1-1-dABCDEFG
A tests/paste/data/out/ls-paste.1-1-dABCDEFG-
A tests/paste/data/out/ls-paste.1-1-dABCDEFG- -
A tests/paste/data/out/ls-paste.1-1-dABCDEFG- - -
A tests/paste/data/out/ls-paste.1-1-dABCDEFG- - - -
A tests/paste/data/out/ls-paste.1-1-dABCDEFG- - - - -
A tests/paste/data/out/ls-paste.1-1-d\0
A tests/paste/data/out/ls-paste.1-1-d\0-
A tests/paste/data/out/ls-paste.1-1-d\0- -
A tests/paste/data/out/ls-paste.1-1-d\0- - -
A tests/paste/data/out/ls-paste.1-1-d\0- - - -
A tests/paste/data/out/ls-paste.1-1-d\0- - - - -
A tests/paste/data/out/ls-paste.1-1-d\t\n
A tests/paste/data/out/ls-paste.1-1-d\t\n-
A tests/paste/data/out/ls-paste.1-1-d\t\n- -
A tests/paste/data/out/ls-paste.1-1-d\t\n- - -
A tests/paste/data/out/ls-paste.1-1-d\t\n- - - -
A tests/paste/data/out/ls-paste.1-1-d\t\n- - - - -
A tests/paste/data/out/ls-paste.1-1-s
A tests/paste/data/out/ls-paste.1-1-s-
A tests/paste/data/out/ls-paste.1-1-s- -
A tests/paste/data/out/ls-paste.1-1-s- - -
A tests/paste/data/out/ls-paste.1-1-s- - - -
A tests/paste/data/out/ls-paste.1-1-s- - - - -
A tests/paste/data/out/ls-paste.1-1-s-dABCDEFG
A tests/paste/data/out/ls-paste.1-1-s-dABCDEFG-
A tests/paste/data/out/ls-paste.1-1-s-dABCDEFG- -
A tests/paste/data/out/ls-paste.1-1-s-dABCDEFG- - -
A tests/paste/data/out/ls-paste.1-1-s-dABCDEFG- - - -
A tests/paste/data/out/ls-paste.1-1-s-dABCDEFG- - - - -
A tests/paste/data/out/ls-paste.1-1-s-d\0
A tests/paste/data/out/ls-paste.1-1-s-d\0-
A tests/paste/data/out/ls-paste.1-1-s-d\0- -
A tests/paste/data/out/ls-paste.1-1-s-d\0- - -
A tests/paste/data/out/ls-paste.1-1-s-d\0- - - -
A tests/paste/data/out/ls-paste.1-1-s-d\0- - - - -
A tests/paste/data/out/ls-paste.1-1-s-d\t\n
A tests/paste/data/out/ls-paste.1-1-s-d\t\n-
A tests/paste/data/out/ls-paste.1-1-s-d\t\n- -
A tests/paste/data/out/ls-paste.1-1-s-d\t\n- - -
A tests/paste/data/out/ls-paste.1-1-s-d\t\n- - - -
A tests/paste/data/out/ls-paste.1-1-s-d\t\n- - - - -
A tests/paste/data/out/seq-10-paste.1-1
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1- -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1- - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1- - - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1- - - - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-dABCDEFG
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-dABCDEFG-
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-dABCDEFG- -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-dABCDEFG- - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-dABCDEFG- - - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-dABCDEFG- - - - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\0
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\0-
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\0- -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\0- - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\0- - - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\0- - - - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\t\n
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\t\n-
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\t\n- -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\t\n- - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\t\n- - - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\t\n- - - - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s- -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s- - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s- - - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s- - - - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-dABCDEFG
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-dABCDEFG-
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-dABCDEFG- -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-dABCDEFG- - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-dABCDEFG- - - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-dABCDEFG- - - - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\0
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\0-
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\0- -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\0- - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\0- - - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\0- - - - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\t\n
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\t\n-
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\t\n- -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\t\n- - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\t\n- - - -
A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\t\n- - - - -
A tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1
A tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-dABCDEFG
A tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-d\0
A tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-d\t\n
A tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-s
A tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-s-dABCDEFG
A tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-s-d\0
A tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-s-d\t\n
A tests/paste/data/out/seq-10-paste.1-1-
A tests/paste/data/out/seq-10-paste.1-1- -
A tests/paste/data/out/seq-10-paste.1-1- - -
A tests/paste/data/out/seq-10-paste.1-1- - - -
A tests/paste/data/out/seq-10-paste.1-1- - - - -
A tests/paste/data/out/seq-10-paste.1-1-dABCDEFG
A tests/paste/data/out/seq-10-paste.1-1-dABCDEFG-
A tests/paste/data/out/seq-10-paste.1-1-dABCDEFG- -
A tests/paste/data/out/seq-10-paste.1-1-dABCDEFG- - -
A tests/paste/data/out/seq-10-paste.1-1-dABCDEFG- - - -
A tests/paste/data/out/seq-10-paste.1-1-dABCDEFG- - - - -
A tests/paste/data/out/seq-10-paste.1-1-d\0
A tests/paste/data/out/seq-10-paste.1-1-d\0-
A tests/paste/data/out/seq-10-paste.1-1-d\0- -
A tests/paste/data/out/seq-10-paste.1-1-d\0- - -
A tests/paste/data/out/seq-10-paste.1-1-d\0- - - -
A tests/paste/data/out/seq-10-paste.1-1-d\0- - - - -
A tests/paste/data/out/seq-10-paste.1-1-d\t\n
A tests/paste/data/out/seq-10-paste.1-1-d\t\n-
A tests/paste/data/out/seq-10-paste.1-1-d\t\n- -
A tests/paste/data/out/seq-10-paste.1-1-d\t\n- - -
A tests/paste/data/out/seq-10-paste.1-1-d\t\n- - - -
A tests/paste/data/out/seq-10-paste.1-1-d\t\n- - - - -
A tests/paste/data/out/seq-10-paste.1-1-s
A tests/paste/data/out/seq-10-paste.1-1-s-
A tests/paste/data/out/seq-10-paste.1-1-s- -
A tests/paste/data/out/seq-10-paste.1-1-s- - -
A tests/paste/data/out/seq-10-paste.1-1-s- - - -
A tests/paste/data/out/seq-10-paste.1-1-s- - - - -
A tests/paste/data/out/seq-10-paste.1-1-s-dABCDEFG
A tests/paste/data/out/seq-10-paste.1-1-s-dABCDEFG-
A tests/paste/data/out/seq-10-paste.1-1-s-dABCDEFG- -
A tests/paste/data/out/seq-10-paste.1-1-s-dABCDEFG- - -
A tests/paste/data/out/seq-10-paste.1-1-s-dABCDEFG- - - -
A tests/paste/data/out/seq-10-paste.1-1-s-dABCDEFG- - - - -
A tests/paste/data/out/seq-10-paste.1-1-s-d\0
A tests/paste/data/out/seq-10-paste.1-1-s-d\0-
A tests/paste/data/out/seq-10-paste.1-1-s-d\0- -
A tests/paste/data/out/seq-10-paste.1-1-s-d\0- - -
A tests/paste/data/out/seq-10-paste.1-1-s-d\0- - - -
A tests/paste/data/out/seq-10-paste.1-1-s-d\0- - - - -
A tests/paste/data/out/seq-10-paste.1-1-s-d\t\n
A tests/paste/data/out/seq-10-paste.1-1-s-d\t\n-
A tests/paste/data/out/seq-10-paste.1-1-s-d\t\n- -
A tests/paste/data/out/seq-10-paste.1-1-s-d\t\n- - -
A tests/paste/data/out/seq-10-paste.1-1-s-d\t\n- - - -
A tests/paste/data/out/seq-10-paste.1-1-s-d\t\n- - - - -
A tests/paste/data/seq-10-paste.1-1
A tests/paste/test
M tests/sha1sum/test
M README.md => README.md +1 -1
@@ 68,7 68,7 @@ GNU coreutils provide the following 105 binaries, according to `dpkg -L coreutil
  [x] /usr/bin/nproc
  [ ] /usr/bin/numfmt
  [ ] /usr/bin/od
  [ ] /usr/bin/paste
  [x] /usr/bin/paste
  [ ] /usr/bin/pathchk
  [ ] /usr/bin/pinky
  [ ] /usr/bin/pr

A cmd/paste.cpp => cmd/paste.cpp +169 -0
@@ 0,0 1,169 @@
// SPDX-License-Identifier: 0BSD


#include <cstdio>
#include <cstring>
#include <errno.h>
#include <string>
#include <string_view>
#include <vector>
#include <vore-file>
#include <vore-getopt>
#include <vore-optarg>
#include <vore-print>


using namespace std::literals;


#define TRANSPOSE(in, from, to) \
									case from: \
										in.push_back(to); \
										break;


static constexpr const char * const default_files[] = {"-", nullptr};

enum class output_mode_t : bool { column, row };


int main(int argc, char * const * argv) {
	auto output_mode = output_mode_t::column;
	auto delim       = '\n';
	auto delimiters  = "\t"sv;
	std::string new_delimiters;
	for(auto && [arg, val] : vore::opt::get{argc,
	                                        argv,
	                                        "szd:",
	                                        {{"serial", no_argument, nullptr, 's'},  //
	                                         {"zero-terminated", no_argument, nullptr, 'z'},
	                                         {"delimiters", required_argument, nullptr, 'd'}}})
		switch(arg) {
			case 's':
				output_mode = output_mode_t::row;
				break;
			case 'z':
				delim = '\0';
				break;
			case 'd': {
				std::string_view v{val};
				if(v == ""sv)
					delimiters = "\0"sv;
				else {
					new_delimiters.clear();
					for(auto c = std::begin(v); c != std::end(v); ++c)
						switch(*c) {
							case '\\': {
								switch(*++c) {
									TRANSPOSE(new_delimiters, '\\', '\\');
									TRANSPOSE(new_delimiters, 'b', '\b');
									TRANSPOSE(new_delimiters, 't', '\t');
									TRANSPOSE(new_delimiters, 'n', '\n');
									TRANSPOSE(new_delimiters, 'v', '\v');
									TRANSPOSE(new_delimiters, 'f', '\f');
									TRANSPOSE(new_delimiters, 'r', '\r');
									TRANSPOSE(new_delimiters, '0', '\0');
									case '\0':
										std::fprintf(stderr, "%s: -d: dangling \\\n", argv[0]);
										return 1;
									default:
										new_delimiters.push_back(*c);
										break;
								}
							} break;
							default:
								new_delimiters.push_back(*c);
								break;
						}
					delimiters = new_delimiters;
				}
			} break;
			default:
				std::fprintf(stderr, "usage: %s [-sz] [-d elimiters] [file]...\n", argv[0]);
				return 1;
		}

	vore::opt::args args{*(argv + optind) ? (argv + optind) : default_files};


	auto delimiter_cur  = std::end(delimiters) - 1;
	auto next_delimiter = [&] {
		if(++delimiter_cur == std::end(delimiters))
			delimiter_cur = std::begin(delimiters);
		return *delimiter_cur;
	};


	bool err{};
	char * line{};
	std::size_t linecap{};
	switch(output_mode) {
		case output_mode_t::column: {
			std::vector<vore::file::FILE<true>> input;
			input.reserve(std::end(args) - std::begin(args));

			for(auto file : args)
				if(!input.emplace_back(file, "re")) {
					std::fprintf(stderr, "%s: %s: %s\n", argv[0], file, std::strerror(errno));
					return 1;
				}

			std::vector<std::uint8_t> linebuf;
			for(auto any = true; any;) {
				linebuf.clear();
				any           = false;
				delimiter_cur = std::end(delimiters) - 1;

				for(auto && f : input) {
					std::uint8_t * l{};
					std::size_t ll{};
					std::uint8_t lb = delim;
					if(auto len = getdelim(&line, &linecap, delim, f); len != -1) {
						l   = reinterpret_cast<std::uint8_t *>(line);
						ll  = len;
						any = true;
					} else {
						l  = &lb;
						ll = 1;
					}
					if(&f != &input.back() && l[ll - 1] == delim) {
						if(auto d = next_delimiter())
							l[ll - 1] = d;
						else
							--ll;
					}
					linebuf.insert(linebuf.end(), l, l + ll);
				}
				if(any)
					std::fwrite(linebuf.data(), 1, linebuf.size(), stdout);
			}
		} break;
		case output_mode_t::row:
			for(auto file : args) {
				vore::file::FILE<true> input{file, "re"};
				if(!input) {
					std::fprintf(stderr, "%s: %s: %s\n", argv[0], file, std::strerror(errno));
					err = true;
					continue;
				}

				delimiter_cur = std::end(delimiters) - 1;
				auto first    = true;
				for(ssize_t len; (len = getdelim(&line, &linecap, delim, input)) != -1;) {
					if(line[len - 1] == delim)
						--len;

					if(!first) {
						if(auto d = next_delimiter())
							std::fputc(d, stdout);
					} else
						first = false;

					std::fwrite(line, 1, len, stdout);
				}
				std::fputc(delim, stdout);
			}
			break;
	}
	return vore::flush_stdout(argv[0]) || err;
}

M include/vore-file => include/vore-file +1 -0
@@ 11,6 11,7 @@
#include <sys/mman.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <vector>



M lib/libstdbuf.cpp => lib/libstdbuf.cpp +3 -5
@@ 16,9 16,9 @@


namespace vore {
	static void * libstdbuf = [] {
	__attribute__((constructor)) static void libstdbuf() {
		for(auto [stream, env, name] : std::initializer_list<std::tuple<FILE *, const char *, const char *>>{
		        {stderr, "_STDBUF_E", "stderr"},  // stderr first since we print diagnostics there, and setvbuf() after output is UB
		        {stderr, "_STDBUF_E", "stderr"},  // stderr first since we print diagnostics there, and setvbuf() after output is nominal UB
		        {stdout, "_STDBUF_O", "stdout"},
		        {stdin, "_STDBUF_I", "stdin"},
		    })


@@ 43,7 43,5 @@ namespace vore {
					std::free(buf);
				}
			}

		return nullptr;
	}();
	}
}

A man/paste.1 => man/paste.1 +123 -0
@@ 0,0 1,123 @@
.\" SPDX-License-Identifier: 0BSD
.\"
.Dd
.Dt PASTE 1
.Os
.
.Sh NAME
.Nm paste
.Nd merge lines
.Sh SYNOPSIS
.Nm
.Op Fl z
.Op Fl d Ar elimiters
.Oo Ar file Oc Ns …
.Nm
.Fl s
.Op Fl z
.Op Fl d Ar elimiters
.Oo Ar file Oc Ns …
.
.Sh DESCRIPTION
Without
.Fl s ,
concatenates consecutive lines of
.Ar file Ns s Pq standard input if Qo Sy - Qc or missing ,
separating them with tabs, until all are exhausted;
otherwise concatenates each
.Ar file
in turn.
.
.Sh OPTIONS
.Bl -tag -compact -width "-d, --delimiters=list"
.It Fl s , -serial
Concatenate the entirety of each
.Ar file
in turn.
.It Fl z , -zero-terminated
Input and output lines are terminated by NULs, not newlines.
.It Fl d , -delimiters Ns = Ns Ar list
A list of delimiters to use instead of the tab, used circularly for each output line.
.Pp
Each character corresponds to itself as a delimiter, except the following escapes are recognised:
.Bl -tag -compact -offset 4n -width "ab, at, an, av, af, ar"
.It Sy \eb , \et , \en , \ev , \ef , \er
The backspace, tab, line feed, vertical tab, form feed, and carriage return characters, respectively.
.It Sy \e\e
Backslash.
.It Sy \e0
The empty string.
.It Sy \e Ns Ar anything
.Ar anything
.El
.Pp
Defaults to
.Qq Sy \et .
Empty string is equivalent to
.Qq Sy \e0 .
.El
.
.Sh EXIT STATUS
.Sy 1
if a
.Ar file
couldn't be opened.
.
.Sh EXAMPLES
List directory in four columns:
.Bd -literal -compact -offset Ds
.Li $ Nm ls | Nm Li - - - -
a       a.c     a.cpp   a.out
fips151-1.pdf   paste   paste.1 paste.cpp
paste.o paste.ps
.Ed
.Pp
Combine pairs of lines:
.Bd -literal -compact -offset Ds
.Li $ Nm seq Ar 10 | Nm Fl sd Ar '\et\en' Li -
1       2
3       4
5       6
7       8
9       10
.Ed
.
.Sh STANDARDS
Conforms to
.St -p1003.1-2008 .
.Fl z ,
allowing no
.Ar file Ns s ,
.Fl d
escapes other than
.Sy \en , \et , \e0 , No and Sy \e\e ,
and empty
.Ar delimiters
are extensions, also present on the GNU system.
.
.Sh HISTORY
.\" This is actually copied from CB-UNIX 2.1, but they're the same file
.Nm
appeared, fully formed, as
.D1 paste \(em merge same lines of several files or subsequent lines of a file
in several
.At Ns es
that became part of
.At III ,
.\" https://inbox.vuxu.org/tuhs/202001150454.00F4sF9H013965@cuzuco.com/T/#r2bd4ae0313fd0aeb22ea2b21748bce2dfe833c25
written by Gottfried W. R. Luderer,
.\" earliest in 32V: -rw-r--r-- mhol/wheel     2994 1978-11-06 05:03 usr/src/cmd/paste.c
in-or-before November of 1978.
The implementation notes:
.Bd -literal -compact -offset Ds
/* paste: concatenate corresponding lines of each file in parallel(GWRL) */
/*      (-s option: serial concatenation like old (127's) paste command */
.Ed
but no evidence of a
.Nm
from 127 (AT&T's Computer Science Research division) exists in earlier systems.
.Pp
It was standardised verbatim in
.St -p1003.2-92 ,
and appears in
.Bx 4.3 Reno .

M man/shred.1 => man/shred.1 +1 -1
@@ 34,7 34,7 @@ You may be tempted to use this on regular files: don't.
Just remove them instead of making more copies by overwriting them again.
.
.Sh OPTIONS
.Bl -tag -compact -width "-i, --ignore-garbage"
.Bl -tag -compact -width "-s, --size=size"
.It Fl f , -force
Change mode to
.Li 0200 Pq write for owner

M man/truncate.1 => man/truncate.1 +1 -1
@@ 130,7 130,7 @@ if a file's size couldn't be determined when needed, some
.Ar file Ns s
couldn't be opened
.Pq with the exception of Er ENOENT No with Fl c
or truncated
or truncated.
.
.Sh EXAMPLES
Create a multiple-of-16GB file at least as large as the swap area:

A tests/paste/data/ls-paste.1-1 => tests/paste/data/ls-paste.1-1 +10 -0
@@ 0,0 1,10 @@
a
a.c
a.cpp
a.out
fips151-1.pdf
paste
paste.1
paste.cpp
paste.o
paste.ps

A tests/paste/data/out/ls-paste.1-1 => tests/paste/data/out/ls-paste.1-1 +10 -0
@@ 0,0 1,10 @@
a
a.c
a.cpp
a.out
fips151-1.pdf
paste
paste.1
paste.cpp
paste.o
paste.ps

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1 => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1 +20 -0
@@ 0,0 1,20 @@
a
a.c
a.cpp
a.out
fips151-1.pdf
paste
paste.1
paste.cpp
paste.o
paste.ps
1
2
3
4
5
6
7
8
9
10

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1- => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1- +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1 seq-10-paste.1-1
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1- - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1- - +10 -0
@@ 0,0 1,10 @@
a	a.c
a.cpp	a.out
fips151-1.pdf	paste
paste.1	paste.cpp
paste.o	paste.ps
1	2
3	4
5	6
7	8
9	10

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1- - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1- - - +7 -0
@@ 0,0 1,7 @@
a	a.c	a.cpp
a.out	fips151-1.pdf	paste
paste.1	paste.cpp	paste.o
paste.ps	1	2
3	4	5
6	7	8
9	10	

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1- - - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1- - - - +5 -0
@@ 0,0 1,5 @@
a	a.c	a.cpp	a.out
fips151-1.pdf	paste	paste.1	paste.cpp
paste.o	paste.ps	1	2
3	4	5	6
7	8	9	10

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1- - - - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1- - - - - +4 -0
@@ 0,0 1,4 @@
a	a.c	a.cpp	a.out	fips151-1.pdf
paste	paste.1	paste.cpp	paste.o	paste.ps
1	2	3	4	5
6	7	8	9	10

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-dABCDEFG => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-dABCDEFG +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1 seq-10-paste.1-1
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-dABCDEFG- => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-dABCDEFG- +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1 seq-10-paste.1-1
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-dABCDEFG- - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-dABCDEFG- - +10 -0
@@ 0,0 1,10 @@
aAa.c
a.cppAa.out
fips151-1.pdfApaste
paste.1Apaste.cpp
paste.oApaste.ps
1A2
3A4
5A6
7A8
9A10

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-dABCDEFG- - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-dABCDEFG- - - +7 -0
@@ 0,0 1,7 @@
aAa.cBa.cpp
a.outAfips151-1.pdfBpaste
paste.1Apaste.cppBpaste.o
paste.psA1B2
3A4B5
6A7B8
9A10B

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-dABCDEFG- - - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-dABCDEFG- - - - +5 -0
@@ 0,0 1,5 @@
aAa.cBa.cppCa.out
fips151-1.pdfApasteBpaste.1Cpaste.cpp
paste.oApaste.psB1C2
3A4B5C6
7A8B9C10

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-dABCDEFG- - - - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-dABCDEFG- - - - - +4 -0
@@ 0,0 1,4 @@
aAa.cBa.cppCa.outDfips151-1.pdf
pasteApaste.1Bpaste.cppCpaste.oDpaste.ps
1A2B3C4D5
6A7B8C9D10

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\0 => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\0 +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1 seq-10-paste.1-1
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\0- => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\0- +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1 seq-10-paste.1-1
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\0- - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\0- - +10 -0
@@ 0,0 1,10 @@
aa.c
a.cppa.out
fips151-1.pdfpaste
paste.1paste.cpp
paste.opaste.ps
12
34
56
78
910

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\0- - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\0- - - +7 -0
@@ 0,0 1,7 @@
aa.ca.cpp
a.outfips151-1.pdfpaste
paste.1paste.cpppaste.o
paste.ps12
345
678
910

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\0- - - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\0- - - - +5 -0
@@ 0,0 1,5 @@
aa.ca.cppa.out
fips151-1.pdfpastepaste.1paste.cpp
paste.opaste.ps12
3456
78910

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\0- - - - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\0- - - - - +4 -0
@@ 0,0 1,4 @@
aa.ca.cppa.outfips151-1.pdf
pastepaste.1paste.cpppaste.opaste.ps
12345
678910

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\t\n => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\t\n +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1 seq-10-paste.1-1
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\t\n- => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\t\n- +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1 seq-10-paste.1-1
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\t\n- - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\t\n- - +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1 seq-10-paste.1-1- -
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\t\n- - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\t\n- - - +14 -0
@@ 0,0 1,14 @@
a	a.c
a.cpp
a.out	fips151-1.pdf
paste
paste.1	paste.cpp
paste.o
paste.ps	1
2
3	4
5
6	7
8
9	10


A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\t\n- - - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\t\n- - - - +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1 seq-10-paste.1-1- -
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\t\n- - - - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-d\t\n- - - - - +12 -0
@@ 0,0 1,12 @@
a	a.c
a.cpp	a.out
fips151-1.pdf
paste	paste.1
paste.cpp	paste.o
paste.ps
1	2
3	4
5
6	7
8	9
10

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s +1 -0
@@ 0,0 1,1 @@
a	a.c	a.cpp	a.out	fips151-1.pdf	paste	paste.1	paste.cpp	paste.o	paste.ps	1	2	3	4	5	6	7	8	9	10

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s- => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s- +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1 seq-10-paste.1-1-s
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s- - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s- - +2 -0
@@ 0,0 1,2 @@
a	a.c	a.cpp	a.out	fips151-1.pdf	paste	paste.1	paste.cpp	paste.o	paste.ps	1	2	3	4	5	6	7	8	9	10


A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s- - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s- - - +3 -0
@@ 0,0 1,3 @@
a	a.c	a.cpp	a.out	fips151-1.pdf	paste	paste.1	paste.cpp	paste.o	paste.ps	1	2	3	4	5	6	7	8	9	10



A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s- - - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s- - - - +4 -0
@@ 0,0 1,4 @@
a	a.c	a.cpp	a.out	fips151-1.pdf	paste	paste.1	paste.cpp	paste.o	paste.ps	1	2	3	4	5	6	7	8	9	10




A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s- - - - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s- - - - - +5 -0
@@ 0,0 1,5 @@
a	a.c	a.cpp	a.out	fips151-1.pdf	paste	paste.1	paste.cpp	paste.o	paste.ps	1	2	3	4	5	6	7	8	9	10





A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-dABCDEFG => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-dABCDEFG +1 -0
@@ 0,0 1,1 @@
aAa.cBa.cppCa.outDfips151-1.pdfEpasteFpaste.1Gpaste.cppApaste.oBpaste.psC1D2E3F4G5A6B7C8D9E10

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-dABCDEFG- => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-dABCDEFG- +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1 seq-10-paste.1-1-s-dABCDEFG
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-dABCDEFG- - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-dABCDEFG- - +2 -0
@@ 0,0 1,2 @@
aAa.cBa.cppCa.outDfips151-1.pdfEpasteFpaste.1Gpaste.cppApaste.oBpaste.psC1D2E3F4G5A6B7C8D9E10


A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-dABCDEFG- - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-dABCDEFG- - - +3 -0
@@ 0,0 1,3 @@
aAa.cBa.cppCa.outDfips151-1.pdfEpasteFpaste.1Gpaste.cppApaste.oBpaste.psC1D2E3F4G5A6B7C8D9E10



A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-dABCDEFG- - - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-dABCDEFG- - - - +4 -0
@@ 0,0 1,4 @@
aAa.cBa.cppCa.outDfips151-1.pdfEpasteFpaste.1Gpaste.cppApaste.oBpaste.psC1D2E3F4G5A6B7C8D9E10




A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-dABCDEFG- - - - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-dABCDEFG- - - - - +5 -0
@@ 0,0 1,5 @@
aAa.cBa.cppCa.outDfips151-1.pdfEpasteFpaste.1Gpaste.cppApaste.oBpaste.psC1D2E3F4G5A6B7C8D9E10





A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\0 => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\0 +1 -0
@@ 0,0 1,1 @@
aa.ca.cppa.outfips151-1.pdfpastepaste.1paste.cpppaste.opaste.ps12345678910

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\0- => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\0- +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1 seq-10-paste.1-1-s-d\0
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\0- - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\0- - +2 -0
@@ 0,0 1,2 @@
aa.ca.cppa.outfips151-1.pdfpastepaste.1paste.cpppaste.opaste.ps12345678910


A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\0- - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\0- - - +3 -0
@@ 0,0 1,3 @@
aa.ca.cppa.outfips151-1.pdfpastepaste.1paste.cpppaste.opaste.ps12345678910



A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\0- - - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\0- - - - +4 -0
@@ 0,0 1,4 @@
aa.ca.cppa.outfips151-1.pdfpastepaste.1paste.cpppaste.opaste.ps12345678910




A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\0- - - - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\0- - - - - +5 -0
@@ 0,0 1,5 @@
aa.ca.cppa.outfips151-1.pdfpastepaste.1paste.cpppaste.opaste.ps12345678910





A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\t\n => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\t\n +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1 seq-10-paste.1-1- -
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\t\n- => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\t\n- +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1 seq-10-paste.1-1- -
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\t\n- - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\t\n- - +11 -0
@@ 0,0 1,11 @@
a	a.c
a.cpp	a.out
fips151-1.pdf	paste
paste.1	paste.cpp
paste.o	paste.ps
1	2
3	4
5	6
7	8
9	10


A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\t\n- - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\t\n- - - +12 -0
@@ 0,0 1,12 @@
a	a.c
a.cpp	a.out
fips151-1.pdf	paste
paste.1	paste.cpp
paste.o	paste.ps
1	2
3	4
5	6
7	8
9	10



A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\t\n- - - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\t\n- - - - +13 -0
@@ 0,0 1,13 @@
a	a.c
a.cpp	a.out
fips151-1.pdf	paste
paste.1	paste.cpp
paste.o	paste.ps
1	2
3	4
5	6
7	8
9	10




A tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\t\n- - - - - => tests/paste/data/out/ls-paste.1-1 seq-10-paste.1-1-s-d\t\n- - - - - +14 -0
@@ 0,0 1,14 @@
a	a.c
a.cpp	a.out
fips151-1.pdf	paste
paste.1	paste.cpp
paste.o	paste.ps
1	2
3	4
5	6
7	8
9	10





A tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1 => tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1 +10 -0
@@ 0,0 1,10 @@
a	1
a.c	2
a.cpp	3
a.out	4
fips151-1.pdf	5
paste	6
paste.1	7
paste.cpp	8
paste.o	9
paste.ps	10

A tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-dABCDEFG => tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-dABCDEFG +10 -0
@@ 0,0 1,10 @@
aA1
a.cA2
a.cppA3
a.outA4
fips151-1.pdfA5
pasteA6
paste.1A7
paste.cppA8
paste.oA9
paste.psA10

A tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-d\0 => tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-d\0 +10 -0
@@ 0,0 1,10 @@
a1
a.c2
a.cpp3
a.out4
fips151-1.pdf5
paste6
paste.17
paste.cpp8
paste.o9
paste.ps10

A tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-d\t\n => tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-d\t\n +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1+seq-10-paste.1-1
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-s => tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-s +2 -0
@@ 0,0 1,2 @@
a	a.c	a.cpp	a.out	fips151-1.pdf	paste	paste.1	paste.cpp	paste.o	paste.ps
1	2	3	4	5	6	7	8	9	10

A tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-s-dABCDEFG => tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-s-dABCDEFG +2 -0
@@ 0,0 1,2 @@
aAa.cBa.cppCa.outDfips151-1.pdfEpasteFpaste.1Gpaste.cppApaste.oBpaste.ps
1A2B3C4D5E6F7G8A9B10

A tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-s-d\0 => tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-s-d\0 +2 -0
@@ 0,0 1,2 @@
aa.ca.cppa.outfips151-1.pdfpastepaste.1paste.cpppaste.opaste.ps
12345678910

A tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-s-d\t\n => tests/paste/data/out/ls-paste.1-1+seq-10-paste.1-1-s-d\t\n +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1 seq-10-paste.1-1- -
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1- => tests/paste/data/out/ls-paste.1-1- +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1- - => tests/paste/data/out/ls-paste.1-1- - +5 -0
@@ 0,0 1,5 @@
a	a.c
a.cpp	a.out
fips151-1.pdf	paste
paste.1	paste.cpp
paste.o	paste.ps

A tests/paste/data/out/ls-paste.1-1- - - => tests/paste/data/out/ls-paste.1-1- - - +4 -0
@@ 0,0 1,4 @@
a	a.c	a.cpp
a.out	fips151-1.pdf	paste
paste.1	paste.cpp	paste.o
paste.ps		

A tests/paste/data/out/ls-paste.1-1- - - - => tests/paste/data/out/ls-paste.1-1- - - - +3 -0
@@ 0,0 1,3 @@
a	a.c	a.cpp	a.out
fips151-1.pdf	paste	paste.1	paste.cpp
paste.o	paste.ps		

A tests/paste/data/out/ls-paste.1-1- - - - - => tests/paste/data/out/ls-paste.1-1- - - - - +2 -0
@@ 0,0 1,2 @@
a	a.c	a.cpp	a.out	fips151-1.pdf
paste	paste.1	paste.cpp	paste.o	paste.ps

A tests/paste/data/out/ls-paste.1-1-dABCDEFG => tests/paste/data/out/ls-paste.1-1-dABCDEFG +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1-dABCDEFG- => tests/paste/data/out/ls-paste.1-1-dABCDEFG- +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1-dABCDEFG- - => tests/paste/data/out/ls-paste.1-1-dABCDEFG- - +5 -0
@@ 0,0 1,5 @@
aAa.c
a.cppAa.out
fips151-1.pdfApaste
paste.1Apaste.cpp
paste.oApaste.ps

A tests/paste/data/out/ls-paste.1-1-dABCDEFG- - - => tests/paste/data/out/ls-paste.1-1-dABCDEFG- - - +4 -0
@@ 0,0 1,4 @@
aAa.cBa.cpp
a.outAfips151-1.pdfBpaste
paste.1Apaste.cppBpaste.o
paste.psAB

A tests/paste/data/out/ls-paste.1-1-dABCDEFG- - - - => tests/paste/data/out/ls-paste.1-1-dABCDEFG- - - - +3 -0
@@ 0,0 1,3 @@
aAa.cBa.cppCa.out
fips151-1.pdfApasteBpaste.1Cpaste.cpp
paste.oApaste.psBC

A tests/paste/data/out/ls-paste.1-1-dABCDEFG- - - - - => tests/paste/data/out/ls-paste.1-1-dABCDEFG- - - - - +2 -0
@@ 0,0 1,2 @@
aAa.cBa.cppCa.outDfips151-1.pdf
pasteApaste.1Bpaste.cppCpaste.oDpaste.ps

A tests/paste/data/out/ls-paste.1-1-d\0 => tests/paste/data/out/ls-paste.1-1-d\0 +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1-d\0- => tests/paste/data/out/ls-paste.1-1-d\0- +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1-d\0- - => tests/paste/data/out/ls-paste.1-1-d\0- - +5 -0
@@ 0,0 1,5 @@
aa.c
a.cppa.out
fips151-1.pdfpaste
paste.1paste.cpp
paste.opaste.ps

A tests/paste/data/out/ls-paste.1-1-d\0- - - => tests/paste/data/out/ls-paste.1-1-d\0- - - +4 -0
@@ 0,0 1,4 @@
aa.ca.cpp
a.outfips151-1.pdfpaste
paste.1paste.cpppaste.o
paste.ps

A tests/paste/data/out/ls-paste.1-1-d\0- - - - => tests/paste/data/out/ls-paste.1-1-d\0- - - - +3 -0
@@ 0,0 1,3 @@
aa.ca.cppa.out
fips151-1.pdfpastepaste.1paste.cpp
paste.opaste.ps

A tests/paste/data/out/ls-paste.1-1-d\0- - - - - => tests/paste/data/out/ls-paste.1-1-d\0- - - - - +2 -0
@@ 0,0 1,2 @@
aa.ca.cppa.outfips151-1.pdf
pastepaste.1paste.cpppaste.opaste.ps

A tests/paste/data/out/ls-paste.1-1-d\t\n => tests/paste/data/out/ls-paste.1-1-d\t\n +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1-d\t\n- => tests/paste/data/out/ls-paste.1-1-d\t\n- +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1-d\t\n- - => tests/paste/data/out/ls-paste.1-1-d\t\n- - +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1- -
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1-d\t\n- - - => tests/paste/data/out/ls-paste.1-1-d\t\n- - - +8 -0
@@ 0,0 1,8 @@
a	a.c
a.cpp
a.out	fips151-1.pdf
paste
paste.1	paste.cpp
paste.o
paste.ps	


A tests/paste/data/out/ls-paste.1-1-d\t\n- - - - => tests/paste/data/out/ls-paste.1-1-d\t\n- - - - +6 -0
@@ 0,0 1,6 @@
a	a.c
a.cpp	a.out
fips151-1.pdf	paste
paste.1	paste.cpp
paste.o	paste.ps
	

A tests/paste/data/out/ls-paste.1-1-d\t\n- - - - - => tests/paste/data/out/ls-paste.1-1-d\t\n- - - - - +6 -0
@@ 0,0 1,6 @@
a	a.c
a.cpp	a.out
fips151-1.pdf
paste	paste.1
paste.cpp	paste.o
paste.ps

A tests/paste/data/out/ls-paste.1-1-s => tests/paste/data/out/ls-paste.1-1-s +1 -0
@@ 0,0 1,1 @@
a	a.c	a.cpp	a.out	fips151-1.pdf	paste	paste.1	paste.cpp	paste.o	paste.ps

A tests/paste/data/out/ls-paste.1-1-s- => tests/paste/data/out/ls-paste.1-1-s- +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1-s
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1-s- - => tests/paste/data/out/ls-paste.1-1-s- - +2 -0
@@ 0,0 1,2 @@
a	a.c	a.cpp	a.out	fips151-1.pdf	paste	paste.1	paste.cpp	paste.o	paste.ps


A tests/paste/data/out/ls-paste.1-1-s- - - => tests/paste/data/out/ls-paste.1-1-s- - - +3 -0
@@ 0,0 1,3 @@
a	a.c	a.cpp	a.out	fips151-1.pdf	paste	paste.1	paste.cpp	paste.o	paste.ps



A tests/paste/data/out/ls-paste.1-1-s- - - - => tests/paste/data/out/ls-paste.1-1-s- - - - +4 -0
@@ 0,0 1,4 @@
a	a.c	a.cpp	a.out	fips151-1.pdf	paste	paste.1	paste.cpp	paste.o	paste.ps




A tests/paste/data/out/ls-paste.1-1-s- - - - - => tests/paste/data/out/ls-paste.1-1-s- - - - - +5 -0
@@ 0,0 1,5 @@
a	a.c	a.cpp	a.out	fips151-1.pdf	paste	paste.1	paste.cpp	paste.o	paste.ps





A tests/paste/data/out/ls-paste.1-1-s-dABCDEFG => tests/paste/data/out/ls-paste.1-1-s-dABCDEFG +1 -0
@@ 0,0 1,1 @@
aAa.cBa.cppCa.outDfips151-1.pdfEpasteFpaste.1Gpaste.cppApaste.oBpaste.ps

A tests/paste/data/out/ls-paste.1-1-s-dABCDEFG- => tests/paste/data/out/ls-paste.1-1-s-dABCDEFG- +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1-s-dABCDEFG
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1-s-dABCDEFG- - => tests/paste/data/out/ls-paste.1-1-s-dABCDEFG- - +2 -0
@@ 0,0 1,2 @@
aAa.cBa.cppCa.outDfips151-1.pdfEpasteFpaste.1Gpaste.cppApaste.oBpaste.ps


A tests/paste/data/out/ls-paste.1-1-s-dABCDEFG- - - => tests/paste/data/out/ls-paste.1-1-s-dABCDEFG- - - +3 -0
@@ 0,0 1,3 @@
aAa.cBa.cppCa.outDfips151-1.pdfEpasteFpaste.1Gpaste.cppApaste.oBpaste.ps



A tests/paste/data/out/ls-paste.1-1-s-dABCDEFG- - - - => tests/paste/data/out/ls-paste.1-1-s-dABCDEFG- - - - +4 -0
@@ 0,0 1,4 @@
aAa.cBa.cppCa.outDfips151-1.pdfEpasteFpaste.1Gpaste.cppApaste.oBpaste.ps




A tests/paste/data/out/ls-paste.1-1-s-dABCDEFG- - - - - => tests/paste/data/out/ls-paste.1-1-s-dABCDEFG- - - - - +5 -0
@@ 0,0 1,5 @@
aAa.cBa.cppCa.outDfips151-1.pdfEpasteFpaste.1Gpaste.cppApaste.oBpaste.ps





A tests/paste/data/out/ls-paste.1-1-s-d\0 => tests/paste/data/out/ls-paste.1-1-s-d\0 +1 -0
@@ 0,0 1,1 @@
aa.ca.cppa.outfips151-1.pdfpastepaste.1paste.cpppaste.opaste.ps

A tests/paste/data/out/ls-paste.1-1-s-d\0- => tests/paste/data/out/ls-paste.1-1-s-d\0- +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1-s-d\0
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1-s-d\0- - => tests/paste/data/out/ls-paste.1-1-s-d\0- - +2 -0
@@ 0,0 1,2 @@
aa.ca.cppa.outfips151-1.pdfpastepaste.1paste.cpppaste.opaste.ps


A tests/paste/data/out/ls-paste.1-1-s-d\0- - - => tests/paste/data/out/ls-paste.1-1-s-d\0- - - +3 -0
@@ 0,0 1,3 @@
aa.ca.cppa.outfips151-1.pdfpastepaste.1paste.cpppaste.opaste.ps



A tests/paste/data/out/ls-paste.1-1-s-d\0- - - - => tests/paste/data/out/ls-paste.1-1-s-d\0- - - - +4 -0
@@ 0,0 1,4 @@
aa.ca.cppa.outfips151-1.pdfpastepaste.1paste.cpppaste.opaste.ps




A tests/paste/data/out/ls-paste.1-1-s-d\0- - - - - => tests/paste/data/out/ls-paste.1-1-s-d\0- - - - - +5 -0
@@ 0,0 1,5 @@
aa.ca.cppa.outfips151-1.pdfpastepaste.1paste.cpppaste.opaste.ps





A tests/paste/data/out/ls-paste.1-1-s-d\t\n => tests/paste/data/out/ls-paste.1-1-s-d\t\n +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1- -
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1-s-d\t\n- => tests/paste/data/out/ls-paste.1-1-s-d\t\n- +1 -0
@@ 0,0 1,1 @@
ls-paste.1-1- -
\ No newline at end of file

A tests/paste/data/out/ls-paste.1-1-s-d\t\n- - => tests/paste/data/out/ls-paste.1-1-s-d\t\n- - +6 -0
@@ 0,0 1,6 @@
a	a.c
a.cpp	a.out
fips151-1.pdf	paste
paste.1	paste.cpp
paste.o	paste.ps


A tests/paste/data/out/ls-paste.1-1-s-d\t\n- - - => tests/paste/data/out/ls-paste.1-1-s-d\t\n- - - +7 -0
@@ 0,0 1,7 @@
a	a.c
a.cpp	a.out
fips151-1.pdf	paste
paste.1	paste.cpp
paste.o	paste.ps



A tests/paste/data/out/ls-paste.1-1-s-d\t\n- - - - => tests/paste/data/out/ls-paste.1-1-s-d\t\n- - - - +8 -0
@@ 0,0 1,8 @@
a	a.c
a.cpp	a.out
fips151-1.pdf	paste
paste.1	paste.cpp
paste.o	paste.ps




A tests/paste/data/out/ls-paste.1-1-s-d\t\n- - - - - => tests/paste/data/out/ls-paste.1-1-s-d\t\n- - - - - +9 -0
@@ 0,0 1,9 @@
a	a.c
a.cpp	a.out
fips151-1.pdf	paste
paste.1	paste.cpp
paste.o	paste.ps





A tests/paste/data/out/seq-10-paste.1-1 => tests/paste/data/out/seq-10-paste.1-1 +10 -0
@@ 0,0 1,10 @@
1
2
3
4
5
6
7
8
9
10

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1 => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1 +20 -0
@@ 0,0 1,20 @@
1
2
3
4
5
6
7
8
9
10
a
a.c
a.cpp
a.out
fips151-1.pdf
paste
paste.1
paste.cpp
paste.o
paste.ps

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1- => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1- +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1 ls-paste.1-1
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1- - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1- - +10 -0
@@ 0,0 1,10 @@
1	2
3	4
5	6
7	8
9	10
a	a.c
a.cpp	a.out
fips151-1.pdf	paste
paste.1	paste.cpp
paste.o	paste.ps

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1- - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1- - - +7 -0
@@ 0,0 1,7 @@
1	2	3
4	5	6
7	8	9
10	a	a.c
a.cpp	a.out	fips151-1.pdf
paste	paste.1	paste.cpp
paste.o	paste.ps	

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1- - - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1- - - - +5 -0
@@ 0,0 1,5 @@
1	2	3	4
5	6	7	8
9	10	a	a.c
a.cpp	a.out	fips151-1.pdf	paste
paste.1	paste.cpp	paste.o	paste.ps

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1- - - - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1- - - - - +4 -0
@@ 0,0 1,4 @@
1	2	3	4	5
6	7	8	9	10
a	a.c	a.cpp	a.out	fips151-1.pdf
paste	paste.1	paste.cpp	paste.o	paste.ps

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-dABCDEFG => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-dABCDEFG +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1 ls-paste.1-1
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-dABCDEFG- => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-dABCDEFG- +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1 ls-paste.1-1
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-dABCDEFG- - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-dABCDEFG- - +10 -0
@@ 0,0 1,10 @@
1A2
3A4
5A6
7A8
9A10
aAa.c
a.cppAa.out
fips151-1.pdfApaste
paste.1Apaste.cpp
paste.oApaste.ps

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-dABCDEFG- - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-dABCDEFG- - - +7 -0
@@ 0,0 1,7 @@
1A2B3
4A5B6
7A8B9
10AaBa.c
a.cppAa.outBfips151-1.pdf
pasteApaste.1Bpaste.cpp
paste.oApaste.psB

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-dABCDEFG- - - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-dABCDEFG- - - - +5 -0
@@ 0,0 1,5 @@
1A2B3C4
5A6B7C8
9A10BaCa.c
a.cppAa.outBfips151-1.pdfCpaste
paste.1Apaste.cppBpaste.oCpaste.ps

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-dABCDEFG- - - - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-dABCDEFG- - - - - +4 -0
@@ 0,0 1,4 @@
1A2B3C4D5
6A7B8C9D10
aAa.cBa.cppCa.outDfips151-1.pdf
pasteApaste.1Bpaste.cppCpaste.oDpaste.ps

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\0 => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\0 +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1 ls-paste.1-1
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\0- => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\0- +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1 ls-paste.1-1
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\0- - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\0- - +10 -0
@@ 0,0 1,10 @@
12
34
56
78
910
aa.c
a.cppa.out
fips151-1.pdfpaste
paste.1paste.cpp
paste.opaste.ps

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\0- - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\0- - - +7 -0
@@ 0,0 1,7 @@
123
456
789
10aa.c
a.cppa.outfips151-1.pdf
pastepaste.1paste.cpp
paste.opaste.ps

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\0- - - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\0- - - - +5 -0
@@ 0,0 1,5 @@
1234
5678
910aa.c
a.cppa.outfips151-1.pdfpaste
paste.1paste.cpppaste.opaste.ps

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\0- - - - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\0- - - - - +4 -0
@@ 0,0 1,4 @@
12345
678910
aa.ca.cppa.outfips151-1.pdf
pastepaste.1paste.cpppaste.opaste.ps

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\t\n => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\t\n +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1 ls-paste.1-1
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\t\n- => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\t\n- +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1 ls-paste.1-1
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\t\n- - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\t\n- - +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1 ls-paste.1-1- -
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\t\n- - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\t\n- - - +14 -0
@@ 0,0 1,14 @@
1	2
3
4	5
6
7	8
9
10	a
a.c
a.cpp	a.out
fips151-1.pdf
paste	paste.1
paste.cpp
paste.o	paste.ps


A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\t\n- - - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\t\n- - - - +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1 ls-paste.1-1- -
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\t\n- - - - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-d\t\n- - - - - +12 -0
@@ 0,0 1,12 @@
1	2
3	4
5
6	7
8	9
10
a	a.c
a.cpp	a.out
fips151-1.pdf
paste	paste.1
paste.cpp	paste.o
paste.ps

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s +1 -0
@@ 0,0 1,1 @@
1	2	3	4	5	6	7	8	9	10	a	a.c	a.cpp	a.out	fips151-1.pdf	paste	paste.1	paste.cpp	paste.o	paste.ps

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s- => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s- +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1 ls-paste.1-1-s
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s- - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s- - +2 -0
@@ 0,0 1,2 @@
1	2	3	4	5	6	7	8	9	10	a	a.c	a.cpp	a.out	fips151-1.pdf	paste	paste.1	paste.cpp	paste.o	paste.ps


A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s- - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s- - - +3 -0
@@ 0,0 1,3 @@
1	2	3	4	5	6	7	8	9	10	a	a.c	a.cpp	a.out	fips151-1.pdf	paste	paste.1	paste.cpp	paste.o	paste.ps



A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s- - - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s- - - - +4 -0
@@ 0,0 1,4 @@
1	2	3	4	5	6	7	8	9	10	a	a.c	a.cpp	a.out	fips151-1.pdf	paste	paste.1	paste.cpp	paste.o	paste.ps




A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s- - - - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s- - - - - +5 -0
@@ 0,0 1,5 @@
1	2	3	4	5	6	7	8	9	10	a	a.c	a.cpp	a.out	fips151-1.pdf	paste	paste.1	paste.cpp	paste.o	paste.ps





A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-dABCDEFG => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-dABCDEFG +1 -0
@@ 0,0 1,1 @@
1A2B3C4D5E6F7G8A9B10CaDa.cEa.cppFa.outGfips151-1.pdfApasteBpaste.1Cpaste.cppDpaste.oEpaste.ps

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-dABCDEFG- => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-dABCDEFG- +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1 ls-paste.1-1-s-dABCDEFG
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-dABCDEFG- - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-dABCDEFG- - +2 -0
@@ 0,0 1,2 @@
1A2B3C4D5E6F7G8A9B10CaDa.cEa.cppFa.outGfips151-1.pdfApasteBpaste.1Cpaste.cppDpaste.oEpaste.ps


A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-dABCDEFG- - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-dABCDEFG- - - +3 -0
@@ 0,0 1,3 @@
1A2B3C4D5E6F7G8A9B10CaDa.cEa.cppFa.outGfips151-1.pdfApasteBpaste.1Cpaste.cppDpaste.oEpaste.ps



A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-dABCDEFG- - - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-dABCDEFG- - - - +4 -0
@@ 0,0 1,4 @@
1A2B3C4D5E6F7G8A9B10CaDa.cEa.cppFa.outGfips151-1.pdfApasteBpaste.1Cpaste.cppDpaste.oEpaste.ps




A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-dABCDEFG- - - - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-dABCDEFG- - - - - +5 -0
@@ 0,0 1,5 @@
1A2B3C4D5E6F7G8A9B10CaDa.cEa.cppFa.outGfips151-1.pdfApasteBpaste.1Cpaste.cppDpaste.oEpaste.ps





A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\0 => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\0 +1 -0
@@ 0,0 1,1 @@
12345678910aa.ca.cppa.outfips151-1.pdfpastepaste.1paste.cpppaste.opaste.ps

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\0- => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\0- +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1 ls-paste.1-1-s-d\0
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\0- - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\0- - +2 -0
@@ 0,0 1,2 @@
12345678910aa.ca.cppa.outfips151-1.pdfpastepaste.1paste.cpppaste.opaste.ps


A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\0- - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\0- - - +3 -0
@@ 0,0 1,3 @@
12345678910aa.ca.cppa.outfips151-1.pdfpastepaste.1paste.cpppaste.opaste.ps



A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\0- - - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\0- - - - +4 -0
@@ 0,0 1,4 @@
12345678910aa.ca.cppa.outfips151-1.pdfpastepaste.1paste.cpppaste.opaste.ps




A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\0- - - - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\0- - - - - +5 -0
@@ 0,0 1,5 @@
12345678910aa.ca.cppa.outfips151-1.pdfpastepaste.1paste.cpppaste.opaste.ps





A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\t\n => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\t\n +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1 ls-paste.1-1- -
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\t\n- => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\t\n- +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1 ls-paste.1-1- -
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\t\n- - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\t\n- - +11 -0
@@ 0,0 1,11 @@
1	2
3	4
5	6
7	8
9	10
a	a.c
a.cpp	a.out
fips151-1.pdf	paste
paste.1	paste.cpp
paste.o	paste.ps


A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\t\n- - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\t\n- - - +12 -0
@@ 0,0 1,12 @@
1	2
3	4
5	6
7	8
9	10
a	a.c
a.cpp	a.out
fips151-1.pdf	paste
paste.1	paste.cpp
paste.o	paste.ps



A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\t\n- - - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\t\n- - - - +13 -0
@@ 0,0 1,13 @@
1	2
3	4
5	6
7	8
9	10
a	a.c
a.cpp	a.out
fips151-1.pdf	paste
paste.1	paste.cpp
paste.o	paste.ps




A tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\t\n- - - - - => tests/paste/data/out/seq-10-paste.1-1 ls-paste.1-1-s-d\t\n- - - - - +14 -0
@@ 0,0 1,14 @@
1	2
3	4
5	6
7	8
9	10
a	a.c
a.cpp	a.out
fips151-1.pdf	paste
paste.1	paste.cpp
paste.o	paste.ps





A tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1 => tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1 +10 -0
@@ 0,0 1,10 @@
1	a
2	a.c
3	a.cpp
4	a.out
5	fips151-1.pdf
6	paste
7	paste.1
8	paste.cpp
9	paste.o
10	paste.ps

A tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-dABCDEFG => tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-dABCDEFG +10 -0
@@ 0,0 1,10 @@
1Aa
2Aa.c
3Aa.cpp
4Aa.out
5Afips151-1.pdf
6Apaste
7Apaste.1
8Apaste.cpp
9Apaste.o
10Apaste.ps

A tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-d\0 => tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-d\0 +10 -0
@@ 0,0 1,10 @@
1a
2a.c
3a.cpp
4a.out
5fips151-1.pdf
6paste
7paste.1
8paste.cpp
9paste.o
10paste.ps

A tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-d\t\n => tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-d\t\n +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1+ls-paste.1-1
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-s => tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-s +2 -0
@@ 0,0 1,2 @@
1	2	3	4	5	6	7	8	9	10
a	a.c	a.cpp	a.out	fips151-1.pdf	paste	paste.1	paste.cpp	paste.o	paste.ps

A tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-s-dABCDEFG => tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-s-dABCDEFG +2 -0
@@ 0,0 1,2 @@
1A2B3C4D5E6F7G8A9B10
aAa.cBa.cppCa.outDfips151-1.pdfEpasteFpaste.1Gpaste.cppApaste.oBpaste.ps

A tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-s-d\0 => tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-s-d\0 +2 -0
@@ 0,0 1,2 @@
12345678910
aa.ca.cppa.outfips151-1.pdfpastepaste.1paste.cpppaste.opaste.ps

A tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-s-d\t\n => tests/paste/data/out/seq-10-paste.1-1+ls-paste.1-1-s-d\t\n +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1 ls-paste.1-1- -
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1- => tests/paste/data/out/seq-10-paste.1-1- +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1- - => tests/paste/data/out/seq-10-paste.1-1- - +5 -0
@@ 0,0 1,5 @@
1	2
3	4
5	6
7	8
9	10

A tests/paste/data/out/seq-10-paste.1-1- - - => tests/paste/data/out/seq-10-paste.1-1- - - +4 -0
@@ 0,0 1,4 @@
1	2	3
4	5	6
7	8	9
10		

A tests/paste/data/out/seq-10-paste.1-1- - - - => tests/paste/data/out/seq-10-paste.1-1- - - - +3 -0
@@ 0,0 1,3 @@
1	2	3	4
5	6	7	8
9	10		

A tests/paste/data/out/seq-10-paste.1-1- - - - - => tests/paste/data/out/seq-10-paste.1-1- - - - - +2 -0
@@ 0,0 1,2 @@
1	2	3	4	5
6	7	8	9	10

A tests/paste/data/out/seq-10-paste.1-1-dABCDEFG => tests/paste/data/out/seq-10-paste.1-1-dABCDEFG +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1-dABCDEFG- => tests/paste/data/out/seq-10-paste.1-1-dABCDEFG- +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1-dABCDEFG- - => tests/paste/data/out/seq-10-paste.1-1-dABCDEFG- - +5 -0
@@ 0,0 1,5 @@
1A2
3A4
5A6
7A8
9A10

A tests/paste/data/out/seq-10-paste.1-1-dABCDEFG- - - => tests/paste/data/out/seq-10-paste.1-1-dABCDEFG- - - +4 -0
@@ 0,0 1,4 @@
1A2B3
4A5B6
7A8B9
10AB

A tests/paste/data/out/seq-10-paste.1-1-dABCDEFG- - - - => tests/paste/data/out/seq-10-paste.1-1-dABCDEFG- - - - +3 -0
@@ 0,0 1,3 @@
1A2B3C4
5A6B7C8
9A10BC

A tests/paste/data/out/seq-10-paste.1-1-dABCDEFG- - - - - => tests/paste/data/out/seq-10-paste.1-1-dABCDEFG- - - - - +2 -0
@@ 0,0 1,2 @@
1A2B3C4D5
6A7B8C9D10

A tests/paste/data/out/seq-10-paste.1-1-d\0 => tests/paste/data/out/seq-10-paste.1-1-d\0 +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1-d\0- => tests/paste/data/out/seq-10-paste.1-1-d\0- +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1-d\0- - => tests/paste/data/out/seq-10-paste.1-1-d\0- - +5 -0
@@ 0,0 1,5 @@
12
34
56
78
910

A tests/paste/data/out/seq-10-paste.1-1-d\0- - - => tests/paste/data/out/seq-10-paste.1-1-d\0- - - +4 -0
@@ 0,0 1,4 @@
123
456
789
10

A tests/paste/data/out/seq-10-paste.1-1-d\0- - - - => tests/paste/data/out/seq-10-paste.1-1-d\0- - - - +3 -0
@@ 0,0 1,3 @@
1234
5678
910

A tests/paste/data/out/seq-10-paste.1-1-d\0- - - - - => tests/paste/data/out/seq-10-paste.1-1-d\0- - - - - +2 -0
@@ 0,0 1,2 @@
12345
678910

A tests/paste/data/out/seq-10-paste.1-1-d\t\n => tests/paste/data/out/seq-10-paste.1-1-d\t\n +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1-d\t\n- => tests/paste/data/out/seq-10-paste.1-1-d\t\n- +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1-d\t\n- - => tests/paste/data/out/seq-10-paste.1-1-d\t\n- - +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1- -
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1-d\t\n- - - => tests/paste/data/out/seq-10-paste.1-1-d\t\n- - - +8 -0
@@ 0,0 1,8 @@
1	2
3
4	5
6
7	8
9
10	


A tests/paste/data/out/seq-10-paste.1-1-d\t\n- - - - => tests/paste/data/out/seq-10-paste.1-1-d\t\n- - - - +6 -0
@@ 0,0 1,6 @@
1	2
3	4
5	6
7	8
9	10
	

A tests/paste/data/out/seq-10-paste.1-1-d\t\n- - - - - => tests/paste/data/out/seq-10-paste.1-1-d\t\n- - - - - +6 -0
@@ 0,0 1,6 @@
1	2
3	4
5
6	7
8	9
10

A tests/paste/data/out/seq-10-paste.1-1-s => tests/paste/data/out/seq-10-paste.1-1-s +1 -0
@@ 0,0 1,1 @@
1	2	3	4	5	6	7	8	9	10

A tests/paste/data/out/seq-10-paste.1-1-s- => tests/paste/data/out/seq-10-paste.1-1-s- +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1-s
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1-s- - => tests/paste/data/out/seq-10-paste.1-1-s- - +2 -0
@@ 0,0 1,2 @@
1	2	3	4	5	6	7	8	9	10


A tests/paste/data/out/seq-10-paste.1-1-s- - - => tests/paste/data/out/seq-10-paste.1-1-s- - - +3 -0
@@ 0,0 1,3 @@
1	2	3	4	5	6	7	8	9	10



A tests/paste/data/out/seq-10-paste.1-1-s- - - - => tests/paste/data/out/seq-10-paste.1-1-s- - - - +4 -0
@@ 0,0 1,4 @@
1	2	3	4	5	6	7	8	9	10




A tests/paste/data/out/seq-10-paste.1-1-s- - - - - => tests/paste/data/out/seq-10-paste.1-1-s- - - - - +5 -0
@@ 0,0 1,5 @@
1	2	3	4	5	6	7	8	9	10





A tests/paste/data/out/seq-10-paste.1-1-s-dABCDEFG => tests/paste/data/out/seq-10-paste.1-1-s-dABCDEFG +1 -0
@@ 0,0 1,1 @@
1A2B3C4D5E6F7G8A9B10

A tests/paste/data/out/seq-10-paste.1-1-s-dABCDEFG- => tests/paste/data/out/seq-10-paste.1-1-s-dABCDEFG- +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1-s-dABCDEFG
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1-s-dABCDEFG- - => tests/paste/data/out/seq-10-paste.1-1-s-dABCDEFG- - +2 -0
@@ 0,0 1,2 @@
1A2B3C4D5E6F7G8A9B10


A tests/paste/data/out/seq-10-paste.1-1-s-dABCDEFG- - - => tests/paste/data/out/seq-10-paste.1-1-s-dABCDEFG- - - +3 -0
@@ 0,0 1,3 @@
1A2B3C4D5E6F7G8A9B10



A tests/paste/data/out/seq-10-paste.1-1-s-dABCDEFG- - - - => tests/paste/data/out/seq-10-paste.1-1-s-dABCDEFG- - - - +4 -0
@@ 0,0 1,4 @@
1A2B3C4D5E6F7G8A9B10




A tests/paste/data/out/seq-10-paste.1-1-s-dABCDEFG- - - - - => tests/paste/data/out/seq-10-paste.1-1-s-dABCDEFG- - - - - +5 -0
@@ 0,0 1,5 @@
1A2B3C4D5E6F7G8A9B10





A tests/paste/data/out/seq-10-paste.1-1-s-d\0 => tests/paste/data/out/seq-10-paste.1-1-s-d\0 +1 -0
@@ 0,0 1,1 @@
12345678910

A tests/paste/data/out/seq-10-paste.1-1-s-d\0- => tests/paste/data/out/seq-10-paste.1-1-s-d\0- +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1-s-d\0
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1-s-d\0- - => tests/paste/data/out/seq-10-paste.1-1-s-d\0- - +2 -0
@@ 0,0 1,2 @@
12345678910


A tests/paste/data/out/seq-10-paste.1-1-s-d\0- - - => tests/paste/data/out/seq-10-paste.1-1-s-d\0- - - +3 -0
@@ 0,0 1,3 @@
12345678910



A tests/paste/data/out/seq-10-paste.1-1-s-d\0- - - - => tests/paste/data/out/seq-10-paste.1-1-s-d\0- - - - +4 -0
@@ 0,0 1,4 @@
12345678910




A tests/paste/data/out/seq-10-paste.1-1-s-d\0- - - - - => tests/paste/data/out/seq-10-paste.1-1-s-d\0- - - - - +5 -0
@@ 0,0 1,5 @@
12345678910





A tests/paste/data/out/seq-10-paste.1-1-s-d\t\n => tests/paste/data/out/seq-10-paste.1-1-s-d\t\n +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1- -
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1-s-d\t\n- => tests/paste/data/out/seq-10-paste.1-1-s-d\t\n- +1 -0
@@ 0,0 1,1 @@
seq-10-paste.1-1- -
\ No newline at end of file

A tests/paste/data/out/seq-10-paste.1-1-s-d\t\n- - => tests/paste/data/out/seq-10-paste.1-1-s-d\t\n- - +6 -0
@@ 0,0 1,6 @@
1	2
3	4
5	6
7	8
9	10


A tests/paste/data/out/seq-10-paste.1-1-s-d\t\n- - - => tests/paste/data/out/seq-10-paste.1-1-s-d\t\n- - - +7 -0
@@ 0,0 1,7 @@
1	2
3	4
5	6
7	8
9	10



A tests/paste/data/out/seq-10-paste.1-1-s-d\t\n- - - - => tests/paste/data/out/seq-10-paste.1-1-s-d\t\n- - - - +8 -0
@@ 0,0 1,8 @@
1	2
3	4
5	6
7	8
9	10




A tests/paste/data/out/seq-10-paste.1-1-s-d\t\n- - - - - => tests/paste/data/out/seq-10-paste.1-1-s-d\t\n- - - - - +9 -0
@@ 0,0 1,9 @@
1	2
3	4
5	6
7	8
9	10





A tests/paste/data/seq-10-paste.1-1 => tests/paste/data/seq-10-paste.1-1 +10 -0
@@ 0,0 1,10 @@
1
2
3
4
5
6
7
8
9
10

A tests/paste/test => tests/paste/test +33 -0
@@ 0,0 1,33 @@
#!/bin/sh
# SPDX-License-Identifier: 0BSD

paste="${CMDDIR}paste"

cd data 2>&3 || exit
for s in '' '-s'; do
  for d in '' '-d\0' '-d\t\n' '-dABCDEFG'; do
    for ff in "ls-paste.1-1" "seq-10-paste.1-1" "ls-paste.1-1 seq-10-paste.1-1" "seq-10-paste.1-1 ls-paste.1-1"; do
      for dd in "" "-" "- -" "- - -" "- - - -" "- - - - -"; do
        cat $ff | "$paste" $s $d $dd | cmp - "out/$ff$s$d$dd" 2>&3 || echo "paste: $ff $s $d $dd wrong" >&3
      done
    done &

    "$paste" $s $d ls-paste.1-1 seq-10-paste.1-1 | cmp - "out/ls-paste.1-1+seq-10-paste.1-1$s$d" 2>&3 || echo "paste: ls-paste.1-1 seq-10-paste.1-1 $s $d wrong" >&3
    "$paste" $s $d seq-10-paste.1-1 ls-paste.1-1 | cmp - "out/seq-10-paste.1-1+ls-paste.1-1$s$d" 2>&3 || echo "paste: seq-10-paste.1-1 ls-paste.1-1 $s $d wrong" >&3
  done &
done
wait

errstr="$("$paste" /ENOENT 2>&1 > /dev/full)" && echo "paste: /dev/full okay?" >&3
[ -n "$errstr" ]                              || echo "paste: stderr empty for /dev/full" >&3

[ -w '/dev/full' ] || {
  echo "paste: skipping error testing, /dev/full unavailable" >&2
  exit
}

errstr="$(echo a | "$paste" 2>&1 > /dev/full)" && echo "paste: /dev/full okay?" >&3
[ -n "$errstr" ]                               || echo "paste: stderr empty for /dev/full" >&3

errstr="$("$paste" /dev/null 2>&1 > /dev/full)" || echo "paste: /dev/full error for /dev/null?" >&3
[ -n "$errstr" ]                                && echo "paste: stderr nonempty for /dev/full" >&3

M tests/sha1sum/test => tests/sha1sum/test +1 -1
@@ 1,6 1,6 @@
#!/bin/sh
# SPDX-License-Identifier: 0BSD
exit


# rm -rf a* ../all-*; mkdir a
# for i in $(seq 0 255); do