* Use standard C++ streams if 1. If 0, use wxWin
* streams implementation.
*/
-#define wxUSE_STD_IOSTREAM 1
+#define wxUSE_STD_IOSTREAM 0
/*
* wxLibrary class
*/
DEFAULT_wxUSE_LIBJPEG=no
DEFAULT_wxUSE_ODBC=no
+ DEFAULT_wxUSE_STD_IOSTREAM=no
DEFAULT_wxUSE_FILE=no
DEFAULT_wxUSE_TEXTFILE=no
DEFAULT_wxUSE_TIMEDATE=no
DEFAULT_wxUSE_LIBJPEG=yes
DEFAULT_wxUSE_ODBC=no
+ DEFAULT_wxUSE_STD_IOSTREAM=yes
DEFAULT_wxUSE_FILE=yes
DEFAULT_wxUSE_TEXTFILE=yes
DEFAULT_wxUSE_TIMEDATE=yes
dnl (small) optional non GUI classes
dnl ---------------------------------------------------------------------------
-WX_ARG_ENABLE(intl, [ --enable-intl use internationalization system], wxUSE_INTL)
-WX_ARG_ENABLE(config, [ --enable-config use wxConfig (and derived) classes], wxUSE_CONFIG)
-WX_ARG_ENABLE(sockets, [ --enable-sockets use socket/network classes], wxUSE_SOCKETS)
-WX_ARG_ENABLE(ipc, [ --enable-ipc use interprocess communication (wxSocket etc.)], wxUSE_IPC)
-WX_ARG_ENABLE(apple_ieee, [ --enable-apple_ieee use the Apple IEEE codec], wxUSE_APPLE_IEEE)
-WX_ARG_ENABLE(timedate, [ --enable-timedate use date/time classes], wxUSE_TIMEDATE)
-WX_ARG_ENABLE(wave, [ --enable-wave use wxWave class], wxUSE_WAVE)
-WX_ARG_ENABLE(fraction, [ --enable-fraction use wxFraction class], wxUSE_FRACTION)
-WX_ARG_ENABLE(dynlib, [ --enable-dynlib use wxLibrary class for DLL loading], wxUSE_DYNLIB_CLASS)
-WX_ARG_ENABLE(longlong, [ --enable-longlong use wxLongLong class], wxUSE_LONGLONG)
-WX_ARG_ENABLE(log, [ --enable-log use logging system], wxUSE_LOG)
-WX_ARG_ENABLE(streams, [ --enable-streams use wxStream etc classes], wxUSE_STREAMS)
-WX_ARG_ENABLE(file, [ --enable-file use wxFile classes], wxUSE_FILE)
-WX_ARG_ENABLE(textfile, [ --enable-textfile use wxTextFile classes], wxUSE_TEXTFILE)
-WX_ARG_ENABLE(unicode, [ --enable-unicode compile wxString with Unicode support], wxUSE_UNICODE)
-WX_ARG_ENABLE(wcsrtombs, [ --enable-wcsrtombs use wcsrtombs instead of buggy (GNU libc1/Linux libc5) wcstombs], wxUSE_WCSRTOMBS)
-WX_ARG_ENABLE(wxprintfv, [ --enable-wxprintfv use wxWindows implementation of vprintf()], wxUSE_EXPERIMENTAL_PRINTF)
-WX_ARG_ENABLE(joystick, [ --enable-joystick compile in joystick support (Linux only)], wxUSE_JOYSTICK)
+WX_ARG_ENABLE(intl, [ --enable-intl use internationalization system], wxUSE_INTL)
+WX_ARG_ENABLE(config, [ --enable-config use wxConfig (and derived) classes], wxUSE_CONFIG)
+WX_ARG_ENABLE(sockets, [ --enable-sockets use socket/network classes], wxUSE_SOCKETS)
+WX_ARG_ENABLE(ipc, [ --enable-ipc use interprocess communication (wxSocket etc.)], wxUSE_IPC)
+WX_ARG_ENABLE(apple_ieee, [ --enable-apple_ieee use the Apple IEEE codec], wxUSE_APPLE_IEEE)
+WX_ARG_ENABLE(timedate, [ --enable-timedate use date/time classes], wxUSE_TIMEDATE)
+WX_ARG_ENABLE(wave, [ --enable-wave use wxWave class], wxUSE_WAVE)
+WX_ARG_ENABLE(fraction, [ --enable-fraction use wxFraction class], wxUSE_FRACTION)
+WX_ARG_ENABLE(dynlib, [ --enable-dynlib use wxLibrary class for DLL loading], wxUSE_DYNLIB_CLASS)
+WX_ARG_ENABLE(longlong, [ --enable-longlong use wxLongLong class], wxUSE_LONGLONG)
+WX_ARG_ENABLE(log, [ --enable-log use logging system], wxUSE_LOG)
+WX_ARG_ENABLE(streams, [ --enable-streams use wxStream etc classes], wxUSE_STREAMS)
+WX_ARG_ENABLE(file, [ --enable-file use wxFile classes], wxUSE_FILE)
+WX_ARG_ENABLE(textfile, [ --enable-textfile use wxTextFile classes], wxUSE_TEXTFILE)
+WX_ARG_ENABLE(unicode, [ --enable-unicode compile wxString with Unicode support], wxUSE_UNICODE)
+WX_ARG_ENABLE(wcsrtombs, [ --enable-wcsrtombs use wcsrtombs instead of buggy (GNU libc1/Linux libc5) wcstombs], wxUSE_WCSRTOMBS)
+WX_ARG_ENABLE(wxprintfv, [ --enable-wxprintfv use wxWindows implementation of vprintf()], wxUSE_EXPERIMENTAL_PRINTF)
+WX_ARG_ENABLE(joystick, [ --enable-joystick compile in joystick support (Linux only)], wxUSE_JOYSTICK)
+WX_ARG_ENABLE(std_iostreams, [ --enable-std_iostreams use standard C++ stream classes], wxUSE_STD_IOSTREAM)
dnl ---------------------------------------------------------------------------
dnl "big" options (i.e. those which change a lot of things throughout the library)
AC_DEFINE(wxUSE_FILE)
fi
+if test "$wxUSE_STD_IOSTREAM" = "yes"; then
+ AC_DEFINE(wxUSE_STD_IOSTREAM)
+fi
+
if test "$wxUSE_TEXTFILE" = "yes"; then
if test "$wxUSE_FILE" != "yes"; then
AC_MSG_WARN(wxTextFile requires wxFile and it won't be compiled without it)
#include "wx/defs.h"
#include "wx/string.h"
-#include "wx/ioswrap.h"
-
#include "wx/list.h"
#include "wx/hash.h"
wxExpr *AttributeValue(const wxString& word) const; // Use only for a clause
wxString Functor(void) const; // Only for a clause
bool IsFunctor(const wxString& s) const; // Only for a clause
- void WriteClause(ostream& stream); // Write this expression as a top-level clause
- void WriteExpr(ostream& stream); // Write as any other subexpression
- void WriteLispExpr(ostream& stream);
+ void WriteClause(FILE* stream); // Write this expression as a top-level clause
+ void WriteExpr(FILE* stream); // Write as any other subexpression
+ void WriteLispExpr(FILE* stream);
// Append an expression to a list
void Append(wxExpr *expr);
bool Read(const wxString& filename);
bool ReadFromString(const wxString& buffer);
bool Write(const wxString& fileName);
- bool Write(ostream& stream);
- void WriteLisp(ostream& stream);
+ bool Write(FILE* stream);
+ void WriteLisp(FILE* stream);
// Compatibility
inline bool ReadProlog(wxChar *filename) { return Read(wxString(filename)); }
inline bool ReadPrologFromString(char *buffer) { return ReadFromString(wxString(buffer)); }
- inline void WriteProlog(ostream& stream) { Write(stream); }
+ inline void WriteProlog(FILE* stream) { Write(stream); }
private:
DECLARE_DYNAMIC_CLASS(wxExprDatabase)
#pragma hdrstop
#endif
-#if wxUSE_IOSTREAMH
- #include <fstream.h>
-#else
- #include <fstream>
-#endif
-
#include <stdarg.h>
#include <ctype.h>
#include <string.h>
#include "wx/utils.h"
-
#include "wx/expr.h"
#include "wx/wxexpr.h"
}
}
-void wxExpr::WriteClause(ostream& stream) // Write this expression as a top-level clause
+void wxExpr::WriteClause(FILE* stream) // Write this expression as a top-level clause
{
if (type != wxExprList)
return;
if (node)
{
node->WriteExpr(stream);
- stream << "(";
+ fprintf( stream, "(" );
node = node->next;
bool first = TRUE;
while (node)
{
if (!first)
- stream << " ";
+ fprintf( stream, " " );
node->WriteExpr(stream);
node = node->next;
- if (node) stream << ",\n";
+ if (node)
+ fprintf( stream, ",\n" );
first = FALSE;
}
- stream << ").\n\n";
+ fprintf( stream, ").\n\n" );
}
}
-void wxExpr::WriteExpr(ostream& stream) // Write as any other subexpression
+void wxExpr::WriteExpr(FILE* stream) // Write as any other subexpression
{
// This seems to get round an optimizer bug when
// using Watcom C++ 10a in WIN32 compilation mode.
{
case wxExprInteger:
{
- stream << value.integer;
+ fprintf( stream, "%ld", value.integer );
break;
}
case wxExprReal:
{
double f = value.real;
-/* Now the parser can cope with this.
- // Prevent printing in 'e' notation. Any better way?
- if (fabs(f) < 0.00001)
- f = 0.0;
-*/
- char buf[40];
- sprintf(buf, "%.6g", f);
- stream << buf;
+ fprintf( stream, "%.6g", f);
break;
}
case wxExprString:
{
- stream << "\"";
+ fprintf( stream, "\"" );
int i;
const wxWX2MBbuf val = wxConvLibc.cWX2MB(value.string);
int len = strlen(val);
{
char ch = val[i];
if (ch == '"' || ch == '\\')
- stream << "\\";
- stream << ch;
+ fprintf( stream, "\\" );
+ char tmp[2];
+ tmp[0] = ch;
+ tmp[1] = 0;
+ fprintf( stream, tmp );
}
-
- stream << "\"";
+ fprintf( stream, "\"" );
break;
}
case wxExprWord:
}
if (quote_it)
- stream << "'";
+ fprintf( stream ,"'" );
- stream << val;
+ fprintf( stream, (const char*) val );
if (quote_it)
- stream << "'";
+ fprintf( stream, "'" );
break;
}
case wxExprList:
{
if (!value.first)
- stream << "[]";
+ fprintf( stream, "[]" );
else
{
wxExpr *expr = value.first;
wxExpr *arg1 = expr->next;
wxExpr *arg2 = arg1->next;
arg1->WriteExpr(stream);
- stream << " = ";
+ fprintf( stream, " = " );
arg2->WriteExpr(stream);
}
else
{
- stream << "[";
+ fprintf( stream, "[" );
while (expr)
{
expr->WriteExpr(stream);
expr = expr->next;
- if (expr) stream << ", ";
+ if (expr)
+ fprintf( stream, ", " );
}
- stream << "]";
+ fprintf( stream, "]" );
}
}
break;
}
}
-void wxExpr::WriteLispExpr(ostream& stream)
+void wxExpr::WriteLispExpr(FILE* stream)
{
switch (type)
{
case wxExprInteger:
{
- stream << value.integer;
+ fprintf( stream, "%ld", value.integer );
break;
}
case wxExprReal:
{
- stream << value.real;
+ fprintf( stream, "%.6g", value.real );
break;
}
case wxExprString:
{
- stream << "\"" << value.string << "\"";
+ fprintf( stream, "\"" );
+ const wxWX2MBbuf val = wxConvLibc.cWX2MB(value.string);
+ fprintf( stream, (const char*) val );
+ fprintf( stream, "\"" );
break;
}
case wxExprWord:
{
- stream << value.word;
+ const wxWX2MBbuf val = wxConvLibc.cWX2MB(value.word);
+ fprintf( stream, (const char*) val );
break;
}
case wxExprList:
{
wxExpr *expr = value.first;
- stream << "(";
+ fprintf( stream, "(" );
while (expr)
{
expr->WriteLispExpr(stream);
expr = expr->next;
- if (expr) stream << " ";
+ if (expr)
+ fprintf( stream, " " );
}
- stream << ")";
+ fprintf( stream, ")" );
break;
}
case wxExprNull: break;
bool wxExprDatabase::Write(const wxString& fileName)
{
- ofstream str(MBSTRINGCAST fileName.mb_str());
- if (str.bad())
+ FILE *stream = fopen( fileName.fn_str(), "w+" );
+
+ if (!stream)
return FALSE;
- return Write(str);
+
+ return Write(stream);
}
-bool wxExprDatabase::Write(ostream& stream)
+bool wxExprDatabase::Write(FILE *stream)
{
noErrors = 0;
wxNode *node = First();
return (noErrors == 0);
}
-void wxExprDatabase::WriteLisp(ostream& stream)
+void wxExprDatabase::WriteLisp(FILE* stream)
{
noErrors = 0;
wxNode *node = First();
{
wxExpr *expr = (wxExpr *)node->Data();
expr->WriteLispExpr(stream);
- stream << "\n\n";
+ fprintf( stream, "\n\n" );
node = node->Next();
}
}