Author: hbelusca
Date: Sun Mar 23 02:24:33 2014
New Revision: 62550
URL:
http://svn.reactos.org/svn/reactos?rev=62550&view=rev
Log:
[NOTEVIL]
- Convert our goode olde ReactOS Easter Egg "notevil" app to unicode.
- Remove .rbuild file.
- Code formatting.
Removed:
trunk/rosapps/applications/notevil/notevil.rbuild
Modified:
trunk/rosapps/applications/notevil/CMakeLists.txt
trunk/rosapps/applications/notevil/notevil.c
trunk/rosapps/applications/notevil/notevil.rc
Modified: trunk/rosapps/applications/notevil/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/notevil/CMake…
==============================================================================
--- trunk/rosapps/applications/notevil/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/rosapps/applications/notevil/CMakeLists.txt [iso-8859-1] Sun Mar 23 02:24:33
2014
@@ -1,5 +1,5 @@
add_executable(notevil notevil.c notevil.rc)
-set_module_type(notevil win32cui)
+set_module_type(notevil win32cui UNICODE)
add_importlibs(notevil user32 msvcrt kernel32)
add_cd_file(TARGET notevil DESTINATION reactos/system32 FOR all)
Modified: trunk/rosapps/applications/notevil/notevil.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/notevil/notev…
==============================================================================
--- trunk/rosapps/applications/notevil/notevil.c [iso-8859-1] (original)
+++ trunk/rosapps/applications/notevil/notevil.c [iso-8859-1] Sun Mar 23 02:24:33 2014
@@ -24,243 +24,207 @@
* 19990411 EA
* 19990515 EA
*/
-//#define UNICODE
+
#include <windows.h>
#include <stdio.h>
-#include <stdlib.h>
-#include <tchar.h>
#include "resource.h"
-LPCTSTR app_name = _TEXT("notevil");
-
-HANDLE myself;
-HANDLE ScreenBuffer;
+// #define DISPLAY_COORD
+
+LPCWSTR app_name = L"notevil";
+
+HANDLE myself;
+HANDLE ScreenBuffer;
CONSOLE_SCREEN_BUFFER_INFO ScreenBufferInfo;
-HANDLE WaitableTimer;
-
-void
-WriteStringAt(
- LPTSTR lpString,
- COORD xy,
- WORD wColor
- )
-{
- DWORD cWritten = 0;
- WORD wLen = lstrlen(lpString);
-
- if (0 == wLen)
- return;
- // don't bother writing text when erasing
- if( wColor )
- WriteConsoleOutputCharacter( ScreenBuffer,
- lpString,
- wLen,
- xy,
- & cWritten
- );
- FillConsoleOutputAttribute(
- ScreenBuffer,
- wColor,
- wLen,
- xy,
- & cWritten
- );
+HANDLE WaitableTimer;
+
+VOID
+WriteStringAt(LPWSTR lpString,
+ COORD xy,
+ WORD wColor)
+{
+ DWORD cWritten = 0;
+ WORD wLen;
+
+ if (!lpString || *lpString == 0) return;
+
+ wLen = wcslen(lpString);
+
+ /* Don't bother writing text when erasing */
+ if (wColor)
+ {
+ WriteConsoleOutputCharacterW(ScreenBuffer,
+ lpString,
+ wLen,
+ xy,
+ &cWritten);
+ }
+
+ FillConsoleOutputAttribute(ScreenBuffer,
+ wColor,
+ wLen,
+ xy,
+ &cWritten);
}
#ifdef DISPLAY_COORD
-void
+VOID
WriteCoord(COORD c)
{
- COORD xy = {0,0};
- TCHAR buf [40];
-
- wsprintf(
- buf,
- _TEXT("x=%02d y=%02d"),
- c.X,
- c.Y
- );
- WriteStringAt(
- buf,
- xy,
- (BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE)
- );
+ COORD xy = {0,0};
+ WCHAR buf[40];
+
+ wsprintf(buf, L"x=%02d y=%02d", c.X, c.Y);
+
+ WriteStringAt(buf, xy,
+ BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE);
}
#endif /* def DISPLAY_COORD */
-INT
-GetNextString(
- LPTSTR Buffer,
- INT BufferSize,
- DWORD *Index
- )
-{
- if (RES_LAST_INDEX == *Index)
- {
- *Index = RES_FIRST_INDEX;
- }
- else
- {
- ++*Index;
- }
- LoadString(
- myself,
- *Index,
- Buffer,
- BufferSize
- );
- return 0;
+VOID
+GetNextString(LPWSTR Buffer,
+ INT BufferSize,
+ PDWORD Index)
+{
+ if (RES_LAST_INDEX == *Index)
+ *Index = RES_FIRST_INDEX;
+ else
+ ++*Index;
+
+ LoadStringW(myself, *Index, Buffer, BufferSize);
}
VOID
DisplayTitle(VOID)
{
- LPTSTR szTitle = _TEXT("ReactOS Coders Console Parade");
- COORD xy;
-
- xy.X = (ScreenBufferInfo.dwSize.X - lstrlen(szTitle)) / 2;
- xy.Y = ScreenBufferInfo.dwSize.Y / 2;
-
- WriteStringAt(
- szTitle,
- xy,
- (FOREGROUND_GREEN | FOREGROUND_INTENSITY)
- );
+ LPWSTR szTitle = L"ReactOS Coders Console Parade";
+ COORD xy;
+
+ xy.X = (ScreenBufferInfo.dwSize.X - wcslen(szTitle)) / 2;
+ xy.Y = ScreenBufferInfo.dwSize.Y / 2;
+
+ WriteStringAt(szTitle, xy,
+ FOREGROUND_GREEN | FOREGROUND_INTENSITY);
}
#define RES_DELAY_CHANGE 12
#define RES_BUFFER_SIZE 1024
-void
-MainLoop(void)
-{
- TCHAR NameString [RES_BUFFER_SIZE];
- DWORD NameIndex = 1;
- INT NameLength = 0;
- COORD xy;
- INT n = RES_DELAY_CHANGE;
- INT dir_y = 1;
- INT dir_x = 1;
- WORD wColor = 1;
-
- xy.X = ScreenBufferInfo.dwSize.X / 2;
- xy.Y = ScreenBufferInfo.dwSize.Y / 2;
-
- for ( ; 1; ++n )
- {
- if (n == RES_DELAY_CHANGE)
- {
- n = GetNextString(
- NameString,
- RES_BUFFER_SIZE,
- & NameIndex
- );
- NameLength = lstrlen(NameString);
- wColor++;
- if ((wColor & 0x000F) == 0)
- wColor = 1;
- }
- if (xy.X == 0)
- {
- if (dir_x == -1)
- dir_x = 1;
- }
- else if (xy.X >= ScreenBufferInfo.dwSize.X - NameLength - 1)
- {
- if (dir_x == 1)
- dir_x = -1;
- }
- xy.X += dir_x;
-
- if (xy.Y == 0)
- {
- if (dir_y == -1)
- dir_y = 1;
- }
- else if (xy.Y >= ScreenBufferInfo.dwSize.Y - 1)
- {
- if (dir_y == 1)
- dir_y = -1;
- }
- xy.Y += dir_y;
+VOID
+MainLoop(VOID)
+{
+ WCHAR NameString[RES_BUFFER_SIZE];
+ DWORD NameIndex = 0;
+ INT NameLength = 0;
+ COORD xy;
+ INT n = RES_DELAY_CHANGE;
+ INT dir_y = 1;
+ INT dir_x = 1;
+ WORD wColor = 1;
+
+ xy.X = ScreenBufferInfo.dwSize.X / 2;
+ xy.Y = ScreenBufferInfo.dwSize.Y / 2;
+
+ for ( ; 1; ++n )
+ {
+ if (n == RES_DELAY_CHANGE)
+ {
+ n = 0;
+
+ GetNextString(NameString,
+ RES_BUFFER_SIZE,
+ &NameIndex);
+ NameLength = wcslen(NameString);
+
+ wColor++;
+ if ((wColor & 0x000F) == 0)
+ wColor = 1;
+ }
+ if (xy.X == 0)
+ {
+ if (dir_x == -1)
+ dir_x = 1;
+ }
+ else if (xy.X >= ScreenBufferInfo.dwSize.X - NameLength - 1)
+ {
+ if (dir_x == 1)
+ dir_x = -1;
+ }
+ xy.X += dir_x;
+
+ if (xy.Y == 0)
+ {
+ if (dir_y == -1)
+ dir_y = 1;
+ }
+ else if (xy.Y >= ScreenBufferInfo.dwSize.Y - 1)
+ {
+ if (dir_y == 1)
+ dir_y = -1;
+ }
+ xy.Y += dir_y;
+
#ifdef DISPLAY_COORD
- WriteCoord(xy);
+ WriteCoord(xy);
#endif /* def DISPLAY_COORD */
- DisplayTitle();
- WriteStringAt(
- NameString,
- xy,
- wColor
- );
- WaitForSingleObject( WaitableTimer, INFINITE );
- WriteStringAt(
- NameString,
- xy,
- 0
- );
- }
-}
-
-
-int
-main(
- int argc,
- char *argv []
- )
-{
- LARGE_INTEGER lint;
- DWORD Written;
- COORD Coord = { 0, 0 };
-
- myself = GetModuleHandle(NULL);
-
- GetConsoleScreenBufferInfo (GetStdHandle(STD_OUTPUT_HANDLE),
- &ScreenBufferInfo);
- ScreenBufferInfo.dwSize.X = ScreenBufferInfo.srWindow.Right -
ScreenBufferInfo.srWindow.Left + 1;
- ScreenBufferInfo.dwSize.Y = ScreenBufferInfo.srWindow.Bottom -
ScreenBufferInfo.srWindow.Top + 1;
- ScreenBuffer = CreateConsoleScreenBuffer(
- GENERIC_WRITE,
- 0,
- NULL,
- CONSOLE_TEXTMODE_BUFFER,
- NULL
- );
- if (INVALID_HANDLE_VALUE == ScreenBuffer)
- {
- _ftprintf(
- stderr,
- _TEXT("%s: could not create a new screen buffer\n"),
- app_name
- );
- return EXIT_FAILURE;
- }
- // Fill buffer with black background
- FillConsoleOutputAttribute( ScreenBuffer,
- 0,
- ScreenBufferInfo.dwSize.X * ScreenBufferInfo.dwSize.Y,
- Coord,
- &Written );
-
- WaitableTimer = CreateWaitableTimer( NULL, FALSE, NULL );
- if( WaitableTimer == INVALID_HANDLE_VALUE )
- {
- printf( "CreateWaitabletimer() failed\n" );
- return 1;
- }
- lint.QuadPart = -2000000;
- if( SetWaitableTimer( WaitableTimer, &lint, 200, NULL, NULL, FALSE ) == FALSE )
- {
- printf( "SetWaitableTimer() failed: 0x%lx\n", GetLastError() );
- return 2;
- }
- SetConsoleActiveScreenBuffer(ScreenBuffer);
- MainLoop();
- CloseHandle(ScreenBuffer);
- return EXIT_SUCCESS;
-}
-
+
+ DisplayTitle();
+ WriteStringAt(NameString, xy, wColor);
+ WaitForSingleObject(WaitableTimer, INFINITE);
+ WriteStringAt(NameString, xy, 0);
+ }
+}
+
+
+int wmain(int argc, WCHAR* argv[])
+{
+ LARGE_INTEGER lint;
+ DWORD Written;
+ COORD Coord = { 0, 0 };
+
+ myself = GetModuleHandle(NULL);
+
+ GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),
+ &ScreenBufferInfo);
+ ScreenBufferInfo.dwSize.X = ScreenBufferInfo.srWindow.Right -
ScreenBufferInfo.srWindow.Left + 1;
+ ScreenBufferInfo.dwSize.Y = ScreenBufferInfo.srWindow.Bottom -
ScreenBufferInfo.srWindow.Top + 1;
+ ScreenBuffer = CreateConsoleScreenBuffer(GENERIC_WRITE,
+ 0,
+ NULL,
+ CONSOLE_TEXTMODE_BUFFER,
+ NULL);
+ if (ScreenBuffer == INVALID_HANDLE_VALUE)
+ {
+ wprintf(L"%s: could not create a new screen buffer\n", app_name);
+ return EXIT_FAILURE;
+ }
+
+ /* Fill buffer with black background */
+ FillConsoleOutputAttribute(ScreenBuffer,
+ 0,
+ ScreenBufferInfo.dwSize.X * ScreenBufferInfo.dwSize.Y,
+ Coord,
+ &Written);
+
+ WaitableTimer = CreateWaitableTimer(NULL, FALSE, NULL);
+ if (WaitableTimer == INVALID_HANDLE_VALUE)
+ {
+ wprintf(L"CreateWaitabletimer() failed\n");
+ return 1;
+ }
+ lint.QuadPart = -2000000;
+ if (!SetWaitableTimer(WaitableTimer, &lint, 200, NULL, NULL, FALSE))
+ {
+ wprintf(L"SetWaitableTimer() failed: 0x%lx\n", GetLastError());
+ return 2;
+ }
+ SetConsoleActiveScreenBuffer(ScreenBuffer);
+ MainLoop();
+ CloseHandle(ScreenBuffer);
+ return EXIT_SUCCESS;
+}
/* EOF */
Removed: trunk/rosapps/applications/notevil/notevil.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/notevil/notev…
==============================================================================
--- trunk/rosapps/applications/notevil/notevil.rbuild [iso-8859-1] (original)
+++ trunk/rosapps/applications/notevil/notevil.rbuild (removed)
@@ -1,5 +0,0 @@
-<module name="notevil" type="win32cui"
installbase="system32" installname="notevil.exe">
- <include base="notevil">.</include>
- <library>user32</library>
- <file>notevil.c</file>
- <file>notevil.rc</file>
Modified: trunk/rosapps/applications/notevil/notevil.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/notevil/notev…
==============================================================================
--- trunk/rosapps/applications/notevil/notevil.rc [iso-8859-1] (original)
+++ trunk/rosapps/applications/notevil/notevil.rc [iso-8859-1] Sun Mar 23 02:24:33 2014
@@ -1,7 +1,7 @@
-#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Coders Console Parade\0"
-#define REACTOS_STR_INTERNAL_NAME "notevil\0"
-#define REACTOS_STR_ORIGINAL_FILENAME "notevil.exe\0"
+#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Coders Console Parade"
+#define REACTOS_STR_INTERNAL_NAME "notevil"
+#define REACTOS_STR_ORIGINAL_FILENAME "notevil.exe"
#include <reactos/version.rc>
/*
@@ -20,69 +20,69 @@
STRINGTABLE MOVEABLE
BEGIN
- 1, "Boudewijn Dekker (Ariadne)"
- 2, "Robert Bergkvist (FragDance Galore)"
- 3, "Arindam Das"
- 4, "Boudewijn Dekker"
- 5, "Jason Eager"
- 6, "Jason Filby"
- 7, "Rex Jolliff"
- 8, "Eric Kohl"
- 9, "Hans Kremer"
- 10, "Frederik Leemans"
- 11, "Jean Michault"
- 12, "Jim Noeth"
- 13, "Brian Palmer"
- 14, "Matt Pyne"
- 15, "Jason Weiler"
+ 1, "Boudewijn Dekker (Ariadne)"
+ 2, "Robert Bergkvist (FragDance Galore)"
+ 3, "Arindam Das"
+ 4, "Boudewijn Dekker"
+ 5, "Jason Eager"
+ 6, "Jason Filby"
+ 7, "Rex Jolliff"
+ 8, "Eric Kohl"
+ 9, "Hans Kremer"
+ 10, "Frederik Leemans"
+ 11, "Jean Michault"
+ 12, "Jim Noeth"
+ 13, "Brian Palmer"
+ 14, "Matt Pyne"
+ 15, "Jason Weiler"
END
STRINGTABLE MOVEABLE
BEGIN
- 16, "David Welch"
- 17, "Emanuele Aliberti"
- 18, "Phillip Susi"
- 19, "Paolo Pantaleo"
- 20, "Hernan Ochoa"
- 21, "Casper Hornstrup"
- 22, "Steven Edwards"
- 23, "KJK::Hyperion"
- 24, "Robert Dickenson"
- 25, "Eugene Ingerman"
- 26, "Guido de Jong"
- 27, "Jurgen van Gael"
- 28, "Marty Dill"
- 29, "Ge van Geldorp"
- 30, "Richard Campbell"
+ 16, "David Welch"
+ 17, "Emanuele Aliberti"
+ 18, "Phillip Susi"
+ 19, "Paolo Pantaleo"
+ 20, "Hernan Ochoa"
+ 21, "Casper Hornstrup"
+ 22, "Steven Edwards"
+ 23, "KJK::Hyperion"
+ 24, "Robert Dickenson"
+ 25, "Eugene Ingerman"
+ 26, "Guido de Jong"
+ 27, "Jurgen van Gael"
+ 28, "Marty Dill"
+ 29, "Ge van Geldorp"
+ 30, "Richard Campbell"
END
STRINGTABLE MOVEABLE
BEGIN
- 31, "Gunnar Andre' Dalsnes"
- 32, "Aleksey Bragin"
- 33, "Royce Mitchell III"
- 34, "Mark Tempel"
- 35, "Art Yerkes"
- 36, "Martin Fuchs"
- 37, "Vizzini"
- 38, "Filip Navara"
- 39, "Andrew Greenwood"
- 40, "Thomas Weidenmueller"
- 41, "Jonathan Wilson"
- 42, "Alex Ionescu"
- 43, "Jim Tabor"
- 44, "Magnus Olsen"
- 45, "Herve Poussineau"
+ 31, "Gunnar Andre' Dalsnes"
+ 32, "Aleksey Bragin"
+ 33, "Royce Mitchell III"
+ 34, "Mark Tempel"
+ 35, "Art Yerkes"
+ 36, "Martin Fuchs"
+ 37, "Vizzini"
+ 38, "Filip Navara"
+ 39, "Andrew Greenwood"
+ 40, "Thomas Weidenmueller"
+ 41, "Jonathan Wilson"
+ 42, "Alex Ionescu"
+ 43, "Jim Tabor"
+ 44, "Magnus Olsen"
+ 45, "Herve Poussineau"
END
STRINGTABLE MOVEABLE
BEGIN
- 46, "Christoph von Wittich"
- 47, "Brandon Turner"
- 48, "Ged Murphy"
- 49, "Klemens R. Friedl"
- 50, "Maarten Bosma"
- 51, "Saveliy Tretiakov"
+ 46, "Christoph von Wittich"
+ 47, "Brandon Turner"
+ 48, "Ged Murphy"
+ 49, "Klemens R. Friedl"
+ 50, "Maarten Bosma"
+ 51, "Saveliy Tretiakov"
END
/* EOF */