This file is indexed.

/usr/share/doc/fweb/html-info/Outer-macros.html is in fweb-doc 1.62-13.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>FWEB: Outer macros</title>

<meta name="description" content="FWEB: Outer macros">
<meta name="keywords" content="FWEB: Outer macros">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Concept-index.html#Concept-index" rel="index" title="Concept index">
<link href="Parameter-index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Macros.html#Macros" rel="up" title="Macros">
<link href="FWEB-macros.html#FWEB-macros" rel="next" title="FWEB macros">
<link href="Macros.html#Macros" rel="prev" title="Macros">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en">
<a name="Outer-macros"></a>
<div class="header">
<p>
Next: <a href="FWEB-macros.html#FWEB-macros" accesskey="n" rel="next">FWEB macros</a>, Previous: <a href="Macros.html#Macros" accesskey="p" rel="prev">Macros</a>, Up: <a href="Macros.html#Macros" accesskey="u" rel="up">Macros</a> &nbsp; [<a href="Parameter-index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-index.html#Concept-index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>

<a name="Outer-macros-1"></a>
<h3 class="section">7.1 Outer macros</h3>

<a name="index-Macros_002c-outer"></a>
<p>Outer macros provide a shorthand way of invoking macro definitions in
the source language; they are not expanded by <small>FWEB</small>.  Outer macros are
defined by &lsquo;<samp>@d</samp>&rsquo; (see <a href="ATd.html#ATd">ATd</a>) or &lsquo;<samp>@D</samp>&rsquo;
(see <a href="ATD_005f.html#ATD_005f">ATD_</a>).  They may be placed in any definition part.  <small>FTANGLE</small>
collects them during phase 1; during phase 2, they are simply copied in
order of their appearance to the beginning of the output file.  This is
most useful for C or C++ codes; it&rsquo;s a quick way of typing
&lsquo;<samp>#define</samp>&rsquo; when the positioning of the &lsquo;<samp>#define</samp>&rsquo; is
unimportant.
</p>
<p>As an example,
</p>
<div class="example">
<pre class="example">@c
@
@d YES 1
@d NO 0
@a
main()
{}

@
@d BUF_LEN 100
@a
...
</pre></div>

<p>The keyword into which the &lsquo;<samp>@d</samp>&rsquo; is translated is
language-dependent; it is controlled by the style-file parameter
&lsquo;<samp>outer_def</samp>&rsquo;. See <a href="Miscellaneous-params.html#Miscellaneous-params">Miscellaneous params</a>.
</p>
<p>Outer macros can be undefined by &lsquo;<samp>@u</samp>&rsquo;.  The translation is
controlled by the style-file parameter &lsquo;<samp>outer_undef</samp>&rsquo;.
See <a href="Miscellaneous-params.html#Miscellaneous-params">Miscellaneous params</a>.
</p>
<p>The default behavior, in which the outer macro definitions are just
copied to the top of the output file, is fine for simple applications.
However, often C programmers prefer to maintain their macro definitions
in a header file such as <samp>test.h</samp>.  One way of accomplishing this is to
redirect <small>FTANGLE</small>&rsquo;s output from the command line, as in
&lsquo;<samp>ftangle test -=test.h</samp>&rsquo;, then use an &lsquo;<samp>@O</samp>&rsquo; command immediately
after the first &lsquo;<samp>@a</samp>&rsquo; in the <code>web</code> file to open up
<samp>test.c</samp>.  A more complicated variant of this allows additional
information to be placed into the header file, as in the following example:
</p>
<div class="example">
<pre class="example">@c
@* INTRO.
We assume command-line redirection into \.{test.h} (`\.{-=test.h}').

@d A 1 // This will go into \.{test.h}.

@a
@&lt;Header material@&gt;@; // Also goes into \.{test.h}.
@O test.c // Remaining unnamed sections go into \.{test.c}.

@ Header material may be defined as needed throughout the code, but
with this design it will all go into \.{test.h}.

@&lt;Header material@&gt;=

@&lt;Includes@&gt;@;
@&lt;Typedefs@&gt;@;
@&lt;Global variables@&gt;@;

</pre></div>

<hr>
<div class="header">
<p>
Next: <a href="FWEB-macros.html#FWEB-macros" accesskey="n" rel="next">FWEB macros</a>, Previous: <a href="Macros.html#Macros" accesskey="p" rel="prev">Macros</a>, Up: <a href="Macros.html#Macros" accesskey="u" rel="up">Macros</a> &nbsp; [<a href="Parameter-index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-index.html#Concept-index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>