[Scummvm-cvs-logs] SF.net SVN: scummvm:[44417] scummvm/trunk/engines/sci/engine/kstring.cpp
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Sun Sep 27 21:24:18 CEST 2009
Revision: 44417
http://scummvm.svn.sourceforge.net/scummvm/?rev=44417&view=rev
Author: fingolfin
Date: 2009-09-27 19:24:18 +0000 (Sun, 27 Sep 2009)
Log Message:
-----------
Simplify kFormat slightly
Modified Paths:
--------------
scummvm/trunk/engines/sci/engine/kstring.cpp
Modified: scummvm/trunk/engines/sci/engine/kstring.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kstring.cpp 2009-09-27 19:23:44 UTC (rev 44416)
+++ scummvm/trunk/engines/sci/engine/kstring.cpp 2009-09-27 19:24:18 UTC (rev 44417)
@@ -364,7 +364,7 @@
** the supplied parameters and writes it to the targ_address.
*/
reg_t kFormat(EngineState *s, int, int argc, reg_t *argv) {
- int *arguments;
+ uint16 *arguments;
reg_t dest = argv[0];
char targetbuf[512];
char *target = targetbuf;
@@ -392,9 +392,9 @@
debugC(2, kDebugLevelStrings, "Formatting \"%s\"\n", source);
- arguments = (int*)malloc(sizeof(int) * argc);
+ arguments = (uint16 *)malloc(sizeof(uint16) * argc);
#ifdef SATISFY_PURIFY
- memset(arguments, 0, sizeof(int) * argc);
+ memset(arguments, 0, sizeof(uint16) * argc);
#endif
for (i = startarg; i < argc; i++)
@@ -530,12 +530,11 @@
if (xfer == 'x')
format_string = "%x";
+ int val = arguments[paramindex];
if (!unsigned_var)
- if (arguments[paramindex] & 0x8000)
- /* sign extend */
- arguments[paramindex] = (~0xffff) | arguments[paramindex];
+ val = (int16)arguments[paramindex];
- target += sprintf(target, format_string, arguments[paramindex++]);
+ target += sprintf(target, format_string, val);
CHECK_OVERFLOW1(target, 0, NULL_REG);
unsigned_var = 0;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list