Actual merge, sorry for the false alert. Merges with 13937.
Modified: branches/alex_devel_branch/reactos/drivers/net/afd/afd/main.c
Modified: branches/alex_devel_branch/reactos/drivers/net/afd/afd/read.c
Modified: branches/alex_devel_branch/reactos/drivers/net/afd/include/afd.h
Modified: branches/alex_devel_branch/reactos/include/win32k/text.h
Added: branches/alex_devel_branch/reactos/lib/cpl/appwiz/Dk.rc
Added: branches/alex_devel_branch/reactos/lib/cpl/appwiz/Ru.rc
Modified: branches/alex_devel_branch/reactos/lib/cpl/appwiz/appwiz.rc
Added: branches/alex_devel_branch/reactos/lib/cpl/control/Dk.rc
Added: branches/alex_devel_branch/reactos/lib/cpl/control/Ru.rc
Modified: branches/alex_devel_branch/reactos/lib/cpl/control/control.rc
Added: branches/alex_devel_branch/reactos/lib/cpl/ncpa/dk.rc
Added: branches/alex_devel_branch/reactos/lib/cpl/ncpa/en.rc
Modified: branches/alex_devel_branch/reactos/lib/cpl/ncpa/ncpa.rc
Modified: branches/alex_devel_branch/reactos/lib/cpl/sysdm/de.rc
Modified: branches/alex_devel_branch/reactos/lib/cpl/sysdm/en.rc
Modified: branches/alex_devel_branch/reactos/lib/cpl/sysdm/sysdm.rc
Added: branches/alex_devel_branch/reactos/lib/cpl/timedate/Dk.rc
Added: branches/alex_devel_branch/reactos/lib/cpl/timedate/Ru.rc
Modified: branches/alex_devel_branch/reactos/lib/cpl/timedate/timedate.rc
Modified: branches/alex_devel_branch/reactos/lib/kernel32/file/lock.c
Modified: branches/alex_devel_branch/reactos/lib/msafd/misc/dllmain.c
Modified: branches/alex_devel_branch/reactos/ntoskrnl/io/device.c
Modified: branches/alex_devel_branch/reactos/subsys/win32k/ntuser/keyboard.c
Modified: branches/alex_devel_branch/reactos/subsys/win32k/objects/dib.c
Modified: branches/alex_devel_branch/reactos/subsys/win32k/objects/text.c
Modified: branches/alex_devel_branch/reactos/tools/Makefile
Added: branches/alex_devel_branch/reactos/tools/tools-check.c
Added: branches/alex_devel_branch/reactos/tools/tools-check.mak
Modified: branches/alex_devel_branch/reactos/tools/unicode/Makefile
Modified: branches/alex_devel_branch/reactos/tools/unicode/mbtowc.c
Modified: branches/alex_devel_branch/reactos/tools/unicode/string.c
Modified: branches/alex_devel_branch/reactos/tools/unicode/wctomb.c
Modified: branches/alex_devel_branch/reactos/tools/widl/ChangeLog
Modified: branches/alex_devel_branch/reactos/tools/widl/client.c
Modified: branches/alex_devel_branch/reactos/tools/widl/header.c
Modified: branches/alex_devel_branch/reactos/tools/widl/server.c
Modified: branches/alex_devel_branch/reactos/tools/widl/widl.c
Modified: branches/alex_devel_branch/reactos/tools/widl/widl.h
Added: branches/alex_devel_branch/reactos/w32api/include/winres.h

Modified: branches/alex_devel_branch/reactos/drivers/net/afd/afd/main.c
--- branches/alex_devel_branch/reactos/drivers/net/afd/afd/main.c	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/drivers/net/afd/afd/main.c	2005-03-11 23:56:02 UTC (rev 13942)
@@ -20,8 +20,8 @@
 #ifdef DBG
 
 /* See debug.h for debug/trace constants */
-//DWORD DebugTraceLevel = DEBUG_ULTRA;
-DWORD DebugTraceLevel = 0;
+DWORD DebugTraceLevel = DEBUG_ULTRA;
+//DWORD DebugTraceLevel = 0;
 
 #endif /* DBG */
 

Modified: branches/alex_devel_branch/reactos/drivers/net/afd/afd/read.c
--- branches/alex_devel_branch/reactos/drivers/net/afd/afd/read.c	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/drivers/net/afd/afd/read.c	2005-03-11 23:56:02 UTC (rev 13942)
@@ -26,8 +26,6 @@
 #include "tdiconn.h"
 #include "debug.h"
 
-static VOID ProcessClose( PAFD_FCB FCB );
-
 BOOLEAN CantReadMore( PAFD_FCB FCB ) {
     UINT BytesAvailable = FCB->Recv.Content - FCB->Recv.BytesUsed;
     
@@ -106,7 +104,8 @@
 	    if( Status == STATUS_SUCCESS ) {
 		if( !FCB->ReceiveIrp.Iosb.Information ) {
 		    AFD_DbgPrint(MID_TRACE,("Looks like an EOF\n"));
-		    ProcessClose( FCB );
+                    FCB->PollState |= AFD_EVENT_DISCONNECT;
+                    PollReeval( FCB->DeviceExt, FCB->FileObject );
 		}
 		FCB->Recv.Content = FCB->ReceiveIrp.Iosb.Information;
 	    }
@@ -118,66 +117,40 @@
     return STATUS_SUCCESS;
 }
 
