Skip to content

Commit

Permalink
xorimage: 16進数パターンのバイト配列返還にUtils.StrToByteArray()を使用
Browse files Browse the repository at this point in the history
エラー処理も追加(本コミット以前は変換失敗時に例外落ち)
  • Loading branch information
musashino205 committed Oct 2, 2024
1 parent 4a17cfe commit a9d0d9a
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 4 deletions.
18 changes: 18 additions & 0 deletions firmware-wintools/Lang/Tools/xorimage/XorimageRes.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions firmware-wintools/Lang/Tools/xorimage/XorimageRes.ja-JP.resx
Original file line number Diff line number Diff line change
Expand Up @@ -189,4 +189,10 @@
<data name="Warning.LargeOffset" xml:space="preserve">
<value>指定されたオフセットはファイルサイズを超えています。 '0' を使用します</value>
</data>
<data name="Error.InvalidPatternChar" xml:space="preserve">
<value>指定されたパターン文字列(16進数)は無効な文字を含んでいます("{0}")</value>
</data>
<data name="Error.ConvertHexPatternFail" xml:space="preserve">
<value>指定されたパターン文字列(16進数)の変換に失敗しました</value>
</data>
</root>
6 changes: 6 additions & 0 deletions firmware-wintools/Lang/Tools/xorimage/XorimageRes.resx
Original file line number Diff line number Diff line change
Expand Up @@ -192,4 +192,10 @@
<data name="Warning.LargeOffset" xml:space="preserve">
<value>the specified offset exceeds the file length, use '0'</value>
</data>
<data name="Error.InvalidPatternChar" xml:space="preserve">
<value>the specified hex pattern contains invalid character(s) ("{0}")</value>
</data>
<data name="Error.ConvertHexPatternFail" xml:space="preserve">
<value>failed to convert the specified hex pattern</value>
</data>
</root>
22 changes: 18 additions & 4 deletions firmware-wintools/Tools/xorimage/xorimage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,8 @@ private int

if (IsHex)
{
string tmp;

if (Pattern.StartsWith("0x"))
{
Pattern = Pattern.Substring(2);
Expand All @@ -130,10 +132,22 @@ private int
return 1;
}

p_len /= 2;
ptnAry = new byte[p_len];
for (int i = 0; i < p_len; i++)
ptnAry[i] = Convert.ToByte(Pattern.Substring(i * 2, 2), 16);
tmp = Pattern;
if (!Utils.StrToByteArray(ref tmp, out ptnAry))
{
/* エラーになった文字が格納されたかチェック */
if (!tmp.Equals(Pattern))
Console.Error.WriteLine(
Lang.Resource.Main_Error_Prefix +
Lang.Tools.XorImageRes.Error_InvalidPatternChar,
tmp);
else
Console.Error.WriteLine(
Lang.Resource.Main_Error_Prefix +
Lang.Tools.XorImageRes.Error_ConvertHexPatternFail);

return 1;
}
}
else
ptnAry = Encoding.ASCII.GetBytes(Pattern);
Expand Down

0 comments on commit a9d0d9a

Please sign in to comment.