X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=base%2Fapplications%2Fnetwork%2Fnet%2Fmain.c;h=298b875caf96245d770a8eff43c6ceacaf417da2;hp=4fe37563cac25369126e3a0906482d3439286589;hb=23a90aab5a5b4eb323a9ca0b0a267dc156528422;hpb=24087a3b01587f200479465f1f8dbd06a1ce3f1b diff --git a/base/applications/network/net/main.c b/base/applications/network/net/main.c index 4fe37563cac..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) @@ -9,6 +9,8 @@ #include "net.h" +#define MAX_BUFFER_SIZE 4096 + typedef struct _COMMAND { WCHAR *name; @@ -18,38 +20,109 @@ typedef struct _COMMAND COMMAND cmds[] = { - {L"accounts", unimplemented}, + {L"accounts", cmdAccounts}, {L"computer", unimplemented}, - {L"config", unimplemented}, - {L"continue", unimplemented}, + {L"config", cmdConfig}, + {L"continue", cmdContinue}, {L"file", unimplemented}, - {L"group", unimplemented}, + {L"group", cmdGroup}, {L"help", cmdHelp}, - {L"helpmsg", unimplemented}, - {L"localgroup", unimplemented}, + {L"helpmsg", cmdHelpMsg}, + {L"localgroup", cmdLocalGroup}, {L"name", unimplemented}, + {L"pause", cmdPause}, {L"print", unimplemented}, {L"send", unimplemented}, {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"user", 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 +ReadFromConsole( + LPWSTR lpInput, + DWORD dwLength, + BOOL bEcho) +{ + 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); + + for (p = lpInput; *p; p++) + { + if (*p == L'\x0d') + { + *p = L'\0'; + break; + } + } + + SetConsoleMode(hFile, dwOldMode); +} + + int wmain(int argc, WCHAR **argv) { PCOMMAND cmdptr; + /* Initialize the Console Standard Streams */ + ConInitStdStreams(); + if (argc < 2) { - help(); + ConResPuts(StdOut, IDS_NET_SYNTAX); return 1; } @@ -62,33 +135,13 @@ int wmain(int argc, WCHAR **argv) } } - help(); + 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; } - - - - - - - - - - - - - - - - - - -