/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright (c) 1999 by Sun Microsystems, Inc.
* All rights reserved.
* Copyright 2015 PALO, Richard.
*/
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <libintl.h>
#include <strings.h>
#include "iconv_tm.h"
#include "itmcomp.h"
#include "itm_util.h"
#include "hash.h"
#include "maptype.h"
static long data_to_long(itm_data_t *);
itm_size_t, itm_data_t *, unsigned long,
unsigned char *, unsigned char *, long,
itm_data_t *, long, long, itm_size_t,
static itm_tbl_hdr_t *map_table_lookup_var();
static void put_dense_encoding_default(char *, unsigned char *,
unsigned char *, unsigned char *, long, long, long);
static void map_range_adjust_byte_seq(unsigned char *,
unsigned char *, long, itmc_data_pair_t *);
char *, itm_size_t);
void
{
long len;
}
}
}
}
{
} else {
}
} else {
return (NULL);
}
return (du);
}
{
if (name) {
#if !defined(_LP64)
#endif
} else {
#if !defined(_LP64)
#endif
}
}
return (tbl);
}
/*
*
*/
static obj_array_t
{
/* NOP */;
}
return (obj_array);
}
}
}
}
return (obj_array);
}
static void
{
itm_op_outer_t *o;
o = malloc_vital(sizeof (itm_op_outer_t));
o->link = itm_op_outer;
itm_op_outer = o;
}
}
#ifdef ENABLE_TRACE
}
#endif
}
{
if (0 == obj) {
return (obj_list);
}
if (obj_list) {
return (obj_list);
} else {
return (obj);
}
}
{
#if !defined(_LP64)
#endif
if (0 == error_deferred) {
/* should never happen */
gettext("internal error: "
"obj_register: (NULL == obj) "
"&& (NULL == name)\n"));
}
return (NULL);
}
return (refp);
/* definition of named object */
}
switch (reg_place) {
case OBJ_REG_HEAD:
}
break;
case OBJ_REG_TAIL:
} else {
}
break;
}
} else {
}
return (refp);
}
{
itm_num_t i;
char *p;
/* count range, determine length */
if (length == 0) {
error_deferred += 1;
return (NULL);
}
}
"length of source sequences must be the same\n"));
error_deferred += 1;
return (NULL);
}
}
if (num == 0) {
error_deferred += 1;
return (NULL);
}
table_size = ((sizeof (itm_tbl_hdr_t)) +
p = (char *)(rh + 1);
p += length;
p += length;
}
return (table);
}
/*
* escape sequence table for stateful code set sequence
*/
{
itm_num_t i;
}
if (num == 0) {
("escape sequence is defined without sequence\n"));
error_deferred += 1;
return (NULL);
} else if (0 == len_min) {
error_deferred += 1;
return (NULL);
}
table_size = ((sizeof (itm_tbl_hdr_t)) +
(sizeof (itm_escapeseq_hdr_t)) +
(sizeof (itm_data_t) * num));
}
}
(int (*)(const void *, const void *))data_compare);
i < num - 1;
i++, ep++) {
"same escape sequences are defined: "
"0x%1$s 0x%2$s\n"),
error_deferred += 1;
return (NULL);
}
}
return (table);
}
{
long source_len = 0;
long result_len = 0;
long pass_through = 0;
long default_count = 0;
long error_deferred_local = 0;
unsigned long dense_encoded_map_ent;
unsigned long simple_indexed_map_ent;
unsigned long u;
unsigned char *byte_seq_min;
unsigned char *byte_seq_max;
unsigned char *p;
long i;
long hash_factor;
long result_len_specfied = 0;
size_t j;
long n;
}
if (ITMC_MAP_UNKNOWN == map_type) {
}
attr->hash_factor :
200;
break;
}
}
break;
}
}
}
gettext("output_byte_length must be less than %1$d\n"),
error_deferred += 1;
return (NULL);
}
} else {
result_len_specfied = 0;
}
/* default */
pass_through += 1;
} else {
default_count += 1;
}
--num;
/* error source sequence */
continue;
}
/* fixed length */
if ((0 < source_len) &&
source_fixed_len = 0;
}
/* maximum length */
}
}
/* map source has range */
gettext("length of source range must be "
"the same: 0x%1$s 0x%2$s\n"),
error_deferred += 1;
return (NULL);
}
gettext("source range error: 0x%1$s 0x%2$s\n"),
error_deferred += 1;
return (NULL);
}
j = map_table_resultlen(ml);
if (result_len < j) {
result_len = j;
}
}
}
if (num == 0) {
gettext("no mapping pair\n"));
error_deferred += 1;
return (NULL);
}
if (0 != result_len_specfied) {
if (result_len > result_len_specfied) {
gettext("result value length is "
"over specifed output_byte_length(%1$ld)\n"),
error_deferred += 1;
return (NULL);
}
}
continue;
}
for (i = 0; i < source_len; i++) {
*(byte_seq_min + i) = *(p + i);
*(byte_seq_max + i) = *(p + i);
}
break;
}
num--;
continue;
}
} else {
for (i = 0; i < source_len; i++) {
if (*(p + i) < *(byte_seq_min + i)) {
*(byte_seq_min + i) = *(p + i);
}
if (*(byte_seq_max + i) < *(p + i)) {
*(byte_seq_max + i) = *(p + i);
}
}
}
}
if (dense_encoded_map_ent < u) {
dense_encoded_map_ent = (ulong_t)(~0);
break;
}
}
#if defined(DEBUG)
if (TRACE('m')) {
int i;
for (i = 0; i < source_len; i++) {
}
for (i = 0; i < source_len; i++) {
}
}
#endif /* DEBUG */
num++;
range_num = 1;
range_num +=
}
/* specified error sequence */
error_count += range_num;
}
}
}
(int (*)(const void *, const void *))data_pair_compare);
/* check if map_pair range and next map_pair are overrapped */
gettext("ranges of source sequences "
"overrapped: %1$s %2$s\n"),
error_deferred += 1;
return (NULL);
}
}
if (1 < default_count) {
gettext("default is specified %1$d times in a map\n"),
error_deferred_local += 1;
}
gettext("default is specified,"
" but length of source data is not fixed\n"));
error_deferred_local += 1;
}
gettext("\"default no_change_copy\" is "
"specified, but size does not match\n"));
error_deferred_local += 1;
}
if (error_deferred_local) {
return (NULL);
}
if (source_fixed_len) {
}
switch (map_type) {
case ITMC_MAP_AUTOMATIC:
if ((source_len <= 2) &&
(((ulong_t)(~0) == dense_encoded_map_ent) ||
(dense_encoded_map_ent * 2)))) {
/*
* for small source sequence,
* if dense table is not so large
* compared with simple table,
* use simple.
*/
} else if (cmd_opt.large_table) {
if ((sizeof (long)) < source_len) {
gettext("length of source is too long "
"for large table: %ld\n"),
error_deferred += 1;
return (NULL);
}
} else if (((ulong_t)(~0) == dense_encoded_map_ent) ||
((0xffff < dense_encoded_map_ent) &&
/*
* if dense can be used and not too large
* ( less than (hash table entry * 8),
* use dense.
*/
} else {
}
break;
case ITMC_MAP_SIMPLE_INDEX:
if ((sizeof (long)) < source_len) {
gettext("length of source is too long "
"for index lookup: %ld\n"),
error_deferred += 1;
return (NULL);
}
break;
case ITMC_MAP_SIMPLE_HASH:
for (i = 2, u = 256; i < (sizeof (long)); i++) {
u *= 256;
}
if (u < num2) {
gettext("map is too large for hashing: %lu\n"),
num2);
error_deferred += 1;
return (NULL);
}
break;
case ITMC_MAP_DENSE_ENCODING:
for (i = 2, u = 256; i < (sizeof (long)); i++) {
u *= 256;
}
if (u < dense_encoded_map_ent) {
"map is too large for dense encoding: "
"%lu\n"),
error_deferred += 1;
return (NULL);
}
break;
case ITMC_MAP_BINARY_SEARCH:
for (i = 2, u = 256; i < (sizeof (long)); i++) {
u *= 256;
}
if (u < num2) {
gettext("length of source is too long for "
"binary search: %ld\n"),
error_deferred += 1;
return (NULL);
}
break;
default:
break;
}
switch (map_type) {
case ITMC_MAP_SIMPLE_INDEX:
break;
case ITMC_MAP_SIMPLE_HASH:
break;
case ITMC_MAP_DENSE_ENCODING:
break;
case ITMC_MAP_BINARY_SEARCH:
result_len, num2);
break;
}
} else {
}
}
return (table);
}
static itmc_map_type_t
{
int i;
return (0);
}
return (map_type_name[i].type);
}
}
return (0);
}
static itm_tbl_hdr_t *
long resultlen,
{
char *table;
char *error_table;
itm_size_t j;
itm_size_t i;
itm_size_t k;
char *p;
(1 == resultlen)) {
source_start = 0;
source_end = 255;
} else {
}
table_size = ((sizeof (itm_tbl_hdr_t)) +
(sizeof (itm_map_idx_fix_hdr_t)) +
if (0 < error_count) {
table_size += entry_num;
}
if (NULL == default_data) {
(error_count <= 0)) {
table_size += entry_num;
}
table_size += resultlen;
}
} else {
}
if (NULL != default_data) {
#if !defined(_LP64)
#endif
} else {
sub_hdr->default_error = 0;
}
} else {
} else {
}
}
gettext("\"default no_change_copy\" is "
"specified, but size does not match\n"));
}
for (i = 0, j = 0;
i < (entry_num);
i++, j += resultlen) {
for (k = 0; k < resultlen; k++) {
*(table + j + k) =
(((source_start + i) >>
0x00ff);
}
}
} else if (0 == sub_hdr->default_error) {
error_table += resultlen;
for (i = 0, j = 0;
i++, j += resultlen) {
default_data->size);
}
} else {
for (i = 0, j = 0;
i++, j += resultlen) {
default_data->size);
}
}
}
for (i = 0; i < num; i++) {
continue; /* error sequence */
}
for (; j <= k; j++) {
*(error_table + j) = 0;
}
}
} else if (0 < error_count) {
for (i = 0; i < num; i++) {
/* error sequence */
for (; j <= k; j++) {
*(error_table + j) = 1;
}
}
}
}
for (i = 0; i < num; i++) {
else
k = j;
}
free(p);
return (header);
}
static itm_tbl_hdr_t *
long resultlen,
{
char *table;
itm_size_t j;
itm_size_t i;
itm_size_t k;
itm_size_t h;
table_size = ((sizeof (itm_tbl_hdr_t)) +
(sizeof (itm_map_idx_fix_hdr_t)) +
if ((NULL != default_data) &&
}
if (NULL != default_data) {
#if !defined(_LP64)
#endif
} else {
sub_hdr->default_error = 0;
}
} else {
}
/* specified map */
for (i = 0, j = 0; i < num; i++) {
j += 1;
} else {
/* *(table + j) = 0; ** valid */
j += 1;
}
j += resultlen;
(void) memcpy(source_data,
(void) memcpy(result_data +
h = map_table_num_range((*(tpp + i)));
for (k = 0; k < h; k++) {
itm_size_t m;
for (m = 0,
m++, dp--) {
if (0xff != *dp) {
(*dp) += (char)1;
(*dp) = 0x00;
}
break;
}
}
j += 1;
} else {
/* *(table + j) = 0; ** valid */
j += 1;
m < resultlen;
m++, dp--) {
if (0xff != *dp) {
(*dp) += 1;
for (++dp;
m > 0;
m--, dp++) {
(*dp) = 0x00;
}
break;
}
}
}
j += resultlen;
}
}
}
/* default */
if ((NULL != default_data) &&
}
return (header);
}
static itm_tbl_hdr_t *
long hash_factor,
long resultlen,
{
char *error_table;
char *hash_table;
char *of_table;
itm_size_t i;
itm_size_t j;
itm_size_t k;
char *p;
long hash_value;
#if defined(DEBUG)
long hash_none;
long hash_one;
long hash_conflict;
#endif /* DEBUG */
itm_size_t m;
itm_size_t n;
itm_size_t h;
if (100 <= hash_factor) {
} else {
}
if (hash_table_num < 256) {
hash_table_num = 256;
}
for (i = 0, of_table_num = 0; i < num; i++) {
if (0 == *(hash_table + hash_value)) {
} else {
of_table_num += 1;
}
(void) memcpy(source_data,
h = map_table_num_range((*(tpp + i)));
for (n = 0; n < h; n++) {
for (m = 0,
m++, dp--) {
if (0xff != *dp) {
(*dp) += 1;
(*dp) = 0x00;
}
break;
}
}
if (0 == *(hash_table + hash_value)) {
} else {
of_table_num += 1;
}
}
}
}
#if defined(DEBUG)
if (TRACE('s')) {
hash_none = 0;
hash_one = 0;
hash_conflict = 0;
j = 0;
for (i = 0; i < hash_table_num; i++) {
if (2 == *(hash_table + i)) {
(void) putchar('2');
hash_conflict += 1;
} else if (1 == *(hash_table + i)) {
(void) putchar('1');
hash_one += 1;
} else if (0 == *(hash_table + i)) {
(void) putchar('-');
hash_none += 1;
} else {
(void) putchar('*');
}
if (63 <= j) {
j = 0;
(void) putchar('\n');
} else {
j += 1;
}
}
(void) putchar('\n');
(void) printf("null=%ld one=%ld conflict=%ld\n",
}
#endif /* DEBUG */
table_size = ((sizeof (itm_tbl_hdr_t)) +
(sizeof (itm_map_hash_hdr_t)) +
(hash_table_num) +
(pair_size * hash_table_num) +
(pair_size * of_table_num));
if ((NULL != default_data) &&
table_size += pair_size;
}
if (NULL != default_data) {
#if !defined(_LP64)
#endif
} else {
sub_hdr->default_error = 0;
}
} else {
}
(pair_size * of_table_num);
/* specified map */
for (i = 0, j = 0, k = 0; i < num; i++) {
p = error_table + hash_value;
if (*p) { /* conflict */
if (*p < 63) {
*p += 1;
}
p = of_table + k;
k += pair_size;
} else {
*p = 1;
}
(*p) = 1; /* specified error */
p++;
} else {
/* (*p) = 0; ** valid */
p++;
(void) memset(p, 0,
(void) memcpy(p +
}
(void) memcpy(source_data,
(void) memset(result_data, 0,
(void) memcpy(result_data +
h = map_table_num_range((*(tpp + i)));
for (n = 0; n < h; n++) {
for (m = 0,
m++, dp--) {
if (0xff != *dp) {
(*dp) += 1;
(*dp) = 0x00;
}
break;
}
}
p = error_table + hash_value;
if (*p) { /* conflict */
if (*p < 63) {
*p += 1;
}
p = of_table + k;
k += pair_size;
} else {
*p = 1;
p = hash_table +
(pair_size * hash_value);
}
(*p) = 1; /* specified error */
p += 1;
} else {
/* (*p) = 0; ** valid */
p += 1;
m < resultlen;
m++, dp--) {
if (0xff != *dp) {
(*dp) += 1;
for (++dp; m > 0;
m--, dp++) {
(*dp) = 0x00;
}
break;
}
}
(void) memcpy(p,
}
}
}
}
/* default */
if ((NULL != default_data) &&
j = ((pair_size * hash_table_num) +
(pair_size * of_table_num));
}
#if defined(ENABLE_TRACE)
(void) printf("0x%02x%02x%02x%02x 0x%02x\n",
((unsigned char)(*(p + 0))),
((unsigned char)(*(p + 1))),
((unsigned char)(*(p + 2))),
((unsigned char)(*(p + 3))),
((unsigned char)(*(p + 4))));
}
#endif
return (header);
}
static itm_tbl_hdr_t *
unsigned long entry_num,
unsigned char *byte_seq_min,
unsigned char *byte_seq_max,
long resultlen,
{
char *table;
char *error_table;
itm_size_t j;
itm_size_t i;
itm_size_t k;
char *p;
unsigned char *byte_seq_def;
table_size = ((sizeof (itm_tbl_hdr_t)) +
(sizeof (itm_map_dense_enc_hdr_t)) +
if (0 < error_count) {
table_size += entry_num;
}
if (NULL == default_data) {
(error_count <= 0)) {
table_size += entry_num;
}
table_size += resultlen;
}
if (NULL != default_data) {
#if !defined(_LP64)
#endif
} else {
sub_hdr->default_error = 0;
}
} else {
} else {
}
}
byte_seq_def = malloc_vital((sizeof (unsigned char *)) *
gettext("\"default no_change_copy\" is "
"specified, but size does not match\n"));
}
resultlen - 1, 0, 0);
} else if (0 == sub_hdr->default_error) {
for (i = 0, j = 0;
i++, j += resultlen) {
default_data->size);
}
} else {
for (i = 0, j = 0;
i++, j += resultlen) {
default_data->size);
}
}
}
for (i = 0; i < num; i++) {
continue; /* error sequence */
}
for (; j <= k; j++) {
*(error_table + j) = 0;
}
}
} else if (0 < error_count) {
if (0 == sub_hdr->default_error) {
error_table += resultlen;
}
for (i = 0; i < num; i++) {
j = hash_dense_encoding(
for (; j <= k; j++) {
}
}
}
}
p = malloc_vital(resultlen);
for (i = 0; i < num; i++) {
k = hash_dense_encoding(
else
k = j;
}
free(p);
return (header);
}
static void
char *table,
unsigned char *byte_seq_min,
unsigned char *byte_seq_max,
unsigned char *byte_seq_def,
long pos_max,
long position,
long dense_encoded_value)
{
uchar_t i;
for (i = *(byte_seq_min + position);
i <= *(byte_seq_max + position); i++) {
*(byte_seq_def + position) = i;
((dense_encoded_value + i) *
(*(byte_seq_max + position) -
}
return;
}
for (i = *(byte_seq_min + position);
i <= *(byte_seq_max + position); i++) {
*(byte_seq_def + position) = i;
}
}
char *
long value,
long length,
unsigned char *byte_seq_min,
unsigned char *byte_seq_max)
{
static char *buf;
static long buf_len;
char *p;
int i;
int l;
int residue;
}
*(buf + 0) = '0';
p = buf + 2;
for (i = length - 1; 0 <= i; --i) {
*(byte_seq_min + i) + 1);
value /= (*(byte_seq_max + i) -
*(byte_seq_min + i) + 1);
residue += *(byte_seq_min + i);
if (l < 10) {
*(p + (i * 2)) = ('0' + l);
} else {
*(p + (i * 2)) = ('a' + l - 10);
}
l = (0x0f & residue);
if (l < 10) {
*(p + (i * 2) + 1) = ('0' + l);
} else {
*(p + (i * 2) + 1) = ('a' + l - 10);
}
}
return (buf);
}
{
"length of all source sequences must be the same\n"));
error_deferred += 1;
return (NULL);
}
static void
unsigned char *byte_seq_min,
unsigned char *byte_seq_max,
long source_len,
{
unsigned char *p, *p2;
int i;
int flag;
flag = 0;
for (i = 0; i < source_len; i++) {
if (flag != 0) {
break;
}
if (*(p + i) != *(p2 + i))
flag = 1;
if (*(p + i) < *(byte_seq_min + i)) {
*(byte_seq_min + i) = *(p + i);
}
if (*(byte_seq_max + i) < *(p2 + i)) {
*(byte_seq_max + i) = *(p2 + i);
}
}
for (; i < source_len; i++) {
*(byte_seq_min + i) = 0x00;
*(byte_seq_max + i) = 0xff;
}
}
/*
* result value + (source range value - source base value)
* and just caluculate its length
*/
static size_t
{
size_t j;
int m;
m = 0;
m >>= 8;
}
if (m > 0) {
len += 1;
}
"result(0x%s.... len= %ld)\n",
len));
return (len);
}
/*
*
*/
static void
char *table,
char *result_data,
{
itm_size_t i;
itm_size_t j;
itm_size_t p;
for (i = range_start, p = i * result_size;
i <= range_end; i++, p += result_size) {
j < result_size;
j++, dp--) {
if (0xff != *dp) {
(*dp) += 1;
(*dp) = 0x00;
}
break;
}
}
}
}
/*
*
*/
static size_t
{
size_t i, j;
num = 0;
num2 <<= (i*8);
}
"num= %ld\n",
num));
return (num);
}
/*
*
*/
{
if (0 == map_pair) {
return (map_list);
}
if (map_list) {
return (map_list);
} else {
return (map_pair);
}
}
{
}
{
}
{
}
}
}
return (obj);
}
{
#if !defined(_LP64)
#endif
return (obj);
}
{
#if !defined(_LP64)
#endif
return (expr);
}
{
} else {
}
switch (type) {
case ITM_EXPR_NAME: /* register */
if (&name_lookup_error == name) {
return (NULL);
"more than %d variables are used\n"),
MAXREGID);
}
}
#if !defined(_LP64)
#endif
break;
case ITM_EXPR_SEQ:
}
break;
}
return (expr);
}
{
data0, sizeof (itm_expr_t),
return (expr);
}
{
unsigned char *p;
int i;
}
}
}
}
data0, sizeof (itm_expr_t),
data1, sizeof (itm_expr_t),
return (expr);
}
{
unsigned char *p;
int i;
return (NULL);
}
case ITM_EXPR_SEQ:
}
data0, sizeof (itm_expr_t),
break;
case ITM_EXPR_INT:
case ITM_EXPR_REG:
case ITM_EXPR_IN_VECTOR_D:
break;
default:
data0, sizeof (itm_expr_t),
break;
}
case ITM_EXPR_SEQ:
}
data1, sizeof (itm_expr_t),
break;
case ITM_EXPR_INT:
case ITM_EXPR_REG:
case ITM_EXPR_IN_VECTOR_D:
break;
default:
data1, sizeof (itm_expr_t),
break;
}
return (expr);
}
{
if (&name_lookup_error == name) {
}
data1, sizeof (itm_expr_t),
return (expr);
}
{
unsigned char *p;
int i;
} else {
}
for (i = 0, num = 0;
i++, p++) {
}
}
return (expr);
}
{
itmc_name_t *p;
return (NULL);
for (p = name_first; p; p = p->next) {
continue;
}
(((ITMC_OBJ_ACTION != type) &&
(ITMC_OBJ_ACTION != p->type)) ||
((ITMC_OBJ_ACTION == type) &&
(ITMC_OBJ_DIREC != p->type) &&
(ITMC_OBJ_OP != p->type) &&
(ITMC_OBJ_MAP != p->type)) ||
((ITMC_OBJ_ACTION == p->type) &&
(ITMC_OBJ_DIREC != type) &&
(ITMC_OBJ_OP != type) &&
(ITMC_OBJ_MAP != type)))) {
gettext("name type conflict: \"%1$s\" "
"%2$s %3$s\n"),
error_deferred += 1;
return (&name_lookup_error);
} else {
return (p);
}
}
return (NULL);
}
{
itmc_name_t *p;
if (&name_lookup_error == p) {
return (NULL);
}
if (NULL != p) {
if (p->ref_last) {
} else {
}
} else {
p = malloc_vital(sizeof (itmc_name_t));
p->reg_id = 0;
#if !defined(_LP64)
#endif
if (name_last) {
} else {
name_first = p;
}
name_last = p;
}
return (p);
}
{
itmc_name_t *p;
if (&name_lookup_error == p) {
return (NULL);
}
if (NULL != p) {
"same names are specified: %1$s\n"),
name_to_str(name));
error_deferred += 1;
return (NULL);
}
} else {
p = malloc_vital(sizeof (itmc_name_t));
p->reg_id = 0;
#if !defined(_LP64)
#endif
if (name_last) {
} else {
name_first = p;
}
name_last = p;
}
return (p);
}
int
{
return (-1);
} else {
return (1);
}
} else /* (d0->size > d1->size) */ {
return (-1);
} else {
return (1);
}
}
}
int
{
int r;
size_t s;
int i;
for (i = 0; i < s; i++, c1++) {
if (0x00 != *c1) {
return (-1);
}
}
} else {
for (i = 0; i < s; i++, c0++) {
if (0x00 != *c0) {
return (1);
}
}
}
if (0 == r) {
itm_data_t *d;
d = d0;
} else {
d = d1;
}
"distinct source values are specified: 0x%1$s\n"),
data_to_hexadecimal(d));
error_deferred += 1;
}
return (r);
}
static long
{
long l;
int i;
unsigned char *p;
return (0);
}
i++, p++) {
l <<= 8;
l |= *p;
}
return (l);
}