Index: CHANGELOG.txt
===================================================================
RCS file: /projects/pgadmin3/CHANGELOG.txt,v
retrieving revision 1.102
retrieving revision 1.103
diff -LCHANGELOG.txt -LCHANGELOG.txt -u -w -r1.102 -r1.103
--- CHANGELOG.txt
+++ CHANGELOG.txt
@@ -16,6 +16,9 @@
+ - 2004-06-07 AP fix storing of existing files (didn't truncate)
+
- 2004-06-06 AP GRANT wizard
+
- 2004-06-06 AP ALTER AGGREGATE/FUNCTION/GROUP/LANGUAGE/SCHEMA/TRIGGER/USER RENAME TO for 7.4+
- 2004-06-04 AP SQL Window: Try to preserve result column width
- 2004-06-04 AP 7.5 support: comment on cast/conversion/language
- 2004-06-04 AP checks on column type changes
Index: utffile.cpp
===================================================================
RCS file: /projects/pgadmin3/src/utils/utffile.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -Lsrc/utils/utffile.cpp -Lsrc/utils/utffile.cpp -u -w -r1.5 -r1.6
--- src/utils/utffile.cpp
+++ src/utils/utffile.cpp
@@ -185,6 +185,15 @@
+wxFontEncoding wxUtfFile::GetEncoding()
+{
+ if (IsOpened())
+ return m_encoding;
+ else
+ return wxFONTENCODING_DEFAULT;
+}
+
+
void wxUtfFile::WriteBOM()
{
wxFile::Seek(0);
Index: misc.cpp
===================================================================
RCS file: /projects/pgadmin3/src/utils/misc.cpp,v
retrieving revision 1.50
retrieving revision 1.51
diff -Lsrc/utils/misc.cpp -Lsrc/utils/misc.cpp -u -w -r1.50 -r1.51
--- src/utils/misc.cpp
+++ src/utils/misc.cpp
@@ -435,17 +435,19 @@
bool FileWrite(const wxString &filename, const wxString &data, int format)
{
wxFontEncoding encoding;
+ wxUtfFile file(filename);
+
if (format < 0)
+ {
+ encoding = file.GetEncoding();
+ if (encoding == wxFONTENCODING_DEFAULT)
encoding = settings->GetUnicodeFile() ? wxFONTENCODING_UTF8 : wxFONTENCODING_SYSTEM;
+ }
else
encoding = format ? wxFONTENCODING_UTF8 : wxFONTENCODING_SYSTEM;
- wxUtfFile file;
-
- if (format < 0) // first try using the old encoding
- file.Open(filename, wxFile::read_write, wxS_DEFAULT, encoding);
- if (!file.IsOpened())
+ file.Close();
file.Open(filename, wxFile::write, wxS_DEFAULT, encoding);
if (file.IsOpened())
Index: utffile.h
===================================================================
RCS file: /projects/pgadmin3/src/include/utffile.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -Lsrc/include/utffile.h -Lsrc/include/utffile.h -u -w -r1.4 -r1.5
--- src/include/utffile.h
+++ src/include/utffile.h
@@ -28,6 +28,8 @@
bool Open(const wxChar *szFileName, OpenMode mode = read, int access = wxS_DEFAULT, wxFontEncoding encoding=wxFONTENCODING_DEFAULT);
void Attach(int fd, wxFontEncoding encoding=wxFONTENCODING_DEFAULT);
+ wxFontEncoding GetEncoding();
+
off_t Seek(off_t ofs, wxSeekMode mode = wxFromStart);
off_t SeekEnd(off_t ofs = 0) { return Seek(ofs, wxFromEnd); }
off_t Tell() const { return wxFile::Tell() - m_bomOffset; }