Ticket #8081: dig-crashfix.diff

File dig-crashfix.diff, 1.4 KB (added by eriktorbjorn, 22 years ago)

Patch against an October 4 CVS snapshot

  • scummvm/scumm/script_v2.cpp

    diff -ur ScummVM-cvs20021004/scummvm/scumm/script_v2.cpp ScummVM-cvs20021004+hack/scummvm/scumm/script_v2.cpp
    old new  
    25352535        _messagePtr = _scriptPointer;
    25362536
    25372537        if ((_gameId == GID_DIG) && (_messagePtr[0] == '/')) {
     2538                char pointer[20];
     2539                int i, j;
     2540
    25382541                _scriptPointer += strlen((char*)_scriptPointer) + 1;
    25392542                translateText((char*)_messagePtr, (char*)&transText);
    2540                 char *pointer = strtok((char *)_messagePtr, "/");
     2543                for (i = 0, j = 0; (_messagePtr[i] != '/' || j == 0) && j < 19; i++) {
     2544                        if (_messagePtr[i] != '/')
     2545                                pointer[j++] = _messagePtr[i];
     2546                }
     2547                pointer[j] = 0;
    25412548                _sound->playBundleSound(pointer);
    25422549                _messagePtr = (byte*)&transText;
    25432550                setStringVars(0);
     
    25552562        _messagePtr = _scriptPointer;
    25562563
    25572564        if ((_gameId == GID_DIG) && (_messagePtr[0] == '/')) {
     2565                char pointer[20];
     2566                int i, j;
     2567
    25582568                _scriptPointer += strlen((char*)_scriptPointer) + 1;
    25592569                translateText((char*)_messagePtr, (char*)&transText);
    2560                 char *pointer = strtok((char *)_messagePtr, "/");
     2570                for (i = 0, j = 0; (_messagePtr[i] != '/' || j == 0) && j < 19; i++) {
     2571                        if (_messagePtr[i] != '/')
     2572                                pointer[j++] = _messagePtr[i];
     2573                }
     2574                pointer[j] = 0;
    25612575                _sound->playBundleSound(pointer);
    25622576                _messagePtr = (byte*)&transText;
    25632577                setStringVars(0);