-static VOID ProcessClose( PAFD_FCB FCB ) {
+NTSTATUS ReceiveActivity( PAFD_FCB FCB, PIRP Irp ) {
     PLIST_ENTRY NextIrpEntry;
     PIRP NextIrp;
-
-    AFD_DbgPrint(MID_TRACE,("Socket shutdown from remote side\n"));
-
-    /* Kill remaining recv irps */
-    while( !IsListEmpty( &FCB->PendingIrpList[FUNCTION_RECV] ) ) {
-	NextIrpEntry = 
-	    RemoveHeadList(&FCB->PendingIrpList[FUNCTION_RECV]);
-	NextIrp = 
-	    CONTAINING_RECORD(NextIrpEntry, IRP, Tail.Overlay.ListEntry);
-	AFD_DbgPrint(MID_TRACE,("Completing recv %x (%x)\n", 
-				NextIrp, STATUS_END_OF_FILE));
-	NextIrp->IoStatus.Status = STATUS_SUCCESS;
-	NextIrp->IoStatus.Information = 0;
-	IoCompleteRequest( NextIrp, IO_NETWORK_INCREMENT );
-    }
-    
-    /* Handle closing signal */
-    FCB->PollState |= AFD_EVENT_DISCONNECT | SOCKET_STATE_EOF_READ;
-
-    PollReeval( FCB->DeviceExt, FCB->FileObject );
-}
-
-NTSTATUS DDKAPI ReceiveComplete
-( PDEVICE_OBJECT DeviceObject,
-  PIRP Irp,
-  PVOID Context ) {
-    NTSTATUS Status = Irp->IoStatus.Status;
-    PAFD_FCB FCB = (PAFD_FCB)Context;
-    PLIST_ENTRY NextIrpEntry;
-    PIRP NextIrp;
     PIO_STACK_LOCATION NextIrpSp;
     PAFD_RECV_INFO RecvReq;
     UINT TotalBytesCopied = 0;
+    NTSTATUS Status = STATUS_SUCCESS, RetStatus = STATUS_PENDING;
 
-    AFD_DbgPrint(MID_TRACE,("Called\n"));
+    AFD_DbgPrint(MID_TRACE,("%x %x\n", FCB, Irp));
 
-    ASSERT_IRQL(APC_LEVEL);
-
-    if( !SocketAcquireStateLock( FCB ) ) return Status;
-
-    FCB->ReceiveIrp.InFlightRequest = NULL;
-    FCB->Recv.Content = Irp->IoStatus.Information;
-    FCB->Recv.BytesUsed = 0;
-
-    if( FCB->State == SOCKET_STATE_CLOSED ) {
-        AFD_DbgPrint(MIN_TRACE,("!!! CLOSED SOCK GOT A RECEIVE COMPLETE !!!\n"));
-	SocketStateUnlock( FCB );
-	DestroySocket( FCB );
-	return STATUS_SUCCESS;
-    } else if( FCB->State == SOCKET_STATE_LISTENING ) {
-        AFD_DbgPrint(MIN_TRACE,("!!! LISTENER GOT A RECEIVE COMPLETE !!!\n"));
-        SocketStateUnlock( FCB );
-        return STATUS_UNSUCCESSFUL;
-    }
-    
-    if( NT_SUCCESS(Irp->IoStatus.Status) && 
-	Irp->IoStatus.Information ) {
+    if( CantReadMore( FCB ) ) {
+        /* Success here means that we got an EOF.  Complete a pending read
+         * with zero bytes if we haven't yet overread, then kill the others.
+         */
+        while( !IsListEmpty( &FCB->PendingIrpList[FUNCTION_RECV] ) ) {
+            NextIrpEntry = 
+                RemoveHeadList(&FCB->PendingIrpList[FUNCTION_RECV]);
+            NextIrp = 
+                CONTAINING_RECORD(NextIrpEntry, IRP, Tail.Overlay.ListEntry);
+            NextIrpSp = IoGetCurrentIrpStackLocation( NextIrp );
+            RecvReq = NextIrpSp->Parameters.DeviceIoControl.Type3InputBuffer;
+            
+            AFD_DbgPrint(MID_TRACE,("Completing recv %x (%d)\n", NextIrp,
+                                    TotalBytesCopied));
+            UnlockBuffers( RecvReq->BufferArray, 
+                           RecvReq->BufferCount, FALSE );
+            Status = NextIrp->IoStatus.Status = 
+                FCB->Overread ? STATUS_END_OF_FILE : STATUS_SUCCESS;
+            NextIrp->IoStatus.Information = 0;
+            if( NextIrp == Irp ) RetStatus = Status;
+            IoCompleteRequest( NextIrp, IO_NETWORK_INCREMENT );
+            FCB->Overread = TRUE;
+        }
+    } else {
 	/* Kick the user that receive would be possible now */
 	/* XXX Not implemented yet */
 
@@ -214,31 +187,10 @@
 			       RecvReq->BufferCount, FALSE );
 		NextIrp->IoStatus.Status = Status;
 		NextIrp->IoStatus.Information = TotalBytesCopied;
+                if( NextIrp == Irp ) RetStatus = Status;
 		IoCompleteRequest( NextIrp, IO_NETWORK_INCREMENT );
 	    }
 	}
-
-	Status = STATUS_SUCCESS;
-    } else {
-        /* Success here means that we got an EOF.  Close all pending reads
-         * with EOF.  Data won't have been available before. */
-        while( !IsListEmpty( &FCB->PendingIrpList[FUNCTION_RECV] ) ) {
-            NextIrpEntry = 
-                RemoveHeadList(&FCB->PendingIrpList[FUNCTION_RECV]);
-            NextIrp = 
-                CONTAINING_RECORD(NextIrpEntry, IRP, Tail.Overlay.ListEntry);
-            NextIrpSp = IoGetCurrentIrpStackLocation( NextIrp );
-            RecvReq = NextIrpSp->Parameters.DeviceIoControl.Type3InputBuffer;
-            
-            AFD_DbgPrint(MID_TRACE,("Completing recv %x (%d)\n", NextIrp,
-                                    TotalBytesCopied));
-            UnlockBuffers( RecvReq->BufferArray, 
-                           RecvReq->BufferCount, FALSE );
-            NextIrp->IoStatus.Status = Status;
-            NextIrp->IoStatus.Information = 0;
-            IoCompleteRequest( NextIrp, IO_NETWORK_INCREMENT );
-        }
-	ProcessClose( FCB );
     }
 
     if( FCB->Recv.Content ) {
@@ -248,10 +200,53 @@
 
     PollReeval( FCB->DeviceExt, FCB->FileObject );    
 
-    SocketStateUnlock( FCB );
+    AFD_DbgPrint(MID_TRACE,("RetStatus for irp %x is %x\n", Irp, RetStatus));
 
-    if( Status == STATUS_PENDING ) Status = STATUS_SUCCESS;
+    return RetStatus;
+}
 
