]> icculus.org git repositories - icculus/xz.git/blob - debug/crc32.c
Fix test_filter_flags to match the new restriction of lc+lp.
[icculus/xz.git] / debug / crc32.c
1 ///////////////////////////////////////////////////////////////////////////////
2 //
3 /// \file       crc32.c
4 /// \brief      Primitive CRC32 calculation tool
5 //
6 //  Copyright (C) 2008 Lasse Collin
7 //
8 //  This library is free software; you can redistribute it and/or
9 //  modify it under the terms of the GNU Lesser General Public
10 //  License as published by the Free Software Foundation; either
11 //  version 2.1 of the License, or (at your option) any later version.
12 //
13 //  This library is distributed in the hope that it will be useful,
14 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
15 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16 //  Lesser General Public License for more details.
17 //
18 ///////////////////////////////////////////////////////////////////////////////
19
20 #include "sysdefs.h"
21 #include <stdio.h>
22
23
24 int
25 main(void)
26 {
27         uint32_t crc = 0;
28
29         do {
30                 uint8_t buf[BUFSIZ];
31                 const size_t size = fread(buf, 1, sizeof(buf), stdin);
32                 crc = lzma_crc32(buf, size, crc);
33         } while (!ferror(stdin) && !feof(stdin));
34
35         //printf("%08" PRIX32 "\n", crc);
36
37         // I want it little endian so it's easy to work with hex editor.
38         printf("%02" PRIX32 " ", crc & 0xFF);
39         printf("%02" PRIX32 " ", (crc >> 8) & 0xFF);
40         printf("%02" PRIX32 " ", (crc >> 16) & 0xFF);
41         printf("%02" PRIX32 " ", crc >> 24);
42         printf("\n");
43
44         return 0;
45 }