Remove extra \r put by hand in some console output functions, so that we use there only \n.
But modify the ConWrite function so that, if we redirect output to something else than a console
(e.g. redirect to a file or to a serial console via ... > AUX), newline characters \n get converted
into \r\n automatically.
What you get, for instance, is: https://imageshack.com/a/img853/5834/l34.png
svn path=/trunk/; revision=59411
Fix the default input & output console modes. Now, you can use the command interpreter via serial port redirection, by:
1- Enabling a serial port on the machine on which ReactOS runs.
2- Launching:
cmd > AUX
at a command prompt.
svn path=/trunk/; revision=59405
And finally...
...
... fix whitespace, part 6/6 !!!! (convert tabs into 4-space indent).
Really, CMD is, together with win32k, the worst indented project I've ever seen.
You have lots of non-sensical extra newlines put in the middle of the code,
weird indentation made by a mix of tabs / spaces which take either 4 or 8 or even (!!)
2 spaces per indentation level; sometimes some guy mixed his space key with his tab key
to add a space between a word and another one; a mix of some sh*tty code styles (K&R and personal ones),
many many times no space between a logical keyword and the operand on which it applies, etc... etc...
I tried to put some sense in it, but I may have forgotten some insidious tabs somewhere...
svn path=/trunk/; revision=59389
- Simplify CommandColor and document it. Checking whether one sets the same color for both foreground and background is now only checked inside SetScreenColor.
Based on a patch by Victor
CORE-7191 #resolve #comment Committed in rev.59055.
- Fix handling of /T:<color> option when starting cmd.exe
- Remove unneeded error string.
svn path=/trunk/; revision=59055
* This significantly shrinks the dependency tracking data and the compiled objects size, which speeds up the whole build process (especially the incremental builds) accelerating the daily development as a result.
* No intended code changes, ~27% smaller build. Enjoy ;)
svn path=/trunk/; revision=58214
Fix first argument of the target program so that paths with spaces aren't
reparsed by the c runtime as multiple arguments.
svn path=/trunk/; revision=56716
Fix several bugs in the copy command:
- "x:" is not a valid source path (see bug #5709)
- when appending files using "+", cmd must distinguish between + as operator and + as part of the source file, when being put in "". For that reason the tokenizer was modified to make + a seperate token, which is replaced with | when creating the string of multiple files (since + is a valid file character)
- ? was not correctly handled when passed in the output file name
- factor out the code to create the file name from wildcards and make it readable (no, p, q, r are NOT reasonable variable names!)
- Move code out of the loop that doesn't belong there
- Make sure the file names are printed when multiple files are copied or appended
- write the count of written files (which is 1 when appending), not source files after the copy process is done
- Remove an excessive newline when writing strings with ConPuts()
- Improve readability a bit
svn path=/trunk/; revision=56346
- get version.h and buildno.h out of precompiled headers, to avoid rebuilding the whole module each time we reconfigure the build
svn path=/trunk/; revision=53716
- Carlo Bramix: MultiByteToWideChar() has just 6 and not 8 parameters, probably it's a forgetten copy/past from WideCharToMultiByte().
- Carlo Bramix: ConvertULargeInteger() should have its parameter 'Len' declared as UINT rather than 'INT'. This fixes a signed/unsigned mismatch warning.
See issue #5678 for more details.
svn path=/trunk/; revision=49873
Use the full name we get from SearchForExecutable when building the command line for CreateProcess so we get proper name in argv[0] later.
svn path=/trunk/; revision=49020
44501 (tkreuzer)
[NDK]
- Add CLIENT_ID32/64
- Create explicit 32/64 bit versions of PEB, GDI_TEB_BATCH and TEB, using macros.
- Fix some member names.
44503 (tkreuzer)
[CMD]
Fix a teb member name
44504 (tkreuzer)
[NTSOKRNL]
Fix a teb member name
44506 (tkreuzer)
[NDK]
fix a typo in the TEB definition
44511 (tkreuzer)
[NDK]
- Add Wx86ThreadState
- Add WinXP version of ACTIVATION_CONTEXT_STACK
- rtltypes doesn't depend on pstypes, but the opposite way around now
44512 (tkreuzer)
[NDK]
Fix some dependencies
44521 (tkreuzer)
[NTDKK]
- Don't use PEB::FastPeb(Un)LockRoutine, these members are deprecated since Windows 2003, use RtlEnter/LeaveCriticalSection instead.
44523 (tkreuzer)
[NTDLL]
Fix usage of PEB::KernelCallbacktable. It's a PVOID.
44524 (tkreuzer)
NDK]
- Add missing TEB member for Vista
44525 (tkreuzer)
[NDK]
Fix a TEB array size.
44526 (tkreuzer)
[USER32]
More fix of TEB::KernelCallbackTable usage
svn path=/trunk/; revision=46434
- ntifs.h & cmdata.h : Don't use array size of 0. Fixes C4200.
- wdm.h: Correct definition of 64-bit SLIST_HEADER. Add explicit casts to avoid /W4 warnings in RtlEnlargedUnsignedDivide.
- winddk.h: Add MSVC intrinsic __readfsbyte for KeGetCurrentProcessorNumber. Misc fixes.
- Fix various msvc issues in cmd, setupapi, usetup, win32csr, winlogon, msafd, ws2_32 and ext2lib, most notably:
- cmd & doskey: Don't use fishy gcc extension to allocate variable-sized arrays from the stack. Use the heap instead.
- Disable warning C4733 for mingw_main too (was only done for mingw_wmain previously).
- advapi32: Pass the correct handles to TRACE -- spotted by MSVC.
- Set the specified register in ecx in MSVC versions of Ke386Wrmsr and Ke386Rdmsr instead of reading from/writing to a random MSR. Yay /W4.
svn path=/trunk/; revision=42342
- Changed type of return values from BOOL to INT, with 0 indicating success and any other value indicating failure. If the left side of an || operator returns nonzero, errorlevel is set to that value.
- The return value of a batch file or FOR is the return value of the last command executed in it. An empty batch file returns 0, unless it was CALLed, in which case it returns errorlevel.
- CALL sets errorlevel to the return value of whatever was called.
- Running a GUI program doesn't change errorlevel, but always returns 0.
- CMD /C uses the command's return value, not errorlevel, as the process exit code.
svn path=/trunk/; revision=40474
- CLS: Fill console with current color rather than original; if standard output is not a console, print a form-feed character.
- COLOR: If standard output is not a console, do nothing.
svn path=/trunk/; revision=40272
- Do %envvar% expansions in CMD /C or /K commands
- Make SETLOCAL recognize ENABLEEXTENSIONS and DISABLEEXTENSIONS, although it doesn't do anything yet
- Make VERIFY set the errorlevel (documented in SETLOCAL /?). Also make it recognize when ON/OFF is followed by space
- Make ECHOSERR actually print to stderr, not stdout
- Make echoed display of ( ... ) blocks look nicer (Bug 4022)
- Fix some other minor display bugs
svn path=/trunk/; revision=40244
- Use NULL as the lpVerb to get the default action ("open" is not necessarily the default)
- Allow passing parameters besides just the file name
svn path=/trunk/; revision=40148
- Fix overflow bug in FREE command that caused values >= 4GB to wrap around.
- A little simplification of ConvertULargeInteger function
svn path=/trunk/; revision=40094
- Remove bIsBatch variable, and just check for bc != NULL instead.
- Since Batch doesn't return until the batch file is finished, CMD /C no longer needs to call ProcessInput.
- Don't bother loading ntdll.dll on Windows 98; it doesn't export the functions we want to use from it.
svn path=/trunk/; revision=39861
- Implement IF /I option, IF CMDEXTVERSION, and generic comparisons (EQU etc)
- Make IF ERRORLEVEL return true if the errorlevel is greater than the number
- Remove hacked support for multi-line IF blocks from batch.c
svn path=/trunk/; revision=38280
- a hack in cmd_mkdir that was already obsolete a decade ago
- to distinguish "echo" from "echo.", but that is the wrong way to implement this anyway. There's nothing particularly special about the period, "echo" is just one of those commands that is lenient about where its parameters begin, and when it echos a line, the first character (usually a space, but in the case of "echo." a period) is skipped.
svn path=/trunk/; revision=35647
- ReadBatchLine: Don't strip the trailing \n, the parser needs it. Remove handling of :labels and @quiet commands, now done by the parser.
- ReadCommand: Add a \n to the line. Move PrintPrompt call out, since the prompt shouldn't be printed for additional lines read in a command beyond the first.
svn path=/trunk/; revision=35530