SCI: Changed signatures of StrLen and StrCpy to allow NULL pointers. This is

needed for a game bug in KQ6CD.

svn-id: r40930
This commit is contained in:
Walter van Niftrik 2009-05-26 23:34:57 +00:00
parent da96ab639e
commit fd191a4920
2 changed files with 12 additions and 3 deletions

View file

@ -296,7 +296,8 @@ reg_t kStrCpy(EngineState *s, int funct_nr, int argc, reg_t *argv) {
if (!src) {
warning("Attempt to strcpy FROM invalid pointer %04x:%04x",
PRINT_REG(argv[1]));
return NULL_REG;
*dest = 0;
return argv[1];
}
if (argc > 2) {
@ -632,6 +633,11 @@ reg_t kFormat(EngineState *s, int funct_nr, int argc, reg_t *argv) {
reg_t kStrLen(EngineState *s, int funct_nr, int argc, reg_t *argv) {
char *str = kernel_dereference_char_pointer(s, argv[0], 0);
if (!str) {
warning("StrLen: invalid pointer %04x:%04x", PRINT_REG(argv[0]));
return NULL_REG;
}
return make_reg(0, strlen(str));
}