<!DOCTYPE html PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN" [
<!ENTITY base CDATA "../..">
<!ENTITY date "$FreeBSD$">
<!ENTITY title "FreeBSD C99 and &posix; Conformance Project">
<!ENTITY email 'standards'>
<!ENTITY % navinclude.developers "INCLUDE">
<!ENTITY % developers PUBLIC "-//FreeBSD//ENTITIES FreeBSD Developers Entities//EN"> %developers;

<!ENTITY imagebase "&base;/gifs">

<!-- XXX: workaround for SGML expansion. -->
<!ENTITY nbsp SDATA "[nbsp ]">

<!-- Status levels -->
<!ENTITY status.blank "&nbsp;">
<!ENTITY status.blocked "<img src='&imagebase;/blocked.png' width='22' height='22' alt='Blocked'>">
<!ENTITY status.done "<img src='&imagebase;/done.png' width='22' height='22' alt='Done'>">
<!ENTITY status.new "<img src='&imagebase;/not_started.png' width='22' height='22' alt='Not Started'>">
<!ENTITY status.n-a "<img src='&imagebase;/not_planned.png' width='22' height='22' alt='Not Planned'>">
<!ENTITY status.wip "<img src='&imagebase;/in_progress.png' width='22' height='22' alt='In progress'>">



<!-- XXX: should use docbook man entities. -->
<!ENTITY man.assert.3 "<a href='http://www.FreeBSD.org/cgi/man.cgi?query=assert&amp;sektion=3'>assert(3)</a>">
<!ENTITY man.printf.3 "<a href='http://www.FreeBSD.org/cgi/man.cgi?query=printf&amp;sektion=3'>printf(3)</a>">
<!ENTITY man.scanf.3 "<a href='http://www.FreeBSD.org/cgi/man.cgi?query=scanf&amp;sektion=3'>scanf(3)</a>">
<!ENTITY man.strtod.3 "<a href='http://www.FreeBSD.org/cgi/man.cgi?query=strtod&amp;sektion=3'>strtod(3)</a>">
<!ENTITY man.printf.9 "<a href='http://www.FreeBSD.org/cgi/man.cgi?query=printf&amp;sektion=9'>printf(9)</a>">

<!-- XXX: from doc/en_US.ISO8859-1/share/sgml/mailing-lists.ent -->
<!ENTITY a.standards.subscribe "<a href='mailto:freebsd-standards-subscribe@FreeBSD.org'>freebsd-standards-subscribe@FreeBSD.org</a>">
<!ENTITY a.standards "<a href='mailto:freebsd-standards@FreeBSD.org'>freebsd-standards@FreeBSD.org</a>">

<!-- Non-committer developers. -->
<!ENTITY a.ryany "Ryan Younce">

]>

