On Tue, 5 Feb 2002 lawson_whitney@juno.com wrote:
I'll see if Eric's recent patches help, and/or running it on a wineconsole instead of a linux virtual console or xterm.
The patches I was thinking of were already committed. DebugBreak() works fine when the Winelib program is run with wineconsole (as long as stdin is a terminal, not a file or a pipe), but I got so lost in ICOM_THIS that I couldn't lead winedbg to the variable I wanted it to watch. Fortunately, If I take on faith that comments do not cause errors (even with ICOM), that patch doesn't actually _do_ very much, and I hit it on the second guess.
This fixes the problem I reported. Maybe we should make the filename longer to accomodate the trailing \0, maybe because it is a fixed length, the trailing \0 is gratuitous, but as it was, that stepped all over bigBlockSizeBits, generally disrupted my app, and looks sort of like an off by one error. I'll attach a copy in case your mailer folds it.
diff -ur was/dlls/ole32/storage32.c is/dlls/ole32/storage32.c --- was/dlls/ole32/storage32.c Mon Feb 4 17:31:22 2002 +++ is/dlls/ole32/storage32.c Tue Feb 5 22:11:20 2002 @@ -5615,7 +5615,7 @@ /* prepare the file name string given in lieu of the root property name */ GetFullPathNameW(pwcsName, MAX_PATH, fullname, NULL); memcpy(newStorage->filename, fullname, PROPERTY_NAME_BUFFER_LEN); - newStorage->filename[PROPERTY_NAME_BUFFER_LEN] = '\0'; + newStorage->filename[PROPERTY_NAME_BUFFER_LEN-1] = '\0';
/* * Get an "out" pointer for the caller.
Lawson
Installation is performed in the reverse order of removal. - British Leyland shop manual