mcatan      2004/04/02 00:58:40

  Modified:    include/log4cxx/helpers tchar.h
  Log:
  optimizations and compilation fix
  
  Revision  Changes    Path
  1.23      +23 -5     logging-log4cxx/include/log4cxx/helpers/tchar.h
  
  Index: tchar.h
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/include/log4cxx/helpers/tchar.h,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- tchar.h   28 Feb 2004 15:10:23 -0000      1.22
  +++ tchar.h   2 Apr 2004 08:58:40 -0000       1.23
  @@ -23,6 +23,7 @@
   #include <cwchar>
   #include <algorithm> // min & max
   #include <stdio.h> // sprintf
  +#include <streambuf> // basic_streambuf
   
   class Convert
   {
  @@ -187,11 +188,12 @@
   
   namespace log4cxx
   {
  -     class stringbuf : public std::basic_streambuf<TCHAR, 
std::char_traits<TCHAR> >
  +     class stringbuf : public std::basic_streambuf<TCHAR>
        {
        public:
  -             typedef TCHAR char_type;
  -             typedef std::char_traits<char_type> traits_type;
  +             typedef std::basic_streambuf<TCHAR> base;
  +             typedef base::char_type char_type;
  +             typedef base::traits_type traits_type;
                typedef std::allocator<char_type> allocator_type;
                typedef traits_type::int_type int_type;
   
  @@ -205,7 +207,7 @@
                }
   
                virtual int_type overflow(
  -             int_type c = stringbuf::traits_type::eof())
  +                     int_type c = stringbuf::traits_type::eof())
                {
                        using namespace std;
   
  @@ -222,7 +224,7 @@
                        }
                        else
                        {
  -                             size_t os = pptr() - b; // taille allou�e
  +                             size_t os = epptr() - b; // taille allou�e
                                size_t is =
                                        _max(_min((os * 2), _MaxInc), _MinInc)
                                        + 1; // incr�ment d'allocation
  @@ -276,6 +278,22 @@
                        }
   
                        return ret;
  +             }
  +
  +             virtual pos_type seekpos(pos_type pos,
  +                     std::ios_base::openmode mode = std::ios_base::in | 
std::ios_base::out)
  +             {
  +                     std::streamoff off = (std::streamoff)pos;
  +                     if (pbase() + off > epptr())
  +                     {
  +                             return pos_type(-1);
  +                     }
  +                     else
  +                     {
  +                             setp(pbase(), epptr());
  +                             pbump(off);
  +                             return pos;
  +                     }
                }
   
        protected:
  
  
  

Reply via email to