Imported Upstream version 4.6.0.125

Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2016-08-03 10:59:49 +00:00
parent a569aebcfd
commit e79aa3c0ed
17047 changed files with 3137615 additions and 392334 deletions

View File

@@ -7,6 +7,10 @@ if ($ARGV[0] eq "-h"){
shift @ARGV;
shift @ARGV;
}
open (FILE, "$dir/api-style.css" || die "Did not find $dir/api-style.css");
while (<FILE>){
$css = $css . $_;
}
if ($ARGV[0] eq "-t"){
$dir = $ARGV[1];
@@ -49,109 +53,114 @@ if ($html){
<?xml version="1.0" encoding="utf-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>$name</title>
<style type="text/css">
h3 {
font-size: 18px;
padding-bottom: 4pt;
border-bottom: 2px solid #dddddd;
}
.api {
border: 1px solid;
padding: 10pt;
margin: 10pt;
}
.api-entry {
border-bottom: none;
font-size: 18px;
}
.prototype {
border: 1px solid;
background-color: #f2f2f2;
padding: 5pt;
margin-top: 5pt;
margin-bottom: 5pt;
}
.header {
border: 1px solid;
padding: 0 0 5pt 5pt;
margin: 10pt;
white-space: pre;
font-family: monospace;
}
.code {
border: 1px solid;
padding: 0 0 5pt 5pt;
margin: 10pt;
white-space: pre;
font-family: monospace;
}
<title>$name</title>
<style type="text/css">
$css
</style>
</head>
<body>
<div class="mapi-docs">
EOF
@a = split (/\n/, $files_content[$f]);
$strikeextra = "";
$api_shown = 0;
for ($ai = 0; $ai < $#a; $ai++){
$line = $a[$ai];
($api,$caption) = $line =~ /<h4><a name=\"api:(\w+)\">(\w+)<\/a><\/h4>/;
if ($api ne ""){
if ($api_shown == 1){
print OUT "</div>";
print OUT "</div> <!-- class=mapi -->\n\n";
if ($deprecated{$api}){
$strike = "mapi-strike";
$strikeextra = "</div><br><div class='mapi-deprecated'><b>Deprecated:</b> " . $deprecated{$api};
} else {
$strike = "";
$strikeextra = "";
}
}
$api_shown = 1;
$proto = $prototype{$api};
if ($proto eq ""){
$proto = "Prototype: $api";
$proto = "$api";
}
print OUT<<EOF;
<a name="api:$api"></a>
<div class="api">
<div class="api-entry">$api</div>
print OUT<<EOF;
<a name="api:$api"></a>
<div class="mapi">
<div class="mapi-entry $strike"><code>$api$strikeextra</code></div>
<div class="mapi-height-container">
<div class="mapi-ptr-container"></div>
<div class="mapi-description">
<div class="mapi-ptr"></div>
<div class="prototype">$proto</div>
<p>
<div class="mapi-declaration mapi-section">Syntax</div>
<div class="mapi-prototype">$proto</div>
<p>
EOF
&opt_print ("Parameters", $arguments{$api}, 1);
&opt_print ("Returns", $returns{$api}, 1);
&opt_print ("Remarks", $bodies{$api}, 0);
print OUT "\n";
$ppars = $arguments{$api};
if ($ppars ne "" && (!($ppars =~ /^[ \t]+$/))){
print OUT " <div class=\"mapi-section\">Parameters</div>\n";
print OUT " <table class=\"mapi-parameters\"><tbody>".${arguments{$api}}."</tbody></table>";
}
&opt_print ("Return value", $returns{$api}, 0);
&opt_print ("Description", $bodies{$api}, 0);
print OUT " </div><!--mapi-description-->\n </div><!--height container-->\n";
} else {
if ($line =~ /@API_IDX@/){
$apis_toc = &create_toc ($apis[$f]);
$line =~ s/\@API_IDX\@/$apis_toc/;
}
if ($line =~ /^<h/){
print OUT "</div>";
if ($line =~ /^<h4/){
print OUT "</div>\n";
$api_shown = 0;
}
if ($line =~ /`/){
}
print OUT "$line\n";
}
}
print OUT<<EOF;
</div>
</body>
</html>
EOF
close OUT;
system ("$ENV{runtimedir}/mono-wrapper convert.exe $dir/html/$name $dir/html/x-$name");
# clean up the mess that AgilityPack does, it CDATAs our CSS
open HACK, "$dir/html/x-$name" || die "Could not open $dir/html/x-$name";
open HACKOUT, ">$dir/deploy/$name" || die "Could not open output";
$line = 0;
$doprint = 0;
while (<HACK>){
print HACKOUT $last if ($doprint);
$line++;
s/^\/\/<!\[CDATA\[//;
s/^\/\/\]\]>\/\///;
print HACKOUT $_;
# Remove the junk <span> wrapper generated by AgilityPack
if ($line==1){
s/<span>//;
}
if (/<style type/){
# Replace the CSS in the XHTML output with the original CSS
print HACKOUT $_;
print HACKOUT $css;
while (<HACK>){
last if (/<\/style>/);
}
}
$last = $_;
$doprint = 1;
}
if (!($last =~ /span/)){
print HACKOUT $last;
}
#system ("cp.exe $dir/html/$name $dir/deploy/$name");
}
}
@@ -168,17 +177,29 @@ sub process_doc {
$returns = "";
$body = "";
$functions[$fn++] = $func;
$deprecated = 0;
# Process arguments
while (<>){
if (/^ \*\*?\//){
$body =~ s/[@#](\w+)/<i>\1<\/i>/g;
$returns =~ s/[@#](\w+)/<i>\1<\/i>/g;
s/NULL/<code>NULL<\/code>/g;
s/TRUE/<code>TRUE<\/code>/g;
s/FALSE/<code>FALSE<\/code>/g;
if (/^ \*\*?\//){
$body =~ s/@(\w+)/<i>\1<\/i>/g;
$returns =~ s/@(\w+)/<i>\1<\/i>/g;
$args =~ s/@(\w+)/<i>\1<\/i>/g;
$body =~ s/#(\w+)/<code>\1<\/code>/g;
$returns =~ s/#(\w+)/<code>\1<\/code>/g;
$args =~ s/#(\w+)/<code>\1<\/code>/g;
$returns =~ s/\`([:.\w\*]+)\`/<code>\1<\/code>/g;
$args =~ s/\`([:.\w\*]+)\`/<code>\1<\/code>/g;
$body =~ s/\`([:.\w\*]+)\`/<code>\1<\/code>/g;
$body =~ s/\n/ /;
$bodies{$func} = $body;
$arguments{$func} = $args;
$deprecated{$func} = $deprecated;
$returns{$func} = $returns;
$proto = "";
while (<>){
@@ -195,14 +216,20 @@ sub process_doc {
}
chop;
s/^\ \*//;
$_ = "\n<p>" if (/^\s+$/);
$_ = "<p>" if (/^\s*$/);
if ($inbody == 0){
if (/\s*(\w+):(.*)/){
$args .= "<dt><i>$1:</i></dt><dd>$2</dd>";
if ($1 eq "deprecated"){
$deprecated = $2;
} else {
#$args .= "<dt><i>$1:</i></dt><dd>$2</dd>";
$args .= "<tr><td><i>$1</i><td>$2</td></td></tr>";
}
} else {
$body = "\t$_\n";
$inbody = 1;
}
} elsif ($inbody == 1) {
@@ -246,6 +273,9 @@ sub create_toc {
chop;
$p = $prototype{$line};
($ret, $xname, $args) = $p =~ /(.*)\n(\w+)[ \t](.*)/;
if ($xname eq ""){
$xname = $line;
}
$rspace = " " x ($type_size - length ($ret));
$nspace = " " x ($name_size - length ($xname));
@@ -289,11 +319,7 @@ sub opt_print {
my ($caption, $opttext, $quote) = @_;
if ($opttext ne "" && (!($opttext =~ /^[ \t]+$/))){
print OUT "<b>$caption</b>\n";
if ($quote == 1){
print OUT "<blockquote>$opttext</blockquote>\n";
} else {
print OUT "<p>$opttext\n";
}
print OUT " <div class=\"mapi-section\">$caption</div>\n";
print OUT " <div>$opttext</div>\n";
}
}