Размер структуры 'S' из-за изменений правил выравнивания и изменения размера члена 'b' вырастет с 12 до 24 байт при перекомпиляции в 64-битном режиме. Структура передается в функцию по значению
Любые аргументы, не равные 8 байтам или 1, 2, 4 или 8 байтам, передаются по ссылке. Попыток разместить один аргумент по нескольким регистрам не происходит.
Далее встречается plain-текст который требует трансформации. Поэтому заменил строки в функции getTextUsingTransformations
// либо в "чистую" строку, если была открыта круглая скобка.
if ($isPlain)
$plain .= $c;
на
// либо в "чистую" строку, если была открыта круглая скобка.
if ($isPlain) {
$key = sprintf("%04X", ord($c));
if (isset($transformations[$key]))
$c = html_entity_decode("&#x".$transformations[$key].";");
$plain .= $c;
}
насколько это правильно это отдельный вопрос.
А теперь вопрос — если в документе несколько таблиц преобразования, то как определить какую когда нужно использовать?
1) В функции getCharTransformations неправильно указаны регэкспы. Вместо
и
должно быть
и
Далее встречается plain-текст который требует трансформации. Поэтому заменил строки в функции getTextUsingTransformations
на
насколько это правильно это отдельный вопрос.
А теперь вопрос — если в документе несколько таблиц преобразования, то как определить какую когда нужно использовать?