| 36 |
void (*decoder) (struct tar_stat_info *, char const *); |
void (*decoder) (struct tar_stat_info *, char const *); |
| 37 |
}; |
}; |
| 38 |
|
|
| 39 |
/* This declaration must specify the number of elements in xhdr_tab, |
/* This declaration must be extern, because ISO C99 section 6.9.2 |
| 40 |
because ISO C99 section 6.9.2 prohibits a tentative definition that |
prohibits a tentative definition that has both internal linkage and |
| 41 |
has both internal linkage and incomplete type. */ |
incomplete type. If we made it static, we'd have to declare its |
| 42 |
static struct xhdr_tab const xhdr_tab[13]; |
size which would be a maintenance pain; if we put its initializer |
| 43 |
|
here, we'd need a boatload of forward declarations, which would be |
| 44 |
|
even more of a pain. */ |
| 45 |
|
extern struct xhdr_tab const xhdr_tab[]; |
| 46 |
|
|
| 47 |
static struct xhdr_tab const * |
static struct xhdr_tab const * |
| 48 |
locate_handler (char const *keyword) |
locate_handler (char const *keyword) |
| 412 |
assign_string (&st->uname, arg); |
assign_string (&st->uname, arg); |
| 413 |
} |
} |
| 414 |
|
|
| 415 |
static struct xhdr_tab const xhdr_tab[] = { |
struct xhdr_tab const xhdr_tab[] = { |
| 416 |
{ "atime", atime_coder, atime_decoder }, |
{ "atime", atime_coder, atime_decoder }, |
| 417 |
{ "comment", dummy_coder, dummy_decoder }, |
{ "comment", dummy_coder, dummy_decoder }, |
| 418 |
{ "charset", dummy_coder, dummy_decoder }, |
{ "charset", dummy_coder, dummy_decoder }, |