? libs/filesystem/A.diff
? libs/filesystem/example/bar
? libs/filesystem/example/dir_it.cpp
? libs/filesystem/example/my_directory
? libs/filesystem/test/fstream_test_bfoo
? libs/filesystem/test/fstream_test_cfoo
? libs/filesystem/test/fstream_test_wfoo
? libs/filesystem/test/xx
Index: boost/filesystem/operations.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/filesystem/operations.hpp,v
retrieving revision 1.19
diff -u -r1.19 operations.hpp
--- boost/filesystem/operations.hpp	20 Mar 2004 18:24:20 -0000	1.19
+++ boost/filesystem/operations.hpp	11 May 2004 06:37:38 -0000
@@ -100,15 +100,19 @@
       path,
       boost::single_pass_traversal_tag >
     {
+      typedef iterator_facade<directory_iterator, path, 
+                              single_pass_traversal_tag> base;
     public:
       directory_iterator(){}  // creates the "end" iterator
       explicit directory_iterator( const path & p )
         { detail::dir_itr_init( m_imp, p ); }
 
-/*
-The *r++ requirement doesn't appear to apply to the new single_pass_traversal category
-Thus I'm leaving the proxy out pending confirmation from the N1477 authors
-struct path_proxy // allows *r++ to work, as required by 24.1.1
+      /* The proxy allows allows *r++ to work, as required by 24.1.1
+         The current requirements for new single pass traversal iterator do
+         not allow returning proxy from operator++, but Dave says prohibiting
+         proxy was not indented, so eventually this will be fixed.
+      */
+      struct path_proxy 
       {
         path pv;
         explicit path_proxy( const path & p ) : pv(p) {}
@@ -117,11 +121,13 @@
 
       path_proxy operator++(int)
       {
-        path_proxy pp( m_deref() );
+        path_proxy pp( **this );
         ++*this;
         return pp;
       }
-*/
+      // Also bring base (preincrement) operator here
+      using base::operator++;
+
 
     private:
       detail::dir_itr_imp_ptr  m_imp;
Index: libs/filesystem/test/operations_test.cpp
===================================================================
RCS file: /cvsroot/boost/boost/libs/filesystem/test/operations_test.cpp,v
retrieving revision 1.21
diff -u -r1.21 operations_test.cpp
--- libs/filesystem/test/operations_test.cpp	21 Mar 2004 20:32:20 -0000	1.21
+++ libs/filesystem/test/operations_test.cpp	11 May 2004 06:37:38 -0000
@@ -229,14 +229,14 @@
     {
       // Note result for single_pass_traversal requirements is
       // different than for input_iterator requirements
-      BOOST_TEST( (*dir_itr++).leaf() == "d2" );
+      BOOST_TEST( (*dir_itr++).leaf() == "d1" );
       BOOST_TEST( dir_itr->leaf() == "d2" );
     }
     else
     {
       // Note result for single_pass_traversal requirements is
       // different than for input_iterator requirements
-      BOOST_TEST( (*dir_itr++).leaf() == "d1" );
+      BOOST_TEST( (*dir_itr++).leaf() == "d2" );
       BOOST_TEST( dir_itr->leaf() == "d1" );
     }
   }
