diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2008-01-20 20:14:26 +0200 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2008-01-20 20:14:26 +0200 |
commit | d53e9b77054cfade6a643e77d085273a348b189c (patch) | |
tree | 561e0d08aec5a9d64a7b91e1910b57458e5467b8 /debug/repeat.c | |
parent | Fix alignment handling bugs in Subblock encoder. (diff) | |
download | xz-d53e9b77054cfade6a643e77d085273a348b189c.tar.xz |
Added debug/repeat.c.
Diffstat (limited to 'debug/repeat.c')
-rw-r--r-- | debug/repeat.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/debug/repeat.c b/debug/repeat.c new file mode 100644 index 00000000..849f7b76 --- /dev/null +++ b/debug/repeat.c @@ -0,0 +1,43 @@ +/////////////////////////////////////////////////////////////////////////////// +// +/// \file repeat.c +/// \brief Repeats given string given times +/// +/// This program can be useful when debugging run-length encoder in +/// the Subblock filter, especially the condition when repeat count +/// doesn't fit into 28-bit integer. +// +// Copyright (C) 2008 Lasse Collin +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +/////////////////////////////////////////////////////////////////////////////// + +#include "sysdefs.h" +#include <stdio.h> + + +int +main(int argc, char **argv) +{ + if (argc != 3) { + fprintf(stderr, "Usage: %s COUNT STRING\n", argv[0]); + exit(1); + } + + unsigned long long count = strtoull(argv[1], NULL, 10); + const size_t size = strlen(argv[2]); + + while (count-- != 0) + fwrite(argv[2], 1, size, stdout); + + return !!(ferror(stdout) || fclose(stdout)); +} |