<html>
  &header;

    <img src="&imagebase;/c99.jpg" width="550" height="146" border="0"
      alt="FreeBSD C99 & POSIX Conformance Project"><br>

    <img src="&imagebase;/project_goal.png" width="229" height="36"
      alt="Project Goal">

    <p class="main">The FreeBSD C99 & &posix; Conformance Project aims
      to implement all requirements of the ISO 9899:1999 (C99) and
      IEEE 1003.1-2001 (POSIX) standards.  In cases where aspects of
      these standards cannot be followed, those aspects will be documented
      in the c99(7) or posix(7) manuals.  It is also an aim of this
      project to implement regression tests to ensure correctness
      whenever possible.</p>

    <img src="&imagebase;/project_plan.png" width="229" height="36"
      alt="Project Plan">

    <p class="main">All of the initial development takes place in the
      -CURRENT branch and most changes are merged into the -STABLE
      branch.  Since this is a rather large project and is being done
      on a volunteer basis, there is no set schedule.</p>

    <img src="&imagebase;/how_to_contribute.png" width="229" height="36"
      alt="How to Contribute">

    <p class="main">The project is always looking for additional contributors.  If you
      wish to participate, the best way to find out what is happening
      is to subscribe to the <a href="#mailinglist">freebsd-standards
      mailing list</a>.  If you are working on a specific task
      relating to the project, you should mail to the
      <a href="#mailinglist">list</a> with a
      description of the task so that your task can be listed
      below.</p>

    <img src="&imagebase;/resources_and_links.png" width="229" height="36"
      alt="Resources and Links">

    <ul class="list">
      <li><p>ISO/IEC 9899:1999, also known as C99, is available
            for purchase in electronic form from the
            <a href="http://webstore.ansi.org/ansidocstore/product.asp?sku=ANSI/ISO/IEC+9899-1999">American
            National Standards Institute</a>, or available from the
            <a href="http://www.iso.ch/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=29237&amp;ICS1=35&amp;ICS2=60&amp;ICS3=">International
            Organization for Standardization store</a> in electronic
            and paper form.</p></li>
      <li><p><a href="http://www.unix-systems.org/version3/">IEEE Std 1003.1-2001</a>
            - The free (registration required), online version of
            POSIX.1-2001 and SUSv3 standard.</p></li>
      <li><p><a href="http://www.kuro5hin.org/story/2001/2/23/194544/139">Are
            you Ready For C99?</a> - This article discusses some of the
            new features in C99.</p>
      <li><p><a name="mailinglist">Most discussion relating to</a>
            this project takes place on the &a.standards; mailing list.
            To subscribe to the list, send a message to &a.standards.subscribe;.</p></li>
      <li><p>Jens Schweikhardt maintains a
            <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html">list</a>
            with the current status of POSIX Utility Conformance in
            FreeBSD.</p></li>
    </ul>

    <img src="&imagebase;/status_board.png" width="229" height="36"
      alt="Status Board"><br><br>

    <!-- Tasks should be sorted in order of most complete, then reverse -->
    <!-- chronological order. -->

    <table class="tblbasic">
      <tr>
	<th rowspan="2" class="heading"> Task </th>
	<th rowspan="2" class="heading"> Responsible </th>
	<th rowspan="2" class="heading"> Last&nbsp;Updated </th>
	<th colspan="4" class="heading"> Status </th>
      </tr>

      <tr>
        <th class="heading"> 9.X </th>
        <th class="heading"> 8.X </th>
        <th class="heading"> 7.X </th>
        <th class="heading"> 6.X </th>
      </tr>

      <tr>
        <td colspan="7" class="section"> Documentation </td>
      </tr>

      <tr>
        <td> Create stdint(7) manual to document &lt;stdint.h&gt;. </td>
        <td> &a.mike; </td>
        <td nowrap> 15 September 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
	<td> Document flockfile(3), ftrylockfile(3), funlockfile(3). </td>
	<td> &a.tjr; </td>
	<td nowrap> 22 January 2004 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Document new _SC options in sysconf(3) (PR: <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=20528">20528</a>). </td>
	<td> &a.trhodes; </td>
	<td nowrap> 13 January 2005 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Document standards conformity level of the API. </td>
        <td> &nbsp; </td>
        <td nowrap> 26 March 2002 </td>
        <td> &status.wip; </td>
        <td> &status.wip; </td>
        <td> &status.wip; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Document thread safety and async-cancel safety. </td>
        <td> &nbsp; </td>
        <td nowrap> 26 March 2002 </td>
        <td> &status.wip; </td>
        <td> &status.wip; </td>
        <td> &status.wip; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Create c99(7) and posix(7) manuals. </td>
        <td> &nbsp; </td>
        <td nowrap> 11 December 2001 </td>
        <td> &status.new; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Document in posix(7) that the batch job management utilities
          are available in the port net/generic-nqs.</td>
        <td> &nbsp; </td>
        <td nowrap> 11 December 2001 </td>
        <td> &status.new; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>
    </table><br><br>

    <table class="tblbasic">
      <tr>
	<th rowspan="2" class="heading"> Task </th>
	<th rowspan="2" class="heading"> Responsible </th>
	<th rowspan="2" class="heading"> Last&nbsp;Updated </th>
	<th colspan="4" class="heading"> Status </th>
      </tr>

      <tr>
        <th class="heading"> 9.X </th>
        <th class="heading"> 8.X </th>
        <th class="heading"> 7.X </th>
        <th class="heading"> 6.X </th>
      </tr>

      <tr>
        <td colspan="7" class="section"> Functions and System Calls </td>
      </tr>

      <tr>
        <td> Add __func__ reporting to &man.assert.3;. </td>
        <td> &a.asmodai; </td>
        <td nowrap> 27 October 2001 </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement imaxabs(), imaxdiv(), llabs(), lldiv(). </td>
	<td> &a.mike; </td>
	<td nowrap> 14 November 2001 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement atoll(), strtoimax(), strtoumax(). </td>
	<td> &a.fenner; </td>
	<td nowrap> 27 November 2001 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement new length modifiers (hh, j, t, z) and new
	  flag (') in &man.printf.3;. </td>
	<td> &a.wollman;,<br>&a.fenner; </td>
	<td nowrap> 30 November 2001 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement strerror_r(). </td>
	<td> &a.wes; </td>
	<td nowrap> 20 December 2001 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement tgamma() based on Lite1's gamma(). </td>
	<td> &a.bde; </td>
	<td nowrap> 27 March 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement new length modifiers (hh, j, ll, t, z) in
	  &man.scanf.3;. </td>
	<td> &a.fenner; </td>
	<td nowrap> 20 April 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Add WCONTINUED to waitpid(2). </td>
	<td> &a.mike; </td>
	<td nowrap> 1 June 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement new conversion specifiers (%j and %n) in
          &man.printf.9;. </td>
	<td> &a.dd;<br>&a.des; </td>
	<td nowrap> 3 June 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement fstatvfs() and statvfs() (trivial). </td>
	<td> &a.wollman; </td>
	<td nowrap> 14 June 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Implement fmtmsg(). </td>
        <td> &a.mike; </td>
        <td nowrap> 8 August 2002 </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Implement ulimit(). </td>
        <td> &a.mkm; </td>
        <td nowrap> 8 August 2002 </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Implement C99's _Exit(). </td>
        <td> &a.wollman; </td>
        <td nowrap> 11 September 2002 </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
	<td> Add required options for POSIX.1-2001 to glob(). (partial MFC)</td>
	<td> &a.mikeh; </td>
	<td nowrap> 20 September 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Update sysconf(3) for POSIX.1-2001. </td>
	<td> &a.wollman; </td>
	<td nowrap> 18 September 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Restore insque(), lsearch(), remque() from libcompat. </td>
	<td> &a.robert; </td>
	<td nowrap> 16 November 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement fpclassify(). </td>
	<td> &a.das;,<br>&a.mike; </td>
	<td nowrap> 8 February 2003 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement isfinite(), isinf(), isnan(), isnormal(). </td>
	<td> &a.das; </td>
	<td nowrap> 17 February 2003 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement isgreater(), isgreaterequal(), isless(), islessequal(),
	  islessgreater(). </td>
	<td> &a.das; </td>
	<td nowrap> 17 February 2003 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement signbit(). </td>
	<td> &a.mike; </td>
	<td nowrap> 17 February 2003 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Implement sockatmark(). </td>
        <td> &a.fenner; </td>
        <td nowrap> 23 December 2002 </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Implement wordexp() and wordfree(). </td>
        <td> &a.tjr; </td>
        <td nowrap> 31 December 2002 </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Implement grantpt(), posix_openpt(), ptsname(), unlockpt(). </td>
        <td> &a.ryany; </td>
        <td nowrap> 4 February 2003 </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
	<td> Add floating-point support for the (') modifier in
	  &man.printf.3; </td>
	<td> &a.das; </td>
	<td nowrap> 22 January 2004 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Add new conversion specifiers (%a and %A) to &man.printf.3;. </td>
	<td> &a.das; </td>
	<td nowrap> 22 January 2004 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Transition to vendor (Netlib) source for strtod.c. </td>
        <td> &a.das; </td>
        <td nowrap> 22 January 2004 </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Import Netlib's gdtoa (strtof, strtold, etc.). </td>
        <td> &a.das; </td>
        <td nowrap> 22 January 2004 </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement C99 macros fpclassify(), isfinite(), isinf(), isnan(),
	  isnormal(), signbit(). </td>
	<td> &a.mike;,<br>&a.das; </td>
	<td nowrap> 22 January 2004 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement C99 macros isgreater(), isgreaterequal(), isless(),
	  islessequal(), islessgreater(), isunordered(). </td>
	<td> &a.mike;,<br>&a.das; </td>
	<td nowrap> 22 January 2004 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement new hex floating-point format types (%a/%A) in
	  &man.scanf.3;. </td>
	<td> &a.das; </td>
	<td nowrap> 22 January 2004 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement getpwnam_r(), getpwuid_r(). </td>
	<td> &a.nectar; </td>
	<td nowrap> 7 June 2004 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement posix_madvise(). </td>
	<td> &a.bms; </td>
	<td nowrap> 7 June 2004 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Implement new functions that appear in &lt;fenv.h&gt;. </td>
        <td> &a.das; </td>
        <td nowrap> 7 June 2004 </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement ftw() and nftw() in terms of fts(). </td>
	<td> &a.das; </td>
	<td nowrap> 8 July 2004 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement C99 rounding functions lrint(), lrintf(), lrintl(),
          llrint(), llrintf(), llrintl(). </td>
	<td> &a.das; </td>
	<td nowrap> 13 January 2005 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement getgrgid_r(), getgrnam_r(). </td>
	<td> &a.wes; </td>
	<td nowrap> 19 August 2005 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Obtain a64l(), l64a(), and l64a_r() (extension) from NetBSD (PR: <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=51209">51209</a>). </td>
	<td> &a.trhodes; </td>
	<td nowrap> 27 February 2006 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Implement RTS functions sigqueue(), sigtimedwait(),
          sigwaitinfo(). </td>
        <td> &a.davidxu; </td>
        <td nowrap> 4 October 2006 </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
	<td> Implement posix_memalign() (PR: <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=85090">85090</a>).
	</td>
	<td> &a.jasone; </td>
	<td nowrap> 1 August 2008 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
	<td> Implement exp2(), fma(), nan(), nexttoward(), and
	  remquo() in libm. </td>
	<td> &a.das; </td>
	<td nowrap> 1 August 2008 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.wip; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
        <td> Update fmtcheck(3) to recognize new printf(3) flags. </td>
        <td> &a.das; </td>
        <td nowrap> 1 August 2008 </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.wip; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Implement the utmpx family of functions. </td>
        <td> &a.ed; </td>
        <td nowrap> 5 December 2010 </td>
        <td> &status.done; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
	<td> Implement log2() and log2f() in libm. </td>
	<td> &a.bde;,<br>&a.das; </td>
	<td nowrap> 6 March 2011 </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.blank; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
        <td> Make non thread-safe functions thread-safe. </td>
        <td> &nbsp; </td>
        <td nowrap> 22 October 2001 </td>
        <td> &status.wip; </td>
        <td> &status.wip; </td>
        <td> &status.wip; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
	<td> Implement missing long double functions in libm. </td>
	<td> &a.bde;,<br>&a.das;,<br>&a.stefanf;,<br>&a.kargl; </td>
	<td nowrap> 5 December 2010 </td>
        <td> &status.wip; </td>
	<td> &status.wip; </td>
	<td> &status.wip; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
	<td> Implement waitid(2). </td>
	<td> &nbsp; </td>
	<td nowrap> 27 May 2002 </td>
        <td> &status.wip; </td>
	<td> &status.wip; </td>
	<td> &status.blank; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
	<td> Add restrict type-qualifier to functions that require it. </td>
	<td> &nbsp; </td>
	<td nowrap> 16 August 2002 </td>
        <td> &status.wip; </td>
	<td> &status.wip; </td>
	<td> &status.wip; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
        <td> Implement new functions that appear in &lt;complex.h&gt;. </td>
        <td> &a.bde;,<br>&a.das;,<br>&a.kargl; </td>
        <td nowrap> 6 March 2011 </td>
        <td> &status.wip; </td>
        <td> &status.wip; </td>
        <td> &status.wip; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
	<td> Implement iconv(), iconv_close(), iconv_open(). </td>
	<td> &a.gabor; </td>
	<td nowrap> 5 December 2010 </td>
        <td> &status.wip; </td>
	<td> &status.blank; </td>
	<td> &status.blank; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
        <td> Make functions async-cancel safe. </td>
        <td> &nbsp; </td>
        <td nowrap> 22 October 2001 </td>
        <td> &status.new; </td>
        <td> &status.new; </td>
        <td> &status.blank; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
        <td> Add SIG_HOLD support to signal(3)/sigaction(2). </td>
        <td> &nbsp; </td>
        <td nowrap> 13 October 2002 </td>
        <td> &status.new; </td>
        <td> &status.new; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Update fmtcheck(3) to recognize positional parameters. </td>
        <td> &nbsp; </td>
        <td nowrap> 1 August 2008 </td>
        <td> &status.new; </td>
        <td> &status.new; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
	<td> Implement posix_mem_offset(),
          posix_typed_mem_get_info(), and posix_typed_mem_open().
	</td>
	<td> &nbsp; </td>
	<td nowrap> 1 August 2008 </td>
        <td> &status.new; </td>
	<td> &status.new; </td>
	<td> &status.blank; </td>
	<td> &status.blank; </td>
      </tr>
    </table><br><br>

    <table class="tblbasic">
      <tr>
	<th rowspan="2" class="heading"> Task </th>
	<th rowspan="2" class="heading"> Responsible </th>
	<th rowspan="2" class="heading"> Last&nbsp;Updated </th>
	<th colspan="4" class="heading"> Status </th>
      </tr>

      <tr>
        <th class="heading"> 9.X </th>
        <th class="heading"> 8.X </th>
        <th class="heading"> 7.X </th>
        <th class="heading"> 6.X </th>
      </tr>

      <tr>
        <td colspan="7" class="section"> Headers </td>
      </tr>

      <tr>
	<td> Fix prototypes and hide non-conforming portions of header
          &lt;arpa/inet.h&gt;. </td>
	<td> &a.mike; </td>
	<td nowrap> 19 February 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Implement the &lt;stdint.h&gt; and &lt;inttypes.h&gt;
           headers. </td>
        <td> &a.mike; </td>
        <td nowrap> 1 March 2002 </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add exposure control primitives to &lt;sys/cdefs.h&gt;
          (originally developed by &a.wollman;). </td>
        <td> &a.mike; </td>
        <td nowrap> 1 April 2002 </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Implement &lt;sys/_types&gt; to store shared MI types. </td>
        <td> &a.mike; </td>
        <td nowrap> 1 April 2002 </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement header &lt;strings.h&gt;, and work out
          compatibility issues with header &lt;string.h&gt;. </td>
	<td> &a.mike; </td>
	<td nowrap> 4 April 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Hide non-conforming portions, add missing types to
          &lt;sys/un.h&gt;. </td>
	<td> &a.mike; </td>
	<td nowrap> 19 April 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Remove pollution and add missing macros to
	  &lt;netinet/in.h&gt; and &lt;netinet6/in6.h&gt;. </td>
	<td> &a.mike; </td>
	<td nowrap> 23 May 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Hide non-conforming portions of &lt;sys/wait.h&gt;. </td>
	<td> &a.mike; </td>
	<td nowrap> 3 June 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Hide non-conforming portions of &lt;pwd.h&gt;. </td>
	<td> &a.mike; </td>
	<td nowrap> 9 June 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Create &lt;sys/statvfs.h&gt; based on POSIX spec. </td>
	<td> &a.wollman; </td>
	<td nowrap> 14 June 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Add nfds_t and resolve other issues in &lt;poll.h&gt;
	   (actually &lt;sys/poll.h&gt;). </td>
	<td> &a.mike; </td>
	<td nowrap> 8 July 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement the XSI header, &lt;cpio.h&gt;. </td>
	<td> &a.mike; </td>
	<td nowrap> 1 August 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Implement &lt;fmtmsg.h&gt;. </td>
        <td> &a.mike; </td>
        <td nowrap> 8 August 2002 </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Implement &lt;ulimit.h&gt;. </td>
        <td> &a.mkm; </td>
        <td nowrap> 8 August 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Merge &lt;machine/ansi.h&gt; and &lt;machine/types&gt; into
	  a new common header &lt;machine/_types.h&gt;. </td>
        <td> &a.bde;,<br>&a.mike; </td>
        <td nowrap> 23 August 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Fix namespaces, add missing types in &lt;sys/mman.h&gt;. </td>
        <td> &a.mike; </td>
        <td nowrap> 29 August 2002 </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Fix namespace issues in &lt;ctype.h&gt;. </td>
        <td> &a.mike; </td>
        <td nowrap> 9 September 2002 </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Fix namespace issues in &lt;dlfcn.h&gt;. </td>
        <td> &a.wollman;,<br>&a.mike; </td>
        <td nowrap> 11 September 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Fix namespace issues in &lt;fcntl.h&gt;. </td>
        <td> &a.mike; </td>
        <td nowrap> 18 September 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Fix namespace issues in &lt;fnmatch.h&gt;. </td>
        <td> &a.mike; </td>
        <td nowrap> 18 September 2002 </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Fix namespace issues in &lt;grp.h&gt;. </td>
        <td> &a.mike; </td>
        <td nowrap> 18 September 2002 </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Fix namespace issues in &lt;langinfo.h&gt;. </td>
        <td> &a.mike; </td>
        <td nowrap> 18 September 2002 </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add va_copy() macro to &lt;stdarg.h&gt;
          (actually &lt;machine/stdarg.h&gt;). </td>
        <td> &a.mike; </td>
        <td nowrap> 20 September 2002 </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Fix namespaces issues in &lt;stdlib.h&gt;. </td>
        <td> &a.wollman; </td>
        <td nowrap> 21 September 2002 </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Add new pathname, system variable, and POSIX option constants
          to &lt;unistd.h&gt;. </td>
	<td> &a.wollman; </td>
	<td nowrap> 21 September 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Merge two conflicting math.h headers into a single header. </td>
	<td> &a.bde; </td>
	<td nowrap> 2 October 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Fix namespace issues in &lt;net/if.h&gt;. </td>
	<td> &a.mike; </td>
	<td nowrap> 2 October 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Fix namespace issues in &lt;netinet/tcp.h&gt;. </td>
	<td> &a.mike; </td>
	<td nowrap> 2 October 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Add size_t, fix regoff_t in &lt;regex.h&gt;. </td>
	<td> &a.mike; </td>
	<td nowrap> 2 October 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Fix namespace issues in &lt;sched.h&gt; (actually
          &lt;posix4/sched.h&gt;). </td>
	<td> &a.mike; </td>
	<td nowrap> 5 October 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Fix namespace issues in &lt;semaphore.h&gt; (actually
          &lt;posix4/semaphore.h&gt;). </td>
	<td> &a.mike; </td>
	<td nowrap> 5 October 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Fix namespace issues in &lt;setjmp.h&gt; (actually
          &lt;machine/setjmp.h&gt;). </td>
	<td> &a.mike; </td>
	<td nowrap> 5 October 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Fix namespace issues in &lt;stdio.h&gt;. </td>
	<td> &a.wollman; </td>
	<td nowrap> 7 October 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Add missing members to struct lconv in &lt;locale.h&gt;. </td>
        <td> &a.tjr; </td>
        <td nowrap> 9 October 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Fix namespace issues, add missing types in
	    &lt;sys/socket.h&gt;. </td>
	<td> &a.mike; </td>
	<td nowrap> 13 October 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Fix namespace issues, add missing types in &lt;sys/uio.h&gt;. </td>
	<td> &a.mike; </td>
	<td nowrap> 13 October 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Fix namespace issues in &lt;signal.h&gt; (also
          &lt;sys/signal.h&gt; and &lt;machine/signal.h&gt;). </td>
        <td> &a.mike; </td>
        <td nowrap> 13 October 2002 </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Eliminate &lt;sys/_posix.h&gt;. </td>
        <td> &a.mike; </td>
        <td nowrap> 16 October 2002 </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Implement the header &lt;wordexp.h&gt;. </td>
        <td> &a.tjr; </td>
        <td nowrap> 31 December 2002 </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add missing constants FLT_EVAL_METHOD, DECIMAL_DIG to
          &lt;float.h&gt; (actually &lt;machine/float.h&gt;). </td>
        <td> &a.mike;,<br>&a.das; </td>
        <td nowrap> 22 January 2004 </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Implement the header &lt;fenv.h&gt;. </td>
        <td> &a.das; </td>
        <td nowrap> 7 June 2004 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Implement &lt;ftw.h&gt;. </td>
        <td> &a.das; </td>
        <td nowrap> 8 July 2004 </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Implement &lt;tgmath.h&gt;. </td>
        <td> &a.stefanf; </td>
        <td nowrap> 13 January 2005 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Implement &lt;utmpx.h&gt; to eventually replace
	  &lt;utmp.h&gt;. </td>
        <td> &a.ed; </td>
        <td nowrap> 5 December 2010 </td>
        <td> &status.done; </td>
        <td> &status.blank; </td>
	<td> &status.blank; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
        <td> Hide non-conforming portions, add missing types to
          &lt;sys/types.h&gt;. </td>
        <td> &a.mike; </td>
        <td nowrap> 1 April 2002 </td>
        <td> &status.wip; </td>
        <td> &status.wip; </td>
        <td> &status.wip; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
	<td> Reduce namespace pollution and add missing typedefs in
           &lt;unistd.h&gt; </td>
	<td> &a.mike; </td>
	<td nowrap> 25 March 2002 </td>
        <td> &status.wip; </td>
	<td> &status.wip; </td>
	<td> &status.wip; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
        <td> Hide non-conforming portions, add missing types to
          &lt;sys/stat.h&gt;. </td>
        <td> &a.mike; </td>
        <td nowrap> 27 February 2003 </td>
        <td> &status.wip; </td>
        <td> &status.wip; </td>
        <td> &status.wip; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Implement new types and prototypes in header
          &lt;complex.h&gt;. </td>
        <td> &nbsp; </td>
        <td nowrap> 1 August 2008 </td>
        <td> &status.wip; </td>
        <td> &status.wip; </td>
        <td> &status.wip; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
        <td> Implement the header &lt;iconv.h&gt;. </td>
        <td> &a.gabor; </td>
        <td nowrap> 5 December 2010 </td>
        <td> &status.wip; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
        <td> Decide whether to remove const type-qualifiers in
	  &lt;libgen.h&gt;. </td>
        <td> &nbsp; </td>
        <td nowrap> 20 September 2002 </td>
        <td> &status.new; </td>
        <td> &status.blank; </td>
	<td> &status.blank; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
        <td> Add missing constants in &lt;limits.h&gt;. </td>
        <td> &nbsp; </td>
        <td nowrap> 20 September 2002 </td>
        <td> &status.new; </td>
        <td> &status.new; </td>
	<td> &status.blank; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
        <td> Fix sizes of members in datum, add missing types, fix namespace
          issues in &lt;ndbm.h&gt;. </td>
        <td> &nbsp; </td>
        <td nowrap> 2 October 2002 </td>
        <td> &status.new; </td>
	<td> &status.blank; </td>
	<td> &status.blank; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
        <td> Fix size of si_addrlen in struct addrinfo, add missing types,
          fix namespace issues in &lt;netdb.h&gt;. </td>
        <td> &nbsp; </td>
        <td nowrap> 2 October 2002 </td>
        <td> &status.new; </td>
        <td> &status.blank; </td>
	<td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Evaluate missing features of &lt;pthread.h&gt;. </td>
        <td> &nbsp; </td>
        <td nowrap> 2 October 2002 </td>
        <td> &status.new; </td>
        <td> &status.blank; </td>
	<td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Add missing members to struct sigevent, fix type of ss_sp in
          struct sigstack, add SIGEV_THREAD constant, add ucontext_t and
          mcontext_t in &lt;sys/signal.h&gt;. </td>
        <td> &nbsp; </td>
        <td nowrap> 13 October 2002 </td>
        <td> &status.new; </td>
	<td> &status.blank; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Fix types for members of struct ipc_perm in
          &lt;sys/ipc.h&gt;. </td>
        <td> &nbsp; </td>
        <td nowrap> 16 October 2002 </td>
        <td> &status.new; </td>
	<td> &status.blank; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Add restrict type-qualifiers in &lt;glob.h&gt;. </td>
        <td> &nbsp; </td>
        <td nowrap> 1 August 2008 </td>
        <td> &status.new; </td>
	<td> &status.blank; </td>
	<td> &status.blank; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
        <td> Investigate making ENOTSUP and EOPNOTSUPP distinct in &lt;errno.h&gt; (actually
          &lt;sys/errno.h&gt;). </td>
        <td> &nbsp; </td>
        <td nowrap> 1 August 2008 </td>
        <td> &status.new; </td>
        <td> &status.blank; </td>
	<td> &status.blank; </td>
	<td> &status.blank; </td>
      </tr>
    </table><br><br>

    <table class="tblbasic">
      <tr>
	<th rowspan="2" class="heading"> Task </th>
	<th rowspan="2" class="heading"> Responsible </th>
	<th rowspan="2" class="heading"> Last&nbsp;Updated </th>
	<th colspan="4" class="heading"> Status </th>
      </tr>

      <tr>
        <th class="heading"> 9.X </th>
        <th class="heading"> 8.X </th>
        <th class="heading"> 7.X </th>
        <th class="heading"> 6.X </th>
      </tr>

      <tr>
        <td colspan="7" class="section"> Miscellaneous </td>
      </tr>

      <tr>
	<td> Obtain a copy of Proc. ACM SIGPLAN '90 (required for
          &man.printf.3; %'f). </td>
	<td> &a.fenner; </td>
	<td nowrap> 9 November 2001 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Upgrade system compiler to GCC 3.1. </td>
	<td> &a.obrien; </td>
	<td nowrap> 15 May 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Merge sys/posix4/* into regular kernel hierarchy, and remove
          sys/posix4. </td>
        <td> &a.trhodes; </td>
        <td nowrap> 13 November 2006 </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
        <td> Add regression test for each function. </td>
        <td> &nbsp; </td>
        <td nowrap> 1 August 2008 </td>
        <td> &status.wip; </td>
        <td> &status.wip; </td>
        <td> &status.wip; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Open an Aardvark on how to deal with no newline on the
          last line of a file in diff(1). </td>
        <td> &nbsp; </td>
        <td nowrap> 25 November 2002 </td>
        <td> &status.new; </td>
        <td> &status.blank; </td>
	<td> &status.blank; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
        <td> Globally rename the `lint' macro to something in the
          implementation namespace so it can safely modify the
          implementation (<a href="http://www.FreeBSD.org/cgi/mid.cgi?id=20021021093912.A80691@espresso.q9media.com">reference</a>). </td>
        <td> &nbsp; </td>
        <td nowrap> 25 November 2002 </td>
        <td> &status.new; </td>
	<td> &status.blank; </td>
	<td> &status.blank; </td>
	<td> &status.blank; </td>
      </tr>

      <tr>
        <td> Globally rename the `LOCORE' macro to something in the
          implementation namespace so it can safely modify the
          implementation (<a href="http://www.FreeBSD.org/cgi/cvsweb.cgi/src/sys/ia64/include/setjmp.h.diff?r1=1.6&amp;r2=1.7">reference</a>). </td>
        <td> &nbsp; </td>
        <td nowrap> 25 November 2002 </td>
        <td> &status.new; </td>
	<td> &status.blank; </td>
	<td> &status.blank; </td>
	<td> &status.blank; </td>
      </tr>
    </table><br><br>

    <table class="tblbasic">
      <tr>
	<th rowspan="2" class="heading"> Task </th>
	<th rowspan="2" class="heading"> Responsible </th>
	<th rowspan="2" class="heading"> Last&nbsp;Updated </th>
	<th colspan="4" class="heading"> Status </th>
      </tr>

      <tr>
        <th class="heading"> 9.X </th>
        <th class="heading"> 8.X </th>
        <th class="heading"> 7.X </th>
        <th class="heading"> 6.X </th>
      </tr>

      <tr>
        <td colspan="7" class="section"> Utility Conformance </td>
      </tr>

      <tr>
        <td> Add -o option and base64 decoding to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#uudecode">uudecode</a> utility. </td>
        <td> &a.jmallett; </td>
        <td nowrap> 26 March 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add -m option and base64 encoding to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#uuencode">uuencode</a> utility. </td>
        <td> &a.jmallett; </td>
        <td nowrap> 26 March 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Require at least one file argument in paste(1).  (PR: <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=36074">36074</a>) </td>
        <td> &a.tjr; </td>
        <td nowrap> 1 April 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add the -i option to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#patch">patch</a> utility. </td>
        <td> &a.jmallett; </td>
        <td nowrap> 9 April 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add -r and -t options to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#at">at</a> utility. </td>
        <td> &a.joe.halpin; </td>
        <td nowrap> 16 April 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add the -f and -p options to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#pr">pr</a> utility.  (PR: <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=36243">36243</a>) </td>
        <td> &a.tjr; </td>
        <td nowrap> 16 April 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add the -s option to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#m4">m4</a> utility. (PR: <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=36075">36075</a>) </td>
        <td> &a.tjr; </td>
        <td nowrap> 24 April 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Make printf(1) utility conform to POSIX.2 (1992).  (PR: <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=35616">35616</a>) </td>
        <td> &a.tjr; </td>
        <td nowrap> 2 May 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Correct output stream and exit status of the mesg(1) utility. </td>
        <td> &a.tjr; </td>
        <td nowrap> 6 May 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Implement the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#asa">asa</a> utility.  (PR: <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=36130">36130</a>) </td>
        <td> &a.tjr; </td>
        <td nowrap> 15 May 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#tabs">tabs</a> utility.  (PR: <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=36126">36126</a>) </td>
        <td> &a.tjr; </td>
        <td nowrap> 20 May 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
	<td> Restore <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#sccs">sccs</a> utility from CVS attic. </td>
	<td> &a.jmallett; </td>
	<td nowrap> 22 May 2002 </td>
	<td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
        <td> Make expr(1) conform to POSIX.1-2001. </td>
        <td> &a.wollman; </td>
        <td nowrap> 22 May 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#newgrp">newgrp</a> utility. (PR: <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=36190">36190</a>)</td>
        <td> &a.tjr; </td>
        <td nowrap> 28 May 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Fix ctags(1)'s -t option; fix ordering with -x. </td>
        <td> &a.tjr; </td>
        <td nowrap> 2 June 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add -L option to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#pwd">pwd</a> utility. </td>
        <td> &a.tjr; </td>
        <td nowrap> 20 June 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Fix exit status of the env(1) utility. </td>
        <td> &a.tjr; </td>
        <td nowrap> 20 June 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add the -b and -s option to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#fold">fold</a> utility.  (PR: <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=36245">36245</a>) </td>
        <td> &a.tjr; </td>
        <td nowrap> 20 June 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add -I and -L options to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#xargs">xargs</a> utility. </td>
        <td> &a.jmallett; </td>
        <td nowrap> 20 June 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Implement the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#csplit">csplit</a> utility.  (PR: <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=36191">36191</a>) </td>
        <td> &a.tjr; </td>
        <td nowrap> 20 June 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Fix exit status of the nice(1) utility. </td>
        <td> &a.tjr; </td>
        <td nowrap> 20 June 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add -n option to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#nice">nice</a> utility. </td>
        <td> &a.pavalos; </td>
        <td nowrap> 20 June 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add -n option and resolve other issues in the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#renice">renice</a> utility. (PR: <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=36950">36950</a>) </td>
        <td> &a.pavalos;,<br>&a.maxim; </td>
        <td nowrap> 20 June 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add -t option to unexpand(1) utility.  (PR: <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=35621">35621</a>) </td>
        <td> &a.tjr; </td>
        <td nowrap> 20 June 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Make the uniq(1) utility accept `-' as a stdin specifier. </td>
        <td> &a.tjr; </td>
        <td nowrap> 28 June 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Improve join(1)'s POSIX.1-2001 conformance.  (PR: <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=36072">36072</a>) </td>
        <td> &a.tjr; </td>
        <td nowrap> 28 June 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add -C option to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#tr">tr</a> utility. </td>
        <td> &a.tjr; </td>
        <td nowrap> 28 June 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Implement the -m, -p, and -x options in the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#ls">ls</a> utility. </td>
        <td> &a.mkm; </td>
        <td nowrap> 8 July 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Reimplement the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#who">who</a> utility.  (PR: <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=36128">36128</a>) </td>
        <td> &a.tjr; </td>
        <td nowrap> 14 July 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Fix exit status, stdout/stderr confusion, and add `-' stdin
	  support to the compress(1) utility. </td>
        <td> &a.tjr; </td>
        <td nowrap> 17 July 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add the -s, -A, -j, -N, and -t options to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#od">od</a> utility. (PR: <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=36783">36783</a>) </td>
        <td> &a.tjr; </td>
        <td nowrap> 24 July 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add -a option to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#split">split</a> utility. </td>
        <td> &a.tjr; </td>
        <td nowrap> 30 July 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add -m option to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#wc">wc</a> utility. </td>
        <td> &a.tjr; </td>
        <td nowrap> 29 August 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add -L and -P options to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#cd">cd</a> utility (shell built-in). </td>
        <td> &a.tjr; </td>
        <td nowrap> 7 October 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Reimplement command(1) (shell built-in). </td>
        <td> &a.tjr; </td>
        <td nowrap> 7 October 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#c99">c99</a> utility (similar to c89).  (PR: <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=36087">36087</a>) </td>
        <td> &a.tjr; </td>
        <td nowrap> 8 October 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Update getconf(1) for POSIX.1-2001. </td>
        <td> &a.wollman; </td>
        <td nowrap> 12 November 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#pathchk">pathchk</a> utility. </td>
        <td> &a.tjr; </td>
        <td nowrap> 12 November 2002 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Document the -n option in the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#echo">echo</a> utility as being implementation-defined.</td>
        <td> &a.schweikh; </td>
        <td nowrap> 8 May 2003 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add -p option to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#more">more</a> utility. </td>
        <td> &nbsp; </td>
        <td nowrap> 30 November 2001 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add -p, -v, and -V options to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#command">command</a> utility (shell built-in).</td>
        <td> &a.stefanf; </td>
        <td nowrap> 27 February 2006 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add missing options to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#mailx">mailx</a> utility. </td>
        <td> &a.mikeh; </td>
        <td nowrap> 24 September 2006 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
      </tr>

      <tr>
        <td> Add missing components to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#jobs">jobs</a>
	  utility (PR: <a href="http://www.freebsd.org/cgi/query-pr.cgi?pr=99926">99926</a>). </td>
        <td> &a.stefanf; </td>
        <td nowrap> 7 October 2006 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Add -C and -T options to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#ar">ar</a> utility. </td>
        <td> &a.kientzle; </td>
        <td nowrap> 1 August 2008 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Bring the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#cp">cp</a> utility up to conformance.</td>
        <td> &nbsp; </td>
        <td nowrap> 1 August 2008 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Implement the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#locale">locale</a> utility. </td>
        <td> &a.phantom; </td>
        <td nowrap> 1 August 2008 </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.done; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Implement/import the SCCS development utilities:
          <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#admin">admin</a>,
          <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#delta">delta</a>,
          <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#get">get</a>,
          <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#prs">prs</a>,
          <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#rmdel">rmdel</a>,
          <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#sact">sact</a>,
          <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#unget">unget</a>,
          <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#val">val</a> </td>
        <td> &a.jmallett; </td>
        <td nowrap> 23 May 2002 </td>
        <td> &status.wip; </td>
        <td> &status.wip; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Work out conflicting -t option in the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#df">df</a> utility. </td>
        <td> &nbsp; </td>
        <td nowrap> 1 August 2008 </td>
        <td> &status.wip; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Add unimplemented features to the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#sh">sh</a> utility. </td>
        <td> &a.jilles; </td>
        <td nowrap> 5 December 2010 </td>
        <td> &status.wip; </td>
        <td> &status.wip; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Implement the -m, -w, and -t options in the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#lp">lp</a> utility. </td>
        <td> &nbsp; </td>
        <td nowrap> 1 August 2008 </td>
        <td> &status.wip; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Investigate adopting some of the POSIX options in the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#ps">ps</a> utility. </td>
        <td> &nbsp; </td>
        <td nowrap> 1 August 2008 </td>
        <td> &status.wip; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Add missing options and resolve conflicting options in the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#nm">nm</a> utility. </td>
        <td> &nbsp; </td>
        <td nowrap> 1 August 2008 </td>
        <td> &status.wip; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Implement the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#iconv">iconv</a> utility. </td>
        <td> &a.gabor; </td>
        <td nowrap> 5 December 2010 </td>
        <td> &status.wip; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Investigate importing the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#cflow">cflow</a> utility from the ports collection. </td>
        <td> &nbsp; </td>
        <td nowrap> 30 November 2001 </td>
        <td> &status.new; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Implement the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#cxref">cxref</a> utility. </td>
        <td> &nbsp; </td>
        <td nowrap> 30 November 2001 </td>
        <td> &status.new; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Add the -d, -h, and -M options and fix conflicting -i option in the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#file">file</a> utility. </td>
        <td> &nbsp; </td>
        <td nowrap> 30 November 2001 </td>
        <td> &status.new; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Bring the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#make">make</a> utility up to conformance. </td>
        <td> &nbsp; </td>
        <td nowrap> 30 November 2001 </td>
        <td> &status.new; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Add the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#qsub">qsub</a> utility. </td>
        <td> &nbsp; </td>
        <td nowrap> 30 November 2001 </td>
        <td> &status.new; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Implement the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#fuser">fuser</a> utility  (PR: <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=36076">36076</a>, 
 <a href="http://www.FreeBSD.org/cgi/query-pr.cgi?pr=53682">53682</a>,
 <a href="http://www.freebsd.org/cgi/query-pr.cgi?pr=100017">100017</a>). </td>
        <td> &nbsp; </td>
        <td nowrap> 4 February 2003 </td>
        <td> &status.new; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Fix locale support for the printf(1) utility. </td>
        <td> &nbsp; </td>
        <td nowrap> 1 August 2008 </td>
        <td> &status.new; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>

      <tr>
        <td> Implement the <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html#localedef">localedef</a> utility. </td>
        <td> &nbsp; </td>
        <td nowrap> 1 August 2008 </td>
        <td> &status.new; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
        <td> &status.blank; </td>
      </tr>
    </table><br><br>

    <table class="tblbasic">
      <tr>
	<th rowspan="2" class="heading"> Task </th>
	<th rowspan="2" class="heading"> Responsible </th>
	<th rowspan="2" class="heading"> Last&nbsp;Updated </th>
	<th colspan="4" class="heading"> Status </th>
      </tr>

      <tr>
        <th class="heading"> 9.X </th>
        <th class="heading"> 8.X </th>
        <th class="heading"> 7.X </th>
        <th class="heading"> 6.X </th>
      </tr>

      <tr>
        <td colspan="7" class="section"> Wide Character/String Support </td>
      </tr>

      <tr>
	<td> Implement basic support for wide character I/O: getwc(),
          fgetwc(), getwchar(), putwc(), fputwc(), putwchar(), ungetwc(),
          fwide(). </td>
	<td> &a.tjr; </td>
	<td nowrap> 16 August 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Add stubs for reentrant wc handling functions btowc(),
          mbrlen(), mbrtowc(), mbsrtowcs(), wcrtomb(), wcsrtombs(),
          wctob(), wctype(). </td>
	<td> &a.tjr; </td>
	<td nowrap> 23 August 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Add stubs for reentrant wc handling functions iswalnum(),
          iswalpha(), iswcntrl(), iswctype(), iswdigit(), iswgraph(),
          iswlower(), iswprint(), iswpunct(), iswspace(), iswupper(),
          iswxdigit(). </td>
	<td> &a.tjr; </td>
	<td nowrap> 23 August 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement wcwidth(). </td>
	<td> &a.keichii; </td>
	<td nowrap> 23 August 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement wcswidth(). </td>
	<td> &a.ache; </td>
	<td nowrap> 23 August 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement wcstok(). </td>
	<td> &a.tjr; </td>
	<td nowrap> 9 September 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement wcstod(), wcstol(), wcstoul(). </td>
	<td> &a.tjr; </td>
	<td nowrap> 15 September 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement wcsftime(). </td>
	<td> &a.tjr; </td>
	<td nowrap> 15 September 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement fwprintf(), swprintf(), vfwprintf(), vswprintf(),
          vwprintf(), wprintf(). </td>
	<td> &a.tjr; </td>
	<td nowrap> 23 September 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement fwscanf(), swscanf(), vfwscanf(), vswscanf(),
          vwscanf(), wscanf(). </td>
	<td> &a.tjr; </td>
	<td nowrap> 23 September 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement wcstoimax(), wcstoll(), wcstoumax(), wcstoull(). </td>
	<td> &a.tjr; </td>
	<td nowrap> 23 September 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement wide character format types (%C, %S, %lc, %ls) in
	  &man.printf.3;. </td>
	<td> &a.tjr; </td>
	<td nowrap> 16 October 2002 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement wcscoll(), wcsxfrm(). </td>
	<td> &a.tjr; </td>
	<td nowrap> 7 June 2004 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>

      <tr>
	<td> Implement wide character format types (%C, %S, %lc, %ls) in
	  &man.scanf.3;. </td>
	<td> &a.tjr; </td>
	<td nowrap> 7 June 2004 </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
	<td> &status.done; </td>
      </tr>
    </table><br><br>

    <table class="tblbasic">
      <tr>
	<th colspan="2" class="heading">Legend</th>
      <tr>
        <td> &status.new; </td>
        <td> Not yet started </td>
      </tr><tr>
        <td> &status.blocked; </td>
        <td> Blocked awaiting completion of another task </td>
      </tr><tr>
        <td> &status.wip; </td>
        <td> Work in progress </td>
      </tr><tr>
        <td> &status.done; </td>
        <td> Task completed </td>
      </tr><tr>
        <td> &status.n-a; </td>
        <td> Not planned </td>
      </tr>
    </table>
    <p><img src="&imagebase;/news.png" width="229" height="36" alt="News"></p>

    <p class="main">The remainder of this page is structured as a
      reverse-chronological log.</p>

    <b>31 December 2002</b>
    <ul class="list">
      <li>
        <p>Jens Schweikhardt has updated his <a href="http://people.FreeBSD.org/~schweikh/posix-utilities.html">POSIX Utility Conformance in FreeBSD</a>
        list.  Not much works remains to complete utility conformance.</p>
      </li>
    </ul>

    <b>13 December 2002</b>
    <ul class="list">
      <li>
	<p>A new <a href="http://www.FreeBSD.org/news/status/report-sept-2002-oct-2002.html#C99-&-POSIX-Conformance-Project">status
          report</a> on the state of the project, covering September through
          October, has been produced.</p>
      </li>
    </ul>

    <b>9 October 2002</b>
    <ul class="list">
      <li>
	<p>A new <a href="http://www.FreeBSD.org/news/status/report-july-2002-aug-2002.html#FreeBSD-C99-&-POSIX-Conformance-Project">status
          report</a> on the state of the project, covering July through August,
          has been produced.</p>
      </li>
    </ul>

    <b>16 August 2002</b>
    <ul class="list">
      <li>
	<p>A new <a href="http://www.FreeBSD.org/news/status/report-may-2002-june-2002.html#FreeBSD-C99-&-POSIX-Conformance-Project">status
          report</a> on the state of the project, covering May through June,
          has been produced.</p>
      </li>
    </ul>

    <b>1 August 2002</b>
    <ul class="list">
      <li>
	<p>The Open Group has generously donated several copies of the
	  Authorized Guide to Single &unix; Specification, Version 3,
	  books and CD-ROMs to the project.  We are greatly appreciative
	  of their gift.</p>
      </li>
    </ul>

    <b>22 May 2002</b>
    <ul class="list">
      <li>
	<p>A new <a href="http://www.FreeBSD.org/news/status/report-feb-2002-apr-2002.html#FreeBSD-C99-&-POSIX-Conformance-Project">status
          report</a> on the state of the project, covering February through
          April, has been produced.</p>
      </li>
    </ul>

    <b>3 March 2002</b>
    <ul class="list">
      <li>
	<p>A new <a href="http://www.FreeBSD.org/news/status/report-dec-2001-jan-2002.html#FreeBSD-C99-&-POSIX-Conformance-Project">status
          report</a> on the state of the project, covering December and
          January, has been produced.</p>
      </li>
    </ul>

    <b>30 January 2002</b>
    <ul class="list">
      <li>
	<p>The Open Group has
	  <a href="http://www.unix-systems.org/version3/pr.html">announced</a>
	  the completion of SUSv3 and POSIX.1-2001 and the availability
	  of a free, online version of the specification.</p>
      </li>
    </ul>

    <b>14 December 2001</b>
    <ul class="list">
      <li>
	<p>A new <a href="http://www.FreeBSD.org/news/status/report-november-2001.html#FreeBSD-C99-&-POSIX-Conformance-Project">status
          report</a> on the current state of the project has been
          produced.</p>
      </li>
    </ul>

    <b>6 December 2001</b>
    <ul class="list">
      <li>
	<p>The IEEE Standards Board has approved the Austin Group
          Specification as IEEE Std 1003.1.</p>
      </li>
    </ul>

    <b>28 November 2001</b>
    <ul class="list">
      <li>
	<p>The project mailing list has been moved from
          freebsd-standards@bostonradio.org to &a.standards;.</p>
      </li>
    </ul>

    <b>19 October 2001</b>
    <ul class="list">
      <li>
	<p>A <a href="http://www.FreeBSD.org/news/status/report-september-2001.html#FreeBSD-C99/POSIX-Conformance-Project">status
          report</a> on the current state of the project has been
          produced.</p>
      </li>
    </ul>

    <b>10 October 2001</b>
    <ul class="list">
      <li>
	<p>This web page was created.</p>
      </li>
    </ul>
    <p><small>The original layout for this web page was borrowed from
      the FreeBSD SMPng Project.  BSD Daemon Copyright 1988 by Marshall
      Kirk McKusick.  All Rights Reserved.</small></p>
    &footer;
  </body>
</html>
