    <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
     <channel>
        <title>ACCU  :: Intrusive Identifiers</title>
        <link>https://members.accu.org/index.php/articles/1219</link>
        <description>Professionalism in Programming</description>
        <dc:language>en-us</dc:language> 
        <dc:creator>Administrator</dc:creator> 
        <admin:generatorAgent rdf:resource="http://www.xaraya.org" /> 
        <admin:errorReportsTo rdf:resource="mailto:webeditor@accu.org" />
       <sy:updatePeriod>hourly</sy:updatePeriod>
       <sy:updateFrequency>1</sy:updateFrequency>
       <docs>http://backend.userland.com/rss</docs>




<div class="xar-mod-head"><span class="xar-mod-title">Programming Topics + CVu Journal Vol 15, #3 - Jun 2003</span></div>

<table border="0" cellpadding="1" cellspacing="0">
    <tbody>
    <tr>
        <td valign="top">
            Browse in :
       </td>
       <td valign="top">

                                            <a href="https://members.accu.org/index.php/articles/">All</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c13/">Topics</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c65/">Programming</a>
<br />

                                            <a href="https://members.accu.org/index.php/articles/">All</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c76/">Journals</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c77/">CVu</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c108/">153</a>
<br />

                                            <a href="https://members.accu.org/index.php/articles/c65-108/">Any of these categories</a>

                    -                        <a href="https://members.accu.org/index.php/articles/c65+108/">All of these categories</a>
<br />
</td>
   </tr>
   </tbody>
</table>




<div class="xar-error">
   <p>
 <strong>Note:</strong> when you create a new publication type,
the articles module will automatically use the templates
<em>user-display-[publicationtype].xt</em>
and <em>user-summary-[publicationtype].xt</em>.
If those templates do not exist when you try to preview or display a new article,
you'll get this warning :-)  Please place your own templates in themes/<em>yourtheme</em>/modules/articles . The templates will get the extension .xt there. </p>
</div>
<div class="xar-norm xar-standard-box-padding">
   <h1><strong>Title:</strong>&nbsp;Intrusive Identifiers</h1>
<p><strong>Author:</strong>&nbsp;</p>
<p>
<strong>Date:</strong> 03 June 2003 13:15:58 +01:00 or Tue, 03 June 2003 13:15:58 +01:00</p>
<p><strong>Summary:</strong>&nbsp;</p>
<p><strong>Body:</strong>&nbsp;<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e20" id="d0e20"></a></h2>
</div>
<p>I just came across a potentially nasty subtlety in the GNU macro
preprocessor M4 (version 1.4).</p>
<p>The words <tt class="literal">&quot;format&quot;</tt>, <tt class=
"literal">&quot;divert&quot;</tt> and <tt class="literal">&quot;shift&quot;</tt> are
all recognised as built-in macros, even without any parameters. So
if your text happens to contain <tt class="literal">&quot;format&quot;</tt>,
<tt class="literal">&quot;divert&quot;</tt> or <tt class=
"literal">&quot;shift&quot;</tt>, these words will disappear and strange
things can happen.</p>
<p>You can of course work around the problem by undefining them if
you don't want to use them:</p>
<pre class="programlisting">
undefine('format')
undefine('divert')
undefine('shift')
</pre>
<p>but I really think that there should be a big, obvious warning
in the documentation (at the very least), and I've filed a bug
report accordingly.</p>
<p>Lessons for more general programming? Be careful when putting
identifiers into somebody else's namespace, especially when they're
not likely to know all the identifiers you use when they write
their code or text. This is particularly the case with C and C++
macros, which are substituted &quot;blindly&quot; without regard to scope or
syntax.</p>
</div>
</p>
<p><strong>Notes:</strong>&nbsp;</p>
<p><em>More fields may be available via dynamicdata ..</em></p>
</div>
</channel>
</rss>
