summaryrefslogtreecommitdiff
path: root/bin/MakeProjectCreator/modules/ProjectCreator.pm
diff options
context:
space:
mode:
Diffstat (limited to 'bin/MakeProjectCreator/modules/ProjectCreator.pm')
-rw-r--r--bin/MakeProjectCreator/modules/ProjectCreator.pm25
1 files changed, 22 insertions, 3 deletions
diff --git a/bin/MakeProjectCreator/modules/ProjectCreator.pm b/bin/MakeProjectCreator/modules/ProjectCreator.pm
index f5ff5f42a7e..389a360d986 100644
--- a/bin/MakeProjectCreator/modules/ProjectCreator.pm
+++ b/bin/MakeProjectCreator/modules/ProjectCreator.pm
@@ -45,6 +45,7 @@ my(%validNames) = ('exename' => 1,
'libs' => 1,
'pch_header' => 1,
'pch_source' => 1,
+ 'ssl' => 1,
'tao' => 1,
'dllout' => 1,
'libout' => 1,
@@ -590,6 +591,21 @@ sub is_special_tag {
}
+sub escape_regex_special {
+ my($self) = shift;
+ my($name) = shift;
+
+ $name =~ s/\\/\\\\/g;
+ $name =~ s/\$/\\\$/g;
+ $name =~ s/\[/\\\[/g;
+ $name =~ s/\]/\\\]/g;
+ $name =~ s/\(/\\\(/g;
+ $name =~ s/\)/\\\)/g;
+
+ return $name;
+}
+
+
sub sift_files {
my($self) = shift;
my($files) = shift;
@@ -631,8 +647,10 @@ sub sift_files {
## Now deal with the saved files
if (defined $saved[0]) {
- my($pjname) = $self->get_assignment('project_name');
- foreach my $file (@saved) {
+ my($pjname) = $self->escape_regex_special(
+ $self->get_assignment('project_name'));
+ foreach my $save (@saved) {
+ my($file) = $self->escape_regex_special($save);
if ($pjname =~ /$file/ || $file =~ /$pjname/) {
push(@$array, $file);
}
@@ -733,7 +751,8 @@ sub generated_source_listed {
foreach my $val (@$array) {
foreach my $ext (@gen) {
foreach my $i (@$idl) {
- if ($val =~ /$i$ext$/) {
+ my($ifile) = $self->escape_regex_special($i);
+ if ($val =~ /$ifile$ext$/) {
push(@found, $val);
}
}