<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body><span class="vcard"><a class="email" href="mailto:b.harrington@samsung.com" title="Bryce Harrington <b.harrington@samsung.com>"> <span class="fn">Bryce Harrington</span></a>
</span> changed
              <a class="bz_bug_link 
          bz_status_NEEDINFO "
   title="NEEDINFO - util/cairo-script: compilation errors on AIX (no member named '__jmpbuf')"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=89339">bug 89339</a>
          <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">Status</td>
           <td>NEW
           </td>
           <td>NEEDINFO
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEEDINFO "
   title="NEEDINFO - util/cairo-script: compilation errors on AIX (no member named '__jmpbuf')"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=89339#c2">Comment # 2</a>
              on <a class="bz_bug_link 
          bz_status_NEEDINFO "
   title="NEEDINFO - util/cairo-script: compilation errors on AIX (no member named '__jmpbuf')"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=89339">bug 89339</a>
              from <span class="vcard"><a class="email" href="mailto:b.harrington@samsung.com" title="Bryce Harrington <b.harrington@samsung.com>"> <span class="fn">Bryce Harrington</span></a>
</span></b>
        <pre>In studying <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - compilation errors on AIX (conflicting types for 'fgetpos64' ...)"
   href="show_bug.cgi?id=89354">bug 89354</a>, and googling around for best practices in order of
header inclusion, there seems to be a rough concensus[1] that you should
include in this order:

Given foo.c:
1.  "config.h"
2.  "foo.h"
3.  headers from the same component
4.  headers from other components
5.  system headers

The rationale here is to avoid hidden dependencies between headers.

For comparison, Google's coding style guide[2] swaps #3 and #5, arguing that
this ensures that build breaks show up first for people working on the files in
question, not for people in other projects.

Poking around Cairo .c files, the first form seems to be the more common
convention.  I think in the interest of consistency we should stick with that
form.

But looking at the original problem, maybe header shuffling is the wrong way to
solve this.  The actual underlying problem here is a namespace conflict on
jmpbuf.  The _csi_scanner structure is not part of any public API, so how about
just renaming the member to jump_buffer?

[1]
<a href="http://stackoverflow.com/questions/2762568/c-c-include-file-order-best-practices">http://stackoverflow.com/questions/2762568/c-c-include-file-order-best-practices</a>

[2]
<a href="http://google-styleguide.googlecode.com/svn/trunk/cppguide.html#Names_and_Order_of_Includes">http://google-styleguide.googlecode.com/svn/trunk/cppguide.html#Names_and_Order_of_Includes</a></pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>