+NTSTATUS DDKAPI ReceiveComplete
+( PDEVICE_OBJECT DeviceObject,
+  PIRP Irp,
+  PVOID Context ) {
+    NTSTATUS Status = Irp->IoStatus.Status;
+    PAFD_FCB FCB = (PAFD_FCB)Context;
+
+    AFD_DbgPrint(MID_TRACE,("Called\n"));
+
+    ASSERT_IRQL(APC_LEVEL);
+
+    if( !SocketAcquireStateLock( FCB ) ) return Status;
+
+    FCB->ReceiveIrp.InFlightRequest = NULL;
+    FCB->Recv.Content = Irp->IoStatus.Information;
+    FCB->Recv.BytesUsed = 0;
+
+    if( FCB->State == SOCKET_STATE_CLOSED ) {
+        AFD_DbgPrint(MIN_TRACE,("!!! CLOSED SOCK GOT A RECEIVE COMPLETE !!!\n"));
+	SocketStateUnlock( FCB );
+	DestroySocket( FCB );
+	return STATUS_SUCCESS;
+    } else if( FCB->State == SOCKET_STATE_LISTENING ) {
+        AFD_DbgPrint(MIN_TRACE,("!!! LISTENER GOT A RECEIVE COMPLETE !!!\n"));
+        SocketStateUnlock( FCB );
+        return STATUS_UNSUCCESSFUL;
+    }
+    
+    Status = FCB->ReceiveIrp.Iosb.Status;
+
+    if( Irp->IoStatus.Status == STATUS_SUCCESS && 
+        Irp->IoStatus.Information == 0 ) {
+        AFD_DbgPrint(MID_TRACE,("Looks like an EOF\n"));
+        FCB->PollState |= AFD_EVENT_DISCONNECT;
+    }
+
+    ReceiveActivity( FCB, NULL );
+    
+    PollReeval( FCB->DeviceExt, FCB->FileObject );
+
+    SocketStateUnlock( FCB );
+
     AFD_DbgPrint(MID_TRACE,("Returned %x\n", Status));
 
     return Status;
@@ -274,7 +269,8 @@
         FCB->State != SOCKET_STATE_CONNECTING ) {
         AFD_DbgPrint(MID_TRACE,("Called recv on wrong kind of socket (s%x)\n",
                                 FCB->State));
-        return STATUS_UNSUCCESSFUL;
+        return UnlockAndMaybeComplete( FCB, STATUS_UNSUCCESSFUL, 
+				       Irp, 0, NULL, FALSE );
     }
 
     if( FCB->Flags & AFD_ENDPOINT_CONNECTIONLESS )
@@ -291,57 +287,40 @@
 	return UnlockAndMaybeComplete( FCB, STATUS_NO_MEMORY, 
 				       Irp, 0, NULL, FALSE );
 
+    AFD_DbgPrint(MID_TRACE,("Recv flags %x\n", RecvReq->AfdFlags));
+
     RecvReq->BufferArray = LockBuffers( RecvReq->BufferArray, 
 					RecvReq->BufferCount,
 					NULL, NULL,
 					TRUE, FALSE );
 
-    /* Check if we're not closed down yet */
+    Irp->IoStatus.Status = STATUS_PENDING;
+    Irp->IoStatus.Information = 0;
 
-    if( !CantReadMore(FCB) ) {
-	AFD_DbgPrint(MID_TRACE,("Not EOF yet\n"));
-	if( FCB->ReceiveIrp.InFlightRequest ) {
-	    AFD_DbgPrint(MID_TRACE,("We're waiting on a previous irp\n"));
-	    Status = STATUS_PENDING;
-	} else {
-	    AFD_DbgPrint(MID_TRACE,("The buffer is likely not empty\n"));
-	    Status = STATUS_SUCCESS;
-	}
-    } else {
-	if( FCB->PollState & SOCKET_STATE_EOF_READ )
-            Status = STATUS_END_OF_FILE;
-        else
-            Status = STATUS_SUCCESS;
-        
-        AFD_DbgPrint(MID_TRACE,("EOF Happened already\n"));
-        FCB->Recv.Content = 0;
-        FCB->Recv.BytesUsed = 0;
+    InsertTailList( &FCB->PendingIrpList[FUNCTION_RECV], 
+                    &Irp->Tail.Overlay.ListEntry );
 
-	ProcessClose( FCB );
+    /************ From this point, the IRP is not ours ************/
 
-        return UnlockAndMaybeComplete
-            ( FCB, Status, Irp, 0, NULL, FALSE);
-    }
-
-    if( NT_SUCCESS(Status) ) {
-	AFD_DbgPrint(MID_TRACE,("TryToSatisfy\n"));
-        Status = TryToSatisfyRecvRequestFromBuffer
-            ( FCB, RecvReq, &TotalBytesCopied );
-    }
+    Status = ReceiveActivity( FCB, Irp );
     
-    if( Status != STATUS_PENDING || RecvReq->AfdFlags & AFD_IMMEDIATE ) {
-       if( Status == STATUS_PENDING ) {
-           AFD_DbgPrint(MID_TRACE,("Nonblocking\n"));
-           Status = STATUS_CANT_WAIT;
-           TotalBytesCopied = 0;
-       }
-       UnlockBuffers( RecvReq->BufferArray, RecvReq->BufferCount, FALSE );
-       return UnlockAndMaybeComplete( FCB, Status, Irp, 
-				      TotalBytesCopied, NULL, TRUE );
-    } else {
+    if( Status == STATUS_PENDING && RecvReq->AfdFlags & AFD_IMMEDIATE ) {
+        AFD_DbgPrint(MID_TRACE,("Nonblocking\n"));
+        Status = STATUS_CANT_WAIT;
+        TotalBytesCopied = 0;
+        RemoveEntryList( &Irp->Tail.Overlay.ListEntry );
+        UnlockBuffers( RecvReq->BufferArray, RecvReq->BufferCount, FALSE );
+        return UnlockAndMaybeComplete( FCB, Status, Irp, 
+                                       TotalBytesCopied, NULL, TRUE );
+    } else if( Status == STATUS_PENDING ) {
         AFD_DbgPrint(MID_TRACE,("Leaving read irp\n"));
-       return LeaveIrpUntilLater( FCB, Irp, FUNCTION_RECV );
+        IoMarkIrpPending( Irp );
+    } else {
+        AFD_DbgPrint(MID_TRACE,("Completed with status %x\n", Status));
     }
+
+    SocketStateUnlock( FCB );
+    return Status;
 }
 
 

