many miscellaneous fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1998 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -274,6 +274,12 @@ bool wxFileExists(const char *pszFileName)
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
bool wxDirExists( const wxString& dir )
|
||||||
|
{
|
||||||
|
struct stat st;
|
||||||
|
return ((stat(dir, &st) != -1) && S_ISDIR(st.st_mode) ? TRUE : FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
wxIsAbsolutePath (const wxString& filename)
|
wxIsAbsolutePath (const wxString& filename)
|
||||||
{
|
{
|
||||||
@@ -785,7 +791,7 @@ wxMac2UnixFilename (char *s)
|
|||||||
if (*s == ':')
|
if (*s == ':')
|
||||||
*s = '/';
|
*s = '/';
|
||||||
else
|
else
|
||||||
*s = wxToLower (*s); // Case INDEPENDENT
|
*s = tolower(*s); // Case INDEPENDENT
|
||||||
s++;
|
s++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -830,7 +836,7 @@ wxDos2UnixFilename (char *s)
|
|||||||
*s = '/';
|
*s = '/';
|
||||||
#ifdef __WXMSW__
|
#ifdef __WXMSW__
|
||||||
else
|
else
|
||||||
*s = wxToLower (*s); // Case INDEPENDENT
|
*s = tolower(*s); // Case INDEPENDENT
|
||||||
#endif
|
#endif
|
||||||
s++;
|
s++;
|
||||||
}
|
}
|
||||||
|
@@ -30,6 +30,7 @@
|
|||||||
|
|
||||||
// standard headers
|
// standard headers
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
|
||||||
// wxWindows
|
// wxWindows
|
||||||
#include "wx/defs.h"
|
#include "wx/defs.h"
|
||||||
@@ -435,7 +436,7 @@ bool wxLocale::Init(const char *szName,
|
|||||||
if ( m_strShort.IsEmpty() ) {
|
if ( m_strShort.IsEmpty() ) {
|
||||||
// FIXME I don't know how these 2 letter abbreviations are formed,
|
// FIXME I don't know how these 2 letter abbreviations are formed,
|
||||||
// this wild guess is surely wrong
|
// this wild guess is surely wrong
|
||||||
m_strShort = wxToLower(szLocale[0]) + wxToLower(szLocale[1]);
|
m_strShort = tolower(szLocale[0]) + tolower(szLocale[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// save the old locale to be able to restore it later
|
// save the old locale to be able to restore it later
|
||||||
|
1040
src/common/log.cpp
1040
src/common/log.cpp
File diff suppressed because it is too large
Load Diff
@@ -359,28 +359,6 @@ wxString wxNow( void )
|
|||||||
return wxString(date);
|
return wxString(date);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get Full RFC822 style email address */
|
|
||||||
bool
|
|
||||||
wxGetEmailAddress (char *address, int maxSize)
|
|
||||||
{
|
|
||||||
char host[65];
|
|
||||||
char user[65];
|
|
||||||
|
|
||||||
if (wxGetHostName(host, 64) == FALSE)
|
|
||||||
return FALSE;
|
|
||||||
if (wxGetUserId(user, 64) == FALSE)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
char tmp[130];
|
|
||||||
strcpy(tmp, user);
|
|
||||||
strcat(tmp, "@");
|
|
||||||
strcat(tmp, host);
|
|
||||||
|
|
||||||
strncpy(address, tmp, maxSize - 1);
|
|
||||||
address[maxSize-1] = '\0';
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Strip out any menu codes
|
* Strip out any menu codes
|
||||||
*/
|
*/
|
||||||
@@ -822,37 +800,81 @@ int isascii( int c )
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool wxGetUserId(wxString& buf)
|
// ----------------------------------------------------------------------------
|
||||||
|
// network and user id functions
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Get Full RFC822 style email address
|
||||||
|
bool wxGetEmailAddress(char *address, int maxSize)
|
||||||
{
|
{
|
||||||
bool success = wxGetUserId(wxBuffer, 500);
|
wxString email = wxGetEmailAddress();
|
||||||
if (success)
|
if ( !email )
|
||||||
{
|
|
||||||
buf = wxBuffer;
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
strncpy(address, email, maxSize - 1);
|
||||||
|
address[maxSize - 1] = '\0';
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxGetUserName(wxString& buf)
|
wxString wxGetEmailAddress()
|
||||||
{
|
{
|
||||||
bool success = wxGetUserName(wxBuffer, 500);
|
wxString email;
|
||||||
if (success)
|
|
||||||
|
wxString host = wxGetHostName();
|
||||||
|
if ( !!host )
|
||||||
{
|
{
|
||||||
buf = wxBuffer;
|
wxString user = wxGetUserId();
|
||||||
return TRUE;
|
if ( !!user )
|
||||||
|
{
|
||||||
|
wxString email(user);
|
||||||
|
email << '@' << host;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
return FALSE;
|
return email;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxGetHostName(wxString& buf)
|
wxString wxGetUserId()
|
||||||
|
{
|
||||||
|
static const int maxLoginLen = 256; // FIXME arbitrary number
|
||||||
|
|
||||||
|
wxString buf;
|
||||||
|
bool ok = wxGetUserId(buf.GetWriteBuf(maxLoginLen), maxLoginLen);
|
||||||
|
buf.UngetWriteBuf();
|
||||||
|
|
||||||
|
if ( !ok )
|
||||||
|
buf.Empty();
|
||||||
|
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxString wxGetUserName()
|
||||||
|
{
|
||||||
|
static const int maxUserNameLen = 1024; // FIXME arbitrary number
|
||||||
|
|
||||||
|
wxString buf;
|
||||||
|
bool ok = wxGetUserName(buf.GetWriteBuf(maxUserNameLen), maxUserNameLen);
|
||||||
|
buf.UngetWriteBuf();
|
||||||
|
|
||||||
|
if ( !ok )
|
||||||
|
buf.Empty();
|
||||||
|
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxString wxGetHostName()
|
||||||
{
|
{
|
||||||
static const size_t hostnameSize = 257;
|
static const size_t hostnameSize = 257;
|
||||||
|
|
||||||
|
wxString buf;
|
||||||
bool ok = wxGetHostName(buf.GetWriteBuf(hostnameSize), hostnameSize);
|
bool ok = wxGetHostName(buf.GetWriteBuf(hostnameSize), hostnameSize);
|
||||||
|
|
||||||
buf.UngetWriteBuf();
|
buf.UngetWriteBuf();
|
||||||
|
|
||||||
return ok;
|
if ( !ok )
|
||||||
|
buf.Empty();
|
||||||
|
|
||||||
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -29,7 +29,7 @@ class WXDLLEXPORT wxAcceleratorRefData: public wxObjectRefData
|
|||||||
public:
|
public:
|
||||||
wxAcceleratorRefData();
|
wxAcceleratorRefData();
|
||||||
~wxAcceleratorRefData();
|
~wxAcceleratorRefData();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
int m_count;
|
int m_count;
|
||||||
wxAcceleratorEntry* m_entries;
|
wxAcceleratorEntry* m_entries;
|
||||||
@@ -71,13 +71,13 @@ wxAcceleratorTable::wxAcceleratorTable(int n, wxAcceleratorEntry entries[])
|
|||||||
{
|
{
|
||||||
wxAcceleratorRefData* data = new wxAcceleratorRefData;
|
wxAcceleratorRefData* data = new wxAcceleratorRefData;
|
||||||
m_refData = data;
|
m_refData = data;
|
||||||
|
|
||||||
data->m_count = n;
|
data->m_count = n;
|
||||||
data->m_entries = new wxAcceleratorEntry[n];
|
data->m_entries = new wxAcceleratorEntry[n];
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < n; i++)
|
for (i = 0; i < n; i++)
|
||||||
data->m_entries[i] = entries[i];
|
data->m_entries[i] = entries[i];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxAcceleratorTable::Ok() const
|
bool wxAcceleratorTable::Ok() const
|
||||||
@@ -102,15 +102,15 @@ bool wxAcceleratorEntry::MatchesEvent(const wxKeyEvent& event) const
|
|||||||
bool eventCtrlDown = event.ControlDown();
|
bool eventCtrlDown = event.ControlDown();
|
||||||
bool eventShiftDown = event.ShiftDown();
|
bool eventShiftDown = event.ShiftDown();
|
||||||
int eventKeyCode = event.KeyCode();
|
int eventKeyCode = event.KeyCode();
|
||||||
|
|
||||||
bool accAltDown = ((GetFlags() & wxACCEL_ALT) == wxACCEL_ALT);
|
bool accAltDown = ((GetFlags() & wxACCEL_ALT) == wxACCEL_ALT);
|
||||||
bool accCtrlDown = ((GetFlags() & wxACCEL_CTRL) == wxACCEL_CTRL);
|
bool accCtrlDown = ((GetFlags() & wxACCEL_CTRL) == wxACCEL_CTRL);
|
||||||
bool accShiftDown = ((GetFlags() & wxACCEL_SHIFT) == wxACCEL_SHIFT);
|
bool accShiftDown = ((GetFlags() & wxACCEL_SHIFT) == wxACCEL_SHIFT);
|
||||||
int accKeyCode = GetKeyCode();
|
int accKeyCode = GetKeyCode();
|
||||||
int accKeyCode2 = GetKeyCode();
|
int accKeyCode2 = GetKeyCode();
|
||||||
if (isascii(accKeyCode2))
|
if (isascii(accKeyCode2))
|
||||||
accKeyCode2 = wxToLower(accKeyCode2);
|
accKeyCode2 = tolower(accKeyCode2);
|
||||||
|
|
||||||
return ((eventAltDown == accAltDown) && (eventCtrlDown == accCtrlDown) &&
|
return ((eventAltDown == accAltDown) && (eventCtrlDown == accCtrlDown) &&
|
||||||
(eventShiftDown == accShiftDown) &&
|
(eventShiftDown == accShiftDown) &&
|
||||||
((eventKeyCode == accKeyCode || eventKeyCode == accKeyCode2))) ;
|
((eventKeyCode == accKeyCode || eventKeyCode == accKeyCode2))) ;
|
||||||
|
@@ -110,9 +110,9 @@ void wxUsleep(unsigned long milliseconds)
|
|||||||
// process management
|
// process management
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
int wxKill(long pid, int sig)
|
int wxKill(long pid, wxSignal sig)
|
||||||
{
|
{
|
||||||
return kill(pid, sig);
|
return kill(pid, (int)sig);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define WXEXECUTE_NARGS 127
|
#define WXEXECUTE_NARGS 127
|
||||||
@@ -350,7 +350,7 @@ char *wxGetUserHome( const wxString &user )
|
|||||||
{
|
{
|
||||||
struct passwd *who = (struct passwd *) NULL;
|
struct passwd *who = (struct passwd *) NULL;
|
||||||
|
|
||||||
if (user.IsNull() || (user== ""))
|
if ( !user )
|
||||||
{
|
{
|
||||||
register char *ptr;
|
register char *ptr;
|
||||||
|
|
||||||
@@ -378,12 +378,15 @@ char *wxGetUserHome( const wxString &user )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// id routines
|
// network and user id routines
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
bool wxGetHostName(char *buf, int sz)
|
// retrieve either the hostname or FQDN depending on platform (caller must
|
||||||
|
// check whether it's one or the other, this is why this function is for
|
||||||
|
// private use only)
|
||||||
|
static bool wxGetHostNameInternal(char *buf, int sz)
|
||||||
{
|
{
|
||||||
wxCHECK_MSG( buf, FALSE, "NULL pointer in wxGetHostName" );
|
wxCHECK_MSG( buf, FALSE, "NULL pointer in wxGetHostNameInternal" );
|
||||||
|
|
||||||
*buf = '\0';
|
*buf = '\0';
|
||||||
|
|
||||||
@@ -398,11 +401,11 @@ bool wxGetHostName(char *buf, int sz)
|
|||||||
}
|
}
|
||||||
#elif defined(HAVE_GETHOSTNAME)
|
#elif defined(HAVE_GETHOSTNAME)
|
||||||
bool ok = gethostname(buf, sz) != -1;
|
bool ok = gethostname(buf, sz) != -1;
|
||||||
#else
|
#else // no uname, no gethostname
|
||||||
wxFAIL_MSG("don't know host name for this machibe");
|
wxFAIL_MSG("don't know host name for this machibe");
|
||||||
|
|
||||||
bool ok = FALSE;
|
bool ok = FALSE;
|
||||||
#endif
|
#endif // uname/gethostname
|
||||||
|
|
||||||
if ( !ok )
|
if ( !ok )
|
||||||
{
|
{
|
||||||
@@ -412,6 +415,52 @@ bool wxGetHostName(char *buf, int sz)
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool wxGetHostName(char *buf, int sz)
|
||||||
|
{
|
||||||
|
bool ok = wxGetHostNameInternal(buf, sz);
|
||||||
|
|
||||||
|
if ( ok )
|
||||||
|
{
|
||||||
|
// BSD systems return the FQDN, we only want the hostname, so extract
|
||||||
|
// it (we consider that dots are domain separators)
|
||||||
|
char *dot = strchr(buf, '.');
|
||||||
|
if ( dot )
|
||||||
|
{
|
||||||
|
// nuke it
|
||||||
|
*dot = '\0';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxGetFullHostName(char *buf, int sz)
|
||||||
|
{
|
||||||
|
bool ok = wxGetHostNameInternal(buf, sz);
|
||||||
|
|
||||||
|
if ( ok )
|
||||||
|
{
|
||||||
|
if ( !strchr(buf, '.') )
|
||||||
|
{
|
||||||
|
struct hostent *host = gethostbyname(buf);
|
||||||
|
if ( !host )
|
||||||
|
{
|
||||||
|
wxLogSysError(_("Cannot get the official hostname"));
|
||||||
|
|
||||||
|
ok = FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// the canonical name
|
||||||
|
strncpy(buf, host->h_name, sz);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//else: it's already a FQDN (BSD behaves this way)
|
||||||
|
}
|
||||||
|
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
bool wxGetUserId(char *buf, int sz)
|
bool wxGetUserId(char *buf, int sz)
|
||||||
{
|
{
|
||||||
struct passwd *who;
|
struct passwd *who;
|
||||||
@@ -473,14 +522,3 @@ void wxFatalError( const wxString &msg, const wxString &title )
|
|||||||
exit(3); // the same exit code as for abort()
|
exit(3); // the same exit code as for abort()
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
// directory routines
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
|
|
||||||
bool wxDirExists( const wxString& dir )
|
|
||||||
{
|
|
||||||
char buf[500];
|
|
||||||
strcpy( buf, WXSTRINGCAST(dir) );
|
|
||||||
struct stat sbuf;
|
|
||||||
return ((stat(buf, &sbuf) != -1) && S_ISDIR(sbuf.st_mode) ? TRUE : FALSE);
|
|
||||||
}
|
|
||||||
|
Reference in New Issue
Block a user