OLD | NEW |
1 <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> | 1 <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> |
2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | 2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" |
3 "../../etc/docbook/docbookx.dtd" [ | 3 "../../etc/docbook/docbookx.dtd" [ |
4 <!ENTITY FindBugs "<application>FindBugs</application>"> | 4 <!ENTITY FindBugs "<application>FindBugs</application>"> |
5 <!ENTITY Ant "<application>Ant</application>"> | 5 <!ENTITY Ant "<application>Ant</application>"> |
6 <!ENTITY Saxon "<application>Saxon</application>"> | 6 <!ENTITY Saxon "<application>Saxon</application>"> |
7 <!ENTITY FBHome "<replaceable>$FINDBUGS_HOME</replaceable>"> | 7 <!ENTITY FBHome "<replaceable>$FINDBUGS_HOME</replaceable>"> |
8 <!ENTITY FBHomeWin "<replaceable>%FINDBUGS_HOME%</replaceable>"> | 8 <!ENTITY FBHomeWin "<replaceable>%FINDBUGS_HOME%</replaceable>"> |
9 <!ENTITY nbsp " "> | 9 <!ENTITY nbsp " "> |
10 ]> | 10 ]> |
(...skipping 26 matching lines...) Expand all Loading... |
37 This manual is licensed under the Creative Commons Attribution-NonCommercial-Sha
reAlike License. | 37 This manual is licensed under the Creative Commons Attribution-NonCommercial-Sha
reAlike License. |
38 To view a copy of this license, visit | 38 To view a copy of this license, visit |
39 <ulink url="http://creativecommons.org/licenses/by-nc-sa/1.0/">http://creativeco
mmons.org/licenses/by-nc-sa/1.0/</ulink> | 39 <ulink url="http://creativecommons.org/licenses/by-nc-sa/1.0/">http://creativeco
mmons.org/licenses/by-nc-sa/1.0/</ulink> |
40 or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, Californi
a 94305, USA. | 40 or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, Californi
a 94305, USA. |
41 </para> | 41 </para> |
42 <para> | 42 <para> |
43 The name FindBugs and the FindBugs logo are trademarked by the University of Mar
yland. | 43 The name FindBugs and the FindBugs logo are trademarked by the University of Mar
yland. |
44 </para> | 44 </para> |
45 </legalnotice> | 45 </legalnotice> |
46 | 46 |
47 <edition>3.0.0</edition> | 47 <edition>3.0.1</edition> |
48 | 48 |
49 <pubdate>20:25:27 CDT, 06 July, 2014</pubdate> | 49 <pubdate>12:37:51 EST, 06 March, 2015</pubdate> |
50 | 50 |
51 </bookinfo> | 51 </bookinfo> |
52 | 52 |
53 <!-- | 53 <!-- |
54 ************************************************************************** | 54 ************************************************************************** |
55 Introduction | 55 Introduction |
56 ************************************************************************** | 56 ************************************************************************** |
57 --> | 57 --> |
58 | 58 |
59 <chapter id="introduction"> | 59 <chapter id="introduction"> |
60 <title>Introduction</title> | 60 <title>Introduction</title> |
61 | 61 |
62 <para> &FindBugs;™ is a program to find bugs in Java programs. It looks f
or instances | 62 <para> &FindBugs;™ is a program to find bugs in Java programs. It looks f
or instances |
63 of "bug patterns" --- code instances that are likely to be errors.</para> | 63 of "bug patterns" --- code instances that are likely to be errors.</para> |
64 | 64 |
65 <para> This document describes version 3.0.0 of &FindBugs;.We | 65 <para> This document describes version 3.0.1 of &FindBugs;.We |
66 are very interested in getting your feedback on &FindBugs;. Please visit | 66 are very interested in getting your feedback on &FindBugs;. Please visit |
67 the <ulink url="http://findbugs.sourceforge.net">&FindBugs; web page</ulink> for | 67 the <ulink url="http://findbugs.sourceforge.net">&FindBugs; web page</ulink> for |
68 the latest information on &FindBugs;, contact information, and support resources
such | 68 the latest information on &FindBugs;, contact information, and support resources
such |
69 as information about the &FindBugs; mailing lists.</para> | 69 as information about the &FindBugs; mailing lists.</para> |
70 | 70 |
71 <sect1> | 71 <sect1> |
72 <title>Requirements</title> | 72 <title>Requirements</title> |
73 <para> To use &FindBugs;, you need a runtime environment compatible with | 73 <para> To use &FindBugs;, you need a runtime environment compatible with |
74 <ulink url="http://java.sun.com/j2se">Java 2 Standard Edition</ulink>, version 1
.5 or later. | 74 <ulink url="http://java.sun.com/j2se">Java 2 Standard Edition</ulink>, version 1
.5 or later. |
75 &FindBugs; is platform independent, and is known to run on GNU/Linux, Windows, a
nd | 75 &FindBugs; is platform independent, and is known to run on GNU/Linux, Windows, a
nd |
(...skipping 17 matching lines...) Expand all Loading... |
93 <para> | 93 <para> |
94 This chapter explains how to install &FindBugs;. | 94 This chapter explains how to install &FindBugs;. |
95 </para> | 95 </para> |
96 | 96 |
97 <sect1> | 97 <sect1> |
98 <title>Extracting the Distribution</title> | 98 <title>Extracting the Distribution</title> |
99 | 99 |
100 <para> | 100 <para> |
101 The easiest way to install &FindBugs; is to download a binary distribution. | 101 The easiest way to install &FindBugs; is to download a binary distribution. |
102 Binary distributions are available in | 102 Binary distributions are available in |
103 <ulink url="http://prdownloads.sourceforge.net/findbugs/findbugs-3.0.0.tar.gz?do
wnload">gzipped tar format</ulink> and | 103 <ulink url="http://prdownloads.sourceforge.net/findbugs/findbugs-3.0.1.tar.gz?do
wnload">gzipped tar format</ulink> and |
104 <ulink url="http://prdownloads.sourceforge.net/findbugs/findbugs-3.0.0.zip?downl
oad">zip format</ulink>. | 104 <ulink url="http://prdownloads.sourceforge.net/findbugs/findbugs-3.0.1.zip?downl
oad">zip format</ulink>. |
105 Once you have downloaded a binary distribution, extract it into a directory of y
our choice. | 105 Once you have downloaded a binary distribution, extract it into a directory of y
our choice. |
106 </para> | 106 </para> |
107 | 107 |
108 <para> | 108 <para> |
109 Extracting a gzipped tar format distribution: | 109 Extracting a gzipped tar format distribution: |
110 <screen> | 110 <screen> |
111 <prompt>$ </prompt><command>gunzip -c findbugs-3.0.0.tar.gz | tar xvf -</command
> | 111 <prompt>$ </prompt><command>gunzip -c findbugs-3.0.1.tar.gz | tar xvf -</command
> |
112 </screen> | 112 </screen> |
113 </para> | 113 </para> |
114 | 114 |
115 <para> | 115 <para> |
116 Extracting a zip format distribution: | 116 Extracting a zip format distribution: |
117 <screen> | 117 <screen> |
118 <prompt>C:\Software></prompt><command>unzip findbugs-3.0.0.zip</command> | 118 <prompt>C:\Software></prompt><command>unzip findbugs-3.0.1.zip</command> |
119 </screen> | 119 </screen> |
120 </para> | 120 </para> |
121 | 121 |
122 <para> | 122 <para> |
123 Usually, extracting a binary distribution will create a directory ending in | 123 Usually, extracting a binary distribution will create a directory ending in |
124 <filename class="directory">findbugs-3.0.0</filename>. For example, if you extra
cted | 124 <filename class="directory">findbugs-3.0.1</filename>. For example, if you extra
cted |
125 the binary distribution from the <filename class="directory">C:\Software</filena
me> | 125 the binary distribution from the <filename class="directory">C:\Software</filena
me> |
126 directory, then the &FindBugs; software will be extracted into the directory | 126 directory, then the &FindBugs; software will be extracted into the directory |
127 <filename class="directory">C:\Software\findbugs-3.0.0</filename>. | 127 <filename class="directory">C:\Software\findbugs-3.0.1</filename>. |
128 This directory is the &FindBugs; home directory. We'll refer to it as | 128 This directory is the &FindBugs; home directory. We'll refer to it as |
129 &FBHome; (or &FBHomeWin; for Windows) throughout this manual. | 129 &FBHome; (or &FBHomeWin; for Windows) throughout this manual. |
130 </para> | 130 </para> |
131 </sect1> | 131 </sect1> |
132 | 132 |
133 </chapter> | 133 </chapter> |
134 | 134 |
135 <!-- | 135 <!-- |
136 ************************************************************************** | 136 ************************************************************************** |
137 Compiling FindBugs from Source | 137 Compiling FindBugs from Source |
(...skipping 10 matching lines...) Expand all Loading... |
148 </para> | 148 </para> |
149 | 149 |
150 <sect1> | 150 <sect1> |
151 <title>Prerequisites</title> | 151 <title>Prerequisites</title> |
152 | 152 |
153 <para> | 153 <para> |
154 To compile &FindBugs; from source, you will need the following: | 154 To compile &FindBugs; from source, you will need the following: |
155 <itemizedlist> | 155 <itemizedlist> |
156 <listitem> | 156 <listitem> |
157 <para> | 157 <para> |
158 The <ulink url="http://prdownloads.sourceforge.net/findbugs/findbugs-3.0.0
-source.zip?download" | 158 The <ulink url="http://prdownloads.sourceforge.net/findbugs/findbugs-3.0.1
-source.zip?download" |
159 >&FindBugs; source distribution</ulink> | 159 >&FindBugs; source distribution</ulink> |
160 </para> | 160 </para> |
161 </listitem> | 161 </listitem> |
162 <listitem> | 162 <listitem> |
163 <para> | 163 <para> |
164 <ulink url="http://java.sun.com/j2se/">JDK 1.5.0 or later</ulink> | 164 <ulink url="http://java.sun.com/j2se/">JDK 1.5.0 or later</ulink> |
165 </para> | 165 </para> |
166 </listitem> | 166 </listitem> |
167 <listitem> | 167 <listitem> |
168 <para> | 168 <para> |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
211 | 211 |
212 </sect1> | 212 </sect1> |
213 | 213 |
214 <sect1> | 214 <sect1> |
215 <title>Extracting the Source Distribution</title> | 215 <title>Extracting the Source Distribution</title> |
216 <para> | 216 <para> |
217 After you download the source distribution, you'll need to extract it into | 217 After you download the source distribution, you'll need to extract it into |
218 a working directory. A typical command to do this is: | 218 a working directory. A typical command to do this is: |
219 | 219 |
220 <screen> | 220 <screen> |
221 <prompt>$ </prompt><command>unzip findbugs-3.0.0-source.zip</command> | 221 <prompt>$ </prompt><command>unzip findbugs-3.0.1-source.zip</command> |
222 </screen> | 222 </screen> |
223 | 223 |
224 </para> | 224 </para> |
225 </sect1> | 225 </sect1> |
226 | 226 |
227 <sect1> | 227 <sect1> |
228 <title>Modifying <filename>local.properties</filename></title> | 228 <title>Modifying <filename>local.properties</filename></title> |
229 <para> | 229 <para> |
230 If you intend to build the FindBugs documentation, | 230 If you intend to build the FindBugs documentation, |
231 you will need to modify the <filename>local.properties</filename> file | 231 you will need to modify the <filename>local.properties</filename> file |
(...skipping 1352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1584 <term><literal>nested</literal></term> | 1584 <term><literal>nested</literal></term> |
1585 <listitem> | 1585 <listitem> |
1586 <para> | 1586 <para> |
1587 Optional attribute which enables or disables scanning of nested ja
r and zip files found in | 1587 Optional attribute which enables or disables scanning of nested ja
r and zip files found in |
1588 the list of files and directories to be analyzed. | 1588 the list of files and directories to be analyzed. |
1589 By default, scanning of nested jar/zip files is enabled. | 1589 By default, scanning of nested jar/zip files is enabled. |
1590 </para> | 1590 </para> |
1591 </listitem> | 1591 </listitem> |
1592 </varlistentry> | 1592 </varlistentry> |
1593 | 1593 |
| 1594 <varlistentry> |
| 1595 <term><literal>setExitCode</literal></term> |
| 1596 <listitem> |
| 1597 <para> |
| 1598 Optional boolean attribute. Whether the exit code will be returned to |
| 1599 the main ant job. Defaults to "true". |
| 1600 </para> |
| 1601 </listitem> |
| 1602 </varlistentry> |
| 1603 |
1594 </variablelist> | 1604 </variablelist> |
1595 | 1605 |
1596 | 1606 |
1597 </para> | 1607 </para> |
1598 | 1608 |
1599 <!-- | 1609 <!-- |
1600 | 1610 |
1601 --> | 1611 --> |
1602 | 1612 |
1603 </sect1> | 1613 </sect1> |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1662 <listitem> | 1672 <listitem> |
1663 <para> | 1673 <para> |
1664 Provides the daily build of FindBugs. No testing other than that it com
piles. | 1674 Provides the daily build of FindBugs. No testing other than that it com
piles. |
1665 </para> | 1675 </para> |
1666 </listitem> | 1676 </listitem> |
1667 </varlistentry> | 1677 </varlistentry> |
1668 </variablelist> | 1678 </variablelist> |
1669 | 1679 |
1670 <para>You can also manually | 1680 <para>You can also manually |
1671 download the plugin from the following link: | 1681 download the plugin from the following link: |
1672 <ulink url="http://prdownloads.sourceforge.net/findbugs/edu.umd.cs.findbugs.plug
in.eclipse_3.0.0.20140706.zip?download" | 1682 <ulink url="http://prdownloads.sourceforge.net/findbugs/edu.umd.cs.findbugs.plug
in.eclipse_3.0.1.20150306.zip?download" |
1673 >http://prdownloads.sourceforge.net/findbugs/edu.umd.cs.findbugs.plugin.eclipse_
3.0.0.20140706.zip?download</ulink>. | 1683 >http://prdownloads.sourceforge.net/findbugs/edu.umd.cs.findbugs.plugin.eclipse_
3.0.1.20150306.zip?download</ulink>. |
1674 Extract it in Eclipse's "plugins" subdirectory. | 1684 Extract it in Eclipse's "plugins" subdirectory. |
1675 (So <eclipse_install_dir>/plugins/edu.umd.cs.findbugs.plugin.eclipse_3.0.0
.20140706/findbugs.png | 1685 (So <eclipse_install_dir>/plugins/edu.umd.cs.findbugs.plugin.eclipse_3.0.1
.20150306/findbugs.png |
1676 should be the path to the &FindBugs; logo.) | 1686 should be the path to the &FindBugs; logo.) |
1677 | 1687 |
1678 </para> | 1688 </para> |
1679 | 1689 |
1680 <para> | 1690 <para> |
1681 Once the plugin is extracted, start Eclipse and choose | 1691 Once the plugin is extracted, start Eclipse and choose |
1682 <menuchoice> | 1692 <menuchoice> |
1683 <guimenu>Help</guimenu> | 1693 <guimenu>Help</guimenu> |
1684 <guimenuitem>About Eclipse Platform</guimenuitem> | 1694 <guimenuitem>About Eclipse Platform</guimenuitem> |
1685 <guimenuitem>Plug-in Details</guimenuitem> | 1695 <guimenuitem>Plug-in Details</guimenuitem> |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1847 Filter files | 1857 Filter files |
1848 ************************************************************************** | 1858 ************************************************************************** |
1849 --> | 1859 --> |
1850 | 1860 |
1851 <chapter id="filter"> | 1861 <chapter id="filter"> |
1852 <title>Filter Files</title> | 1862 <title>Filter Files</title> |
1853 | 1863 |
1854 <para> | 1864 <para> |
1855 Filter files may be used to include or exclude bug reports for particular classe
s | 1865 Filter files may be used to include or exclude bug reports for particular classe
s |
1856 and methods. This chapter explains how to use filter files. | 1866 and methods. This chapter explains how to use filter files. |
1857 | |
1858 <note> | |
1859 <title>Planned Features</title> | |
1860 <para> | |
1861 Filters are currently only supported by the Command Line interface. | |
1862 Eventually, filter support will be added to the GUI. | |
1863 </para> | |
1864 </note> | |
1865 </para> | 1867 </para> |
1866 | 1868 |
1867 | 1869 |
1868 <sect1> | 1870 <sect1> |
1869 <title>Introduction to Filter Files</title> | 1871 <title>Introduction to Filter Files</title> |
1870 | 1872 |
1871 <para> | 1873 <para> |
1872 Conceptually, a filter matches bug instances against a set of criteria. | 1874 Conceptually, a filter matches bug instances against a set of criteria. |
1873 By defining a filter, you can select bug instances for special treatment; | 1875 By defining a filter, you can select bug instances for special treatment; |
1874 for example, to exclude or include them in a report. | 1876 for example, to exclude or include them in a report. |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1977 </para> | 1979 </para> |
1978 </listitem> | 1980 </listitem> |
1979 </varlistentry> | 1981 </varlistentry> |
1980 | 1982 |
1981 <varlistentry> | 1983 <varlistentry> |
1982 <term><literal><Class></literal></term> | 1984 <term><literal><Class></literal></term> |
1983 <listitem> | 1985 <listitem> |
1984 <para> | 1986 <para> |
1985 This element matches warnings associated with a particular class. Th
e | 1987 This element matches warnings associated with a particular class. Th
e |
1986 <literal>name</literal> attribute is used to specify the exact or re
gex match pattern | 1988 <literal>name</literal> attribute is used to specify the exact or re
gex match pattern |
1987 for the class name. | 1989 for the class name. The <literal>role</literal> attribute is the cl
ass role. |
1988 </para> | 1990 </para> |
1989 | 1991 |
1990 <para> | 1992 <para> |
1991 As a backward compatibility measure, instead of element of this type
, you can use | 1993 As a backward compatibility measure, instead of element of this type
, you can use |
1992 <literal>class</literal> attribute on a <literal>Match</literal> el
ement to specify | 1994 <literal>class</literal> attribute on a <literal>Match</literal> el
ement to specify |
1993 exact an class name or <literal>classregex</literal> attribute to s
pecify a regular | 1995 exact an class name or <literal>classregex</literal> attribute to s
pecify a regular |
1994 expression to match the class name against. | 1996 expression to match the class name against. |
1995 </para> | 1997 </para> |
1996 | 1998 |
1997 <para> | 1999 <para> |
(...skipping 16 matching lines...) Expand all Loading... |
2014 </listitem> | 2016 </listitem> |
2015 </varlistentry> | 2017 </varlistentry> |
2016 | 2018 |
2017 <varlistentry> | 2019 <varlistentry> |
2018 <term><literal><Method></literal></term> | 2020 <term><literal><Method></literal></term> |
2019 | 2021 |
2020 <listitem><para>This element specifies a method. The <literal>name</literal>
is used to specify | 2022 <listitem><para>This element specifies a method. The <literal>name</literal>
is used to specify |
2021 the exact or regex match pattern for the method name. | 2023 the exact or regex match pattern for the method name. |
2022 The <literal>params</literal> attribute is a comma-separated list | 2024 The <literal>params</literal> attribute is a comma-separated list |
2023 of the types of the method's parameters. The <literal>returns</literal> attr
ibute is | 2025 of the types of the method's parameters. The <literal>returns</literal> attr
ibute is |
2024 the method's return type. In <literal>params</literal> and <literal>returns<
/literal>, class names | 2026 the method's return type. The <literal>role</literal> attribute is |
| 2027 the method role. In <literal>params</literal> and <literal>returns</literal>,
class names |
2025 must be fully qualified. (E.g., "java.lang.String" instead of just | 2028 must be fully qualified. (E.g., "java.lang.String" instead of just |
2026 "String".) If one of the latter attributes is specified the other is required
for creating a method signature. | 2029 "String".) If one of the latter attributes is specified the other is required
for creating a method signature. |
2027 Note that you can provide either <literal>name</literal> attribute or <litera
l>params</literal> | 2030 Note that you can provide either <literal>name</literal> attribute or <litera
l>params</literal> |
2028 and <literal>returns</literal> attributes or all three of them. This way you
can provide various kinds of | 2031 and <literal>returns</literal> attributes or all three of them. This way you
can provide various kinds of |
2029 name and signature based matches. | 2032 name and signature based matches. |
2030 </para></listitem> | 2033 </para></listitem> |
2031 </varlistentry> | 2034 </varlistentry> |
2032 | 2035 |
2033 <varlistentry> | 2036 <varlistentry> |
2034 <term><literal><Field></literal></term> | 2037 <term><literal><Field></literal></term> |
2035 | 2038 |
2036 <listitem><para>This element specifies a field. The <literal>name</literal> a
ttribute is is used to specify | 2039 <listitem><para>This element specifies a field. The <literal>name</literal> a
ttribute is is used to specify |
2037 the exact or regex match pattern for the field name. You can also filter fiel
ds according to their signature - | 2040 the exact or regex match pattern for the field name. You can also filter fiel
ds according to their signature - |
2038 use <literal>type</literal> attribute to specify fully qualified type of the
field. You can specify eiter or both | 2041 use <literal>type</literal> attribute to specify fully qualified type of the
field. You can specify eiter or both |
2039 of these attributes in order to perform name / signature based matches. | 2042 of these attributes in order to perform name / signature based matches. The <
literal>role</literal> attribute is |
| 2043 the field role. |
2040 </para></listitem> | 2044 </para></listitem> |
2041 </varlistentry> | 2045 </varlistentry> |
2042 | 2046 |
2043 <varlistentry> | 2047 <varlistentry> |
2044 <term><literal><Local></literal></term> | 2048 <term><literal><Local></literal></term> |
2045 | 2049 |
2046 <listitem><para>This element specifies a local variable. The <literal>name</l
iteral> attribute is is used to specify | 2050 <listitem><para>This element specifies a local variable. The <literal>name</l
iteral> attribute is is used to specify |
2047 the exact or regex match pattern for the local variable name. Local variables
are variables defined within a method. | 2051 the exact or regex match pattern for the local variable name. Local variables
are variables defined within a method. |
2048 </para></listitem> | 2052 </para></listitem> |
2049 </varlistentry> | 2053 </varlistentry> |
(...skipping 1898 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3948 in the Ant task.</para> | 3952 in the Ant task.</para> |
3949 | 3953 |
3950 <para>Peter Hendriks extended the Eclipse plugin preferences, | 3954 <para>Peter Hendriks extended the Eclipse plugin preferences, |
3951 and fixed a bug related to renaming the Eclipse plugin ID.</para> | 3955 and fixed a bug related to renaming the Eclipse plugin ID.</para> |
3952 | 3956 |
3953 <para>Mark McKay contributed an Ant task to launch the findbugs frame.</para> | 3957 <para>Mark McKay contributed an Ant task to launch the findbugs frame.</para> |
3954 | 3958 |
3955 <para>Dieter von Holten (dvholten) contributed | 3959 <para>Dieter von Holten (dvholten) contributed |
3956 some German improvements to findbugs_de.properties.</para> | 3960 some German improvements to findbugs_de.properties.</para> |
3957 | 3961 |
| 3962 <para>Kevin Lubick contributed fixes and tests for multi-quick-fixes and customi
zable |
| 3963 annotation colors for Eclipse plugin.</para> |
| 3964 |
| 3965 <para>Tagir Valeev contributed several new bug detectors and improved existing o
nes.</para> |
3958 | 3966 |
3959 <para>If you have contributed to &FindBugs;, but aren't mentioned above, | 3967 <para>If you have contributed to &FindBugs;, but aren't mentioned above, |
3960 please send email to <email>findbugs@cs.umd.edu</email> (and also accept | 3968 please send email to <email>findbugs@cs.umd.edu</email> (and also accept |
3961 our humble apologies).</para> | 3969 our humble apologies).</para> |
3962 | 3970 |
3963 </sect1> | 3971 </sect1> |
3964 | 3972 |
3965 <sect1> | 3973 <sect1> |
3966 <title>Software Used</title> | 3974 <title>Software Used</title> |
3967 | 3975 |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4084 </blockquote> | 4092 </blockquote> |
4085 | 4093 |
4086 </sect2> | 4094 </sect2> |
4087 | 4095 |
4088 </sect1> | 4096 </sect1> |
4089 | 4097 |
4090 </chapter> | 4098 </chapter> |
4091 | 4099 |
4092 | 4100 |
4093 </book> | 4101 </book> |
OLD | NEW |