/* This file is part of
* ======================================================
*
* LyX, The Document Processor
*
* The function lyxsum is taken from GNU textutill-1.22
* and is there part of the program chsum. The chsum program
* is written by Q. Frank Xia, qx@math.columbia.edu.
*
* Modified for use in LyX by Lars G. Bjønnes.
*
*======================================================
*/
#include <config.h>
#include <stdio.h>
/* Number of bytes to read at once. */
#define BUFLEN (1 << 16 )
// DO _NOT_ CHANGE _ANYTHING_ IN THIS TABLE
static unsigned long const crctab[256 ] =
{
0 x0,
0 x04C11DB7, 0 x09823B6E, 0 x0D4326D9, 0 x130476DC, 0 x17C56B6B,
0 x1A864DB2, 0 x1E475005, 0 x2608EDB8, 0 x22C9F00F, 0 x2F8AD6D6,
0 x2B4BCB61, 0 x350C9B64, 0 x31CD86D3, 0 x3C8EA00A, 0 x384FBDBD,
0 x4C11DB70, 0 x48D0C6C7, 0 x4593E01E, 0 x4152FDA9, 0 x5F15ADAC,
0 x5BD4B01B, 0 x569796C2, 0 x52568B75, 0 x6A1936C8, 0 x6ED82B7F,
0 x639B0DA6, 0 x675A1011, 0 x791D4014, 0 x7DDC5DA3, 0 x709F7B7A,
0 x745E66CD, 0 x9823B6E0, 0 x9CE2AB57, 0 x91A18D8E, 0 x95609039,
0 x8B27C03C, 0 x8FE6DD8B, 0 x82A5FB52, 0 x8664E6E5, 0 xBE2B5B58,
0 xBAEA46EF, 0 xB7A96036, 0 xB3687D81, 0 xAD2F2D84, 0 xA9EE3033,
0 xA4AD16EA, 0 xA06C0B5D, 0 xD4326D90, 0 xD0F37027, 0 xDDB056FE,
0 xD9714B49, 0 xC7361B4C, 0 xC3F706FB, 0 xCEB42022, 0 xCA753D95,
0 xF23A8028, 0 xF6FB9D9F, 0 xFBB8BB46, 0 xFF79A6F1, 0 xE13EF6F4,
0 xE5FFEB43, 0 xE8BCCD9A, 0 xEC7DD02D, 0 x34867077, 0 x30476DC0,
0 x3D044B19, 0 x39C556AE, 0 x278206AB, 0 x23431B1C, 0 x2E003DC5,
0 x2AC12072, 0 x128E9DCF, 0 x164F8078, 0 x1B0CA6A1, 0 x1FCDBB16,
0 x018AEB13, 0 x054BF6A4, 0 x0808D07D, 0 x0CC9CDCA, 0 x7897AB07,
0 x7C56B6B0, 0 x71159069, 0 x75D48DDE, 0 x6B93DDDB, 0 x6F52C06C,
0 x6211E6B5, 0 x66D0FB02, 0 x5E9F46BF, 0 x5A5E5B08, 0 x571D7DD1,
0 x53DC6066, 0 x4D9B3063, 0 x495A2DD4, 0 x44190B0D, 0 x40D816BA,
0 xACA5C697, 0 xA864DB20, 0 xA527FDF9, 0 xA1E6E04E, 0 xBFA1B04B,
0 xBB60ADFC, 0 xB6238B25, 0 xB2E29692, 0 x8AAD2B2F, 0 x8E6C3698,
0 x832F1041, 0 x87EE0DF6, 0 x99A95DF3, 0 x9D684044, 0 x902B669D,
0 x94EA7B2A, 0 xE0B41DE7, 0 xE4750050, 0 xE9362689, 0 xEDF73B3E,
0 xF3B06B3B, 0 xF771768C, 0 xFA325055, 0 xFEF34DE2, 0 xC6BCF05F,
0 xC27DEDE8, 0 xCF3ECB31, 0 xCBFFD686, 0 xD5B88683, 0 xD1799B34,
0 xDC3ABDED, 0 xD8FBA05A, 0 x690CE0EE, 0 x6DCDFD59, 0 x608EDB80,
0 x644FC637, 0 x7A089632, 0 x7EC98B85, 0 x738AAD5C, 0 x774BB0EB,
0 x4F040D56, 0 x4BC510E1, 0 x46863638, 0 x42472B8F, 0 x5C007B8A,
0 x58C1663D, 0 x558240E4, 0 x51435D53, 0 x251D3B9E, 0 x21DC2629,
0 x2C9F00F0, 0 x285E1D47, 0 x36194D42, 0 x32D850F5, 0 x3F9B762C,
0 x3B5A6B9B, 0 x0315D626, 0 x07D4CB91, 0 x0A97ED48, 0 x0E56F0FF,
0 x1011A0FA, 0 x14D0BD4D, 0 x19939B94, 0 x1D528623, 0 xF12F560E,
0 xF5EE4BB9, 0 xF8AD6D60, 0 xFC6C70D7, 0 xE22B20D2, 0 xE6EA3D65,
0 xEBA91BBC, 0 xEF68060B, 0 xD727BBB6, 0 xD3E6A601, 0 xDEA580D8,
0 xDA649D6F, 0 xC423CD6A, 0 xC0E2D0DD, 0 xCDA1F604, 0 xC960EBB3,
0 xBD3E8D7E, 0 xB9FF90C9, 0 xB4BCB610, 0 xB07DABA7, 0 xAE3AFBA2,
0 xAAFBE615, 0 xA7B8C0CC, 0 xA379DD7B, 0 x9B3660C6, 0 x9FF77D71,
0 x92B45BA8, 0 x9675461F, 0 x8832161A, 0 x8CF30BAD, 0 x81B02D74,
0 x857130C3, 0 x5D8A9099, 0 x594B8D2E, 0 x5408ABF7, 0 x50C9B640,
0 x4E8EE645, 0 x4A4FFBF2, 0 x470CDD2B, 0 x43CDC09C, 0 x7B827D21,
0 x7F436096, 0 x7200464F, 0 x76C15BF8, 0 x68860BFD, 0 x6C47164A,
0 x61043093, 0 x65C52D24, 0 x119B4BE9, 0 x155A565E, 0 x18197087,
0 x1CD86D30, 0 x029F3D35, 0 x065E2082, 0 x0B1D065B, 0 x0FDC1BEC,
0 x3793A651, 0 x3352BBE6, 0 x3E119D3F, 0 x3AD08088, 0 x2497D08D,
0 x2056CD3A, 0 x2D15EBE3, 0 x29D4F654, 0 xC5A92679, 0 xC1683BCE,
0 xCC2B1D17, 0 xC8EA00A0, 0 xD6AD50A5, 0 xD26C4D12, 0 xDF2F6BCB,
0 xDBEE767C, 0 xE3A1CBC1, 0 xE760D676, 0 xEA23F0AF, 0 xEEE2ED18,
0 xF0A5BD1D, 0 xF464A0AA, 0 xF9278673, 0 xFDE69BC4, 0 x89B8FD09,
0 x8D79E0BE, 0 x803AC667, 0 x84FBDBD0, 0 x9ABC8BD5, 0 x9E7D9662,
0 x933EB0BB, 0 x97FFAD0C, 0 xAFB010B1, 0 xAB710D06, 0 xA6322BDF,
0 xA2F33668, 0 xBCB4666D, 0 xB8757BDA, 0 xB5365D03, 0 xB1F740B4
};
/* Calculate the checksum of file FILE.
Return crc if successful, 0 if an error occurs. */
unsigned long
lyxsum (char const *file)
{
unsigned char buf[BUFLEN];
unsigned long crc = 0 ;
long length = 0 ;
long bytes_read;
register FILE *fp;
fp = fopen (file, "r" );
if (fp == NULL) {
return 0 ;
}
while ((bytes_read = fread (buf, 1 , BUFLEN, fp)) > 0 ) {
unsigned char *cp = buf;
length += bytes_read;
while (bytes_read--)
crc = (crc << 8 ) ^ crctab[((crc >> 24 ) ^ *(cp++)) & 0 xFF];
}
if (ferror (fp)) {
fclose (fp);
return 0 ;
}
if (fclose (fp) == EOF) {
return 0 ;
}
bytes_read = length;
while (bytes_read > 0 ) {
crc = (crc << 8 ) ^ crctab[((crc >> 24 ) ^ bytes_read) & 0 xFF];
bytes_read >>= 8 ;
}
crc = ~crc & 0 xFFFFFFFF;
return crc;
}
Messung V0.5 in Prozent C=89 H=92 G=90
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-07)
¤
*© Formatika GbR, Deutschland