- clarify many error messages

- add data corruption warning to README file
This commit is contained in:
Andreas Mohr 2000-12-27 04:02:46 +00:00 committed by Alexandre Julliard
parent 5079844bc6
commit a6d83ebae1
15 changed files with 55 additions and 45 deletions

6
README
View File

@ -131,6 +131,12 @@ information on how to do this, please read the file documentation/debugging.
If you post a bug report, please read the file documentation/bugreports to If you post a bug report, please read the file documentation/bugreports to
see what information is required. see what information is required.
You should backup all your important files that you give Wine access
to, or use a special Wine copy of them, as there have been some cases
of users reporting file corruption. Do NOT run Explorer, for instance,
if you don't have a proper backup, as it renames/cripples several
directories sometimes.
7. GETTING MORE INFORMATION 7. GETTING MORE INFORMATION

View File

@ -8,7 +8,7 @@
/* When creating new drivers, you need to assign all the functions that /* When creating new drivers, you need to assign all the functions that
that driver supports into the driver struct. If it is a supplementary that driver supports into the driver struct. If it is a supplementary
driver, it should make sure to perserve the old values. */ driver, it should make sure to preserve the old values. */
#include <stdio.h> #include <stdio.h>

View File

@ -23,6 +23,7 @@
#include "wine/winbase16.h" #include "wine/winbase16.h"
#include "wine/winuser16.h" #include "wine/winuser16.h"
#include "wine/unicode.h" #include "wine/unicode.h"
#include "wine/port.h"
#include "win.h" #include "win.h"
#include "task.h" #include "task.h"
#include "heap.h" #include "heap.h"
@ -342,7 +343,7 @@ static WND *MENU_GetTopPopupWnd()
/*********************************************************************** /***********************************************************************
* MENU_ReleaseTopPopupWnd() * MENU_ReleaseTopPopupWnd()
* *
* Realease the locked pointer pTopPopupWnd. * Release the locked pointer pTopPopupWnd.
*/ */
static void MENU_ReleaseTopPopupWnd() static void MENU_ReleaseTopPopupWnd()
{ {
@ -366,10 +367,10 @@ static void MENU_DestroyTopPopupWnd()
* MENU_GetSysMenu * MENU_GetSysMenu
* *
* Create a copy of the system menu. System menu in Windows is * Create a copy of the system menu. System menu in Windows is
* a special menu-bar with the single entry - system menu popup. * a special menu bar with the single entry - system menu popup.
* This popup is presented to the outside world as a "system menu". * This popup is presented to the outside world as a "system menu".
* However, the real system menu handle is sometimes seen in the * However, the real system menu handle is sometimes seen in the
* WM_MENUSELECT paramemters (and Word 6 likes it this way). * WM_MENUSELECT parameters (and Word 6 likes it this way).
*/ */
HMENU MENU_GetSysMenu( HWND hWnd, HMENU hPopupMenu ) HMENU MENU_GetSysMenu( HWND hWnd, HMENU hPopupMenu )
{ {
@ -440,7 +441,7 @@ BOOL MENU_Init()
} else } else
return FALSE; return FALSE;
/* Assume that radio checks have the same size as regular check. */ /* Assume that radio checks have the same size as regular checks. */
if (!hStdRadioCheck) if (!hStdRadioCheck)
return FALSE; return FALSE;
@ -1326,7 +1327,7 @@ static void MENU_DrawMenuItem( HWND hwnd, HMENU hmenu, HWND hwndOwner, HDC hdc,
SelectObject(hdcMem,resBmp ); SelectObject(hdcMem,resBmp );
/* handle fontsize > bitmap_height */ /* handle fontsize > bitmap_height */
top = ((rect.bottom-rect.top)>bm.bmHeight) ? top = ((rect.bottom-rect.top)>bm.bmHeight) ?
rect.top+(rect.bottom-rect.top-bm.bmHeight)/2 : rect.top; rect.top+(rect.bottom-rect.top-bm.bmHeight)/2 : rect.top;
@ -1641,7 +1642,7 @@ static BOOL MENU_ShowPopup( HWND hwndOwner, HMENU hmenu, UINT id,
menu->FocusedItem = NO_SELECTED_ITEM; menu->FocusedItem = NO_SELECTED_ITEM;
} }
/* store the owner for DrawItem*/ /* store the owner for DrawItem */
menu->hwndOwner = hwndOwner; menu->hwndOwner = hwndOwner;
if( (wndOwner = WIN_FindWndPtr( hwndOwner )) ) if( (wndOwner = WIN_FindWndPtr( hwndOwner )) )
@ -1961,7 +1962,7 @@ static MENUITEM *MENU_InsertItem( HMENU hMenu, UINT pos, UINT flags )
} }
if (menu->nItems > 0) if (menu->nItems > 0)
{ {
/* Copy the old array into the new */ /* Copy the old array into the new one */
if (pos > 0) memcpy( newItems, menu->items, pos * sizeof(MENUITEM) ); if (pos > 0) memcpy( newItems, menu->items, pos * sizeof(MENUITEM) );
if (pos < menu->nItems) memcpy( &newItems[pos+1], &menu->items[pos], if (pos < menu->nItems) memcpy( &newItems[pos+1], &menu->items[pos],
(menu->nItems-pos)*sizeof(MENUITEM) ); (menu->nItems-pos)*sizeof(MENUITEM) );
@ -2178,8 +2179,8 @@ static HMENU MENU_ShowSubPopup( HWND hwndOwner, HMENU hmenu,
return hmenu; return hmenu;
} }
/* message must be send before using item, /* message must be sent before using item,
because nearly everything may by changed by the application ! */ because nearly everything may be changed by the application ! */
/* Send WM_INITMENUPOPUP message only if TPM_NONOTIFY flag is not specified */ /* Send WM_INITMENUPOPUP message only if TPM_NONOTIFY flag is not specified */
if (!(wFlags & TPM_NONOTIFY)) if (!(wFlags & TPM_NONOTIFY))
@ -2189,7 +2190,7 @@ static HMENU MENU_ShowSubPopup( HWND hwndOwner, HMENU hmenu,
item = &menu->items[menu->FocusedItem]; item = &menu->items[menu->FocusedItem];
rect = item->rect; rect = item->rect;
/* correct item if modified as a reaction to WM_INITMENUPOPUP-message */ /* correct item if modified as a reaction to WM_INITMENUPOPUP message */
if (!(item->fState & MF_HILITE)) if (!(item->fState & MF_HILITE))
{ {
if (menu->wFlags & MF_POPUP) hdc = GetDC( menu->hWnd ); if (menu->wFlags & MF_POPUP) hdc = GetDC( menu->hWnd );
@ -2388,7 +2389,7 @@ static BOOL MENU_ButtonDown( MTRACKER* pmt, HMENU hPtMenu, UINT wFlags )
{ {
pmt->hCurrentMenu = MENU_ShowSubPopup( pmt->hOwnerWnd, hPtMenu, FALSE, wFlags ); pmt->hCurrentMenu = MENU_ShowSubPopup( pmt->hOwnerWnd, hPtMenu, FALSE, wFlags );
/* In win31, a newly popped menu always remain opened for the next buttonup */ /* In win31, a newly popped menu always remains opened for the next buttonup */
if(TWEAK_WineLook == WIN31_LOOK) if(TWEAK_WineLook == WIN31_LOOK)
ptmenu->bTimeToHide = FALSE; ptmenu->bTimeToHide = FALSE;
} }
@ -2428,9 +2429,9 @@ static INT MENU_ButtonUp( MTRACKER* pmt, HMENU hPtMenu, UINT wFlags)
if( !(item->fType & MF_POPUP) ) if( !(item->fType & MF_POPUP) )
return MENU_ExecFocusedItem( pmt, hPtMenu, wFlags); return MENU_ExecFocusedItem( pmt, hPtMenu, wFlags);
/* If we are dealing with the top-level menu and that this */ /* If we are dealing with the top-level menu */
/* is a click on an already "poppped" item */ /* and this is a click on an already "popped" item: */
/* Stop the menu tracking and close the opened submenus */ /* Stop the menu tracking and close the opened submenus */
if((pmt->hTopMenu == hPtMenu) && (ptmenu->bTimeToHide == TRUE)) if((pmt->hTopMenu == hPtMenu) && (ptmenu->bTimeToHide == TRUE))
return 0; return 0;
} }
@ -2546,8 +2547,8 @@ static LRESULT MENU_DoNextMenu( MTRACKER* pmt, UINT vk )
} }
else if( wndPtr->dwStyle & WS_CHILD || wndPtr->wIDmenu != hNewMenu ) else if( wndPtr->dwStyle & WS_CHILD || wndPtr->wIDmenu != hNewMenu )
{ {
/* FIXME: Not sure what to do here, perhaps, /* FIXME: Not sure what to do here;
* try to track hNewMenu as a popup? */ * perhaps try to track hNewMenu as a popup? */
TRACE(" -- got confused.\n"); TRACE(" -- got confused.\n");
WIN_ReleaseWndPtr(wndPtr); WIN_ReleaseWndPtr(wndPtr);

View File

@ -190,7 +190,7 @@ COMCTL32_LibMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
* hMainMenu [I] handle to the application's main menu * hMainMenu [I] handle to the application's main menu
* hInst [I] handle to the module that contains string resources * hInst [I] handle to the module that contains string resources
* hwndStatus [I] handle to the status bar window * hwndStatus [I] handle to the status bar window
* lpwIDs [I] pointer to an array of intergers (see NOTES) * lpwIDs [I] pointer to an array of integers (see NOTES)
* *
* RETURNS * RETURNS
* No return value * No return value

View File

@ -1472,7 +1472,7 @@ static void PROPSHEET_PressButton(HWND hwndDlg, int buttonID)
/************************************************************************* /*************************************************************************
* BOOL PROPSHEET_CanSetCurSel [Internal] * BOOL PROPSHEET_CanSetCurSel [Internal]
* *
* Test weither the current page can be changed by sending a PSN_KILLACTIVE * Test whether the current page can be changed by sending a PSN_KILLACTIVE
* *
* PARAMS * PARAMS
* hwndDlg [I] handle to a Dialog hWnd * hwndDlg [I] handle to a Dialog hWnd

View File

@ -2453,7 +2453,7 @@ TAB_GetItemA (HWND hwnd, WPARAM wParam, LPARAM lParam)
if ((iItem<0) || (iItem>=infoPtr->uNumItem)) if ((iItem<0) || (iItem>=infoPtr->uNumItem))
return FALSE; return FALSE;
wineItem=& infoPtr->items[iItem]; wineItem = &infoPtr->items[iItem];
if (tabItem->mask & TCIF_IMAGE) if (tabItem->mask & TCIF_IMAGE)
tabItem->iImage = wineItem->iImage; tabItem->iImage = wineItem->iImage;

View File

@ -92,7 +92,7 @@ DEFAULT_DEBUG_CHANNEL(comm);
#define MAX_PORTS 9 #define MAX_PORTS 9
struct DosDeviceStruct { struct DosDeviceStruct {
char *devicename; /* /dev/cua1 */ char *devicename; /* /dev/ttyS0 */
int fd; int fd;
int suspended; int suspended;
int unget,xmit; int unget,xmit;
@ -392,7 +392,7 @@ BOOL16 WINAPI BuildCommDCB16(LPCSTR device, LPDCB16 lpdcb)
if (port-- == 0) { if (port-- == 0) {
ERR("BUG ! COM0 can't exist!.\n"); ERR("BUG ! COM0 can't exist!\n");
return -1; return -1;
} }
@ -790,7 +790,7 @@ INT16 WINAPI GetCommError16(INT16 cid,LPCOMSTAT16 lpStat)
unsigned int mstat; unsigned int mstat;
if ((ptr = GetDeviceStruct(cid)) == NULL) { if ((ptr = GetDeviceStruct(cid)) == NULL) {
FIXME("no handle for cid = %0x!.\n",cid); FIXME("no handle for cid = %0x!\n",cid);
return -1; return -1;
} }
if (cid&FLAG_LPT) { if (cid&FLAG_LPT) {
@ -833,7 +833,7 @@ SEGPTR WINAPI SetCommEventMask16(INT16 cid,UINT16 fuEvtMask)
TRACE("cid %d,mask %d\n",cid,fuEvtMask); TRACE("cid %d,mask %d\n",cid,fuEvtMask);
if ((ptr = GetDeviceStruct(cid)) == NULL) { if ((ptr = GetDeviceStruct(cid)) == NULL) {
FIXME("no handle for cid = %0x!.\n",cid); FIXME("no handle for cid = %0x!\n",cid);
return (SEGPTR)NULL; return (SEGPTR)NULL;
} }
@ -863,7 +863,7 @@ UINT16 WINAPI GetCommEventMask16(INT16 cid,UINT16 fnEvtClear)
TRACE("cid %d, mask %d\n", cid, fnEvtClear); TRACE("cid %d, mask %d\n", cid, fnEvtClear);
if ((ptr = GetDeviceStruct(cid)) == NULL) { if ((ptr = GetDeviceStruct(cid)) == NULL) {
FIXME("no handle for cid = %0x!.\n",cid); FIXME("no handle for cid = %0x!\n",cid);
return 0; return 0;
} }
@ -889,7 +889,7 @@ INT16 WINAPI SetCommState16(LPDCB16 lpdcb)
TRACE("cid %d, ptr %p\n", lpdcb->Id, lpdcb); TRACE("cid %d, ptr %p\n", lpdcb->Id, lpdcb);
if ((ptr = GetDeviceStruct(lpdcb->Id)) == NULL) { if ((ptr = GetDeviceStruct(lpdcb->Id)) == NULL) {
FIXME("no handle for cid = %0x!.\n",lpdcb->Id); FIXME("no handle for cid = %0x!\n",lpdcb->Id);
return -1; return -1;
} }
if (tcgetattr(ptr->fd, &port) == -1) { if (tcgetattr(ptr->fd, &port) == -1) {
@ -1145,7 +1145,7 @@ INT16 WINAPI GetCommState16(INT16 cid, LPDCB16 lpdcb)
TRACE("cid %d, ptr %p\n", cid, lpdcb); TRACE("cid %d, ptr %p\n", cid, lpdcb);
if ((ptr = GetDeviceStruct(cid)) == NULL) { if ((ptr = GetDeviceStruct(cid)) == NULL) {
FIXME("no handle for cid = %0x!.\n",cid); FIXME("no handle for cid = %0x!\n",cid);
return -1; return -1;
} }
if (tcgetattr(ptr->fd, &port) == -1) { if (tcgetattr(ptr->fd, &port) == -1) {
@ -1301,7 +1301,7 @@ INT16 WINAPI TransmitCommChar16(INT16 cid,CHAR chTransmit)
TRACE("cid %d, data %d \n", cid, chTransmit); TRACE("cid %d, data %d \n", cid, chTransmit);
if ((ptr = GetDeviceStruct(cid)) == NULL) { if ((ptr = GetDeviceStruct(cid)) == NULL) {
FIXME("no handle for cid = %0x!.\n",cid); FIXME("no handle for cid = %0x!\n",cid);
return -1; return -1;
} }
@ -1343,7 +1343,7 @@ INT16 WINAPI UngetCommChar16(INT16 cid,CHAR chUnget)
TRACE("cid %d (char %d)\n", cid, chUnget); TRACE("cid %d (char %d)\n", cid, chUnget);
if ((ptr = GetDeviceStruct(cid)) == NULL) { if ((ptr = GetDeviceStruct(cid)) == NULL) {
FIXME("no handle for cid = %0x!.\n",cid); FIXME("no handle for cid = %0x!\n",cid);
return -1; return -1;
} }
@ -1376,7 +1376,7 @@ INT16 WINAPI ReadComm16(INT16 cid,LPSTR lpvBuf,INT16 cbRead)
TRACE("cid %d, ptr %p, length %d\n", cid, lpvBuf, cbRead); TRACE("cid %d, ptr %p, length %d\n", cid, lpvBuf, cbRead);
if ((ptr = GetDeviceStruct(cid)) == NULL) { if ((ptr = GetDeviceStruct(cid)) == NULL) {
FIXME("no handle for cid = %0x!.\n",cid); FIXME("no handle for cid = %0x!\n",cid);
return -1; return -1;
} }
@ -1426,7 +1426,7 @@ INT16 WINAPI WriteComm16(INT16 cid, LPSTR lpvBuf, INT16 cbWrite)
TRACE("cid %d, ptr %p, length %d\n", TRACE("cid %d, ptr %p, length %d\n",
cid, lpvBuf, cbWrite); cid, lpvBuf, cbWrite);
if ((ptr = GetDeviceStruct(cid)) == NULL) { if ((ptr = GetDeviceStruct(cid)) == NULL) {
FIXME("no handle for cid = %0x!.\n",cid); FIXME("no handle for cid = %0x!\n",cid);
return -1; return -1;
} }
@ -1477,7 +1477,7 @@ BOOL16 WINAPI EnableCommNotification16( INT16 cid, HWND16 hwnd,
TRACE("(%d, %x, %d, %d)\n", cid, hwnd, cbWriteNotify, cbOutQueue); TRACE("(%d, %x, %d, %d)\n", cid, hwnd, cbWriteNotify, cbOutQueue);
if ((ptr = GetDeviceStruct(cid)) == NULL) { if ((ptr = GetDeviceStruct(cid)) == NULL) {
FIXME("no handle for cid = %0x!.\n",cid); FIXME("no handle for cid = %0x!\n",cid);
return -1; return -1;
} }
ptr->wnd = hwnd; ptr->wnd = hwnd;
@ -1529,7 +1529,7 @@ BOOL WINAPI BuildCommDCBAndTimeoutsA(
if (!strncasecmp(device,"COM",3)) { if (!strncasecmp(device,"COM",3)) {
port=device[3]-'0'; port=device[3]-'0';
if (port--==0) { if (port--==0) {
ERR("BUG! COM0 can't exists!.\n"); ERR("BUG! COM0 can't exist!\n");
return FALSE; return FALSE;
} }
if (!ValidCOMPort(port)) if (!ValidCOMPort(port))

View File

@ -86,7 +86,7 @@ static BOOL MMDRV_GetDescription16(const char* fname, char* buf, int buflen)
BOOL ret = FALSE; BOOL ret = FALSE;
if ((hFile = OpenFile(fname, &ofs, OF_READ | OF_SHARE_DENY_WRITE)) == HFILE_ERROR) { if ((hFile = OpenFile(fname, &ofs, OF_READ | OF_SHARE_DENY_WRITE)) == HFILE_ERROR) {
ERR("Can't open file %s\n", fname); ERR("Can't open file %s (builtin driver ?)\n", fname);
return FALSE; return FALSE;
} }

View File

@ -101,12 +101,12 @@ int DIR_Init(void)
{ {
if (errno==EACCES) if (errno==EACCES)
{ {
MESSAGE("Warning: The Temporary Directory (as specified in your configuration file) is NOT writeable.\n"); MESSAGE("Warning: the temporary directory '%s' (specified in wine configuration file) is not writeable.\n", tmp_dir.long_name);
PROFILE_UsageWineIni(); PROFILE_UsageWineIni();
} }
else else
MESSAGE("Warning: Access to Temporary Directory failed (%s).\n", MESSAGE("Warning: access to temporary directory '%s' failed (%s).\n",
strerror(errno)); tmp_dir.long_name, strerror(errno));
} }
if (drive == -1) if (drive == -1)

View File

@ -168,8 +168,8 @@ int DRIVE_Init(void)
if (stat( path, &drive_stat_buffer )) if (stat( path, &drive_stat_buffer ))
{ {
MESSAGE("Could not stat %s, ignoring drive %c: %s\n", MESSAGE("Could not stat %s (%s), ignoring drive %c:\n",
path, 'A' + i, strerror(errno)); path, strerror(errno), 'A' + i);
continue; continue;
} }
if (!S_ISDIR(drive_stat_buffer.st_mode)) if (!S_ISDIR(drive_stat_buffer.st_mode))

View File

@ -523,7 +523,7 @@ static int server_connect( const char *oldcwd, const char *serverdir )
close( s ); close( s );
} }
fatal_error( "file '%s/%s' exists,\n" fatal_error( "file '%s/%s' exists,\n"
" but I cannot connect to it; maybe the server has crashed?\n" " but I cannot connect to it; maybe the wineserver has crashed?\n"
" If this is the case, you should remove this socket file and try again.\n", " If this is the case, you should remove this socket file and try again.\n",
serverdir, SOCKETNAME ); serverdir, SOCKETNAME );
} }
@ -627,7 +627,7 @@ int CLIENT_InitThread(void)
if (req->version != SERVER_PROTOCOL_VERSION) if (req->version != SERVER_PROTOCOL_VERSION)
server_protocol_error( "version mismatch %d/%d.\n" server_protocol_error( "version mismatch %d/%d.\n"
"Your %s binary was not upgraded correctly,\n" "Your %s binary was not upgraded correctly,\n"
"or you have an older one somewhere in your PATH.\n", "or you have an older one somewhere in your PATH.\nOr maybe wrong wineserver still running ?",
req->version, SERVER_PROTOCOL_VERSION, req->version, SERVER_PROTOCOL_VERSION,
(req->version > SERVER_PROTOCOL_VERSION) ? "wine" : "wineserver" ); (req->version > SERVER_PROTOCOL_VERSION) ? "wine" : "wineserver" );
if (req->boot) boot_thread_id = teb->tid; if (req->boot) boot_thread_id = teb->tid;

View File

@ -1132,7 +1132,10 @@ DWORD WINAPI GetProcessVersion( DWORD processid )
IMAGE_NT_HEADERS *nt; IMAGE_NT_HEADERS *nt;
if (processid && processid != GetCurrentProcessId()) if (processid && processid != GetCurrentProcessId())
return 0; /* FIXME: should use ReadProcessMemory */ {
FIXME("should use ReadProcessMemory\n");
return 0;
}
if ((nt = RtlImageNtHeader( current_process.module ))) if ((nt = RtlImageNtHeader( current_process.module )))
return ((nt->OptionalHeader.MajorSubsystemVersion << 16) | return ((nt->OptionalHeader.MajorSubsystemVersion << 16) |
nt->OptionalHeader.MinorSubsystemVersion); nt->OptionalHeader.MinorSubsystemVersion);

View File

@ -574,7 +574,7 @@ BOOL WINAPI FreeConsole(VOID)
* This makes simple commandline tools pipeable, while complex commandline * This makes simple commandline tools pipeable, while complex commandline
* tools work without getting messed up by debugoutput. * tools work without getting messed up by debugoutput.
* *
* All other functions should work independent from this call. * All other functions should work independently from this call.
* *
* To test for complex console: pid == 0 -> simple, otherwise complex. * To test for complex console: pid == 0 -> simple, otherwise complex.
*/ */

View File

@ -246,7 +246,7 @@ DWORD WINAPI UnhandledExceptionFilter(PEXCEPTION_POINTERS epointers)
ret = EXCEPTION_CONTINUE_SEARCH; ret = EXCEPTION_CONTINUE_SEARCH;
} else { } else {
ERR("Couldn't start debugger (%s) (%ld)\n" ERR("Couldn't start debugger (%s) (%ld)\n"
"Read the documentation on how to set up winedbg or another debugger\n", "Read the Wine Developers Guide on how to set up winedbg or another debugger\n",
buffer, GetLastError()); buffer, GetLastError());
} }
CloseHandle(hEvent); CloseHandle(hEvent);

View File

@ -102,7 +102,7 @@ BOOL WINAPI SetFileAttributesA(LPCSTR lpFileName, DWORD attributes)
if (-1==chmod(full_name.long_name,buf.st_mode)) if (-1==chmod(full_name.long_name,buf.st_mode))
{ {
FILE_SetDosError(); FILE_SetDosError();
MESSAGE("Wine ERROR: Couldn't set file attributes for existing file \"%s\". Check permissions !\n", full_name.long_name); MESSAGE("Wine ERROR: Couldn't set file attributes for existing file \"%s\". Check permissions or set VFAT \"quiet\" flag !\n", full_name.long_name);
return FALSE; return FALSE;
} }
return TRUE; return TRUE;