#!/usr/bin/perl -w # Bart Garst - 7/1/2004 # additional comments at bottom of file ############################################################################# # Copyright (c) 2001-2005 CrystalClear Software, Inc. # # Subject to the Boost Software License, Version 1.0. # # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) # ############################################################################# use strict; # key-value of file name and id attribute # if the attributes are changed here it would be a good idea to # also change the links in doxy.xml my %files = ( 'date_time_autodoc.boostbook' => 'date_time_reference', 'gregorian_autodoc.boostbook' => 'gregorian_reference', 'posix_time_autodoc.boostbook' => 'posix_time_reference', 'local_time_autodoc.boostbook' => 'local_time_reference' ); foreach my $key(keys %files) { rewrite_tags($key, $files{$key}); } exit; ### subroutines ### # separate words at underscores and capitalize first letter of each sub make_title { my $a = shift || die "Missing required parameter to make_title()\n"; my @wrds = split(/_/, $a); # remove underscores foreach(@wrds){ $_ = "\u$_"; # capitalize first letter } $a = join(" ",@wrds); return $a; } sub rewrite_tags { my $filename = shift || die "Error: argument 1 missing to sub $!"; my $id_tag = shift || die "Error: argument 2 missing to sub $!"; my ($line, @new_file, $title, $processed); $processed = 1; # has this file already been processed? print "...processing $filename...\n"; # prepare a title from id attribute $title = make_title($id_tag); # open & read file and change appropriate line open(INP, "<$filename") || die "File open (read) failed: $!"; while($line = ){ if($line =~ //) { push(@new_file, "
\n"); push(@new_file, "$title\n"); $processed = 0; # file had not been previously processed } elsif($line =~ /<\/library-reference>/) { push(@new_file, "
\n"); } else{ push(@new_file, $line); } } close(INP); # open & write new file w/ same name open(OTP, ">$filename") || die "File open (write) failed: $!"; print OTP shift(@new_file); if($processed == 0){ # has not been previously processed so add license my($day, $year) = (localtime)[3,5]; my $month = (qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec))[(localtime)[4]]; $year += 1900; # adjust year print OTP < EO_LIC } foreach(@new_file){ print OTP "$_"; } close(OTP); } __END__ Rewrites the library-reference tagset as a section tagset and adds a title to the generated *.boostbook files. It will NOT update a file that has already been rewritten. Change log 7/19/2004 - rewrite library-reference tags as section tags and add title tags - renamed fix_id sub to rewrite_tags. 8/31/2004 - added license to this file and writes license to boostbook files 11/01/2004 - fixed minor bug that placed multiple license statements in files if input file had already had it's tags fixed. - added a processed date to the license statement 12/02/2005 - added local_time_autodoc.boostbook - updated copyrights to 2005