Modified: branches/alex_devel_branch/reactos/drivers/net/afd/include/afd.h
--- branches/alex_devel_branch/reactos/drivers/net/afd/include/afd.h	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/drivers/net/afd/include/afd.h	2005-03-11 23:56:02 UTC (rev 13942)
@@ -132,7 +132,7 @@
 } AFD_STORED_DATAGRAM, *PAFD_STORED_DATAGRAM;
 
 typedef struct _AFD_FCB {
-    BOOLEAN Locked, Critical;
+    BOOLEAN Locked, Critical, Overread;
     UINT State, Flags;
     KIRQL OldIrql;
     UINT LockCount;

Modified: branches/alex_devel_branch/reactos/include/win32k/text.h
--- branches/alex_devel_branch/reactos/include/win32k/text.h	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/include/win32k/text.h	2005-03-11 23:56:02 UTC (rev 13942)
@@ -7,6 +7,7 @@
 {
    LOGFONTW   logfont;
    FONTOBJ    *Font;
+   BOOLEAN Initialized; /* Don't reinitialize for each DC */
 } TEXTOBJ, *PTEXTOBJ;
 
 /*  Internal interface  */

Copied: branches/alex_devel_branch/reactos/lib/cpl/appwiz/Dk.rc (from rev 13936, trunk/reactos/lib/cpl/appwiz/Dk.rc)
Property changes on: branches/alex_devel_branch/reactos/lib/cpl/appwiz/Dk.rc ___________________________________________________________________ Name: svn:keywords   + Author Date Id Revision Name: svn:eol-style   + native
Copied: branches/alex_devel_branch/reactos/lib/cpl/appwiz/Ru.rc (from rev 13936, trunk/reactos/lib/cpl/appwiz/Ru.rc)

Modified: branches/alex_devel_branch/reactos/lib/cpl/appwiz/appwiz.rc
--- branches/alex_devel_branch/reactos/lib/cpl/appwiz/appwiz.rc	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/lib/cpl/appwiz/appwiz.rc	2005-03-11 23:56:02 UTC (rev 13942)
@@ -27,3 +27,6 @@
 
 #include "En.rc"
 #include "De.rc"
+#include "Dk.rc"
+#include "Ru.rc"
+

Copied: branches/alex_devel_branch/reactos/lib/cpl/control/Dk.rc (from rev 13936, trunk/reactos/lib/cpl/control/Dk.rc)
Property changes on: branches/alex_devel_branch/reactos/lib/cpl/control/Dk.rc
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Copied: branches/alex_devel_branch/reactos/lib/cpl/control/Ru.rc (from rev 13936, trunk/reactos/lib/cpl/control/Ru.rc)

Modified: branches/alex_devel_branch/reactos/lib/cpl/control/control.rc
--- branches/alex_devel_branch/reactos/lib/cpl/control/control.rc	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/lib/cpl/control/control.rc	2005-03-11 23:56:02 UTC (rev 13942)
@@ -17,9 +17,7 @@
 #include <../../../include/reactos/version.rc>
 #endif
 
-LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
 
-
 /////////////////////////////////////////////////////////////////////////////
 //
 // Icon
@@ -39,7 +37,5 @@
 
 #include "En.rc"
 #include "De.rc"
-
-
-
-
+#include "Dk.rc"
+#include "Ru.rc"

Copied: branches/alex_devel_branch/reactos/lib/cpl/ncpa/dk.rc (from rev 13936, trunk/reactos/lib/cpl/ncpa/dk.rc)
Property changes on: branches/alex_devel_branch/reactos/lib/cpl/ncpa/dk.rc
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Copied: branches/alex_devel_branch/reactos/lib/cpl/ncpa/en.rc (from rev 13936, trunk/reactos/lib/cpl/ncpa/en.rc)
Property changes on: branches/alex_devel_branch/reactos/lib/cpl/ncpa/en.rc ___________________________________________________________________ Name: svn:keywords   + Author Date Id Revision Name: svn:eol-style   + native
Modified: branches/alex_devel_branch/reactos/lib/cpl/ncpa/ncpa.rc
--- branches/alex_devel_branch/reactos/lib/cpl/ncpa/ncpa.rc	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/lib/cpl/ncpa/ncpa.rc	2005-03-11 23:56:02 UTC (rev 13942)
@@ -17,95 +17,10 @@
 #include <reactos/version.rc>
 #endif
 
-LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
-
 IDI_CPLSYSTEM ICON "resources/applet.ico"
 IDI_HORIZONTAL ICON "resources/HORIZ.ICO"
 IDI_VERTICAL ICON "resources/VERTIC.ICO"
 IDI_NETSTAT ICON "resources/NETCONN.ICO"
 
-IDD_PROPPAGENETWORK DIALOG DISCARDABLE  0, 0, 246, 228
-STYLE DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
-CAPTION ""
-FONT 8, "MS Shell Dlg"
-BEGIN
-    LTEXT           "Network Adapters",-1,9,9,217,8
-    LISTBOX         IDC_NETCARDLIST,9,21,229,73,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "&Add",IDC_ADD,9,100,60,14
-    PUSHBUTTON      "&Remove",IDC_REMOVE,72,100,60,14
-    PUSHBUTTON      "&Properties",IDC_PROPERTIES,179,100,60,14
-END
-
-IDD_NETPROPERTIES DIALOG DISCARDABLE  0, 0, 246, 228
-STYLE DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
-CAPTION "General"
-FONT 8, "MS Shell Dlg"
-BEGIN
- LTEXT "Connect Using:", -1, 9,9,217,8
- EDITTEXT IDC_NETCARDNAME, 9, 21, 230, 12, WS_DISABLED | WS_BORDER | WS_TABSTOP
- PUSHBUTTON "&Configure", IDC_CONFIGURE, 189, 38, 50, 14
- LTEXT "Components checked are used by this connection:", -1, 9, 59, 217, 8
- LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 67, LBS_STANDARD
- PUSHBUTTON "&Install", IDC_INSTALL, 9, 130, 65, 14, WS_DISABLED | WS_TABSTOP
- PUSHBUTTON "&Uninstall", IDC_UNINSTALL, 90, 130, 65, 14, WS_DISABLED | WS_TABSTOP
- PUSHBUTTON "&Properties", IDC_PROPERTIES, 174, 130, 65, 14
- GROUPBOX "Description", -1, 9, 153, 230, 46, BS_GROUPBOX
- LTEXT "Component Description goes here...", IDC_DESCRIPTION, 15, 165, 217, 28, WS_GROUP
- CHECKBOX "Show Icon in taskbar when connected", IDC_SHOWTASKBAR, 9, 206, 230, 12, BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP
-END
-
-
-IDD_CARDPROPERTIES DIALOG DISCARDABLE  0, 0, 200,180
-STYLE DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
-CAPTION "General"
-FONT 8, "MS Shell Dlg"
-BEGIN
- GROUPBOX "Connection", -1, 9, 8, 182, 58, BS_GROUPBOX
- LTEXT "Status:", -1, 19, 20, 60, 8
- LTEXT "Duration:", -1, 19, 34, 60, 8
- LTEXT "Speed:", -1, 19, 48, 60, 8
- GROUPBOX "Activity", -1, 9, 74, 182, 70, BS_GROUPBOX
- RTEXT "Sent", -1, 26, 90, 60, 8
- ICON IDI_HORIZONTAL, -1, 90, 85, 18, 20
- ICON IDI_NETSTAT, -1, 110, 85, 18, 20
- ICON IDI_HORIZONTAL, -1, 130, 85, 18, 20
- LTEXT "Received", -1, 149, 90, 37, 8
- LTEXT "Packets:", -1, 17, 115, 32, 8
- RTEXT "000.000.000", IDC_SEND, 63, 115, 44, 8
- ICON IDI_VERTICAL, -1, 110, 108, 18, 20
- RTEXT "000.000.000", IDC_RECEIVED, 139, 115, 44, 8
- PUSHBUTTON "&Properties", IDC_PROPERTIES, 10, 150, 50, 14
- PUSHBUTTON "&Disable", IDC_ENDISABLE, 66, 150, 50, 14
-END
-
-IDD_TCPIPPROPERTIES DIALOG DISCARDABLE  0, 0, 246, 228
-STYLE DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
-CAPTION "General"
-FONT 8, "MS Shell Dlg"
-BEGIN
- LTEXT "You can get IP settings assigned automatically if your network supports this capability. Otherwise, you need to ask your network administrator for the appropriate IP settings.", -1, 9, 9, 228, 27
- CONTROL "Obtain the IP address automatically", IDC_USEDHCP, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP, 14, 43, 210, 12
- GROUPBOX "", -1, 9, 61, 228, 70, BS_GROUPBOX
- CONTROL "&Use the following IP address:", IDC_NODHCP, "BUTTON", BS_AUTORADIOBUTTON, 14, 59, 105, 12
- LTEXT "IP address:", -1, 14, 75, 135, 8
- CONTROL "",IDC_IPADDR,"SysIPAddress32",0,150,75-2,80,12
- LTEXT "Subnet mask:", -1, 14, 90, 135, 8
- CONTROL "",IDC_SUBNETMASK,"SysIPAddress32",0,150,90-2,80,12
- LTEXT "Default gateway:", -1, 14, 105, 135, 8
- CONTROL "",IDC_DEFGATEWAY,"SysIPAddress32",0,150,105-2,80,12
- CONTROL "Obtain the DNS server address automatically", IDC_AUTODNS, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP, 14, 139, 210, 12
- GROUPBOX "", -1, 9, 157, 228, 47, BS_GROUPBOX
- CONTROL "&Use the following DNS server addresses", IDC_FIXEDDNS, "BUTTON", BS_AUTORADIOBUTTON, 14, 155, 142, 12
- LTEXT "Preferred DNS server:", -1, 14, 171, 135, 8
- CONTROL "",IDC_DNS1,"SysIPAddress32",0,150,171-2,80,12
- LTEXT "Alternate DNS server:", -1, 14, 186, 135, 8
- CONTROL "",IDC_DNS2,"SysIPAddress32",0,150,186-2,80,12
- PUSHBUTTON "&Advanced", IDC_ADVANCED, 186, 209, 50, 14, WS_DISABLED | WS_TABSTOP
-}
-
-
-STRINGTABLE 
-BEGIN
-  IDS_CPLSYSTEMNAME "Network Properties"
-  IDS_CPLSYSTEMDESCRIPTION "Customizes network settings."
-END
+#include "en.rc"
+#include "dk.rc"

