--- loncom/build/lpml_parse.pl 2001/09/08 23:02:55 1.9 +++ loncom/build/lpml_parse.pl 2001/09/17 18:25:15 1.10 @@ -177,7 +177,8 @@ while ($token = $parser->get_token()) { } } $cleanstring=&trim($cleanstring); -$cleanstring=~s/\s*\n\s*//g; +$cleanstring=~s/\>\s*\n\s*\\THE END\n"; } if ($mode eq 'install') { return ''; @@ -316,7 +317,7 @@ sub format_lpml { my (@tokeninfo)=@_; my $date=`date`; chop $date; if ($mode eq 'html') { - $lpml = "LPML BEGINNING: $date"; + $lpml = "
LPML BEGINNING: $date"; } elsif ($mode eq 'install') { print '# LPML install targets. Linux Packaging Markup Language,'; @@ -334,7 +335,7 @@ sub format_targetroot { $text=$targetroot if $targetroot; $parser->get_tag('/targetroot'); if ($mode eq 'html') { - return $targetroot="\nTARGETROOT: $text"; + return $targetroot="\n
TARGETROOT: $text"; } elsif ($mode eq 'install') { return '# TARGET INSTALL LOCATION is "'.$targetroot."\"\n"; @@ -349,7 +350,7 @@ sub format_sourceroot { $text=$sourceroot if $sourceroot; $parser->get_tag('/sourceroot'); if ($mode eq 'html') { - return $sourceroot="\nSOURCEROOT: $text"; + return $sourceroot="\n
SOURCEROOT: $text"; } elsif ($mode eq 'install') { return '# SOURCE CODE LOCATION IS "'.$sourceroot."\"\n";; @@ -363,7 +364,8 @@ sub format_categories { my $text=&trim($parser->get_text('/categories')); $parser->get_tag('/categories'); if ($mode eq 'html') { - return $categories="\nBEGIN CATEGORIES\n$text\nEND CATEGORIES\n"; + return $categories="\n
BEGIN CATEGORIES\n$text\n". + "
END CATEGORIES\n"; } else { return ''; @@ -378,8 +380,8 @@ sub format_category { $parser->get_text('/category'); $parser->get_tag('/category'); if ($mode eq 'html') { - return $category="\nCATEGORY $category_att_name $category_att_type ". - "$chmod $chown"; + return $category="\n
CATEGORY $category_att_name ". + "$category_att_type $chmod $chown"; } else { if ($category_att_type eq $categorytype) { @@ -417,7 +419,7 @@ sub format_rpm { my $text=&trim($parser->get_text('/rpm')); $parser->get_tag('/rpm'); if ($mode eq 'html') { - return $rpm="\nBEGIN RPM\n$text\nEND RPM"; + return $rpm="\n
BEGIN RPM\n$text\n
END RPM"; } else { return ''; @@ -428,7 +430,7 @@ sub format_rpmSummary { my $text=&trim($parser->get_text('/rpmSummary')); $parser->get_tag('/rpmSummary'); if ($mode eq 'html') { - return $rpmSummary="\nRPMSUMMARY $text"; + return $rpmSummary="\n
RPMSUMMARY $text"; } else { return ''; @@ -439,7 +441,7 @@ sub format_rpmName { my $text=&trim($parser->get_text('/rpmName')); $parser->get_tag('/rpmName'); if ($mode eq 'html') { - return $rpmName="\nRPMNAME $text"; + return $rpmName="\n
RPMNAME $text"; } else { return ''; @@ -450,7 +452,7 @@ sub format_rpmVersion { my $text=$parser->get_text('/rpmVersion'); $parser->get_tag('/rpmVersion'); if ($mode eq 'html') { - return $rpmVersion="\nRPMVERSION $text"; + return $rpmVersion="\n
RPMVERSION $text"; } else { return ''; @@ -461,7 +463,7 @@ sub format_rpmRelease { my $text=$parser->get_text('/rpmRelease'); $parser->get_tag('/rpmRelease'); if ($mode eq 'html') { - return $rpmRelease="\nRPMRELEASE $text"; + return $rpmRelease="\n
RPMRELEASE $text"; } else { return ''; @@ -472,7 +474,7 @@ sub format_rpmVendor { my $text=$parser->get_text('/rpmVendor'); $parser->get_tag('/rpmVendor'); if ($mode eq 'html') { - return $rpmVendor="\nRPMVENDOR $text"; + return $rpmVendor="\n
RPMVENDOR $text"; } else { return ''; @@ -483,7 +485,7 @@ sub format_rpmBuildRoot { my $text=$parser->get_text('/rpmBuildRoot'); $parser->get_tag('/rpmBuildRoot'); if ($mode eq 'html') { - return $rpmBuildRoot="\nRPMBUILDROOT $text"; + return $rpmBuildRoot="\n
RPMBUILDROOT $text"; } else { return ''; @@ -494,7 +496,7 @@ sub format_rpmCopyright { my $text=$parser->get_text('/rpmCopyright'); $parser->get_tag('/rpmCopyright'); if ($mode eq 'html') { - return $rpmCopyright="\nRPMCOPYRIGHT $text"; + return $rpmCopyright="\n
RPMCOPYRIGHT $text"; } else { return ''; @@ -505,7 +507,7 @@ sub format_rpmGroup { my $text=$parser->get_text('/rpmGroup'); $parser->get_tag('/rpmGroup'); if ($mode eq 'html') { - return $rpmGroup="\nRPMGROUP $text"; + return $rpmGroup="\n
RPMGROUP $text"; } else { return ''; @@ -516,7 +518,7 @@ sub format_rpmSource { my $text=$parser->get_text('/rpmSource'); $parser->get_tag('/rpmSource'); if ($mode eq 'html') { - return $rpmSource="\nRPMSOURCE $text"; + return $rpmSource="\n
RPMSOURCE $text"; } else { return ''; @@ -527,7 +529,7 @@ sub format_rpmAutoReqProv { my $text=$parser->get_text('/rpmAutoReqProv'); $parser->get_tag('/rpmAutoReqProv'); if ($mode eq 'html') { - return $rpmAutoReqProv="\nRPMAUTOREQPROV $text"; + return $rpmAutoReqProv="\n
RPMAUTOREQPROV $text"; } else { return ''; @@ -538,7 +540,7 @@ sub format_rpmdescription { my $text=$parser->get_text('/rpmdescription'); $parser->get_tag('/rpmdescription'); if ($mode eq 'html') { - return $rpmdescription="\nRPMDESCRIPTION $text"; + return $rpmdescription="\n
RPMDESCRIPTION $text"; } else { return ''; @@ -549,7 +551,7 @@ sub format_rpmpre { my $text=$parser->get_text('/rpmpre'); $parser->get_tag('/rpmpre'); if ($mode eq 'html') { - return $rpmpre="\nRPMPRE $text"; + return $rpmpre="\n
RPMPRE $text"; } else { return ''; @@ -560,7 +562,8 @@ sub format_directories { my $text=$parser->get_text('/directories'); $parser->get_tag('/directories'); if ($mode eq 'html') { - return $directories="\nBEGIN DIRECTORIES\n$text\nEND DIRECTORIES\n"; + return $directories="\n
BEGIN DIRECTORIES\n$text\n
". + "END DIRECTORIES\n"; } elsif ($mode eq 'install') { return "\n".'directories:'."\n".$text; @@ -576,7 +579,8 @@ sub format_directory { $parser->get_text('/directory'); $parser->get_tag('/directory'); if ($mode eq 'html') { - return $directory="\nDIRECTORY $targetdir $categoryname $description"; + return $directory="\n
DIRECTORY $targetdir $categoryname ". + "$description"; } elsif ($mode eq 'install') { return "\t".'install '.$categoryhash{$categoryname}.' -d '. @@ -612,7 +616,7 @@ sub format_categoryname { sub format_description { my @tokeninfo=@_; $description=''; - my $text=&trim($parser->get_text('/description')); + my $text=&htmlsafe(&trim($parser->get_text('/description'))); if ($text) { $parser->get_tag('/description'); $description=$text; @@ -624,7 +628,7 @@ sub format_files { my $text=$parser->get_text('/files'); $parser->get_tag('/files'); if ($mode eq 'html') { - return $directories="\nBEGIN FILES\n$text\nEND FILES\n"; + return $directories="\n
BEGIN FILES\n$text\n
END FILES\n"; } elsif ($mode eq 'install') { return "\n".'files:'."\n".$text. @@ -644,7 +648,7 @@ sub format_links { my $text=$parser->get_text('/links'); $parser->get_tag('/links'); if ($mode eq 'html') { - return $links="\nBEGIN LINKS\n$text\nEND LINKS\n"; + return $links="\n
BEGIN LINKS\n$text\n
END LINKS\n"; } elsif ($mode eq 'install') { return "\n".'links:'."\n\t".$text; @@ -662,7 +666,7 @@ sub format_file { if ($source) { $parser->get_tag('/file'); if ($mode eq 'html') { - return ($file="\nBEGIN FILE\n". + return ($file="\n
BEGIN FILE\n". "$source $target $categoryname $description $note " . "$build $status $dependencies" . "\nEND FILE"); @@ -692,13 +696,13 @@ sub format_link { if ($linkto) { $parser->get_tag('/link'); if ($mode eq 'html') { - return $link="\nBEGIN LINK\n". + return $link="\n
BEGIN LINK\n". "$linkto $target $categoryname $description $note " . "$build $status $dependencies" . "\nEND LINK"; } elsif ($mode eq 'install') { - my @targets=split(/\;/,$target); + my @targets=map {s/^\s*//;s/\s$//;$_} split(/\;/,$target); foreach my $tgt (@targets) { push @links,"\t".'ln -fs /'.$linkto.' /'.$targetroot.$tgt. "\n"; @@ -722,7 +726,7 @@ sub format_fileglob { if ($sourcedir) { $parser->get_tag('/fileglob'); if ($mode eq 'html') { - return $fileglob="\nBEGIN FILEGLOB\n". + return $fileglob="\n
BEGIN FILEGLOB\n". "$glob sourcedir $targetdir $categoryname $description $note ". "$build $status $dependencies $filenames" . "\nEND FILEGLOB"; @@ -848,6 +852,13 @@ sub format_linkto { } return ''; } +# ------------------------------------- Render less-than and greater-than signs +sub htmlsafe { + my $text=@_[0]; + $text =~ s//>/g; + return $text; +} # --------------------------------------- remove starting and ending whitespace sub trim { my ($s)=@_; $s=~s/^\s*//; $s=~s/\s*$//; return $s;