diff options
| author | Roman Divacky <rdivacky@FreeBSD.org> | 2010-02-16 09:31:36 +0000 |
|---|---|---|
| committer | Roman Divacky <rdivacky@FreeBSD.org> | 2010-02-16 09:31:36 +0000 |
| commit | ecb7e5c8afe929ee38155db94de6b084ec32a645 (patch) | |
| tree | 53010172e19c77ea447bcd89e117cda052ab52e0 /www/analyzer | |
| parent | 5044f5c816adfd5cba17f1adee1a10127296d0bf (diff) | |
Notes
Diffstat (limited to 'www/analyzer')
| -rw-r--r-- | www/analyzer/annotations.html | 34 | ||||
| -rw-r--r-- | www/analyzer/available_checks.html | 3 | ||||
| -rw-r--r-- | www/analyzer/content.css | 30 | ||||
| -rw-r--r-- | www/analyzer/dev_cxx.html | 52 | ||||
| -rw-r--r-- | www/analyzer/filing_bugs.html | 8 | ||||
| -rw-r--r-- | www/analyzer/images/analyzer_html.png | bin | 0 -> 63091 bytes | |||
| -rw-r--r-- | www/analyzer/images/analyzer_xcode.png | bin | 0 -> 87697 bytes | |||
| -rw-r--r-- | www/analyzer/images/tree/bullet.gif | bin | 0 -> 64 bytes | |||
| -rw-r--r-- | www/analyzer/images/tree/minus.gif | bin | 0 -> 79 bytes | |||
| -rw-r--r-- | www/analyzer/images/tree/plus.gif | bin | 0 -> 83 bytes | |||
| -rw-r--r-- | www/analyzer/index.html | 25 | ||||
| -rw-r--r-- | www/analyzer/installation.html | 5 | ||||
| -rw-r--r-- | www/analyzer/latest_checker.html.incl | 2 | ||||
| -rw-r--r-- | www/analyzer/menu.css | 80 | ||||
| -rw-r--r-- | www/analyzer/menu.html.incl | 74 | ||||
| -rw-r--r-- | www/analyzer/menu.js | 17 | ||||
| -rw-r--r-- | www/analyzer/scan-build.html | 42 | ||||
| -rw-r--r-- | www/analyzer/scripts/dbtree.js | 1 | ||||
| -rw-r--r-- | www/analyzer/scripts/menu.js | 17 |
19 files changed, 276 insertions, 114 deletions
diff --git a/www/analyzer/annotations.html b/www/analyzer/annotations.html index 819886e822cf..620471346365 100644 --- a/www/analyzer/annotations.html +++ b/www/analyzer/annotations.html @@ -5,9 +5,12 @@ <title>Source Annotations</title> <link type="text/css" rel="stylesheet" href="menu.css" /> <link type="text/css" rel="stylesheet" href="content.css" /> + <script type="text/javascript" src="scripts/menu.js"></script> + <script type="text/javascript" src="scripts/dbtree.js"></script> </head> <body> +<div id="page"> <!--#include virtual="menu.html.incl"--> <div id="content"> @@ -33,30 +36,34 @@ attributes</a>.</p> recognized by GCC. Their use can be conditioned using preprocessor macros (examples included on this page).</p> -<ul> -<li><a href="#generic">Annotations to Enhance Generic Checks</a></li> +<h4>Specific Topics</h4> + +<ul id="collapsetree" class="dbtree onclick multiple"> +<li><a href="#generic">Annotations to Enhance Generic Checks</a> <ul> - <li><a href="#null_checking">Null Pointer Checking</a></li> + <li><a href="#null_checking"><span>Null Pointer Checking</span></a> <ul> - <li><a href="#attr_nonnull">Attribute 'nonnull'</a></li> + <li><a href="#attr_nonnull"><span>Attribute 'nonnull'</span></a></li> </ul> + </li> </ul> -<li><a href="#macosx">Mac OS X API Annotations</a></li> +</li> +<li><a href="#macosx">Mac OS X API Annotations</a> <ul> - <li><a href="#cocoa_mem">Cocoa & Core Foundation Memory Management - Annotations</a></li> + <li><a href="#cocoa_mem">Cocoa & Core Foundation Memory Management Annotations</a> <ul> - <li><a href="#attr_ns_returns_retained">Attribute - 'ns_returns_retained'</a></li> - <li><a href="#attr_cf_returns_retained">Attribute - 'cf_returns_retained'</a></li> - </ul> + <li><a href="#attr_ns_returns_retained">Attribute 'ns_returns_retained'</a></li> + <li><a href="#attr_cf_returns_retained">Attribute 'cf_returns_retained'</a></li> + </ul> + </li> </ul> -<li><a href="#custom_assertions">Custom Assertion Handlers</a></li> +</li> +<li><a href="#custom_assertions">Custom Assertion Handlers</a> <ul> <li><a href="#attr_noreturn">Attribute 'noreturn'</a></li> <li><a href="#attr_analyzer_noreturn">Attribute 'analyzer_noreturn'</a></li> </ul> + </li> </ul> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> @@ -383,6 +390,7 @@ void my_assert_rtn(const char *, const char *, int, const char *) <span class="c </pre> </div> +</div> </body> </html> diff --git a/www/analyzer/available_checks.html b/www/analyzer/available_checks.html index 5e74fd8ea239..7af086506506 100644 --- a/www/analyzer/available_checks.html +++ b/www/analyzer/available_checks.html @@ -5,9 +5,11 @@ <title>Available Checks</title> <link type="text/css" rel="stylesheet" href="menu.css" /> <link type="text/css" rel="stylesheet" href="content.css" /> + <script type="text/javascript" src="scripts/menu.js"></script> </head> <body> +<div id="page"> <!--#include virtual="menu.html.incl"--> <div id="content"> @@ -29,6 +31,7 @@ of some of the bugs that it finds:</p> </div> +</div> </body> </html> diff --git a/www/analyzer/content.css b/www/analyzer/content.css index 3f47e3bea7ad..823fae265c95 100644 --- a/www/analyzer/content.css +++ b/www/analyzer/content.css @@ -2,8 +2,11 @@ html { margin: 0px; } body { margin: 8px; } html, body { padding:0px; + margin:0px; font-size:small; font-family:"Lucida Grande", "Lucida Sans Unicode", Arial, Verdana, Helvetica, sans-serif; background-color: #fff; color: #222; line-height:1.5; + background-color: #808080; + } h1, h2, h3, tt { color: #000 } @@ -27,7 +30,34 @@ IMG.img_slide { margin-right: auto } +#page { width:930px; text-align: left; margin: 0 auto; padding:0; + background-color: white; height:100%; + border-left: 1px solid #EBF0FA; +} + +#content { + clear: left; + padding: 1em 2em 0 2em; + background-color: #ffffff; +} + .itemTitle { color:#2d58b7 } + /* Tables */ tr { vertical-align:top } + +/* Collapsing Trees: http://dbtree.megalingo.com/web/demo/simple-collapsible-tree.cfm */ +#collapsetree, #collapsetree a:link, #collapsetree li a:link, #collapsetree a:visited, #collapsetree li a:visited{color:#000;text-decoration:none} +#collapsetree,#collapsetree ul{list-style-type:none; width:auto; margin:0; padding:0} +#collapsetree ul{padding-left:20px;display:none;overflow:auto} +#collapsetree li ul{margin:0 auto} +#collapsetree li{display:block;width:100%;line-height:20px;white-space:nowrap} +#collapsetree li a{display:block;padding-left:20px;color:#000;text-decoration:none;background:url(images/tree/bullet.gif) center left no-repeat;white-space:nowrap} +#collapsetree li a:hover{text-decoration:underline;background-color:transparent;color:#000} +#collapsetree li ul.click{display:block} +#collapsetree li.click a{background:url(images/tree/bullet.gif) center left no-repeat} +#collapsetree ul li.click a{background:url(images/tree/bullet.gif) center left no-repeat} +#collapsetree li a.subMenu,#collapsetree ul li a.subMenu{background:url(images/tree/plus.gif) center left no-repeat} +#collapsetree li a.click{background:url(images/tree/minus.gif) center left no-repeat} +#collapsetree ul li a.click{background:url(images/tree/minus.gif) center left no-repeat}
\ No newline at end of file diff --git a/www/analyzer/dev_cxx.html b/www/analyzer/dev_cxx.html new file mode 100644 index 000000000000..b5ef2b10919f --- /dev/null +++ b/www/analyzer/dev_cxx.html @@ -0,0 +1,52 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html> +<head> + <title>Analyzer Development: C++ Support</title> + <link type="text/css" rel="stylesheet" href="menu.css" /> + <link type="text/css" rel="stylesheet" href="content.css" /> + <script type="text/javascript" src="scripts/menu.js"></script> +</head> +<body> + +<div id="page"> +<!--#include virtual="menu.html.incl"--> +<div id="content"> + +<h1>C++ Support</h1> + +<p>The Clang frontend +now <a href="http://clang.llvm.org/cxx_status.html">supports the +majority of C++</a>. Support in the frontend for C++ language +features, however, does not automatically translate into support for +those features in the static analyzer. Language features need to be +specifically modeled in the static analyzer so their semantics can be +properly analyzed. Support for analyzing C++ and Objective-C++ files +is currently extremely limited, and we are only encouraging those who +are interested in contributing to the development of the analyzer to +try this functionality out at this time.</p> + +<p>Listed here are a set of open tasks that are prerequisites for +decent analysis of C++. This list is also not complete; new tasks +will be added as deemed necessary.</p> + +<ul> + <li>Control-Flow Graph Enhancements:</li> + <ul> + <li>Model C++ destructors</li> + <li>Model C++ initializers (in constructors)</li> + </ul> + <li>Path-Sensitive Analysis Engine (GRExprEngine):</li> + <ul> + <li>Model C++ casts</li> + <li>Model C++ constructors</li> + <li>Model C++ destructors</li> + <li>Model <tt>new</tt> and <tt>delete</tt></li> + </ul> +</ul> + +</div> +</div> +</body> +</html> + diff --git a/www/analyzer/filing_bugs.html b/www/analyzer/filing_bugs.html index 1ce02bee9286..746f1cb22eda 100644 --- a/www/analyzer/filing_bugs.html +++ b/www/analyzer/filing_bugs.html @@ -5,11 +5,12 @@ <title>Filing Bugs and Feature Requests</title> <link type="text/css" rel="stylesheet" href="menu.css" /> <link type="text/css" rel="stylesheet" href="content.css" /> + <script type="text/javascript" src="scripts/menu.js"></script> </head> <body> +<div id="page"> <!--#include virtual="menu.html.incl"--> - <div id="content"> <h1>Filing Bugs and Feature Requests</h1> @@ -47,15 +48,14 @@ component.</p> reports to Apple's <a href="http://bugreporter.apple.com">Bug Reporter</a> web site.</p> -<p>You are free to always file bugs through this website, but this option less +<p>You are free to always file bugs through this website, but this option is less attractive than filing bug reports through Bugzilla as not everyone who works on the analyzer has access to that bug database.</p> <h2>Apple-internal Users</h2> <p>Please file bugs in Radar against the <b>llvm - checker</b> component.</p> - - +</div> </div> </body> </html> diff --git a/www/analyzer/images/analyzer_html.png b/www/analyzer/images/analyzer_html.png Binary files differnew file mode 100644 index 000000000000..607ea1882e71 --- /dev/null +++ b/www/analyzer/images/analyzer_html.png diff --git a/www/analyzer/images/analyzer_xcode.png b/www/analyzer/images/analyzer_xcode.png Binary files differnew file mode 100644 index 000000000000..84c69809e8c3 --- /dev/null +++ b/www/analyzer/images/analyzer_xcode.png diff --git a/www/analyzer/images/tree/bullet.gif b/www/analyzer/images/tree/bullet.gif Binary files differnew file mode 100644 index 000000000000..de1534854699 --- /dev/null +++ b/www/analyzer/images/tree/bullet.gif diff --git a/www/analyzer/images/tree/minus.gif b/www/analyzer/images/tree/minus.gif Binary files differnew file mode 100644 index 000000000000..225f40daeb0d --- /dev/null +++ b/www/analyzer/images/tree/minus.gif diff --git a/www/analyzer/images/tree/plus.gif b/www/analyzer/images/tree/plus.gif Binary files differnew file mode 100644 index 000000000000..5398c801331c --- /dev/null +++ b/www/analyzer/images/tree/plus.gif diff --git a/www/analyzer/index.html b/www/analyzer/index.html index 2cb318625b4e..006bc5c26522 100644 --- a/www/analyzer/index.html +++ b/www/analyzer/index.html @@ -3,19 +3,26 @@ <html> <head> <title>Clang Static Analyzer</title> - <link type="text/css" rel="stylesheet" href="menu.css" /> <link type="text/css" rel="stylesheet" href="content.css" /> + <link type="text/css" rel="stylesheet" href="menu.css" /> + <script type="text/javascript" src="scripts/menu.js"></script> </head> <body> +<div id="page"> <!--#include virtual="menu.html.incl"--> - <div id="content"> -<h1>Clang Static Analyzer</h1> + +<table style="margin-top:0px" width="100%" border="0" cellpadding="0px" cellspacing="0"> +<tr><td> + +<h1>Clang Static Analyzer</h1> <p>The Clang Static Analyzer consists of both a source code analysis framework -and a standalone tool that finds bugs in C and Objective-C programs. The +and a standalone tool that finds bugs in C and Objective-C programs.</p> + +<p>The standalone tool is invoked from the command-line, and is intended to run in tandem with a build of a project or code base.</p> @@ -75,7 +82,7 @@ href="http://clang.llvm.org">Clang</a> project.</p> #wrappedcontent { padding:15px;} </style> -<div style="padding:0px"> +<div style="padding:0px; font-size: 90%"> <b class="spiffy"> <b class="spiffy1"><b></b></b> <b class="spiffy2"><b></b></b> @@ -107,6 +114,13 @@ href="http://clang.llvm.org">Clang</a> project.</p> <b class="spiffy1"><b></b></b></b> </div> +</td><td style="padding-left:10px"> +<a href="images/analyzer_xcode.png"><img src="images/analyzer_xcode.png" width="450x" border=0></a> +<center><b>Viewing static analyzer results in Xcode 3.2</b></center> +<a href="images/analyzer_html.png"><img src="images/analyzer_html.png" width="450px" border=0></a> +<center><b>Viewing static analyzer results in a web browser</b></center> +</td></tr></table> + <h2 id="StaticAnalysis">What is Static Analysis?</h2> <p>The term "static analysis" is conflated, but here we use it to mean @@ -182,6 +196,7 @@ file <a href="filing_bugs.html">feature requests</a> or contribute your own patches.</p> </div> +</div> </body> </html> diff --git a/www/analyzer/installation.html b/www/analyzer/installation.html index d2be711a4860..b84f26397237 100644 --- a/www/analyzer/installation.html +++ b/www/analyzer/installation.html @@ -5,11 +5,12 @@ <title>Obtaining the Static Analyzer</title> <link type="text/css" rel="stylesheet" href="menu.css" /> <link type="text/css" rel="stylesheet" href="content.css" /> + <script type="text/javascript" src="scripts/menu.js"></script> </head> <body> +<div id="page"> <!--#include virtual="menu.html.incl"--> - <div id="content"> <h1>Obtaining the Static Analyzer</h1> @@ -106,7 +107,7 @@ are located in <tt>$(SRCDIR)/tools/clang/tools/scan-build</tt> and are subject to change.</p></li> </ul> - +</div> </div> </body> </html> diff --git a/www/analyzer/latest_checker.html.incl b/www/analyzer/latest_checker.html.incl index cccedb5a88c0..87ef5fd45ed0 100644 --- a/www/analyzer/latest_checker.html.incl +++ b/www/analyzer/latest_checker.html.incl @@ -1 +1 @@ -<b><a href="http://files.me.com/tkremenek/pxfgyv">checker-232.tar.bz2</a></b> (built December 14, 2009) +<b><a href="http://checker.minormatter.com/checker-234.tar.bz2">checker-234.tar.bz2</a></b> (built February 9, 2010) diff --git a/www/analyzer/menu.css b/www/analyzer/menu.css index 0312f4c8b1f1..05c1bbfc82db 100644 --- a/www/analyzer/menu.css +++ b/www/analyzer/menu.css @@ -1,40 +1,52 @@ -/***************/ -/* page layout */ -/***************/ +/* From 'A list apart', 'dropdowns' */ -[id=menu] { - position:fixed; - width:35ex; +#nav { + clear: left; + margin:0; + padding:0; + font-weight: bold; + width:100%; + background-color: #EBF0FA; + border-bottom: 1px solid; + font-size: 80%; } -[id=content] { - /* ***** EDIT THIS VALUE IF CONTENT OVERLAPS MENU ***** */ - position:absolute; - left:39ex; - padding-right:4ex; +#nav a { + text-decoration: none; +} +#nav a:hover { + text-decoration: underline; } - -/**************/ -/* menu style */ -/**************/ - -#menu .submenu { - padding-top:1em; - display:block; +.menubar ul { + list-style: none inside; } - -#menu label { - display:block; - font-weight: bold; - text-align: center; - color: #ffffff; - background-color: #2d58b7; +.menubar li { + margin: 0; + padding: 5px; + text-align: left; + text-indent: 0px; + list-style-position: inside; + list-style:none; + float: left; + position: relative; + width: 13em; + cursor: default; + background-color: #EBF0FA; } -#menu a { - padding:0 .2em; - display:block; - text-align: center; - background-color: #EBF0FA; +.menubar li ul /* second level lists */ { + display: none; + position: absolute; + left: 0; } -#menu a:visited { - color:rgb(100,50,100); -}
\ No newline at end of file +.menubar li>ul { + border-left: 1px solid; + border-right: 1px solid; + border-bottom: 1px solid; + padding: 0; + margin: 5px 0; + left:auto; + font-weight: normal; +} +.menubar li:hover ul, li.over ul { /* lists nested under hovered list items */ + display: block; +} + diff --git a/www/analyzer/menu.html.incl b/www/analyzer/menu.html.incl index b7c95f10fb81..8d465e44c2bd 100644 --- a/www/analyzer/menu.html.incl +++ b/www/analyzer/menu.html.incl @@ -1,35 +1,39 @@ -<div id="menu"> - <div> - <a href="http://llvm.org/">LLVM Home</a> - <a href="http://clang.llvm.org/">Clang Home</a> - </div> - - <div class="submenu"> - <label>Events</label> - <a href="http://llvm.org/devmtg/2009-10">October 2, 2009 - LLVM/Clang Developers' Meeting</a> - </div> - - <div class="submenu"> - <label>Quick Links</label> - <a href="/index.html">About the Analyzer</a> - <a href="/filing_bugs.html">Filing Bugs</a> - </div> - - <div class="submenu"> - <label>User Manual</label> -<!-- <a href="/design_philosphy.html">Design Philosophy</a> --> - <a href="/installation.html">Obtaining the Analyzer</a> - <a href="/scan-build.html">Running the Analyzer</tt></a> - <a href="/available_checks.html">Available Checks</a> -<!-- <a href="/false_positives.html">False Positives</a> --> - <a href="/annotations.html">Source-level Annotations</a> - </div> - - <div class="submenu"> - <label>Clang Mailing Lists</label> - <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">cfe-dev</a> - <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits">cfe-commits</a> - </div> - - <center><a href="http://llvm.org"><img src="http://llvm.org/img/LLVM-Logo-Derivative-3.png" style="margin-top:10px"></a></center> -</div> +<table width="100%" id="nav" cellspacing=0 cellpadding=0> +<tr><td> +<ul style="margin:0; padding:0" class="menubar"> +<li style="padding-left:5em"> + <a href="/index.html">About</a> + <ul class="menubar"> + <li><a href="/index.html">About the Analyzer</a></li> + <li><a href="http://llvm.org/">LLVM Project</a></li> + <li><a href="http://clang.llvm.org/">Clang Project</a></li> + </ul> +</li> +<li> + <a href="/filing_bugs.html">Filing Bugs</a> +</li> +<li> + User Manual + <ul> + <li><a href="/installation.html">Obtaining the Analyzer</a></li> + <li><a href="/scan-build.html">Running the Analyzer</tt></a></li> + <li><a href="/available_checks.html">Available Checks</a></li> + <li><a href="/annotations.html">Source-level Annotations</a></li> + </ul> +</li> +<li> + Development + <ul> + <li><a href="/dev_cxx.html">Analysis support for C++</a></li> + </ul> +</li> +<li> + Mailing Lists + <ul> + <li><a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">cfe-dev</a></li> + <li><a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits">cfe-commits</a></li> + </ul> +</li> +</ul> +</td></tr> +</table> diff --git a/www/analyzer/menu.js b/www/analyzer/menu.js new file mode 100644 index 000000000000..6b393c081c85 --- /dev/null +++ b/www/analyzer/menu.js @@ -0,0 +1,17 @@ +startList = function() { + if (document.all&&document.getElementById) { + navRoot = document.getElementById("nav"); + for (i=0; i<navRoot.childNodes.length; i++) { + node = navRoot.childNodes[i]; + if (node.nodeName=="LI") { + node.onmouseover=function() { + this.className+=" over"; + } + node.onmouseout=function() { + this.className=this.className.replace(" over", ""); + } + } + } + } +} +window.onload=startList; diff --git a/www/analyzer/scan-build.html b/www/analyzer/scan-build.html index fd05af021bd9..16bdbfdbe219 100644 --- a/www/analyzer/scan-build.html +++ b/www/analyzer/scan-build.html @@ -3,32 +3,33 @@ <html> <head> <title>Running the Analyzer</title> - <link type="text/css" rel="stylesheet" href="menu.css" /> <link type="text/css" rel="stylesheet" href="content.css" /> - <style> - thead { - background-color:#eee; color:#666666; - font-weight: bold; cursor: default; - text-align:center; - border-top: 2px solid #cccccc; - border-bottom: 2px solid #cccccc; - font-weight: bold; font-family: Verdana - } - table { border: 1px #cccccc solid } - table { border-collapse: collapse; border-spacing: 0px } - table { margin-left:0px; margin-top:20px; margin-bottom:20px } - td { border-bottom: 1px #cccccc dotted } - td { padding:5px; padding-left:8px; padding-right:8px } - td { text-align:left; font-size:9pt } - td.View { padding-left: 10px } - </style> + <link type="text/css" rel="stylesheet" href="menu.css" /> + <script type="text/javascript" src="scripts/menu.js"></script> </head> <body> +<div id="page"> <!--#include virtual="menu.html.incl"--> - <div id="content"> +<style> +table.options thead { + background-color:#eee; color:#666666; + font-weight: bold; cursor: default; + text-align:left; + border-top: 2px solid #cccccc; + border-bottom: 2px solid #cccccc; + font-weight: bold; font-family: Verdana +} +table.options { border: 1px #cccccc solid } +table.options { border-collapse: collapse; border-spacing: 0px } +table.options { margin-left:0px; margin-top:20px; margin-bottom:20px } +table.options td { border-bottom: 1px #cccccc dotted } +table.options td { padding:5px; padding-left:8px; padding-right:8px } +table.options td { text-align:left; font-size:9pt } +</style> + <h1>Running the Analyzer</h1> <p>While the static analyzer engine can be used as a library, many users will @@ -116,7 +117,7 @@ options prefix the build command. For example:</p> <p>Here is a subset of useful options:</p> -<table> +<table class="options"> <thead><tr><td>Option</td><td>Description</td></tr></thead> <tr><td><b>-o</b></td><td>Target directory for HTML report files. Subdirectories @@ -245,6 +246,7 @@ report bugs of this kind). --> </div> +</div> </body> </html> diff --git a/www/analyzer/scripts/dbtree.js b/www/analyzer/scripts/dbtree.js new file mode 100644 index 000000000000..5face5db96de --- /dev/null +++ b/www/analyzer/scripts/dbtree.js @@ -0,0 +1 @@ +eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('7 5,r,Q,u;7 17=[];5=H;1i();9(!1Z.1j.20){1Z.1j.20=k(a){C[C.D]=a}}7 19=\'35+/\';k 36(a){7 b,R=\'\',i=0;I(;i<a.D;i+=4){b=(19.1k(a.1l(i))&1a)<<18|(19.1k(a.1l(i+1))&1a)<<12|(19.1k(a.1l(i+2))&1a)<<6|19.1k(a.1l(i+3))&1a;R+=37.38((b&39)>>16,(b&3a)>>8,b&1a)}9(a.21(i-2)==22)1m=R.23(0,R.D-2);s 9(a.21(i-1)==22)1m=R.23(0,R.D-1);s 1m=R;z 3b(1m)}7 A={24:k(){7 a=l.E(\'X\');I(7 i=0;i<a.D;i++){9(a[i].h.F(/\\1n\\b/)==-1)3c;7 b=a[i];9(b.h.F(/\\1E\\b/)!=-1){7 c=b.E(\'a\');I(7 j=0;j<c.D;j++){m.B(c[j],\'25\',1F,o);m.B(c[j],\'26\',1G,o);m.B(c[j],\'1o\',1b,o);c[j].Y=\'1H:1I(0)\'}}7 d=b.E(\'X\');I(7 j=0;j<d.D;j++){7 e=d[j].p;e.27=J;9(b.h.F(/\\3d\\b/)!=-1){m.B(e,\'w\',A.w,o);9(b.h.F(/\\3e\\b/)==-1){e.E(\'a\')[0].Y=\'1H:1I(0)\'}}s{7 t=b.h.3f(/1J(.*)1J/);t=t?t[1]:H;m.B(e,\'3g\',A.28(e,t),o);m.B(e,\'3h\',A.29(e),o)}e.E(\'a\')[0].h+=\' 2a\'}9(b.h.F(/\\3i\\b/)!=-1)A.2b(b.v)}},2b:k(a){7 b=l.G(a+\'3j\');9(b){A.1p(b);b=b.p;1c(!!b&&(b.v!=a)){9((!b.h)||(b.h==\'\')){b.h=\'w\'}s{b.h+=\' w\'}9(b.1d.K.L()==\'a\')b.1d.h+=\' w\';b=b.p}}},29:k(a){z k(){A.1p(a)}},28:k(a,b){z k(){A.2c(a,b)}},1p:k(a){7 b=a;3k(b.2d);I(7 i=0;i<b.S.D;i++){7 c=b.S[i];9(c.K.L()==\'X\'){b.E(\'a\')[0].h+=\' w\';b.h+=\' w\';c.h+=\' w\'}}},2c:k(a,b){7 c=a;c.2d=3l(k(){A.1q(c)},b)},1q:k(a){I(7 i=0;i<a.S.D;i++){7 b=a.S[i];9(b.K.L()==\'X\'){a.E(\'a\')[0].h=a.E(\'a\')[0].h.1K(/w/g,\'\');b.h=b.h.1K(/w/g,\'\');a.h=a.h.1K(/w/g,\'\')}}},w:k(e){9(M.T){M.T.1L=J}9(e&&e.1r){e.1r()}7 a=(M.T)?M.T.2e:(e)?e.1M:H;9(!a||!(a=A.1N(a,\'2f\')))z;9(a.E(\'a\')[0].h.F(/\\2g\\b/)==-1){7 b=1e(a);9(2h(b)){9(l.G(b).h.F(/\\3m\\b/)==-1){I(n=0;n<a.p.S.D;n++){N=a.p.S[n];9(N.K.L()==\'2f\'){9(N.h.F(/\\2g\\b/)!=-1)A.1q(a.p.S[n])}}}}A.1p(a)}s{A.1q(a)}9(2h(1e(a))){z J}s{z o}},1N:k(a,b){9(a.K.L()!=b&&a.K.L()!=\'U\'){z A.1N(a.p,b)}s 9(a.K.L()==\'U\'){z H}s{z a}}};k 1i(){3n{u=M.2i?O 2i():O 3o(\'3p.3q\')}3r(e){2j(\'2k 2l: 3s 3t 3u 3v 3w-3x!\')}}k 1O(a,x){a.1f.3y=x+\'2m\'}k 1P(a,y){a.1f.3z=y+\'2m\'}k 1e(a){1c(a.h.F(/\\1n\\b/)==-1){a=a.p}9((a.h.F(/\\1n\\b/)!=-1)&&(a.h.F(/\\1E\\b/)!=-1)){I(i=0;i<17.D;i++){9(a.v==17[i].q)z i}}z a.v}k 1G(a){a=O m(a);r=a.P.p.p.v;7 b=r.1s(\'Z\');r=b[1];5=17[1e(a.P)];7 c=l.G(5.q+\'10\').3A(J);7 d=l.G(5.q+\'10\');d.p.2n(d);c.v=5.q+\'10\';l.U.2o(c);1O(c,a.x);1P(c,a.y);c.1f.1Q=\'2p\';a.1t();m.B(l,\'1u\',1R,o);z o}k 1R(c){c=O m(c);7 e;7 a=c.P;7 b=a;1c((b!=H)&&(b.K.L()!=\'U\')){9(b.v==5.q+\'10\')1g;b=b.p}9((b!=H)&&(b.v==5.q+\'10\')){3B(a.p.h){1S\'3C\':a.Y=5.V+\'11=1T&N=\'+5.13;1g;1S\'1T\':a.Y=5.V+\'11=1T&N=\'+r;1g;1S\'2q\':a.Y=5.V+\'11=2q&N=\'+r;1g;3D:e=5.2r+\'?q=\'+5.q;e+=\'&13=\'+5.13;9(a.p.h==\'3E\'){e+=\'&11=2s&N=\'+r+\'&2t=\'+5.13}s{e+=\'&11=\'+a.p.h+\'&N=\'+r}7 d=O 2u();7 f=d.2v();e+=\'&2w=\'+f;e+=\'&1v=\'+5.1v;e+=\'&1w=\'+5.1w;e+=\'&1x=\'+5.1x;e+=\'&1y=\'+5.1y;e+=\'&1z=\'+5.1z;e+=\'&1A=\'+5.1A;e+=\'&v=\'+5.v;e+=\'&1B=\'+5.1B;e+=\'&1C=\'+5.1C;e+=\'&V=\'+5.V;u.2x=1U;u.1V(\'2y\',e,J);u.14(\'2z\',\'2A-2B\');u.14(\'2C-2D\',\'2E-2F\');u.14(\'2G-2H-2I\',l.2J);u.2K(H)}}7 g=l.G(5.q+\'10\');9(g){g.1f.1Q=\'3F\'};m.1h(l,\'1u\',1R,o)}k 1F(a){a=O m(a);r=a.P.p.p.v;7 b=r.1s(\'Z\');r=b[1];5=17[1e(a.P)];9(!l.G(5.q+\'15\')){7 c=(!l.G(5.q+\'15\'))?l.3G(\'3H\'):l.G(5.q+\'15\');c.v=5.q+\'15\';c.2L=a.P.1d.3I;l.U.2o(c)}m.B(l,\'2M\',1W,o);m.B(l,\'1u\',1X,o);m.B(l,\'1o\',1b,o);a.1t();z o}k 1b(a){9(!a&&M.T)a=M.T;9(a!=H){9(3J(a.1Y)==\'k\')a.1Y();s a.2N=o}z o}k 1W(a){a=O m(a);7 b=l.G(5.q+\'15\');1O(b,a.x);1P(b,a.y);b.1f.1Q=\'2p\';a.1t();z o}k 1X(a){a=O m(a);7 b=a.P.p;9(b.K.L()==\'a\'){r=5.q+\'Z\'+r;9(r!=b.p.v){7 c=J;7 d=b.p;1c(!!d&&(d.v!=5.q)){9(d.v==r){c=o;1g}s{d=d.p}}9(c==J){7 e=r.1s(\'Z\');r=e[1];Q=b.p.v;7 f=Q.1s(\'Z\');Q=f[1];2O(a)}}}7 g=l.G(5.q+\'15\');9(g){g.p.2n(g)};m.1h(l,\'2M\',1W,o);m.1h(l,\'1u\',1X,o);m.1h(l,\'1o\',1b,o)}k 2O(a){7 d=O 2u();7 b=d.2v();7 c;c=5.2r+\'?q=\'+5.q+\'&11=2s&13=\'+5.13+\'&N=\'+r+\'&2t=\'+Q+\'&2w=\'+b;c+=\'&1v=\'+5.1v;c+=\'&1w=\'+5.1w;c+=\'&1x=\'+5.1x;c+=\'&1y=\'+5.1y;c+=\'&1z=\'+5.1z;c+=\'&1A=\'+5.1A;c+=\'&v=\'+5.v;c+=\'&1B=\'+5.1B;c+=\'&1C=\'+5.1C;c+=\'&V=\'+5.V;u.2x=1U;u.1V(\'2y\',c,J);u.14(\'2z\',\'2A-2B\');u.14(\'2C-2D\',\'2E-2F\');u.14(\'2G-2H-2I\',l.2J);u.2K(H)}k 2P(){7 a=(!!Q)?Q:r;a=5.q+\'Z\'+a;a=l.G(a);9(a){a=a.E(\'X\')[0];1c(!!a&&(a.h.F(/\\1n\\b/)==-1)&&(a.h.F(/\\1E\\b/)==-1)){9((!a.h)||(a.h==\'\')){a.h=\'w\'}s{a.h+=\' w\'}9(a.1d.K.L()==\'a\')a.1d.h+=\' w\';a=a.p}}}k 3K(a,b){9(a!=\'3L\'){3M(a+".3N=\'"+b.2Q[b.2R].2S+"\'")}s{M.1V(b.2Q[b.2R].2S)}}k 2T(a){7 b=l.G(a);7 c=b.E(\'X\');I(7 j=0;j<c.D;j++){7 d=c[j].p;d.27=J;m.B(d,\'w\',A.w,o);d.E(\'a\')[0].h+=\' 2a\'}7 e=b.E(\'a\');I(7 j=0;j<e.D;j++){m.B(e[j],\'25\',1F,o);m.B(e[j],\'26\',1G,o);m.B(e[j],\'1o\',1b,o);e[j].Y=\'1H:1I(0)\'}}k 1U(){9(u.3O==4){9(u.3P==3Q){l.G(5.q+\'3R\').2L=u.3S;2T(5.q);2P();1i()}s{2j(\'2k 2l: 3T, 3U 3V 1J 3W a 3X 3Y 3Z 40:\\n\'+u.41);1i()}}}k m(a){C.W=a?a:M.T;C.P=a.1M?a.1M:a.2e;C.x=a.2U?(a.2U):(a.42+2V.2W(l.U.2X,l.2Y.2X));C.y=a.2Z?(a.2Z):(a.43+2V.2W(l.U.30,l.2Y.30))}m.1j.44=k(){z\'m [ x = \'+C.x+\', y = \'+C.y+\' ]\'};m.1j.1t=k(){9(C.W.1r){C.W.1r();C.W.1Y()}s 9(C.W.1L){C.W.1L=J;C.W.2N=o}};m.B=k(a,b,c,d){9(l.31){a.31(b,c,d)}s 9(l.32){a.32(\'1D\'+b,c,d)}s{a[\'1D\'+b]=c}};m.1h=k(a,b,c,d){9(l.33){a.33(b,c,d)}s 9(l.34){a.34(\'1D\'+b,c,d)}s{a[\'1D\'+b]=H}};m.B(M,\'45\',A.24,o);',62,254,'|||||instance||var||if||||||||className|||function|document|Evt||false|parentNode|instanceName|nid|else||client|id|click|||return|dbTree|addEvent|this|length|getElementsByTagName|search|getElementById|null|for|true|nodeName|toLowerCase|window|node|new|source|nto|decOut|childNodes|event|body|editpage|evt|ul|href|_|_options|action||rootnode|setRequestHeader|_tip||dbtreeObj||b64s|0xff|PreventDefault|while|firstChild|getObj|style|break|removeEvent|createClient|prototype|indexOf|charAt|undecOut|bdbtree|selectstart|mOver|mOut|stopPropagation|split|consume|mouseup|type|query|datasource|username|password|table|parent|contentfield|on|bedit|dragPress|contextMenu|javascript|void|to|replace|cancelBubble|target|getTarget|setX|setY|display|contextAction|case|add|callback|open|dragMove|dragRelease|preventDefault|Array|push|charCodeAt|61|substring|init|mousedown|contextmenu|hasSubMenu|getMoutFor|getMoverFor|subMenu|mExp|mTimeout|timeout|srcElement|li|bclick|isNaN|XMLHttpRequest|alert|DBTree|Error|px|removeChild|appendChild|block|edit|tagpath|move|nodeto|Date|getTime|time|onreadystatechange|get|Pragma|no|cache|Cache|Control|must|revalidate|If|Modified|Since|lastModified|send|innerHTML|mousemove|returnValue|dragBoxDropped|expandtree|options|selectedIndex|value|reinit|pageX|Math|max|scrollLeft|documentElement|pageY|scrollTop|addEventListener|attachEvent|removeEventListener|detachEvent|ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789|decode|String|fromCharCode|0xff0000|0xff00|unescape|continue|bonclick|blinkparent|match|mouseout|mouseover|bexpand|_active|clearTimeout|setTimeout|bmultiple|try|ActiveXObject|Microsoft|XMLHTTP|catch|Your|browser|is|not|Ajax|enabled|left|top|cloneNode|switch|addroot|default|moveroot|none|createElement|div|nodeValue|typeof|jumpTo|blank|eval|location|readyState|status|200|_edit|responseText|Sorry|there|seems|be|problem|retrieving|the|response|statusText|clientX|clientY|toString|load'.split('|'),0,{})) diff --git a/www/analyzer/scripts/menu.js b/www/analyzer/scripts/menu.js new file mode 100644 index 000000000000..6b393c081c85 --- /dev/null +++ b/www/analyzer/scripts/menu.js @@ -0,0 +1,17 @@ +startList = function() { + if (document.all&&document.getElementById) { + navRoot = document.getElementById("nav"); + for (i=0; i<navRoot.childNodes.length; i++) { + node = navRoot.childNodes[i]; + if (node.nodeName=="LI") { + node.onmouseover=function() { + this.className+=" over"; + } + node.onmouseout=function() { + this.className=this.className.replace(" over", ""); + } + } + } + } +} +window.onload=startList; |