Modified: branches/alex_devel_branch/reactos/lib/cpl/sysdm/de.rc
--- branches/alex_devel_branch/reactos/lib/cpl/sysdm/de.rc	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/lib/cpl/sysdm/de.rc	2005-03-11 23:56:02 UTC (rev 13942)
@@ -1,9 +1,5 @@
 LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
 
-IDI_CPLSYSTEM ICON "resources/applet.ico"
-IDI_DEVMGR ICON "resources/devmgr.ico"
-RC_LICENSE RTDATA "resources/gpl.txt"
-
 IDD_PROPPAGEGENERAL DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
 CAPTION "Allgemein"

Modified: branches/alex_devel_branch/reactos/lib/cpl/sysdm/en.rc
--- branches/alex_devel_branch/reactos/lib/cpl/sysdm/en.rc	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/lib/cpl/sysdm/en.rc	2005-03-11 23:56:02 UTC (rev 13942)
@@ -1,7 +1,5 @@
 LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
 
-IDI_CPLSYSTEM ICON "resources/applet.ico"
-IDI_DEVMGR ICON "resources/devmgr.ico"
 RC_LICENSE RTDATA "resources/gpl.txt"
 
 IDD_PROPPAGEGENERAL DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT

Modified: branches/alex_devel_branch/reactos/lib/cpl/sysdm/sysdm.rc
--- branches/alex_devel_branch/reactos/lib/cpl/sysdm/sysdm.rc	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/lib/cpl/sysdm/sysdm.rc	2005-03-11 23:56:02 UTC (rev 13942)
@@ -14,7 +14,9 @@
 #define REACTOS_STR_ORIGINAL_FILENAME	"sysdm.cpl\0"
 #include <reactos/version.rc>
 
+IDI_CPLSYSTEM ICON "resources/applet.ico"
+IDI_DEVMGR ICON "resources/devmgr.ico"
 
 #include "en.rc"
 #include "de.rc"
-
+#include "dk.rc"

Copied: branches/alex_devel_branch/reactos/lib/cpl/timedate/Dk.rc (from rev 13936, trunk/reactos/lib/cpl/timedate/Dk.rc)
Property changes on: branches/alex_devel_branch/reactos/lib/cpl/timedate/Dk.rc
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Copied: branches/alex_devel_branch/reactos/lib/cpl/timedate/Ru.rc (from rev 13936, trunk/reactos/lib/cpl/timedate/Ru.rc)

Modified: branches/alex_devel_branch/reactos/lib/cpl/timedate/timedate.rc
--- branches/alex_devel_branch/reactos/lib/cpl/timedate/timedate.rc	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/lib/cpl/timedate/timedate.rc	2005-03-11 23:56:02 UTC (rev 13942)
@@ -19,5 +19,7 @@
 
 #include "En.rc"
 #include "De.rc"
+#include "Dk.rc"
 #include "Es.rc"
 #include "Fr.rc"
+#include "Ru.rc"

Modified: branches/alex_devel_branch/reactos/lib/kernel32/file/lock.c
--- branches/alex_devel_branch/reactos/lib/kernel32/file/lock.c	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/lib/kernel32/file/lock.c	2005-03-11 23:56:02 UTC (rev 13942)
@@ -39,6 +39,7 @@
    
 	Overlapped.Offset = dwFileOffsetLow;
 	Overlapped.OffsetHigh = dwFileOffsetHigh;
+   Overlapped.hEvent = NULL;
 	dwReserved = 0;
 
   	return LockFileEx(hFile, LOCKFILE_FAIL_IMMEDIATELY|LOCKFILE_EXCLUSIVE_LOCK,dwReserved,nNumberOfBytesToLockLow, nNumberOfBytesToLockHigh, &Overlapped ) ;
