mirror of
https://github.com/reactos/reactos.git
synced 2024-09-30 22:47:28 +00:00
Calculate the screen size correctly. Allow a file name input.
svn path=/trunk/; revision=18776
This commit is contained in:
parent
9a3202d295
commit
bc89fd6d16
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
|
|
||||||
DWORD len;
|
DWORD len;
|
||||||
LPTSTR msg = "--- continue ---";
|
LPTSTR msg = _T("--- continue ---");
|
||||||
|
|
||||||
|
|
||||||
/*handle for file and console*/
|
/*handle for file and console*/
|
||||||
|
@ -31,8 +31,8 @@ GetScreenSize (PSHORT maxx, PSHORT maxy)
|
||||||
CONSOLE_SCREEN_BUFFER_INFO csbi;
|
CONSOLE_SCREEN_BUFFER_INFO csbi;
|
||||||
|
|
||||||
GetConsoleScreenBufferInfo (hStdOut, &csbi);
|
GetConsoleScreenBufferInfo (hStdOut, &csbi);
|
||||||
*maxx = csbi.srWindow.Right;
|
*maxx = (csbi.srWindow.Right - csbi.srWindow.Left) + 1;
|
||||||
*maxy = csbi.srWindow.Bottom;
|
*maxy = (csbi.srWindow.Bottom - csbi.srWindow.Top) - 4;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,6 +85,8 @@ int main (int argc, char **argv)
|
||||||
SHORT maxx,maxy;
|
SHORT maxx,maxy;
|
||||||
SHORT line_count=0,ch_count=0;
|
SHORT line_count=0,ch_count=0;
|
||||||
INT i, last;
|
INT i, last;
|
||||||
|
HANDLE hFile = INVALID_HANDLE_VALUE;
|
||||||
|
TCHAR szFullPath[MAX_PATH];
|
||||||
|
|
||||||
/*reading/writing buffer*/
|
/*reading/writing buffer*/
|
||||||
TCHAR *buff;
|
TCHAR *buff;
|
||||||
|
@ -106,18 +108,32 @@ int main (int argc, char **argv)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
hKeyboard = CreateFile ("CONIN$", GENERIC_READ,
|
hKeyboard = CreateFile (_T("CONIN$"), GENERIC_READ,
|
||||||
0,NULL,OPEN_ALWAYS,0,0);
|
0,NULL,OPEN_ALWAYS,0,0);
|
||||||
|
|
||||||
GetScreenSize(&maxx,&maxy);
|
GetScreenSize(&maxx,&maxy);
|
||||||
|
|
||||||
buff=malloc(4096);
|
buff=malloc(4096);
|
||||||
|
|
||||||
FlushConsoleInputBuffer (hKeyboard);
|
FlushConsoleInputBuffer (hKeyboard);
|
||||||
|
|
||||||
|
if(argc > 1)
|
||||||
|
{
|
||||||
|
GetFullPathName(argv[1], MAX_PATH, szFullPath, NULL);
|
||||||
|
hFile = CreateFile (szFullPath, GENERIC_READ,
|
||||||
|
0,NULL,OPEN_ALWAYS,0,0);
|
||||||
|
}
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
bRet = ReadFile(hStdIn,buff,4096,&dwRead,NULL);
|
if(hFile != INVALID_HANDLE_VALUE)
|
||||||
|
{
|
||||||
|
bRet = ReadFile(hFile,buff,4096,&dwRead,NULL);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bRet = ReadFile(hStdIn,buff,4096,&dwRead,NULL);
|
||||||
|
}
|
||||||
|
|
||||||
for(last=i=0;i<dwRead && bRet;i++)
|
for(last=i=0;i<dwRead && bRet;i++)
|
||||||
{
|
{
|
||||||
|
@ -144,6 +160,7 @@ int main (int argc, char **argv)
|
||||||
|
|
||||||
free (buff);
|
free (buff);
|
||||||
CloseHandle (hKeyboard);
|
CloseHandle (hKeyboard);
|
||||||
|
CloseHandle (hFile);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue