X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=base%2Fapplications%2Fnetwork%2Fnet%2Fmain.c;h=298b875caf96245d770a8eff43c6ceacaf417da2;hp=cc93fea82fde96e01733975cbe8060ad2ab41492;hb=23a90aab5a5b4eb323a9ca0b0a267dc156528422;hpb=8069b8c90ddf941e9877bb4c68645443e4388b8a diff --git a/base/applications/network/net/main.c b/base/applications/network/net/main.c index cc93fea82fd..298b875caf9 100644 --- a/base/applications/network/net/main.c +++ b/base/applications/network/net/main.c @@ -1,7 +1,7 @@ /* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS net command - * FILE: + * FILE: base/applications/network/net/main.c * PURPOSE: * * PROGRAMMERS: Magnus Olsen (greatlord@reactos.org) @@ -22,10 +22,10 @@ COMMAND cmds[] = { {L"accounts", cmdAccounts}, {L"computer", unimplemented}, - {L"config", unimplemented}, + {L"config", cmdConfig}, {L"continue", cmdContinue}, {L"file", unimplemented}, - {L"group", unimplemented}, + {L"group", cmdGroup}, {L"help", cmdHelp}, {L"helpmsg", cmdHelpMsg}, {L"localgroup", cmdLocalGroup}, @@ -36,28 +36,80 @@ COMMAND cmds[] = {L"session", unimplemented}, {L"share", unimplemented}, {L"start", cmdStart}, - {L"statistics", unimplemented}, + {L"statistics", cmdStatistics}, {L"stop", cmdStop}, {L"time", unimplemented}, - {L"use", unimplemented}, + {L"use", cmdUse}, {L"user", cmdUser}, {L"view", unimplemented}, {NULL, NULL} }; + +VOID +PrintPaddedResourceString( + UINT uID, + INT nPaddedLength) +{ + INT nLength; + + nLength = ConResPuts(StdOut, uID); + if (nLength < nPaddedLength) + PrintPadding(L' ', nPaddedLength - nLength); +} + + +VOID +PrintPadding( + WCHAR chr, + INT nPaddedLength) +{ + INT i; + WCHAR szMsgBuffer[MAX_BUFFER_SIZE]; + + for (i = 0; i < nPaddedLength; i++) + szMsgBuffer[i] = chr; + szMsgBuffer[nPaddedLength] = UNICODE_NULL; + + ConPuts(StdOut, szMsgBuffer); +} + + VOID -PrintResourceString( - INT resID, - ...) +ReadFromConsole( + LPWSTR lpInput, + DWORD dwLength, + BOOL bEcho) { - WCHAR szMsgBuf[MAX_BUFFER_SIZE]; - va_list arg_ptr; + DWORD dwOldMode; + DWORD dwRead = 0; + HANDLE hFile; + LPWSTR p; + PCHAR pBuf; + + pBuf = HeapAlloc(GetProcessHeap(), 0, dwLength - 1); + ZeroMemory(lpInput, dwLength * sizeof(WCHAR)); + hFile = GetStdHandle(STD_INPUT_HANDLE); + GetConsoleMode(hFile, &dwOldMode); + + SetConsoleMode(hFile, ENABLE_LINE_INPUT | (bEcho ? ENABLE_ECHO_INPUT : 0)); + + ReadFile(hFile, (PVOID)pBuf, dwLength - 1, &dwRead, NULL); + + MultiByteToWideChar(CP_OEMCP, 0, pBuf, dwRead, lpInput, dwLength - 1); + HeapFree(GetProcessHeap(), 0, pBuf); - va_start(arg_ptr, resID); - LoadStringW(GetModuleHandle(NULL), resID, szMsgBuf, MAX_BUFFER_SIZE); - vwprintf(szMsgBuf, arg_ptr); - va_end(arg_ptr); + for (p = lpInput; *p; p++) + { + if (*p == L'\x0d') + { + *p = L'\0'; + break; + } + } + + SetConsoleMode(hFile, dwOldMode); } @@ -65,9 +117,12 @@ int wmain(int argc, WCHAR **argv) { PCOMMAND cmdptr; + /* Initialize the Console Standard Streams */ + ConInitStdStreams(); + if (argc < 2) { - PrintResourceString(IDS_NET_SYNTAX); + ConResPuts(StdOut, IDS_NET_SYNTAX); return 1; } @@ -80,13 +135,13 @@ int wmain(int argc, WCHAR **argv) } } - PrintResourceString(IDS_NET_SYNTAX); + ConResPuts(StdOut, IDS_NET_SYNTAX); return 1; } INT unimplemented(INT argc, WCHAR **argv) { - puts("This command is not implemented yet"); + ConPuts(StdOut, L"This command is not implemented yet\n"); return 1; }