@@ -57,7 +58,7 @@
 	   DWORD dwReserved,
 	   DWORD nNumberOfBytesToLockLow,
 	   DWORD nNumberOfBytesToLockHigh,
-	   LPOVERLAPPED lpOverlapped
+	   LPOVERLAPPED lpOverlapped /* required! */
 	   )
 {
    LARGE_INTEGER BytesToLock;	
@@ -66,7 +67,7 @@
    NTSTATUS errCode;
    LARGE_INTEGER Offset;
    
-   if(dwReserved != 0) 
+   if(dwReserved != 0 || lpOverlapped==NULL) 
      {      
 	SetLastError(ERROR_INVALID_PARAMETER);
 	return FALSE;
@@ -91,9 +92,9 @@
    BytesToLock.u.HighPart = nNumberOfBytesToLockHigh;
    
    errCode = NtLockFile(hFile,
+         lpOverlapped->hEvent,
 			NULL,
 			NULL,
-			NULL,
 			(PIO_STATUS_BLOCK)lpOverlapped,
 			&Offset,
 			&BytesToLock,
@@ -124,13 +125,13 @@
 	   DWORD nNumberOfBytesToUnlockHigh
 	   )
 {
-	DWORD dwReserved;
 	OVERLAPPED Overlapped;
+   DWORD dwReserved;
 	Overlapped.Offset = dwFileOffsetLow;
 	Overlapped.OffsetHigh = dwFileOffsetHigh;
-	dwReserved = 0;
-	return UnlockFileEx(hFile, dwReserved, nNumberOfBytesToUnlockLow, nNumberOfBytesToUnlockHigh, &Overlapped);
-
+   dwReserved = 0;
+   
+   return UnlockFileEx(hFile, dwReserved, nNumberOfBytesToUnlockLow, nNumberOfBytesToUnlockHigh, &Overlapped);
 }
 
 
@@ -144,23 +145,18 @@
 	DWORD dwReserved,
 	DWORD nNumberOfBytesToUnLockLow,
 	DWORD nNumberOfBytesToUnLockHigh,
-	LPOVERLAPPED lpOverlapped
+	LPOVERLAPPED lpOverlapped /* required! */
 	)
 {
    LARGE_INTEGER BytesToUnLock;
    LARGE_INTEGER StartAddress;
    NTSTATUS errCode;
    
-   if(dwReserved != 0) 
+   if(dwReserved != 0 || lpOverlapped == NULL) 
      {
 	SetLastError(ERROR_INVALID_PARAMETER);
 	return FALSE;
      }
-   if ( lpOverlapped == NULL ) 
-     {
-	SetLastError(ERROR_INVALID_PARAMETER);
-	return FALSE;
-     }
    
    BytesToUnLock.u.LowPart = nNumberOfBytesToUnLockLow;
    BytesToUnLock.u.HighPart = nNumberOfBytesToUnLockHigh;

Modified: branches/alex_devel_branch/reactos/lib/msafd/misc/dllmain.c
--- branches/alex_devel_branch/reactos/lib/msafd/misc/dllmain.c	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/lib/msafd/misc/dllmain.c	2005-03-11 23:56:02 UTC (rev 13942)
@@ -1285,6 +1285,7 @@
 			RtlCopyMemory (Name->sa_data,
 			               SocketAddress->Address[0].Address, 
 			               SocketAddress->Address[0].AddressLength);
+			*NameLength = 2 + SocketAddress->Address[0].AddressLength;
 			HeapFree(GlobalHeap, 0, TdiAddress);
 			return 0;
 		} else {

Modified: branches/alex_devel_branch/reactos/ntoskrnl/io/device.c
--- branches/alex_devel_branch/reactos/ntoskrnl/io/device.c	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/ntoskrnl/io/device.c	2005-03-11 23:56:02 UTC (rev 13942)
@@ -124,7 +124,7 @@
       ObjectBody, Parent, RemainingPath);
    
    if (RemainingPath != NULL && wcschr(RemainingPath + 1, '\\') != NULL)
-      return STATUS_UNSUCCESSFUL;
+      return STATUS_OBJECT_PATH_NOT_FOUND;
    
    return STATUS_SUCCESS;
 }
