Re-indent utils.c.

This commit is contained in:
Andrew Cagney 2003-01-31 22:45:22 +00:00
parent 974a8e9cbf
commit 8731e58ec7
2 changed files with 214 additions and 224 deletions

View File

@ -1,5 +1,7 @@
2003-01-31 Andrew Cagney <ac131313@redhat.com>
* utils.c: Re-indent.
* config/djgpp/fnchange.lst: Delete nindy files.
* nindy-share/ttyflush.c, nindy-share/stop.h: Delete files.
* nindy-share/nindy.c, nindy-share/env.h: Delete files.

View File

@ -48,7 +48,7 @@
#include "annotate.h"
#include "filenames.h"
#include "inferior.h" /* for signed_pointer_to_address */
#include "inferior.h" /* for signed_pointer_to_address */
#include <sys/param.h> /* For MAXPATHLEN */
@ -114,7 +114,7 @@ static struct cleanup *final_cleanup_chain; /* cleaned up when gdb exits */
static struct cleanup *run_cleanup_chain; /* cleaned up on each 'run' */
static struct cleanup *exec_cleanup_chain; /* cleaned up on each execution command */
/* cleaned up on each error from within an execution command */
static struct cleanup *exec_error_cleanup_chain;
static struct cleanup *exec_error_cleanup_chain;
/* Pointer to what is left to do for an execution command after the
target stops. Used only in asynchronous mode, by targets that
@ -268,7 +268,7 @@ make_my_cleanup (struct cleanup **pmy_chain, make_cleanup_ftype *function,
void *arg)
{
register struct cleanup *new
= (struct cleanup *) xmalloc (sizeof (struct cleanup));
= (struct cleanup *) xmalloc (sizeof (struct cleanup));
register struct cleanup *old_chain = *pmy_chain;
new->next = *pmy_chain;
@ -442,7 +442,8 @@ add_continuation (void (*continuation_hook) (struct continuation_arg *),
{
struct continuation *continuation_ptr;
continuation_ptr = (struct continuation *) xmalloc (sizeof (struct continuation));
continuation_ptr =
(struct continuation *) xmalloc (sizeof (struct continuation));
continuation_ptr->continuation_hook = continuation_hook;
continuation_ptr->arg_list = arg_list;
continuation_ptr->next = cmd_continuation;
@ -472,12 +473,12 @@ do_all_continuations (void)
/* Work now on the list we have set aside. */
while (continuation_ptr)
{
(continuation_ptr->continuation_hook) (continuation_ptr->arg_list);
saved_continuation = continuation_ptr;
continuation_ptr = continuation_ptr->next;
xfree (saved_continuation);
}
{
(continuation_ptr->continuation_hook) (continuation_ptr->arg_list);
saved_continuation = continuation_ptr;
continuation_ptr = continuation_ptr->next;
xfree (saved_continuation);
}
}
/* Walk down the cmd_continuation list, and get rid of all the
@ -504,7 +505,8 @@ add_intermediate_continuation (void (*continuation_hook)
{
struct continuation *continuation_ptr;
continuation_ptr = (struct continuation *) xmalloc (sizeof (struct continuation));
continuation_ptr =
(struct continuation *) xmalloc (sizeof (struct continuation));
continuation_ptr->continuation_hook = continuation_hook;
continuation_ptr->arg_list = arg_list;
continuation_ptr->next = intermediate_continuation;
@ -534,12 +536,12 @@ do_all_intermediate_continuations (void)
/* Work now on the list we have set aside. */
while (continuation_ptr)
{
(continuation_ptr->continuation_hook) (continuation_ptr->arg_list);
saved_continuation = continuation_ptr;
continuation_ptr = continuation_ptr->next;
xfree (saved_continuation);
}
{
(continuation_ptr->continuation_hook) (continuation_ptr->arg_list);
saved_continuation = continuation_ptr;
continuation_ptr = continuation_ptr->next;
xfree (saved_continuation);
}
}
/* Walk down the cmd_continuation list, and get rid of all the
@ -556,9 +558,9 @@ discard_all_intermediate_continuations (void)
xfree (continuation_ptr);
}
}
/* Print a warning message. The first argument STRING is the warning
message, used as an fprintf format string, the second is the
va_list of arguments for that string. A warning is unfiltered (not
@ -590,7 +592,7 @@ vwarning (const char *string, va_list args)
does not force the return to command level. */
void
warning (const char *string,...)
warning (const char *string, ...)
{
va_list args;
va_start (args, string);
@ -612,7 +614,7 @@ verror (const char *string, va_list args)
}
NORETURN void
error (const char *string,...)
error (const char *string, ...)
{
va_list args;
va_start (args, string);
@ -657,7 +659,7 @@ error_last_message (void)
long len;
return ui_file_xstrdup (gdb_lasterr, &len);
}
/* This is to be called by main() at the very beginning */
void
@ -685,8 +687,7 @@ struct internal_problem
static void
internal_vproblem (struct internal_problem *problem,
const char *file, int line,
const char *fmt, va_list ap)
const char *file, int line, const char *fmt, va_list ap)
{
static char msg[] = "Recursive internal problem.\n";
static int dejavu;
@ -702,7 +703,7 @@ const char *file, int line,
case 1:
dejavu = 2;
fputs_unfiltered (msg, gdb_stderr);
abort (); /* NOTE: GDB has only three calls to abort(). */
abort (); /* NOTE: GDB has only three calls to abort(). */
default:
dejavu = 3;
write (STDERR_FILENO, msg, sizeof (msg));
@ -729,8 +730,8 @@ debugging may prove unreliable.\n");
{
case AUTO_BOOLEAN_AUTO:
/* Default (yes/batch case) is to quit GDB. When in batch mode
this lessens the likelhood of GDB going into an infinate
loop. */
this lessens the likelhood of GDB going into an infinate
loop. */
quit_p = query ("Quit this debugging session? ");
break;
case AUTO_BOOLEAN_TRUE:
@ -747,8 +748,8 @@ debugging may prove unreliable.\n");
{
case AUTO_BOOLEAN_AUTO:
/* Default (yes/batch case) is to dump core. This leaves a GDB
`dropping' so that it is easier to see that something went
wrong in GDB. */
`dropping' so that it is easier to see that something went
wrong in GDB. */
dump_core_p = query ("Create a core file of GDB? ");
break;
break;
@ -765,7 +766,7 @@ debugging may prove unreliable.\n");
if (quit_p)
{
if (dump_core_p)
abort (); /* NOTE: GDB has only three calls to abort(). */
abort (); /* NOTE: GDB has only three calls to abort(). */
else
exit (1);
}
@ -774,7 +775,7 @@ debugging may prove unreliable.\n");
if (dump_core_p)
{
if (fork () == 0)
abort (); /* NOTE: GDB has only three calls to abort(). */
abort (); /* NOTE: GDB has only three calls to abort(). */
}
}
@ -786,8 +787,7 @@ static struct internal_problem internal_error_problem = {
};
NORETURN void
internal_verror (const char *file, int line,
const char *fmt, va_list ap)
internal_verror (const char *file, int line, const char *fmt, va_list ap)
{
internal_vproblem (&internal_error_problem, file, line, fmt, ap);
throw_exception (RETURN_ERROR);
@ -807,8 +807,7 @@ static struct internal_problem internal_warning_problem = {
};
void
internal_vwarning (const char *file, int line,
const char *fmt, va_list ap)
internal_vwarning (const char *file, int line, const char *fmt, va_list ap)
{
internal_vproblem (&internal_warning_problem, file, line, fmt, ap);
}
@ -923,13 +922,13 @@ quit (void)
fprintf_unfiltered (gdb_stderr, "Quit\n");
#else
if (job_control
/* If there is no terminal switching for this target, then we can't
possibly get screwed by the lack of job control. */
/* If there is no terminal switching for this target, then we can't
possibly get screwed by the lack of job control. */
|| current_target.to_terminal_ours == NULL)
fprintf_unfiltered (gdb_stderr, "Quit\n");
else
fprintf_unfiltered (gdb_stderr,
"Quit (expect signal SIGINT when the program is resumed)\n");
"Quit (expect signal SIGINT when the program is resumed)\n");
#endif
throw_exception (RETURN_QUIT);
}
@ -962,7 +961,7 @@ request_quit (int signo)
static void *
mmalloc (void *md, size_t size)
{
return malloc (size); /* NOTE: GDB's only call to malloc() */
return malloc (size); /* NOTE: GDB's only call to malloc() */
}
static void *
@ -971,19 +970,19 @@ mrealloc (void *md, void *ptr, size_t size)
if (ptr == 0) /* Guard against old realloc's */
return mmalloc (md, size);
else
return realloc (ptr, size); /* NOTE: GDB's only call to ralloc() */
return realloc (ptr, size); /* NOTE: GDB's only call to ralloc() */
}
static void *
mcalloc (void *md, size_t number, size_t size)
{
return calloc (number, size); /* NOTE: GDB's only call to calloc() */
return calloc (number, size); /* NOTE: GDB's only call to calloc() */
}
static void
mfree (void *md, void *ptr)
{
free (ptr); /* NOTE: GDB's only call to free() */
free (ptr); /* NOTE: GDB's only call to free() */
}
#endif /* USE_MMALLOC */
@ -1032,9 +1031,10 @@ init_malloc (void *md)
initialize_all_files(). */
fprintf_unfiltered
(gdb_stderr, "warning: failed to install memory consistency checks; ");
fprintf_unfiltered
(gdb_stderr, "configuration should define NO_MMCHECK or MMCHECK_FORCE\n");
(gdb_stderr,
"warning: failed to install memory consistency checks; ");
fprintf_unfiltered (gdb_stderr,
"configuration should define NO_MMCHECK or MMCHECK_FORCE\n");
}
mmtrace ();
@ -1051,12 +1051,12 @@ nomem (long size)
if (size > 0)
{
internal_error (__FILE__, __LINE__,
"virtual memory exhausted: can't allocate %ld bytes.", size);
"virtual memory exhausted: can't allocate %ld bytes.",
size);
}
else
{
internal_error (__FILE__, __LINE__,
"virtual memory exhausted.");
internal_error (__FILE__, __LINE__, "virtual memory exhausted.");
}
}
@ -1195,14 +1195,12 @@ xvasprintf (char **ret, const char *format, va_list ap)
badly format string; or something else. */
if ((*ret) == NULL)
internal_error (__FILE__, __LINE__,
"vasprintf returned NULL buffer (errno %d)",
errno);
"vasprintf returned NULL buffer (errno %d)", errno);
/* A negative status with a non-NULL buffer shouldn't never
happen. But to be sure. */
if (status < 0)
internal_error (__FILE__, __LINE__,
"vasprintf call failed (errno %d)",
errno);
"vasprintf call failed (errno %d)", errno);
}
@ -1282,7 +1280,7 @@ gdb_print_host_address (void *addr, struct ui_file *stream)
/* VARARGS */
int
query (const char *ctlstr,...)
query (const char *ctlstr, ...)
{
va_list args;
register int answer;
@ -1328,7 +1326,7 @@ query (const char *ctlstr,...)
if (answer != '\n')
do
{
ans2 = fgetc (stdin);
ans2 = fgetc (stdin);
clearerr (stdin);
}
while (ans2 != EOF && ans2 != '\n' && ans2 != '\r');
@ -1368,7 +1366,7 @@ no_control_char_error (const char *start, const char *end)
copy[len] = '\0';
error ("There is no control character `\\%s' in the `%s' character set.",
copy, target_charset ());
copy, target_charset ());
}
/* Parse a C escape sequence. STRING_PTR points to a variable
@ -1393,86 +1391,86 @@ parse_escape (char **string_ptr)
register int c = *(*string_ptr)++;
if (c_parse_backslash (c, &target_char))
return target_char;
else switch (c)
{
case '\n':
return -2;
case 0:
(*string_ptr)--;
return 0;
case '^':
else
switch (c)
{
/* Remember where this escape sequence started, for reporting
errors. */
char *sequence_start_pos = *string_ptr - 1;
case '\n':
return -2;
case 0:
(*string_ptr)--;
return 0;
case '^':
{
/* Remember where this escape sequence started, for reporting
errors. */
char *sequence_start_pos = *string_ptr - 1;
c = *(*string_ptr)++;
c = *(*string_ptr)++;
if (c == '?')
{
/* XXXCHARSET: What is `delete' in the host character set? */
c = 0177;
if (c == '?')
{
/* XXXCHARSET: What is `delete' in the host character set? */
c = 0177;
if (! host_char_to_target (c, &target_char))
error ("There is no character corresponding to `Delete' "
"in the target character set `%s'.",
host_charset ());
if (!host_char_to_target (c, &target_char))
error ("There is no character corresponding to `Delete' "
"in the target character set `%s'.", host_charset ());
return target_char;
}
else if (c == '\\')
target_char = parse_escape (string_ptr);
else
{
if (! host_char_to_target (c, &target_char))
no_control_char_error (sequence_start_pos, *string_ptr);
}
return target_char;
}
else if (c == '\\')
target_char = parse_escape (string_ptr);
else
{
if (!host_char_to_target (c, &target_char))
no_control_char_error (sequence_start_pos, *string_ptr);
}
/* Now target_char is something like `c', and we want to find
its control-character equivalent. */
if (! target_char_to_control_char (target_char, &target_char))
no_control_char_error (sequence_start_pos, *string_ptr);
/* Now target_char is something like `c', and we want to find
its control-character equivalent. */
if (!target_char_to_control_char (target_char, &target_char))
no_control_char_error (sequence_start_pos, *string_ptr);
return target_char;
return target_char;
}
/* XXXCHARSET: we need to use isdigit and value-of-digit
methods of the host character set here. */
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
{
register int i = c - '0';
register int count = 0;
while (++count < 3)
{
if ((c = *(*string_ptr)++) >= '0' && c <= '7')
{
i *= 8;
i += c - '0';
}
else
{
(*string_ptr)--;
break;
}
}
return i;
}
default:
if (!host_char_to_target (c, &target_char))
error
("The escape sequence `\%c' is equivalent to plain `%c', which"
" has no equivalent\n" "in the `%s' character set.", c, c,
target_charset ());
return target_char;
}
/* XXXCHARSET: we need to use isdigit and value-of-digit
methods of the host character set here. */
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
{
register int i = c - '0';
register int count = 0;
while (++count < 3)
{
if ((c = *(*string_ptr)++) >= '0' && c <= '7')
{
i *= 8;
i += c - '0';
}
else
{
(*string_ptr)--;
break;
}
}
return i;
}
default:
if (! host_char_to_target (c, &target_char))
error ("The escape sequence `\%c' is equivalent to plain `%c', which"
" has no equivalent\n"
"in the `%s' character set.",
c, c, target_charset ());
return target_char;
}
}
/* Print the character C on STREAM as part of the contents of a literal
@ -1548,15 +1546,16 @@ fputstr_unfiltered (const char *str, int quoter, struct ui_file *stream)
}
void
fputstrn_unfiltered (const char *str, int n, int quoter, struct ui_file *stream)
fputstrn_unfiltered (const char *str, int n, int quoter,
struct ui_file *stream)
{
int i;
for (i = 0; i < n; i++)
printchar (str[i], fputs_unfiltered, fprintf_unfiltered, stream, quoter);
}
/* Number of lines per page or UINT_MAX if paging is disabled. */
static unsigned int lines_per_page;
/* Number of chars per line or UINT_MAX if line folding is disabled. */
@ -1906,8 +1905,7 @@ fputs_maybe_filtered (const char *linebuffer, struct ui_file *stream,
while (*lineptr)
{
/* Possible new page. */
if (filter &&
(lines_printed >= lines_per_page - 1))
if (filter && (lines_printed >= lines_per_page - 1))
prompt_for_continue ();
while (*lineptr && *lineptr != '\n')
@ -1955,7 +1953,7 @@ fputs_maybe_filtered (const char *linebuffer, struct ui_file *stream,
if (wrap_column)
{
fputs_unfiltered (wrap_indent, stream);
*wrap_pointer = '\0'; /* Null-terminate saved stuff */
*wrap_pointer = '\0'; /* Null-terminate saved stuff */
fputs_unfiltered (wrap_buffer, stream); /* and eject it */
/* FIXME, this strlen is what prevents wrap_indent from
containing tabs. However, if we recurse to print it
@ -2169,7 +2167,7 @@ vprintf_unfiltered (const char *format, va_list args)
}
void
fprintf_filtered (struct ui_file * stream, const char *format,...)
fprintf_filtered (struct ui_file *stream, const char *format, ...)
{
va_list args;
va_start (args, format);
@ -2178,7 +2176,7 @@ fprintf_filtered (struct ui_file * stream, const char *format,...)
}
void
fprintf_unfiltered (struct ui_file * stream, const char *format,...)
fprintf_unfiltered (struct ui_file *stream, const char *format, ...)
{
va_list args;
va_start (args, format);
@ -2190,7 +2188,8 @@ fprintf_unfiltered (struct ui_file * stream, const char *format,...)
Called as fprintfi_filtered (spaces, stream, format, ...); */
void
fprintfi_filtered (int spaces, struct ui_file * stream, const char *format,...)
fprintfi_filtered (int spaces, struct ui_file *stream, const char *format,
...)
{
va_list args;
va_start (args, format);
@ -2202,7 +2201,7 @@ fprintfi_filtered (int spaces, struct ui_file * stream, const char *format,...)
void
printf_filtered (const char *format,...)
printf_filtered (const char *format, ...)
{
va_list args;
va_start (args, format);
@ -2212,7 +2211,7 @@ printf_filtered (const char *format,...)
void
printf_unfiltered (const char *format,...)
printf_unfiltered (const char *format, ...)
{
va_list args;
va_start (args, format);
@ -2224,7 +2223,7 @@ printf_unfiltered (const char *format,...)
Called as printfi_filtered (spaces, format, ...); */
void
printfi_filtered (int spaces, const char *format,...)
printfi_filtered (int spaces, const char *format, ...)
{
va_list args;
va_start (args, format);
@ -2288,8 +2287,8 @@ print_spaces_filtered (int n, struct ui_file *stream)
demangling is off, the name is printed in its "raw" form. */
void
fprintf_symbol_filtered (struct ui_file *stream, char *name, enum language lang,
int arg_mode)
fprintf_symbol_filtered (struct ui_file *stream, char *name,
enum language lang, int arg_mode)
{
char *demangled;
@ -2312,8 +2311,8 @@ fprintf_symbol_filtered (struct ui_file *stream, char *name, enum language lang,
break;
case language_objc:
/* Commented out until ObjC handling is enabled. */
/*demangled = objc_demangle (name);*/
/*break;*/
/*demangled = objc_demangle (name); */
/*break; */
default:
demangled = NULL;
break;
@ -2373,11 +2372,11 @@ int
subset_compare (char *string_to_compare, char *template_string)
{
int match;
if (template_string != (char *) NULL && string_to_compare != (char *) NULL &&
strlen (string_to_compare) <= strlen (template_string))
match = (strncmp (template_string,
string_to_compare,
strlen (string_to_compare)) == 0);
if (template_string != (char *) NULL && string_to_compare != (char *) NULL
&& strlen (string_to_compare) <= strlen (template_string))
match =
(strncmp
(template_string, string_to_compare, strlen (string_to_compare)) == 0);
else
match = 0;
return match;
@ -2428,15 +2427,13 @@ initialize_utils (void)
add_show_from_set
(add_set_cmd ("demangle", class_support, var_boolean,
(char *) &demangle,
"Set demangling of encoded C++/ObjC names when displaying symbols.",
&setprintlist),
&showprintlist);
"Set demangling of encoded C++/ObjC names when displaying symbols.",
&setprintlist), &showprintlist);
add_show_from_set
(add_set_cmd ("pagination", class_support,
var_boolean, (char *) &pagination_enabled,
"Set state of pagination.", &setlist),
&showlist);
"Set state of pagination.", &setlist), &showlist);
if (xdb_commands)
{
@ -2450,15 +2447,13 @@ initialize_utils (void)
(add_set_cmd ("sevenbit-strings", class_support, var_boolean,
(char *) &sevenbit_strings,
"Set printing of 8-bit characters in strings as \\nnn.",
&setprintlist),
&showprintlist);
&setprintlist), &showprintlist);
add_show_from_set
(add_set_cmd ("asm-demangle", class_support, var_boolean,
(char *) &asm_demangle,
"Set demangling of C++/ObjC names in disassembly listings.",
&setprintlist),
&showprintlist);
&setprintlist), &showprintlist);
}
/* Machine specific function to handle SIGWINCH signal. */
@ -2466,9 +2461,7 @@ initialize_utils (void)
#ifdef SIGWINCH_HANDLER_BODY
SIGWINCH_HANDLER_BODY
#endif
/* print routines to handle variable size regs, etc. */
/* temporary storage using circular buffer */
#define NUMCELLS 16
#define CELLSIZE 32
@ -2517,19 +2510,17 @@ decimal2str (char *paddr_str, char *sign, ULONGEST addr)
switch (i)
{
case 1:
sprintf (paddr_str, "%s%lu",
sign, temp[0]);
sprintf (paddr_str, "%s%lu", sign, temp[0]);
break;
case 2:
sprintf (paddr_str, "%s%lu%09lu",
sign, temp[1], temp[0]);
sprintf (paddr_str, "%s%lu%09lu", sign, temp[1], temp[0]);
break;
case 3:
sprintf (paddr_str, "%s%lu%09lu%09lu",
sign, temp[2], temp[1], temp[0]);
sprintf (paddr_str, "%s%lu%09lu%09lu", sign, temp[2], temp[1], temp[0]);
break;
default:
internal_error (__FILE__, __LINE__, "failed internal consistency check");
internal_error (__FILE__, __LINE__,
"failed internal consistency check");
}
}
@ -2595,8 +2586,7 @@ phex_nz (ULONGEST l, int sizeof_l)
if (high == 0)
sprintf (str, "%lx", (unsigned long) (l & 0xffffffff));
else
sprintf (str, "%lx%08lx",
high, (unsigned long) (l & 0xffffffff));
sprintf (str, "%lx%08lx", high, (unsigned long) (l & 0xffffffff));
break;
}
case 4:
@ -2666,7 +2656,7 @@ string_to_core_addr (const char *my_string)
{
if (isdigit (my_string[i]))
addr = (my_string[i] - '0') + (addr * 16);
else if (isxdigit (my_string[i]))
else if (isxdigit (my_string[i]))
addr = (tolower (my_string[i]) - 'a' + 0xa) + (addr * 16);
else
internal_error (__FILE__, __LINE__, "invalid hex");
@ -2785,8 +2775,7 @@ xfullpath (const char *filename)
#ifdef HAVE_DOS_BASED_FILE_SYSTEM
/* We need to be careful when filename is of the form 'd:foo', which
is equivalent of d:./foo, which is totally different from d:/foo. */
if (strlen (dir_name) == 2 &&
isalpha (dir_name[0]) && dir_name[1] == ':')
if (strlen (dir_name) == 2 && isalpha (dir_name[0]) && dir_name[1] == ':')
{
dir_name[2] = '.';
dir_name[3] = '\000';
@ -2815,61 +2804,60 @@ xfullpath (const char *filename)
unsigned long
gnu_debuglink_crc32 (unsigned long crc, unsigned char *buf, size_t len)
{
static const unsigned long crc32_table[256] =
{
0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419,
0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4,
0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07,
0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,
0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856,
0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,
0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4,
0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3,
0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a,
0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599,
0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190,
0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f,
0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e,
0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed,
0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,
0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3,
0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,
0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a,
0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5,
0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010,
0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17,
0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6,
0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615,
0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344,
0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,
0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a,
0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1,
0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c,
0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef,
0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe,
0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31,
0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c,
0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b,
0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1,
0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,
0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278,
0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7,
0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66,
0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605,
0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8,
0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b,
0x2d02ef8d
};
static const unsigned long crc32_table[256] = {
0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419,
0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4,
0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07,
0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,
0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856,
0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,
0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4,
0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3,
0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a,
0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599,
0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190,
0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f,
0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e,
0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed,
0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,
0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3,
0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,
0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a,
0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5,
0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010,
0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17,
0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6,
0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615,
0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344,
0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,
0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a,
0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1,
0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c,
0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef,
0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe,
0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31,
0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c,
0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b,
0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1,
0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,
0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278,
0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7,
0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66,
0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605,
0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8,
0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b,
0x2d02ef8d
};
unsigned char *end;
crc = ~crc & 0xffffffff;