#include "wx/object.h"
#include "wx/string.h"
-// due to circular header dependencies this function has to be declared here
-// (normally it's found in utils.h which includes itself list.h...)
-extern WXDLLIMPEXP_BASE wxChar* copystring(const wxChar *s);
-
class WXDLLIMPEXP_BASE wxObjectListNode;
typedef wxObjectListNode wxNode;
// operations
// makes a copy of the string
- wxNode *Add(const wxChar *s)
- { return (wxNode *)wxStringListBase::Append(copystring(s)); }
+ wxNode *Add(const wxChar *s);
// Append to beginning of list
- wxNode *Prepend(const wxChar *s)
- { return (wxNode *)wxStringListBase::Insert(copystring(s)); }
+ wxNode *Prepend(const wxChar *s);
bool Delete(const wxChar *s);
// ----------------------------------------------------------------------------
// Make a copy of this string using 'new'
+#if WXWIN_COMPATIBILITY_2_4
WXDLLIMPEXP_BASE wxChar* copystring(const wxChar *s);
+#endif
#if WXWIN_COMPATIBILITY_2
// Matches string one within string two regardless of case
// File history processor
// ----------------------------------------------------------------------------
+static inline wxChar* MYcopystring(const wxString& s)
+{
+ wxChar* copy = new wxChar[s.length() + 1];
+ return wxStrcpy(copy, s.c_str());
+}
+
+static inline wxChar* MYcopystring(const wxChar* s)
+{
+ wxChar* copy = new wxChar[wxStrlen(s) + 1];
+ return wxStrcpy(copy, s);
+}
+
wxFileHistory::wxFileHistory(size_t maxFiles, wxWindowID idBase)
{
m_fileMaxFiles = maxFiles;
{
m_fileHistory[i] = m_fileHistory[i-1];
}
- m_fileHistory[0] = copystring(file);
+ m_fileHistory[0] = MYcopystring(file);
// this is the directory of the last opened file
wxString pathCurrent;
wxString historyFile;
while ((m_fileHistoryN < m_fileMaxFiles) && config.Read(buf, &historyFile) && (historyFile != wxT("")))
{
- m_fileHistory[m_fileHistoryN] = copystring((const wxChar*) historyFile);
+ m_fileHistory[m_fileHistoryN] = MYcopystring((const wxChar*) historyFile);
m_fileHistoryN ++;
buf.Printf(wxT("file%d"), (int)m_fileHistoryN+1);
historyFile = wxT("");
IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxStringList)
+static inline wxChar* MYcopystring(const wxString& s)
+{
+ wxChar* copy = new wxChar[s.length() + 1];
+ return wxStrcpy(copy, s.c_str());
+}
+
+static inline wxChar* MYcopystring(const wxChar* s)
+{
+ wxChar* copy = new wxChar[wxStrlen(s) + 1];
+ return wxStrcpy(copy, s);
+}
+
void wxPathList::Add (const wxString& path)
{
wxStringList::Add (WXSTRINGCAST path);
wxChar *val = wxGetenv (WXSTRINGCAST envVariable);
if (val && *val)
{
- wxChar *s = copystring (val);
+ wxChar *s = MYcopystring (val);
wxChar *save_ptr, *token = wxStrtok (s, PATH_TOKS, &save_ptr);
if (token)
wxStrcat(buf, wxT("/"));
#endif
wxStrcat(buf, wxFileFunctionsBuffer);
- return copystring( wxRealPath(buf) );
+ return MYcopystring( wxRealPath(buf) );
}
- return copystring( wxFileFunctionsBuffer );
+ return MYcopystring( wxFileFunctionsBuffer );
}
/*-
buf[0] = wxT('\0');
if (name == NULL || *name == wxT('\0'))
return buf;
- nm = copystring(name); // Make a scratch copy
+ nm = MYcopystring(name); // Make a scratch copy
wxChar *nm_tmp = nm;
/* Skip leading whitespace and cr */
if ( buf )
wxStrcpy(buf, filename);
else
- buf = copystring(filename);
+ buf = MYcopystring(filename);
return buf;
}
#ifndef WX_PRECOMP
#include "wx/defs.h"
#include "wx/list.h"
- #include "wx/utils.h" // for copystring() (beurk...)
#endif
// =============================================================================
delete (wxObject *)GetData();
}
-// -----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
// wxStringList
-// -----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+
+static inline wxChar* MYcopystring(const wxString& s)
+{
+ wxChar* copy = new wxChar[s.length() + 1];
+ return wxStrcpy(copy, s.c_str());
+}
+
+static inline wxChar* MYcopystring(const wxChar* s)
+{
+ wxChar* copy = new wxChar[wxStrlen(s) + 1];
+ return wxStrcpy(copy, s);
+}
IMPLEMENT_DYNAMIC_CLASS(wxStringList, wxObject)
{
wxChar *s = node->GetData();
if ( new_copies )
- string_array[i] = copystring(s);
+ string_array[i] = MYcopystring(s);
else
string_array[i] = s;
node = node->GetNext();
delete [] array;
}
+wxNode *wxStringList::Add(const wxChar *s)
+{
+ return (wxNode *)wxStringListBase::Append(MYcopystring(s));
+}
+
+wxNode *wxStringList::Prepend(const wxChar *s)
+{
+ return (wxNode *)wxStringListBase::Insert(MYcopystring(s));
+}
+
#endif // wxLIST_COMPATIBILITY
}
else
{
- out = copystring(s);
+ // MYcopystring - for easier search...
+ out = new wxChar[s.length() + 1];
+ wxStrcpy(out, s.c_str());
}
return out;