@@ -166,8 +166,11 @@
     OUT PDEVICE_OBJECT *AttachedToDeviceObject
     )
 {
-	UNIMPLEMENTED;
-	return STATUS_NOT_IMPLEMENTED;
+   /* FIXME: IoAttachDeviceToDeviceStackSafe must not call
+    * IoAttachDeviceToDeviceStack, but the other way around! */
+   DPRINT1("IoAttachDeviceToDeviceStackSafe() badly implemented!\n");
+   *AttachedToDeviceObject = IoAttachDeviceToDeviceStack(SourceDevice, TargetDevice);
+   return STATUS_SUCCESS;
 }
 
 /*

Modified: branches/alex_devel_branch/reactos/subsys/win32k/ntuser/keyboard.c
--- branches/alex_devel_branch/reactos/subsys/win32k/ntuser/keyboard.c	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/subsys/win32k/ntuser/keyboard.c	2005-03-11 23:56:02 UTC (rev 13942)
@@ -216,7 +216,7 @@
   PVK_TO_WCHAR_TABLE vtwTbl;
   PVK_TO_WCHARS10 vkPtr;
   size_t size_this_entry;
-  int nMod, shift;
+  int nMod;
   DWORD CapsMod = 0, CapsState = 0;
 
   CapsState = ModBits & ~MOD_BITS_MASK;
@@ -228,8 +228,6 @@
     {
       return FALSE;
     }
-  shift = keyLayout->pCharModifiers->ModNumber[ModBits];
-  
   for (nMod = 0; keyLayout->pVkToWcharTable[nMod].nModifications; nMod++)
     {
       vtwTbl = &keyLayout->pVkToWcharTable[nMod];
@@ -239,9 +237,10 @@
         {
           if( wVirtKey == (vkPtr->VirtualKey & 0xff) )
 	    {
-	      CapsMod = 
-		shift | ((CapsState & CAPITAL_BIT) ? vkPtr->Attributes : 0);
-
+              CapsMod = keyLayout->pCharModifiers->ModNumber
+                  [ModBits ^ 
+                   ((CapsState & CAPITAL_BIT) ? vkPtr->Attributes : 0)];
+              
 	      if( CapsMod > keyLayout->pVkToWcharTable[nMod].nModifications ) {
 		  DWORD MaxBit = 1;
 		  while( MaxBit < 
@@ -256,9 +255,9 @@
 	      *pbLigature = vkPtr->wch[CapsMod] == WCH_LGTR;
 	      *pwcTranslatedChar = vkPtr->wch[CapsMod];
 	      
-	      DPRINT("%d %04x: CapsMod %08x CapsState %08x shift %08x Char %04x\n",
+	      DPRINT("%d %04x: CapsMod %08x CapsState %08x Char %04x\n",
 		       nMod, wVirtKey,
-		       CapsMod, CapsState, shift, *pwcTranslatedChar);
+		       CapsMod, CapsState, *pwcTranslatedChar);
 
 	      if( *pbDead ) 
 	        {
@@ -269,7 +268,7 @@
 	              DPRINT( "VK: %04x, ADDR: %08x\n", wVirtKey, (int)vkPtr );
 	              return FALSE;
 		    }
-	          *pwcTranslatedChar = vkPtr->wch[shift];
+	          *pwcTranslatedChar = vkPtr->wch[CapsMod];
 	        }
 	        return TRUE;
 	    }

Modified: branches/alex_devel_branch/reactos/subsys/win32k/objects/dib.c
--- branches/alex_devel_branch/reactos/subsys/win32k/objects/dib.c	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/subsys/win32k/objects/dib.c	2005-03-11 23:56:02 UTC (rev 13942)
@@ -883,8 +883,15 @@
     if(bi->biBitCount == 4) { Entries = 16; } else
     if(bi->biBitCount == 8) { Entries = 256; }
 
-    bmp->ColorMap = ExAllocatePoolWithTag(PagedPool, sizeof(RGBQUAD)*Entries, TAG_COLORMAP);
-    RtlCopyMemory(bmp->ColorMap, bmi->bmiColors, sizeof(RGBQUAD)*Entries);
+    if (Entries)
+    {
+      bmp->ColorMap = ExAllocatePoolWithTag(PagedPool, sizeof(RGBQUAD)*Entries, TAG_COLORMAP);
+      RtlCopyMemory(bmp->ColorMap, bmi->bmiColors, sizeof(RGBQUAD)*Entries);
+    }
+    else
+    {
+      bmp->ColorMap = NULL;
+    }
   }
 
   // Clean up in case of errors

Modified: branches/alex_devel_branch/reactos/subsys/win32k/objects/text.c
--- branches/alex_devel_branch/reactos/subsys/win32k/objects/text.c	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/subsys/win32k/objects/text.c	2005-03-11 23:56:02 UTC (rev 13942)
@@ -2971,6 +2971,12 @@
       return STATUS_INVALID_HANDLE;
     }
 
+  if (TextObj->Initialized)
+    {
+      TEXTOBJ_UnlockText(FontHandle);
+      return STATUS_SUCCESS;
+    }
+
   if (! RtlCreateUnicodeString(&FaceName, TextObj->logfont.lfFaceName))
     {
       TEXTOBJ_UnlockText(FontHandle);
@@ -3003,6 +3009,7 @@
     }
   else
     {
+      TextObj->Initialized = TRUE;
       Status = STATUS_SUCCESS;
     }
 

Modified: branches/alex_devel_branch/reactos/tools/Makefile
--- branches/alex_devel_branch/reactos/tools/Makefile	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/tools/Makefile	2005-03-11 23:56:02 UTC (rev 13942)
@@ -18,12 +18,15 @@
 
 LIBS = lib_unicode lib_wpp
 
-CLEAN_FILES = $(TOOLS)
+CLEAN_FILES = $(TOOLS) tools-check.tmp tools-check.h
 
-all: $(TOOLS) $(LIBS) zlib_target wmc_target cabman_target cdmake_target mkhive_target rgenstat_target \
+all: $(TOOLS) tools_check $(LIBS) zlib_target wmc_target cabman_target cdmake_target mkhive_target rgenstat_target \
 	wine2ros_target pipetools_target winebuild_target bin2res_target wrc_target widl_target \
 	buildno_target
 
+tools_check:
+	$(MAKE) -f tools-check.mak
+
 regtests$(EXE_POSTFIX): regtests.c
 	@$(HOST_CC) $(CFLAGS) -o regtests$(EXE_POSTFIX) regtests.c
 

Copied: branches/alex_devel_branch/reactos/tools/tools-check.c (from rev 13936, trunk/reactos/tools/tools-check.c)

Copied: branches/alex_devel_branch/reactos/tools/tools-check.mak (from rev 13936, trunk/reactos/tools/tools-check.mak)

Modified: branches/alex_devel_branch/reactos/tools/unicode/Makefile
--- branches/alex_devel_branch/reactos/tools/unicode/Makefile	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/tools/unicode/Makefile	2005-03-11 23:56:02 UTC (rev 13942)
@@ -8,7 +8,7 @@
 
 TARGET_CFLAGS = -D__USE_W32API -DWINVER=0x501 -DWINE_UNICODE_API= \
                 -Dwchar_t="unsigned short" -D_WCHAR_T_DEFINED \
-                -I$(PATH_TO_TOP)/include/wine
+                -I$(PATH_TO_TOP)/include/wine -Wall -Werror
 
 CODEPAGES = \
 	037 \

Modified: branches/alex_devel_branch/reactos/tools/unicode/mbtowc.c
--- branches/alex_devel_branch/reactos/tools/unicode/mbtowc.c	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/tools/unicode/mbtowc.c	2005-03-11 23:56:02 UTC (rev 13942)
@@ -22,6 +22,8 @@
 
 #include "wine/unicode.h"
 
+typedef unsigned char uchar;
+
 /* get the decomposition of a Unicode char */
 int get_decomposition( WCHAR src, WCHAR *dst, unsigned int dstlen )
 {
@@ -256,25 +258,25 @@
     {
         if (flags & MB_ERR_INVALID_CHARS)
         {
-            if (check_invalid_chars_sbcs( &table->sbcs, src, srclen )) return -2;
+            if (check_invalid_chars_sbcs( &table->sbcs, (const uchar*)src, srclen )) return -2;
         }
         if (!(flags & MB_COMPOSITE))
         {
             if (!dstlen) return srclen;
-            return mbstowcs_sbcs( &table->sbcs, src, srclen, dst, dstlen );
+            return mbstowcs_sbcs( &table->sbcs, (const uchar*)src, srclen, dst, dstlen );
         }
-        return mbstowcs_sbcs_decompose( &table->sbcs, src, srclen, dst, dstlen );
+        return mbstowcs_sbcs_decompose( &table->sbcs, (const uchar*)src, srclen, dst, dstlen );
     }
     else /* mbcs */
     {
         if (flags & MB_ERR_INVALID_CHARS)
         {
-            if (check_invalid_chars_dbcs( &table->dbcs, src, srclen )) return -2;
+            if (check_invalid_chars_dbcs( &table->dbcs, (const uchar*)src, srclen )) return -2;
         }
         if (!(flags & MB_COMPOSITE))
-            return mbstowcs_dbcs( &table->dbcs, src, srclen, dst, dstlen );
+            return mbstowcs_dbcs( &table->dbcs, (const uchar*)src, srclen, dst, dstlen );
         else
-            return mbstowcs_dbcs_decompose( &table->dbcs, src, srclen, dst, dstlen );
+            return mbstowcs_dbcs_decompose( &table->dbcs, (const uchar*)src, srclen, dst, dstlen );
     }
 }
 

