<?xml version="1.0" ?>
<notes>
<!--$Id: faq.xml,v 1.3 2009/07/08 08:22:46 dds Exp $-->

<!--
To update the table of contents execute the following vim command from a register
/^<h2>Contents
jjma/ul>
kmb/^$
"qyy:g/^<a name/s,<a name="\([^>]*\)> <\/a><h2>\(.*\)</h2>,<li> <a href="\#\1>\2</a></li>,|y Q|u
'ad'b"qP
-->

<h2>Contents</h2>
<ul>

<li> <a href="#cond">How do I handle conditional compilation?</a></li>
<li> <a href="#auto">How can I handle automatically generated files?</a></li>
<li> <a href="#save">How can I save an identifier or file query?</a></li>
<li> <a href="#cgfmt">Why aren't my call graphs appearing in the form I specified?</a></li>
<li> <a href="#syntax">How can I locate and fix a syntax error?</a></li>
<li> <a href="#win32fname">Why is my read-only prefix pragma not working under Windows?</a></li>
<li> <a href="#mem">My system appears to be using the hard disk excessively (thrashing).  Why?</a></li>
<li> <a href="#svgview">Why can't I see SVG call graphs in my browser?</a></li>
<li> <a href="#logo">Isn't the CScout logo infringing the intellectual property of the International Scout movement?</a></li>
</ul>


<!-- ******************************************************* -->
<a name="cond"> </a><h2>How do I handle conditional compilation?</h2>
You can either define macros that will cover all conditional cases,
or process the same project multiple times using different macro
definitions.
See <a href="short.html">this page</a>.


<!-- ******************************************************* -->
<a name="auto"> </a><h2>How can I handle automatically generated files?</h2>
Some projects use mini domain-specific languages
similar to <em>yacc</em> and <em>lex</em> to express some of their
elements.
<em>CScout</em> can natively parse C and <em>yacc</em> source files, but
no other language.
Obviously changes should be performed in the original domain-specific
files, rather than the generated C code.
On the other hand, <em>CScout</em> can not parse the original files,
but can parse the generated code.
To escape this situation include the automatically generated file
in your workspace definition, but define it as read-only.
In this way <em>CScout</em> will not allow you to modify identifiers appearing
in it.

<!-- ******************************************************* -->
<a name="save"> </a><h2>How can I save an identifier or file query?</h2>
Simply bookmark the page that shows the query's results.
You can even pass the URL around or print it on a T-shirt;
the URL contains the whole query.

<!-- ******************************************************* -->
<a name="cgfmt"> </a><h2>Why aren't my call graphs appearing in the form I specified?</h2>
Changing the global options that specify the format of call graphs
affects the types of links appearing in the corresponding pages.
If you go to a previous page using the back button and you do not
reload it, you will use the old links and will obtain the old type
of call graph.
This is the only instance where the use of the back button will
surprise you.

<!-- ******************************************************* -->
<a name="syntax"> </a><h2>How can I locate and fix a syntax error?</h2>
Most syntax errors occur due to compiler extensions or incorrect
definitions of macros.
They can often be corrected, by introducing a dummy macro that gets around
the corresponding compiler extension, like the following.
<pre>
#define __declspec(x)
</pre>
If the problem isn't obvious from the source code, you might need
preprocess the file by using the <code>-E</code> option,
and look at the preprocessed code.
To do this search in the preprocessed code for an (ideally unique)
occurrence of non-macro code near the problem spot.

<!-- ******************************************************* -->
<a name="win32fname"> </a><h2>Why is my read-only prefix pragma not working under Windows?</h2>
Filename matching under Windows is a difficult subject.
Filenames retain case, but are compared in a case insensitive manner.
To avoid problems, when writing <code>ro_prefix</code> and <code>ipath</code>
pragmas under a Windows platform, respect the following rules.
<ul>
<li> Include a drive letter in the path.</li>
<li> Write the drive letter in uppercase.</li>
<li> Separate the path elements using a single backslash.</li>
<li> Do not end the path with a trailing backslash.</li>
</ul>


<!-- ******************************************************* -->
<a name="mem"> </a><h2>My system appears to be using the hard disk excessively (thrashing).  Why?</h2>
<em>CScout</em> tags and follows each and every identifier of the source
code it processes, including header files.
As a result, the memory requirements of <em>CScout</em> are considerable.
Typical memory requirements are 700-1600 bytes per line processed.
If your system's main memory is less than the ammount needed,
<em>CScout</em> will page to disk and thrashing will occur.

<!-- ******************************************************* -->
<a name="svgview"> </a><h2>Why can't I see SVG call graphs in my browser?</h2>
Make sure your browser supports SVG viewing.
For instance, Firefox and Internet Explorer work fine; SeaMonkey doesn't.

<!-- ******************************************************* -->
<a name="tabkey"> </a><h2>Why doesn't the Tab key in the Safari browser allow me to move to each identifier definition?</h2>
Press <code>Option</code> (or <code>Alt</code>) <code>Tab</code>, instead of
Tab.
You can also permanently change Safari's behavior under
<em>Safari - Preferences - Advanced</em>.

<!-- ******************************************************* -->
<a name="logo"> </a><h2>Isn't the CScout logo infringing the intellectual property of the International Scout movement?</h2>
The emblem of the International Scout movement is based on
the <em>fleur de lys</em>,
a traditional design of the 11th century that was later used
to decorate maps and compass cards.
CScout acts as a compass and a map for C code, so the association
with the <em>fleur de lys</em> is particularly relevant.
You can read more about the <em>fleur de lys</em> symbol at the
<a href="http://www.wikipedia.org/wiki/Fleur-de-lis">Wikipedia</a>
web site entry.
Places or institutions
that use the symbol informally or as part of their heraldic arms are:
Quebec; Canada; Augsburg, Germany; Florence, Italy; Slovenia; the
Fuggers medieval banking family; Bosnia and Herzegovina; and Louisville,
Kentucky; the Prince of Wales also has a fleur de lys on his coat of
arms.
A
<a href="http://images.google.com.gr/images?q=fleur+de+lys&amp;hl=en&amp;lr=&amp;ie=ISO-8859-1&amp;safe=on">Google image search</a> for the image
will also show you tens of similar designs.
Finally, note that the International Scout movement's
rendering of the image includes two stars on the left and right leaves.
CScout's logo does not contain this distinctive feature.


</notes>
