Address Reviewer Comments

Address Reviewer Comments
This commit is contained in:
Mark McKinnon 2021-08-30 13:01:17 -04:00
parent db1f0e020d
commit 07f39ddaa6
4 changed files with 19 additions and 36 deletions

View File

@ -42,7 +42,6 @@
package shellbags; package shellbags;
use strict; use strict;
use Time::Local; use Time::Local;
use Encode::Unicode;
my %config = (hive => "USRCLASS\.DAT", my %config = (hive => "USRCLASS\.DAT",
hivemask => 32, hivemask => 32,
@ -861,10 +860,10 @@ sub parseFolderEntry {
my $longname = (split(/\00\00/,$str,2))[0]; my $longname = (split(/\00\00/,$str,2))[0];
if ($longname ne "") { if ($longname ne "") {
$item{name} = _uniToAscii($longname); $item{name} = Utf16ToUtf8($longname);
} }
else { else {
$item{name} = _uniToAscii($shortname); $item{name} = UTF16ToUtf8($shortname);
} }
} }
return %item; return %item;
@ -957,7 +956,7 @@ sub parseFolderEntry2 {
$item{name} = (split(/\00\00/,$str,2))[0]; $item{name} = (split(/\00\00/,$str,2))[0];
$item{name} =~ s/\13\20/\2D\00/; $item{name} =~ s/\13\20/\2D\00/;
$item{name} = _uniToAscii($item{name}); $item{name} = Utf16ToUtf8($item{name});
return %item; return %item;
} }
@ -1120,13 +1119,14 @@ sub getNum48 {
} }
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# _uniToAscii() # Utf16ToUtf8()
#--------------------------------------------------------------------- #---------------------------------------------------------------------
sub _uniToAscii { sub Utf16ToUtf8 {
my $str = $_[0]; my $str = $_[0];
Encode::from_to($str,'UTF-16LE','utf8'); Encode::from_to($str,'UTF-16LE','utf8');
$str = Encode::decode_utf8($str); $str = Encode::decode_utf8($str);
return $str; return $str;
} }
1; 1;

View File

@ -8,7 +8,6 @@
#----------------------------------------------------------- #-----------------------------------------------------------
package shellbags_test; package shellbags_test;
use strict; use strict;
use Encode::Unicode;
require 'shellitems.pl'; require 'shellitems.pl';
@ -412,22 +411,13 @@ sub parseFolderItem {
$longname =~ s/\x00//g; $longname =~ s/\x00//g;
if ($longname ne "") { if ($longname ne "") {
$item{name} = _uniToAscii($longname); $item{name} = Utf16ToUtf8($longname);
} }
else { else {
$item{name} = _uniToAscii($shortname); $item{name} = Utf16ToUtf8($shortname);
} }
return %item; return %item;
} }
#---------------------------------------------------------------------
# _uniToAscii()
#---------------------------------------------------------------------
sub _uniToAscii {
my $str = $_[0];
Encode::from_to($str,'UTF-16LE','utf8');
$str = Encode::decode_utf8($str);
return $str;
}
1; 1;

View File

@ -36,7 +36,9 @@
package shellbags_xp; package shellbags_xp;
use strict; use strict;
use Time::Local; use Time::Local;
use Encode::Unicode;
require 'shellitems.pl';
my %config = (hive => "NTUSER\.DAT", my %config = (hive => "NTUSER\.DAT",
hivemask => 32, hivemask => 32,
@ -780,10 +782,10 @@ sub parseFolderEntry {
$longname =~ s/\x00//g; $longname =~ s/\x00//g;
if ($longname ne "") { if ($longname ne "") {
$item{name} = _uniToAscii($longname); $item{name} = Utf16ToUtf8($longname);
} }
else { else {
$item{name} = _uniToAscii($shortname); $item{name} = _Utf16ToUtf8($shortname);
} }
return %item; return %item;
} }
@ -872,7 +874,7 @@ sub parseFolderEntry2 {
$item{name} = (split(/\x00\x00/,$str,2))[0]; $item{name} = (split(/\x00\x00/,$str,2))[0];
$item{name} =~ s/\x13\x20/\x2D\x00/; $item{name} =~ s/\x13\x20/\x2D\x00/;
$item{name} = _uniToAscii($item{name}); $item{name} = Utf16ToUtf8($item{name});
return %item; return %item;
} }
@ -932,14 +934,5 @@ sub printData {
return @display; return @display;
} }
#---------------------------------------------------------------------
# _uniToAscii()
#---------------------------------------------------------------------
sub _uniToAscii {
my $str = $_[0];
Encode::from_to($str,'UTF-16LE','utf8');
$str = Encode::decode_utf8($str);
return $str;
}
1; 1;

View File

@ -635,10 +635,10 @@ sub parseFolderEntry {
$longname =~ s/\x00//g; $longname =~ s/\x00//g;
if ($longname ne "") { if ($longname ne "") {
$item{name} = _uniToAscii($longname); $item{name} = Utf16ToUtf8($longname);
} }
else { else {
$item{name} = _uniToAscii($shortname); $item{name} = Utf16ToUtf8($shortname);
} }
return %item; return %item;
} }
@ -717,7 +717,7 @@ sub parseFolderEntry2 {
$item{name} = (split(/\x00\x00/,$str,2))[0]; $item{name} = (split(/\x00\x00/,$str,2))[0];
$item{name} =~ s/\x13\x20/\x2D\x00/; $item{name} =~ s/\x13\x20/\x2D\x00/;
$item{name} = _uniToAscii($item{name}); $item{name} = Utf16ToUtf8($item{name});
return %item; return %item;
} }
@ -839,9 +839,9 @@ sub getNum48 {
} }
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# _uniToAscii() # Utf16ToUtf8()
#--------------------------------------------------------------------- #---------------------------------------------------------------------
sub _uniToAscii { sub Utf16ToUtf8 {
my $str = $_[0]; my $str = $_[0];
Encode::from_to($str,'UTF-16LE','utf8'); Encode::from_to($str,'UTF-16LE','utf8');
$str = Encode::decode_utf8($str); $str = Encode::decode_utf8($str);