Modified: branches/alex_devel_branch/reactos/tools/unicode/string.c
--- branches/alex_devel_branch/reactos/tools/unicode/string.c	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/tools/unicode/string.c	2005-03-11 23:56:02 UTC (rev 13942)
@@ -20,6 +20,7 @@
 
 #include <limits.h>
 #include <stdio.h>
+#include <ctype.h>
 
 #include "wine/unicode.h"
 

Modified: branches/alex_devel_branch/reactos/tools/unicode/wctomb.c
--- branches/alex_devel_branch/reactos/tools/unicode/wctomb.c	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/tools/unicode/wctomb.c	2005-03-11 23:56:02 UTC (rev 13942)
@@ -196,7 +196,7 @@
     int tmp;
     WCHAR composed;
 
-    if (!defchar) defchar = &table_default;
+    if (!defchar) defchar = (const char*)&table_default;
     if (!used) used = &tmp;  /* avoid checking on every char */
     *used = 0;
 

Modified: branches/alex_devel_branch/reactos/tools/widl/ChangeLog
--- branches/alex_devel_branch/reactos/tools/widl/ChangeLog	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/tools/widl/ChangeLog	2005-03-11 23:56:02 UTC (rev 13942)
@@ -1,5 +1,16 @@
 ChangeLog
 
+2005-03-10 ekohl
+
+   tools/widl/client.c
+   tools/widl/header.c
+   tools/widl/server.c
+   tools/widl/widl.c
+   tools/widl/widl.h
+
+Implement '-o' option. This is equivalent to MIDLs '/oldnames' option.
+
+
 2005-03-06 ekohl
 
    tools/widl/client.c
@@ -20,13 +31,13 @@
   tools/widl/typelib.c
 
 Merge in Winehq changes to reduce noise.
-  
+
   tools/widl/server.h
   tools/widl/client.h
   tools/widl/proxy.h  
 
-Deleted unneeded headers.  
-    
+Deleted unneeded headers.
+
 2005-02-26 ekohl
   tools/widl/server.c
 

Modified: branches/alex_devel_branch/reactos/tools/widl/client.c
--- branches/alex_devel_branch/reactos/tools/widl/client.c	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/tools/widl/client.c	2005-03-11 23:56:02 UTC (rev 13942)
@@ -672,8 +672,12 @@
     print_client("0,\n");
     indent--;
     print_client("};\n");
-    print_client("RPC_IF_HANDLE %s_v%d_%d_c_ifspec = (RPC_IF_HANDLE)& %s___RpcClientInterface;\n",
-                 iface->name, LOWORD(ver), HIWORD(ver), iface->name);
+    if (old_names)
+       print_client("RPC_IF_HANDLE %s_ClientIfHandle = (RPC_IF_HANDLE)& %s___RpcClientInterface;\n",
+                    iface->name, iface->name);
+    else
+       print_client("RPC_IF_HANDLE %s_v%d_%d_c_ifspec = (RPC_IF_HANDLE)& %s___RpcClientInterface;\n",
+                    iface->name, LOWORD(ver), HIWORD(ver), iface->name);
     fprintf(client, "\n");
 }
 

Modified: branches/alex_devel_branch/reactos/tools/widl/header.c
--- branches/alex_devel_branch/reactos/tools/widl/header.c	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/tools/widl/header.c	2005-03-11 23:56:02 UTC (rev 13942)
@@ -851,8 +851,16 @@
   {
     fprintf(header, "extern handle_t %s;\n", var);
   }
-  fprintf(header, "extern RPC_IF_HANDLE %s_v%d_%d_c_ifspec;\n", iface->name, LOWORD(ver), HIWORD(ver));
-  fprintf(header, "extern RPC_IF_HANDLE %s_v%d_%d_s_ifspec;\n", iface->name, LOWORD(ver), HIWORD(ver));
+  if (old_names)
+  {
+    fprintf(header, "extern RPC_IF_HANDLE %s_ClientIfHandle;\n", iface->name);
+    fprintf(header, "extern RPC_IF_HANDLE %s_ServerIfHandle;\n", iface->name);
+  }
+  else
+  {
+    fprintf(header, "extern RPC_IF_HANDLE %s_v%d_%d_c_ifspec;\n", iface->name, LOWORD(ver), HIWORD(ver));
+    fprintf(header, "extern RPC_IF_HANDLE %s_v%d_%d_s_ifspec;\n", iface->name, LOWORD(ver), HIWORD(ver));
+  }
   write_function_proto(iface);
   fprintf(header, "\n");
 

Modified: branches/alex_devel_branch/reactos/tools/widl/server.c
--- branches/alex_devel_branch/reactos/tools/widl/server.c	2005-03-11 23:38:59 UTC (rev 13941)
+++ branches/alex_devel_branch/reactos/tools/widl/server.c	2005-03-11 23:56:02 UTC (rev 13942)
@@ -677,8 +677,12 @@
     print_server("0,\n");
     indent--;
     print_server("};\n");
-    print_server("RPC_IF_HANDLE %s_v%d_%d_s_ifspec = (RPC_IF_HANDLE)& %s___RpcServerInterface;\n",
-                 iface->name, LOWORD(ver), HIWORD(ver), iface->name);
+    if (old_names)
+        print_server("RPC_IF_HANDLE %s_ServerIfHandle = (RPC_IF_HANDLE)& %s___RpcServerInterface;\n",
+                     iface->name, iface->name);
+    else
+        print_server("RPC_IF_HANDLE %s_v%d_%d_s_ifspec = (RPC_IF_HANDLE)& %s___RpcServerInterface;\n",
+                     iface->name, LOWORD(ver), HIWORD(ver), iface->name);
     fprintf(server, "\n");
 }
 

Modified: branches/alex_devel_branch/reactos/tools/widl/widl.c
[truncated at 1000 lines; 75 more skipped]