mirror of
https://github.com/AppleWin/AppleWin.git
synced 2025-01-10 13:29:56 +00:00
Fix Bug #251: ASC #:# with null byte doesn't mark up properly
This commit is contained in:
parent
c2d6f5b026
commit
d6002721e5
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
|
.7 Fixed: ASC #:# with string containing null byte wouldn't show rest of string
|
||||||
.6 Added: Print-Screen when in debugger will copy the debugger window as text
|
.6 Added: Print-Screen when in debugger will copy the debugger window as text
|
||||||
.5 Added: Print warnings about duplicate symbols when symbol tables are loaded
|
.5 Added: Print warnings about duplicate symbols when symbol tables are loaded
|
||||||
.4 Fixed: Check for buffer overflow in CmdSymbolsInfo() if _CmdSymbolsInfoHeader() returns a very long string
|
.4 Fixed: Check for buffer overflow in CmdSymbolsInfo() if _CmdSymbolsInfoHeader() returns a very long string
|
||||||
|
@ -47,7 +47,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|||||||
#define ALLOW_INPUT_LOWERCASE 1
|
#define ALLOW_INPUT_LOWERCASE 1
|
||||||
|
|
||||||
// See /docs/Debugger_Changelog.txt for full details
|
// See /docs/Debugger_Changelog.txt for full details
|
||||||
const int DEBUGGER_VERSION = MAKE_VERSION(2,8,0,6);
|
const int DEBUGGER_VERSION = MAKE_VERSION(2,8,0,7);
|
||||||
|
|
||||||
|
|
||||||
// Public _________________________________________________________________________________________
|
// Public _________________________________________________________________________________________
|
||||||
@ -4691,6 +4691,8 @@ int g_nTextScreen = 0;
|
|||||||
23 17 0001_0111 -> $7D0 0111 1101 0000
|
23 17 0001_0111 -> $7D0 0111 1101 0000
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// Convert ctrl characters to displayable
|
||||||
|
// Note: FormatCharTxtCtrl() and RemapChar()
|
||||||
static char RemapChar(const char c)
|
static char RemapChar(const char c)
|
||||||
{
|
{
|
||||||
if ( c < 0x20 )
|
if ( c < 0x20 )
|
||||||
|
@ -216,6 +216,11 @@ static char ColorizeSpecialChar( char * sText, BYTE nData, const MemoryView_e iV
|
|||||||
|
|
||||||
void DrawWindowBottom ( Update_t bUpdate, int iWindow );
|
void DrawWindowBottom ( Update_t bUpdate, int iWindow );
|
||||||
|
|
||||||
|
char* FormatCharCopy( char *pDst, const char *pSrc, const int nLen );
|
||||||
|
char FormatCharTxtAsci( const BYTE b, bool * pWasAsci_ = NULL );
|
||||||
|
char FormatCharTxtCtrl( const BYTE b, bool * pWasCtrl_ = NULL );
|
||||||
|
char FormatCharTxtHigh( const BYTE b, bool *pWasHi_ = NULL );
|
||||||
|
char FormatChar4Font ( const BYTE b, bool *pWasHi_, bool *pWasLo_ );
|
||||||
|
|
||||||
// http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/pantdraw_6n77.asp
|
// http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/pantdraw_6n77.asp
|
||||||
enum WinROP4_e
|
enum WinROP4_e
|
||||||
@ -840,6 +845,15 @@ int PrintTextCursorY ( const char * pText, RECT & rRect )
|
|||||||
return nChars;
|
return nChars;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
char* FormatCharCopy( char *pDst, const char *pSrc, const int nLen )
|
||||||
|
{
|
||||||
|
for( int i = 0; i < nLen; i++ )
|
||||||
|
*pDst++ = FormatCharTxtCtrl( *pSrc++ );
|
||||||
|
return pDst;
|
||||||
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
char FormatCharTxtAsci ( const BYTE b, bool * pWasAsci_ )
|
char FormatCharTxtAsci ( const BYTE b, bool * pWasAsci_ )
|
||||||
{
|
{
|
||||||
@ -857,6 +871,7 @@ char FormatCharTxtAsci ( const BYTE b, bool * pWasAsci_ )
|
|||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Note: FormatCharTxtCtrl() and RemapChar()
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
char FormatCharTxtCtrl ( const BYTE b, bool * pWasCtrl_ )
|
char FormatCharTxtCtrl ( const BYTE b, bool * pWasCtrl_ )
|
||||||
{
|
{
|
||||||
@ -1686,8 +1701,7 @@ const char *pSrc = 0;
|
|||||||
len = (MAX_IMMEDIATE_LEN - 3); // ellipsis = true
|
len = (MAX_IMMEDIATE_LEN - 3); // ellipsis = true
|
||||||
|
|
||||||
// DISPLAY: text_longer_18...
|
// DISPLAY: text_longer_18...
|
||||||
for( int i = 0; i < len; i++ )
|
FormatCharCopy( pDst, pSrc, len ); // BUG: #251 v2.8.0.7: ASC #:# with null byte doesn't mark up properly
|
||||||
*pDst++ = (*pSrc++) & 0x7F;
|
|
||||||
|
|
||||||
if( nDisplayLen > len ) // ellipsis
|
if( nDisplayLen > len ) // ellipsis
|
||||||
{
|
{
|
||||||
@ -1697,8 +1711,7 @@ const char *pSrc = 0;
|
|||||||
}
|
}
|
||||||
} else { // DISPLAY: "max_18_char"
|
} else { // DISPLAY: "max_18_char"
|
||||||
*pDst++ = '"';
|
*pDst++ = '"';
|
||||||
for( int i = 0; i < len; i++ )
|
pDst = FormatCharCopy( pDst, pSrc, len ); // BUG: #251 v2.8.0.7: ASC #:# with null byte doesn't mark up properly
|
||||||
*pDst++ = (*pSrc++) & 0x7F;
|
|
||||||
*pDst++ = '"';
|
*pDst++ = '"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2066,7 +2079,7 @@ WORD DrawDisassemblyLine ( int iLine, const WORD nBaseAddress )
|
|||||||
char *pTarget = line.sTarget;
|
char *pTarget = line.sTarget;
|
||||||
int nLen = strlen( pTarget );
|
int nLen = strlen( pTarget );
|
||||||
|
|
||||||
if (*pTarget == '$')
|
if (*pTarget == '$') // BUG? if ASC #:# starts with '$' ? // && (iOpcode != OPCODE_NOP)
|
||||||
{
|
{
|
||||||
pTarget++;
|
pTarget++;
|
||||||
if (! bCursorLine)
|
if (! bCursorLine)
|
||||||
@ -2111,6 +2124,7 @@ WORD DrawDisassemblyLine ( int iLine, const WORD nBaseAddress )
|
|||||||
pTarget[ nMaxLen ] = 0;
|
pTarget[ nMaxLen ] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: FIXME: 2.8.0.7: Allow ctrl characters to show as inverse; i.e. ASC 400:40F
|
||||||
PrintTextCursorX( pTarget, linerect );
|
PrintTextCursorX( pTarget, linerect );
|
||||||
// PrintTextCursorX( " ", linerect );
|
// PrintTextCursorX( " ", linerect );
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user