[Scummvm-cvs-logs] scummvm master -> 2a4b04f3b28a924cad402f21979e143fa5cd248a

bluegr bluegr at gmail.com
Fri Jan 15 02:26:41 CET 2016


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
2a4b04f3b2 SCI: Add an initial implementation of kStringTrim


Commit: 2a4b04f3b28a924cad402f21979e143fa5cd248a
    https://github.com/scummvm/scummvm/commit/2a4b04f3b28a924cad402f21979e143fa5cd248a
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2016-01-15T03:25:40+02:00

Commit Message:
SCI: Add an initial implementation of kStringTrim

Thanks to lskovlun for his help

Changed paths:
    engines/sci/engine/kernel_tables.h
    engines/sci/engine/kstring.cpp



diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h
index 2d0f1c3..7be85fc 100644
--- a/engines/sci/engine/kernel_tables.h
+++ b/engines/sci/engine/kernel_tables.h
@@ -331,8 +331,7 @@ static const SciKernelMapSubEntry kString_subops[] = {
 	{ SIG_UNTIL_SCI21MID, 11, MAP_CALL(StringPrintf),              "[or](.*)",             NULL },
 	{ SIG_UNTIL_SCI21MID, 12, MAP_CALL(StringPrintfBuf),           "[or](.*)",             NULL },
 	{ SIG_UNTIL_SCI21MID, 13, MAP_CALL(StringAtoi),                "[or]",                 NULL },
-	// exact functionality of Trim is unknown atm
-	{ SIG_UNTIL_SCI21MID, 14, MAP_CALL(StringTrim),                "[or]",                 NULL },
+	{ SIG_UNTIL_SCI21MID, 14, MAP_CALL(StringTrim),                "[or]i",                NULL },
 	{ SIG_UNTIL_SCI21MID, 15, MAP_CALL(StringUpper),               "[or]",                 NULL },
 	{ SIG_UNTIL_SCI21MID, 16, MAP_CALL(StringLower),               "[or]",                 NULL },
 	// the following 2 are unknown atm (happen in Phantasmagoria)
@@ -345,7 +344,7 @@ static const SciKernelMapSubEntry kString_subops[] = {
 	{ SIG_SINCE_SCI21LATE, 9, MAP_CALL(StringPrintf),              "[or](.*)",             NULL },
 	{ SIG_SINCE_SCI21LATE,10, MAP_CALL(StringPrintfBuf),           "[or](.*)",             NULL },
 	{ SIG_SINCE_SCI21LATE,11, MAP_CALL(StringAtoi),                "[or]",                 NULL },
-	{ SIG_SINCE_SCI21LATE,12, MAP_CALL(StringTrim),                "[or]",                 NULL },
+	{ SIG_SINCE_SCI21LATE,12, MAP_CALL(StringTrim),                "[or]i",                NULL },
 	{ SIG_SINCE_SCI21LATE,13, MAP_CALL(StringUpper),               "[or]",                 NULL },
 	{ SIG_SINCE_SCI21LATE,14, MAP_CALL(StringLower),               "[or]",                 NULL },
 	{ SIG_SINCE_SCI21LATE,15, MAP_CALL(StringTrn),                 "[or]",                 NULL },
diff --git a/engines/sci/engine/kstring.cpp b/engines/sci/engine/kstring.cpp
index cd0d6af..310e38d 100644
--- a/engines/sci/engine/kstring.cpp
+++ b/engines/sci/engine/kstring.cpp
@@ -860,7 +860,12 @@ reg_t kStringAtoi(EngineState *s, int argc, reg_t *argv) {
 }
 
 reg_t kStringTrim(EngineState *s, int argc, reg_t *argv) {
-	warning("kStringTrim (argc = %d)", argc);
+	Common::String string = s->_segMan->getString(argv[0]);
+
+	string.trim();
+	// TODO: Second parameter (bitfield, trim from left, right, center)
+	warning("kStringTrim (%d)", argv[1].getOffset());
+	s->_segMan->strcpy(argv[0], string.c_str());
 	return NULL_REG;
 }
 






More information about the Scummvm-git-logs mailing list