summaryrefslogtreecommitdiff
path: root/bin/MakeProjectCreator/modules/Creator.pm
diff options
context:
space:
mode:
Diffstat (limited to 'bin/MakeProjectCreator/modules/Creator.pm')
-rw-r--r--bin/MakeProjectCreator/modules/Creator.pm36
1 files changed, 36 insertions, 0 deletions
diff --git a/bin/MakeProjectCreator/modules/Creator.pm b/bin/MakeProjectCreator/modules/Creator.pm
index 7af3fbdd8c4..8f891ceaff8 100644
--- a/bin/MakeProjectCreator/modules/Creator.pm
+++ b/bin/MakeProjectCreator/modules/Creator.pm
@@ -534,6 +534,42 @@ sub process_assignment_sub {
}
+sub fill_type_name {
+ my($self) = shift;
+ my($name) = shift;
+ my($def) = shift;
+
+ if ($name =~ /\*/) {
+ my($pre) = $def . '_';
+ my($mid) = '_' . $def . '_';
+ my($post) = '_' . $def;
+
+ ## Replace the beginning and end first then the middle
+ $name =~ s/^\*/$pre/;
+ $name =~ s/\*$/$post/;
+ $name =~ s/\*/$mid/g;
+
+ ## If any one word is capitalized then capitalize each word
+ if ($name =~ /[A-Z][0-9a-z_]+/) {
+ ## Do the first word
+ if ($name =~ /^([a-z])([^_]+)/) {
+ my($first) = uc($1);
+ my($rest) = $2;
+ $name =~ s/^[a-z][^_]+/$first$rest/;
+ }
+ ## Do subsequent words
+ while($name =~ /(_[a-z])([^_]+)/) {
+ my($first) = uc($1);
+ my($rest) = $2;
+ $name =~ s/_[a-z][^_]+/$first$rest/;
+ }
+ }
+ }
+
+ return $name;
+}
+
+
sub save_state {
my($self) = shift;
my(%state) = ();