add a --process parameter to redirect stdout to dbgout

usage: dbgprint --process version_winetest.exe

svn path=/trunk/; revision=35920
This commit is contained in:
Christoph von Wittich 2008-09-04 07:58:28 +00:00
parent 0f370b9bf7
commit a073152ea9

View file

@ -5,11 +5,13 @@
* FILE: tools/dbgprint/dbgprint.c
* PURPOSE: outputs a text via DbgPrint API
* PROGRAMMERS: Johannes Anderwald (johannes.anderwald@student.tugraz.at)
* Christoph von Wittich (Christoph_vW@ReactOS.org)
*/
#include <windows.h>
#include <tchar.h>
#include <debug.h>
#include <stdio.h>
int _tmain(int argc, TCHAR ** argv)
{
@ -29,30 +31,48 @@ int _tmain(int argc, TCHAR ** argv)
return -1;
}
buf = HeapAlloc(GetProcessHeap(), 0, (bufsize+1) * sizeof(TCHAR));
if (!buf)
if (_tcsstr(argv[1], "--process") && (argc == 3))
{
return -1;
}
char psBuffer[128];
FILE *pPipe;
offset = 0;
for(i = 1; i < argc; i++)
{
int length = _tcslen(argv[i]);
_tcsncpy(&buf[offset], argv[i], length);
offset += length;
if (i + 1 < argc)
pPipe = _tpopen(argv[2], "r");
if (pPipe != NULL)
{
buf[offset] = _T(' ');
while(fgets(psBuffer, 128, pPipe))
{
OutputDebugStringA(psBuffer);
}
_pclose(pPipe);
}
else
{
buf[offset] = _T('\n');
buf[offset+1] = _T('\0');
}
offset++;
}
OutputDebugString(buf);
HeapFree(GetProcessHeap(), 0, buf);
else
{
buf = HeapAlloc(GetProcessHeap(), 0, (bufsize+1) * sizeof(TCHAR));
if (!buf)
{
return -1;
}
offset = 0;
for(i = 1; i < argc; i++)
{
int length = _tcslen(argv[i]);
_tcsncpy(&buf[offset], argv[i], length);
offset += length;
if (i + 1 < argc)
{
buf[offset] = _T(' ');
}
else
{
buf[offset] = _T('\n');
buf[offset+1] = _T('\0');
}
offset++;
}
OutputDebugString(buf);
HeapFree(GetProcessHeap(), 0, buf);
}
return 0;
}