Made cmd unicode compatible.
authorHartmut Birr <osexpert@googlemail.com>
Sat, 30 Jul 2005 18:52:33 +0000 (18:52 +0000)
committerHartmut Birr <osexpert@googlemail.com>
Sat, 30 Jul 2005 18:52:33 +0000 (18:52 +0000)
svn path=/trunk/; revision=16898

reactos/subsys/system/cmd/console.c
reactos/subsys/system/cmd/copy.c
reactos/subsys/system/cmd/main.c
reactos/subsys/system/cmd/move.c

index 4adf010..df3de99 100644 (file)
@@ -261,22 +261,27 @@ VOID ConPrintfPaging(BOOL NewPage, LPTSTR szFormat, va_list arg_ptr, DWORD nStdH
                LineCount = 0;
 
   /* rest LineCount and return if no string have been given */
-  if (szFormat == NULL)
-     return;
+        if (szFormat == NULL)
+                return;
 
 
        //get the size of the visual screen that can be printed too
-       GetConsoleScreenBufferInfo(hConsole, &csbi);
+       if (!GetConsoleScreenBufferInfo(hConsole, &csbi))
+        {
+                // we assuming its a file handle
+                ConPrintf(szFormat, arg_ptr, nStdHandle);
+                return;
+        }
        //subtract 2 to account for "press any key..." and for the blank line at the end of PagePrompt()
        ScreenLines = (csbi.srWindow.Bottom  - csbi.srWindow.Top) - 4;
        ScreenCol = (csbi.srWindow.Right - csbi.srWindow.Left) + 1;
 
-       //make sure they didnt make the screen to small
+       //make sure they didnt make the screen to small 
        if(ScreenLines<4)
-  {
-          ConPrintf(szFormat, arg_ptr, nStdHandle);
-     return ;
-  }
+        {
+               ConPrintf(szFormat, arg_ptr, nStdHandle);
+                return ;
+        }
           
        len = _vstprintf (szOut, szFormat, arg_ptr);
 #ifdef _UNICODE
@@ -286,44 +291,44 @@ VOID ConPrintfPaging(BOOL NewPage, LPTSTR szFormat, va_list arg_ptr, DWORD nStdH
        pBuf = szOut;
 #endif
              
-               for(i = 0; i < len; i++)
-               
+       for(i = 0; i < len; i++)
+       { 
       
-      if(szOut[i] == _T('\n'))
-                       {                               
-                               LineCount++; 
-        CharEL=0;
-                       }      
-      else
-      {      
-        CharEL++;           
-        if (CharEL>=ScreenCol)
-        {        
-          if (i+1<len)
-          {
-             if(szOut[i+1] != _T('\n')) LineCount++;          
-          }
-          CharEL=0;
-        }
-       }
-
-      /* FIXME : write more that one char at time */
-      WriteFile (GetStdHandle (nStdHandle),&pBuf[i],sizeof(TCHAR),&dwWritten,NULL);
-           if(LineCount >= ScreenLines)
-             {
-         if(_tcsncicmp(&szOut[i],_T("\n"),2)!=0)
-           WriteFile (GetStdHandle (nStdHandle),_T("\n"),sizeof(TCHAR),&dwWritten,NULL); 
-
-                    if(PagePrompt() != PROMPT_YES)
-                    {
-                           return;
-                    }
-                    //reset the number of lines being printed         
-                    LineCount = 0;
-         CharEL=0;
-              }
+                if(pBuf[i] == '\n')
+               {                               
+                       LineCount++; 
+                        CharEL=0;
+               }      
+                else
+                {      
+                        CharEL++;           
+                        if (CharEL>=ScreenCol)
+                        {        
+                                if (i+1<len)
+                                {
+                                        if(pBuf[i+1] != '\n') LineCount++;          
+                                }
+                                CharEL=0;
+                        }
+                }
+
+                /* FIXME : write more that one char at time */
+                WriteFile (GetStdHandle (nStdHandle),&pBuf[i],sizeof(CHAR),&dwWritten,NULL);
+               if(LineCount >= ScreenLines)
+               {
+                        if(strnicmp(&pBuf[i], "\n", 2)!=0)
+                        WriteFile (GetStdHandle (nStdHandle),"\n",sizeof(CHAR),&dwWritten,NULL); 
+
+                       if(PagePrompt() != PROMPT_YES)
+                       {
+                               return;
+                       }
+                       //reset the number of lines being printed         
+                       LineCount = 0;
+                        CharEL=0;
+               }
       
-               }
+       }
 
 #ifdef UNICODE
        free(pBuf);
index 8d4d105..957a1da 100644 (file)
@@ -321,7 +321,7 @@ static INT Overwrite (LPTSTR fn)
        INT res;
        LoadString(CMD_ModuleHandle, STRING_COPY_HELP1, szMsg, RC_STRING_MAX_SIZE);
        ConOutPrintf(szMsg,fn);
-       res = FilePromptYNA ("");
+       res = FilePromptYNA (_T(""));
        return res;
 }
  
@@ -833,7 +833,7 @@ INT cmd_copy (LPTSTR cmd, LPTSTR param)
                                nFiles++;
                                /* only print source name when more then one file */
                                if(_tcschr (arg[nSrc], _T('+')) != NULL || _tcschr (arg[nSrc], _T('*')) != NULL)
-                                       ConOutPrintf("%s\n",findBuffer.cFileName);
+                                       ConOutPrintf(_T("%s\n"),findBuffer.cFileName);
                                //LoadString(CMD_ModuleHandle, STRING_MOVE_ERROR1, szMsg, RC_STRING_MAX_SIZE);
                        }
                        else
index a760e3e..85bb80b 100644 (file)
@@ -17,7 +17,7 @@ int main (int argc, char *argv[])
 #endif
 {
 #ifdef _UNICODE
-  return _main(void);
+  return _main();
 #else
   return _main(argc, argv);
 #endif
index ac50741..00f6daf 100644 (file)
@@ -60,7 +60,7 @@ static INT Overwrite (LPTSTR fn)
        INT res;
        LoadString(CMD_ModuleHandle, STRING_MOVE_HELP1, szMsg, RC_STRING_MAX_SIZE);
        ConOutPrintf(szMsg,fn);
-       res = FilePromptYNA ("");
+       res = FilePromptYNA (_T(""));
        return res;
 }