Module: tools Branch: master Commit: a99d9e478d9ae8be51ee02bab1b2c74cae3890a2 URL: http://source.winehq.org/git/tools.git/?a=commit;h=a99d9e478d9ae8be51ee02bab...
Author: Mikolaj Zalewski mikolajz@tygrys.dom Date: Fri Feb 29 20:30:08 2008 +0100
move stringtable dumping to StringTable class
---
php/lib_res.php | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- php/resource.php | 40 +++++----------------------------------- 2 files changed, 52 insertions(+), 37 deletions(-)
diff --git a/php/lib_res.php b/php/lib_res.php index ff27c42..8b401fc 100644 --- a/php/lib_res.php +++ b/php/lib_res.php @@ -50,13 +50,27 @@ function dump_unicode($unistr, $quoted = TRUE) || ($unistr[$i] >= ord('A') && $unistr[$i] < ord('Z')) || $unistr[$i] == ord(' ')) echo chr($unistr[$i]); - else + else if ($unistr[$i] == 10) { + echo "<span class="resmeta">\n</span>"; + if ($i < count($unistr) - 1) + echo "<br/>\n"; + } else if ($unistr[$i] == 0) { + echo "<span class="resmeta">\0</span>"; + } else echo "&#x".dechex($unistr[$i]).";"; } if ($quoted) echo """; }
+function dump_unicode_or_empty($uni_str) +{ + if ($uni_str) + dump_unicode($uni_str); + else + echo "<span class="resmeta">empty</span>"; +} + class ResFile { var $file; @@ -192,10 +206,11 @@ class StringTable extends Resource { var $strings;
- function StringTable($header, $data) + function StringTable($header, $data, $table_id) { $this->Resource($header); $this->strings = array(); + $this->table_id = $table_id; for ($i = 0; $i < 16; $i++) { $len = get_word($data); @@ -213,6 +228,36 @@ class StringTable extends Resource { return $this->strings[$id]; } + + function dump($master_res = NULL) + { + for ($i=0; $i<16; $i++) { + $extra = ""; + + $uni_str = $this->getString($i); + if ($master_res) + { + $master_uni_str = $master_res->getString($i); + if ((!$master_uni_str && $uni_str) || ($master_uni_str && !$uni_str)) + $extra = " style="background-color: #ffb8d0""; + } + + echo "<tr$extra><td valign="top">".(($this->table_id-1)*16+$i)."</td>"; + echo "<td>"; + + dump_unicode_or_empty($uni_str); + + if ($master_res) + { + echo "</td><td>"; + dump_unicode_or_empty($master_uni_str); + } + echo "</td></tr>\n"; + } + + } + + var $table_id; }
function dump_header($header) diff --git a/php/resource.php b/php/resource.php index 4e0da68..7797923 100644 --- a/php/resource.php +++ b/php/resource.php @@ -33,18 +33,17 @@ $res_lang = update_lang_from_resfile($lang, $resfile); $resdata = $resources->loadResource($type, $id, get_lang_binid($res_lang), is_lang_ignore_sublang($lang)); if (!$resdata) die("Resource not found in *.res file\n"); -$res = new StringTable($resdata[0], $resdata[1]); +$res = new StringTable($resdata[0], $resdata[1], $id);
+$master_res = NULL; if ($compare) { $resdata = $resources->loadResource($type, $id, $MASTER_LANGUAGE_BINID); if (!$resdata) - { echo ("<b>Can't compare with master language as resource not found</b>\n"); - } - $master_res = new StringTable($resdata[0], $resdata[1]); + else + $master_res = new StringTable($resdata[0], $resdata[1], $id); } - unset($resdata);
?> @@ -53,14 +52,6 @@ unset($resdata); <tr style="background-color: #e0e0ff"><th colspan="3">String table #<?php echo $id?></th></tr> <?php
-function dump_unicode_or_empty($uni_str) -{ - if ($uni_str) - dump_unicode($uni_str); - else - echo "<span class="resmeta">empty</span>"; -} - if (!$compare) { echo "<tr style="background-color: #e8e8ff"><td colspan="2" style="text-align: right">"; @@ -78,29 +69,8 @@ else echo "<tr style="background-color: #e8e8ff"><td>id</td><td>".get_lang_name($lang)."</td><td>".get_lang_name($MASTER_LANGUAGE)."</td></tr>"; }
-for ($i=0; $i<16; $i++) { - $extra = ""; +$res->dump($master_res);
- $uni_str = $res->getString($i); - if ($compare) - { - $master_uni_str = $master_res->getString($i); - if ((!$master_uni_str && $uni_str) || ($master_uni_str && !$uni_str)) - $extra = " style="background-color: #ffb8d0""; - } - - echo "<tr$extra><td valign="top">".(($id-1)*16+$i)."</td>"; - echo "<td>"; - - dump_unicode_or_empty($uni_str); - - if ($compare) - { - echo "</td><td>"; - dump_unicode_or_empty($master_uni_str); - } - echo "</td></tr>\n"; -} ?> </table> </body>