Diff for /loncom/build/lpml_parse.pl between versions 1.9 and 1.10

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

Removed from v.1.9  
changed lines
  Added in v.1.10


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>