Add some ctrl breaker checks into copy, del, and dir.
Modified: trunk/reactos/subsys/system/cmd/cmd.c
Modified: trunk/reactos/subsys/system/cmd/copy.c
Modified: trunk/reactos/subsys/system/cmd/del.c
Modified: trunk/reactos/subsys/system/cmd/dir.c

Modified: trunk/reactos/subsys/system/cmd/cmd.c
--- trunk/reactos/subsys/system/cmd/cmd.c	2005-11-05 23:10:43 UTC (rev 19023)
+++ trunk/reactos/subsys/system/cmd/cmd.c	2005-11-06 01:24:21 UTC (rev 19024)
@@ -643,6 +643,8 @@
 			}
 		}
 	}
+	/* Just in case a CTRL+C slipped through a command */
+	bCtrlBreak = FALSE;
 	free(com);
 }
 

Modified: trunk/reactos/subsys/system/cmd/copy.c
--- trunk/reactos/subsys/system/cmd/copy.c	2005-11-05 23:10:43 UTC (rev 19023)
+++ trunk/reactos/subsys/system/cmd/copy.c	2005-11-06 01:24:21 UTC (rev 19024)
@@ -51,7 +51,12 @@
 #define BUFF_SIZE 16384         /* 16k = max buffer size */
  
  
-int copy (TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
+INT 
+copy (TCHAR source[MAX_PATH], 
+	  TCHAR dest[MAX_PATH], 
+	  INT append, 
+	  DWORD lpdwFlags, 
+	  BOOL bTouch)
 {
 	TCHAR szMsg[RC_STRING_MAX_SIZE];
 	FILETIME srctime,NewFileTime;
@@ -68,6 +73,9 @@
 	TCHAR * FileName;
 	SYSTEMTIME CurrentTime;
  
+	/* Check Breaker */
+	if(CheckCtrlBreak(BREAK_INPUT))
+		return 0;
 
 #ifdef _DEBUG
 	DebugPrintf (_T("checking mode\n"));
@@ -235,6 +243,7 @@
  
 	do
 	{
+
 		ReadFile (hFileSrc, buffer, BUFF_SIZE, &dwRead, NULL);
 		if (lpdwFlags & COPY_ASCII)
 		{
@@ -254,14 +263,14 @@
 			break;
  
 		WriteFile (hFileDest, buffer, dwRead, &dwWritten, NULL);
-		if (dwWritten != dwRead)
+		if (dwWritten != dwRead || CheckCtrlBreak(BREAK_INPUT))
 		{
 			ConOutResPuts(STRING_COPY_ERROR3);
  
 			free (buffer);
 			CloseHandle (hFileDest);
 			CloseHandle (hFileSrc);
-      nErrorLevel = 1;
+			nErrorLevel = 1;
 			return 0;
 		}
 	}
@@ -731,6 +740,12 @@
  
 		do
 		{
+			/* Check Breaker */
+			if(CheckCtrlBreak(BREAK_INPUT))
+			{
+				freep(arg);
+				return 1;
+			}
 			/* Set the override to yes each new file */
 			nOverwrite = 1;
  

Modified: trunk/reactos/subsys/system/cmd/del.c
--- trunk/reactos/subsys/system/cmd/del.c	2005-11-05 23:10:43 UTC (rev 19023)
+++ trunk/reactos/subsys/system/cmd/del.c	2005-11-06 01:24:21 UTC (rev 19024)
@@ -107,8 +107,9 @@
 	/*This function is called by CommandDelete and
 	does the actual process of deleting the single 
 	file*/
+		if(CheckCtrlBreak(BREAK_INPUT))
+			return 1;
 
-
         /*check to see if it is read only and if this is done based on /A
           if it is done by file name, access is denied. However, if it is done 
           using the /A switch you must un-read only the file and allow it to be

Modified: trunk/reactos/subsys/system/cmd/dir.c
--- trunk/reactos/subsys/system/cmd/dir.c	2005-11-05 23:10:43 UTC (rev 19023)
+++ trunk/reactos/subsys/system/cmd/dir.c	2005-11-06 01:24:21 UTC (rev 19024)
@@ -2027,7 +2027,7 @@
 		}
 
 	/* read the parameters */
-	if (!DirReadParam(rest, &params, &entries, &stFlags))
+	if (!DirReadParam(rest, &params, &entries, &stFlags) || CheckCtrlBreak(BREAK_INPUT))
 	{
 		nErrorLevel = 1;
 		return 1;
@@ -2044,7 +2044,7 @@
 	for(loop = 0; loop < entries; loop++)
 	{
 		/* parse the directory info */
-		if (DirParsePathspec (params[loop], szPath, szFilespec))
+		if (DirParsePathspec (params[loop], szPath, szFilespec) || CheckCtrlBreak(BREAK_INPUT))
 		{
 			nErrorLevel = 1;
 			return 1;