Fixed bug with autoexec.stella debugger file not actually executing its

contents.  The file was being accessed and read, but the commands it contained
weren't being executed!  This bug appeared in April 2010, so it looks like
not many people are using this feature (or at least they're not reporting it).

Cleaned up a few compiler warnings in DebuggerParser class.

Bumped version # for beta release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2254 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2011-06-11 22:45:50 +00:00
parent e2c736263f
commit 2d9d487300
3 changed files with 9 additions and 5 deletions

View File

@ -41,6 +41,9 @@
a bug whereby ROMs were saved in strange locations and couldn't later a bug whereby ROMs were saved in strange locations and couldn't later
be found. be found.
* Fixed bug in automatically executing the debugger 'autoexec.stella'
file; any commands it contained weren't actually being executed.
* Zero-byte ROMs are no longer loaded and mis-detected as Supercharger * Zero-byte ROMs are no longer loaded and mis-detected as Supercharger
images. images.

View File

@ -22,7 +22,7 @@
#include <cstdlib> #include <cstdlib>
#define STELLA_VERSION "3.4.1_svn1" #define STELLA_VERSION "3.4.1_beta1"
#define STELLA_BUILD atoi("$Rev$" + 6) #define STELLA_BUILD atoi("$Rev$" + 6)
#endif #endif

View File

@ -139,12 +139,13 @@ string DebuggerParser::exec(const FilesystemNode& file)
ostringstream buf; ostringstream buf;
int count = 0; int count = 0;
char buffer[256]; string command;
while( !in.eof() ) while( !in.eof() )
{ {
if(!in.getline(buffer, 255)) if(!getline(in, command))
break; break;
run(command);
count++; count++;
} }
buf << "Executed " << debugger->valueToString(count) << " commands from \"" buf << "Executed " << debugger->valueToString(count) << " commands from \""
@ -433,7 +434,7 @@ bool DebuggerParser::validateArgs(int cmd)
while(*p != kARG_END_ARGS && *p != kARG_MULTI_BYTE) while(*p != kARG_END_ARGS && *p != kARG_MULTI_BYTE)
{ {
count++; count++;
*p++; p++;
} }
// Evil hack: some commands intentionally take multiple arguments // Evil hack: some commands intentionally take multiple arguments
@ -497,7 +498,7 @@ bool DebuggerParser::validateArgs(int cmd)
break; break;
} }
curCount++; curCount++;
*p++; p++;
} while(*p != kARG_END_ARGS && curCount < argRequiredCount); } while(*p != kARG_END_ARGS && curCount < argRequiredCount);