Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

99 lines
1.6 KiB

//
// debugafx.cpp : debugging routines using AFX/MFC extensions
//
#include "stdafx.h"
#include "comprop.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
#define new DEBUG_NEW
#ifdef _DEBUG
const char *
DbgFmtPgm (
const char * szFn,
int line
)
{
const char * pszTail = szFn + ::strlen( szFn ) ;
static char szBuff [100] ;
for ( ; pszTail > szFn ; pszTail-- )
{
if ( *pszTail == '\\' || *pszTail == ':' )
{
pszTail++ ;
break ;
}
}
::wsprintfA( szBuff, "[%s:%d] ", pszTail, line ) ;
return szBuff ;
}
CDumpContext & operator << (
CDumpContext & out,
ENUM_DEBUG_AFX edAfx
)
{
static char * szEol = "\r\n" ;
switch ( edAfx )
{
case EDBUG_AFX_EOL:
out << szEol ;
break ;
default:
break ;
}
return out ;
}
//
// Insert a wide-character string into the output stream.
//
CDumpContext & operator << (
CDumpContext & out,
const WCHAR * pwchStr
)
{
size_t cwch ;
if ( pwchStr == NULL )
{
out << "<null>" ;
}
else if ( (cwch = ::wcslen( pwchStr )) > 0 )
{
char * pszTemp = new char[cwch+2] ;
if ( pszTemp )
{
for ( int i = 0 ; pwchStr[i] ; i++ )
{
pszTemp[i] = (char) pwchStr[i] ;
}
pszTemp[i] = 0 ;
out << pszTemp ;
delete pszTemp ;
}
else
{
out << "<memerr>" ;
}
}
else
{
out << "\"\"" ;
}
return out ;
}
#endif // _DEBUG