mirror of
https://github.com/reactos/reactos
synced 2025-10-07 00:42:44 +02:00
Compare commits
51 Commits
backups/av
...
ReactOS-0.
Author | SHA1 | Date | |
---|---|---|---|
|
0c220d4fd1 | ||
|
a031e65d53 | ||
|
5fbcef1827 | ||
|
c5e3a45dcc | ||
|
ee459257ba | ||
|
fdf8e442d4 | ||
|
9c8c98dfd7 | ||
|
811d5bf9da | ||
|
860ebd054c | ||
|
2d1cee3b88 | ||
|
3c7fba67b1 | ||
|
cdf612389f | ||
|
003c8c95f1 | ||
|
bed4322e4e | ||
|
eb72b59772 | ||
|
b49ba408a6 | ||
|
ebe5d15ed9 | ||
|
79eccbdcdb | ||
|
7749dfb461 | ||
|
cdbf02d488 | ||
|
bc8bb0d085 | ||
|
1c8e8de903 | ||
|
fa1e1771a5 | ||
|
6b7b16e01b | ||
|
d1168176b4 | ||
|
c11271c023 | ||
|
1c8684461c | ||
|
4d457c9dc4 | ||
|
28d1719cd5 | ||
|
433b1d4e05 | ||
|
5c29ec3c44 | ||
|
5b0fc40638 | ||
|
a6306c32d6 | ||
|
bf77596322 | ||
|
977cc2d0fc | ||
|
52ba40cb08 | ||
|
d6bd4d9ba4 | ||
|
d753f535be | ||
|
75b087bae5 | ||
|
9da859fa4a | ||
|
0a1eb79a79 | ||
|
0342ebba27 | ||
|
d6eb19c98d | ||
|
0a411dd403 | ||
|
73812a4562 | ||
|
fbf35fff6d | ||
|
952147b472 | ||
|
9f18242f83 | ||
|
e2ce776f2b | ||
|
3a7effbf57 | ||
|
43b3f2a702 |
@@ -1,2 +0,0 @@
|
||||
*.ncb
|
||||
*.opt
|
102
msvc6/README.txt
102
msvc6/README.txt
@@ -1,102 +0,0 @@
|
||||
ReactOS Microsoft Visual C/C++ 6.0 IDE files
|
||||
|
||||
This is the Microsoft Visual C/C++ 6.0 project workspace and project
|
||||
files for a few of the ReactOS binaries. They are ONLY included as a
|
||||
convenience, and is NOT to be considered supported, or even correct.
|
||||
If you build a binary that misbehaves using these files, you _might_
|
||||
be able to get in touch with someone to fix the problem
|
||||
BUT DO NOT COUNT ON IT!
|
||||
|
||||
The only supported build system for ReactOS is the one documented at
|
||||
www.reactos.com.
|
||||
|
||||
------------------------------------------------------------------
|
||||
Please, before you start playing with this, read the whole of
|
||||
this document.
|
||||
|
||||
Before you can use these project files, you _need_ to make a successful
|
||||
build using the normal ReactOS build system. There are some vital files
|
||||
that needs to be created, and currently only the normal build creates these.
|
||||
|
||||
Once that is done, you need to generate the kernel-mode service "table"
|
||||
file by running nmake (from this point on you can use the "native"
|
||||
MSVC tools) from the directory MSVC6\iface\native.
|
||||
This will generate MSVC6\ntoskrnl\nt_zw_msvc.c, an MSVC compatible inline-
|
||||
assembler version of the file otherwise known as reactos\ntoskrnl\nt\zw.c.
|
||||
|
||||
Next, go to def_converter and run nmake. This builds the tool to convert
|
||||
the .def files for HAL and the kernel from the MinGW format to something
|
||||
more suitable for the MSVC linker, and also generates these .def files
|
||||
to their target location [1].
|
||||
|
||||
Now you should be set to fire up the IDE and load the project workspace.
|
||||
|
||||
|
||||
When building HAL or the kernel for the first time using these
|
||||
project files, just doing it the "normal" way _will not work_.
|
||||
The linker will complain about missing library, and it will fail.
|
||||
|
||||
The reason for this is a circular dependency between these two binaries.
|
||||
|
||||
Currently you need to follow these procedures [2]:
|
||||
|
||||
- Select hal as your active project.
|
||||
- Select Project/Settings.
|
||||
- Select the Link tab.
|
||||
- Select "General" from the Category drop-list.
|
||||
- Temporary remove the explicit linker library
|
||||
(e.g. "..\ntoskrnl\Debug\ntoskrnl.lib")
|
||||
- Select "Customize" from the Category drop-list.
|
||||
- Check the "Force file output" checkbox.
|
||||
- Build hal.
|
||||
- Uncheck "Force file output".
|
||||
- Put back the removed import library.
|
||||
- Now build the ntoskrnl. Do NOT try to build hal again until
|
||||
you have sucessfully built the kernel, and the linker has
|
||||
generated its import library!
|
||||
- Now you can "Clean" hal, and build it as usual.
|
||||
|
||||
If everything worked as expected, you should now have both ntoskrnl.exe
|
||||
and hal.dll freshly built.
|
||||
|
||||
|
||||
LIMITATIONS/DEVIATIONS (from the MinGW build):
|
||||
- Since there can only be one resource file/project, the kernel had
|
||||
to choose between either its version resource, or its message table.
|
||||
The messages won.
|
||||
- Do NOT open the .rc files in the IDE's resource editor. Chances are
|
||||
it will assume ownership over them and fill them up with at least
|
||||
conditional compilation macros.
|
||||
|
||||
|
||||
NOTES:
|
||||
|
||||
[1] This is needed due to differences in handling of decorated names
|
||||
in .def files. While both MinGW GCC and MSVC generates decorated names
|
||||
in the same way for at least plain cdecl and stdcall C functions, the
|
||||
MSVC linker expects names in the .def file to be either
|
||||
|
||||
- an exact match of the decorated name, in case it exports the
|
||||
decorated name from the linked binary, or
|
||||
- just the name without any decoration, in case it exports just the
|
||||
name of the symbol from the linked binary (to allow for e.g.
|
||||
GetProcAddress using the undecorated name) - but keeps the decorated
|
||||
names in the import library to handle and "redirect" linker requests
|
||||
for those decorated symbols, and point them to the undercorated names
|
||||
in the binary exporting them - so that a binary A, at link time,
|
||||
importing symbols from binary B of the form "_name@0" will resolve
|
||||
that symbol from the import library, but the linked binary A will
|
||||
reference it as just "name".
|
||||
|
||||
The ROS .def files contains a mix, "half-decorated", where the leading
|
||||
undescores are missing, but the trailing "@n" (for stdcall functions)
|
||||
are present.
|
||||
|
||||
|
||||
[2] Theoretically it could be possible to use a hal.lib generated by the
|
||||
following procedure, removing the need for the manual steps above.
|
||||
|
||||
cd MSVC6\hal\Debug
|
||||
lib \def:..\..\..\reactos\hal\hal\hal.def
|
||||
|
||||
but I have not tested it, and take no responsibility for its effectiveness.
|
@@ -1,64 +0,0 @@
|
||||
// Uses hard-coded filenames to require a minimum of input.
|
||||
// You think this file should be licensed? OK then,
|
||||
// Copyright (C) 2004, Mike Nordell. Use as you whish.
|
||||
#include <fstream>
|
||||
#include <string>
|
||||
#include <algorithm>
|
||||
|
||||
const char szSrc1[] = "..\\..\\reactos\\ntoskrnl\\ntoskrnl.def";
|
||||
const char szDst1[] = "..\\ntoskrnl\\ntoskrnl.def";
|
||||
const char szSrc2[] = "..\\..\\reactos\\hal\\hal\\hal.def";
|
||||
const char szDst2[] = "..\\hal\\hal.def";
|
||||
|
||||
enum File
|
||||
{
|
||||
Kernel,
|
||||
HAL
|
||||
};
|
||||
|
||||
std::string do_kernel_replacements(std::string& s)
|
||||
{
|
||||
std::string s2 = s.c_str(); // to fixup size after replacements
|
||||
if (s2 == "ExAllocateFromPagedLookasideList") {
|
||||
s2 += "=ExiAllocateFromPagedLookasideList";
|
||||
} else
|
||||
if (s2 == "ExFreeToPagedLookasideList") {
|
||||
s2 += "=ExiFreeToPagedLookasideList";
|
||||
} else
|
||||
if (s2 == "MmLockPagableImageSection") {
|
||||
s2 += "=MmLockPagableDataSection";
|
||||
}
|
||||
return s2;
|
||||
}
|
||||
|
||||
void convert_def(const char* szSrc, const char* szDst, File file)
|
||||
{
|
||||
using namespace std;
|
||||
ifstream in(szSrc);
|
||||
ofstream out(szDst);
|
||||
string s;
|
||||
while (getline(in, s).good()) {
|
||||
if (!s.size()) {
|
||||
continue;
|
||||
}
|
||||
if (s[0] != ';') { // only replace non-comment lines
|
||||
if (s[0] == '@') {
|
||||
s.erase(0, 1);
|
||||
}
|
||||
replace(s.begin(), s.end(), '@', '\0');
|
||||
if (file == Kernel) {
|
||||
s = do_kernel_replacements(s);
|
||||
}
|
||||
}
|
||||
out << s << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
convert_def(szSrc1, szDst1, Kernel);
|
||||
convert_def(szSrc2, szDst2, HAL);
|
||||
return 0;
|
||||
}
|
||||
|
@@ -1,19 +0,0 @@
|
||||
# $Id: makefile,v 1.1 2004/02/06 08:21:54 fireball Exp $
|
||||
#
|
||||
# ReactOS Operating System - .def converter for HAL and the kernel
|
||||
#
|
||||
|
||||
DEF_HAL = ..\hal\hal.def
|
||||
DEF_KRNL = ..\ntoskrnl\ntoskrnl.def
|
||||
CPPFLAGS = /GX
|
||||
|
||||
all: def_converter.exe $(DEF_HAL) $(DEF_KRNL)
|
||||
|
||||
$(DEF_HAL) : ..\..\reactos\hal\hal\hal.def
|
||||
def_converter.exe
|
||||
|
||||
$(DEF_KRNL) : ..\..\reactos\ntoskrnl\ntoskrnl.def
|
||||
def_converter.exe
|
||||
|
||||
def_converter.exe : def_converter.cpp
|
||||
|
@@ -1,3 +0,0 @@
|
||||
Debug
|
||||
Release
|
||||
hal.def
|
@@ -1,243 +0,0 @@
|
||||
# Microsoft Developer Studio Project File - Name="hal" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
|
||||
|
||||
CFG=hal - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "hal.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "hal.mak" CFG="hal - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "hal - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE "hal - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
MTL=midl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "hal - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "HAL_EXPORTS" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /Ot /Og /Os /Ob1 /I "..\..\reactos\include" /I "..\..\reactos\hal\halx86\include" /I "..\..\reactos\ntoskrnl\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "i386" /D "__NTHAL__" /FD /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x41d /d "NDEBUG"
|
||||
# ADD RSC /l 0x417 /i "..\..\reactos\include" /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 /nologo /dll /machine:I386
|
||||
# ADD LINK32 ..\ntoskrnl\Release\ntoskrnl.lib /nologo /dll /machine:I386 /fixed:no
|
||||
# SUBTRACT LINK32 /pdb:none /force
|
||||
|
||||
!ELSEIF "$(CFG)" == "hal - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "HAL_EXPORTS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Z7 /Od /I "..\..\reactos\include" /I "..\..\reactos\hal\halx86\include" /I "..\..\reactos\ntoskrnl\include" /D "_WINDOWS" /D "__NTHAL__" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "i386" /FD /c
|
||||
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x41d /d "_DEBUG"
|
||||
# ADD RSC /l 0x417 /i "..\..\reactos\include" /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 /nologo /dll /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 ..\ntoskrnl\Debug\ntoskrnl.lib /nologo /dll /incremental:no /debug /machine:I386 /pdbtype:sept /fixed:no
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "hal - Win32 Release"
|
||||
# Name "hal - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\adapter.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\beep.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\bus.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\display.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\dma.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\drive.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\enum.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\fmutex.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\fmutex_tmn.c
|
||||
# PROP Exclude_From_Build 1
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\halinit.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\halx86mp.rc
|
||||
# PROP Exclude_From_Build 1
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\halx86up.rc
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\irql.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\isa.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\kdbg.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\mca.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\misc.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\mp.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\mpsirql.c
|
||||
# PROP Exclude_From_Build 1
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\pci.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\portio.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\pwroff.c
|
||||
# PROP Exclude_From_Build 1
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\reboot.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\spinlock.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\spinlock_tmn.c
|
||||
# PROP Exclude_From_Build 1
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\sysbus.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\sysinfo.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\time.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\timer.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "include"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\include\bus.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\include\hal.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\reactos\hal\halx86\include\mps.h
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\hal.def
|
||||
# End Source File
|
||||
# End Target
|
||||
# End Project
|
@@ -1,22 +0,0 @@
|
||||
# $Id: makefile,v 1.1 2004/02/06 08:21:56 fireball Exp $
|
||||
#
|
||||
# ReactOS Operating System - MSVC6 Zw functions stubs to call generator
|
||||
#
|
||||
|
||||
SYSTEM_CALLS_DB = ..\..\..\reactos\iface\native\sysfuncs.lst
|
||||
KERNEL_ZW_CALLS =..\..\ntoskrnl\nt_zw_msvc.c
|
||||
|
||||
all: genntdll.exe $(KERNEL_ZW_CALLS)
|
||||
|
||||
$(KERNEL_ZW_CALLS) : $(SYSTEM_CALLS_DB)
|
||||
genntdll.exe $(SYSTEM_CALLS_DB) foo1 foo2 $(KERNEL_ZW_CALLS)
|
||||
-@del foo1
|
||||
-@del foo2
|
||||
|
||||
genntdll.exe : genntdll.c
|
||||
|
||||
clean:
|
||||
-@del *.exe
|
||||
-@del *.obj
|
||||
-@del $(KERNEL_ZW_CALLS)
|
||||
|
@@ -1,4 +0,0 @@
|
||||
Debug
|
||||
Release
|
||||
nt_zw_msvc.c
|
||||
ntoskrnl.def
|
@@ -1,114 +0,0 @@
|
||||
/*
|
||||
* ReactOS kernel
|
||||
* Copyright (C) 2000 David Welch <welch@cwcom.net>
|
||||
*
|
||||
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/*
|
||||
* FILE: ntoskrnl/ke/i386/vm86_sup.S
|
||||
* PURPOSE: V86 mode support
|
||||
* PROGRAMMER: David Welch (welch@cwcom.net)
|
||||
* UPDATE HISTORY:
|
||||
* Created 09/10/00
|
||||
*/
|
||||
|
||||
/* INCLUDES ******************************************************************/
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include <ddk/ntddk.h>
|
||||
#include <ddk/status.h>
|
||||
#include <internal/i386/segment.h>
|
||||
#include <internal/i386/fpu.h>
|
||||
#include <internal/ps.h>
|
||||
#include <ddk/defines.h>
|
||||
#include <internal/v86m.h>
|
||||
#include <ntos/tss.h>
|
||||
#include <internal/trap.h>
|
||||
#include <internal/ps.h>
|
||||
|
||||
#include <roscfg.h>
|
||||
#include <internal/ntoskrnl.h>
|
||||
#include <internal/i386/segment.h>
|
||||
|
||||
// no arg-list, but asm doesn't care anyway
|
||||
void KiInterruptDispatch();
|
||||
|
||||
|
||||
#define DEFINE_INT_HANDLER(N) \
|
||||
__declspec(naked) \
|
||||
void irq_handler_##N() \
|
||||
{ \
|
||||
__asm pushad \
|
||||
__asm push ds \
|
||||
__asm push es \
|
||||
__asm push fs \
|
||||
__asm mov eax, 0xceafbeef \
|
||||
__asm push eax \
|
||||
__asm mov ax, KERNEL_DS \
|
||||
__asm mov ds, ax \
|
||||
__asm mov es, ax \
|
||||
__asm mov ax, PCR_SELECTOR \
|
||||
__asm mov fs, ax \
|
||||
__asm push esp \
|
||||
__asm push N \
|
||||
__asm call KiInterruptDispatch \
|
||||
__asm pop eax \
|
||||
__asm pop eax \
|
||||
__asm pop eax \
|
||||
__asm pop fs \
|
||||
__asm pop es \
|
||||
__asm pop ds \
|
||||
__asm popad \
|
||||
__asm iretd
|
||||
// NOTE: The inline assembler can't deal with having the final brace,
|
||||
// ending the function, on the same line as an __asm, why there is
|
||||
// none here and it MUST be added when using the macro!
|
||||
|
||||
DEFINE_INT_HANDLER(0)
|
||||
}
|
||||
DEFINE_INT_HANDLER(1)
|
||||
}
|
||||
DEFINE_INT_HANDLER(2)
|
||||
}
|
||||
DEFINE_INT_HANDLER(3)
|
||||
}
|
||||
DEFINE_INT_HANDLER(4)
|
||||
}
|
||||
DEFINE_INT_HANDLER(5)
|
||||
}
|
||||
DEFINE_INT_HANDLER(6)
|
||||
}
|
||||
DEFINE_INT_HANDLER(7)
|
||||
}
|
||||
DEFINE_INT_HANDLER(8)
|
||||
}
|
||||
DEFINE_INT_HANDLER(9)
|
||||
}
|
||||
DEFINE_INT_HANDLER(10)
|
||||
}
|
||||
DEFINE_INT_HANDLER(11)
|
||||
}
|
||||
DEFINE_INT_HANDLER(12)
|
||||
}
|
||||
DEFINE_INT_HANDLER(13)
|
||||
}
|
||||
DEFINE_INT_HANDLER(14)
|
||||
}
|
||||
DEFINE_INT_HANDLER(15)
|
||||
}
|
||||
|
@@ -1,655 +0,0 @@
|
||||
/*
|
||||
* ReactOS kernel
|
||||
* Copyright (C) 2003 Mike Nordell
|
||||
* Based on multiboot.S (no copyright note present), but so heavily
|
||||
* modified that it bears close to no resemblance to the original work.
|
||||
*
|
||||
* MSVC compatible combination of plain C and inline assembler to:
|
||||
* 1 Relocated all the sections in the kernel - something I feel the
|
||||
* bootloader should have done, but multiboot being just a "raw image"
|
||||
* loader, it unfortunately had to be done here - in-place.
|
||||
* 2 Set up page directories and stuff.
|
||||
* 3 Load IDT, GDT and turn on paging, making us execute at the intended
|
||||
* target address (as if the image was PE-loaded and parsed into that addr.)
|
||||
* 4 Call _main, and let the rest of the startup run...
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
//
|
||||
// TODO: Fix the MP parts
|
||||
//
|
||||
|
||||
/* INCLUDES ******************************************************************/
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include <ddk/ntddk.h>
|
||||
#include <ddk/status.h>
|
||||
#include <internal/i386/segment.h>
|
||||
#include <internal/i386/fpu.h>
|
||||
#include <internal/ps.h>
|
||||
#include <ddk/defines.h>
|
||||
#include <pe.h>
|
||||
|
||||
#include <roscfg.h>
|
||||
#include <internal/ntoskrnl.h>
|
||||
#include <internal/i386/segment.h>
|
||||
#include <internal/ps.h>
|
||||
#include <internal/ldr.h>
|
||||
|
||||
|
||||
// some notes:
|
||||
// The MSVC linker (by defult) emits no special .bss section, but uses the data
|
||||
// section with a rawsize smaller than virtualsize. The "slack" is BSS.
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
// Some macros we need
|
||||
|
||||
// some stuff straight from freeloaders multiboot.h
|
||||
#define MULTIBOOT_HEADER_MAGIC (0x1BADB002)
|
||||
#define MULTIBOOT_HEADER_FLAGS (0x00010003)
|
||||
|
||||
#define TARGET_LOAD_ADDR 0x00200000
|
||||
#define BASE_TO_PHYS_DIST (KERNEL_BASE - TARGET_LOAD_ADDR)
|
||||
|
||||
#define V2P(x) (x - BASE_TO_PHYS_DIST)
|
||||
|
||||
|
||||
#ifdef MP
|
||||
|
||||
#define AP_MAGIC (0x12481020)
|
||||
|
||||
#endif /* MP */
|
||||
|
||||
|
||||
|
||||
void initialize_page_directory(void);
|
||||
|
||||
void* relocate_pointer_log_to_phys(const void* p)
|
||||
{
|
||||
// DON'T CALL this function until relocation of .data and/or .rdata,
|
||||
// is completed - but still be sure that we have not yet enabled paging!
|
||||
return (void*)((DWORD)p - BASE_TO_PHYS_DIST);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#ifdef _DEBUG
|
||||
|
||||
// Macro to emit one character to Bochs debug-port (0x9e).
|
||||
// We need to do it this way, since at this point of the startup, obviously
|
||||
// we have neither HAL nor DbgPrint support.
|
||||
#define BOCHS_OUT_CHAR(c1) __asm push eax __asm push edx __asm mov dx, 0xe9 __asm mov al, c1 __asm out dx, al __asm pop edx __asm pop eax
|
||||
|
||||
void boch_out_hex_digit(unsigned char ch1)
|
||||
{
|
||||
if (ch1 <= 9) { ch1 += '0'; } else { ch1 += 'a' - 10; }
|
||||
BOCHS_OUT_CHAR(ch1)
|
||||
}
|
||||
|
||||
void bochs_dump_hex(DWORD p)
|
||||
{
|
||||
unsigned char ch3 = (unsigned char)((p >> 28) & 0x0f);
|
||||
unsigned char cl3 = (unsigned char)((p >> 24) & 0x0f);
|
||||
unsigned char ch2 = (unsigned char)((p >> 20) & 0x0f);
|
||||
unsigned char cl2 = (unsigned char)((p >> 16) & 0x0f);
|
||||
unsigned char ch1 = (unsigned char)((p >> 12) & 0x0f);
|
||||
unsigned char cl1 = (unsigned char)((p >> 8) & 0x0f);
|
||||
unsigned char ch0 = (unsigned char)((p >> 4) & 0x0f);
|
||||
unsigned char cl0 = (unsigned char)((p >> 0) & 0x0f);
|
||||
BOCHS_OUT_CHAR('0') BOCHS_OUT_CHAR('x')
|
||||
boch_out_hex_digit(ch3);
|
||||
boch_out_hex_digit(cl3);
|
||||
boch_out_hex_digit(ch2);
|
||||
boch_out_hex_digit(cl2);
|
||||
boch_out_hex_digit(ch1);
|
||||
boch_out_hex_digit(cl1);
|
||||
boch_out_hex_digit(ch0);
|
||||
boch_out_hex_digit(cl0);
|
||||
BOCHS_OUT_CHAR('\n')
|
||||
}
|
||||
|
||||
static void bochs_out_string(const char* s /* logical address! */)
|
||||
{
|
||||
s = relocate_pointer_log_to_phys(s);
|
||||
__asm
|
||||
{
|
||||
pushad
|
||||
mov dx, 0xe9
|
||||
mov ebx, s
|
||||
L1:
|
||||
cmp byte ptr[ebx], 0
|
||||
je end
|
||||
mov al, [ebx]
|
||||
out dx, al
|
||||
inc ebx
|
||||
jmp L1
|
||||
end:
|
||||
popad
|
||||
}
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#define BOCHS_OUT_CHAR(c1)
|
||||
#define bochs_dump_hex(VAL)
|
||||
#define bochs_out_string(STR)
|
||||
|
||||
#endif // _DEBUG
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
typedef char kernel_page_t[4096];
|
||||
|
||||
// Use 4096 (pagesize) more bytes that actually needed for each *_holder,
|
||||
// to be able to make sure that the other stuff is page aligned.
|
||||
// No other way to do this portably... :-(
|
||||
//
|
||||
// TODO: Consider allocating just one large block of BSS memory here, align
|
||||
// just the first pointer, and then get the other ones just as offsets from
|
||||
// this (now-aligned) pointer. That way we could get away with wasting just
|
||||
// one page of memory, instead of 4 (like 16KB would matter... but still)
|
||||
static kernel_page_t* startup_pagedirectory_holder[1024 * 2];
|
||||
static kernel_page_t* lowmem_pagetable_holder[1024 * 2];
|
||||
static kernel_page_t* kernel_pagetable_holder[32*1024 + 1];
|
||||
static __int32 kpcr_pagetable_holder[4096/4 * 2];
|
||||
|
||||
#ifdef MP
|
||||
char apic_pagetable[4096];
|
||||
#endif /* MP */
|
||||
|
||||
__int32 unmap_me[4096/4];
|
||||
__int32 unmap_me2[4096/4];
|
||||
__int32 unmap_me3[4096/4];
|
||||
|
||||
__int32 init_stack[3*4096/4];
|
||||
int init_stack_top;
|
||||
|
||||
|
||||
__int32 trap_stack[3*4096/4];
|
||||
int trap_stack_top;
|
||||
|
||||
|
||||
|
||||
void _main();
|
||||
// lie a bit about types - since C is basically typeless anyway, it
|
||||
// doesn't really matter what type we say it is here...
|
||||
extern int KiGdtDescriptor;
|
||||
extern int KiIdtDescriptor;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* This is called by the realmode loader, with protected mode
|
||||
* enabled, paging disabled and the segment registers pointing
|
||||
* a 4Gb, 32-bit segment starting at zero.
|
||||
*
|
||||
* EAX = Multiboot magic or application processor magic
|
||||
*
|
||||
* EBX = Points to a structure in lowmem with data from the
|
||||
* loader
|
||||
*/
|
||||
#pragma intrinsic(memset)
|
||||
|
||||
|
||||
// We need to implement this ourself, to be able to get to it by short call's
|
||||
void our_memmove(void* pDest, const void* pSrc, DWORD size)
|
||||
{
|
||||
char* pD = (char*)pDest;
|
||||
const char* pS = (char*)pSrc;
|
||||
if (pDest < pSrc)
|
||||
{
|
||||
while (size--)
|
||||
{
|
||||
*pD++ = *pS++;
|
||||
}
|
||||
}
|
||||
else if (pSrc < pDest)
|
||||
{
|
||||
while (size--)
|
||||
{
|
||||
pD[size] = pS[size];
|
||||
}
|
||||
}
|
||||
}
|
||||
void dummy_placeholder(void)
|
||||
{
|
||||
// NOTE: This function MUST be placed JUST AFTER MultibootStub in memory.
|
||||
// Yes, it's BEFORE it in this file, but linkorder.txt fixes this for us.
|
||||
}
|
||||
|
||||
|
||||
// This one is needed, since the boot loader hasn't relocated us
|
||||
__declspec(naked)
|
||||
void MultibootStub()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
jmp _multiboot_entry
|
||||
// This sucks, I know...
|
||||
#define EMIT_DWORD(x) __asm __emit ((x) >> 0) & 0xff __asm _emit ((x) >> 8) & 0xff __asm _emit ((x) >> 16) & 0xff __asm _emit ((x) >> 24) & 0xff
|
||||
ALIGN 4
|
||||
EMIT_DWORD(MULTIBOOT_HEADER_MAGIC)
|
||||
EMIT_DWORD(MULTIBOOT_HEADER_FLAGS)
|
||||
EMIT_DWORD(-(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS))
|
||||
EMIT_DWORD(TARGET_LOAD_ADDR + 0x0400 + 0x04)
|
||||
// Now just make something up, since there is no way we can know, beforehand,
|
||||
// where any BSS data is...
|
||||
EMIT_DWORD((TARGET_LOAD_ADDR))
|
||||
EMIT_DWORD((TARGET_LOAD_ADDR + 1*1024*1024)) /* assume ntoskrnel.exe is < 1MB! */
|
||||
EMIT_DWORD((TARGET_LOAD_ADDR + 2*1024*1024)) /* just to have something, let's say BSS is 1MB too */
|
||||
/* This is *REALLY* ugly! If MultibootStub is *EVER* at */
|
||||
/* any other offset, this will crash like crazy! */
|
||||
/* 0x0400 is the file alignment of the binary (ntoskrnl.exe) */
|
||||
EMIT_DWORD((TARGET_LOAD_ADDR + 0x0400)) // entry_addr
|
||||
|
||||
_multiboot_entry:
|
||||
|
||||
cld // just for good measure
|
||||
}
|
||||
|
||||
{
|
||||
/* Save the multiboot or application processor magic */
|
||||
DWORD saved_eax;
|
||||
DWORD saved_ebx;
|
||||
__asm mov saved_eax, eax
|
||||
__asm mov saved_ebx, ebx
|
||||
|
||||
// bochs_out_string("MultibootStub()\n");
|
||||
|
||||
// OK, time to relocate the brute-loaded image in-place...
|
||||
// If we don't watch it, we will overwrite ourselves here - imagine
|
||||
// the fireworks! :-) That's why the function dummy_placeholder()
|
||||
// MUST be placed JUST JUST AFTER this function.
|
||||
|
||||
{
|
||||
PIMAGE_NT_HEADERS NtHeader = RtlImageNtHeader((PVOID)TARGET_LOAD_ADDR);
|
||||
PIMAGE_SECTION_HEADER Section = IMAGE_FIRST_SECTION(NtHeader);
|
||||
const int count = NtHeader->FileHeader.NumberOfSections;
|
||||
int i;
|
||||
Section += count - 1; // make it point to the last section
|
||||
// NOTE: We MUST walk the sections "backwards".
|
||||
for (i = count-1; i >= 0; --i, --Section)
|
||||
{
|
||||
DWORD dwSrc = TARGET_LOAD_ADDR + Section->PointerToRawData;
|
||||
DWORD dwDst = TARGET_LOAD_ADDR + Section->VirtualAddress;
|
||||
DWORD dwSiz = Section->SizeOfRawData;
|
||||
const char* pEndThisFunc;
|
||||
|
||||
if (dwSrc == dwDst)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
//bochs_out_string("MultibootStub: relocating section\n");
|
||||
|
||||
if (Section->Characteristics & IMAGE_SCN_MEM_EXECUTE)
|
||||
{
|
||||
// can't get a pointer to a label from plain C :-(
|
||||
__asm mov pEndThisFunc, offset dummy_placeholder
|
||||
pEndThisFunc -= BASE_TO_PHYS_DIST;
|
||||
if (dwDst < (DWORD)pEndThisFunc)
|
||||
{
|
||||
// We must not move the code from under our feet!
|
||||
// This can only happen in the code segment - the first segment
|
||||
DWORD diff = (DWORD)pEndThisFunc - dwDst;
|
||||
dwDst += diff;
|
||||
dwSrc += diff;
|
||||
dwSiz -= diff;
|
||||
}
|
||||
}
|
||||
|
||||
// obviously we must use memmove, since memory can overlap
|
||||
our_memmove((void*)dwDst, (void*)dwSrc, dwSiz);
|
||||
|
||||
// While at it, we might as well zero any uninitialized data in the section...
|
||||
if (Section->SizeOfRawData < Section->Misc.VirtualSize)
|
||||
{
|
||||
memset((char*)(Section->VirtualAddress + Section->SizeOfRawData + TARGET_LOAD_ADDR),
|
||||
0,
|
||||
Section->Misc.VirtualSize - Section->SizeOfRawData);
|
||||
}
|
||||
}
|
||||
|
||||
// Now all sections are relocated to their intended in-memory layout,
|
||||
// but we are still running int the low TARGET_LOAD_ADDR memory.
|
||||
|
||||
{
|
||||
// Time to jump to the real startup, the entry-point function.
|
||||
// We must do this using assembler, since both eax and ebx are assumed
|
||||
// to hold some magic values.
|
||||
typedef VOID (STDCALL* pfn_t)(PPEB);
|
||||
pfn_t pfn = (pfn_t)(NtHeader->OptionalHeader.AddressOfEntryPoint + TARGET_LOAD_ADDR);
|
||||
#if 1
|
||||
__asm mov eax, saved_eax
|
||||
__asm mov ebx, saved_ebx
|
||||
__asm mov ecx, pfn
|
||||
__asm jmp ecx
|
||||
#else
|
||||
__asm mov ebx, saved_ebx
|
||||
(*pfn)((PPEB)saved_eax);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// TMN: TODO: Convert this to the extent possible to plain C code
|
||||
// Due to the "magic" above, we enter this function with all kernel sections
|
||||
// properly relocated wrt. offsets from start-of-mem. But, we are still running
|
||||
// without paging, meaning that the address that is to be KERNEL_BASE+xyz is
|
||||
// currently still TARGET_LOAD_ADDR+xyz.
|
||||
// We get aways with a few of the functions call here since they are near calls
|
||||
// (PC-relative), but don't even _think_ about calling any other functions
|
||||
// until we have turned on paging!
|
||||
VOID STDCALL
|
||||
NtProcessStartup(
|
||||
IN PPEB Peb
|
||||
)
|
||||
{
|
||||
DWORD saved_ebx;
|
||||
DWORD saved_eax;
|
||||
__asm mov saved_ebx, ebx
|
||||
__asm mov saved_eax, eax
|
||||
|
||||
bochs_out_string("NtProcessStartup: Just entered\n");
|
||||
|
||||
#ifdef MP
|
||||
if (saved_eax != AP_MAGIC)
|
||||
{
|
||||
#endif /* MP */
|
||||
|
||||
bochs_out_string("NtProcessStartup: Calling initialize_page_directory()\n");
|
||||
|
||||
initialize_page_directory(); // Initialize the page directory
|
||||
|
||||
bochs_out_string("NtProcessStartup: Page directory initialized\n");
|
||||
|
||||
#ifdef MP
|
||||
|
||||
__asm
|
||||
{
|
||||
/*
|
||||
* Initialize the page table that maps the APIC register address space
|
||||
*/
|
||||
|
||||
/*
|
||||
* FIXME: APIC register address space can be non-standard so do the
|
||||
* mapping later
|
||||
*/
|
||||
mov esi, V2P(apic_pagetable)
|
||||
mov edi, 0
|
||||
mov eax, 0xFEC0001B
|
||||
mov [esi+edi], eax
|
||||
mov edi, 0x800
|
||||
mov eax, 0xFEE0001B
|
||||
mov [esi+edi], eax
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* MP */
|
||||
|
||||
{
|
||||
bochs_out_string("NtProcessStartup: Enabling paging...\n");
|
||||
|
||||
/*
|
||||
* Enable paging and set write protect
|
||||
* bit 31: PG, bit 16: WP
|
||||
*/
|
||||
__asm mov eax, cr0
|
||||
__asm or eax, 0x80010000
|
||||
__asm mov cr0, eax
|
||||
|
||||
bochs_out_string("NtProcessStartup: Paging enabled!\n");
|
||||
bochs_out_string("NtProcessStartup: But we're still at the \"low\" address\n");
|
||||
|
||||
/*
|
||||
* Do an absolute jump because we now want to execute above KERNEL_BASE
|
||||
*/
|
||||
__asm mov eax, offset l2_
|
||||
__asm jmp eax
|
||||
}
|
||||
|
||||
l2_:
|
||||
|
||||
bochs_out_string("We have now left \"low\" memory, and is flying at an altitude of...\n");
|
||||
bochs_out_string("OK, we're not flying, we're just executing above KERNEL_BASE\n");
|
||||
|
||||
/*
|
||||
* Load the GDTR and IDTR with new tables located above
|
||||
* KERNEL_BASE
|
||||
*/
|
||||
|
||||
#ifdef _DEBUG
|
||||
{
|
||||
DWORD val = (DWORD)&KiGdtDescriptor;
|
||||
bochs_out_string("&KiGdtDescriptor: ");
|
||||
bochs_dump_hex(val);
|
||||
|
||||
val = (DWORD)&KiIdtDescriptor;
|
||||
bochs_out_string("&KiIdtDescriptor: ");
|
||||
bochs_dump_hex(val);
|
||||
}
|
||||
#endif
|
||||
|
||||
bochs_out_string("Loading GDT and IDT...\n");
|
||||
|
||||
/* FIXME: Application processors should have their own GDT/IDT */
|
||||
__asm lgdt KiGdtDescriptor
|
||||
__asm lidt KiIdtDescriptor
|
||||
|
||||
bochs_out_string("GDT and IDT loaded\n");
|
||||
|
||||
__asm
|
||||
{
|
||||
/*
|
||||
* Reload the data segment registers
|
||||
*/
|
||||
mov eax, KERNEL_DS
|
||||
mov ds, ax
|
||||
mov es, ax
|
||||
mov gs, ax
|
||||
mov ss, ax
|
||||
mov eax, 0
|
||||
mov fs, ax
|
||||
}
|
||||
|
||||
bochs_out_string("NtProcessStartup: segment registers loaded\n");
|
||||
|
||||
#ifdef MP
|
||||
|
||||
if (saved_eax == AP_MAGIC)
|
||||
{
|
||||
__asm
|
||||
{
|
||||
/*
|
||||
* This is an application processor executing
|
||||
*/
|
||||
|
||||
/*
|
||||
* Initialize EFLAGS
|
||||
*/
|
||||
push 0
|
||||
popfd
|
||||
|
||||
/*
|
||||
* Call the application processor initialization code
|
||||
*/
|
||||
push 0
|
||||
push offset l7_
|
||||
push KERNEL_CS
|
||||
push KiSystemStartup
|
||||
retf
|
||||
|
||||
/*
|
||||
* Catch illegal returns from KiSystemStartup
|
||||
*/
|
||||
l7_:
|
||||
pop eax
|
||||
}
|
||||
|
||||
KeBugCheck(0);
|
||||
|
||||
for (;;)
|
||||
; /*forever */
|
||||
}
|
||||
|
||||
#endif /* MP */
|
||||
|
||||
bochs_out_string("Loading fs with PCR_SELECTOR\n");
|
||||
|
||||
/* Load the PCR selector */
|
||||
__asm mov eax, PCR_SELECTOR
|
||||
__asm mov fs, ax
|
||||
|
||||
bochs_out_string("Loading esp with init_stack_top : "); bochs_dump_hex((DWORD)&init_stack_top);
|
||||
bochs_out_string("Just for interest, init_stack is at: "); bochs_dump_hex((DWORD)init_stack);
|
||||
bochs_out_string("Meaing the init_stack in bytes is : "); bochs_dump_hex((DWORD)&init_stack_top - (DWORD)init_stack);
|
||||
|
||||
|
||||
/* Load the initial kernel stack */
|
||||
__asm mov esp, offset init_stack_top
|
||||
|
||||
bochs_out_string("Loaded esp with init_stack_top\n");
|
||||
|
||||
/*
|
||||
* Initialize EFLAGS
|
||||
*/
|
||||
__asm push 0
|
||||
__asm popfd
|
||||
|
||||
bochs_out_string("Loaded eflags\n");
|
||||
|
||||
/*
|
||||
* Call the main kernel initialization
|
||||
*/
|
||||
bochs_out_string("TMN: Calling _main...\n");
|
||||
|
||||
__asm
|
||||
{
|
||||
xor ebp,ebp
|
||||
push ebx
|
||||
push edx
|
||||
push offset l5_
|
||||
push KERNEL_CS
|
||||
push offset _main
|
||||
retf
|
||||
|
||||
/*
|
||||
* Catch illegal returns from main, try bug checking the system,
|
||||
* if that fails then loop forever.
|
||||
*/
|
||||
l5_:
|
||||
pop eax
|
||||
pop eax
|
||||
|
||||
} // end of __asm block
|
||||
|
||||
bochs_out_string("TMN: Back from _main ?! Let's crash!\n");
|
||||
|
||||
KeBugCheck(0);
|
||||
|
||||
for (;;)
|
||||
; /*forever */
|
||||
}
|
||||
|
||||
|
||||
void initialize_page_directory(void)
|
||||
{
|
||||
/*
|
||||
* Initialize the page directory
|
||||
*/
|
||||
|
||||
// First convert the pointers from the virtual address the compiler generated
|
||||
// code thinks we are at, to the currently active physical address we actually
|
||||
// got loaded into by the loader. At this point we have been relocated, so
|
||||
// that there is a 1:1 mapping between KERNEL_BASE+n and TARGET_LOAD_ADDR+n.
|
||||
|
||||
kernel_page_t** startup_pagedirectory = startup_pagedirectory_holder;
|
||||
kernel_page_t** lowmem_pagetable = lowmem_pagetable_holder;
|
||||
kernel_page_t** kernel_pagetable = kernel_pagetable_holder;
|
||||
__int32* kpcr_pagetable = kpcr_pagetable_holder;
|
||||
|
||||
bochs_out_string("startup_pagedirectory before reloc: ");
|
||||
bochs_dump_hex((DWORD)startup_pagedirectory);
|
||||
|
||||
startup_pagedirectory = (kernel_page_t**)relocate_pointer_log_to_phys(startup_pagedirectory);
|
||||
lowmem_pagetable = (kernel_page_t**)relocate_pointer_log_to_phys(lowmem_pagetable);
|
||||
kernel_pagetable = (kernel_page_t**)relocate_pointer_log_to_phys(kernel_pagetable);
|
||||
kpcr_pagetable = (__int32*) relocate_pointer_log_to_phys(kpcr_pagetable);
|
||||
|
||||
bochs_out_string("startup_pagedirectory after reloc : ");
|
||||
bochs_dump_hex((DWORD)startup_pagedirectory);
|
||||
|
||||
// Now align the pointers to PAGE_SIZE...
|
||||
startup_pagedirectory = (kernel_page_t**)(((ULONG_PTR)startup_pagedirectory + 4095) & ~4095);
|
||||
lowmem_pagetable = (kernel_page_t**)(((ULONG_PTR)lowmem_pagetable + 4095) & ~4095);
|
||||
kernel_pagetable = (kernel_page_t**)(((ULONG_PTR)kernel_pagetable + 4095) & ~4095);
|
||||
kpcr_pagetable = (__int32* ) (((ULONG_PTR)kpcr_pagetable + 4095) & ~4095);
|
||||
|
||||
#ifdef _DEBUG
|
||||
bochs_out_string("startup_pagedirectory aligned : ");
|
||||
bochs_dump_hex((DWORD)startup_pagedirectory);
|
||||
#endif
|
||||
|
||||
// Ugly macros, I know...
|
||||
#define DEST(PAGE) startup_pagedirectory[(PAGE) + 0xc00 / 4]
|
||||
#define SRC(PAGE) (kernel_page_t*)((char*)kernel_pagetable + (PAGE)*4096 + 0x7)
|
||||
|
||||
startup_pagedirectory[0] = (kernel_page_t*)((char*)lowmem_pagetable + 0x7);
|
||||
|
||||
{
|
||||
unsigned int i;
|
||||
for (i=0; i<32; ++i)
|
||||
{
|
||||
DEST(i) = SRC(i);
|
||||
}
|
||||
}
|
||||
|
||||
DEST( 64) = (kernel_page_t*)((char*)lowmem_pagetable + 0x7);
|
||||
DEST(192) = (kernel_page_t*)((char*)startup_pagedirectory + 0x7);
|
||||
#ifdef MP
|
||||
DEST(251) = (kernel_page_t*)((char*)apic_pagetable + 0x7);
|
||||
#endif /* MP */
|
||||
DEST(252) = (kernel_page_t*)((char*)kpcr_pagetable + 0x7);
|
||||
|
||||
|
||||
{
|
||||
unsigned int i;
|
||||
/* Initialize the page table that maps low memory */
|
||||
for (i=0; i<1024; ++i) {
|
||||
lowmem_pagetable[i] = (kernel_page_t*)(i*4096 + 7);
|
||||
}
|
||||
|
||||
/* Initialize the page table that maps kernel memory */
|
||||
for (i=0; i<6144/4 /* 1536 pages = 6MB */; ++i) {
|
||||
kernel_pagetable[i] = (kernel_page_t*)(i*4096 + TARGET_LOAD_ADDR + 0x7);
|
||||
}
|
||||
|
||||
/* Initialize the page table that maps the initial KPCR (at FF000000) */
|
||||
kpcr_pagetable[0] = 0x1007;
|
||||
}
|
||||
|
||||
/*
|
||||
* Set up the PDBR
|
||||
*/
|
||||
__asm mov eax, startup_pagedirectory
|
||||
__asm mov cr3, eax
|
||||
}
|
||||
|
@@ -1,325 +0,0 @@
|
||||
/*
|
||||
* ReactOS kernel
|
||||
* Copyright (C) 2000 David Welch <welch@cwcom.net>
|
||||
*
|
||||
* Converted to MSVC-compatible inline assembler by Mike Nordell, 2003.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/*
|
||||
* FILE: MSVC6/ntoskrnl/ke_i386_syscall.c
|
||||
* based on ntoskrnl/ke/i386/syscall.s
|
||||
* PURPOSE: syscall dispatching and support
|
||||
* PROGRAMMER: David Welch (welch@cwcom.net)
|
||||
* UPDATE HISTORY:
|
||||
* Created 09/10/00
|
||||
*/
|
||||
|
||||
/* INCLUDES ******************************************************************/
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include <ddk/ntddk.h>
|
||||
#include <ddk/status.h>
|
||||
#include <internal/i386/segment.h>
|
||||
#include <internal/i386/fpu.h>
|
||||
#include <internal/ps.h>
|
||||
#include <ddk/defines.h>
|
||||
#include <internal/v86m.h>
|
||||
#include <ntos/tss.h>
|
||||
//#include <ntos/service.h>
|
||||
#include <internal/trap.h>
|
||||
#include <internal/ps.h>
|
||||
|
||||
#include <roscfg.h>
|
||||
#include <internal/ntoskrnl.h>
|
||||
#include <internal/i386/segment.h>
|
||||
|
||||
|
||||
#define KernelMode (0)
|
||||
#define UserMode (1)
|
||||
|
||||
|
||||
// TMN: Replicated here to reduce mess-time
|
||||
#ifdef STATUS_INVALID_SYSTEM_SERVICE
|
||||
#undef STATUS_INVALID_SYSTEM_SERVICE
|
||||
#endif
|
||||
#define STATUS_INVALID_SYSTEM_SERVICE 0xc000001c
|
||||
|
||||
|
||||
/*
|
||||
*
|
||||
*/
|
||||
|
||||
void KiServiceCheck (ULONG Nr);
|
||||
ULONG KiAfterSystemCallHook(ULONG NtStatus, PKTRAP_FRAME TrapFrame);
|
||||
VOID KiSystemCallHook(ULONG Nr, ...);
|
||||
|
||||
void KeReturnFromSystemCallWithHook();
|
||||
void KeReturnFromSystemCall();
|
||||
|
||||
|
||||
__declspec(naked)
|
||||
void interrupt_handler2e(void)
|
||||
{
|
||||
__asm
|
||||
{
|
||||
/* Construct a trap frame on the stack */
|
||||
|
||||
/* Error code */
|
||||
push 0
|
||||
push ebp
|
||||
push ebx
|
||||
push esi
|
||||
push edi
|
||||
push fs
|
||||
/* Load PCR selector into fs */
|
||||
mov ebx, PCR_SELECTOR
|
||||
mov fs, bx
|
||||
|
||||
/* Save the old exception list */
|
||||
mov ebx, fs:KPCR_EXCEPTION_LIST
|
||||
push ebx
|
||||
/* Set the exception handler chain terminator */
|
||||
mov dword ptr fs:KPCR_EXCEPTION_LIST, 0xffffffff
|
||||
/* Get a pointer to the current thread */
|
||||
mov esi, fs:KPCR_CURRENT_THREAD
|
||||
/* Save the old previous mode */
|
||||
xor ebx,ebx
|
||||
mov bl, ss:KTHREAD_PREVIOUS_MODE[esi]
|
||||
push ebx
|
||||
/* Set the new previous mode based on the saved CS selector */
|
||||
mov ebx, 0x24[esp]
|
||||
and ebx, 0x0000FFFF
|
||||
cmp ebx, KERNEL_CS
|
||||
#if 0
|
||||
// TODO: Verify implementation change and use this code path
|
||||
// to remove two conditional jumps.
|
||||
setnz bl
|
||||
mov ss:KTHREAD_PREVIOUS_MODE[esi], bl
|
||||
#else
|
||||
jne L1
|
||||
mov ss:KTHREAD_PREVIOUS_MODE[esi], KernelMode
|
||||
jmp L3
|
||||
L1:
|
||||
mov ss:KTHREAD_PREVIOUS_MODE[esi], UserMode
|
||||
L3:
|
||||
|
||||
#endif
|
||||
/* Save other registers */
|
||||
push eax
|
||||
push ecx
|
||||
push edx
|
||||
push ds
|
||||
push es
|
||||
push gs
|
||||
push 0 /* DR7 */
|
||||
push 0 /* DR6 */
|
||||
push 0 /* DR3 */
|
||||
push 0 /* DR2 */
|
||||
push 0 /* DR1 */
|
||||
push 0 /* DR0 */
|
||||
push 0 /* XXX: TempESP */
|
||||
push 0 /* XXX: TempCS */
|
||||
push 0 /* XXX: DebugPointer */
|
||||
push 0 /* XXX: DebugArgMark */
|
||||
mov ebx, 0x60[esp]
|
||||
push ebx /* DebugEIP */
|
||||
push ebp /* DebugEBP */
|
||||
|
||||
/* Load the segment registers */
|
||||
mov bx, KERNEL_DS
|
||||
mov ds, bx
|
||||
mov es, bx
|
||||
mov gs, bx
|
||||
|
||||
/*
|
||||
* Save the old trap frame pointer over where we would save the EDX
|
||||
* register.
|
||||
*/
|
||||
mov ebx, KTHREAD_TRAP_FRAME[esi]
|
||||
mov 0x3C[esp], ebx
|
||||
|
||||
/* Save a pointer to the trap frame in the TCB */
|
||||
mov KTHREAD_TRAP_FRAME[esi], esp
|
||||
|
||||
/* Set ES to kernel segment */
|
||||
mov bx, KERNEL_DS
|
||||
mov es, bx
|
||||
|
||||
/* Allocate new Kernel stack frame */
|
||||
mov ebp, esp
|
||||
|
||||
/* Users's current stack frame pointer is source */
|
||||
mov esi, edx
|
||||
|
||||
/* Determine system service table to use */
|
||||
cmp eax, 0x0fff
|
||||
ja new_useShadowTable
|
||||
|
||||
/* Check to see if EAX is valid/inrange */
|
||||
cmp eax, es:KeServiceDescriptorTable + 8
|
||||
jbe new_serviceInRange
|
||||
mov eax, STATUS_INVALID_SYSTEM_SERVICE
|
||||
jmp KeReturnFromSystemCall
|
||||
|
||||
new_serviceInRange:
|
||||
|
||||
/* Allocate room for argument list from kernel stack */
|
||||
mov ecx, es:KeServiceDescriptorTable + 12
|
||||
mov ecx, es:[ecx + eax * 4]
|
||||
sub esp, ecx
|
||||
|
||||
/* Copy the arguments from the user stack to the kernel stack */
|
||||
mov edi, esp
|
||||
cld
|
||||
repe movsb
|
||||
|
||||
/* DS is now also kernel segment */
|
||||
mov ds, bx
|
||||
|
||||
/* Call system call hook */
|
||||
push eax
|
||||
call KiSystemCallHook
|
||||
pop eax
|
||||
|
||||
/* Make the system service call */
|
||||
mov ecx, es:KeServiceDescriptorTable
|
||||
mov eax, es:[ecx + eax * 4]
|
||||
call eax
|
||||
|
||||
#if CHECKED
|
||||
/* Bump Service Counter */
|
||||
#endif
|
||||
|
||||
/* Deallocate the kernel stack frame */
|
||||
mov esp, ebp
|
||||
|
||||
/* Call the post system call hook and deliver any pending APCs */
|
||||
push ebp
|
||||
push eax
|
||||
call KiAfterSystemCallHook
|
||||
add esp, 8
|
||||
|
||||
jmp KeReturnFromSystemCall
|
||||
|
||||
new_useShadowTable:
|
||||
|
||||
sub eax, 0x1000
|
||||
|
||||
/* Check to see if EAX is valid/inrange */
|
||||
cmp eax, es:KeServiceDescriptorTableShadow + 24
|
||||
jbe new_shadowServiceInRange
|
||||
mov eax, STATUS_INVALID_SYSTEM_SERVICE
|
||||
jmp KeReturnFromSystemCall
|
||||
|
||||
new_shadowServiceInRange:
|
||||
|
||||
/* Allocate room for argument list from kernel stack */
|
||||
mov ecx, es:KeServiceDescriptorTableShadow + 28
|
||||
mov ecx, es:[ecx + eax * 4]
|
||||
sub esp, ecx
|
||||
|
||||
/* Copy the arguments from the user stack to the kernel stack */
|
||||
mov edi, esp
|
||||
cld
|
||||
repe movsb
|
||||
|
||||
/* DS is now also kernel segment */
|
||||
mov ds, bx
|
||||
|
||||
/* Call system call hook */
|
||||
// pushl %eax
|
||||
// call _KiSystemCallHook
|
||||
// popl %eax
|
||||
|
||||
/* Call service check routine */
|
||||
push eax
|
||||
call KiServiceCheck
|
||||
pop eax
|
||||
|
||||
/* Make the system service call */
|
||||
mov ecx, es:KeServiceDescriptorTableShadow + 16
|
||||
mov eax, es:[ecx + eax * 4]
|
||||
call eax
|
||||
|
||||
#if CHECKED
|
||||
/* Bump Service Counter */
|
||||
#endif
|
||||
|
||||
/* Deallocate the kernel stack frame */
|
||||
mov esp, ebp
|
||||
|
||||
// TMN: Added, to be able to separate this into different functions
|
||||
jmp KeReturnFromSystemCallWithHook
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KeReturnFromSystemCallWithHook()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
/* Call the post system call hook and deliver any pending APCs */
|
||||
push esp
|
||||
push eax
|
||||
call KiAfterSystemCallHook
|
||||
add esp, 8
|
||||
|
||||
// TMN: Added, to be able to separate this into different functions
|
||||
jmp KeReturnFromSystemCall
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KeReturnFromSystemCall()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
/* Restore the user context */
|
||||
/* Get a pointer to the current thread */
|
||||
mov esi, fs:0x124
|
||||
|
||||
/* Restore the old trap frame pointer */
|
||||
mov ebx, 0x3c[esp]
|
||||
mov KTHREAD_TRAP_FRAME[esi], ebx
|
||||
|
||||
/* Skip debug information and unsaved registers */
|
||||
add esp, 0x30
|
||||
pop gs
|
||||
pop es
|
||||
pop ds
|
||||
pop edx
|
||||
pop ecx
|
||||
add esp, 4 /* Don't restore eax */
|
||||
|
||||
/* Restore the old previous mode */
|
||||
pop ebx
|
||||
mov ss:KTHREAD_PREVIOUS_MODE[esi], bl
|
||||
|
||||
/* Restore the old exception handler list */
|
||||
pop ebx
|
||||
mov fs:KPCR_EXCEPTION_LIST, ebx
|
||||
|
||||
pop fs
|
||||
pop edi
|
||||
pop esi
|
||||
pop ebx
|
||||
pop ebp
|
||||
add esp, 4 /* Ignore error code */
|
||||
|
||||
iretd
|
||||
}
|
||||
}
|
@@ -1,468 +0,0 @@
|
||||
/*
|
||||
* ReactOS kernel
|
||||
* Copyright (C) 2000 David Welch <welch@cwcom.net>
|
||||
*
|
||||
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/*
|
||||
* FILE: ntoskrnl/ke/i386/vm86_sup.S
|
||||
* PURPOSE: V86 mode support
|
||||
* PROGRAMMER: David Welch (welch@cwcom.net)
|
||||
* UPDATE HISTORY:
|
||||
* Created 09/10/00
|
||||
*/
|
||||
|
||||
/* INCLUDES ******************************************************************/
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include <ddk/ntddk.h>
|
||||
#include <ddk/status.h>
|
||||
#include <internal/i386/segment.h>
|
||||
#include <internal/i386/fpu.h>
|
||||
#include <internal/ps.h>
|
||||
#include <ddk/defines.h>
|
||||
#include <internal/v86m.h>
|
||||
#include <ntos/tss.h>
|
||||
#include <internal/trap.h>
|
||||
#include <internal/ps.h>
|
||||
|
||||
#include <roscfg.h>
|
||||
#include <internal/ntoskrnl.h>
|
||||
#include <internal/i386/segment.h>
|
||||
|
||||
|
||||
void KiV86Complete(void);
|
||||
void KiTrapHandler(void);
|
||||
void KiDoubleFaultHandler(void);
|
||||
|
||||
extern int KiPcrInitDone;
|
||||
|
||||
/*
|
||||
* Epilog for exception handlers
|
||||
*/
|
||||
__declspec(naked)
|
||||
void KiTrapEpilog()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
cmp eax, 1 /* Check for v86 recovery */
|
||||
jne _KiTrapRet
|
||||
jmp KiV86Complete
|
||||
_KiTrapRet:
|
||||
/* Skip debug information and unsaved registers */
|
||||
add esp, 0x30
|
||||
pop gs
|
||||
pop es
|
||||
pop ds
|
||||
pop edx
|
||||
pop ecx
|
||||
pop eax
|
||||
|
||||
/* Restore the old previous mode */
|
||||
pop ebx
|
||||
mov ss:KTHREAD_PREVIOUS_MODE[esi], bl
|
||||
|
||||
/* Restore the old exception handler list */
|
||||
pop ebx
|
||||
mov fs:KPCR_EXCEPTION_LIST, ebx
|
||||
|
||||
pop fs
|
||||
pop edi
|
||||
pop esi
|
||||
pop ebx
|
||||
pop ebp
|
||||
add esp, 4 /* Ignore error code */
|
||||
|
||||
iretd
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KiTrapProlog()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
push edi
|
||||
push fs
|
||||
|
||||
/*
|
||||
* Check that the PCR exists, very early in the boot process it may
|
||||
* not
|
||||
*/
|
||||
cmp ss:KiPcrInitDone, 0
|
||||
je L5_
|
||||
|
||||
/* Load the PCR selector into fs */
|
||||
mov ebx, PCR_SELECTOR
|
||||
mov fs, bx
|
||||
|
||||
/* Save the old exception list */
|
||||
mov ebx, fs:KPCR_EXCEPTION_LIST
|
||||
push ebx
|
||||
|
||||
/* Put the exception handler chain terminator */
|
||||
mov dword ptr fs:KPCR_EXCEPTION_LIST, 0xffffffff
|
||||
|
||||
/* Get a pointer to the current thread */
|
||||
mov edi, fs:KPCR_CURRENT_THREAD
|
||||
|
||||
/* The current thread may be NULL early in the boot process */
|
||||
cmp edi, 0
|
||||
je L4_
|
||||
|
||||
/* Save the old previous mode */
|
||||
xor ebx, ebx
|
||||
mov bl, ss:KTHREAD_PREVIOUS_MODE[edi]
|
||||
push ebx
|
||||
|
||||
/* Set the new previous mode based on the saved CS selector */
|
||||
mov ebx, 0x24[esp]
|
||||
and ebx, 0x0000FFFF
|
||||
cmp ebx, KERNEL_CS
|
||||
jne L1_
|
||||
mov ss:KTHREAD_PREVIOUS_MODE[edi], KernelMode
|
||||
jmp L3_
|
||||
L1_:
|
||||
mov ss:KTHREAD_PREVIOUS_MODE[edi], UserMode
|
||||
L3_:
|
||||
|
||||
/* Save other registers */
|
||||
push eax
|
||||
push ecx
|
||||
push edx
|
||||
push ds
|
||||
push es
|
||||
push gs
|
||||
push 0 /* DR7 */
|
||||
push 0 /* DR6 */
|
||||
push 0 /* DR3 */
|
||||
push 0 /* DR2 */
|
||||
push 0 /* DR1 */
|
||||
push 0 /* DR0 */
|
||||
push 0 /* XXX: TempESP */
|
||||
push 0 /* XXX: TempCS */
|
||||
push 0 /* XXX: DebugPointer */
|
||||
push 0 /* XXX: DebugArgMark */
|
||||
mov ebx, 0x60[esp]
|
||||
push ebx /* XXX: DebugEIP */
|
||||
push ebp /* XXX: DebugEBP */
|
||||
|
||||
/* Load the segment registers */
|
||||
mov ebx, KERNEL_DS
|
||||
mov ds, bx
|
||||
mov es, bx
|
||||
mov gs, bx
|
||||
|
||||
/* Set ES to kernel segment */
|
||||
mov bx, KERNEL_DS
|
||||
mov es, bx
|
||||
|
||||
mov ebx, esp
|
||||
mov ebp, esp
|
||||
|
||||
/* Save the old trap frame. */
|
||||
cmp edi, 0
|
||||
je L7_
|
||||
mov edx, ss:KTHREAD_TRAP_FRAME[edi]
|
||||
push edx
|
||||
jmp L8_
|
||||
L7_:
|
||||
push 0
|
||||
L8_:
|
||||
|
||||
/* Save a pointer to the trap frame in the current KTHREAD */
|
||||
cmp edi, 0
|
||||
je L6_
|
||||
mov ss:KTHREAD_TRAP_FRAME[edi], ebx
|
||||
L6_:
|
||||
|
||||
/* Call the C exception handler */
|
||||
push esi
|
||||
push ebx
|
||||
call KiTrapHandler
|
||||
add esp, 8
|
||||
|
||||
/* Get a pointer to the current thread */
|
||||
mov esi, fs:KPCR_CURRENT_THREAD
|
||||
|
||||
/* Restore the old trap frame pointer */
|
||||
pop ebx
|
||||
mov KTHREAD_TRAP_FRAME[esi], ebx
|
||||
|
||||
/* Return to the caller */
|
||||
jmp KiTrapEpilog
|
||||
|
||||
/* Handle the no-pcr case out of line */
|
||||
L5_:
|
||||
push 0
|
||||
|
||||
/* Handle the no-thread case out of line */
|
||||
L4_:
|
||||
push 0
|
||||
jmp L3_
|
||||
|
||||
} // end of __asm block
|
||||
}
|
||||
|
||||
|
||||
__declspec(naked)
|
||||
void KiTrap0()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
/* No error code */
|
||||
push 0
|
||||
push ebp
|
||||
push ebx
|
||||
push esi
|
||||
mov esi, 0
|
||||
jmp KiTrapProlog
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KiTrap1()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
/* No error code */
|
||||
push 0
|
||||
push ebp
|
||||
push ebx
|
||||
push esi
|
||||
mov esi, 1
|
||||
jmp KiTrapProlog
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KiTrap2()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
push 0
|
||||
push ebp
|
||||
push ebx
|
||||
push esi
|
||||
mov esi, 2
|
||||
jmp KiTrapProlog
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KiTrap3()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
push 0
|
||||
push ebp
|
||||
push ebx
|
||||
push esi
|
||||
mov esi, 3
|
||||
jmp KiTrapProlog
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KiTrap4()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
push 0
|
||||
push ebp
|
||||
push ebx
|
||||
push esi
|
||||
mov esi, 4
|
||||
jmp KiTrapProlog
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KiTrap5()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
push 0
|
||||
push ebp
|
||||
push ebx
|
||||
push esi
|
||||
mov esi, 5
|
||||
jmp KiTrapProlog
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KiTrap6()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
push 0
|
||||
push ebp
|
||||
push ebx
|
||||
push esi
|
||||
mov esi, 6
|
||||
jmp KiTrapProlog
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KiTrap7()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
push 0
|
||||
push ebp
|
||||
push ebx
|
||||
push esi
|
||||
mov esi, 7
|
||||
jmp KiTrapProlog
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KiTrap8()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
call KiDoubleFaultHandler
|
||||
iretd
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KiTrap9()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
push 0
|
||||
push ebp
|
||||
push ebx
|
||||
push esi
|
||||
mov esi, 9
|
||||
jmp KiTrapProlog
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KiTrap10()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
push ebp
|
||||
push ebx
|
||||
push esi
|
||||
mov esi, 10
|
||||
jmp KiTrapProlog
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KiTrap11()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
push ebp
|
||||
push ebx
|
||||
push esi
|
||||
mov esi, 11
|
||||
jmp KiTrapProlog
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KiTrap12()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
push ebp
|
||||
push ebx
|
||||
push esi
|
||||
mov esi, 12
|
||||
jmp KiTrapProlog
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KiTrap13()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
push ebp
|
||||
push ebx
|
||||
push esi
|
||||
mov esi, 13
|
||||
jmp KiTrapProlog
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KiTrap14()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
push ebp
|
||||
push ebx
|
||||
push esi
|
||||
mov esi, 14
|
||||
jmp KiTrapProlog
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KiTrap15()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
push 0
|
||||
push ebp
|
||||
push ebx
|
||||
push esi
|
||||
mov esi, 15
|
||||
jmp KiTrapProlog
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KiTrap16()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
push 0
|
||||
push ebp
|
||||
push ebx
|
||||
push esi
|
||||
mov esi, 16
|
||||
jmp KiTrapProlog
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KiTrapUnknown()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
push 0
|
||||
push ebp
|
||||
push ebx
|
||||
push esi
|
||||
mov esi, 255
|
||||
jmp KiTrapProlog
|
||||
}
|
||||
}
|
||||
|
||||
/* EOF */
|
@@ -1,217 +0,0 @@
|
||||
/*
|
||||
* ReactOS kernel
|
||||
* Copyright (C) 2000 David Welch <welch@cwcom.net>
|
||||
*
|
||||
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/*
|
||||
* FILE: ntoskrnl/ke/i386/vm86_sup.S
|
||||
* PURPOSE: V86 mode support
|
||||
* PROGRAMMER: David Welch (welch@cwcom.net)
|
||||
* UPDATE HISTORY:
|
||||
* Created 09/10/00
|
||||
*/
|
||||
|
||||
/* INCLUDES ******************************************************************/
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include <ddk/ntddk.h>
|
||||
#include <ddk/status.h>
|
||||
#include <internal/i386/segment.h>
|
||||
#include <internal/i386/fpu.h>
|
||||
#include <internal/ps.h>
|
||||
#include <ddk/defines.h>
|
||||
#include <internal/v86m.h>
|
||||
#include <ntos/tss.h>
|
||||
//#include <ntos/service.h>
|
||||
#include <internal/trap.h>
|
||||
#include <internal/ps.h>
|
||||
|
||||
#include <roscfg.h>
|
||||
#include <internal/ntoskrnl.h>
|
||||
#include <internal/i386/segment.h>
|
||||
|
||||
|
||||
extern KSPIN_LOCK PiThreadListLock;
|
||||
extern ULONG PiNrThreadsAwaitingReaping;
|
||||
extern ULONG MmGlobalKernelPageDirectory[1024];
|
||||
|
||||
VOID STDCALL PiWakeupReaperThread(VOID);
|
||||
VOID KeSetBaseGdtSelector(ULONG Entry, PVOID Base);
|
||||
|
||||
|
||||
/*
|
||||
* FUNCTIONS: Switches to another thread's context
|
||||
* ARGUMENTS:
|
||||
* Thread = Thread to switch to
|
||||
* OldThread = Thread to switch from
|
||||
*/
|
||||
__declspec(naked)
|
||||
VOID
|
||||
Ki386ContextSwitch(struct _KTHREAD* NewThread, struct _KTHREAD* OldThread)
|
||||
{
|
||||
__asm
|
||||
{
|
||||
push ebp
|
||||
mov ebp, esp
|
||||
|
||||
/* Save callee save registers. */
|
||||
push ebx
|
||||
push esi
|
||||
push edi
|
||||
|
||||
cli /* This is a critical section for this processor. */
|
||||
|
||||
/* Get the pointer to the new thread. */
|
||||
mov ebx, NewThread
|
||||
|
||||
/*
|
||||
* Set the base of the TEB selector to the base of the TEB for
|
||||
* this thread.
|
||||
*/
|
||||
push ebx
|
||||
push KTHREAD_TEB[ebx]
|
||||
push TEB_SELECTOR
|
||||
call KeSetBaseGdtSelector
|
||||
add esp, 8
|
||||
pop ebx
|
||||
|
||||
/*
|
||||
* Load the PCR selector.
|
||||
*/
|
||||
mov eax, PCR_SELECTOR
|
||||
mov fs, ax
|
||||
|
||||
/*
|
||||
* Set the current thread information in the PCR.
|
||||
*/
|
||||
mov fs:KPCR_CURRENT_THREAD, ebx
|
||||
|
||||
/*
|
||||
* Set the current LDT
|
||||
*/
|
||||
xor eax, eax
|
||||
mov edi, ETHREAD_THREADS_PROCESS[ebx]
|
||||
test word ptr KPROCESS_LDT_DESCRIPTOR0[edi], 0xFFFF
|
||||
jz L4
|
||||
|
||||
push KPROCESS_LDT_DESCRIPTOR1[edi]
|
||||
push KPROCESS_LDT_DESCRIPTOR0[edi]
|
||||
push LDT_SELECTOR
|
||||
call KeSetGdtSelector
|
||||
add esp, 12
|
||||
|
||||
mov eax, LDT_SELECTOR
|
||||
|
||||
L4:
|
||||
lldt ax
|
||||
|
||||
/*
|
||||
* Load up the iomap offset for this thread in
|
||||
* preparation for setting it below.
|
||||
*/
|
||||
mov eax, KPROCESS_IOPM_OFFSET[edi]
|
||||
|
||||
/*
|
||||
* FIXME: Save debugging state.
|
||||
*/
|
||||
|
||||
/*
|
||||
* FIXME: Save floating point state.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Switch stacks
|
||||
*/
|
||||
mov ebx, 12[ebp]
|
||||
mov KTHREAD_KERNEL_STACK[ebx], esp
|
||||
mov ebx, 8[ebp]
|
||||
mov esp, KTHREAD_KERNEL_STACK[ebx]
|
||||
mov edi, KTHREAD_STACK_LIMIT[ebx]
|
||||
|
||||
/*
|
||||
* Set the stack pointer in this processors TSS
|
||||
*/
|
||||
mov esi, fs:KPCR_TSS
|
||||
|
||||
/*
|
||||
* Set current IOPM offset in the TSS
|
||||
*/
|
||||
mov KTSS_IOMAPBASE[esi], ax
|
||||
|
||||
mov eax, KTHREAD_INITIAL_STACK[ebx]
|
||||
mov KTSS_ESP0[esi], eax
|
||||
|
||||
/*
|
||||
* Change the address space
|
||||
*/
|
||||
mov ebx, ETHREAD_THREADS_PROCESS[ebx]
|
||||
mov eax, KPROCESS_DIRECTORY_TABLE_BASE[ebx]
|
||||
mov cr3, eax
|
||||
|
||||
/*
|
||||
* Set up the PDE for the top of the new stack.
|
||||
*/
|
||||
mov ebx, 0
|
||||
L2:
|
||||
mov esi, edi
|
||||
shr esi, 22
|
||||
mov eax, 0xF03C0000[esi*4]
|
||||
cmp eax, 0
|
||||
jne L1
|
||||
mov eax, MmGlobalKernelPageDirectory[esi*4]
|
||||
mov 0xF03C0000[esi*4], eax
|
||||
L1:
|
||||
add edi, 4096
|
||||
inc ebx
|
||||
cmp ebx, (MM_STACK_SIZE / 4096)
|
||||
jl L2
|
||||
|
||||
/*
|
||||
* FIXME: Restore floating point state
|
||||
*/
|
||||
|
||||
/*
|
||||
* FIXME: Restore debugging state
|
||||
*/
|
||||
|
||||
/*
|
||||
* Exit the critical section
|
||||
*/
|
||||
sti
|
||||
}
|
||||
|
||||
KeReleaseSpinLockFromDpcLevel(&PiThreadListLock);
|
||||
|
||||
if (PiNrThreadsAwaitingReaping) {
|
||||
PiWakeupReaperThread();
|
||||
}
|
||||
|
||||
__asm
|
||||
{
|
||||
/*
|
||||
* Restore the saved register and exit
|
||||
*/
|
||||
pop edi
|
||||
pop esi
|
||||
pop ebx
|
||||
|
||||
pop ebp
|
||||
ret
|
||||
}
|
||||
}
|
@@ -1,256 +0,0 @@
|
||||
/*
|
||||
* ReactOS kernel
|
||||
* Copyright (C) 2000 David Welch <welch@cwcom.net>
|
||||
*
|
||||
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-25
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/*
|
||||
* FILE: ntoskrnl/ke/i386/vm86_sup.S
|
||||
* PURPOSE: V86 mode support
|
||||
* PROGRAMMER: David Welch (welch@cwcom.net)
|
||||
* UPDATE HISTORY:
|
||||
* Created 09/10/00
|
||||
*/
|
||||
|
||||
/* INCLUDES ******************************************************************/
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include <ddk/ntddk.h>
|
||||
#include <ddk/status.h>
|
||||
#include <internal/i386/segment.h>
|
||||
#include <internal/i386/fpu.h>
|
||||
#include <internal/ps.h>
|
||||
#include <ddk/defines.h>
|
||||
#include <internal/v86m.h>
|
||||
#include <ntos/tss.h>
|
||||
#include <internal/trap.h>
|
||||
#include <internal/ps.h>
|
||||
|
||||
#include <roscfg.h>
|
||||
#include <internal/ntoskrnl.h>
|
||||
#include <internal/i386/segment.h>
|
||||
#include <internal/ps.h>
|
||||
|
||||
|
||||
// Taken from ntoskrnl/include/internal/v86m.h, since that one must be fixed
|
||||
// a bit before it could be used from here.
|
||||
#define KV86M_REGISTERS_EBP (0x0)
|
||||
#define KV86M_REGISTERS_EDI (0x4)
|
||||
#define KV86M_REGISTERS_ESI (0x8)
|
||||
#define KV86M_REGISTERS_EDX (0xC)
|
||||
#define KV86M_REGISTERS_ECX (0x10)
|
||||
#define KV86M_REGISTERS_EBX (0x14)
|
||||
#define KV86M_REGISTERS_EAX (0x18)
|
||||
#define KV86M_REGISTERS_DS (0x1C)
|
||||
#define KV86M_REGISTERS_ES (0x20)
|
||||
#define KV86M_REGISTERS_FS (0x24)
|
||||
#define KV86M_REGISTERS_GS (0x28)
|
||||
#define KV86M_REGISTERS_EIP (0x2C)
|
||||
#define KV86M_REGISTERS_CS (0x30)
|
||||
#define KV86M_REGISTERS_EFLAGS (0x34)
|
||||
#define KV86M_REGISTERS_ESP (0x38)
|
||||
#define KV86M_REGISTERS_SS (0x3C)
|
||||
|
||||
|
||||
void KiV86Complete();
|
||||
|
||||
|
||||
/*
|
||||
* Starts in v86 mode with the registers set to the
|
||||
* specified values.
|
||||
*/
|
||||
|
||||
__declspec(naked)
|
||||
VOID Ki386RetToV86Mode(KV86M_REGISTERS* InRegs,
|
||||
KV86M_REGISTERS* OutRegs)
|
||||
{
|
||||
__asm
|
||||
{
|
||||
/*
|
||||
* Setup a stack frame
|
||||
*/
|
||||
push ebp
|
||||
mov ebp, esp
|
||||
|
||||
pushad /* Save registers */
|
||||
|
||||
mov ebx, InRegs
|
||||
|
||||
/*
|
||||
* Save ebp
|
||||
*/
|
||||
push ebp
|
||||
|
||||
/*
|
||||
* Save a pointer to IN_REGS which the v86m exception handler will
|
||||
* use to handle exceptions
|
||||
*/
|
||||
push ebx
|
||||
|
||||
/*
|
||||
* Since we are going to fiddle with the stack pointer this must be
|
||||
* a critical section for this processor
|
||||
*/
|
||||
|
||||
/*
|
||||
* Save the old initial stack
|
||||
*/
|
||||
mov esi, fs:KPCR_CURRENT_THREAD
|
||||
mov edi, KTHREAD_INITIAL_STACK[esi]
|
||||
push edi
|
||||
|
||||
/*
|
||||
* We also need to set the stack in the kthread structure
|
||||
*/
|
||||
mov KTHREAD_INITIAL_STACK[esi], esp
|
||||
|
||||
/*
|
||||
* The stack used for handling exceptions from v86 mode in this thread
|
||||
* will be the current stack adjusted so we don't overwrite the
|
||||
* existing stack frames
|
||||
*/
|
||||
mov esi, fs:KPCR_TSS
|
||||
mov KTSS_ESP0[esi], esp
|
||||
|
||||
/*
|
||||
* Create the stack frame for an iret to v86 mode
|
||||
*/
|
||||
push KV86M_REGISTERS_GS[ebx]
|
||||
push KV86M_REGISTERS_FS[ebx]
|
||||
push KV86M_REGISTERS_DS[ebx]
|
||||
push KV86M_REGISTERS_ES[ebx]
|
||||
push KV86M_REGISTERS_SS[ebx]
|
||||
push KV86M_REGISTERS_ESP[ebx]
|
||||
push KV86M_REGISTERS_EFLAGS[ebx]
|
||||
push KV86M_REGISTERS_CS[ebx]
|
||||
push KV86M_REGISTERS_EIP[ebx]
|
||||
|
||||
/*
|
||||
* Setup the CPU registers
|
||||
*/
|
||||
mov eax, KV86M_REGISTERS_EAX[ebx]
|
||||
mov ecx, KV86M_REGISTERS_ECX[ebx]
|
||||
mov edx, KV86M_REGISTERS_EDX[ebx]
|
||||
mov esi, KV86M_REGISTERS_ESI[ebx]
|
||||
mov edi, KV86M_REGISTERS_EDI[ebx]
|
||||
mov ebp, KV86M_REGISTERS_EBP[ebx]
|
||||
mov ebx, KV86M_REGISTERS_EBX[ebx]
|
||||
|
||||
/*
|
||||
* Go to v86 mode
|
||||
*/
|
||||
iretd
|
||||
|
||||
/*
|
||||
* Handle the completion of a vm86 routine. We are called from
|
||||
* an exception handler with the registers at the point of the
|
||||
* exception on the stack.
|
||||
*/
|
||||
|
||||
jmp KiV86Complete // TMN: Function-splitting
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void KiV86Complete()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
/* Restore the original ebp */
|
||||
mov ebp, TF_ORIG_EBP[esp]
|
||||
|
||||
/* Get a pointer to the OUT_REGS structure */
|
||||
mov ebx, 12[ebp] // OutRegs
|
||||
|
||||
/* Skip debug information and unsaved registers */
|
||||
add esp, 0x30
|
||||
|
||||
/* Ignore 32-bit segment registers */
|
||||
add esp, 12
|
||||
|
||||
/* Save the vm86 registers into the OUT_REGS structure */
|
||||
pop dword ptr KV86M_REGISTERS_EDX[ebx]
|
||||
pop dword ptr KV86M_REGISTERS_ECX[ebx]
|
||||
pop dword ptr KV86M_REGISTERS_EAX[ebx]
|
||||
|
||||
/* Restore the old previous mode */
|
||||
pop eax
|
||||
mov ss:KTHREAD_PREVIOUS_MODE[esi], al
|
||||
|
||||
/* Restore the old exception handler list */
|
||||
pop eax
|
||||
mov fs:KPCR_EXCEPTION_LIST, eax
|
||||
|
||||
/* Ignore the 32-bit fs register */
|
||||
add esp, 4
|
||||
|
||||
pop dword ptr KV86M_REGISTERS_EDI[ebx]
|
||||
pop dword ptr KV86M_REGISTERS_ESI[ebx]
|
||||
pop dword ptr KV86M_REGISTERS_EBX[ebx]
|
||||
pop dword ptr KV86M_REGISTERS_EBP[ebx]
|
||||
|
||||
/* Ignore error code */
|
||||
add esp, 4
|
||||
|
||||
pop dword ptr KV86M_REGISTERS_EIP[ebx]
|
||||
pop dword ptr KV86M_REGISTERS_CS[ebx]
|
||||
pop dword ptr KV86M_REGISTERS_EFLAGS[ebx]
|
||||
pop dword ptr KV86M_REGISTERS_ESP[ebx]
|
||||
pop dword ptr KV86M_REGISTERS_SS[ebx]
|
||||
pop dword ptr KV86M_REGISTERS_ES[ebx]
|
||||
pop dword ptr KV86M_REGISTERS_DS[ebx]
|
||||
pop dword ptr KV86M_REGISTERS_FS[ebx]
|
||||
pop dword ptr KV86M_REGISTERS_GS[ebx]
|
||||
|
||||
/*
|
||||
* We are going to fiddle with the stack so this must be a critical
|
||||
* section for this process
|
||||
*/
|
||||
cli
|
||||
|
||||
/*
|
||||
* Restore the initial stack
|
||||
*/
|
||||
pop eax
|
||||
mov esi, fs:KPCR_TSS
|
||||
mov KTSS_ESP0[esi], eax
|
||||
|
||||
/*
|
||||
* We also need to set the stack in the kthread structure
|
||||
*/
|
||||
mov esi, fs:KPCR_CURRENT_THREAD
|
||||
mov edi, KTHREAD_INITIAL_STACK[esi]
|
||||
mov KTHREAD_INITIAL_STACK[esi], eax
|
||||
|
||||
/* Exit the critical section */
|
||||
sti
|
||||
|
||||
/* Ignore IN_REGS pointer */
|
||||
add esp, 4
|
||||
|
||||
/* Ignore ebp restored above */
|
||||
add esp, 4
|
||||
|
||||
/* Return to caller */
|
||||
popad
|
||||
mov esp, ebp
|
||||
pop ebp
|
||||
ret
|
||||
|
||||
} // end of __asm block
|
||||
}
|
@@ -1,15 +0,0 @@
|
||||
; This file is vital. It tells the linker how to order some functions
|
||||
; and some data, that unfortunately is assumed to be at low location
|
||||
; and in known order to eachother respectively?
|
||||
|
||||
MultibootStub
|
||||
our_memmove
|
||||
dummy_placeholder
|
||||
NtProcessStartup@4
|
||||
initialize_page_directory
|
||||
relocate_pointer_log_to_phys
|
||||
; Order some data that there is some assumptions about...
|
||||
init_stack
|
||||
init_stack_top
|
||||
trap_stack
|
||||
trap_stack_top
|
@@ -1,126 +0,0 @@
|
||||
#include <ddk/ntddk.h>
|
||||
|
||||
|
||||
void MmSafeCopyToUserRestart();
|
||||
void MmSafeCopyToUserUnsafeStart();
|
||||
void MmSafeCopyFromUserUnsafeStart();
|
||||
void MmSafeCopyFromUserRestart();
|
||||
|
||||
/*
|
||||
* NTSTATUS MmSafeCopyFromUser(PVOID Dest, PVOID Src,
|
||||
* ULONG NumberOfBytes)
|
||||
*/
|
||||
__declspec(naked)
|
||||
NTSTATUS MmSafeCopyFromUser(PVOID Dest, const VOID *Src, ULONG Count)
|
||||
{
|
||||
__asm
|
||||
{
|
||||
push ebp
|
||||
mov ebp,esp
|
||||
|
||||
push esi
|
||||
push edi
|
||||
push ecx
|
||||
|
||||
mov edi, 8[ebp]
|
||||
mov esi, 12[ebp]
|
||||
mov ecx, 16[ebp]
|
||||
|
||||
/*
|
||||
* Default return code
|
||||
*/
|
||||
xor eax,eax
|
||||
|
||||
jmp MmSafeCopyFromUserUnsafeStart
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
__declspec(naked)
|
||||
void MmSafeCopyFromUserUnsafeStart()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
/*
|
||||
* This is really a synthetic instruction since if we incur a
|
||||
* pagefault then eax will be set to an appropiate STATUS code
|
||||
*/
|
||||
cld
|
||||
rep movsb
|
||||
|
||||
jmp MmSafeCopyFromUserRestart
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void MmSafeCopyFromUserRestart()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
pop ecx
|
||||
pop edi
|
||||
pop esi
|
||||
|
||||
pop ebp
|
||||
ret
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
/*
|
||||
* NTSTATUS MmSafeCopyToUser(PVOID Dest, PVOID Src,
|
||||
* ULONG NumberOfBytes)
|
||||
*/
|
||||
NTSTATUS MmSafeCopyToUser(PVOID Dest, const VOID *Src, ULONG Count)
|
||||
{
|
||||
__asm
|
||||
{
|
||||
push ebp
|
||||
mov esp,ebp
|
||||
|
||||
push esi
|
||||
push edi
|
||||
push ecx
|
||||
|
||||
mov edi, 8[ebp]
|
||||
mov esi, 12[ebp]
|
||||
mov ecx, 16[ebp]
|
||||
|
||||
/*
|
||||
* Default return code
|
||||
*/
|
||||
xor eax,eax
|
||||
|
||||
jmp MmSafeCopyToUserUnsafeStart
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void MmSafeCopyToUserUnsafeStart()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
/*
|
||||
* This is really a synthetic instruction since if we incur a
|
||||
* pagefault then eax will be set to an appropiate STATUS code
|
||||
*/
|
||||
cld
|
||||
rep movsb
|
||||
jmp MmSafeCopyToUserRestart
|
||||
}
|
||||
}
|
||||
|
||||
__declspec(naked)
|
||||
void MmSafeCopyToUserRestart()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
pop ecx
|
||||
pop edi
|
||||
pop esi
|
||||
|
||||
pop ebp
|
||||
ret
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@@ -1,299 +0,0 @@
|
||||
/*
|
||||
* ReactOS kernel
|
||||
* Copyright (C) 2000 David Welch <welch@cwcom.net>
|
||||
*
|
||||
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/*
|
||||
* FILE: ntoskrnl/ke/i386/vm86_sup.S
|
||||
* PURPOSE: V86 mode support
|
||||
* PROGRAMMER: David Welch (welch@cwcom.net)
|
||||
* UPDATE HISTORY:
|
||||
* Created 09/10/00
|
||||
*/
|
||||
|
||||
/* INCLUDES ******************************************************************/
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include <ddk/ntddk.h>
|
||||
#include <ddk/status.h>
|
||||
#include <internal/i386/segment.h>
|
||||
#include <internal/i386/fpu.h>
|
||||
#include <internal/ps.h>
|
||||
#include <ddk/defines.h>
|
||||
#include <internal/v86m.h>
|
||||
#include <ntos/tss.h>
|
||||
//#include <ntos/service.h>
|
||||
#include <internal/trap.h>
|
||||
#include <internal/ps.h>
|
||||
|
||||
#include <roscfg.h>
|
||||
#include <internal/ntoskrnl.h>
|
||||
#include <internal/i386/segment.h>
|
||||
|
||||
|
||||
#define EXCEPTION_UNWINDING 0x02
|
||||
|
||||
#define EREC_FLAGS 0x04
|
||||
|
||||
#define ExceptionContinueExecution 0
|
||||
#define ExceptionContinueSearch 1
|
||||
#define ExceptionNestedException 2
|
||||
#define ExceptionCollidedUnwind 3
|
||||
|
||||
//.globl _RtlpExecuteHandlerForException
|
||||
//.globl _RtlpExecuteHandlerForUnwind
|
||||
|
||||
#define CONTEXT_FLAGS 0x00
|
||||
#define CONTEXT_SEGGS 0x8C
|
||||
#define CONTEXT_SEGFS 0x90
|
||||
#define CONTEXT_SEGES 0x94
|
||||
#define CONTEXT_SEGDS 0x98
|
||||
#define CONTEXT_EDI 0x9C
|
||||
#define CONTEXT_ESI 0xA0
|
||||
#define CONTEXT_EBX 0xA4
|
||||
#define CONTEXT_EDX 0xA8
|
||||
#define CONTEXT_ECX 0xAC
|
||||
#define CONTEXT_EAX 0xB0
|
||||
#define CONTEXT_EBP 0xB4
|
||||
#define CONTEXT_EIP 0xB8
|
||||
#define CONTEXT_SEGCS 0xBC
|
||||
#define CONTEXT_EFLAGS 0xC0
|
||||
#define CONTEXT_ESP 0xC4
|
||||
#define CONTEXT_SEGSS 0xC8
|
||||
|
||||
|
||||
#define RCC_CONTEXT 0x08
|
||||
|
||||
|
||||
VOID STDCALL
|
||||
AsmDebug(ULONG Value);
|
||||
|
||||
|
||||
// EAX = value to print
|
||||
__declspec(naked)
|
||||
void do_debug()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
pusha
|
||||
push eax
|
||||
call AsmDebug
|
||||
popa
|
||||
ret
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#define REH_ERECORD 0x08
|
||||
#define REH_RFRAME 0x0C
|
||||
#define REH_CONTEXT 0x10
|
||||
#define REH_DCONTEXT 0x14
|
||||
#define REH_EROUTINE 0x18
|
||||
|
||||
// Parameters:
|
||||
// None
|
||||
// Registers:
|
||||
// [EBP+08h] - PEXCEPTION_RECORD ExceptionRecord
|
||||
// [EBP+0Ch] - PEXCEPTION_REGISTRATION RegistrationFrame
|
||||
// [EBP+10h] - PVOID Context
|
||||
// [EBP+14h] - PVOID DispatcherContext
|
||||
// [EBP+18h] - PEXCEPTION_HANDLER ExceptionRoutine
|
||||
// EDX - Address of protecting exception handler
|
||||
// Returns:
|
||||
// EXCEPTION_DISPOSITION
|
||||
// Notes:
|
||||
// Setup the protecting exception handler and call the exception
|
||||
// handler in the right context.
|
||||
__declspec(naked)
|
||||
void RtlpExecuteHandler()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
push ebp
|
||||
mov ebp, esp
|
||||
push REH_RFRAME[ebp]
|
||||
|
||||
push edx
|
||||
push fs:0x0
|
||||
mov fs:0x0, esp
|
||||
|
||||
// Prepare to call the exception handler
|
||||
push REH_DCONTEXT[ebp]
|
||||
push REH_CONTEXT[ebp]
|
||||
push REH_RFRAME[ebp]
|
||||
push REH_ERECORD[ebp]
|
||||
|
||||
// Now call the exception handler
|
||||
mov eax, REH_EROUTINE[ebp]
|
||||
call eax
|
||||
|
||||
cmp fs:0x0, -1
|
||||
jne reh_stack_looks_ok
|
||||
|
||||
// This should not happen
|
||||
push 0
|
||||
push 0
|
||||
push 0
|
||||
push 0
|
||||
call RtlAssert
|
||||
|
||||
reh_loop:
|
||||
jmp reh_loop
|
||||
|
||||
reh_stack_looks_ok:
|
||||
mov esp, fs:0x0
|
||||
|
||||
// Return to the 'front-end' for this function
|
||||
pop dword ptr fs:0x0
|
||||
mov esp, ebp
|
||||
pop ebp
|
||||
ret
|
||||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
||||
#endif // 0
|
||||
|
||||
#define REP_ERECORD 0x04
|
||||
#define REP_RFRAME 0x08
|
||||
#define REP_CONTEXT 0x0C
|
||||
#define REP_DCONTEXT 0x10
|
||||
|
||||
// Parameters:
|
||||
// [ESP+04h] - PEXCEPTION_RECORD ExceptionRecord
|
||||
// [ESP+08h] - PEXCEPTION_REGISTRATION RegistrationFrame
|
||||
// [ESP+0Ch] - PCONTEXT Context
|
||||
// [ESP+10h] - PVOID DispatcherContext
|
||||
// Registers:
|
||||
// None
|
||||
// Returns:
|
||||
// EXCEPTION_DISPOSITION
|
||||
// Notes:
|
||||
// This exception handler protects the exception handling
|
||||
// mechanism by detecting nested exceptions.
|
||||
__declspec(naked)
|
||||
void RtlpExceptionProtector()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
mov eax, ExceptionContinueSearch
|
||||
mov ecx, REP_ERECORD[esp]
|
||||
test EREC_FLAGS[ecx], EXCEPTION_UNWINDING
|
||||
jnz rep_end
|
||||
|
||||
// Unwinding is not taking place, so return ExceptionNestedException
|
||||
|
||||
// Set DispatcherContext field to the exception registration for the
|
||||
// exception handler that executed when a nested exception occurred
|
||||
mov ecx, REP_DCONTEXT[esp]
|
||||
mov eax, REP_RFRAME[esp]
|
||||
mov [ecx], eax
|
||||
mov eax, ExceptionNestedException
|
||||
|
||||
rep_end:
|
||||
ret
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Parameters:
|
||||
// [ESP+04h] - PEXCEPTION_RECORD ExceptionRecord
|
||||
// [ESP+08h] - PEXCEPTION_REGISTRATION RegistrationFrame
|
||||
// [ESP+0Ch] - PCONTEXT Context
|
||||
// [ESP+10h] - PVOID DispatcherContext
|
||||
// [ESP+14h] - PEXCEPTION_HANDLER ExceptionHandler
|
||||
// Registers:
|
||||
// None
|
||||
// Returns:
|
||||
// EXCEPTION_DISPOSITION
|
||||
// Notes:
|
||||
// Front-end
|
||||
__declspec(naked)
|
||||
void RtlpExecuteHandlerForException()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
mov edx, RtlpExceptionProtector
|
||||
jmp RtlpExecuteHandler
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#define RUP_ERECORD 0x04
|
||||
#define RUP_RFRAME 0x08
|
||||
#define RUP_CONTEXT 0x0C
|
||||
#define RUP_DCONTEXT 0x10
|
||||
|
||||
// Parameters:
|
||||
// [ESP+04h] - PEXCEPTION_RECORD ExceptionRecord
|
||||
// [ESP+08h] - PEXCEPTION_REGISTRATION RegistrationFrame
|
||||
// [ESP+0Ch] - PCONTEXT Context
|
||||
// [ESP+10h] - PVOID DispatcherContext
|
||||
// Registers:
|
||||
// None
|
||||
// Returns:
|
||||
// EXCEPTION_DISPOSITION
|
||||
// Notes:
|
||||
// This exception handler protects the exception handling
|
||||
// mechanism by detecting collided unwinds.
|
||||
__declspec(naked)
|
||||
void RtlpUnwindProtector()
|
||||
{
|
||||
__asm
|
||||
{
|
||||
mov eax, ExceptionContinueSearch
|
||||
mov RUP_ERECORD[esp], ecx
|
||||
test EREC_FLAGS[ecx], EXCEPTION_UNWINDING
|
||||
jz rup_end
|
||||
|
||||
// Unwinding is taking place, so return ExceptionCollidedUnwind
|
||||
|
||||
mov ecx, RUP_RFRAME[esp]
|
||||
mov edx, RUP_DCONTEXT[esp]
|
||||
|
||||
// Set DispatcherContext field to the exception registration for the
|
||||
// exception handler that executed when a collision occurred
|
||||
mov eax, RUP_RFRAME[ecx]
|
||||
mov [edx], eax
|
||||
mov eax, ExceptionCollidedUnwind
|
||||
|
||||
rup_end:
|
||||
ret
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Parameters:
|
||||
// [ESP+04h] - PEXCEPTION_RECORD ExceptionRecord
|
||||
// [ESP+08h] - PEXCEPTION_REGISTRATION RegistrationFrame
|
||||
// [ESP+0Ch] - PCONTEXT Context
|
||||
// [ESP+10h] - PVOID DispatcherContext
|
||||
// [ESP+14h] - PEXCEPTION_HANDLER ExceptionHandler
|
||||
// Registers:
|
||||
// None
|
||||
// Returns:
|
||||
// EXCEPTION_DISPOSITION
|
||||
__declspec(naked)
|
||||
void RtlpExecuteHandlerForUnwind()
|
||||
{
|
||||
__asm mov edx, RtlpUnwindProtector
|
||||
__asm jmp RtlpExecuteHandler
|
||||
}
|
||||
|
22
reactos/.cvsignore
Normal file
22
reactos/.cvsignore
Normal file
@@ -0,0 +1,22 @@
|
||||
dist
|
||||
reactos
|
||||
*.sys
|
||||
*.exe
|
||||
*.dll
|
||||
*.cpl
|
||||
*.a
|
||||
*.o
|
||||
*.d
|
||||
*.coff
|
||||
*.dsp
|
||||
*.dsw
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opt
|
||||
*.sym
|
||||
*.plg
|
||||
*.bak
|
||||
*.zip
|
||||
*.iso
|
||||
*.cab
|
||||
doxy-doc
|
340
reactos/COPYING
Normal file
340
reactos/COPYING
Normal file
@@ -0,0 +1,340 @@
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
675 Mass Ave, Cambridge, MA 02139, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
74
reactos/CREDITS
Normal file
74
reactos/CREDITS
Normal file
@@ -0,0 +1,74 @@
|
||||
ReactOS is available thanks to the work of
|
||||
|
||||
Emanuele Aliberti <ea@iol.it>
|
||||
Robert Bergkvist <fragdance@hotmail.com>
|
||||
Hartmut Birr <hartmut.birr@gmx.de>
|
||||
Aleksey Bragin <aleksey@studiocerebral.com>
|
||||
Richard Campbell <eek2121@comcast.net>
|
||||
Gunnar Andre' Dalsnes <hardon@online.no>
|
||||
Arindam Das
|
||||
Boudewijn Dekker <ariadne@xs4all.nl>
|
||||
Robert Dickenson <robd@reactos.org>
|
||||
Marty Dill <mdill@uvic.ca>
|
||||
Jason Eager
|
||||
Steven Edwards <steven_ed4153@yahoo.com>
|
||||
Iwan Fatahi <i_fatahi@hotmail.com>
|
||||
Jason Filby <jasonfilby@yahoo.com>
|
||||
Martin Fuchs <martin-fuchs@gmx.net>
|
||||
Jurgen van Gael <jurgen.vangael@student.kuleuven.ac.be>
|
||||
Ge van Geldorp <ge@gse.nl>
|
||||
Andrew Greenwood <lists@silverblade.co.uk>
|
||||
Casper S. Hornstrup <chorns@users.sourceforge.net>
|
||||
KJK::Hyperion <noog@libero.it>
|
||||
Eugene Ingerman <geneing@myrealbox.com>
|
||||
Rex Jolliff <rex@lvcablemodem.com>
|
||||
Guido de Jong
|
||||
Victor Kirhenshtein <sauros@iname.com>
|
||||
Eric Kohl <ekohl@rz-online.de>
|
||||
Hans Kremer
|
||||
Frederik Leemans
|
||||
Jean Michault
|
||||
Royce Mitchell III <royce3@ev1.net>
|
||||
Filip Navara <xnavara@volny.cz>
|
||||
Jim Noeth
|
||||
Mike Nordell ("tamlin")
|
||||
Hernan Ochoa
|
||||
Brian Palmer <brianp@sginet.com>
|
||||
Paolo Pantaleo <paolopan@freemail.it>
|
||||
Matt Pyne
|
||||
Phillip Susi <phreak@iag.net>
|
||||
James B. Tabor <jimtabor@adsl-64-217-116-74.dsl.hstntx.swbell.net>
|
||||
Mark Tempel <mtempel@visi.com>
|
||||
Vizzini <vizzini@plasmic.com>
|
||||
Mark Weaver <mark@npsl.co.uk>
|
||||
Thomas Weidenmueller <w3seek@users.sourceforge.net>
|
||||
Jason Weiler
|
||||
David Welch <welch@cwcom.net>
|
||||
Jonathan Wilson <jonwil@tpgi.com.au>
|
||||
Art Yerkes <ayerkes@speakeasy.net>
|
||||
|
||||
Source and inspiration from
|
||||
|
||||
WINE (http://www.winehq.com)
|
||||
WinFree (http://www.stack.nl/~onno/win32/)
|
||||
Linux (http://www.kernel.org)
|
||||
XFree86 (http://www.xfree86.org/)
|
||||
|
||||
References (Rex's at least)
|
||||
|
||||
Baker, Art. The Windows NT Device Driver Book. Prentice Hall, 1997.
|
||||
Borate, Dabak & Phadke. Undocumented Windows NT. M&T Books, 1999.
|
||||
Brain, Marshall. Win32 System Services. Prentice Hall, 1996.
|
||||
Cant, Chris. Writing Windows WDM Device Drivers. R&D Books, 1999.
|
||||
Canton & Sanchez. IBM Microcomputers: A Programmer's Handbook. McGraw Hill, 1990.
|
||||
Davis & Wallace. Windows Undocumented File Formats. R&D Books, 1997.
|
||||
Mason & Viscarola. Windows NT Device Driver Development. Macmillan, 1999.
|
||||
Mitchell, Stan. Inside the Windows 95 File System. O'Reilly, 1997.
|
||||
Murray, James D. Windows NT Event Logging. O'Reilly, 1998.
|
||||
Nagar, Rajeev. Windows NT File System Internals. O'Reilly, 1997.
|
||||
Osbourne, Sandra. Windows NT Registry: A Settings Reference. New Riders, 1998.
|
||||
Pietrek, Matt. Windows 95 System Programming Secrets. IDG, 1995.
|
||||
Richter, Jeffery. Advanced Windows, 3rd ed. Microsoft, 1997.
|
||||
Simon, Richard J. Windows NT Win32 API Superbible. Waite Group, 1996.
|
||||
Solomon, David A. Inside Windows NT, 2nd Ed. Microsoft, 1998.
|
||||
"The NT Insider." Open Systems Resources, 1999-2000.
|
3024
reactos/ChangeLog
Normal file
3024
reactos/ChangeLog
Normal file
File diff suppressed because it is too large
Load Diff
211
reactos/Doxyfile
Normal file
211
reactos/Doxyfile
Normal file
@@ -0,0 +1,211 @@
|
||||
# Doxyfile 1.3.5
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Project related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
PROJECT_NAME = ReactOS
|
||||
PROJECT_NUMBER =
|
||||
OUTPUT_DIRECTORY = doxy-doc
|
||||
OUTPUT_LANGUAGE = English
|
||||
USE_WINDOWS_ENCODING = YES
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
REPEAT_BRIEF = YES
|
||||
ALWAYS_DETAILED_SEC = NO
|
||||
INLINE_INHERITED_MEMB = NO
|
||||
FULL_PATH_NAMES = YES
|
||||
STRIP_FROM_PATH = .
|
||||
SHORT_NAMES = NO
|
||||
JAVADOC_AUTOBRIEF = YES
|
||||
MULTILINE_CPP_IS_BRIEF = NO
|
||||
DETAILS_AT_TOP = NO
|
||||
INHERIT_DOCS = NO
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
TAB_SIZE = 8
|
||||
ALIASES =
|
||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||
OPTIMIZE_OUTPUT_JAVA = NO
|
||||
SUBGROUPING = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Build related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
EXTRACT_ALL = YES
|
||||
EXTRACT_PRIVATE = YES
|
||||
EXTRACT_STATIC = YES
|
||||
EXTRACT_LOCAL_CLASSES = YES
|
||||
HIDE_UNDOC_MEMBERS = NO
|
||||
HIDE_UNDOC_CLASSES = NO
|
||||
HIDE_FRIEND_COMPOUNDS = NO
|
||||
HIDE_IN_BODY_DOCS = NO
|
||||
INTERNAL_DOCS = YES
|
||||
CASE_SENSE_NAMES = YES
|
||||
HIDE_SCOPE_NAMES = NO
|
||||
SHOW_INCLUDE_FILES = YES
|
||||
INLINE_INFO = YES
|
||||
SORT_MEMBER_DOCS = YES
|
||||
GENERATE_TODOLIST = YES
|
||||
GENERATE_TESTLIST = YES
|
||||
GENERATE_BUGLIST = YES
|
||||
GENERATE_DEPRECATEDLIST= YES
|
||||
ENABLED_SECTIONS =
|
||||
MAX_INITIALIZER_LINES = 30
|
||||
SHOW_USED_FILES = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to warning and progress messages
|
||||
#---------------------------------------------------------------------------
|
||||
QUIET = NO
|
||||
WARNINGS = NO
|
||||
WARN_IF_UNDOCUMENTED = NO
|
||||
WARN_IF_DOC_ERROR = YES
|
||||
WARN_FORMAT = "$file:$line: $text"
|
||||
WARN_LOGFILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = hal \
|
||||
subsys \
|
||||
services \
|
||||
regtests \
|
||||
iface
|
||||
FILE_PATTERNS = *.c \
|
||||
*.h
|
||||
RECURSIVE = YES
|
||||
EXCLUDE = subsys/win32k \
|
||||
subsys/system/explorer
|
||||
EXCLUDE_SYMLINKS = NO
|
||||
EXCLUDE_PATTERNS =
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS =
|
||||
EXAMPLE_RECURSIVE = YES
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER =
|
||||
FILTER_SOURCE_FILES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to source browsing
|
||||
#---------------------------------------------------------------------------
|
||||
SOURCE_BROWSER = YES
|
||||
INLINE_SOURCES = YES
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
REFERENCED_BY_RELATION = YES
|
||||
REFERENCES_RELATION = YES
|
||||
VERBATIM_HEADERS = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the alphabetical class index
|
||||
#---------------------------------------------------------------------------
|
||||
ALPHABETICAL_INDEX = YES
|
||||
COLS_IN_ALPHA_INDEX = 5
|
||||
IGNORE_PREFIX =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the HTML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_HTML = YES
|
||||
HTML_OUTPUT = html
|
||||
HTML_FILE_EXTENSION = .html
|
||||
HTML_HEADER =
|
||||
HTML_FOOTER =
|
||||
HTML_STYLESHEET =
|
||||
HTML_ALIGN_MEMBERS = YES
|
||||
GENERATE_HTMLHELP = NO
|
||||
CHM_FILE =
|
||||
HHC_LOCATION =
|
||||
GENERATE_CHI = NO
|
||||
BINARY_TOC = NO
|
||||
TOC_EXPAND = NO
|
||||
DISABLE_INDEX = NO
|
||||
ENUM_VALUES_PER_LINE = 4
|
||||
GENERATE_TREEVIEW = YES
|
||||
TREEVIEW_WIDTH = 250
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the LaTeX output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_LATEX = NO
|
||||
LATEX_OUTPUT = latex
|
||||
LATEX_CMD_NAME = latex
|
||||
MAKEINDEX_CMD_NAME = makeindex
|
||||
COMPACT_LATEX = NO
|
||||
PAPER_TYPE = a4wide
|
||||
EXTRA_PACKAGES =
|
||||
LATEX_HEADER =
|
||||
PDF_HYPERLINKS = NO
|
||||
USE_PDFLATEX = NO
|
||||
LATEX_BATCHMODE = NO
|
||||
LATEX_HIDE_INDICES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the RTF output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_RTF = NO
|
||||
RTF_OUTPUT = rtf
|
||||
COMPACT_RTF = YES
|
||||
RTF_HYPERLINKS = YES
|
||||
RTF_STYLESHEET_FILE =
|
||||
RTF_EXTENSIONS_FILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the man page output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_MAN = NO
|
||||
MAN_OUTPUT = man
|
||||
MAN_EXTENSION = .3
|
||||
MAN_LINKS = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the XML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_XML = NO
|
||||
XML_OUTPUT = xml
|
||||
XML_SCHEMA =
|
||||
XML_DTD =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options for the AutoGen Definitions output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_AUTOGEN_DEF = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the Perl module output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_PERLMOD = NO
|
||||
PERLMOD_LATEX = NO
|
||||
PERLMOD_PRETTY = YES
|
||||
PERLMOD_MAKEVAR_PREFIX =
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the preprocessor
|
||||
#---------------------------------------------------------------------------
|
||||
ENABLE_PREPROCESSING = NO
|
||||
MACRO_EXPANSION = NO
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
SEARCH_INCLUDES = YES
|
||||
INCLUDE_PATH = include
|
||||
INCLUDE_FILE_PATTERNS = *.h
|
||||
PREDEFINED =
|
||||
EXPAND_AS_DEFINED =
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES =
|
||||
GENERATE_TAGFILE =
|
||||
ALLEXTERNALS = NO
|
||||
EXTERNAL_GROUPS = YES
|
||||
PERL_PATH = /usr/bin/perl
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the dot tool
|
||||
#---------------------------------------------------------------------------
|
||||
CLASS_DIAGRAMS = YES
|
||||
HIDE_UNDOC_RELATIONS = NO
|
||||
HAVE_DOT = YES
|
||||
CLASS_GRAPH = YES
|
||||
COLLABORATION_GRAPH = YES
|
||||
UML_LOOK = NO
|
||||
TEMPLATE_RELATIONS = NO
|
||||
INCLUDE_GRAPH = YES
|
||||
INCLUDED_BY_GRAPH = YES
|
||||
CALL_GRAPH = YES
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
DOT_IMAGE_FORMAT = png
|
||||
DOT_PATH =
|
||||
DOTFILE_DIRS =
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
MAX_DOT_GRAPH_DEPTH = 0
|
||||
GENERATE_LEGEND = YES
|
||||
DOT_CLEANUP = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to the search engine
|
||||
#---------------------------------------------------------------------------
|
||||
SEARCHENGINE = YES
|
73
reactos/INSTALL
Normal file
73
reactos/INSTALL
Normal file
@@ -0,0 +1,73 @@
|
||||
1. Build environment
|
||||
|
||||
To build the system you need either mingw32 installed on Windows or a mingw32
|
||||
cross compiler running on unix. You may obtain MinGW binaries that build
|
||||
ReactOS from http://www.reactos.com.
|
||||
|
||||
|
||||
2. Building ReactOS
|
||||
|
||||
To build from Windows run 'make' (wihout the quotes) from the top directory.
|
||||
To build from unix, edit rules.mak and change the PREFIX variable to the
|
||||
correct value for your cross-compiler. Run 'export HOST=mingw32-linux' to
|
||||
tell the ReactOS build system that it is building ReactOS on a linux machine.
|
||||
Now run 'make'.
|
||||
|
||||
|
||||
3. Installation
|
||||
|
||||
The system can only be installed on the first partition on the first harddisk.
|
||||
The partition must be formatted as FAT16 or FAT32. The system can only be
|
||||
started from DOS and not from a Windows DOS-prompt.
|
||||
|
||||
ReactOS can be installed from the source distribution or from the binary
|
||||
distribution. The two ways to install ReactOS are explained below.
|
||||
|
||||
|
||||
3.1 Installation from sources
|
||||
|
||||
To install ReactOS after building it, type 'make install'. This will create
|
||||
the directory 'reactos' in the top directory. Copy this directory to the root
|
||||
of your first partition on your first harddisk. This is usually c:\ on a
|
||||
Windows machine.
|
||||
|
||||
If you don't want to copy the files manually every time you run a 'make install',
|
||||
you can specify the directory where the files are to be copied to during
|
||||
installation.
|
||||
|
||||
In rules.mak find the variable INSTALL_DIR and change the assigned value to the
|
||||
name of the directory where the files are to be copied to. If you are using
|
||||
Windows this could be:
|
||||
|
||||
INSTALL_DIR = c:\reactos
|
||||
|
||||
If you are on linux this could be:
|
||||
|
||||
INSTALL_DIR = /mnt/windows/reactos
|
||||
|
||||
Save the changes to rules.mak and run 'make install' to install the files to
|
||||
the new location. If you don't want to change rules.mak, you can specify the
|
||||
installtion directory when invoking make. Run
|
||||
'make INSTALL_DIR=c:\reactos install' to install to c:\reactos.
|
||||
|
||||
|
||||
3.2 Installation from binany distribution
|
||||
|
||||
To install ReactOS from the binary distribution, extract the archive contents
|
||||
to c:\reactos. Remember to extract the files with full paths.
|
||||
|
||||
|
||||
4. Booting ReactOS
|
||||
|
||||
Startup in DOS mode. 'cd' to c:\reactos and type 'boot' and press <enter>.
|
||||
A simple shell is started where you can use simple commands like 'cd' and 'dir'.
|
||||
|
||||
|
||||
5. Help
|
||||
|
||||
If you run into problems or have suggestions for making ReactOS better, please
|
||||
surf to the address below and subscribe to one or more of the mailing lists.
|
||||
|
||||
http://www.reactos.com/index.php?tab=discussion§ion=lists
|
||||
|
||||
ReactOS Development Team
|
5
reactos/Jamfile
Normal file
5
reactos/Jamfile
Normal file
@@ -0,0 +1,5 @@
|
||||
# Main jamfile for ReactOS
|
||||
|
||||
SubDir ROS_TOP ;
|
||||
|
||||
SubInclude ROS_TOP Lib ;
|
54
reactos/Jamrules
Normal file
54
reactos/Jamrules
Normal file
@@ -0,0 +1,54 @@
|
||||
# customization for ReactOS goes here
|
||||
|
||||
# The SharedLibrary and SharedLibraryFromObjects rules were
|
||||
# borrowed from here:
|
||||
# http://www.differentpla.net/~roger/devel/jam/tutorial/shared_lib/index.html
|
||||
|
||||
SUFSHR = .dll ;
|
||||
RM = rm ; # rm comes with MinGW, and the default del doesn't work in some cases
|
||||
|
||||
rule SharedLibrary
|
||||
{
|
||||
SharedLibraryFromObjects $(<) : $(>:S=$(SUFOBJ)) ;
|
||||
Objects $(>) ;
|
||||
}
|
||||
|
||||
rule SharedLibraryFromObjects
|
||||
{
|
||||
local _s _t ;
|
||||
|
||||
# Add grist to file names
|
||||
# Add suffix to dll
|
||||
|
||||
_s = [ FGristFiles $(>) ] ;
|
||||
_t = [ FAppendSuffix $(<) : $(SUFSHR) ] ;
|
||||
|
||||
if $(_t) != $(<)
|
||||
{
|
||||
DEPENDS $(<) : $(_t) ;
|
||||
NOTFILE $(<) ;
|
||||
}
|
||||
|
||||
# make compiled sources a dependency of target
|
||||
|
||||
DEPENDS exe : $(_t) ;
|
||||
DEPENDS $(_t) : $(_s) ;
|
||||
MakeLocate $(_t) : $(LOCATE_TARGET) ;
|
||||
|
||||
Clean clean : $(_t) ;
|
||||
|
||||
Link $(_t) : $(_s) ;
|
||||
}
|
||||
|
||||
# nasm needs to know the output file first, or it doesn't
|
||||
# recognize -I :(
|
||||
actions As
|
||||
{
|
||||
$(AS) -o $(<) $(ASFLAGS) -I$(HDRS) $(>)
|
||||
}
|
||||
|
||||
AS = nasm ;
|
||||
|
||||
# why isn't DEFINES working? :(
|
||||
#DEFINES += _M_IX86 ;
|
||||
CCFLAGS += -D_M_IX86 ;
|
504
reactos/LGPL.txt
Normal file
504
reactos/LGPL.txt
Normal file
@@ -0,0 +1,504 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it becomes
|
||||
a de-facto standard. To achieve this, non-free programs must be
|
||||
allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
|
||||
|
852
reactos/Makefile
Normal file
852
reactos/Makefile
Normal file
@@ -0,0 +1,852 @@
|
||||
# $Id: Makefile,v 1.203 2004/01/14 02:14:46 sedwards Exp $
|
||||
#
|
||||
# Global makefile
|
||||
#
|
||||
|
||||
PATH_TO_TOP = .
|
||||
|
||||
#
|
||||
# Define to build ReactOS external targets
|
||||
#
|
||||
ifeq ($(ROS_BUILD_EXT),)
|
||||
ROS_BUILD_EXT = no
|
||||
else
|
||||
ROS_BUILD_EXT = yes
|
||||
endif
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
# Required to run the system
|
||||
COMPONENTS = iface_native iface_additional hallib ntoskrnl
|
||||
|
||||
# Hardware Abstraction Layers
|
||||
# halx86
|
||||
HALS = halx86
|
||||
|
||||
# Bus drivers
|
||||
# acpi isapnp pci
|
||||
BUS = acpi isapnp pci
|
||||
|
||||
# Filesystem libraries
|
||||
# vfatlib
|
||||
LIB_FSLIB = vfatlib
|
||||
|
||||
# Static libraries
|
||||
LIB_STATIC = string rosrtl epsapi uuid zlib
|
||||
|
||||
# Keyboard layout libraries
|
||||
DLLS_KBD = kbdus kbdgr kbdfr kbduk
|
||||
|
||||
# User mode libraries
|
||||
# advapi32 cards crtdll comdlg32 fmifs gdi32 imagehlp kernel32 libpcap packet msafd msvcrt ntdll
|
||||
# epsapi psapi richedit rpcrt4 secur32 user32 version ws2help ws2_32 wsock32 wshirda mswsock
|
||||
# imagehlp imm32
|
||||
DLLS = libwine advapi32 cabinet cards crtdll comdlg32 fmifs freetype gdi32 kernel32 packet lzexpand \
|
||||
msafd msvcrt msvcrt20 ntdll ole32 oledlg psapi richedit rpcrt4 secur32 shell32 shlwapi \
|
||||
syssetup twain unicode user32 userenv version winspool ws2help ws2_32 wsock32 \
|
||||
wshirda imm32 iphlpapi msgina mswsock msimg32 d3d8thk winmm comctl32 $(DLLS_KBD)
|
||||
|
||||
SUBSYS = smss win32k csrss ntvdm
|
||||
|
||||
#
|
||||
# Select the server(s) you want to build
|
||||
#
|
||||
#SERVERS = posix linux os2
|
||||
SERVERS = win32
|
||||
|
||||
# Boot loaders
|
||||
# dos
|
||||
LOADERS = dos
|
||||
|
||||
# Driver support libraries
|
||||
#bzip2 zlib
|
||||
DRIVERS_LIB = bzip2
|
||||
|
||||
# Kernel mode device drivers
|
||||
# Obsolete: ide
|
||||
# beep blue floppy null parallel ramdrv serenum serial videoprt
|
||||
DEVICE_DRIVERS = beep blue debugout floppy null serial videoprt bootvid
|
||||
|
||||
# Kernel mode input drivers
|
||||
INPUT_DRIVERS = keyboard mouclass psaux sermouse
|
||||
|
||||
# Kernel mode file system drivers
|
||||
# cdfs ext2 fs_rec ms np vfat
|
||||
FS_DRIVERS = cdfs fs_rec ms np vfat mup ntfs
|
||||
|
||||
# Kernel mode networking drivers
|
||||
# afd ndis npf tcpip tdi wshtcpip
|
||||
NET_DRIVERS = afd ndis npf tcpip tdi wshtcpip
|
||||
|
||||
# Kernel mode networking device drivers
|
||||
# ne2000 pcnet
|
||||
NET_DEVICE_DRIVERS = ne2000 pcnet
|
||||
|
||||
# Kernel mode storage drivers
|
||||
# atapi cdrom class2 disk scsiport
|
||||
STORAGE_DRIVERS = atapi cdrom class2 disk scsiport diskdump
|
||||
|
||||
# System applications
|
||||
# autochk cmd format services setup usetup welcome winlogon
|
||||
SYS_APPS = autochk cmd explorer format services setup taskmgr userinit usetup welcome winlogon regedit
|
||||
|
||||
# System services
|
||||
# rpcss eventlog
|
||||
SYS_SVC = rpcss eventlog
|
||||
|
||||
APPS = tests testsets utils
|
||||
|
||||
|
||||
# External (sub)systems for ReactOS
|
||||
# rosapps wine posix os2 (requires c++) java (non-existant)
|
||||
EXTERNALS = rosapps wine posix os2
|
||||
|
||||
ifeq ($(ROS_BUILD_EXT),yes)
|
||||
EXT_MODULES = $(EXTERNALS)
|
||||
else
|
||||
EXT_MODULES =
|
||||
endif
|
||||
|
||||
KERNEL_DRIVERS = $(DRIVERS_LIB) $(DEVICE_DRIVERS) $(INPUT_DRIVERS) $(FS_DRIVERS) \
|
||||
$(NET_DRIVERS) $(NET_DEVICE_DRIVERS) $(STORAGE_DRIVERS) VIDEO_DRIVERS
|
||||
|
||||
# Regression tests
|
||||
REGTESTS = regtests
|
||||
|
||||
all: tools dk implib $(LIB_STATIC) $(COMPONENTS) $(HALS) $(BUS) $(LIB_FSLIB) $(DLLS) $(SUBSYS) \
|
||||
$(LOADERS) $(KERNEL_DRIVERS) $(SYS_APPS) $(SYS_SVC) \
|
||||
$(APPS) $(EXT_MODULES) $(REGTESTS)
|
||||
|
||||
#config: $(TOOLS:%=%_config)
|
||||
|
||||
depends: $(LIB_STATIC:%=%_depends) $(LIB_FSLIB:%=%_depends) $(DLLS:%=%_depends) $(SUBSYS:%=%_depends) $(SYS_SVC:%=%_depends) \
|
||||
$(EXT_MODULES:%=%_depends) $(POSIX_LIBS:%=%_depends)
|
||||
|
||||
implib: $(COMPONENTS:%=%_implib) $(HALS:%=%_implib) $(BUS:%=%_implib) \
|
||||
$(LIB_STATIC:%=%_implib) $(LIB_FSLIB:%=%_implib) $(DLLS:%=%_implib) $(LOADERS:%=%_implib) \
|
||||
$(KERNEL_DRIVERS:%=%_implib) $(SUBSYS:%=%_implib) \
|
||||
$(SYS_SVC:%=%_implib) $(EXT_MODULES:%=%_implib)
|
||||
|
||||
clean: tools dk_clean $(HALS:%=%_clean) \
|
||||
$(COMPONENTS:%=%_clean) $(BUS:%=%_clean) $(LIB_STATIC:%=%_clean) $(LIB_FSLIB:%=%_clean) $(DLLS:%=%_clean) \
|
||||
$(LOADERS:%=%_clean) $(KERNEL_DRIVERS:%=%_clean) $(SUBSYS:%=%_clean) \
|
||||
$(SYS_APPS:%=%_clean) $(SYS_SVC:%=%_clean) \
|
||||
$(NET_APPS:%=%_clean) \
|
||||
$(APPS:%=%_clean) $(EXT_MODULES:%=%_clean) $(REGTESTS:%=%_clean) \
|
||||
clean_after tools_clean
|
||||
|
||||
clean_after:
|
||||
$(RM) $(PATH_TO_TOP)/include/roscfg.h
|
||||
|
||||
install: tools install_dirs install_before \
|
||||
$(COMPONENTS:%=%_install) $(HALS:%=%_install) $(BUS:%=%_install) \
|
||||
$(LIB_STATIC:%=%_install) $(LIB_FSLIB:%=%_install) $(DLLS:%=%_install) $(LOADERS:%=%_install) \
|
||||
$(KERNEL_DRIVERS:%=%_install) $(SUBSYS:%=%_install) \
|
||||
$(SYS_APPS:%=%_install) $(SYS_SVC:%=%_install) \
|
||||
$(APPS:%=%_install) $(EXT_MODULES:%=%_install) $(REGTESTS:%=%_install) \
|
||||
registry
|
||||
|
||||
FREELDR_DIR = ../freeldr
|
||||
|
||||
freeldr:
|
||||
$(MAKE) -C $(FREELDR_DIR)
|
||||
|
||||
bootcd_directory_layout:
|
||||
$(RMKDIR) $(BOOTCD_DIR)
|
||||
$(RMKDIR) $(BOOTCD_DIR)/bootdisk
|
||||
$(RMKDIR) $(BOOTCD_DIR)/loader
|
||||
$(RMKDIR) $(BOOTCD_DIR)/reactos
|
||||
$(RMKDIR) $(BOOTCD_DIR)/reactos/system32
|
||||
$(CP) ${FREELDR_DIR}/bootsect/isoboot.bin ${BOOTCD_DIR}/../isoboot.bin
|
||||
$(CP) ${FREELDR_DIR}/bootsect/dosmbr.bin ${BOOTCD_DIR}/loader/dosmbr.bin
|
||||
$(CP) ${FREELDR_DIR}/bootsect/ext2.bin ${BOOTCD_DIR}/loader/ext2.bin
|
||||
$(CP) ${FREELDR_DIR}/bootsect/fat.bin ${BOOTCD_DIR}/loader/fat.bin
|
||||
$(CP) ${FREELDR_DIR}/bootsect/fat32.bin ${BOOTCD_DIR}/loader/fat32.bin
|
||||
$(CP) ${FREELDR_DIR}/bootsect/isoboot.bin ${BOOTCD_DIR}/loader/isoboot.bin
|
||||
$(CP) ${FREELDR_DIR}/freeldr/obj/i386/freeldr.sys ${BOOTCD_DIR}/loader/freeldr.sys
|
||||
$(CP) ${FREELDR_DIR}/freeldr/obj/i386/setupldr.sys ${BOOTCD_DIR}/loader/setupldr.sys
|
||||
|
||||
bootcd_bootstrap_files: $(COMPONENTS:%=%_bootcd) $(HALS:%=%_bootcd) $(BUS:%=%_bootcd) \
|
||||
$(LIB_STATIC:%=%_bootcd) $(LIB_FSLIB:%=%_bootcd) $(DLLS:%=%_bootcd) $(KERNEL_DRIVERS:%=%_bootcd) \
|
||||
$(SUBSYS:%=%_bootcd) $(SYS_APPS:%=%_bootcd)
|
||||
|
||||
bootcd_install_before:
|
||||
$(RLINE) bootdata/autorun.inf $(BOOTCD_DIR)/autorun.inf
|
||||
$(RLINE) bootdata/readme.txt $(BOOTCD_DIR)/readme.txt
|
||||
$(RLINE) bootdata/hivecls.inf $(BOOTCD_DIR)/reactos/hivecls.inf
|
||||
$(RLINE) bootdata/hivedef.inf $(BOOTCD_DIR)/reactos/hivedef.inf
|
||||
$(RLINE) bootdata/hivesft.inf $(BOOTCD_DIR)/reactos/hivesft.inf
|
||||
$(RLINE) bootdata/hivesys.inf $(BOOTCD_DIR)/reactos/hivesys.inf
|
||||
$(RLINE) bootdata/txtsetup.sif $(BOOTCD_DIR)/reactos/txtsetup.sif
|
||||
$(CP) bootdata/icon.ico $(BOOTCD_DIR)/icon.ico
|
||||
$(CP) media/nls/c_1252.nls $(BOOTCD_DIR)/reactos/c_1252.nls
|
||||
$(CP) media/nls/c_437.nls $(BOOTCD_DIR)/reactos/c_437.nls
|
||||
$(CP) media/nls/l_intl.nls $(BOOTCD_DIR)/reactos/l_intl.nls
|
||||
|
||||
bootcd_basic: bootcd_directory_layout bootcd_bootstrap_files bootcd_install_before
|
||||
|
||||
bootcd_makecd:
|
||||
$(CABMAN) /C bootdata/packages/reactos.dff /L $(BOOTCD_DIR)/reactos /I
|
||||
$(CABMAN) /C bootdata/packages/reactos.dff /RC $(BOOTCD_DIR)/reactos/reactos.inf /L $(BOOTCD_DIR)/reactos /N
|
||||
- $(RM) $(BOOTCD_DIR)/reactos/reactos.inf
|
||||
$(TOOLS_PATH)/cdmake/cdmake -v -m -b $(BOOTCD_DIR)/../isoboot.bin $(BOOTCD_DIR) REACTOS ReactOS.iso
|
||||
|
||||
ubootcd_unattend:
|
||||
$(CP) bootdata/unattend.inf $(BOOTCD_DIR)/reactos/unattend.inf
|
||||
|
||||
bootcd: bootcd_basic bootcd_makecd
|
||||
|
||||
ubootcd: bootcd_basic ubootcd_unattend bootcd_makecd
|
||||
|
||||
registry: tools
|
||||
$(TOOLS_PATH)/mkhive/mkhive$(EXE_POSTFIX) bootdata $(INSTALL_DIR)/system32/config
|
||||
|
||||
.PHONY: all depends implib clean clean_before install freeldr bootcd_directory_layout \
|
||||
bootcd_bootstrap_files bootcd_install_before bootcd_basic bootcd_makecd ubootcd_unattend bootcd
|
||||
|
||||
|
||||
#
|
||||
# System Applications
|
||||
#
|
||||
$(SYS_APPS): %:
|
||||
$(MAKE) -C subsys/system/$*
|
||||
|
||||
$(SYS_APPS:%=%_implib): %_implib:
|
||||
$(MAKE) -C subsys/system/$* implib
|
||||
|
||||
$(SYS_APPS:%=%_clean): %_clean:
|
||||
$(MAKE) -C subsys/system/$* clean
|
||||
|
||||
$(SYS_APPS:%=%_install): %_install:
|
||||
$(MAKE) -C subsys/system/$* install
|
||||
|
||||
$(SYS_APPS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C subsys/system/$* bootcd
|
||||
|
||||
.PHONY: $(SYS_APPS) $(SYS_APPS:%=%_implib) $(SYS_APPS:%=%_clean) $(SYS_APPS:%=%_install) $(SYS_APPS:%=%_bootcd)
|
||||
|
||||
#
|
||||
# System Services
|
||||
#
|
||||
$(SYS_SVC): %:
|
||||
$(MAKE) -C services/$*
|
||||
|
||||
$(SYS_SVC:%=%_depends): %_depends:
|
||||
$(MAKE) -C services/$* depends
|
||||
|
||||
$(SYS_SVC:%=%_implib): %_implib:
|
||||
$(MAKE) -C services/$* implib
|
||||
|
||||
$(SYS_SVC:%=%_clean): %_clean:
|
||||
$(MAKE) -C services/$* clean
|
||||
|
||||
$(SYS_SVC:%=%_install): %_install:
|
||||
$(MAKE) -C services/$* install
|
||||
|
||||
.PHONY: $(SYS_SVC) $(SYS_SVC:%=%_depends) $(SYS_SVC:%=%_implib) $(SYS_SVC:%=%_clean) $(SYS_SVC:%=%_install)
|
||||
|
||||
|
||||
#
|
||||
# Applications
|
||||
#
|
||||
#
|
||||
# Extra (optional system) Applications
|
||||
#
|
||||
$(APPS): %:
|
||||
$(MAKE) -C apps/$*
|
||||
|
||||
# Not needed
|
||||
# $(APPS:%=%_implib): %_implib:
|
||||
# $(MAKE) -C apps/$* implib
|
||||
|
||||
$(APPS:%=%_clean): %_clean:
|
||||
$(MAKE) -C apps/$* clean
|
||||
|
||||
$(APPS:%=%_install): %_install:
|
||||
$(MAKE) -C apps/$* install
|
||||
|
||||
.PHONY: $(APPS) $(APPS:%=%_implib) $(APPS:%=%_clean) $(APPS:%=%_install)
|
||||
|
||||
|
||||
#
|
||||
# External ports and subsystem personalities
|
||||
#
|
||||
$(EXTERNALS): %:
|
||||
$(MAKE) -C $(ROOT_PATH)/$*
|
||||
|
||||
$(EXTERNALS:%=%_depends): %_depends:
|
||||
$(MAKE) -C $(ROOT_PATH)/$* depends
|
||||
|
||||
$(EXTERNALS:%=%_implib): %_implib:
|
||||
$(MAKE) -C $(ROOT_PATH)/$* implib
|
||||
|
||||
$(EXTERNALS:%=%_clean): %_clean:
|
||||
$(MAKE) -C $(ROOT_PATH)/$* clean
|
||||
|
||||
$(EXTERNALS:%=%_install): %_install:
|
||||
$(MAKE) -C $(ROOT_PATH)/$* install
|
||||
|
||||
.PHONY: $(EXTERNALS) $(EXTERNALS:%=%_depends) $(EXTERNALS:%=%_implib) $(EXTERNALS:%=%_clean) $(EXTERNALS:%=%_install)
|
||||
|
||||
|
||||
#
|
||||
# Tools
|
||||
#
|
||||
tools:
|
||||
$(MAKE) -C tools
|
||||
|
||||
tools_implib:
|
||||
|
||||
tools_clean:
|
||||
$(MAKE) -C tools clean
|
||||
|
||||
tools_install:
|
||||
|
||||
.PHONY: tools tools_implib tools_clean tools_install
|
||||
|
||||
|
||||
#
|
||||
# Developer Kits
|
||||
#
|
||||
dk:
|
||||
$(RMKDIR) $(DK_PATH)
|
||||
$(RMKDIR) $(DDK_PATH)
|
||||
$(RMKDIR) $(DDK_PATH_LIB)
|
||||
$(RMKDIR) $(DDK_PATH_INC)
|
||||
$(RMKDIR) $(SDK_PATH)
|
||||
$(RMKDIR) $(SDK_PATH_LIB)
|
||||
$(RMKDIR) $(SDK_PATH_INC)
|
||||
$(RMKDIR) $(XDK_PATH)
|
||||
$(RMKDIR) $(XDK_PATH_LIB)
|
||||
$(RMKDIR) $(XDK_PATH_INC)
|
||||
|
||||
dk_implib:
|
||||
|
||||
# WARNING! Be very sure that there are no important files
|
||||
# in these directories before cleaning them!!!
|
||||
dk_clean:
|
||||
$(RM) $(DDK_PATH_LIB)/*.a
|
||||
# $(RM) $(DDK_PATH_INC)/*.h
|
||||
$(RMDIR) $(DDK_PATH_LIB)
|
||||
# $(RMDIR) $(DDK_PATH_INC)
|
||||
$(RM) $(SDK_PATH_LIB)/*.a
|
||||
# $(RM) $(SDK_PATH_INC)/*.h
|
||||
$(RMDIR) $(SDK_PATH_LIB)
|
||||
# $(RMDIR) $(SDK_PATH_INC)
|
||||
$(RM) $(XDK_PATH_LIB)/*.a
|
||||
# $(RM) $(XDK_PATH_INC)/*.h
|
||||
$(RMDIR) $(XDK_PATH_LIB)
|
||||
# $(RMDIR) $(XDK_PATH_INC)
|
||||
|
||||
dk_install:
|
||||
|
||||
.PHONY: dk dk_implib dk_clean dk_install
|
||||
|
||||
|
||||
#
|
||||
# Interfaces
|
||||
#
|
||||
iface_native:
|
||||
$(MAKE) -C iface/native
|
||||
|
||||
iface_native_implib:
|
||||
|
||||
iface_native_clean:
|
||||
$(MAKE) -C iface/native clean
|
||||
|
||||
iface_native_install:
|
||||
|
||||
iface_native_bootcd:
|
||||
|
||||
iface_additional:
|
||||
$(MAKE) -C iface/addsys
|
||||
|
||||
iface_additional_implib:
|
||||
|
||||
iface_additional_clean:
|
||||
$(MAKE) -C iface/addsys clean
|
||||
|
||||
iface_additional_install:
|
||||
|
||||
iface_additional_bootcd:
|
||||
|
||||
.PHONY: iface_native iface_native_implib iface_native_clean iface_native_install \
|
||||
iface_native_bootcd \
|
||||
iface_additional iface_additional_implib iface_additional_clean \
|
||||
iface_additional_install iface_additional_bootcd
|
||||
|
||||
|
||||
#
|
||||
# Bus driver rules
|
||||
#
|
||||
$(BUS): %:
|
||||
$(MAKE) -C drivers/bus/$*
|
||||
|
||||
$(BUS:%=%_implib): %_implib:
|
||||
$(MAKE) -C drivers/bus/$* implib
|
||||
|
||||
$(BUS:%=%_clean): %_clean:
|
||||
$(MAKE) -C drivers/bus/$* clean
|
||||
|
||||
$(BUS:%=%_install): %_install:
|
||||
$(MAKE) -C drivers/bus/$* install
|
||||
|
||||
$(BUS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C drivers/bus/$* bootcd
|
||||
|
||||
.PHONY: $(BUS) $(BUS:%=%_implib) $(BUS:%=%_clean) \
|
||||
$(BUS:%=%_install) $(BUS:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# Driver support libraries rules
|
||||
#
|
||||
$(DRIVERS_LIB): %:
|
||||
$(MAKE) -C drivers/lib/$*
|
||||
|
||||
$(DRIVERS_LIB:%=%_implib): %_implib:
|
||||
$(MAKE) -C drivers/lib/$* implib
|
||||
|
||||
$(DRIVERS_LIB:%=%_clean): %_clean:
|
||||
$(MAKE) -C drivers/lib/$* clean
|
||||
|
||||
$(DRIVERS_LIB:%=%_install): %_install:
|
||||
$(MAKE) -C drivers/lib/$* install
|
||||
|
||||
$(DRIVERS_LIB:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C drivers/lib/$* bootcd
|
||||
|
||||
.PHONY: $(DRIVERS_LIB) $(DRIVERS_LIB:%=%_implib) $(DRIVERS_LIB:%=%_clean) \
|
||||
$(DRIVERS_LIB:%=%_install) $(DRIVERS_LIB:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# Device driver rules
|
||||
#
|
||||
$(DEVICE_DRIVERS): %:
|
||||
$(MAKE) -C drivers/dd/$*
|
||||
|
||||
$(DEVICE_DRIVERS:%=%_implib): %_implib:
|
||||
$(MAKE) -C drivers/dd/$* implib
|
||||
|
||||
$(DEVICE_DRIVERS:%=%_clean): %_clean:
|
||||
$(MAKE) -C drivers/dd/$* clean
|
||||
|
||||
$(DEVICE_DRIVERS:%=%_install): %_install:
|
||||
$(MAKE) -C drivers/dd/$* install
|
||||
|
||||
$(DEVICE_DRIVERS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C drivers/dd/$* bootcd
|
||||
|
||||
.PHONY: $(DEVICE_DRIVERS) $(DEVICE_DRIVERS:%=%_implib) $(DEVICE_DRIVERS:%=%_clean) \
|
||||
$(DEVICE_DRIVERS:%=%_install) $(DEVICE_DRIVERS:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# Video device driver rules
|
||||
#
|
||||
VIDEO_DRIVERS:
|
||||
$(MAKE) -C drivers/video
|
||||
|
||||
VIDEO_DRIVERS_implib:
|
||||
$(MAKE) -C drivers/video implib
|
||||
|
||||
VIDEO_DRIVERS_clean:
|
||||
$(MAKE) -C drivers/video clean
|
||||
|
||||
VIDEO_DRIVERS_install:
|
||||
$(MAKE) -C drivers/video install
|
||||
|
||||
VIDEO_DRIVERS_bootcd:
|
||||
$(MAKE) -C drivers/video bootcd
|
||||
|
||||
.PHONY: VIDEO_DRIVERS VIDEO_DRIVERS_implib VIDEO_DRIVERS_clean \
|
||||
VIDEO_DRIVERS_install VIDEO_DRIVERS_bootcd
|
||||
|
||||
|
||||
#
|
||||
# Input driver rules
|
||||
#
|
||||
$(INPUT_DRIVERS): %:
|
||||
$(MAKE) -C drivers/input/$*
|
||||
|
||||
$(INPUT_DRIVERS:%=%_implib): %_implib:
|
||||
$(MAKE) -C drivers/input/$* implib
|
||||
|
||||
$(INPUT_DRIVERS:%=%_clean): %_clean:
|
||||
$(MAKE) -C drivers/input/$* clean
|
||||
|
||||
$(INPUT_DRIVERS:%=%_install): %_install:
|
||||
$(MAKE) -C drivers/input/$* install
|
||||
|
||||
$(INPUT_DRIVERS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C drivers/input/$* bootcd
|
||||
|
||||
.PHONY: $(INPUT_DRIVERS) $(INPUT_DRIVERS:%=%_implib) $(INPUT_DRIVERS:%=%_clean)\
|
||||
$(INPUT_DRIVERS:%=%_install) $(INPUT_DRIVERS:%=%_bootcd)
|
||||
|
||||
#
|
||||
# Filesystem driver rules
|
||||
#
|
||||
$(FS_DRIVERS): %:
|
||||
$(MAKE) -C drivers/fs/$*
|
||||
|
||||
$(FS_DRIVERS:%=%_implib): %_implib:
|
||||
$(MAKE) -C drivers/fs/$* implib
|
||||
|
||||
$(FS_DRIVERS:%=%_clean): %_clean:
|
||||
$(MAKE) -C drivers/fs/$* clean
|
||||
|
||||
$(FS_DRIVERS:%=%_install): %_install:
|
||||
$(MAKE) -C drivers/fs/$* install
|
||||
|
||||
$(FS_DRIVERS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C drivers/fs/$* bootcd
|
||||
|
||||
.PHONY: $(FS_DRIVERS) $(FS_DRIVERS:%=%_implib) $(FS_DRIVERS:%=%_clean) \
|
||||
$(FS_DRIVERS:%=%_install) $(FS_DRIVERS:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# Network driver rules
|
||||
#
|
||||
$(NET_DRIVERS): %:
|
||||
$(MAKE) -C drivers/net/$*
|
||||
|
||||
$(NET_DRIVERS:%=%_implib): %_implib:
|
||||
$(MAKE) -C drivers/net/$* implib
|
||||
|
||||
$(NET_DRIVERS:%=%_clean): %_clean:
|
||||
$(MAKE) -C drivers/net/$* clean
|
||||
|
||||
$(NET_DRIVERS:%=%_install): %_install:
|
||||
$(MAKE) -C drivers/net/$* install
|
||||
|
||||
$(NET_DRIVERS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C drivers/net/$* bootcd
|
||||
|
||||
.PHONY: $(NET_DRIVERS) $(NET_DRIVERS:%=%_implib) $(NET_DRIVERS:%=%_clean) \
|
||||
$(NET_DRIVERS:%=%_install) $(NET_DRIVERS:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# Network device driver rules
|
||||
#
|
||||
$(NET_DEVICE_DRIVERS): %:
|
||||
$(MAKE) -C drivers/net/dd/$*
|
||||
|
||||
$(NET_DEVICE_DRIVERS:%=%_implib): %_implib:
|
||||
$(MAKE) -C drivers/net/dd/$* implib
|
||||
|
||||
$(NET_DEVICE_DRIVERS:%=%_clean): %_clean:
|
||||
$(MAKE) -C drivers/net/dd/$* clean
|
||||
|
||||
$(NET_DEVICE_DRIVERS:%=%_install): %_install:
|
||||
$(MAKE) -C drivers/net/dd/$* install
|
||||
|
||||
$(NET_DEVICE_DRIVERS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C drivers/net/dd/$* bootcd
|
||||
|
||||
.PHONY: $(NET_DEVICE_DRIVERS) $(NET_DEVICE_DRIVERS:%=%_clean) $(NET_DEVICE_DRIVERS:%=%_implib) \
|
||||
$(NET_DEVICE_DRIVERS:%=%_install) $(NET_DEVICE_DRIVERS:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# storage driver rules
|
||||
#
|
||||
$(STORAGE_DRIVERS): %:
|
||||
$(MAKE) -C drivers/storage/$*
|
||||
|
||||
$(STORAGE_DRIVERS:%=%_implib): %_implib:
|
||||
$(MAKE) -C drivers/storage/$* implib
|
||||
|
||||
$(STORAGE_DRIVERS:%=%_clean): %_clean:
|
||||
$(MAKE) -C drivers/storage/$* clean
|
||||
|
||||
$(STORAGE_DRIVERS:%=%_install): %_install:
|
||||
$(MAKE) -C drivers/storage/$* install
|
||||
|
||||
$(STORAGE_DRIVERS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C drivers/storage/$* bootcd
|
||||
|
||||
.PHONY: $(STORAGE_DRIVERS) $(STORAGE_DRIVERS:%=%_clean) $(STORAGE_DRIVERS:%=%_implib) \
|
||||
$(STORAGE_DRIVERS:%=%_install) $(STORAGE_DRIVERS:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# Kernel loaders
|
||||
#
|
||||
$(LOADERS): %:
|
||||
$(MAKE) -C loaders/$*
|
||||
|
||||
$(LOADERS:%=%_implib): %_implib:
|
||||
|
||||
$(LOADERS:%=%_clean): %_clean:
|
||||
$(MAKE) -C loaders/$* clean
|
||||
|
||||
$(LOADERS:%=%_install): %_install:
|
||||
$(MAKE) -C loaders/$* install
|
||||
|
||||
.PHONY: $(LOADERS) $(LOADERS:%=%_implib) $(LOADERS:%=%_clean) $(LOADERS:%=%_install)
|
||||
|
||||
|
||||
#
|
||||
# Required system components
|
||||
#
|
||||
ntoskrnl:
|
||||
$(MAKE) -C ntoskrnl
|
||||
|
||||
ntoskrnl_implib:
|
||||
$(MAKE) -C ntoskrnl implib
|
||||
|
||||
ntoskrnl_clean:
|
||||
$(MAKE) -C ntoskrnl clean
|
||||
|
||||
ntoskrnl_install:
|
||||
$(MAKE) -C ntoskrnl install
|
||||
|
||||
ntoskrnl_bootcd:
|
||||
$(MAKE) -C ntoskrnl bootcd
|
||||
|
||||
.PHONY: ntoskrnl ntoskrnl_implib ntoskrnl_clean ntoskrnl_install ntoskrnl_bootcd
|
||||
|
||||
|
||||
#
|
||||
# Hardware Abstraction Layer import library
|
||||
#
|
||||
hallib:
|
||||
$(MAKE) -C hal/hal
|
||||
|
||||
hallib_implib:
|
||||
$(MAKE) -C hal/hal implib
|
||||
|
||||
hallib_clean:
|
||||
$(MAKE) -C hal/hal clean
|
||||
|
||||
hallib_install:
|
||||
$(MAKE) -C hal/hal install
|
||||
|
||||
hallib_bootcd:
|
||||
$(MAKE) -C hal/hal bootcd
|
||||
|
||||
.PHONY: hallib hallib_implib hallib_clean hallib_install hallib_bootcd
|
||||
|
||||
|
||||
#
|
||||
# Hardware Abstraction Layers
|
||||
#
|
||||
$(HALS): %:
|
||||
$(MAKE) -C hal/$*
|
||||
|
||||
$(HALS:%=%_implib): %_implib:
|
||||
$(MAKE) -C hal/$* implib
|
||||
|
||||
$(HALS:%=%_clean): %_clean:
|
||||
$(MAKE) -C hal/$* clean
|
||||
|
||||
$(HALS:%=%_install): %_install:
|
||||
$(MAKE) -C hal/$* install
|
||||
|
||||
$(HALS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C hal/$* bootcd
|
||||
|
||||
.PHONY: $(HALS) $(HALS:%=%_implib) $(HALS:%=%_clean) $(HALS:%=%_install) $(HALS:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# File system libraries
|
||||
#
|
||||
$(LIB_FSLIB): %:
|
||||
$(MAKE) -C lib/fslib/$*
|
||||
|
||||
$(LIB_FSLIB:%=%_depends): %_depends:
|
||||
$(MAKE) -C lib/fslib/$* depends
|
||||
|
||||
$(LIB_FSLIB:%=%_implib): %_implib:
|
||||
$(MAKE) -C lib/fslib/$* implib
|
||||
|
||||
$(LIB_FSLIB:%=%_clean): %_clean:
|
||||
$(MAKE) -C lib/fslib/$* clean
|
||||
|
||||
$(LIB_FSLIB:%=%_install): %_install:
|
||||
$(MAKE) -C lib/fslib/$* install
|
||||
|
||||
$(LIB_FSLIB:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C lib/fslib/$* bootcd
|
||||
|
||||
.PHONY: $(LIB_FSLIB) $(LIB_FSLIB:%=%_depends) $(LIB_FSLIB:%=%_implib) $(LIB_FSLIB:%=%_clean) \
|
||||
$(LIB_FSLIB:%=%_install) $(LIB_FSLIB:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# Static libraries
|
||||
#
|
||||
$(LIB_STATIC): %:
|
||||
$(MAKE) -C lib/$*
|
||||
|
||||
$(LIB_STATIC:%=%_depends): %_depends:
|
||||
$(MAKE) -C lib/string depends
|
||||
|
||||
$(LIB_STATIC:%=%_implib): %_implib:
|
||||
$(MAKE) -C lib/$* implib
|
||||
|
||||
$(LIB_STATIC:%=%_clean): %_clean:
|
||||
$(MAKE) -C lib/$* clean
|
||||
|
||||
$(LIB_STATIC:%=%_install): %_install:
|
||||
$(MAKE) -C lib/$* install
|
||||
|
||||
$(LIB_STATIC:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C lib/$* bootcd
|
||||
|
||||
.PHONY: $(LIB_STATIC) $(LIB_STATIC:%=%_depends) $(LIB_STATIC:%=%_implib) $(LIB_STATIC:%=%_clean) \
|
||||
$(LIB_STATIC:%=%_install) $(LIB_STATIC:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# DLLs
|
||||
#
|
||||
$(DLLS): %:
|
||||
$(MAKE) -C lib/$*
|
||||
|
||||
$(DLLS:%=%_depends): %_depends:
|
||||
$(MAKE) -C lib/$* depends
|
||||
|
||||
$(DLLS:%=%_implib): %_implib:
|
||||
$(MAKE) -C lib/$* implib
|
||||
|
||||
$(DLLS:%=%_clean): %_clean:
|
||||
$(MAKE) -C lib/$* clean
|
||||
|
||||
$(DLLS:%=%_install): %_install:
|
||||
$(MAKE) -C lib/$* install
|
||||
|
||||
$(DLLS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C lib/$* bootcd
|
||||
|
||||
.PHONY: $(DLLS) $(DLLS:%=%_depends) $(DLLS:%=%_implib) $(DLLS:%=%_clean) $(DLLS:%=%_install) \
|
||||
$(DLLS:%=%_bootcd)
|
||||
|
||||
|
||||
#
|
||||
# Subsystem support modules
|
||||
#
|
||||
$(SUBSYS): %:
|
||||
$(MAKE) -C subsys/$*
|
||||
|
||||
$(SUBSYS:%=%_depends): %_depends:
|
||||
$(MAKE) -C subsys/$* depends
|
||||
|
||||
$(SUBSYS:%=%_implib): %_implib:
|
||||
$(MAKE) -C subsys/$* implib
|
||||
|
||||
$(SUBSYS:%=%_clean): %_clean:
|
||||
$(MAKE) -C subsys/$* clean
|
||||
|
||||
$(SUBSYS:%=%_install): %_install:
|
||||
$(MAKE) -C subsys/$* install
|
||||
|
||||
$(SUBSYS:%=%_bootcd): %_bootcd:
|
||||
$(MAKE) -C subsys/$* bootcd
|
||||
|
||||
.PHONY: $(SUBSYS) $(SUBSYS:%=%_depends) $(SUBSYS:%=%_implib) $(SUBSYS:%=%_clean) $(SUBSYS:%=%_install) \
|
||||
$(SUBSYS:%=%_bootcd)
|
||||
|
||||
#
|
||||
# Regression testsuite
|
||||
#
|
||||
|
||||
$(REGTESTS): %:
|
||||
$(MAKE) -C regtests
|
||||
|
||||
$(REGTESTS:%=%_clean): %_clean:
|
||||
$(MAKE) -C regtests clean
|
||||
|
||||
$(REGTESTS:%=%_install): %_install:
|
||||
$(MAKE) -C regtests install
|
||||
|
||||
.PHONY: $(REGTESTS) $(REGTESTS:%=%_depends) $(SUBSYS:%=%_clean) $(REGTESTS:%=%_install)
|
||||
|
||||
|
||||
#
|
||||
# Create an installation
|
||||
#
|
||||
|
||||
install_clean:
|
||||
$(RM) $(INSTALL_DIR)/system32/drivers/*.*
|
||||
$(RM) $(INSTALL_DIR)/system32/config/*.*
|
||||
$(RM) $(INSTALL_DIR)/system32/*.*
|
||||
$(RM) $(INSTALL_DIR)/symbols/*.*
|
||||
$(RM) $(INSTALL_DIR)/media/fonts/*.*
|
||||
$(RM) $(INSTALL_DIR)/media/*.*
|
||||
$(RM) $(INSTALL_DIR)/bin/*.*
|
||||
$(RM) $(INSTALL_DIR)/*.com
|
||||
$(RM) $(INSTALL_DIR)/*.bat
|
||||
$(RMDIR) $(INSTALL_DIR)/system32/drivers
|
||||
$(RMDIR) $(INSTALL_DIR)/system32/config
|
||||
$(RMDIR) $(INSTALL_DIR)/system32
|
||||
$(RMDIR) $(INSTALL_DIR)/symbols
|
||||
$(RMDIR) $(INSTALL_DIR)/media/fonts
|
||||
$(RMDIR) $(INSTALL_DIR)/media
|
||||
$(RMDIR) $(INSTALL_DIR)/bin
|
||||
$(RMDIR) $(INSTALL_DIR)
|
||||
|
||||
install_dirs:
|
||||
$(RMKDIR) $(INSTALL_DIR)
|
||||
$(RMKDIR) $(INSTALL_DIR)/bin
|
||||
$(RMKDIR) $(INSTALL_DIR)/media
|
||||
$(RMKDIR) $(INSTALL_DIR)/media/fonts
|
||||
$(RMKDIR) $(INSTALL_DIR)/symbols
|
||||
$(RMKDIR) $(INSTALL_DIR)/system32
|
||||
$(RMKDIR) $(INSTALL_DIR)/system32/config
|
||||
$(RMKDIR) $(INSTALL_DIR)/system32/drivers
|
||||
|
||||
install_before:
|
||||
$(CP) bootc.lst $(INSTALL_DIR)/bootc.lst
|
||||
$(CP) boot.bat $(INSTALL_DIR)/boot.bat
|
||||
$(CP) aboot.bat $(INSTALL_DIR)/aboot.bat
|
||||
$(CP) media/fonts $(INSTALL_DIR)/media/fonts
|
||||
$(CP) media/nls $(INSTALL_DIR)/system32
|
||||
$(CP) media/nls/c_1252.nls $(INSTALL_DIR)/system32/ansi.nls
|
||||
$(CP) media/nls/c_437.nls $(INSTALL_DIR)/system32/oem.nls
|
||||
$(CP) media/nls/l_intl.nls $(INSTALL_DIR)/system32/casemap.nls
|
||||
|
||||
.PHONY: install_clean install_dirs install_before
|
||||
|
||||
|
||||
etags:
|
||||
find . -name "*.[ch]" -print | etags --language=c -
|
||||
|
||||
|
||||
docu:
|
||||
echo generating ReactOS NTOSKRNL documentation ...
|
||||
$(MAKE) -C ntoskrnl docu
|
||||
|
||||
echo generating ReactOS drivers documentation ...
|
||||
$(MAKE) -C drivers docu
|
||||
|
||||
echo generating ReactOS NTDLL documentation ...
|
||||
$(MAKE) -C lib/ntdll docu
|
||||
|
||||
echo generating ReactOS Freetype documentation ...
|
||||
$(MAKE) -C lib/freetype docu
|
||||
|
||||
echo generating ReactOS libs documentation ...
|
||||
$(MAKE) -C lib docu
|
||||
|
||||
echo generating ReactOS WIN32K documentation ...
|
||||
$(MAKE) -C subsys/win32k docu
|
||||
|
||||
echo generating ReactOS apps+tools documentation ...
|
||||
$(MAKE) -C apps docu
|
||||
|
||||
echo generating ReactOS explorer documentation ...
|
||||
$(MAKE) -C subsys/system/explorer full-docu
|
||||
|
||||
echo generating remaining ReactOS documentation ...
|
||||
doxygen Doxyfile
|
||||
|
||||
.PHONY: docu
|
||||
|
||||
|
||||
# EOF
|
28
reactos/README
Normal file
28
reactos/README
Normal file
@@ -0,0 +1,28 @@
|
||||
========================
|
||||
ReactOS Version 0.1.x
|
||||
Updated March 19th, 2003
|
||||
========================
|
||||
|
||||
1. What is ReactOS?
|
||||
|
||||
ReactOS is an Open Source effort to develop a quality operating system
|
||||
that is compatible with Windows NT applications and drivers.
|
||||
|
||||
The ReactOS project, although currently focused on Windows NT 4.0
|
||||
compatibility, is always keeping an eye towards compatibility with
|
||||
future Windows NT releases, that is, Windows 2000 (NT 5.0) and
|
||||
Windows XP (NT 5.1).
|
||||
|
||||
More information is available at http://www.reactos.com.
|
||||
|
||||
2. Building ReactOS
|
||||
|
||||
See the INSTALL file for more details.
|
||||
|
||||
3. More information
|
||||
|
||||
See the doc subdirectory for some sparse notes
|
||||
|
||||
4. Who is responsible
|
||||
|
||||
See the CREDITS file
|
3
reactos/aboot.bat
Normal file
3
reactos/aboot.bat
Normal file
@@ -0,0 +1,3 @@
|
||||
loadros system32\ntoskrnl.exe system32\hal.dll system32\drivers\acpi.sys /DEBUGPORT=SCREEN bootc.lst
|
||||
rem comment added and changed for no reason
|
||||
|
31
reactos/apistatus.lst
Executable file
31
reactos/apistatus.lst
Executable file
@@ -0,0 +1,31 @@
|
||||
; Format:
|
||||
; COMPONENT_NAME PATH_TO_COMPONENT_SOURCES
|
||||
; COMPONENT_NAME - Name of the component. Eg. kernel32.dll.
|
||||
; PATH_TO_COMPONENT_SOURCES - Relative path to sources (relative to
|
||||
; where rgenstat is run from).
|
||||
advapi32.dll reactos/lib/advapi32
|
||||
crtdll.dll reactos/lib/crtdll
|
||||
gdi32.dll reactos/lib/gdi32
|
||||
iphlpapi.dll reactos/lib/iphlpapi
|
||||
kernel32.dll reactos/lib/kernel32
|
||||
lz32.dll reactos/lib/lzexpand
|
||||
msvcrt.dll reactos/lib/msvcrt
|
||||
ole32.dll reactos/lib/ole32
|
||||
oleaut32.dll reactos/lib/oleaut32
|
||||
rpcrt4.dll reactos/lib/rpcrt4
|
||||
secur32.dll reactos/lib/secur32
|
||||
shell32.dll reactos/lib/shell32
|
||||
snmpapi.dll reactos/lib/snmpapi
|
||||
user32.dll reactos/lib/user32
|
||||
version.dll reactos/lib/version
|
||||
winmm.dll reactos/lib/winmm
|
||||
winspool.dll reactos/lib/winspool
|
||||
ws2_32.dll reactos/lib/ws2_32
|
||||
wsock32.dll reactos/lib/wsock32
|
||||
videoprt.dll reactos/drivers/dd/videoprt
|
||||
ndis.dll reactos/drivers/net/ndis
|
||||
tdi.dll reactos/drivers/net/tdi
|
||||
class2.sys reactos/drivers/storage/class2
|
||||
scsiport.sys reactos/drivers/storage/scsiport
|
||||
ntoskrnl.exe reactos/ntoskrnl
|
||||
win32k.sys reactos/subsys/win32k
|
1
reactos/apps/.cvsignore
Normal file
1
reactos/apps/.cvsignore
Normal file
@@ -0,0 +1 @@
|
||||
doxy-doc
|
207
reactos/apps/Doxyfile
Normal file
207
reactos/apps/Doxyfile
Normal file
@@ -0,0 +1,207 @@
|
||||
# Doxyfile 1.3.5
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Project related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
PROJECT_NAME = "ReactOS Apps & Tools"
|
||||
PROJECT_NUMBER =
|
||||
OUTPUT_DIRECTORY = doxy-doc
|
||||
OUTPUT_LANGUAGE = English
|
||||
USE_WINDOWS_ENCODING = YES
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
REPEAT_BRIEF = YES
|
||||
ALWAYS_DETAILED_SEC = NO
|
||||
INLINE_INHERITED_MEMB = NO
|
||||
FULL_PATH_NAMES = YES
|
||||
STRIP_FROM_PATH = ..
|
||||
SHORT_NAMES = NO
|
||||
JAVADOC_AUTOBRIEF = YES
|
||||
MULTILINE_CPP_IS_BRIEF = NO
|
||||
DETAILS_AT_TOP = NO
|
||||
INHERIT_DOCS = NO
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
TAB_SIZE = 8
|
||||
ALIASES =
|
||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||
OPTIMIZE_OUTPUT_JAVA = NO
|
||||
SUBGROUPING = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Build related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
EXTRACT_ALL = YES
|
||||
EXTRACT_PRIVATE = NO
|
||||
EXTRACT_STATIC = NO
|
||||
EXTRACT_LOCAL_CLASSES = NO
|
||||
HIDE_UNDOC_MEMBERS = NO
|
||||
HIDE_UNDOC_CLASSES = NO
|
||||
HIDE_FRIEND_COMPOUNDS = NO
|
||||
HIDE_IN_BODY_DOCS = NO
|
||||
INTERNAL_DOCS = YES
|
||||
CASE_SENSE_NAMES = YES
|
||||
HIDE_SCOPE_NAMES = NO
|
||||
SHOW_INCLUDE_FILES = YES
|
||||
INLINE_INFO = YES
|
||||
SORT_MEMBER_DOCS = YES
|
||||
GENERATE_TODOLIST = YES
|
||||
GENERATE_TESTLIST = YES
|
||||
GENERATE_BUGLIST = YES
|
||||
GENERATE_DEPRECATEDLIST= YES
|
||||
ENABLED_SECTIONS =
|
||||
MAX_INITIALIZER_LINES = 30
|
||||
SHOW_USED_FILES = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to warning and progress messages
|
||||
#---------------------------------------------------------------------------
|
||||
QUIET = NO
|
||||
WARNINGS = NO
|
||||
WARN_IF_UNDOCUMENTED = NO
|
||||
WARN_IF_DOC_ERROR = YES
|
||||
WARN_FORMAT = "$file:$line: $text"
|
||||
WARN_LOGFILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = . \
|
||||
../tools
|
||||
FILE_PATTERNS = *.c \
|
||||
*.h
|
||||
RECURSIVE = YES
|
||||
EXCLUDE =
|
||||
EXCLUDE_SYMLINKS = NO
|
||||
EXCLUDE_PATTERNS =
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS =
|
||||
EXAMPLE_RECURSIVE = YES
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER =
|
||||
FILTER_SOURCE_FILES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to source browsing
|
||||
#---------------------------------------------------------------------------
|
||||
SOURCE_BROWSER = YES
|
||||
INLINE_SOURCES = YES
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
REFERENCED_BY_RELATION = YES
|
||||
REFERENCES_RELATION = YES
|
||||
VERBATIM_HEADERS = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the alphabetical class index
|
||||
#---------------------------------------------------------------------------
|
||||
ALPHABETICAL_INDEX = YES
|
||||
COLS_IN_ALPHA_INDEX = 5
|
||||
IGNORE_PREFIX =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the HTML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_HTML = YES
|
||||
HTML_OUTPUT = html
|
||||
HTML_FILE_EXTENSION = .html
|
||||
HTML_HEADER =
|
||||
HTML_FOOTER =
|
||||
HTML_STYLESHEET =
|
||||
HTML_ALIGN_MEMBERS = YES
|
||||
GENERATE_HTMLHELP = NO
|
||||
CHM_FILE =
|
||||
HHC_LOCATION =
|
||||
GENERATE_CHI = NO
|
||||
BINARY_TOC = NO
|
||||
TOC_EXPAND = NO
|
||||
DISABLE_INDEX = NO
|
||||
ENUM_VALUES_PER_LINE = 4
|
||||
GENERATE_TREEVIEW = YES
|
||||
TREEVIEW_WIDTH = 200
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the LaTeX output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_LATEX = NO
|
||||
LATEX_OUTPUT = latex
|
||||
LATEX_CMD_NAME = latex
|
||||
MAKEINDEX_CMD_NAME = makeindex
|
||||
COMPACT_LATEX = NO
|
||||
PAPER_TYPE = a4wide
|
||||
EXTRA_PACKAGES =
|
||||
LATEX_HEADER =
|
||||
PDF_HYPERLINKS = NO
|
||||
USE_PDFLATEX = NO
|
||||
LATEX_BATCHMODE = NO
|
||||
LATEX_HIDE_INDICES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the RTF output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_RTF = NO
|
||||
RTF_OUTPUT = rtf
|
||||
COMPACT_RTF = YES
|
||||
RTF_HYPERLINKS = YES
|
||||
RTF_STYLESHEET_FILE =
|
||||
RTF_EXTENSIONS_FILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the man page output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_MAN = NO
|
||||
MAN_OUTPUT = man
|
||||
MAN_EXTENSION = .3
|
||||
MAN_LINKS = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the XML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_XML = NO
|
||||
XML_OUTPUT = xml
|
||||
XML_SCHEMA =
|
||||
XML_DTD =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options for the AutoGen Definitions output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_AUTOGEN_DEF = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the Perl module output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_PERLMOD = NO
|
||||
PERLMOD_LATEX = NO
|
||||
PERLMOD_PRETTY = YES
|
||||
PERLMOD_MAKEVAR_PREFIX =
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the preprocessor
|
||||
#---------------------------------------------------------------------------
|
||||
ENABLE_PREPROCESSING = NO
|
||||
MACRO_EXPANSION = NO
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
SEARCH_INCLUDES = YES
|
||||
INCLUDE_PATH = ../include
|
||||
INCLUDE_FILE_PATTERNS = *.h
|
||||
PREDEFINED =
|
||||
EXPAND_AS_DEFINED =
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES =
|
||||
GENERATE_TAGFILE =
|
||||
ALLEXTERNALS = NO
|
||||
EXTERNAL_GROUPS = YES
|
||||
PERL_PATH = /usr/bin/perl
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the dot tool
|
||||
#---------------------------------------------------------------------------
|
||||
CLASS_DIAGRAMS = YES
|
||||
HIDE_UNDOC_RELATIONS = NO
|
||||
HAVE_DOT = YES
|
||||
CLASS_GRAPH = YES
|
||||
COLLABORATION_GRAPH = YES
|
||||
UML_LOOK = NO
|
||||
TEMPLATE_RELATIONS = NO
|
||||
INCLUDE_GRAPH = YES
|
||||
INCLUDED_BY_GRAPH = YES
|
||||
CALL_GRAPH = YES
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
DOT_IMAGE_FORMAT = png
|
||||
DOT_PATH =
|
||||
DOTFILE_DIRS =
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
MAX_DOT_GRAPH_DEPTH = 0
|
||||
GENERATE_LEGEND = YES
|
||||
DOT_CLEANUP = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to the search engine
|
||||
#---------------------------------------------------------------------------
|
||||
SEARCHENGINE = YES
|
13
reactos/apps/Makefile
Normal file
13
reactos/apps/Makefile
Normal file
@@ -0,0 +1,13 @@
|
||||
# $Id: Makefile,v 1.1 2003/12/06 23:10:50 mf Exp $
|
||||
#
|
||||
# ReactOS apps and tools makefile to generate Doxygen documentation
|
||||
#
|
||||
|
||||
|
||||
docu:
|
||||
doxygen Doxyfile
|
||||
|
||||
.PHONY: docu
|
||||
|
||||
|
||||
# EOF
|
11
reactos/apps/dist/notepad/.cvsignore
vendored
Normal file
11
reactos/apps/dist/notepad/.cvsignore
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
||||
notepad.nostrip.exe
|
||||
notepad.ncb
|
||||
notepad.suo
|
||||
notepad.exe
|
||||
Release
|
126
reactos/apps/dist/notepad/Da.rc
vendored
Normal file
126
reactos/apps/dist/notepad/Da.rc
vendored
Normal file
@@ -0,0 +1,126 @@
|
||||
/*
|
||||
* Notepad (Danish resources)
|
||||
*
|
||||
* Copyright 1998 Henrik Olsen <henrik@iaeste.dk>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&Filef" {
|
||||
MENUITEM "&Ny...", CMD_NEW
|
||||
MENUITEM "<22>&bn\tEnter", CMD_OPEN
|
||||
MENUITEM "&Gem", CMD_SAVE
|
||||
MENUITEM "Gem so&m...", CMD_SAVE_AS
|
||||
MENUITEM "&Udskriv", CMD_PRINT
|
||||
MENUITEM "Side&ops<70>tning...", CMD_PAGE_SETUP
|
||||
MENUITEM "&Indstil printer...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Afslut", CMD_EXIT
|
||||
}
|
||||
POPUP "&Rediger" {
|
||||
MENUITEM "&Fortryd\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Klip\tCtrl+X", CMD_CUT
|
||||
MENUITEM "K&opier\tCtrl+C", CMD_COPY
|
||||
MENUITEM "S<>t &ind\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&Slet\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Marker &alt", CMD_SELECT_ALL
|
||||
MENUITEM "&Dato/tid\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Automatisk &linjeskift", CMD_WRAP
|
||||
}
|
||||
POPUP "&S<>g" {
|
||||
MENUITEM "&S<>g...", CMD_SEARCH
|
||||
MENUITEM "&Find n<>ste\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Hj<48>lp" {
|
||||
MENUITEM "&Indhold", CMD_HELP_CONTENTS
|
||||
MENUITEM "&S<>g efter hj<68>lp om...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Brug af Hj<48>lp", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "&Om Notesblok..." {
|
||||
MENUITEM "&Licens", CMD_LICENSE
|
||||
MENUITEM "&NO WARRANTY", CMD_NO_WARRANTY
|
||||
MENUITEM "&Om WINE", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Sideops<70>tning"
|
||||
{
|
||||
LTEXT "&Sidehoved:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "Side&fod:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "Margener:", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Venstre:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Top:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&H<>jre:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Bund:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Annuller", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Hj<48>lp", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Page &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Notesblok"
|
||||
STRING_ERROR, "FEJL"
|
||||
STRING_WARNING, "ADVARSEL"
|
||||
STRING_INFO, "Information"
|
||||
|
||||
STRING_UNTITLED, "(ikke-navngivet)"
|
||||
|
||||
STRING_ALL_FILES, "Alle filer (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Tekst filer (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "Filen '%s' er for stor til Notesblok. \
|
||||
\nBrug en anden editor til at redigere filen."
|
||||
STRING_NOTEXT, "Du har ikke skrevet noget tekst. \
|
||||
\nSkriv noget tekst, og pr<70>v s<> igen"
|
||||
STRING_DOESNOTEXIST, "File '%s'\ndoes not exist\n\n \
|
||||
Do you want to create a new file ?"
|
||||
STRING_NOTSAVED, "File '%s'\nhas been modified\n\n \
|
||||
Would you like to save the changes ?"
|
||||
STRING_NOTFOUND, "Kan ikke finde '%s'."
|
||||
STRING_OUT_OF_MEMORY, "Der er ikke nok hukommelse til at udf<64>re \
|
||||
denne operation. \nAfslut et eller flere aktive programmer for at frig<69>re \
|
||||
hukommelse, og pr<70>v s<> igen."
|
||||
|
||||
}
|
129
reactos/apps/dist/notepad/De.rc
vendored
Normal file
129
reactos/apps/dist/notepad/De.rc
vendored
Normal file
@@ -0,0 +1,129 @@
|
||||
/*
|
||||
* Notepad (German resources)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_GERMAN, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&Datei" {
|
||||
MENUITEM "&Neu...", CMD_NEW
|
||||
MENUITEM "<22>&ffnen...", CMD_OPEN
|
||||
MENUITEM "&Speichern", CMD_SAVE
|
||||
MENUITEM "Speichern &unter...", CMD_SAVE_AS
|
||||
MENUITEM "&Drucken", CMD_PRINT
|
||||
MENUITEM "Seite ein&richten...", CMD_PAGE_SETUP
|
||||
MENUITEM "Drucker&einrichtung...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Beenden", CMD_EXIT
|
||||
}
|
||||
POPUP "&Bearbeiten" {
|
||||
MENUITEM "&R<>ckg<6B>ngig\tStrg+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Ausschneiden\tStrg+X", CMD_CUT
|
||||
MENUITEM "&Kopieren\tStrg+C", CMD_COPY
|
||||
MENUITEM "&Einf<6E>gen\tStrg+V", CMD_PASTE
|
||||
MENUITEM "&L<>schen\tEntf", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Alles &markieren", CMD_SELECT_ALL
|
||||
MENUITEM "&Uhrzeit/Datum\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Zeilenumbruch", CMD_WRAP
|
||||
}
|
||||
POPUP "&Suchen" {
|
||||
MENUITEM "Suchen...", CMD_SEARCH
|
||||
MENUITEM "&Weitersuchen\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Hilfe" {
|
||||
MENUITEM "&Inhalt", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Suchen...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Hilfe benutzen", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Inf&o..." {
|
||||
MENUITEM "&Lizenz", CMD_LICENSE
|
||||
MENUITEM "&KEINE GARANTIE", CMD_NO_WARRANTY
|
||||
MENUITEM "&<26>ber Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Seite einrichten"
|
||||
{
|
||||
LTEXT "&Kopfzeile:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Fu<46>zeile:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "R<>nder", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Links:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Oben:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Rechts:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Unten:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Abbrechen", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Hilfe", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Page &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Editor"
|
||||
STRING_ERROR, "FEHLER"
|
||||
STRING_WARNING, "ACHTUNG"
|
||||
STRING_INFO, "Information"
|
||||
|
||||
STRING_UNTITLED, "(unbenannt)"
|
||||
|
||||
STRING_ALL_FILES, "Alle Dateien (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Textdateien (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "'%s' ist zu gross f<>r den Editor\n \
|
||||
Benutzen Sie bitte einen anderen Editor, um diese Datei zu bearbeiten."
|
||||
STRING_NOTEXT, "Sie haben keinen Text eingegeben, der \
|
||||
gespeichert\n werden k<>nnte. Geben Sie Text ein, und versuchen Sie es \
|
||||
\nerneut."
|
||||
STRING_DOESNOTEXIST, "File '%s'\ndoes not exist\n\n \
|
||||
Do you want to create a new file ?"
|
||||
STRING_NOTSAVED, "Datei %s\n wurde geaendert.\n\n \
|
||||
Moechten Sie die Aenderungen speichern ?"
|
||||
STRING_NOTFOUND, "'%s' kann nicht gefunden werden."
|
||||
STRING_OUT_OF_MEMORY, "Nicht gen<65>gend Arbeitsspeicher, \
|
||||
um diese Funktion \nabzuschlie<69>en. Beenden Sie eine oder mehrere \
|
||||
\nAnwendungen, um den verf<72>gbaren Arbeitsspeicher zu \nerh<72>hen."
|
||||
|
||||
|
||||
}
|
129
reactos/apps/dist/notepad/En.rc
vendored
Normal file
129
reactos/apps/dist/notepad/En.rc
vendored
Normal file
@@ -0,0 +1,129 @@
|
||||
/*
|
||||
* Notepad (English resources)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Proofread 1998 by David Lee Lambert <lamber45@egr.msu.edu>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&File" {
|
||||
MENUITEM "&New...", CMD_NEW
|
||||
MENUITEM "&Open\tCtrl+O", CMD_OPEN
|
||||
MENUITEM "&Save\tCtrl+S", CMD_SAVE
|
||||
MENUITEM "Save &as...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Print", CMD_PRINT
|
||||
MENUITEM "Page Se&tup...", CMD_PAGE_SETUP
|
||||
MENUITEM "P&rinter Setup...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "E&xit", CMD_EXIT
|
||||
}
|
||||
POPUP "&Edit" {
|
||||
MENUITEM "&Undo\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Cu&t\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Copy\tCtrl+C", CMD_COPY
|
||||
MENUITEM "&Paste\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&Delete\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Select &all\tCtrl+A", CMD_SELECT_ALL
|
||||
MENUITEM "&Time/Date\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Wrap long lines", CMD_WRAP
|
||||
MENUITEM "&Font...", CMD_FONT
|
||||
}
|
||||
POPUP "&Search" {
|
||||
MENUITEM "&Search\tCtrl+F", CMD_SEARCH
|
||||
MENUITEM "&Search next\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Help" {
|
||||
MENUITEM "&Contents", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Search...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Help on help", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Inf&o..." {
|
||||
MENUITEM "&License", CMD_LICENSE
|
||||
MENUITEM "&NO WARRANTY", CMD_NO_WARRANTY
|
||||
MENUITEM "&About Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Page Setup"
|
||||
{
|
||||
LTEXT "&Header:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Footer:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&Margins:", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Left:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Top:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Right:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Bottom:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Cancel", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Help", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Page &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Notepad"
|
||||
STRING_ERROR, "ERROR"
|
||||
STRING_WARNING, "WARNING"
|
||||
STRING_INFO, "Information"
|
||||
|
||||
STRING_UNTITLED, "(untitled)"
|
||||
|
||||
STRING_ALL_FILES, "All files (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Text files (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "File '%s' is too large for notepad.\n \
|
||||
Please use a different editor."
|
||||
STRING_NOTEXT, "You didn't enter any text. \
|
||||
\nPlease type something and try again"
|
||||
STRING_DOESNOTEXIST, "File '%s'\ndoes not exist\n\n \
|
||||
Do you want to create a new file ?"
|
||||
STRING_NOTSAVED, "File '%s'\nhas been modified\n\n \
|
||||
Would you like to save the changes ?"
|
||||
STRING_NOTFOUND, "'%s' can not be found."
|
||||
STRING_OUT_OF_MEMORY, "Not enough memory to complete this \
|
||||
task. \nClose one or more applications to increase the amount of \nfree \
|
||||
memory."
|
||||
|
||||
}
|
130
reactos/apps/dist/notepad/Es.rc
vendored
Normal file
130
reactos/apps/dist/notepad/Es.rc
vendored
Normal file
@@ -0,0 +1,130 @@
|
||||
/*
|
||||
* Notepad (Spanish resources)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Proofread 1998 by David Lee Lambert <lamber45@egr.msu.edu>
|
||||
* Proofread 1999 by Jose Marcos Lopez <jose.lopez@upcnet.upc.es>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
* Copyright 2003 Jos<6F> Manuel Ferrer Ortiz
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_SPANISH, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&Archivo" {
|
||||
MENUITEM "&Nuevo", CMD_NEW
|
||||
MENUITEM "&Abrir", CMD_OPEN
|
||||
MENUITEM "&Guardar", CMD_SAVE
|
||||
MENUITEM "Guardar &como...", CMD_SAVE_AS
|
||||
MENUITEM "&Imprimir", CMD_PRINT
|
||||
MENUITEM "Configurar &p<>gina...", CMD_PAGE_SETUP
|
||||
MENUITEM "Configuraci<63>n &impresora...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Salir", CMD_EXIT
|
||||
}
|
||||
POPUP "&Editar" {
|
||||
MENUITEM "&Deshacer\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Cor&tar\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Copiar\tCtrl+C", CMD_COPY
|
||||
MENUITEM "&Pegar\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&Borrar\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Seleccionar t&odo", CMD_SELECT_ALL
|
||||
MENUITEM "&Hora y Fecha\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Ajuste de l<>nea autom<6F>tico", CMD_WRAP
|
||||
}
|
||||
POPUP "&Buscar" {
|
||||
MENUITEM "&Buscar...", CMD_SEARCH
|
||||
MENUITEM "Buscar &siguiente\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Ayuda" {
|
||||
MENUITEM "<22>&ndice", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Buscar...", CMD_HELP_SEARCH
|
||||
MENUITEM "A&yuda sobre la ayuda", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "&Informaci<63>n..." {
|
||||
MENUITEM "&Licencia", CMD_LICENSE
|
||||
MENUITEM "SIN &GARANT<4E>A", CMD_NO_WARRANTY
|
||||
MENUITEM "&Acerca de Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "&Ajuste de p<>gina"
|
||||
{
|
||||
LTEXT "&Cabecera:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Pie:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&M<>rgenes:", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Izquierda:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "A&rriba:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Derecha:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "Aba&jo:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "Aceptar", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Cancelar", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Ayuda", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "P<>gina &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Bloc de Notas"
|
||||
STRING_ERROR, "ERROR"
|
||||
STRING_WARNING, "ADVERTENCIA"
|
||||
STRING_INFO, "Informaci<63>n"
|
||||
|
||||
STRING_UNTITLED, "(sin t<>tulo)"
|
||||
|
||||
STRING_ALL_FILES, "Todos los archivos (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Documentos de texto (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "El archivo '%s' es demasiado grande para el bloc de notas.\n \
|
||||
Use otro editor."
|
||||
STRING_NOTEXT, "No escribi<62> nada. \
|
||||
\nPor favor escriba algo y pruebe de nuevo"
|
||||
STRING_DOESNOTEXIST, "El archivo '%s'\nno existe\n\n \
|
||||
<EFBFBD>Desea crear un nuevo archivo?"
|
||||
STRING_NOTSAVED, "El texto en el archivo '%s' ha cambiado\n\n \
|
||||
<EFBFBD>Desea guardar los cambios?"
|
||||
STRING_NOTFOUND, "no se encontr<74> '%s'."
|
||||
STRING_OUT_OF_MEMORY, "No hay suficiente memoria para terminar \
|
||||
esta tarea. \nCierre una o m<>s aplicaciones para aumentar la cantidad \nde \
|
||||
memoria libre."
|
||||
|
||||
|
||||
}
|
126
reactos/apps/dist/notepad/Fi.rc
vendored
Normal file
126
reactos/apps/dist/notepad/Fi.rc
vendored
Normal file
@@ -0,0 +1,126 @@
|
||||
/*
|
||||
* Notepad (Finnish resources)
|
||||
*
|
||||
* Copyright 1999 by Jukka Iivonen <iivonen@iki.fi>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&Tiedosto" {
|
||||
MENUITEM "&Uusi...", CMD_NEW
|
||||
MENUITEM "&Avaa", CMD_OPEN
|
||||
MENUITEM "Ta&lleta", CMD_SAVE
|
||||
MENUITEM "Talleta &nimell<6C>...", CMD_SAVE_AS
|
||||
MENUITEM "T&ulosta", CMD_PRINT
|
||||
MENUITEM "&Sivun asetukset...", CMD_PAGE_SETUP
|
||||
MENUITEM "&Kirjoittimen asetukset...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Poistu", CMD_EXIT
|
||||
}
|
||||
POPUP "&Muokkaa" {
|
||||
MENUITEM "&Palauta\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Leikkaa\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Kopioi\tCtrl+C", CMD_COPY
|
||||
MENUITEM "L&iit<69>\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "P&oista\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Valitse kaikki", CMD_SELECT_ALL
|
||||
MENUITEM "&Aika/P<>iv<69>m<EFBFBD><6D>r<EFBFBD>\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Ka&tkaise pitk<74> rivi", CMD_WRAP
|
||||
}
|
||||
POPUP "&Etsi" {
|
||||
MENUITEM "Etsi...", CMD_SEARCH
|
||||
MENUITEM "Etsi &seuraava\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Apua" {
|
||||
MENUITEM "&Sis<69>lt<6C>", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Etsi...", CMD_HELP_SEARCH
|
||||
MENUITEM "Apua &Opastuksesta", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Inf&o..." {
|
||||
MENUITEM "&Lisenssi", CMD_LICENSE
|
||||
MENUITEM "&EI TAKUUTA", CMD_NO_WARRANTY
|
||||
MENUITEM "&Tietoja Wine:ista", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Sivun asetukset"
|
||||
{
|
||||
LTEXT "&Yl<59>otsikko:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "Alao&tsikko:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&Marginaali:", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Vasen:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "Y&l<>:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Oikea:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Ala:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Peruuta", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Apua", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Sivu &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Notepad"
|
||||
STRING_ERROR, "VIRHE"
|
||||
STRING_WARNING, "VAROITUS"
|
||||
STRING_INFO, "Tiedoitus"
|
||||
|
||||
STRING_UNTITLED, "(otsikoimaton)"
|
||||
|
||||
STRING_ALL_FILES, "Kaikki tiedostot (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Teksti tiedostot (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "Tiedosto '%s' on liian suuri.\n \
|
||||
Please use a different editor."
|
||||
STRING_NOTEXT, "Et sy<73>tt<74>nyt lainkaan teksti<74>. \
|
||||
\nKirjoita jotain ja yrit<69> uudelleen"
|
||||
STRING_DOESNOTEXIST, "File '%s'\ndoes not exist\n\n \
|
||||
Do you want to create a new file ?"
|
||||
STRING_NOTSAVED, "File '%s'\nhas been modified\n\n \
|
||||
Would you like to save the changes ?"
|
||||
STRING_NOTFOUND, "'%s' ei l<>ydy."
|
||||
STRING_OUT_OF_MEMORY, "Muistia ei ole riitt<74>v<EFBFBD>sti t<>m<EFBFBD>n \
|
||||
\nteht<68>v<EFBFBD>n tekemiseksi. Sulje jokin sovellus vapauttaaksesi\n \
|
||||
muistia."
|
||||
|
||||
}
|
129
reactos/apps/dist/notepad/Fr.rc
vendored
Normal file
129
reactos/apps/dist/notepad/Fr.rc
vendored
Normal file
@@ -0,0 +1,129 @@
|
||||
/*
|
||||
* Notepad (French resources)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Translation by Laurent Buffler <laurent@bluewin.ch>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&Fichier" {
|
||||
MENUITEM "&Nouveau...", CMD_NEW
|
||||
MENUITEM "&Ouvrir\tCtrl+O", CMD_OPEN
|
||||
MENUITEM "&Enregistrer\tCtrl+S", CMD_SAVE
|
||||
MENUITEM "Enregistrer &sous...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Im&primer", CMD_PRINT
|
||||
MENUITEM "&Mise en page...", CMD_PAGE_SETUP
|
||||
MENUITEM "&Configuration de l'imprimante...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Quitter", CMD_EXIT
|
||||
}
|
||||
POPUP "&Edition" {
|
||||
MENUITEM "&Annuler\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Co&uper\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Copier\tCtrl+C", CMD_COPY
|
||||
MENUITEM "C&oller\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&Effacer\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Tout &s<>lectionner\tCtrl+A", CMD_SELECT_ALL
|
||||
MENUITEM "&Heure/Date\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Retour <20> la ligne", CMD_WRAP
|
||||
MENUITEM "&Police...", CMD_FONT
|
||||
}
|
||||
POPUP "&Rechercher" {
|
||||
MENUITEM "&Rechercher\tCtrl+F", CMD_SEARCH
|
||||
MENUITEM "&Suivant\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Aide" {
|
||||
MENUITEM "&Sommaire", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Rechercher...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Utiliser l'aide", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Inf&o..." {
|
||||
MENUITEM "&Licence", CMD_LICENSE
|
||||
MENUITEM "&AUCUNE GARANTIE", CMD_NO_WARRANTY
|
||||
MENUITEM "&A propos de Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Mise en page"
|
||||
{
|
||||
LTEXT "&En-t<>te :", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Pied de page :", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&Marges :", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Gauche :", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Haut :", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Droite :", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Bas :", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Annuler", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Aide", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Page &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Bloc-notes"
|
||||
STRING_ERROR, "ERREUR"
|
||||
STRING_WARNING, "ATTENTION"
|
||||
STRING_INFO, "Information"
|
||||
|
||||
STRING_UNTITLED, "(sans-titre)"
|
||||
|
||||
STRING_ALL_FILES, "Tous fichiers (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Fichiers texte (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "Le fichier '%s' est trop grand pour le bloc-notes.\n \
|
||||
Veuillez utiliser un autre <20>diteur."
|
||||
STRING_NOTEXT, "Vous n'avez pas entr<74> de texte. \
|
||||
Veuillez taper quelque chose et recommencer"
|
||||
STRING_DOESNOTEXIST, "Le fichier '%s'\nn'existe pas.\n\n \
|
||||
Voulez-vous cr<63>er un nouveau fichier ?"
|
||||
STRING_NOTSAVED, "Le fichier '%s'\na <20>t<EFBFBD> modifi<66>\n\n \
|
||||
Voulez-vous enregistrer vos modifications ?"
|
||||
STRING_NOTFOUND, "'%s' non trouv<75>."
|
||||
STRING_OUT_OF_MEMORY, "Pas assez de m<>moire pour compl<70>ter cette \
|
||||
t<EFBFBD>che. \nFermez une ou plusieurs applications pour lib<69>rer\n\
|
||||
de la m<>moire."
|
||||
|
||||
}
|
128
reactos/apps/dist/notepad/Hu.rc
vendored
Normal file
128
reactos/apps/dist/notepad/Hu.rc
vendored
Normal file
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
* Notepad (Hungarian resources)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur
|
||||
* Proofread 1998 by David Lee Lambert
|
||||
* Copyright 2002 Sylvain Petreolle
|
||||
* Copyright 2002 Zoly Nagy
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
MAIN_MENU MENU LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
|
||||
{
|
||||
POPUP "&F<>jl" {
|
||||
MENUITEM "<22>&j", CMD_NEW
|
||||
MENUITEM "Meg&nyit<69>s...", CMD_OPEN
|
||||
MENUITEM "&Ment<6E>s", CMD_SAVE
|
||||
MENUITEM "Ment<6E>s m<>&sk<73>nt...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Oldalbe<62>ll<6C>t<EFBFBD>s...", CMD_PAGE_SETUP
|
||||
MENUITEM "Nyom&tat<61>s...", CMD_PRINT
|
||||
MENUITEM "Nyomtat<61> &be<62>ll<6C>t<EFBFBD>s...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Kil<69>p<EFBFBD>s", CMD_EXIT
|
||||
}
|
||||
POPUP "S&zerkeszt<7A>s" {
|
||||
MENUITEM "&Visszavon<6F>s\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Kiv<69>&g<>s\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&M<>sol<6F>s\tCtrl+C", CMD_COPY
|
||||
MENUITEM "&Beilleszt<7A>s\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "T<>r&l<>s\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Az <20>sszes kijel<65>l<EFBFBD>se", CMD_SELECT_ALL
|
||||
MENUITEM "&Id<49>/d<>tum\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Hossz<73> sorok t<>rdel<65>se", CMD_WRAP
|
||||
}
|
||||
POPUP "&Keres<65>s" {
|
||||
MENUITEM "&Keres<65>s...", CMD_SEARCH
|
||||
MENUITEM "K<>ve&tkez<65> keres<65>se\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&S<>g<EFBFBD>" {
|
||||
MENUITEM "&T<>mak<61>r<EFBFBD>k", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Keres<65>s...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Haszn<7A>lat", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Inf&orm<72>ci<63>..." {
|
||||
MENUITEM "&Licenc", CMD_LICENSE
|
||||
MENUITEM "&SEMMI GARANCIA", CMD_NO_WARRANTY
|
||||
MENUITEM "&Wine n<>vjegy", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Oldalbe<62>ll<6C>t<EFBFBD>s"
|
||||
{
|
||||
LTEXT "&Fejl<6A>c:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&L<>bl<62>c:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&Marg<72>k:", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Bal:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Fels<6C>:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Jobb:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Als<6C>:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "M<>gse", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&S<>g<EFBFBD>", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Oldalsz<73>m: &s." /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Jegyzett<74>mb"
|
||||
STRING_ERROR, "HIBA"
|
||||
STRING_WARNING, "FIGYELMEZTET<45>S"
|
||||
STRING_INFO, "Inform<72>ci<63>"
|
||||
|
||||
STRING_UNTITLED, "(n<>vtelen)"
|
||||
|
||||
STRING_ALL_FILES, "Minden f<>jl (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Sz<53>vegf<67>jlok (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "'%s' f<>jl t<>l nagy m<>ret<65>.\n \
|
||||
K<EFBFBD>rem haszn<7A>ljon m<>sik sz<73>vegszerkeszt<7A> programot."
|
||||
STRING_NOTEXT, "A sz<73>veg nem tartalmaz karaktert! \
|
||||
\nK<6E>rem g<>peljen be n<>h<EFBFBD>ny karaktert <20>s pr<70>b<EFBFBD>lja <20>jra!"
|
||||
STRING_DOESNOTEXIST, "A megadott '%s'\nf<6E>jl nem l<>tezik!\n\n \
|
||||
K<EFBFBD>v<EFBFBD>n l<>trehozni <20>j f<>jlt?"
|
||||
STRING_NOTSAVED, "'%s' f<>jl\nm<6E>dosult\n\n \
|
||||
Szeretn<EFBFBD> menteni a v<>ltoz<6F>sokat?"
|
||||
STRING_NOTFOUND, "'%s' nem tal<61>lhat<61>!"
|
||||
STRING_OUT_OF_MEMORY, "Nincs elegend<6E> szabad mem<65>ria!\
|
||||
\nZ<6E>rjon be n<>h<EFBFBD>ny alkalmaz<61>st, ezzel n<>velve a szabad mem<65>ria m<>ret<65>t\
|
||||
!"
|
||||
|
||||
}
|
130
reactos/apps/dist/notepad/It.rc
vendored
Normal file
130
reactos/apps/dist/notepad/It.rc
vendored
Normal file
@@ -0,0 +1,130 @@
|
||||
/*
|
||||
* Notepad (Italian resources)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Proofread 1998 by David Lee Lambert <lamber45@egr.msu.edu>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
* Copyright 2003 Marcelo Duarte
|
||||
* Copyright 2003 Ivan Leo Murray-Smith <puoti@inwind.it>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_ITALIAN, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&File" {
|
||||
MENUITEM "&Nuovo", CMD_NEW
|
||||
MENUITEM "&Apri...\tCtrl+O", CMD_OPEN
|
||||
MENUITEM "&Salva\tCtrl+S", CMD_SAVE
|
||||
MENUITEM "Salva &con nome...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Stampa", CMD_PRINT
|
||||
MENUITEM "&Imposta pagina...", CMD_PAGE_SETUP
|
||||
MENUITEM "&Configurazione di stampa...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "E&sci", CMD_EXIT
|
||||
}
|
||||
POPUP "&Modifica" {
|
||||
MENUITEM "&Anulla\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Taglia\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Copia\tCtrl+C", CMD_COPY
|
||||
MENUITEM "&Incolla\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&Elimina\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Seleziona &tutto\tCtrl+A", CMD_SELECT_ALL
|
||||
MENUITEM "&Ora/Data\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&A campo automatico", CMD_WRAP
|
||||
MENUITEM "&Imposta carattere...", CMD_FONT
|
||||
}
|
||||
POPUP "&Trova" {
|
||||
MENUITEM "&Trova\tCtrl+F", CMD_SEARCH
|
||||
MENUITEM "&Trova successivo\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Aiuto" {
|
||||
MENUITEM "&Contenuti", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Trova...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Aiuto sulla Guida", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Inf&o..." {
|
||||
MENUITEM "&Licenza", CMD_LICENSE
|
||||
MENUITEM "&Garanzia", CMD_NO_WARRANTY
|
||||
MENUITEM "&Informazioni sul Blocco Note", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Setup di pagina"
|
||||
{
|
||||
LTEXT "&Note a inizio pagina:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Note a pi<70> di pagina:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&Margini:", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Sinistro:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Superiore:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Destro:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Inferiore:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Cancella", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Aiuto", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Page &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Blocco note"
|
||||
STRING_ERROR, "ERRORE"
|
||||
STRING_WARNING, "ATTENZIONE"
|
||||
STRING_INFO, "Info"
|
||||
|
||||
STRING_UNTITLED, "(senza nome)"
|
||||
|
||||
STRING_ALL_FILES, "Tutti i file (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "File di testo (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "Il file '%s' <20> troppo grande per il blocco note.\n \
|
||||
Per favore usare un altro editor."
|
||||
STRING_NOTEXT, "Non <20> stato inserito alcun testo. \
|
||||
\nPer favore digitare qualcosa e riprovare"
|
||||
STRING_DOESNOTEXIST, "Il file '%s'\nnon esiste\n\n \
|
||||
Creare un nuovo file ?"
|
||||
STRING_NOTSAVED, "Il file '%s'\ne' stato modificato\n\n \
|
||||
Salvare le modifiche ?"
|
||||
STRING_NOTFOUND, "'%s' non <20> stato trovato."
|
||||
STRING_OUT_OF_MEMORY, "Memoria insufficente per completare questa operazione \
|
||||
task. \nChiudere una o pi<70> applicazioni per aumentare la quantita'\n di memoria libera."
|
||||
|
||||
}
|
28
reactos/apps/dist/notepad/License_En.c
vendored
Normal file
28
reactos/apps/dist/notepad/License_En.c
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
#include <windows.h>
|
||||
#include "license.h"
|
||||
|
||||
static const CHAR LicenseCaption_En[] = "LICENSE";
|
||||
static const CHAR License_En[] =
|
||||
"This library is free software; you can redistribute it and/or "
|
||||
"modify it under the terms of the GNU Lesser General Public "
|
||||
"License as published by the Free Software Foundation; either "
|
||||
"version 2.1 of the License, or (at your option) any later version.\n"
|
||||
|
||||
"This library is distributed in the hope that it will be useful, "
|
||||
"but WITHOUT ANY WARRANTY; without even the implied warranty of "
|
||||
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU "
|
||||
"Lesser General Public License for more details.\n"
|
||||
|
||||
"You should have received a copy of the GNU Lesser General Public "
|
||||
"License along with this library; if not, write to the Free Software "
|
||||
"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA";
|
||||
|
||||
static const CHAR NoWarrantyCaption_En[] = "NO WARRANTY";
|
||||
static const CHAR NoWarranty_En[] =
|
||||
"This library is distributed in the hope that it will be useful, "
|
||||
"but WITHOUT ANY WARRANTY; without even the implied warranty of "
|
||||
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU "
|
||||
"Lesser General Public License for more details.";
|
||||
|
||||
LICENSE WineLicense_En = {License_En, LicenseCaption_En,
|
||||
NoWarranty_En, NoWarrantyCaption_En};
|
126
reactos/apps/dist/notepad/Nl.rc
vendored
Normal file
126
reactos/apps/dist/notepad/Nl.rc
vendored
Normal file
@@ -0,0 +1,126 @@
|
||||
/*
|
||||
* Notepad (Dutch resources)
|
||||
*
|
||||
* Copyright 2003 Hans Leidekker
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&Bestand" {
|
||||
MENUITEM "&Nieuw...", CMD_NEW
|
||||
MENUITEM "&Openen\tCtrl+O", CMD_OPEN
|
||||
MENUITEM "O&pslaan\tCtrl+p", CMD_SAVE
|
||||
MENUITEM "Ops&laan als...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Afdrukken", CMD_PRINT
|
||||
MENUITEM "Pagina-in&stelling...", CMD_PAGE_SETUP
|
||||
MENUITEM "Printerinstellingen...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Afsluiten", CMD_EXIT
|
||||
}
|
||||
POPUP "Be&werken" {
|
||||
MENUITEM "&Ongedaan maken\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "K&nippen\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Kopiëren\tCtrl+C", CMD_COPY
|
||||
MENUITEM "&Plakken\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&Verwijderen\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Alles selecteren\tCtrl+A", CMD_SELECT_ALL
|
||||
MENUITEM "Tijd/&datum\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "A&utomatische terugloop", CMD_WRAP
|
||||
MENUITEM "&Lettertype instellen...", CMD_FONT
|
||||
}
|
||||
POPUP "&Zoeken" {
|
||||
MENUITEM "&Zoeken\tCtrl+Z", CMD_SEARCH
|
||||
MENUITEM "&Volgende zoeken\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Help" {
|
||||
MENUITEM "&Help-onderwerpen", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Zoeken...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Hulp bij Help", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Inf&o..." {
|
||||
MENUITEM "&Licentie", CMD_LICENSE
|
||||
MENUITEM "&GEEN GARANTIE", CMD_NO_WARRANTY
|
||||
MENUITEM "&Over Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Pagina-instelling"
|
||||
{
|
||||
LTEXT "&Koptekst:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Voettekst:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&Marges:", 0x144, 10, 43,160, 45
|
||||
LTEXT "Li&nks:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Boven:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Rechts:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Onder:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Annuleren", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Help", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Pagina &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Kladblok"
|
||||
STRING_ERROR, "FOUT"
|
||||
STRING_WARNING, "WAARSCHUWING"
|
||||
STRING_INFO, "Informatie"
|
||||
|
||||
STRING_UNTITLED, "(naamloos)"
|
||||
|
||||
STRING_ALL_FILES, "Alle bestanden (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Tekstbestanden (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "Het bestand '%s' is te groot voor Kladblok.\n \
|
||||
Gebruik een andere editor."
|
||||
STRING_NOTEXT, "U heeft geen tekst ingevoerd. \
|
||||
\nType uw tekst en probeer het nogmaals"
|
||||
STRING_DOESNOTEXIST, "Het bestand '%s'\nbestaat niet\n\n \
|
||||
Wilt u een nieuw bestand maken?"
|
||||
STRING_NOTSAVED, "Het bestand '%s'\nis gewijzigd\n\n \
|
||||
Wilt u de wijzigingen opslaan?"
|
||||
STRING_NOTFOUND, "'%s' kan niet worden gevonden."
|
||||
STRING_OUT_OF_MEMORY, "Onvoldoende geheugen. \
|
||||
\nSluit een of meer applicaties om de hoeveelheid \nbeschikbaar geheugen te vergroten."
|
||||
|
||||
}
|
129
reactos/apps/dist/notepad/Pt.rc
vendored
Normal file
129
reactos/apps/dist/notepad/Pt.rc
vendored
Normal file
@@ -0,0 +1,129 @@
|
||||
/*
|
||||
* Notepad
|
||||
* Portuguese Language Support
|
||||
*
|
||||
* Copyright 1999 Marcel Baur <alves@correionet.com.br>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
* Copyright 2003 Marcelo Duarte
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_PORTUGUESE, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&Arquivo" {
|
||||
MENUITEM "&Novo...", CMD_NEW
|
||||
MENUITEM "A&brir", CMD_OPEN
|
||||
MENUITEM "&Salvar", CMD_SAVE
|
||||
MENUITEM "Salvar &como...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Imprimir", CMD_PRINT
|
||||
MENUITEM "C&onfigurar p<>gina...", CMD_PAGE_SETUP
|
||||
MENUITEM "Configurar i&mpressora...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Sai&r", CMD_EXIT
|
||||
}
|
||||
POPUP "&Editar" {
|
||||
MENUITEM "&Desfazer\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Recortar\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Copiar\tCtrl+C", CMD_COPY
|
||||
MENUITEM "C&olar\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "E&xcluir\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Selecionar &tudo", CMD_SELECT_ALL
|
||||
MENUITEM "&Data/Hora\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Quebrar autom<6F>tica de linha", CMD_WRAP
|
||||
MENUITEM "&Fonte...", CMD_FONT
|
||||
}
|
||||
POPUP "&Pesquisa" {
|
||||
MENUITEM "&Localizar...", CMD_SEARCH
|
||||
MENUITEM "Localizar &pr<70>xima\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Ajuda" {
|
||||
MENUITEM "&Conte<74>do", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Procurar...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Ajuda na ajuda", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "&Informa<6D><61>es..." {
|
||||
MENUITEM "&Licen<65>a", CMD_LICENSE
|
||||
MENUITEM "&SEM GARANTIA", CMD_NO_WARRANTY
|
||||
MENUITEM "&Sobre o Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Configurar p<>gina"
|
||||
{
|
||||
LTEXT "&Cabe<62>alho:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Rodap<61>:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&Margens:", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Esquerda:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Superior:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Direita:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Inferior:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Cancelar", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Ajuda", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "P<>gina &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Notepad"
|
||||
STRING_ERROR, "ERRO"
|
||||
STRING_WARNING, "AVISO"
|
||||
STRING_INFO, "Informa<6D><61>o"
|
||||
|
||||
STRING_UNTITLED, "(sem nome)"
|
||||
|
||||
STRING_ALL_FILES, "Todos os arquivos (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Arquivos texto (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "Arquivo '%s' <20> muito longo para o notepad.\n \
|
||||
Por favor use um editor diferente."
|
||||
STRING_NOTEXT, "Voc<6F> n<>o digitou nenhum texto. \
|
||||
\nPor favor digite alguma coisa e tente novamente"
|
||||
STRING_DOESNOTEXIST, "Arquivo '%s'\nn<6E>o existe\n\n \
|
||||
Voc<EFBFBD> deseja criar um novo arquivo?"
|
||||
STRING_NOTSAVED, "Arquivo '%s'\nfoi modificado\n\n \
|
||||
Gostaria de salvar as altera<72><61>es?"
|
||||
STRING_NOTFOUND, "'%s' n<>o pode ser encontrado."
|
||||
STRING_OUT_OF_MEMORY, "N<>o h<> mem<65>ria suficiente para completar essa \
|
||||
tarefa. \nFeche uma ou mais aplica<63><61>es para aumentar a quantidade de mem<65>ria livre."
|
||||
|
||||
}
|
124
reactos/apps/dist/notepad/Ru.rc
vendored
Normal file
124
reactos/apps/dist/notepad/Ru.rc
vendored
Normal file
@@ -0,0 +1,124 @@
|
||||
/*
|
||||
* Notepad (Russian resources)
|
||||
*
|
||||
* Copyright 2003 Igor Stepin
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
MAIN_MENU MENU LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
|
||||
{
|
||||
POPUP "&<26><><EFBFBD><EFBFBD>" {
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>&<26><><EFBFBD>", CMD_NEW
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...", CMD_OPEN
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", CMD_SAVE
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> &<26><><EFBFBD>...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...", CMD_PAGE_SETUP
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...", CMD_PRINTER_SETUP
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", CMD_PRINT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22>&<26><><EFBFBD><EFBFBD>", CMD_EXIT
|
||||
}
|
||||
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tCtrl+C", CMD_COPY
|
||||
MENUITEM "<22><><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD>\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>&<26><>", CMD_SELECT_ALL
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>&<26> <20> <20><><EFBFBD><EFBFBD>\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", CMD_WRAP
|
||||
}
|
||||
POPUP "<22>&<26><><EFBFBD><EFBFBD>" {
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD>", CMD_SEARCH
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD> &<26><><EFBFBD><EFBFBD><EFBFBD>\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", CMD_HELP_CONTENTS
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD>...", CMD_HELP_SEARCH
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..." {
|
||||
MENUITEM "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", CMD_LICENSE
|
||||
MENUITEM "&<26><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", CMD_NO_WARRANTY
|
||||
MENUITEM "&O Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
{
|
||||
LTEXT "<22>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "<22>&<26><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "<22><><EFBFBD><EFBFBD> (<28><>):", 0x144, 10, 43,160, 45
|
||||
LTEXT "&<26><><EFBFBD><EFBFBD><EFBFBD>:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 <20><>" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 <20><>" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 <20><>" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 <20><>" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
STRING_ERROR, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
STRING_WARNING, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
STRING_INFO, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
|
||||
STRING_UNTITLED, "(<28><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)"
|
||||
|
||||
STRING_ALL_FILES, "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "<22><><EFBFBD><EFBFBD> '%s' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\n \
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
|
||||
STRING_NOTEXT, "<22><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. \
|
||||
\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>."
|
||||
STRING_DOESNOTEXIST, "<22><><EFBFBD><EFBFBD> '%s'\n<><6E> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\n \
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>?"
|
||||
STRING_NOTSAVED, "<22><><EFBFBD><EFBFBD> '%s'\n<><6E><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\n \
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?"
|
||||
STRING_NOTFOUND, "'%s' <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
|
||||
STRING_OUT_OF_MEMORY, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \
|
||||
\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
|
||||
|
||||
}
|
125
reactos/apps/dist/notepad/Si.rc
vendored
Normal file
125
reactos/apps/dist/notepad/Si.rc
vendored
Normal file
@@ -0,0 +1,125 @@
|
||||
/*
|
||||
* Notepad (Slovenian resources)
|
||||
*
|
||||
* Copyright 2002-2003 Rok Mandeljc <rok.mandeljc@gimb.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&Datoteka" {
|
||||
MENUITEM "&Nova", CMD_NEW
|
||||
MENUITEM "&Odpri ...", CMD_OPEN
|
||||
MENUITEM "&Shrani", CMD_SAVE
|
||||
MENUITEM "Shrani &kot ...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Na&tisni", CMD_PRINT
|
||||
MENUITEM "P&riprava strani ...", CMD_PAGE_SETUP
|
||||
MENUITEM "&Tiskalnik ...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Iz&hod", CMD_EXIT
|
||||
}
|
||||
POPUP "&Urejanje" {
|
||||
MENUITEM "&Razveljavi\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Izre<72>i\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Kopiraj\tCtrl+C", CMD_COPY
|
||||
MENUITEM "&Prilepi\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "Izbri&<26>i\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Izberi &vse", CMD_SELECT_ALL
|
||||
MENUITEM "<22>as/&Datum\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Pr&elom vrstice", CMD_WRAP
|
||||
}
|
||||
POPUP "&Iskanje" {
|
||||
MENUITEM "&Najdi ...", CMD_SEARCH
|
||||
MENUITEM "Na&daljuj iskanje\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Pomo<6D>" {
|
||||
MENUITEM "&Teme pomo<6D>i", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Najdi ...", CMD_HELP_SEARCH
|
||||
MENUITEM "&O pomo<6D>i", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Inf&ormacije ..." {
|
||||
MENUITEM "&Licen<65>na pogodba", CMD_LICENSE
|
||||
MENUITEM "&BREZ GARANCIJE", CMD_NO_WARRANTY
|
||||
MENUITEM "&O Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Priprava strani"
|
||||
CAPTION "Page Setup"
|
||||
{
|
||||
LTEXT "&Glava:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Noga:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "Robovi", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Levo:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Desno:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Zgoraj:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Spodaj:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "V redu", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Prekli<6C>i", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Pomo<6D>", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Stran &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Bele<6C>nica"
|
||||
STRING_ERROR, "NAPAKA"
|
||||
STRING_WARNING, "OPOZORILO"
|
||||
STRING_INFO, "Informacija"
|
||||
|
||||
STRING_UNTITLED, "Neimenovana"
|
||||
|
||||
STRING_ALL_FILES, "Vse datoteke (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Datoteke z besedilom (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "Datoteka '%s' je prevelika za Bele<6C>nico.\n \
|
||||
Uporabite drug urejevalnik."
|
||||
STRING_NOTEXT, "Niste vnesli besedila. \
|
||||
\nVnesite besedilo in poskusite znova."
|
||||
STRING_DOESNOTEXIST, "Datoteka '%s' ne obstaja.\n\n \
|
||||
Ali <20>elite ustvariti novo datoteko?"
|
||||
STRING_NOTSAVED, "Vsebina datoteke '%s'je bila spremenjena.\n\n \
|
||||
Ali <20>elite shraniti spremembe?"
|
||||
STRING_NOTFOUND, "Ni mogo<67>e najti '%s'."
|
||||
STRING_OUT_OF_MEMORY, "Na voljo ni dovolj pomnilnika, da bi bilo mogo<67>e dokon<6F>ati to \
|
||||
operacijo. \n<>e ga <20>elite sprostiti, kon<6F>ajte enega ali ve<76> programov in poskusite znova. "
|
||||
|
||||
}
|
127
reactos/apps/dist/notepad/Sk.rc
vendored
Normal file
127
reactos/apps/dist/notepad/Sk.rc
vendored
Normal file
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
* Notepad (Slovak resources)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Proofread 1998 by David Lee Lambert <lamber45@egr.msu.edu>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&File" {
|
||||
MENUITEM "&New...", CMD_NEW
|
||||
MENUITEM "&Open", CMD_OPEN
|
||||
MENUITEM "&Save", CMD_SAVE
|
||||
MENUITEM "Save &as...", CMD_SAVE_AS
|
||||
MENUITEM "&Print", CMD_PRINT
|
||||
MENUITEM "Page Se&tup...", CMD_PAGE_SETUP
|
||||
MENUITEM "P&rinter Setup...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Exit", CMD_EXIT
|
||||
}
|
||||
POPUP "&Edit" {
|
||||
MENUITEM "&Undo\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Cu&t\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Copy\tCtrl+C", CMD_COPY
|
||||
MENUITEM "&Paste\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&Delete\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Select &all", CMD_SELECT_ALL
|
||||
MENUITEM "&Time/Date\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Wrap long lines", CMD_WRAP
|
||||
}
|
||||
POPUP "&Search" {
|
||||
MENUITEM "&Search", CMD_SEARCH
|
||||
MENUITEM "&Search next\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Help" {
|
||||
MENUITEM "&Contents", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Search...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Help on help", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Inf&o..." {
|
||||
MENUITEM "&License", CMD_LICENSE
|
||||
MENUITEM "&NO WARRANTY", CMD_NO_WARRANTY
|
||||
MENUITEM "&About Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Page Setup"
|
||||
{
|
||||
LTEXT "&Header:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Footer:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&Margins:", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Left:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Top:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Right:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Bottom:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Cancel", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Help", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Page &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Notepad"
|
||||
STRING_ERROR, "ERROR"
|
||||
STRING_WARNING, "WARNING"
|
||||
STRING_INFO, "Information"
|
||||
|
||||
STRING_UNTITLED, "(untitled)"
|
||||
|
||||
STRING_ALL_FILES, "All files (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Text files (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "File '%s' is too large for notepad.\n \
|
||||
Please use a different editor."
|
||||
STRING_NOTEXT, "You didn't enter any text. \
|
||||
\nPlease type something and try again"
|
||||
STRING_DOESNOTEXIST, "File '%s'\ndoes not exist\n\n \
|
||||
Do you want to create a new file ?"
|
||||
STRING_NOTSAVED, "File '%s'\nhas been modified\n\n \
|
||||
Would you like to save the changes ?"
|
||||
STRING_NOTFOUND, "'%s' can not be found."
|
||||
STRING_OUT_OF_MEMORY, "Not enough memory to complete this \
|
||||
task. \nClose one or more applications to increase the amount of \nfree \
|
||||
memory."
|
||||
|
||||
}
|
127
reactos/apps/dist/notepad/Sw.rc
vendored
Normal file
127
reactos/apps/dist/notepad/Sw.rc
vendored
Normal file
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
* Notepad (Swedish resources)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Proofread 1998 by David Lee Lambert <lamber45@egr.msu.edu>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&Arkiv" {
|
||||
MENUITEM "&Ny...", CMD_NEW
|
||||
MENUITEM "<22>&ppna", CMD_OPEN
|
||||
MENUITEM "&Spara", CMD_SAVE
|
||||
MENUITEM "Spara &som...", CMD_SAVE_AS
|
||||
MENUITEM "&Skriv ut", CMD_PRINT
|
||||
MENUITEM "Sid La&yout...", CMD_PAGE_SETUP
|
||||
MENUITEM "Skrivar &inst<73>llningar...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Avsluta", CMD_EXIT
|
||||
}
|
||||
POPUP "&Redigera" {
|
||||
MENUITEM "&Undo\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Klippa\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Kopiera\tCtrl+C", CMD_COPY
|
||||
MENUITEM "&Klistra in\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&Ta bort\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Markera &allt", CMD_SELECT_ALL
|
||||
MENUITEM "&Tid/Datum\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Dela l<>nga meningar", CMD_WRAP
|
||||
}
|
||||
POPUP "&S<>k" {
|
||||
MENUITEM "S<>k...", CMD_SEARCH
|
||||
MENUITEM "&S<>k n<>sta\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Hj<48>lp" {
|
||||
MENUITEM "&Inneh<65>ll", CMD_HELP_CONTENTS
|
||||
MENUITEM "&S<>k...", CMD_HELP_SEARCH
|
||||
MENUITEM "Anv<6E>ndningen &av hj<68>lp", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Inf&ormation..." {
|
||||
MENUITEM "&Licens", CMD_LICENSE
|
||||
MENUITEM "&INGEN GARANTI", CMD_NO_WARRANTY
|
||||
MENUITEM "&Om Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Sid Layout"
|
||||
{
|
||||
LTEXT "&Huvudnot:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Fotnot:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "Kanter:", 0x144, 10, 43,160, 45
|
||||
LTEXT "&V<>nster:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&<26>ver:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&H<>ger:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Under:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Avbryt", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Hj<48>lp", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Page &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Anteckningar"
|
||||
STRING_ERROR, "FEL"
|
||||
STRING_WARNING, "WARNING"
|
||||
STRING_INFO, "Information"
|
||||
|
||||
STRING_UNTITLED, "(untitled)"
|
||||
|
||||
STRING_ALL_FILES, "Alla filer (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Text filer (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "Filen '%s' <20>r f<>r stor f<>r notepad.\n \
|
||||
Anv<EFBFBD>nd en annan editor."
|
||||
STRING_NOTEXT, "Du skrev inte in n<>gon text. \
|
||||
\nSkriv n<>got och f<>rs<72>k sedan igen"
|
||||
STRING_DOESNOTEXIST, "File '%s'\ndoes not exist\n\n \
|
||||
Do you want to create a new file ?"
|
||||
STRING_NOTSAVED, "File '%s'\nhas been modified\n\n \
|
||||
Would you like to save the changes ?"
|
||||
STRING_NOTFOUND, "'%s' hittades inte."
|
||||
STRING_OUT_OF_MEMORY, "Inte tillr<6C>kligt med minne f<>r att slutf<74>ra \
|
||||
den h<>r uppgiften. \nAvsluta ett eller flera program f<>r att <20>ka m<>ngden \nfritt \
|
||||
minne."
|
||||
|
||||
}
|
121
reactos/apps/dist/notepad/Th.rc
vendored
Normal file
121
reactos/apps/dist/notepad/Th.rc
vendored
Normal file
@@ -0,0 +1,121 @@
|
||||
/*
|
||||
* Notepad (Thai Resources)
|
||||
*
|
||||
* Copyright 2003 Jon Griffiths
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_THAI, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "<22><><EFBFBD><EFBFBD>" {
|
||||
MENUITEM "<22><><EFBFBD>ҧ<EFBFBD><D2A7><EFBFBD><EFBFBD>...", CMD_NEW
|
||||
MENUITEM "<22><>Դ...\tCtrl+O", CMD_OPEN
|
||||
MENUITEM "<22>ѹ<EFBFBD>ס\tCtrl+S", CMD_SAVE
|
||||
MENUITEM "<22>ѹ<EFBFBD>ס<EFBFBD><D7A1><EFBFBD><EFBFBD>...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD>", CMD_PRINT
|
||||
MENUITEM "<22><>Ѻ<EFBFBD><D1BA><EFBFBD><EFBFBD>˹<EFBFBD><CBB9>...", CMD_PAGE_SETUP
|
||||
MENUITEM "<22><>Ѻ<EFBFBD><D1BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͧ<EFBFBD><CDA7><EFBFBD><EFBFBD><EFBFBD>...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22>͡", CMD_EXIT
|
||||
}
|
||||
POPUP "<22><><EFBFBD><EFBFBD><EFBFBD>" {
|
||||
MENUITEM "<22><><EFBFBD>¡<EFBFBD>\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22>Ѵ\tCtrl+X", CMD_CUT
|
||||
MENUITEM "<22>Ѵ<EFBFBD>͡\tCtrl+C", CMD_COPY
|
||||
MENUITEM "<22>ҧ\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "ź\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22><><EFBFBD>͡<EFBFBD><CDA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\tCtrl+A", CMD_SELECT_ALL
|
||||
MENUITEM "<22>ѹ<EFBFBD><D1B9><EFBFBD>/\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22><>ͺ<EFBFBD>÷Ѵ<C3B7><D1B4><EFBFBD>", CMD_WRAP
|
||||
MENUITEM "<22>ٻẺ<D9BB><E1BABA><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>...", CMD_FONT
|
||||
}
|
||||
POPUP "<22>ѹ<EFBFBD><D1B9>" {
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD>\tCtrl+F", CMD_SEARCH
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" {
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", CMD_HELP_CONTENTS
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD>...", CMD_HELP_SEARCH
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD>ǡѺ<C7A1><D1BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>´..." {
|
||||
MENUITEM "<22><>حҵ", CMD_LICENSE
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD> WARRANTY", CMD_NO_WARRANTY
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD>ǡѺ Wine... ", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "<22><>Ѻ<EFBFBD><D1BA><EFBFBD><EFBFBD>˹<EFBFBD><CBB9>"
|
||||
{
|
||||
LTEXT "<22><><EFBFBD>:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Footer:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "<22>ͺ<EFBFBD><CDBA>д<EFBFBD><D0B4>:", 0x144, 10, 43,160, 45
|
||||
LTEXT "<22><><EFBFBD><EFBFBD>:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "<22><>:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "<22><><EFBFBD>:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "<22><>ҧ:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "<22><>ŧ", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "¡<><C2A1>ԡ", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "˹<><CBB9> &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 <20><>." /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 <20><>." /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 <20><>." /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 <20><>." /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Notepad"
|
||||
STRING_ERROR, "<22><><EFBFBD><EFBFBD><EFBFBD>Դ"
|
||||
STRING_WARNING, "<22><>ҵ<EFBFBD>"
|
||||
STRING_INFO, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>´"
|
||||
|
||||
STRING_UNTITLED, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˹<EFBFBD><CBB9><EFBFBD><EFBFBD><EFBFBD>"
|
||||
|
||||
STRING_ALL_FILES, "<22>ء<EFBFBD><D8A1><EFBFBD><EFBFBD> (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "<22><><EFBFBD><EFBFBD> '%s' <20>˭<EFBFBD><CBAD><EFBFBD>Թ<EFBFBD><D4B9>"
|
||||
STRING_NOTEXT, "<22>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¹<EFBFBD><C2B9><EFBFBD><EFBFBD>\n<><6E>س<EFBFBD><D8B3>ͧ<EFBFBD><CDA7><EFBFBD><EFBFBD>"
|
||||
STRING_DOESNOTEXIST, "<22><>辺<EFBFBD><E8BEBA><EFBFBD><EFBFBD> '%s' <20><><EFBFBD><EFBFBD><EFBFBD>ͧ<EFBFBD><CDA7><EFBFBD><EFBFBD><EFBFBD>Դ\n<>س<EFBFBD><D8B3>ͧ<EFBFBD><CDA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҧ<EFBFBD><D2A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?"
|
||||
STRING_NOTSAVED, "<22>ա<EFBFBD><D5A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¹<EFBFBD><C2B9>ŧ<EFBFBD>Ѻ<EFBFBD>͡<EFBFBD><CDA1><EFBFBD>\n\n'%s'\n\n<>س<EFBFBD><D8B3>ͧ<EFBFBD><CDA7>úѹ<C3BA>֡<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?"
|
||||
STRING_NOTFOUND, "<22><>辺<EFBFBD><E8BEBA>ͤ<EFBFBD><CDA4><EFBFBD> '%s' <20><><EFBFBD><EFBFBD><EFBFBD>ͧ<EFBFBD><CDA7>ä<EFBFBD><C3A4><EFBFBD><EFBFBD>"
|
||||
STRING_OUT_OF_MEMORY, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n<><6E>س<EFBFBD><D8B3>ͧ<EFBFBD><CDA7><EFBFBD><EFBFBD>"
|
||||
|
||||
}
|
130
reactos/apps/dist/notepad/Wa.rc
vendored
Normal file
130
reactos/apps/dist/notepad/Wa.rc
vendored
Normal file
@@ -0,0 +1,130 @@
|
||||
/*
|
||||
* Notepad (Walon resources)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Proofread 1998 by David Lee Lambert <lamber45@egr.msu.edu>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifdef LANG_WALON
|
||||
|
||||
LANGUAGE LANG_WALON, SUBLANG_DEFAULT
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "&Fitch<63>" {
|
||||
MENUITEM "&Novea...", CMD_NEW
|
||||
MENUITEM "&Drov<6F>", CMD_OPEN
|
||||
MENUITEM "&Schaper", CMD_SAVE
|
||||
MENUITEM "Schaper <20>t r&lomer...", CMD_SAVE_AS
|
||||
MENUITEM "&Rexhe", CMD_PRINT
|
||||
MENUITEM "Arrandjmint del &P<>dje...", CMD_PAGE_SETUP
|
||||
MENUITEM "&Apontiaedje del scrirece...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Mouss<73> &Fo<46>", CMD_EXIT
|
||||
}
|
||||
POPUP "&Candj<64>" {
|
||||
MENUITEM "&Disf<73>\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "C<>&per\tCtrl+X", CMD_CUT
|
||||
MENUITEM "&Copy<70>\tCtrl+C", CMD_COPY
|
||||
MENUITEM "C&laper\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&Rafacer\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Tchwezi totafwait", CMD_SELECT_ALL
|
||||
MENUITEM "&Eure/Date\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "C<>per les ro&yes", CMD_WRAP
|
||||
}
|
||||
POPUP "C&wer<65>" {
|
||||
MENUITEM "Cwer<65>...", CMD_SEARCH
|
||||
MENUITEM "&Sh<53>vant\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "&Aide" {
|
||||
MENUITEM "<22>&dvins", CMD_HELP_CONTENTS
|
||||
MENUITEM "C&wer<65>...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Aide so l' Aide", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "&Inform<72>cion..." {
|
||||
MENUITEM "&Licinse", CMD_LICENSE
|
||||
MENUITEM "&NOLE WARANTEYE", CMD_NO_WARRANTY
|
||||
MENUITEM "<22> &dfait di Wine", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "Helv"
|
||||
CAPTION "Arindjmint del P<>dje"
|
||||
{
|
||||
LTEXT "&Tite:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&P<>note:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&Mardjes:", 0x144, 10, 43,160, 45
|
||||
LTEXT "&Hintche:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Copete:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Droete:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Bas:", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "I Va", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "Rinonc<6E>", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Aide", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "P<>dje &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Notepad"
|
||||
STRING_ERROR, "AROKE"
|
||||
STRING_WARNING, "ADVERTIXHMINT"
|
||||
STRING_INFO, "Inform<72>cion"
|
||||
|
||||
STRING_UNTITLED, "(sin tite)"
|
||||
|
||||
STRING_ALL_FILES, "Tos les fitch<63>s (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Fitch<63>s tekse (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "Li fitch<63> '%s' est trop gros pol notepad.\n \
|
||||
Eployoz on <20>te aspougneu di tekse."
|
||||
STRING_NOTEXT, "Vos n' avoz r<>n sicr<63>t. \
|
||||
\nTapez ene sacwe <20>t rasayez"
|
||||
STRING_DOESNOTEXIST, "File '%s'\ndoes not exist\n\n \
|
||||
Do you want to create a new file ?"
|
||||
STRING_NOTSAVED, "Li fitch<63> '%s'\na candj<64>\n\n \
|
||||
El voloz schaper ?"
|
||||
STRING_NOTFOUND, "'%s' pout n<>n esse trov<6F>."
|
||||
STRING_OUT_OF_MEMORY, "Li memwere est plinne. \n\
|
||||
Cloyoz on programe ou pus po monter li memwere libe."
|
||||
|
||||
}
|
||||
|
||||
#endif /* LANG_WALON */
|
123
reactos/apps/dist/notepad/Zh.rc
vendored
Normal file
123
reactos/apps/dist/notepad/Zh.rc
vendored
Normal file
@@ -0,0 +1,123 @@
|
||||
/*
|
||||
* Notepad (Simplified Chinese resources)
|
||||
*
|
||||
* Copyright 2002 liuspider <liuspider@yahoo.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
MAIN_MENU MENU LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
|
||||
{
|
||||
POPUP "<22>ļ<EFBFBD><C4BC><EFBFBD>&F<><46>" {
|
||||
MENUITEM "<22>½<EFBFBD><C2BD><EFBFBD>&N<><4E>...", CMD_NEW
|
||||
MENUITEM "<22><EFBFBD>&O<><4F>", CMD_OPEN
|
||||
MENUITEM "<22><><EFBFBD>棨&S<><53>", CMD_SAVE
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>Ϊ(&A)...", CMD_SAVE_AS
|
||||
MENUITEM "<22><>ӡ<EFBFBD><D3A1>&P<><50>", CMD_PRINT
|
||||
MENUITEM "ҳ<><D2B3><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>&T<><54>...", CMD_PAGE_SETUP
|
||||
MENUITEM "<22><>ӡ<EFBFBD><D3A1><EFBFBD>ã<EFBFBD>&R<><52>...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22>˳<EFBFBD><CBB3><EFBFBD>&E<><45>", CMD_EXIT
|
||||
}
|
||||
POPUP "<22>༭<EFBFBD><E0BCAD>&E<><45>" {
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&U<><55>\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22><><EFBFBD>У<EFBFBD>&T<><54>\tCtrl+X", CMD_CUT
|
||||
MENUITEM "<22><><EFBFBD>ƣ<EFBFBD>&C<><43>\tCtrl+C", CMD_COPY
|
||||
MENUITEM "ճ<><D5B3><EFBFBD><EFBFBD>&P<><50>\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "ɾ<><C9BE><EFBFBD><EFBFBD>&D<><44>\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "ȫѡ<C8AB><D1A1>&A<><41>", CMD_SELECT_ALL
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD>ʱ<EFBFBD>䣨&T<><54>\tF5", CMD_TIME_DATE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>У<EFBFBD>&W<><57>", CMD_WRAP
|
||||
}
|
||||
POPUP "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&S<><53>" {
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&S<><53>", CMD_SEARCH
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>&S<><53>\tF3", CMD_SEARCH_NEXT
|
||||
}
|
||||
POPUP "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&H<><48>" {
|
||||
MENUITEM "<22><><EFBFBD>ݣ<EFBFBD>&C<><43>", CMD_HELP_CONTENTS
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&S<><53>...", CMD_HELP_SEARCH
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>ʹ<EFBFBD>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD>&H<><48>", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>&O<><4F>..." {
|
||||
MENUITEM "<22>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD>飨&L<><4C>", CMD_LICENSE
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD>أ<DEB9>&N<><4E>", CMD_NO_WARRANTY
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD> Wine<6E><65>&A<><41>", CMD_ABOUT_WINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOG 0, 0, 225, 95
|
||||
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 10, "Helv"
|
||||
CAPTION "ҳ<><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
{
|
||||
LTEXT "ҳü<D2B3><C3BC>&H<><48>:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "<22><>ע<EFBFBD><D7A2>&F<><46>:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "<22><>Ե<EFBFBD>հף<D5B0>&M<><4D><EFBFBD><EFBFBD>", 0x144, 10, 43,160, 45
|
||||
LTEXT "<22><><EFBFBD><EFBFBD>&L<><4C><EFBFBD><EFBFBD>", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "<22>ϣ<EFBFBD>&T<><54><EFBFBD><EFBFBD>", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "<22>ң<EFBFBD>&R<><52><EFBFBD><EFBFBD>", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "<22>£<EFBFBD>&B<><42><EFBFBD><EFBFBD>", 0x14E,100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "ȷ<><C8B7>", 0x151, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "ȡ<><C8A1>", 0x152, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&<26><>", 0x153, 180, 39, 40, 15, WS_TABSTOP
|
||||
}
|
||||
|
||||
STRINGTABLE DISCARDABLE LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
|
||||
{
|
||||
STRING_PAGESETUP_HEADERVALUE, "&n" /* FIXME */
|
||||
STRING_PAGESETUP_FOOTERVALUE, "Page &s" /* FIXME */
|
||||
STRING_PAGESETUP_LEFTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
||||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "<22><><EFBFBD>±<EFBFBD>"
|
||||
STRING_ERROR, "<22><><EFBFBD><EFBFBD>"
|
||||
STRING_WARNING, "<22><><EFBFBD><EFBFBD>"
|
||||
STRING_INFO, "<22><>Ϣ"
|
||||
|
||||
STRING_UNTITLED, "<22><>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
|
||||
STRING_ALL_FILES, "<22><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "<22>ı<EFBFBD><C4B1>ļ<EFBFBD> (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "<22><><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD> '%s' <20><>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>\n \
|
||||
<EFBFBD><EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><EFBFBD>ı༭<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
STRING_NOTEXT, "<22><>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA>ı<EFBFBD><C4B1><EFBFBD> \
|
||||
\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ<D2BB><D0A9><EFBFBD><EFBFBD>"
|
||||
STRING_DOESNOTEXIST, "<22>ļ<EFBFBD> '%s'\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\n \
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
STRING_NOTSAVED, "<22>ļ<EFBFBD> '%s'\n<><6E><EFBFBD><EFBFBD><EFBFBD>Ѹ<EFBFBD><D1B8><EFBFBD>\n\n \
|
||||
<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>"
|
||||
STRING_NOTFOUND, "<22>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>ļ<EFBFBD> '%s'"
|
||||
STRING_OUT_OF_MEMORY, "û<><C3BB><EFBFBD>㹻<EFBFBD><E3B9BB><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \
|
||||
\n<><6E><EFBFBD>ر<EFBFBD>һЩ<D2BB><D0A9><EFBFBD><EFBFBD>ʩ<EFBFBD><CAA9><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>"
|
||||
|
||||
}
|
717
reactos/apps/dist/notepad/dialog.c
vendored
Normal file
717
reactos/apps/dist/notepad/dialog.c
vendored
Normal file
@@ -0,0 +1,717 @@
|
||||
/*
|
||||
* Notepad (dialog.c)
|
||||
*
|
||||
* Copyright 1998,99 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
* Copyright 2002 Andriy Palamarchuk
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#define UNICODE
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
#include <commdlg.h>
|
||||
|
||||
#include "main.h"
|
||||
#include "license.h"
|
||||
#include "dialog.h"
|
||||
|
||||
static const WCHAR helpfileW[] = { 'n','o','t','e','p','a','d','.','h','l','p',0 };
|
||||
|
||||
static INT_PTR WINAPI DIALOG_PAGESETUP_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
VOID ShowLastError(void)
|
||||
{
|
||||
DWORD error = GetLastError();
|
||||
if (error != NO_ERROR)
|
||||
{
|
||||
LPWSTR lpMsgBuf;
|
||||
WCHAR szTitle[MAX_STRING_LEN];
|
||||
|
||||
LoadString(Globals.hInstance, STRING_ERROR, szTitle, SIZEOF(szTitle));
|
||||
FormatMessage(
|
||||
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
|
||||
NULL, error, 0,
|
||||
(LPTSTR) &lpMsgBuf, 0, NULL);
|
||||
MessageBox(NULL, lpMsgBuf, szTitle, MB_OK | MB_ICONERROR);
|
||||
LocalFree(lpMsgBuf);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the caption of the main window according to Globals.szFileTitle:
|
||||
* Notepad - (untitled) if no file is open
|
||||
* Notepad - [filename] if a file is given
|
||||
*/
|
||||
static void UpdateWindowCaption(void)
|
||||
{
|
||||
WCHAR szCaption[MAX_STRING_LEN];
|
||||
WCHAR szUntitled[MAX_STRING_LEN];
|
||||
|
||||
LoadString(Globals.hInstance, STRING_NOTEPAD, szCaption, SIZEOF(szCaption));
|
||||
|
||||
if (Globals.szFileTitle[0] != '\0') {
|
||||
static const WCHAR bracket_lW[] = { ' ','-',' ','[',0 };
|
||||
static const WCHAR bracket_rW[] = { ']',0 };
|
||||
lstrcat(szCaption, bracket_lW);
|
||||
lstrcat(szCaption, Globals.szFileTitle);
|
||||
lstrcat(szCaption, bracket_rW);
|
||||
}
|
||||
else
|
||||
{
|
||||
static const WCHAR hyphenW[] = { ' ','-',' ',0 };
|
||||
LoadString(Globals.hInstance, STRING_UNTITLED, szUntitled, SIZEOF(szUntitled));
|
||||
lstrcat(szCaption, hyphenW);
|
||||
lstrcat(szCaption, szUntitled);
|
||||
}
|
||||
|
||||
SetWindowText(Globals.hMainWnd, szCaption);
|
||||
}
|
||||
|
||||
static void AlertFileNotFound(LPCWSTR szFileName)
|
||||
{
|
||||
WCHAR szMessage[MAX_STRING_LEN];
|
||||
WCHAR szResource[MAX_STRING_LEN];
|
||||
|
||||
/* Load and format szMessage */
|
||||
LoadString(Globals.hInstance, STRING_NOTFOUND, szResource, SIZEOF(szResource));
|
||||
wsprintf(szMessage, szResource, szFileName);
|
||||
|
||||
/* Load szCaption */
|
||||
LoadString(Globals.hInstance, STRING_ERROR, szResource, SIZEOF(szResource));
|
||||
|
||||
/* Display Modal Dialog */
|
||||
MessageBox(Globals.hMainWnd, szMessage, szResource, MB_ICONEXCLAMATION);
|
||||
}
|
||||
|
||||
static int AlertFileNotSaved(LPCWSTR szFileName)
|
||||
{
|
||||
WCHAR szMessage[MAX_STRING_LEN];
|
||||
WCHAR szResource[MAX_STRING_LEN];
|
||||
WCHAR szUntitled[MAX_STRING_LEN];
|
||||
|
||||
LoadString(Globals.hInstance, STRING_UNTITLED, szUntitled, SIZEOF(szUntitled));
|
||||
|
||||
/* Load and format Message */
|
||||
LoadString(Globals.hInstance, STRING_NOTSAVED, szResource, SIZEOF(szResource));
|
||||
wsprintf(szMessage, szResource, szFileName[0] ? szFileName : szUntitled);
|
||||
|
||||
/* Load Caption */
|
||||
LoadString(Globals.hInstance, STRING_ERROR, szResource, SIZEOF(szResource));
|
||||
|
||||
/* Display modal */
|
||||
return MessageBox(Globals.hMainWnd, szMessage, szResource, MB_ICONEXCLAMATION|MB_YESNOCANCEL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns:
|
||||
* TRUE - if file exists
|
||||
* FALSE - if file does not exist
|
||||
*/
|
||||
BOOL FileExists(LPCWSTR szFilename)
|
||||
{
|
||||
WIN32_FIND_DATA entry;
|
||||
HANDLE hFile;
|
||||
|
||||
hFile = FindFirstFile(szFilename, &entry);
|
||||
FindClose(hFile);
|
||||
|
||||
return (hFile != INVALID_HANDLE_VALUE);
|
||||
}
|
||||
|
||||
|
||||
static VOID DoSaveFile(VOID)
|
||||
{
|
||||
HANDLE hFile;
|
||||
DWORD dwNumWrite;
|
||||
LPSTR pTemp;
|
||||
DWORD size;
|
||||
|
||||
hFile = CreateFile(Globals.szFileName, GENERIC_WRITE, FILE_SHARE_WRITE,
|
||||
NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if(hFile == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
ShowLastError();
|
||||
return;
|
||||
}
|
||||
|
||||
size = GetWindowTextLengthA(Globals.hEdit) + 1;
|
||||
pTemp = HeapAlloc(GetProcessHeap(), 0, size);
|
||||
if (!pTemp)
|
||||
{
|
||||
CloseHandle(hFile);
|
||||
ShowLastError();
|
||||
return;
|
||||
}
|
||||
size = GetWindowTextA(Globals.hEdit, pTemp, size);
|
||||
|
||||
if (!WriteFile(hFile, pTemp, size, &dwNumWrite, NULL))
|
||||
ShowLastError();
|
||||
|
||||
CloseHandle(hFile);
|
||||
HeapFree(GetProcessHeap(), 0, pTemp);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns:
|
||||
* TRUE - User agreed to close (both save/don't save)
|
||||
* FALSE - User cancelled close by selecting "Cancel"
|
||||
*/
|
||||
BOOL DoCloseFile(void)
|
||||
{
|
||||
int nResult;
|
||||
static const WCHAR empty_strW[] = { 0 };
|
||||
|
||||
if (SendMessage(Globals.hEdit, EM_GETMODIFY, 0, 0))
|
||||
{
|
||||
/* prompt user to save changes */
|
||||
nResult = AlertFileNotSaved(Globals.szFileName);
|
||||
switch (nResult) {
|
||||
case IDYES: DIALOG_FileSave();
|
||||
break;
|
||||
|
||||
case IDNO: break;
|
||||
|
||||
case IDCANCEL: return(FALSE);
|
||||
break;
|
||||
|
||||
default: return(FALSE);
|
||||
break;
|
||||
} /* switch */
|
||||
} /* if */
|
||||
|
||||
SetFileName(empty_strW);
|
||||
|
||||
UpdateWindowCaption();
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
|
||||
void DoOpenFile(LPCWSTR szFileName)
|
||||
{
|
||||
HANDLE hFile;
|
||||
LPSTR pTemp;
|
||||
DWORD size;
|
||||
DWORD dwNumRead;
|
||||
|
||||
/* Close any files and prompt to save changes */
|
||||
if (!DoCloseFile())
|
||||
return;
|
||||
|
||||
hFile = CreateFile(szFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
|
||||
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if(hFile == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
ShowLastError();
|
||||
return;
|
||||
}
|
||||
|
||||
size = GetFileSize(hFile, NULL);
|
||||
if (size == INVALID_FILE_SIZE)
|
||||
{
|
||||
CloseHandle(hFile);
|
||||
ShowLastError();
|
||||
return;
|
||||
}
|
||||
size++;
|
||||
|
||||
pTemp = HeapAlloc(GetProcessHeap(), 0, size);
|
||||
if (!pTemp)
|
||||
{
|
||||
CloseHandle(hFile);
|
||||
ShowLastError();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!ReadFile(hFile, pTemp, size, &dwNumRead, NULL))
|
||||
{
|
||||
CloseHandle(hFile);
|
||||
HeapFree(GetProcessHeap(), 0, pTemp);
|
||||
ShowLastError();
|
||||
return;
|
||||
}
|
||||
|
||||
CloseHandle(hFile);
|
||||
pTemp[dwNumRead] = 0;
|
||||
|
||||
if (IsTextUnicode(pTemp, dwNumRead, NULL))
|
||||
{
|
||||
LPWSTR p = (LPWSTR)pTemp;
|
||||
/* We need to strip BOM Unicode character, SetWindowTextW won't do it for us. */
|
||||
if (*p == 0xFEFF || *p == 0xFFFE) p++;
|
||||
SetWindowTextW(Globals.hEdit, p);
|
||||
}
|
||||
else
|
||||
SetWindowTextA(Globals.hEdit, pTemp);
|
||||
|
||||
HeapFree(GetProcessHeap(), 0, pTemp);
|
||||
|
||||
SendMessage(Globals.hEdit, EM_SETMODIFY, FALSE, 0);
|
||||
SendMessage(Globals.hEdit, EM_EMPTYUNDOBUFFER, 0, 0);
|
||||
SetFocus(Globals.hEdit);
|
||||
|
||||
SetFileName(szFileName);
|
||||
UpdateWindowCaption();
|
||||
}
|
||||
|
||||
VOID DIALOG_FileNew(VOID)
|
||||
{
|
||||
static const WCHAR empty_strW[] = { 0 };
|
||||
|
||||
/* Close any files and promt to save changes */
|
||||
if (DoCloseFile()) {
|
||||
SetWindowText(Globals.hEdit, empty_strW);
|
||||
SendMessage(Globals.hEdit, EM_EMPTYUNDOBUFFER, 0, 0);
|
||||
SetFocus(Globals.hEdit);
|
||||
}
|
||||
}
|
||||
|
||||
VOID DIALOG_FileOpen(VOID)
|
||||
{
|
||||
OPENFILENAME openfilename;
|
||||
WCHAR szPath[MAX_PATH];
|
||||
WCHAR szDir[MAX_PATH];
|
||||
static const WCHAR szDefaultExt[] = { 't','x','t',0 };
|
||||
static const WCHAR txt_files[] = { '*','.','t','x','t',0 };
|
||||
|
||||
ZeroMemory(&openfilename, sizeof(openfilename));
|
||||
|
||||
GetCurrentDirectory(SIZEOF(szDir), szDir);
|
||||
lstrcpy(szPath, txt_files);
|
||||
|
||||
openfilename.lStructSize = sizeof(openfilename);
|
||||
openfilename.hwndOwner = Globals.hMainWnd;
|
||||
openfilename.hInstance = Globals.hInstance;
|
||||
openfilename.lpstrFilter = Globals.szFilter;
|
||||
openfilename.lpstrFile = szPath;
|
||||
openfilename.nMaxFile = SIZEOF(szPath);
|
||||
openfilename.lpstrInitialDir = szDir;
|
||||
openfilename.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST |
|
||||
OFN_HIDEREADONLY;
|
||||
openfilename.lpstrDefExt = szDefaultExt;
|
||||
|
||||
|
||||
if (GetOpenFileName(&openfilename)) {
|
||||
if (FileExists(openfilename.lpstrFile))
|
||||
DoOpenFile(openfilename.lpstrFile);
|
||||
else
|
||||
AlertFileNotFound(openfilename.lpstrFile);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
VOID DIALOG_FileSave(VOID)
|
||||
{
|
||||
if (Globals.szFileName[0] == '\0')
|
||||
DIALOG_FileSaveAs();
|
||||
else
|
||||
DoSaveFile();
|
||||
}
|
||||
|
||||
VOID DIALOG_FileSaveAs(VOID)
|
||||
{
|
||||
OPENFILENAME saveas;
|
||||
WCHAR szPath[MAX_PATH];
|
||||
WCHAR szDir[MAX_PATH];
|
||||
static const WCHAR szDefaultExt[] = { 't','x','t',0 };
|
||||
static const WCHAR txt_files[] = { '*','.','t','x','t',0 };
|
||||
|
||||
ZeroMemory(&saveas, sizeof(saveas));
|
||||
|
||||
GetCurrentDirectory(SIZEOF(szDir), szDir);
|
||||
lstrcpy(szPath, txt_files);
|
||||
|
||||
saveas.lStructSize = sizeof(OPENFILENAME);
|
||||
saveas.hwndOwner = Globals.hMainWnd;
|
||||
saveas.hInstance = Globals.hInstance;
|
||||
saveas.lpstrFilter = Globals.szFilter;
|
||||
saveas.lpstrFile = szPath;
|
||||
saveas.nMaxFile = SIZEOF(szPath);
|
||||
saveas.lpstrInitialDir = szDir;
|
||||
saveas.Flags = OFN_PATHMUSTEXIST | OFN_OVERWRITEPROMPT |
|
||||
OFN_HIDEREADONLY;
|
||||
saveas.lpstrDefExt = szDefaultExt;
|
||||
|
||||
if (GetSaveFileName(&saveas)) {
|
||||
SetFileName(szPath);
|
||||
UpdateWindowCaption();
|
||||
DoSaveFile();
|
||||
}
|
||||
}
|
||||
|
||||
VOID DIALOG_FilePrint(VOID)
|
||||
{
|
||||
DOCINFO di;
|
||||
PRINTDLG printer;
|
||||
SIZE szMetric;
|
||||
int cWidthPels, cHeightPels, border;
|
||||
int xLeft, yTop, i, pagecount, dopage, copycount;
|
||||
LOGFONT hdrFont;
|
||||
HFONT font, old_font=0;
|
||||
DWORD size;
|
||||
LPWSTR pTemp;
|
||||
static const WCHAR times_new_romanW[] = { 'T','i','m','e','s',' ','N','e','w',' ','R','o','m','a','n',0 };
|
||||
|
||||
/* Get a small font and print some header info on each page */
|
||||
hdrFont.lfHeight = 100;
|
||||
hdrFont.lfWidth = 0;
|
||||
hdrFont.lfEscapement = 0;
|
||||
hdrFont.lfOrientation = 0;
|
||||
hdrFont.lfWeight = FW_BOLD;
|
||||
hdrFont.lfItalic = 0;
|
||||
hdrFont.lfUnderline = 0;
|
||||
hdrFont.lfStrikeOut = 0;
|
||||
hdrFont.lfCharSet = ANSI_CHARSET;
|
||||
hdrFont.lfOutPrecision = OUT_DEFAULT_PRECIS;
|
||||
hdrFont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
|
||||
hdrFont.lfQuality = PROOF_QUALITY;
|
||||
hdrFont.lfPitchAndFamily = VARIABLE_PITCH | FF_ROMAN;
|
||||
lstrcpy(hdrFont.lfFaceName, times_new_romanW);
|
||||
|
||||
font = CreateFontIndirect(&hdrFont);
|
||||
|
||||
/* Get Current Settings */
|
||||
ZeroMemory(&printer, sizeof(printer));
|
||||
printer.lStructSize = sizeof(printer);
|
||||
printer.hwndOwner = Globals.hMainWnd;
|
||||
printer.hInstance = Globals.hInstance;
|
||||
|
||||
/* Set some default flags */
|
||||
printer.Flags = PD_RETURNDC;
|
||||
printer.nFromPage = 0;
|
||||
printer.nMinPage = 1;
|
||||
/* we really need to calculate number of pages to set nMaxPage and nToPage */
|
||||
printer.nToPage = 0;
|
||||
printer.nMaxPage = -1;
|
||||
|
||||
/* Let commdlg manage copy settings */
|
||||
printer.nCopies = (WORD)PD_USEDEVMODECOPIES;
|
||||
|
||||
if (!PrintDlg(&printer)) return;
|
||||
|
||||
assert(printer.hDC != 0);
|
||||
|
||||
/* initialize DOCINFO */
|
||||
di.cbSize = sizeof(DOCINFO);
|
||||
di.lpszDocName = Globals.szFileTitle;
|
||||
di.lpszOutput = NULL;
|
||||
di.lpszDatatype = NULL;
|
||||
di.fwType = 0;
|
||||
|
||||
if (StartDoc(printer.hDC, &di) <= 0) return;
|
||||
|
||||
/* Get the page dimensions in pixels. */
|
||||
cWidthPels = GetDeviceCaps(printer.hDC, HORZRES);
|
||||
cHeightPels = GetDeviceCaps(printer.hDC, VERTRES);
|
||||
|
||||
/* Get the file text */
|
||||
size = GetWindowTextLength(Globals.hEdit) + 1;
|
||||
pTemp = HeapAlloc(GetProcessHeap(), 0, size * sizeof(WCHAR));
|
||||
if (!pTemp)
|
||||
{
|
||||
ShowLastError();
|
||||
return;
|
||||
}
|
||||
size = GetWindowText(Globals.hEdit, pTemp, size);
|
||||
|
||||
border = 150;
|
||||
for (copycount=1; copycount <= printer.nCopies; copycount++) {
|
||||
i = 0;
|
||||
pagecount = 1;
|
||||
do {
|
||||
static const WCHAR letterM[] = { 'M',0 };
|
||||
|
||||
if (pagecount >= printer.nFromPage &&
|
||||
/* ((printer.Flags & PD_PAGENUMS) == 0 || pagecount <= printer.nToPage))*/
|
||||
pagecount <= printer.nToPage)
|
||||
dopage = 1;
|
||||
else
|
||||
dopage = 0;
|
||||
|
||||
old_font = SelectObject(printer.hDC, font);
|
||||
GetTextExtentPoint32(printer.hDC, letterM, 1, &szMetric);
|
||||
|
||||
if (dopage) {
|
||||
if (StartPage(printer.hDC) <= 0) {
|
||||
static const WCHAR failedW[] = { 'S','t','a','r','t','P','a','g','e',' ','f','a','i','l','e','d',0 };
|
||||
static const WCHAR errorW[] = { 'P','r','i','n','t',' ','E','r','r','o','r',0 };
|
||||
MessageBox(Globals.hMainWnd, failedW, errorW, MB_ICONEXCLAMATION);
|
||||
return;
|
||||
}
|
||||
/* Write a rectangle and header at the top of each page */
|
||||
Rectangle(printer.hDC, border, border, cWidthPels-border, border+szMetric.cy*2);
|
||||
/* I don't know what's up with this TextOut command. This comes out
|
||||
kind of mangled.
|
||||
*/
|
||||
TextOut(printer.hDC, border*2, border+szMetric.cy/2, Globals.szFileTitle, lstrlen(Globals.szFileTitle));
|
||||
}
|
||||
|
||||
/* The starting point for the main text */
|
||||
xLeft = border*2;
|
||||
yTop = border+szMetric.cy*4;
|
||||
|
||||
SelectObject(printer.hDC, old_font);
|
||||
GetTextExtentPoint32(printer.hDC, letterM, 1, &szMetric);
|
||||
|
||||
/* Since outputting strings is giving me problems, output the main
|
||||
text one character at a time.
|
||||
*/
|
||||
do {
|
||||
if (pTemp[i] == '\n') {
|
||||
xLeft = border*2;
|
||||
yTop += szMetric.cy;
|
||||
}
|
||||
else if (pTemp[i] != '\r') {
|
||||
if (dopage)
|
||||
TextOut(printer.hDC, xLeft, yTop, &pTemp[i], 1);
|
||||
xLeft += szMetric.cx;
|
||||
}
|
||||
} while (i++<size && yTop<(cHeightPels-border*2));
|
||||
|
||||
if (dopage)
|
||||
EndPage(printer.hDC);
|
||||
pagecount++;
|
||||
} while (i<size);
|
||||
}
|
||||
|
||||
EndDoc(printer.hDC);
|
||||
DeleteDC(printer.hDC);
|
||||
HeapFree(GetProcessHeap(), 0, pTemp);
|
||||
}
|
||||
|
||||
VOID DIALOG_FilePrinterSetup(VOID)
|
||||
{
|
||||
PRINTDLG printer;
|
||||
|
||||
ZeroMemory(&printer, sizeof(printer));
|
||||
printer.lStructSize = sizeof(printer);
|
||||
printer.hwndOwner = Globals.hMainWnd;
|
||||
printer.hInstance = Globals.hInstance;
|
||||
printer.Flags = PD_PRINTSETUP;
|
||||
printer.nCopies = 1;
|
||||
|
||||
PrintDlg(&printer);
|
||||
}
|
||||
|
||||
VOID DIALOG_FileExit(VOID)
|
||||
{
|
||||
PostMessage(Globals.hMainWnd, WM_CLOSE, 0, 0l);
|
||||
}
|
||||
|
||||
VOID DIALOG_EditUndo(VOID)
|
||||
{
|
||||
SendMessage(Globals.hEdit, EM_UNDO, 0, 0);
|
||||
}
|
||||
|
||||
VOID DIALOG_EditCut(VOID)
|
||||
{
|
||||
SendMessage(Globals.hEdit, WM_CUT, 0, 0);
|
||||
}
|
||||
|
||||
VOID DIALOG_EditCopy(VOID)
|
||||
{
|
||||
SendMessage(Globals.hEdit, WM_COPY, 0, 0);
|
||||
}
|
||||
|
||||
VOID DIALOG_EditPaste(VOID)
|
||||
{
|
||||
SendMessage(Globals.hEdit, WM_PASTE, 0, 0);
|
||||
}
|
||||
|
||||
VOID DIALOG_EditDelete(VOID)
|
||||
{
|
||||
SendMessage(Globals.hEdit, WM_CLEAR, 0, 0);
|
||||
}
|
||||
|
||||
VOID DIALOG_EditSelectAll(VOID)
|
||||
{
|
||||
SendMessage(Globals.hEdit, EM_SETSEL, 0, (LPARAM)-1);
|
||||
}
|
||||
|
||||
VOID DIALOG_EditTimeDate(VOID)
|
||||
{
|
||||
SYSTEMTIME st;
|
||||
WCHAR szDate[MAX_STRING_LEN];
|
||||
static const WCHAR spaceW[] = { ' ',0 };
|
||||
|
||||
GetLocalTime(&st);
|
||||
|
||||
GetTimeFormat(LOCALE_USER_DEFAULT, 0, &st, NULL, szDate, MAX_STRING_LEN);
|
||||
SendMessage(Globals.hEdit, EM_REPLACESEL, TRUE, (LPARAM)szDate);
|
||||
|
||||
SendMessage(Globals.hEdit, EM_REPLACESEL, TRUE, (LPARAM)spaceW);
|
||||
|
||||
GetDateFormat(LOCALE_USER_DEFAULT, DATE_LONGDATE, &st, NULL, szDate, MAX_STRING_LEN);
|
||||
SendMessage(Globals.hEdit, EM_REPLACESEL, TRUE, (LPARAM)szDate);
|
||||
}
|
||||
|
||||
VOID DIALOG_EditWrap(VOID)
|
||||
{
|
||||
Globals.bWrapLongLines = !Globals.bWrapLongLines;
|
||||
CheckMenuItem(GetMenu(Globals.hMainWnd), CMD_WRAP,
|
||||
MF_BYCOMMAND | (Globals.bWrapLongLines ? MF_CHECKED : MF_UNCHECKED));
|
||||
}
|
||||
|
||||
VOID DIALOG_SelectFont(VOID)
|
||||
{
|
||||
CHOOSEFONT cf;
|
||||
LOGFONT lf=Globals.lfFont;
|
||||
|
||||
ZeroMemory( &cf, sizeof(cf) );
|
||||
cf.lStructSize=sizeof(cf);
|
||||
cf.hwndOwner=Globals.hMainWnd;
|
||||
cf.lpLogFont=&lf;
|
||||
cf.Flags=CF_SCREENFONTS;
|
||||
|
||||
if( ChooseFont(&cf) )
|
||||
{
|
||||
HFONT currfont=Globals.hFont;
|
||||
|
||||
Globals.hFont=CreateFontIndirect( &lf );
|
||||
Globals.lfFont=lf;
|
||||
SendMessage( Globals.hEdit, WM_SETFONT, (WPARAM)Globals.hFont, (LPARAM)TRUE );
|
||||
if( currfont!=NULL )
|
||||
DeleteObject( currfont );
|
||||
}
|
||||
}
|
||||
|
||||
VOID DIALOG_Search(VOID)
|
||||
{
|
||||
ZeroMemory(&Globals.find, sizeof(Globals.find));
|
||||
Globals.find.lStructSize = sizeof(Globals.find);
|
||||
Globals.find.hwndOwner = Globals.hMainWnd;
|
||||
Globals.find.hInstance = Globals.hInstance;
|
||||
Globals.find.lpstrFindWhat = Globals.szFindText;
|
||||
Globals.find.wFindWhatLen = SIZEOF(Globals.szFindText);
|
||||
Globals.find.Flags = FR_DOWN;
|
||||
|
||||
/* We only need to create the modal FindReplace dialog which will */
|
||||
/* notify us of incoming events using hMainWnd Window Messages */
|
||||
|
||||
Globals.hFindReplaceDlg = FindText(&Globals.find);
|
||||
assert(Globals.hFindReplaceDlg !=0);
|
||||
}
|
||||
|
||||
VOID DIALOG_SearchNext(VOID)
|
||||
{
|
||||
/* FIXME: Search Next */
|
||||
DIALOG_Search();
|
||||
}
|
||||
|
||||
VOID DIALOG_HelpContents(VOID)
|
||||
{
|
||||
WinHelp(Globals.hMainWnd, helpfileW, HELP_INDEX, 0);
|
||||
}
|
||||
|
||||
VOID DIALOG_HelpSearch(VOID)
|
||||
{
|
||||
/* Search Help */
|
||||
}
|
||||
|
||||
VOID DIALOG_HelpHelp(VOID)
|
||||
{
|
||||
WinHelp(Globals.hMainWnd, helpfileW, HELP_HELPONHELP, 0);
|
||||
}
|
||||
|
||||
VOID DIALOG_HelpLicense(VOID)
|
||||
{
|
||||
WineLicense(Globals.hMainWnd);
|
||||
}
|
||||
|
||||
VOID DIALOG_HelpNoWarranty(VOID)
|
||||
{
|
||||
WineWarranty(Globals.hMainWnd);
|
||||
}
|
||||
|
||||
VOID DIALOG_HelpAboutWine(VOID)
|
||||
{
|
||||
static const WCHAR notepadW[] = { 'N','o','t','e','p','a','d','\n',0 };
|
||||
WCHAR szNotepad[MAX_STRING_LEN];
|
||||
|
||||
LoadString(Globals.hInstance, STRING_NOTEPAD, szNotepad, SIZEOF(szNotepad));
|
||||
ShellAbout(Globals.hMainWnd, szNotepad, notepadW, 0);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
*
|
||||
* DIALOG_FilePageSetup
|
||||
*/
|
||||
VOID DIALOG_FilePageSetup(void)
|
||||
{
|
||||
DialogBox(Globals.hInstance, MAKEINTRESOURCE(DIALOG_PAGESETUP),
|
||||
Globals.hMainWnd, DIALOG_PAGESETUP_DlgProc);
|
||||
}
|
||||
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
*
|
||||
* DIALOG_PAGESETUP_DlgProc
|
||||
*/
|
||||
|
||||
static INT_PTR WINAPI DIALOG_PAGESETUP_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
|
||||
switch (msg)
|
||||
{
|
||||
case WM_COMMAND:
|
||||
switch (wParam)
|
||||
{
|
||||
case IDOK:
|
||||
/* save user input and close dialog */
|
||||
GetDlgItemText(hDlg, 0x141, Globals.szHeader, SIZEOF(Globals.szHeader));
|
||||
GetDlgItemText(hDlg, 0x143, Globals.szFooter, SIZEOF(Globals.szFooter));
|
||||
GetDlgItemText(hDlg, 0x14A, Globals.szMarginTop, SIZEOF(Globals.szMarginTop));
|
||||
GetDlgItemText(hDlg, 0x150, Globals.szMarginBottom, SIZEOF(Globals.szMarginBottom));
|
||||
GetDlgItemText(hDlg, 0x147, Globals.szMarginLeft, SIZEOF(Globals.szMarginLeft));
|
||||
GetDlgItemText(hDlg, 0x14D, Globals.szMarginRight, SIZEOF(Globals.szMarginRight));
|
||||
EndDialog(hDlg, IDOK);
|
||||
return TRUE;
|
||||
|
||||
case IDCANCEL:
|
||||
/* discard user input and close dialog */
|
||||
EndDialog(hDlg, IDCANCEL);
|
||||
return TRUE;
|
||||
|
||||
case IDHELP:
|
||||
{
|
||||
/* FIXME: Bring this to work */
|
||||
static const WCHAR sorryW[] = { 'S','o','r','r','y',',',' ','n','o',' ','h','e','l','p',' ','a','v','a','i','l','a','b','l','e',0 };
|
||||
static const WCHAR helpW[] = { 'H','e','l','p',0 };
|
||||
MessageBox(Globals.hMainWnd, sorryW, helpW, MB_ICONEXCLAMATION);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_INITDIALOG:
|
||||
/* fetch last user input prior to display dialog */
|
||||
SetDlgItemText(hDlg, 0x141, Globals.szHeader);
|
||||
SetDlgItemText(hDlg, 0x143, Globals.szFooter);
|
||||
SetDlgItemText(hDlg, 0x14A, Globals.szMarginTop);
|
||||
SetDlgItemText(hDlg, 0x150, Globals.szMarginBottom);
|
||||
SetDlgItemText(hDlg, 0x147, Globals.szMarginLeft);
|
||||
SetDlgItemText(hDlg, 0x14D, Globals.szMarginRight);
|
||||
break;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
57
reactos/apps/dist/notepad/dialog.h
vendored
Normal file
57
reactos/apps/dist/notepad/dialog.h
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
* Notepad (dialog.h)
|
||||
*
|
||||
* Copyright 1998 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
VOID DIALOG_FileNew(VOID);
|
||||
VOID DIALOG_FileOpen(VOID);
|
||||
VOID DIALOG_FileSave(VOID);
|
||||
VOID DIALOG_FileSaveAs(VOID);
|
||||
VOID DIALOG_FilePrint(VOID);
|
||||
VOID DIALOG_FilePageSetup(VOID);
|
||||
VOID DIALOG_FilePrinterSetup(VOID);
|
||||
VOID DIALOG_FileExit(VOID);
|
||||
|
||||
VOID DIALOG_EditUndo(VOID);
|
||||
VOID DIALOG_EditCut(VOID);
|
||||
VOID DIALOG_EditCopy(VOID);
|
||||
VOID DIALOG_EditPaste(VOID);
|
||||
VOID DIALOG_EditDelete(VOID);
|
||||
VOID DIALOG_EditSelectAll(VOID);
|
||||
VOID DIALOG_EditTimeDate(VOID);
|
||||
VOID DIALOG_EditWrap(VOID);
|
||||
|
||||
VOID DIALOG_Search(VOID);
|
||||
VOID DIALOG_SearchNext(VOID);
|
||||
|
||||
VOID DIALOG_SelectFont(VOID);
|
||||
|
||||
VOID DIALOG_HelpContents(VOID);
|
||||
VOID DIALOG_HelpSearch(VOID);
|
||||
VOID DIALOG_HelpHelp(VOID);
|
||||
VOID DIALOG_HelpLicense(VOID);
|
||||
VOID DIALOG_HelpNoWarranty(VOID);
|
||||
VOID DIALOG_HelpAboutWine(VOID);
|
||||
|
||||
VOID DIALOG_TimeDate(VOID);
|
||||
|
||||
/* utility functions */
|
||||
VOID ShowLastError();
|
||||
BOOL FileExists(LPCWSTR szFilename);
|
||||
BOOL DoCloseFile(void);
|
||||
void DoOpenFile(LPCWSTR szFileName);
|
40
reactos/apps/dist/notepad/license.c
vendored
Normal file
40
reactos/apps/dist/notepad/license.c
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Notepad (license.h)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <windows.h>
|
||||
#include "license.h"
|
||||
|
||||
VOID WineLicense(HWND Wnd)
|
||||
{
|
||||
/* FIXME: should load strings from resources */
|
||||
LICENSE *License = &WineLicense_En;
|
||||
MessageBox(Wnd, License->License, License->LicenseCaption,
|
||||
MB_ICONINFORMATION | MB_OK);
|
||||
}
|
||||
|
||||
|
||||
VOID WineWarranty(HWND Wnd)
|
||||
{
|
||||
/* FIXME: should load strings from resources */
|
||||
LICENSE *License = &WineLicense_En;
|
||||
MessageBox(Wnd, License->Warranty, License->WarrantyCaption,
|
||||
MB_ICONEXCLAMATION | MB_OK);
|
||||
}
|
||||
|
52
reactos/apps/dist/notepad/license.h
vendored
Normal file
52
reactos/apps/dist/notepad/license.h
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Notepad (license.h)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
VOID WineLicense(HWND hWnd);
|
||||
VOID WineWarranty(HWND hWnd);
|
||||
|
||||
typedef struct
|
||||
{
|
||||
LPCSTR License, LicenseCaption;
|
||||
LPCSTR Warranty, WarrantyCaption;
|
||||
} LICENSE;
|
||||
|
||||
/*
|
||||
extern LICENSE WineLicense_Ca;
|
||||
extern LICENSE WineLicense_Cz;
|
||||
extern LICENSE WineLicense_Da;
|
||||
extern LICENSE WineLicense_De;
|
||||
*/
|
||||
|
||||
extern LICENSE WineLicense_En;
|
||||
|
||||
/*
|
||||
extern LICENSE WineLicense_Eo;
|
||||
extern LICENSE WineLicense_Es;
|
||||
extern LICENSE WineLicense_Fi;
|
||||
extern LICENSE WineLicense_Fr;
|
||||
extern LICENSE WineLicense_Hu;
|
||||
extern LICENSE WineLicense_It;
|
||||
extern LICENSE WineLicense_Ko;
|
||||
extern LICENSE WineLicense_No;
|
||||
extern LICENSE WineLicense_Pl;
|
||||
extern LICENSE WineLicense_Po;
|
||||
extern LICENSE WineLicense_Sw;
|
||||
extern LICENSE WineLicense_Va;
|
||||
*/
|
354
reactos/apps/dist/notepad/main.c
vendored
Normal file
354
reactos/apps/dist/notepad/main.c
vendored
Normal file
@@ -0,0 +1,354 @@
|
||||
/*
|
||||
* Notepad
|
||||
*
|
||||
* Copyright 2000 Mike McCormack <Mike_McCormack@looksmart.com.au>
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
* Copyright 2002 Andriy Palamarchuk
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
*/
|
||||
|
||||
#define UNICODE
|
||||
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "main.h"
|
||||
#include "dialog.h"
|
||||
#include "notepad_res.h"
|
||||
|
||||
NOTEPAD_GLOBALS Globals;
|
||||
static ATOM aFINDMSGSTRING;
|
||||
|
||||
/***********************************************************************
|
||||
*
|
||||
* SetFileName
|
||||
*
|
||||
* Sets Global File Name.
|
||||
*/
|
||||
VOID SetFileName(LPCWSTR szFileName)
|
||||
{
|
||||
lstrcpy(Globals.szFileName, szFileName);
|
||||
Globals.szFileTitle[0] = 0;
|
||||
GetFileTitle(szFileName, Globals.szFileTitle, sizeof(Globals.szFileTitle));
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
*
|
||||
* NOTEPAD_MenuCommand
|
||||
*
|
||||
* All handling of main menu events
|
||||
*/
|
||||
static int NOTEPAD_MenuCommand(WPARAM wParam)
|
||||
{
|
||||
switch (wParam)
|
||||
{
|
||||
case CMD_NEW: DIALOG_FileNew(); break;
|
||||
case CMD_OPEN: DIALOG_FileOpen(); break;
|
||||
case CMD_SAVE: DIALOG_FileSave(); break;
|
||||
case CMD_SAVE_AS: DIALOG_FileSaveAs(); break;
|
||||
case CMD_PRINT: DIALOG_FilePrint(); break;
|
||||
case CMD_PAGE_SETUP: DIALOG_FilePageSetup(); break;
|
||||
case CMD_PRINTER_SETUP: DIALOG_FilePrinterSetup();break;
|
||||
case CMD_EXIT: DIALOG_FileExit(); break;
|
||||
|
||||
case CMD_UNDO: DIALOG_EditUndo(); break;
|
||||
case CMD_CUT: DIALOG_EditCut(); break;
|
||||
case CMD_COPY: DIALOG_EditCopy(); break;
|
||||
case CMD_PASTE: DIALOG_EditPaste(); break;
|
||||
case CMD_DELETE: DIALOG_EditDelete(); break;
|
||||
case CMD_SELECT_ALL: DIALOG_EditSelectAll(); break;
|
||||
case CMD_TIME_DATE: DIALOG_EditTimeDate();break;
|
||||
|
||||
case CMD_SEARCH: DIALOG_Search(); break;
|
||||
case CMD_SEARCH_NEXT: DIALOG_SearchNext(); break;
|
||||
|
||||
case CMD_WRAP: DIALOG_EditWrap(); break;
|
||||
case CMD_FONT: DIALOG_SelectFont(); break;
|
||||
|
||||
case CMD_HELP_CONTENTS: DIALOG_HelpContents(); break;
|
||||
case CMD_HELP_SEARCH: DIALOG_HelpSearch(); break;
|
||||
case CMD_HELP_ON_HELP: DIALOG_HelpHelp(); break;
|
||||
case CMD_LICENSE: DIALOG_HelpLicense(); break;
|
||||
case CMD_NO_WARRANTY: DIALOG_HelpNoWarranty(); break;
|
||||
case CMD_ABOUT_WINE: DIALOG_HelpAboutWine(); break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* Data Initialization
|
||||
*/
|
||||
static VOID NOTEPAD_InitData(VOID)
|
||||
{
|
||||
LPWSTR p = Globals.szFilter;
|
||||
static const WCHAR txt_files[] = { '*','.','t','x','t',0 };
|
||||
static const WCHAR all_files[] = { '*','.','*',0 };
|
||||
|
||||
LoadString(Globals.hInstance, STRING_TEXT_FILES_TXT, p, MAX_STRING_LEN);
|
||||
p += lstrlen(p) + 1;
|
||||
lstrcpy(p, txt_files);
|
||||
p += lstrlen(p) + 1;
|
||||
LoadString(Globals.hInstance, STRING_ALL_FILES, p, MAX_STRING_LEN);
|
||||
p += lstrlen(p) + 1;
|
||||
lstrcpy(p, all_files);
|
||||
p += lstrlen(p) + 1;
|
||||
*p = '\0';
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
*
|
||||
* NOTEPAD_WndProc
|
||||
*/
|
||||
static LRESULT WINAPI NOTEPAD_WndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
||||
LPARAM lParam)
|
||||
{
|
||||
switch (msg) {
|
||||
|
||||
case WM_CREATE:
|
||||
{
|
||||
static const WCHAR editW[] = { 'e','d','i','t',0 };
|
||||
RECT rc;
|
||||
GetClientRect(hWnd, &rc);
|
||||
Globals.hEdit = CreateWindow(editW, NULL,
|
||||
WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL |
|
||||
ES_AUTOVSCROLL | ES_MULTILINE,
|
||||
0, 0, rc.right, rc.bottom, hWnd,
|
||||
NULL, Globals.hInstance, NULL);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_COMMAND:
|
||||
NOTEPAD_MenuCommand(LOWORD(wParam));
|
||||
break;
|
||||
|
||||
case WM_DESTROYCLIPBOARD:
|
||||
/*MessageBox(Globals.hMainWnd, "Empty clipboard", "Debug", MB_ICONEXCLAMATION);*/
|
||||
break;
|
||||
|
||||
case WM_CLOSE:
|
||||
if (DoCloseFile()) {
|
||||
DestroyWindow(hWnd);
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_DESTROY:
|
||||
PostQuitMessage(0);
|
||||
break;
|
||||
|
||||
case WM_SIZE:
|
||||
SetWindowPos(Globals.hEdit, NULL, 0, 0, LOWORD(lParam), HIWORD(lParam),
|
||||
SWP_NOOWNERZORDER | SWP_NOZORDER);
|
||||
break;
|
||||
|
||||
case WM_SETFOCUS:
|
||||
SetFocus(Globals.hEdit);
|
||||
break;
|
||||
|
||||
case WM_DROPFILES:
|
||||
{
|
||||
WCHAR szFileName[MAX_PATH];
|
||||
HANDLE hDrop = (HANDLE) wParam;
|
||||
|
||||
DragQueryFile(hDrop, 0, szFileName, SIZEOF(szFileName));
|
||||
DragFinish(hDrop);
|
||||
DoOpenFile(szFileName);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
return DefWindowProc(hWnd, msg, wParam, lParam);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int AlertFileDoesNotExist(LPCWSTR szFileName)
|
||||
{
|
||||
int nResult;
|
||||
WCHAR szMessage[MAX_STRING_LEN];
|
||||
WCHAR szResource[MAX_STRING_LEN];
|
||||
|
||||
LoadString(Globals.hInstance, STRING_DOESNOTEXIST, szResource, SIZEOF(szResource));
|
||||
wsprintf(szMessage, szResource, szFileName);
|
||||
|
||||
LoadString(Globals.hInstance, STRING_ERROR, szResource, SIZEOF(szResource));
|
||||
|
||||
nResult = MessageBox(Globals.hMainWnd, szMessage, szResource,
|
||||
MB_ICONEXCLAMATION | MB_YESNO);
|
||||
|
||||
return(nResult);
|
||||
}
|
||||
|
||||
static void HandleCommandLine(LPWSTR cmdline)
|
||||
{
|
||||
WCHAR delimiter;
|
||||
|
||||
/* skip white space */
|
||||
while (*cmdline && *cmdline == ' ') cmdline++;
|
||||
|
||||
/* skip executable name */
|
||||
delimiter = ' ';
|
||||
if (*cmdline == '"')
|
||||
delimiter = '"';
|
||||
|
||||
do
|
||||
{
|
||||
cmdline++;
|
||||
}
|
||||
while (*cmdline && *cmdline != delimiter);
|
||||
if (*cmdline == delimiter) cmdline++;
|
||||
|
||||
while (*cmdline && (*cmdline == ' ' || *cmdline == '-'))
|
||||
{
|
||||
WCHAR option;
|
||||
|
||||
if (*cmdline++ == ' ') continue;
|
||||
|
||||
option = *cmdline;
|
||||
if (option) cmdline++;
|
||||
while (*cmdline && *cmdline == ' ') cmdline++;
|
||||
|
||||
switch(option)
|
||||
{
|
||||
case 'p':
|
||||
case 'P': printf("Print file: ");
|
||||
/* TODO - not yet able to print a file */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (*cmdline)
|
||||
{
|
||||
/* file name is passed in the command line */
|
||||
LPCWSTR file_name;
|
||||
BOOL file_exists;
|
||||
WCHAR buf[MAX_PATH];
|
||||
|
||||
if (cmdline[0] == '"')
|
||||
{
|
||||
cmdline++;
|
||||
cmdline[lstrlen(cmdline) - 1] = 0;
|
||||
}
|
||||
|
||||
if (FileExists(cmdline))
|
||||
{
|
||||
file_exists = TRUE;
|
||||
file_name = cmdline;
|
||||
}
|
||||
else
|
||||
{
|
||||
static const WCHAR txtW[] = { '.','t','x','t',0 };
|
||||
|
||||
/* try to find file with ".txt" extension */
|
||||
if (!lstrcmp(txtW, cmdline + lstrlen(cmdline) - lstrlen(txtW)))
|
||||
{
|
||||
file_exists = FALSE;
|
||||
file_name = cmdline;
|
||||
}
|
||||
else
|
||||
{
|
||||
lstrcpyn(buf, cmdline, MAX_PATH - lstrlen(txtW) - 1);
|
||||
lstrcat(buf, txtW);
|
||||
file_name = buf;
|
||||
file_exists = FileExists(buf);
|
||||
}
|
||||
}
|
||||
|
||||
if (file_exists)
|
||||
{
|
||||
DoOpenFile(file_name);
|
||||
InvalidateRect(Globals.hMainWnd, NULL, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (AlertFileDoesNotExist(file_name)) {
|
||||
case IDYES:
|
||||
DoOpenFile(file_name);
|
||||
break;
|
||||
|
||||
case IDNO:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
*
|
||||
* WinMain
|
||||
*/
|
||||
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE prev, LPSTR cmdline, int show)
|
||||
{
|
||||
MSG msg;
|
||||
HACCEL hAccel;
|
||||
WNDCLASSEX class;
|
||||
static const WCHAR className[] = {'N','P','C','l','a','s','s',0};
|
||||
static const WCHAR winName[] = {'N','o','t','e','p','a','d',0};
|
||||
|
||||
aFINDMSGSTRING = RegisterWindowMessage(FINDMSGSTRING);
|
||||
|
||||
ZeroMemory(&Globals, sizeof(Globals));
|
||||
Globals.hInstance = hInstance;
|
||||
|
||||
ZeroMemory(&class, sizeof(class));
|
||||
class.cbSize = sizeof(class);
|
||||
class.lpfnWndProc = NOTEPAD_WndProc;
|
||||
class.hInstance = Globals.hInstance;
|
||||
class.hIcon = LoadIcon(0, IDI_APPLICATION);
|
||||
class.hCursor = LoadCursor(0, IDC_ARROW);
|
||||
class.hbrBackground = (HBRUSH)(COLOR_WINDOW);
|
||||
class.lpszMenuName = MAKEINTRESOURCE(MAIN_MENU);
|
||||
class.lpszClassName = className;
|
||||
|
||||
if (!RegisterClassEx(&class)) return FALSE;
|
||||
|
||||
/* Setup windows */
|
||||
|
||||
Globals.hMainWnd =
|
||||
CreateWindow(className, winName, WS_OVERLAPPEDWINDOW,
|
||||
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0,
|
||||
NULL, NULL, Globals.hInstance, NULL);
|
||||
if (!Globals.hMainWnd)
|
||||
{
|
||||
ShowLastError();
|
||||
ExitProcess(1);
|
||||
}
|
||||
|
||||
NOTEPAD_InitData();
|
||||
DIALOG_FileNew();
|
||||
|
||||
ShowWindow(Globals.hMainWnd, show);
|
||||
UpdateWindow(Globals.hMainWnd);
|
||||
DragAcceptFiles(Globals.hMainWnd, TRUE);
|
||||
|
||||
HandleCommandLine(GetCommandLine());
|
||||
|
||||
hAccel = LoadAccelerators( hInstance, MAKEINTRESOURCE(ID_ACCEL) );
|
||||
|
||||
while (GetMessage(&msg, 0, 0, 0))
|
||||
{
|
||||
if (!TranslateAccelerator(Globals.hMainWnd, hAccel, &msg) && !IsDialogMessage(Globals.hFindReplaceDlg, &msg))
|
||||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
}
|
||||
return msg.wParam;
|
||||
}
|
53
reactos/apps/dist/notepad/main.h
vendored
Normal file
53
reactos/apps/dist/notepad/main.h
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Notepad (notepad.h)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#define SIZEOF(a) sizeof(a)/sizeof((a)[0])
|
||||
|
||||
#include "notepad_res.h"
|
||||
|
||||
#define MAX_STRING_LEN 255
|
||||
|
||||
typedef struct
|
||||
{
|
||||
HANDLE hInstance;
|
||||
HWND hMainWnd;
|
||||
HWND hFindReplaceDlg;
|
||||
HWND hEdit;
|
||||
HFONT hFont; /* Font used by the edit control */
|
||||
LOGFONT lfFont;
|
||||
BOOL bWrapLongLines;
|
||||
WCHAR szFindText[MAX_PATH];
|
||||
WCHAR szFileName[MAX_PATH];
|
||||
WCHAR szFileTitle[MAX_PATH];
|
||||
WCHAR szFilter[2 * MAX_STRING_LEN + 100];
|
||||
WCHAR szMarginTop[MAX_PATH];
|
||||
WCHAR szMarginBottom[MAX_PATH];
|
||||
WCHAR szMarginLeft[MAX_PATH];
|
||||
WCHAR szMarginRight[MAX_PATH];
|
||||
WCHAR szHeader[MAX_PATH];
|
||||
WCHAR szFooter[MAX_PATH];
|
||||
|
||||
FINDREPLACE find;
|
||||
} NOTEPAD_GLOBALS;
|
||||
|
||||
extern NOTEPAD_GLOBALS Globals;
|
||||
|
||||
VOID SetFileName(LPCWSTR szFileName);
|
27
reactos/apps/dist/notepad/makefile
vendored
Normal file
27
reactos/apps/dist/notepad/makefile
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
# $Id: makefile,v 1.4 2004/01/13 00:01:52 sedwards Exp $
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = no
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = windows
|
||||
|
||||
TARGET_NAME = notepad
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror -D__USE_W32API
|
||||
|
||||
TARGET_SDKLIBS = comdlg32.a shell32.a user32.a gdi32.a
|
||||
|
||||
TARGET_OBJECTS = \
|
||||
License_En.o \
|
||||
dialog.o \
|
||||
license.o \
|
||||
main.o
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
BIN
reactos/apps/dist/notepad/notepad.ico
vendored
Normal file
BIN
reactos/apps/dist/notepad/notepad.ico
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
3
reactos/apps/dist/notepad/notepad.rc
vendored
Normal file
3
reactos/apps/dist/notepad/notepad.rc
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
// Compatiblity Include
|
||||
|
||||
#include "rsrc.rc"
|
78
reactos/apps/dist/notepad/notepad_res.h
vendored
Normal file
78
reactos/apps/dist/notepad/notepad_res.h
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
/*
|
||||
* Constants, used in resources.
|
||||
*
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
* Copyright 2002 Andriy Palamarchuk
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#define MAIN_MENU 0x201
|
||||
#define DIALOG_PAGESETUP 0x202
|
||||
#define ID_ACCEL 0x203
|
||||
|
||||
/* Commands */
|
||||
#define CMD_NEW 0x100
|
||||
#define CMD_OPEN 0x101
|
||||
#define CMD_SAVE 0x102
|
||||
#define CMD_SAVE_AS 0x103
|
||||
#define CMD_PRINT 0x104
|
||||
#define CMD_PAGE_SETUP 0x105
|
||||
#define CMD_PRINTER_SETUP 0x106
|
||||
#define CMD_EXIT 0x108
|
||||
|
||||
#define CMD_UNDO 0x110
|
||||
#define CMD_CUT 0x111
|
||||
#define CMD_COPY 0x112
|
||||
#define CMD_PASTE 0x113
|
||||
#define CMD_DELETE 0x114
|
||||
#define CMD_SELECT_ALL 0x116
|
||||
#define CMD_TIME_DATE 0x117
|
||||
|
||||
#define CMD_SEARCH 0x120
|
||||
#define CMD_SEARCH_NEXT 0x121
|
||||
|
||||
#define CMD_WRAP 0x119
|
||||
#define CMD_FONT 0x140
|
||||
|
||||
#define CMD_HELP_CONTENTS 0x130
|
||||
#define CMD_HELP_SEARCH 0x131
|
||||
#define CMD_HELP_ON_HELP 0x132
|
||||
#define CMD_LICENSE 0x135
|
||||
#define CMD_NO_WARRANTY 0x136
|
||||
#define CMD_ABOUT_WINE 0x137
|
||||
|
||||
/* Strings */
|
||||
#define STRING_PAGESETUP_HEADERVALUE 0x160
|
||||
#define STRING_PAGESETUP_FOOTERVALUE 0x161
|
||||
#define STRING_PAGESETUP_LEFTVALUE 0x162
|
||||
#define STRING_PAGESETUP_RIGHTVALUE 0x163
|
||||
#define STRING_PAGESETUP_TOPVALUE 0x164
|
||||
#define STRING_PAGESETUP_BOTTOMVALUE 0x165
|
||||
|
||||
#define STRING_NOTEPAD 0x170
|
||||
#define STRING_ERROR 0x171
|
||||
#define STRING_WARNING 0x172
|
||||
#define STRING_INFO 0x173
|
||||
#define STRING_UNTITLED 0x174
|
||||
#define STRING_ALL_FILES 0x175
|
||||
#define STRING_TEXT_FILES_TXT 0x176
|
||||
#define STRING_TOOLARGE 0x177
|
||||
#define STRING_NOTEXT 0x178
|
||||
#define STRING_DOESNOTEXIST 0x179
|
||||
#define STRING_NOTSAVED 0x17A
|
||||
|
||||
#define STRING_NOTFOUND 0x17B
|
||||
#define STRING_OUT_OF_MEMORY 0x17C
|
58
reactos/apps/dist/notepad/rsrc.rc
vendored
Normal file
58
reactos/apps/dist/notepad/rsrc.rc
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
#include "main.h"
|
||||
#include "winnls.h"
|
||||
#include "commctrl.h"
|
||||
#include "notepad_res.h"
|
||||
|
||||
ID_ACCEL ACCELERATORS
|
||||
{
|
||||
"^A", CMD_SELECT_ALL
|
||||
"^C", CMD_COPY
|
||||
"^F", CMD_SEARCH
|
||||
"^O", CMD_OPEN
|
||||
"^S", CMD_SAVE
|
||||
"^V", CMD_PASTE
|
||||
"^X", CMD_CUT
|
||||
"^Z", CMD_UNDO
|
||||
VK_F3, CMD_SEARCH_NEXT, VIRTKEY
|
||||
VK_F5, CMD_TIME_DATE, VIRTKEY
|
||||
}
|
||||
|
||||
#include "Da.rc"
|
||||
#include "De.rc"
|
||||
#include "En.rc"
|
||||
#include "Es.rc"
|
||||
#include "Fi.rc"
|
||||
#include "Fr.rc"
|
||||
#include "Hu.rc"
|
||||
#include "It.rc"
|
||||
#include "Nl.rc"
|
||||
#include "Pt.rc"
|
||||
#include "Ru.rc"
|
||||
#include "Si.rc"
|
||||
#include "Sk.rc"
|
||||
#include "Sw.rc"
|
||||
#include "Th.rc"
|
||||
#include "Wa.rc"
|
||||
#include "Zh.rc"
|
BIN
reactos/apps/dist/notepad/small.ico
vendored
Normal file
BIN
reactos/apps/dist/notepad/small.ico
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
0
reactos/apps/dist/paint/dummyfile
vendored
Normal file
0
reactos/apps/dist/paint/dummyfile
vendored
Normal file
0
reactos/apps/dist/wordpad/dummyfile
vendored
Normal file
0
reactos/apps/dist/wordpad/dummyfile
vendored
Normal file
77
reactos/apps/tests/Makefile
Normal file
77
reactos/apps/tests/Makefile
Normal file
@@ -0,0 +1,77 @@
|
||||
#
|
||||
# ReactOS test applications makefile
|
||||
#
|
||||
|
||||
PATH_TO_TOP = ../..
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
# test_old tests
|
||||
TEST_APPS = accelerator alive apc args atomtest bench bitblt button \
|
||||
button2 capclock carets cliarea combo consume copymove count dibtest \
|
||||
dump_shared_data edit enumwnd enumws event global_mem hello mdi \
|
||||
hivetest icontest isotest lineclip linetest lock lpc \
|
||||
mktime mstest multithrdwin multiwin mutex nptest patblt primitives pteb \
|
||||
regtest sectest sertest shaptest shm statst statst2 stretchblt suspend \
|
||||
tcpsvr terminate txtscale thread thread_msg tokentest vmtest \
|
||||
winhello wm_erasebkgnd wm_paint eventpair threadwait popupmenu \
|
||||
map_dup_inherit p_dup_handle apc2 enhmetafile dirdlg guithreadinfo
|
||||
|
||||
TEST_MISC =
|
||||
|
||||
all: $(TEST_APPS) $(TEST_MISC)
|
||||
|
||||
depends:
|
||||
|
||||
implib: $(TEST_APPS:%=%_implib) \
|
||||
$(TEST_MISC:%=%_implib)
|
||||
|
||||
clean: $(TEST_APPS:%=%_clean) \
|
||||
$(TEST_MISC:%=%_clean)
|
||||
|
||||
install: $(TEST_APPS:%=%_install) \
|
||||
$(TEST_MISC:%=%_install)
|
||||
|
||||
.PHONY: all depends implib clean install
|
||||
|
||||
|
||||
#
|
||||
# Test Applications
|
||||
#
|
||||
$(TEST_APPS): %:
|
||||
$(MAKE) -C $*
|
||||
|
||||
$(TEST_APPS:%=%_implib): %_implib:
|
||||
$(MAKE) -C $* implib
|
||||
|
||||
$(TEST_APPS:%=%_clean): %_clean:
|
||||
$(MAKE) -C $* clean
|
||||
|
||||
$(TEST_APPS:%=%_install): %_install:
|
||||
$(MAKE) -C $* install
|
||||
|
||||
.PHONY: $(TEST_APPS) $(TEST_APPS:%=%_implib) $(TEST_APPS:%=%_clean) $(TEST_APPS:%=%_install)
|
||||
|
||||
|
||||
#
|
||||
# Misc Test Applications
|
||||
#
|
||||
$(TEST_MISC): %:
|
||||
$(MAKE) -C tests/$*
|
||||
|
||||
$(TEST_MISC:%=%_implib): %_implib:
|
||||
$(MAKE) -C tests/$* implib
|
||||
|
||||
$(TEST_MISC:%=%_clean): %_clean:
|
||||
$(MAKE) -C tests/$* clean
|
||||
|
||||
$(TEST_MISC:%=%_install): %_install:
|
||||
$(MAKE) -C tests/$* install
|
||||
|
||||
.PHONY: $(TEST_MISC) $(TEST_MISC:%=%_implib) $(TEST_MISC:%=%_clean) $(TEST_MISC:%=%_install)
|
||||
|
||||
|
||||
etags:
|
||||
find . -name "*.[ch]" -print | etags --language=c -
|
||||
|
||||
# EOF
|
6
reactos/apps/tests/accelerator/.cvsignore
Normal file
6
reactos/apps/tests/accelerator/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
19
reactos/apps/tests/accelerator/Makefile
Normal file
19
reactos/apps/tests/accelerator/Makefile
Normal file
@@ -0,0 +1,19 @@
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = yes
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = windows
|
||||
|
||||
TARGET_NAME = accelerator
|
||||
|
||||
#TARGET_SDKLIBS = kernel32.a user32.a
|
||||
|
||||
TARGET_OBJECTS = accelerator.o
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
161
reactos/apps/tests/accelerator/accelerator.c
Normal file
161
reactos/apps/tests/accelerator/accelerator.c
Normal file
@@ -0,0 +1,161 @@
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#define ID_ACCEL1 0x100
|
||||
#define ID_ACCEL2 0x101
|
||||
#define ID_ACCEL3 0x102
|
||||
#define ID_ACCEL4 0x103
|
||||
|
||||
/*
|
||||
* {fVirt, key, cmd}
|
||||
* fVirt |= FVIRTKEY | FCONTROL | FALT | FSHIFT
|
||||
*/
|
||||
//static HFONT tf;
|
||||
static ACCEL Accelerators[4] = {
|
||||
{ FVIRTKEY, VK_A, ID_ACCEL1},
|
||||
{ FVIRTKEY | FSHIFT, VK_A, ID_ACCEL2},
|
||||
{ FVIRTKEY | FCONTROL, VK_A, ID_ACCEL3},
|
||||
{ FVIRTKEY | FALT, VK_A, ID_ACCEL4}};
|
||||
static HACCEL hAcceleratorTable;
|
||||
static char Event[200];
|
||||
|
||||
LRESULT WINAPI MainWndProc(HWND, UINT, WPARAM, LPARAM);
|
||||
|
||||
int WINAPI
|
||||
WinMain(HINSTANCE hInstance,
|
||||
HINSTANCE hPrevInstance,
|
||||
LPSTR lpszCmdLine,
|
||||
int nCmdShow)
|
||||
{
|
||||
WNDCLASS wc;
|
||||
MSG msg;
|
||||
HWND hWnd;
|
||||
|
||||
wc.lpszClassName = "AcceleratorTest";
|
||||
wc.lpfnWndProc = MainWndProc;
|
||||
wc.style = CS_VREDRAW | CS_HREDRAW;
|
||||
wc.hInstance = hInstance;
|
||||
wc.hIcon = LoadIcon(NULL, (LPCTSTR)IDI_APPLICATION);
|
||||
wc.hCursor = LoadCursor(NULL, (LPCTSTR)IDC_ARROW);
|
||||
wc.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
|
||||
wc.lpszMenuName = NULL;
|
||||
wc.cbClsExtra = 0;
|
||||
wc.cbWndExtra = 0;
|
||||
if (RegisterClass(&wc) == 0)
|
||||
{
|
||||
fprintf(stderr, "RegisterClass failed (last error 0x%lX)\n",
|
||||
GetLastError());
|
||||
return(1);
|
||||
}
|
||||
|
||||
hWnd = CreateWindow("AcceleratorTest",
|
||||
"Accelerator Test",
|
||||
WS_OVERLAPPEDWINDOW,
|
||||
0,
|
||||
0,
|
||||
CW_USEDEFAULT,
|
||||
CW_USEDEFAULT,
|
||||
NULL,
|
||||
NULL,
|
||||
hInstance,
|
||||
NULL);
|
||||
if (hWnd == NULL)
|
||||
{
|
||||
fprintf(stderr, "CreateWindow failed (last error 0x%lX)\n",
|
||||
GetLastError());
|
||||
return(1);
|
||||
}
|
||||
|
||||
/*tf = CreateFontA(14, 0, 0, TA_BASELINE, FW_NORMAL, FALSE, FALSE, FALSE,
|
||||
ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
|
||||
DEFAULT_QUALITY, FIXED_PITCH|FF_DONTCARE, "Timmons");*/
|
||||
|
||||
Event[0] = 0;
|
||||
|
||||
ShowWindow(hWnd, nCmdShow);
|
||||
|
||||
hAcceleratorTable = CreateAcceleratorTable(Accelerators,
|
||||
sizeof(Accelerators)/sizeof(Accelerators[1]));
|
||||
if (hAcceleratorTable == NULL)
|
||||
{
|
||||
fprintf(stderr, "CreateAcceleratorTable failed (last error 0x%lX)\n",
|
||||
GetLastError());
|
||||
return(1);
|
||||
}
|
||||
|
||||
while(GetMessage(&msg, NULL, 0, 0))
|
||||
{
|
||||
if (!TranslateAccelerator(hWnd, hAcceleratorTable, &msg))
|
||||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
}
|
||||
|
||||
if (!DestroyAcceleratorTable(hAcceleratorTable))
|
||||
{
|
||||
fprintf(stderr, "DestroyAcceleratorTable failed (last error 0x%lX)\n",
|
||||
GetLastError());
|
||||
return(1);
|
||||
}
|
||||
|
||||
//DeleteObject(tf);
|
||||
|
||||
return msg.wParam;
|
||||
}
|
||||
|
||||
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
PAINTSTRUCT ps;
|
||||
HDC hDC;
|
||||
char buf[200];
|
||||
|
||||
switch(msg)
|
||||
{
|
||||
case WM_PAINT:
|
||||
hDC = BeginPaint(hWnd, &ps);
|
||||
//SelectObject(hDC, tf);
|
||||
sprintf(buf, "Event: '%s'", Event);
|
||||
TextOut(hDC, 10, 10, buf, strlen(buf));
|
||||
EndPaint(hWnd, &ps);
|
||||
break;
|
||||
|
||||
case WM_DESTROY:
|
||||
PostQuitMessage(0);
|
||||
break;
|
||||
|
||||
case WM_COMMAND:
|
||||
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
case ID_ACCEL1:
|
||||
strcpy(Event, "A");
|
||||
break;
|
||||
|
||||
case ID_ACCEL2:
|
||||
strcpy(Event, "SHIFT+A");
|
||||
break;
|
||||
|
||||
case ID_ACCEL3:
|
||||
strcpy(Event, "CTRL+A");
|
||||
break;
|
||||
|
||||
case ID_ACCEL4:
|
||||
strcpy(Event, "ALT+A");
|
||||
break;
|
||||
|
||||
default:
|
||||
sprintf(Event, "%d", LOWORD(wParam));
|
||||
break;
|
||||
}
|
||||
|
||||
InvalidateRect(hWnd, NULL, TRUE);
|
||||
UpdateWindow(hWnd);
|
||||
break;
|
||||
|
||||
default:
|
||||
return DefWindowProc(hWnd, msg, wParam, lParam);
|
||||
}
|
||||
return 0;
|
||||
}
|
6
reactos/apps/tests/alive/.cvsignore
Normal file
6
reactos/apps/tests/alive/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
23
reactos/apps/tests/alive/Makefile
Normal file
23
reactos/apps/tests/alive/Makefile
Normal file
@@ -0,0 +1,23 @@
|
||||
# $Id: Makefile,v 1.7 2003/11/14 17:13:14 weiden Exp $
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = yes
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = console
|
||||
|
||||
TARGET_NAME = alive
|
||||
|
||||
TARGET_SDKLIBS = kernel32.a user32.a
|
||||
|
||||
TARGET_OBJECTS = $(TARGET_NAME).o
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
48
reactos/apps/tests/alive/alive.c
Normal file
48
reactos/apps/tests/alive/alive.c
Normal file
@@ -0,0 +1,48 @@
|
||||
/* $Id: alive.c,v 1.2 2001/03/26 21:30:20 ea Exp $
|
||||
*
|
||||
*/
|
||||
#include <windows.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
HANDLE StandardOutput = INVALID_HANDLE_VALUE;
|
||||
CHAR Message [80];
|
||||
DWORD CharactersToWrite = 0;
|
||||
DWORD WrittenCharacters = 0;
|
||||
INT d = 0, h = 0, m = 0, s = 0;
|
||||
|
||||
int
|
||||
main (int argc, char * argv [])
|
||||
{
|
||||
StandardOutput = GetStdHandle (STD_OUTPUT_HANDLE);
|
||||
if (INVALID_HANDLE_VALUE == StandardOutput)
|
||||
{
|
||||
return (EXIT_FAILURE);
|
||||
}
|
||||
while (TRUE)
|
||||
{
|
||||
/* Prepare the message and update it */
|
||||
CharactersToWrite =
|
||||
wsprintf (
|
||||
Message,
|
||||
"Alive for %dd %dh %d' %d\" \r",
|
||||
d, h, m, s
|
||||
);
|
||||
WriteConsole (
|
||||
StandardOutput,
|
||||
Message,
|
||||
CharactersToWrite,
|
||||
& WrittenCharacters,
|
||||
NULL
|
||||
);
|
||||
/* suspend the execution for 1s */
|
||||
Sleep (1000);
|
||||
/* increment seconds */
|
||||
++ s;
|
||||
if (60 == s) { s = 0; ++ m; }
|
||||
if (60 == m) { m = 0; ++ h; }
|
||||
if (24 == h) { h = 0; ++ d; }
|
||||
}
|
||||
return (EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
/* EOF */
|
6
reactos/apps/tests/apc/.cvsignore
Normal file
6
reactos/apps/tests/apc/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
94
reactos/apps/tests/apc/apc.c
Normal file
94
reactos/apps/tests/apc/apc.c
Normal file
@@ -0,0 +1,94 @@
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
#include <ddk/ntddk.h>
|
||||
#include <rosrtl/string.h>
|
||||
|
||||
HANDLE OutputHandle;
|
||||
HANDLE InputHandle;
|
||||
|
||||
VOID STDCALL
|
||||
ApcRoutine(PVOID Context,
|
||||
PIO_STATUS_BLOCK IoStatus,
|
||||
ULONG Reserved)
|
||||
{
|
||||
printf("(apc.exe) ApcRoutine(Context %p)\n", Context);
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
NTSTATUS Status;
|
||||
HANDLE FileHandle;
|
||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||
UNICODE_STRING FileName = ROS_STRING_INITIALIZER(L"\\C:\\a.txt");
|
||||
IO_STATUS_BLOCK IoStatus;
|
||||
CHAR Buffer[256];
|
||||
HANDLE EventHandle;
|
||||
LARGE_INTEGER off;
|
||||
|
||||
AllocConsole();
|
||||
InputHandle = GetStdHandle(STD_INPUT_HANDLE);
|
||||
OutputHandle = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
|
||||
printf("APC test program\n");
|
||||
|
||||
EventHandle = CreateEventW(NULL,
|
||||
FALSE,
|
||||
FALSE,
|
||||
NULL);
|
||||
if (EventHandle == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
printf("Failed to create event\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
printf("Opening file\n");
|
||||
InitializeObjectAttributes(&ObjectAttributes,
|
||||
&FileName,
|
||||
0,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
printf("Creating file\n");
|
||||
FileHandle = CreateFileW(L"C:\\a.txt",
|
||||
FILE_GENERIC_READ | FILE_GENERIC_WRITE,
|
||||
0,
|
||||
NULL,
|
||||
OPEN_EXISTING,
|
||||
FILE_FLAG_OVERLAPPED,
|
||||
NULL);
|
||||
|
||||
if (FileHandle == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
|
||||
printf("Open failed last err 0x%lu\n",GetLastError());
|
||||
return 0;
|
||||
}
|
||||
|
||||
off.QuadPart = 0;
|
||||
|
||||
printf("Reading file\n");
|
||||
Status = ZwReadFile(FileHandle,
|
||||
NULL,
|
||||
(PIO_APC_ROUTINE)ApcRoutine,
|
||||
(PVOID) 0xdeadbeef,
|
||||
&IoStatus,
|
||||
Buffer,
|
||||
256,//len
|
||||
&off ,//offset must exist if file was opened for asynch. i/o aka. OVERLAPPED
|
||||
NULL);
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
printf("Read failed status 0x%lu\n",Status);
|
||||
}
|
||||
printf("Waiting\n");
|
||||
WaitForSingleObjectEx(EventHandle, INFINITE, TRUE);
|
||||
printf("Returned from wait\n");
|
||||
ZwClose(FileHandle);
|
||||
printf("Program finished\n");
|
||||
return 0;
|
||||
}
|
||||
|
23
reactos/apps/tests/apc/makefile
Normal file
23
reactos/apps/tests/apc/makefile
Normal file
@@ -0,0 +1,23 @@
|
||||
# $Id: makefile,v 1.10 2003/11/14 17:13:14 weiden Exp $
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = yes
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = console
|
||||
|
||||
TARGET_NAME = apc
|
||||
|
||||
TARGET_SDKLIBS = ntdll.a kernel32.a
|
||||
|
||||
TARGET_OBJECTS = $(TARGET_NAME).o
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
6
reactos/apps/tests/apc2/.cvsignore
Normal file
6
reactos/apps/tests/apc2/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
53
reactos/apps/tests/apc2/apc2.c
Normal file
53
reactos/apps/tests/apc2/apc2.c
Normal file
@@ -0,0 +1,53 @@
|
||||
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
|
||||
VOID CALLBACK TimerApcProc(
|
||||
LPVOID lpArg,
|
||||
DWORD dwTimerLowValue,
|
||||
DWORD dwTimerHighValue )
|
||||
{
|
||||
printf("APC Callback %lu\n", *(PDWORD)lpArg);
|
||||
}
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
HANDLE hTimer;
|
||||
BOOL bSuccess;
|
||||
LARGE_INTEGER DueTime;
|
||||
DWORD value = 1;
|
||||
|
||||
hTimer = CreateWaitableTimer(NULL, FALSE, NULL );
|
||||
|
||||
if (!hTimer)
|
||||
{
|
||||
printf("CreateWaitableTimer failed!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
DueTime.QuadPart = -(LONGLONG)(5 * 10000000);
|
||||
|
||||
bSuccess = SetWaitableTimer(
|
||||
hTimer,
|
||||
&DueTime,
|
||||
2000 /*interval*/,
|
||||
TimerApcProc,
|
||||
&value /*callback argument*/,
|
||||
FALSE );
|
||||
|
||||
if (!bSuccess)
|
||||
{
|
||||
printf("SetWaitableTimer failed!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (;value <= 10; value++ )
|
||||
{
|
||||
SleepEx(INFINITE, TRUE /*alertable*/ );
|
||||
}
|
||||
|
||||
CloseHandle( hTimer );
|
||||
return 0;
|
||||
}
|
||||
|
23
reactos/apps/tests/apc2/makefile
Normal file
23
reactos/apps/tests/apc2/makefile
Normal file
@@ -0,0 +1,23 @@
|
||||
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = yes
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = console
|
||||
|
||||
TARGET_NAME = apc2
|
||||
|
||||
TARGET_SDKLIBS = ntdll.a kernel32.a
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror
|
||||
|
||||
TARGET_OBJECTS = $(TARGET_NAME).o
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
6
reactos/apps/tests/args/.cvsignore
Normal file
6
reactos/apps/tests/args/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
39
reactos/apps/tests/args/args.c
Normal file
39
reactos/apps/tests/args/args.c
Normal file
@@ -0,0 +1,39 @@
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
|
||||
HANDLE OutputHandle;
|
||||
HANDLE InputHandle;
|
||||
|
||||
void debug_printf(char* fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
char buffer[255];
|
||||
|
||||
va_start(args,fmt);
|
||||
vsprintf(buffer,fmt,args);
|
||||
WriteConsoleA(OutputHandle, buffer, strlen(buffer), NULL, NULL);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
int i;
|
||||
|
||||
AllocConsole();
|
||||
InputHandle = GetStdHandle(STD_INPUT_HANDLE);
|
||||
OutputHandle = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
|
||||
printf("GetCommandLineA() %s\n",GetCommandLineA());
|
||||
debug_printf("GetCommandLineA() %s\n",GetCommandLineA());
|
||||
debug_printf("argc %d\n", argc);
|
||||
for (i=0; i<argc; i++)
|
||||
{
|
||||
debug_printf("Argv[%d]: %x\n",i,argv[i]);
|
||||
debug_printf("Argv[%d]: '%s'\n",i,argv[i]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
21
reactos/apps/tests/args/makefile
Normal file
21
reactos/apps/tests/args/makefile
Normal file
@@ -0,0 +1,21 @@
|
||||
# $Id: makefile,v 1.16 2003/11/14 17:13:14 weiden Exp $
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = yes
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = console
|
||||
|
||||
TARGET_NAME = args
|
||||
|
||||
TARGET_OBJECTS = $(TARGET_NAME).o
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
6
reactos/apps/tests/atomtest/.cvsignore
Normal file
6
reactos/apps/tests/atomtest/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
114
reactos/apps/tests/atomtest/atomtest.c
Normal file
114
reactos/apps/tests/atomtest/atomtest.c
Normal file
@@ -0,0 +1,114 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <windows.h>
|
||||
#include <ddk/ntddk.h>
|
||||
|
||||
#define BUFFER_SIZE 256
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
PRTL_ATOM_TABLE AtomTable = NULL;
|
||||
RTL_ATOM AtomA = -1, AtomB = -1, AtomC = -1;
|
||||
NTSTATUS Status;
|
||||
WCHAR Buffer[BUFFER_SIZE];
|
||||
ULONG NameLength, Data1, Data2;
|
||||
|
||||
printf("Atom table test app\n\n");
|
||||
|
||||
printf("RtlCreateAtomTable()\n");
|
||||
Status = RtlCreateAtomTable(37,
|
||||
&AtomTable);
|
||||
printf(" Status 0x%08lx\n", Status);
|
||||
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
printf(" AtomTable %p\n", AtomTable);
|
||||
|
||||
printf("RtlAddAtomToAtomTable()\n");
|
||||
Status = RtlAddAtomToAtomTable(AtomTable,
|
||||
L"TestAtomA",
|
||||
&AtomA);
|
||||
printf(" Status 0x%08lx\n", Status);
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
printf(" AtomA 0x%x\n", AtomA);
|
||||
}
|
||||
|
||||
printf("RtlAddAtomToAtomTable()\n");
|
||||
Status = RtlAddAtomToAtomTable(AtomTable,
|
||||
L"TestAtomB",
|
||||
&AtomB);
|
||||
printf(" Status 0x%08lx\n", Status);
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
printf(" AtomB 0x%x\n", AtomB);
|
||||
}
|
||||
|
||||
|
||||
printf("RtlLookupAtomInAtomTable()\n");
|
||||
Status = RtlLookupAtomInAtomTable(AtomTable,
|
||||
L"TestAtomA",
|
||||
&AtomC);
|
||||
printf(" Status 0x%08lx\n", Status);
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
printf(" AtomC 0x%x\n", AtomC);
|
||||
}
|
||||
|
||||
|
||||
printf("RtlPinAtomInAtomTable()\n");
|
||||
Status = RtlPinAtomInAtomTable(AtomTable,
|
||||
AtomC);
|
||||
printf(" Status 0x%08lx\n", Status);
|
||||
|
||||
printf("RtlPinAtomInAtomTable()\n");
|
||||
Status = RtlPinAtomInAtomTable(AtomTable,
|
||||
AtomC);
|
||||
printf(" Status 0x%08lx\n", Status);
|
||||
|
||||
|
||||
// printf("RtlDeleteAtomFromAtomTable()\n");
|
||||
// Status = RtlDeleteAtomFromAtomTable(AtomTable,
|
||||
// AtomC);
|
||||
// printf(" Status 0x%08lx\n", Status);
|
||||
|
||||
|
||||
// printf("RtlEmptyAtomTable()\n");
|
||||
// Status = RtlEmptyAtomTable(AtomTable,
|
||||
// TRUE);
|
||||
// printf(" Status 0x%08lx\n", Status);
|
||||
|
||||
|
||||
// printf("RtlLookupAtomInAtomTable()\n");
|
||||
// Status = RtlLookupAtomInAtomTable(AtomTable,
|
||||
// L"TestAtomA",
|
||||
// &AtomC);
|
||||
// printf(" Status 0x%08lx\n", Status);
|
||||
|
||||
|
||||
printf("RtlQueryAtomInAtomTable()\n");
|
||||
NameLength = sizeof(WCHAR) * BUFFER_SIZE;
|
||||
Status = RtlQueryAtomInAtomTable(AtomTable,
|
||||
AtomC,
|
||||
&Data1,
|
||||
&Data2,
|
||||
Buffer,
|
||||
&NameLength);
|
||||
printf(" Status 0x%08lx\n", Status);
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
printf(" RefCount %ld\n", Data1);
|
||||
printf(" PinCount %ld\n", Data2);
|
||||
printf(" NameLength %lu\n", NameLength);
|
||||
printf(" AtomName: %S\n", Buffer);
|
||||
}
|
||||
|
||||
printf("RtlDestroyAtomTable()\n");
|
||||
RtlDestroyAtomTable(AtomTable);
|
||||
|
||||
|
||||
printf("Atom table test app finished\n");
|
||||
}
|
||||
|
||||
return(0);
|
||||
}
|
22
reactos/apps/tests/atomtest/makefile
Normal file
22
reactos/apps/tests/atomtest/makefile
Normal file
@@ -0,0 +1,22 @@
|
||||
# $Id: makefile,v 1.6 2003/11/14 17:13:15 weiden Exp $
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = yes
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = console
|
||||
|
||||
TARGET_NAME = atomtest
|
||||
|
||||
TARGET_SDKLIBS = ntdll.a kernel32.a
|
||||
|
||||
TARGET_OBJECTS = $(TARGET_NAME).o
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
6
reactos/apps/tests/bench/.cvsignore
Normal file
6
reactos/apps/tests/bench/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
8
reactos/apps/tests/bench/bench-syscall.c
Normal file
8
reactos/apps/tests/bench/bench-syscall.c
Normal file
@@ -0,0 +1,8 @@
|
||||
/*
|
||||
*
|
||||
*/
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
|
||||
}
|
81
reactos/apps/tests/bench/bench-thread.c
Normal file
81
reactos/apps/tests/bench/bench-thread.c
Normal file
@@ -0,0 +1,81 @@
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
|
||||
#define NR_THREADS (30)
|
||||
|
||||
|
||||
DWORD WINAPI
|
||||
thread_main1(LPVOID param)
|
||||
{
|
||||
printf("Thread 1 running (Counter %lu)\n", (DWORD)param);
|
||||
SleepEx(INFINITE, TRUE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
DWORD WINAPI
|
||||
thread_main2(LPVOID param)
|
||||
{
|
||||
printf("Thread 2 running (Counter %lu)\n", (DWORD)param);
|
||||
Sleep(INFINITE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int main (void)
|
||||
{
|
||||
DWORD i=0;
|
||||
DWORD id;
|
||||
|
||||
#if 1
|
||||
printf("Creating %d threads...\n",NR_THREADS*2);
|
||||
for (i=0;i<NR_THREADS;i++)
|
||||
{
|
||||
CreateThread(NULL,
|
||||
0,
|
||||
thread_main1,
|
||||
(LPVOID)i,
|
||||
0,
|
||||
&id);
|
||||
|
||||
/* CreateThread(NULL,
|
||||
0,
|
||||
thread_main2,
|
||||
(LPVOID)i,
|
||||
0,
|
||||
&id);*/
|
||||
}
|
||||
|
||||
printf("All threads created...\n");
|
||||
|
||||
/*
|
||||
* Waiting for threads is not implemented yet.
|
||||
* If you want to see all threads running, uncomment the
|
||||
* call to SuspendThread(). The test application will
|
||||
* freeze after all threads are created.
|
||||
*/
|
||||
/* SuspendThread (GetCurrentThread()); */
|
||||
|
||||
#else
|
||||
|
||||
printf("Creating thread...\n");
|
||||
|
||||
hThread = CreateThread(NULL,
|
||||
0,
|
||||
thread_main1,
|
||||
(LPVOID)i,
|
||||
0,
|
||||
&id);
|
||||
|
||||
printf("Thread created. Waiting for termination...\n");
|
||||
|
||||
WaitForSingleObject (hThread,
|
||||
-1);
|
||||
|
||||
CloseHandle (hThread);
|
||||
|
||||
printf("Thread terminated...\n");
|
||||
#endif
|
||||
printf("Exiting\n");
|
||||
return 0;
|
||||
}
|
23
reactos/apps/tests/bench/makefile
Normal file
23
reactos/apps/tests/bench/makefile
Normal file
@@ -0,0 +1,23 @@
|
||||
# $Id: makefile,v 1.11 2003/11/14 17:13:15 weiden Exp $
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = yes
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = console
|
||||
|
||||
TARGET_NAME = bench-thread
|
||||
|
||||
TARGET_SDKLIBS = kernel32.a
|
||||
|
||||
TARGET_OBJECTS = $(TARGET_NAME).o
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
6
reactos/apps/tests/bitblt/.cvsignore
Normal file
6
reactos/apps/tests/bitblt/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
139
reactos/apps/tests/bitblt/bitblt.c
Normal file
139
reactos/apps/tests/bitblt/bitblt.c
Normal file
@@ -0,0 +1,139 @@
|
||||
|
||||
/*
|
||||
* Windows 2000 Graphics API Black Book
|
||||
* (BitBlt Bitmap Rendering Demo)
|
||||
*
|
||||
* Created by Damon Chandler <dmc27@ee.cornell.edu>
|
||||
* Updates can be downloaded at: <www.coriolis.com>
|
||||
*
|
||||
* Please do not hesistate to e-mail me at dmc27@ee.cornell.edu
|
||||
* if you have any questions about this code.
|
||||
*/
|
||||
|
||||
|
||||
#include <windows.h>
|
||||
#include <string.h>
|
||||
|
||||
HINSTANCE HInst;
|
||||
const char* WndClassName = "GMainWnd";
|
||||
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
||||
LPARAM LParam);
|
||||
|
||||
|
||||
int APIENTRY WinMain(HINSTANCE HInstance, HINSTANCE HPrevInstance,
|
||||
LPTSTR lpCmdLine, int nCmdShow)
|
||||
{
|
||||
WNDCLASS wc;
|
||||
MSG msg;
|
||||
|
||||
HInst = HInstance;
|
||||
|
||||
memset(&wc, 0, sizeof(WNDCLASS));
|
||||
|
||||
wc.style = CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS;
|
||||
wc.lpfnWndProc = MainWndProc;
|
||||
wc.hInstance = HInstance;
|
||||
wc.hCursor = LoadCursor(NULL, (LPCTSTR)IDC_ARROW);
|
||||
/* wc.hbrBackground = reinterpret_cast<HBRUSH>(COLOR_BTNFACE + 1); */
|
||||
wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
|
||||
wc.lpszClassName = WndClassName;
|
||||
|
||||
if (RegisterClass(&wc))
|
||||
{
|
||||
HWND HWnd =
|
||||
CreateWindow(
|
||||
WndClassName, TEXT("BitBlt Bitmap Rendering Demo"),
|
||||
WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION |
|
||||
WS_VISIBLE | WS_CLIPSIBLINGS,
|
||||
0, 0, 220, 230,
|
||||
NULL, NULL, HInst, NULL
|
||||
);
|
||||
|
||||
if (HWnd)
|
||||
{
|
||||
ShowWindow(HWnd, nCmdShow);
|
||||
UpdateWindow(HWnd);
|
||||
|
||||
while (GetMessage(&msg, NULL, 0, 0))
|
||||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* image related */
|
||||
BITMAP bmp;
|
||||
LPCSTR filename = TEXT("lena.bmp");
|
||||
HDC HMemDC = NULL;
|
||||
HBITMAP HOldBmp = NULL;
|
||||
|
||||
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
||||
LPARAM LParam)
|
||||
{
|
||||
switch (Msg)
|
||||
{
|
||||
case WM_CREATE:
|
||||
{
|
||||
/* create a memory DC */
|
||||
HMemDC = CreateCompatibleDC(NULL);
|
||||
if (HMemDC)
|
||||
{
|
||||
/* load a bitmap from file */
|
||||
HBITMAP HBmp =
|
||||
/* static_cast<HBITMAP> */(
|
||||
LoadImage(HInst, filename, IMAGE_BITMAP,
|
||||
0, 0, LR_LOADFROMFILE)
|
||||
);
|
||||
if (HBmp)
|
||||
{
|
||||
/* extract dimensions of the bitmap */
|
||||
GetObject(HBmp, sizeof(BITMAP), &bmp);
|
||||
|
||||
/* associate the bitmap with the memory DC */
|
||||
/* HOldBmp = static_cast<HBITMAP> */
|
||||
(SelectObject(HMemDC, HBmp)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
case WM_PAINT:
|
||||
{
|
||||
PAINTSTRUCT ps;
|
||||
const HDC Hdc = BeginPaint(HWnd, &ps);
|
||||
#if 0
|
||||
try
|
||||
#endif
|
||||
{
|
||||
|
||||
/* TODO: add palette support (see Chapter 9)... */
|
||||
|
||||
|
||||
BitBlt(Hdc, 20, 15,
|
||||
bmp.bmWidth, bmp.bmHeight,
|
||||
HMemDC, 0, 0,
|
||||
SRCCOPY);
|
||||
}
|
||||
#if 0
|
||||
catch (...)
|
||||
#endif
|
||||
{
|
||||
EndPaint(HWnd, &ps);
|
||||
}
|
||||
EndPaint(HWnd, &ps);
|
||||
break;
|
||||
}
|
||||
case WM_DESTROY:
|
||||
{
|
||||
/* clean up */
|
||||
DeleteObject(SelectObject(HMemDC, HOldBmp));
|
||||
DeleteDC(HMemDC);
|
||||
|
||||
PostQuitMessage(0);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return DefWindowProc(HWnd, Msg, WParam, LParam);
|
||||
}
|
BIN
reactos/apps/tests/bitblt/lena.bmp
Normal file
BIN
reactos/apps/tests/bitblt/lena.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 87 KiB |
22
reactos/apps/tests/bitblt/makefile
Normal file
22
reactos/apps/tests/bitblt/makefile
Normal file
@@ -0,0 +1,22 @@
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = yes
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = windows
|
||||
|
||||
TARGET_NAME = bitblt
|
||||
|
||||
TARGET_SDKLIBS = kernel32.a gdi32.a
|
||||
|
||||
TARGET_OBJECTS = $(TARGET_NAME).o
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror -D__USE_W32API
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
6
reactos/apps/tests/button/.cvsignore
Normal file
6
reactos/apps/tests/button/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
22
reactos/apps/tests/button/Makefile
Normal file
22
reactos/apps/tests/button/Makefile
Normal file
@@ -0,0 +1,22 @@
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = yes
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = windows
|
||||
|
||||
TARGET_NAME = btntest
|
||||
|
||||
TARGET_SDKLIBS = kernel32.a gdi32.a
|
||||
|
||||
TARGET_OBJECTS = buttontst.o
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
107
reactos/apps/tests/button/buttontst.c
Normal file
107
reactos/apps/tests/button/buttontst.c
Normal file
@@ -0,0 +1,107 @@
|
||||
/* Based on Radoslaw Sokol's static control test. */
|
||||
#include <windows.h>
|
||||
|
||||
static LPSTR BUTTON_CLASS = "BUTTON";
|
||||
static LPSTR TEST_WND_CLASS = "TESTWND";
|
||||
|
||||
#ifdef NDEBUG
|
||||
#define DPRINT(s) (void)0
|
||||
#else
|
||||
#define DPRINT(s) OutputDebugStringA("BUTTONTEST: " s "\n")
|
||||
#endif
|
||||
|
||||
HINSTANCE AppInstance = NULL;
|
||||
|
||||
LRESULT WmCreate(
|
||||
HWND Wnd)
|
||||
{
|
||||
DPRINT("WM_CREATE (enter).");
|
||||
DPRINT("test 1");
|
||||
CreateWindowEx(0, BUTTON_CLASS, "PushButton", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE,
|
||||
10, 10, 150, 30, Wnd, NULL, AppInstance, NULL);
|
||||
DPRINT("test 2");
|
||||
CreateWindowEx(0, BUTTON_CLASS, "DefPushButton", BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE,
|
||||
10, 40, 150, 30, Wnd, NULL, AppInstance, NULL);
|
||||
DPRINT("test 3");
|
||||
CreateWindowEx(0, BUTTON_CLASS, "AutoRadioButton", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE,
|
||||
10, 70, 150, 30, Wnd, NULL, AppInstance, NULL);
|
||||
DPRINT("test 4");
|
||||
CreateWindowEx(0, BUTTON_CLASS, "AutoCheckBox", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE,
|
||||
10, 100, 150, 30, Wnd, NULL, AppInstance, NULL);
|
||||
|
||||
DPRINT("WM_CREATE (leave).");
|
||||
return 0;
|
||||
}
|
||||
|
||||
LRESULT CALLBACK TestWndProc(
|
||||
HWND Wnd,
|
||||
UINT Msg,
|
||||
WPARAM wParam,
|
||||
LPARAM lParam)
|
||||
{
|
||||
switch (Msg) {
|
||||
case WM_CREATE:
|
||||
return WmCreate(Wnd);
|
||||
case WM_DESTROY:
|
||||
PostQuitMessage(0);
|
||||
return 0;
|
||||
default:
|
||||
return DefWindowProc(Wnd, Msg, wParam, lParam);
|
||||
}
|
||||
}
|
||||
|
||||
int STDCALL WinMain(
|
||||
HINSTANCE hInstance,
|
||||
HINSTANCE hPrevInstance,
|
||||
LPSTR lpCmdLine,
|
||||
int nShowCmd)
|
||||
{
|
||||
ATOM Result;
|
||||
MSG Msg;
|
||||
HWND MainWindow;
|
||||
WNDCLASSEX TestWndClass = {0};
|
||||
DPRINT("Application starting up.");
|
||||
// Remember instance handle.
|
||||
AppInstance = GetModuleHandle(NULL);
|
||||
// Register test window class.
|
||||
TestWndClass.cbSize = sizeof(WNDCLASSEX);
|
||||
TestWndClass.lpfnWndProc = &TestWndProc;
|
||||
TestWndClass.hInstance = AppInstance;
|
||||
TestWndClass.hCursor = LoadCursor(0, (LPCTSTR)IDC_ARROW);
|
||||
TestWndClass.hbrBackground = CreateSolidBrush(RGB(255,255,230));
|
||||
TestWndClass.lpszClassName = TEST_WND_CLASS;
|
||||
Result = RegisterClassEx(&TestWndClass);
|
||||
if (Result == 0) {
|
||||
DPRINT("Error registering class.");
|
||||
MessageBox(0, "Error registering test window class.",
|
||||
"Button control test", MB_ICONSTOP | MB_OK);
|
||||
ExitProcess(0);
|
||||
}
|
||||
// Create main window.
|
||||
DPRINT("Creating main window.");
|
||||
MainWindow = CreateWindowEx(WS_EX_APPWINDOW | WS_EX_CLIENTEDGE,
|
||||
TEST_WND_CLASS, "Button test",
|
||||
WS_OVERLAPPEDWINDOW, 50, 50, 180, 365,
|
||||
NULL, NULL, AppInstance, NULL);
|
||||
if (MainWindow == 0) {
|
||||
DPRINT("Error creating main window.");
|
||||
UnregisterClass(TEST_WND_CLASS, AppInstance);
|
||||
MessageBox(0, "Error creating test window.",
|
||||
"Static control test", MB_ICONSTOP | MB_OK);
|
||||
ExitProcess(0);
|
||||
}
|
||||
DPRINT("Showing main window.");
|
||||
ShowWindow(MainWindow, SW_SHOWNORMAL);
|
||||
UpdateWindow(MainWindow);
|
||||
// Run message loop.
|
||||
DPRINT("Entering message loop.");
|
||||
while (GetMessage(&Msg, NULL, 0, 0) > 0) {
|
||||
TranslateMessage(&Msg);
|
||||
DispatchMessage(&Msg);
|
||||
}
|
||||
// Unregister window class.
|
||||
UnregisterClass(TEST_WND_CLASS, AppInstance);
|
||||
DPRINT("Exiting.");
|
||||
|
||||
return Msg.wParam;
|
||||
}
|
6
reactos/apps/tests/button2/.cvsignore
Normal file
6
reactos/apps/tests/button2/.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
*.o
|
||||
*.d
|
||||
*.exe
|
||||
*.coff
|
||||
*.sym
|
||||
*.map
|
22
reactos/apps/tests/button2/Makefile
Normal file
22
reactos/apps/tests/button2/Makefile
Normal file
@@ -0,0 +1,22 @@
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_NORC = yes
|
||||
|
||||
TARGET_TYPE = program
|
||||
|
||||
TARGET_APPTYPE = windows
|
||||
|
||||
TARGET_NAME = btntest2
|
||||
|
||||
TARGET_SDKLIBS = kernel32.a gdi32.a
|
||||
|
||||
TARGET_OBJECTS = buttontst2.o
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
# EOF
|
219
reactos/apps/tests/button2/buttontst2.c
Normal file
219
reactos/apps/tests/button2/buttontst2.c
Normal file
@@ -0,0 +1,219 @@
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
|
||||
HFONT tf;
|
||||
LRESULT WINAPI MainWndProc(HWND, UINT, WPARAM, LPARAM);
|
||||
|
||||
int WINAPI
|
||||
WinMain(HINSTANCE hInstance,
|
||||
HINSTANCE hPrevInstance,
|
||||
LPSTR lpszCmdLine,
|
||||
int nCmdShow)
|
||||
{
|
||||
WNDCLASS wc;
|
||||
MSG msg;
|
||||
HWND hWnd;
|
||||
HWND hbtn[26];
|
||||
|
||||
wc.lpszClassName = "ButtonTest";
|
||||
wc.lpfnWndProc = MainWndProc;
|
||||
wc.style = CS_VREDRAW | CS_HREDRAW;
|
||||
wc.hInstance = hInstance;
|
||||
wc.hIcon = LoadIcon(NULL, (LPCTSTR)IDI_APPLICATION);
|
||||
wc.hCursor = LoadCursor(NULL, (LPCTSTR)IDC_ARROW);
|
||||
wc.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
|
||||
wc.lpszMenuName = NULL;
|
||||
wc.cbClsExtra = 0;
|
||||
wc.cbWndExtra = 0;
|
||||
if (RegisterClass(&wc) == 0)
|
||||
{
|
||||
fprintf(stderr, "RegisterClass failed (last error 0x%lX)\n",
|
||||
GetLastError());
|
||||
return(1);
|
||||
}
|
||||
|
||||
hWnd = CreateWindow("ButtonTest",
|
||||
"Button Test",
|
||||
WS_OVERLAPPEDWINDOW,
|
||||
0,
|
||||
0,
|
||||
CW_USEDEFAULT,
|
||||
CW_USEDEFAULT,
|
||||
NULL,
|
||||
NULL,
|
||||
hInstance,
|
||||
NULL);
|
||||
if (hWnd == NULL)
|
||||
{
|
||||
fprintf(stderr, "CreateWindow failed (last error 0x%lX)\n",
|
||||
GetLastError());
|
||||
return(1);
|
||||
}
|
||||
|
||||
tf = CreateFontA(14, 0, 0, TA_BASELINE, FW_NORMAL, FALSE, FALSE, FALSE,
|
||||
ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
|
||||
DEFAULT_QUALITY, FIXED_PITCH|FF_DONTCARE, "Timmons");
|
||||
|
||||
ShowWindow(hWnd, nCmdShow);
|
||||
|
||||
hbtn[0] = CreateWindow(
|
||||
"BUTTON","BS_DEFPUSHBUTTON",WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
|
||||
10, 10, 200, 40, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[1] = CreateWindow(
|
||||
"BUTTON","BS_3STATE",WS_VISIBLE | WS_CHILD | BS_3STATE,
|
||||
10, 60, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[2] = CreateWindow(
|
||||
"BUTTON","BS_AUTO3STATE",WS_VISIBLE | WS_CHILD | BS_AUTO3STATE,
|
||||
10, 90, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[3] = CreateWindow(
|
||||
"BUTTON","BS_AUTOCHECKBOX",WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
|
||||
10, 120, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[4] = CreateWindow(
|
||||
"BUTTON","BS_AUTORADIOBUTTON",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON,
|
||||
10, 150, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[5] = CreateWindow(
|
||||
"BUTTON","BS_CHECKBOX",WS_VISIBLE | WS_CHILD | BS_CHECKBOX,
|
||||
10, 180, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[6] = CreateWindow(
|
||||
"BUTTON","BS_GROUPBOX",WS_VISIBLE | WS_CHILD | BS_GROUPBOX,
|
||||
10, 210, 200, 80, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[7] = CreateWindow(
|
||||
"BUTTON","BS_PUSHBUTTON",WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,
|
||||
20, 230, 180, 30, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[8] = CreateWindow(
|
||||
"BUTTON","BS_RADIOBUTTON",WS_VISIBLE | WS_CHILD | BS_RADIOBUTTON,
|
||||
10, 300, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[9] = CreateWindow(
|
||||
"BUTTON","BS_AUTORADIOBUTTON",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON,
|
||||
220, 160, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[10] = CreateWindow(
|
||||
"BUTTON","BS_DEFPUSHBUTTON|BS_BOTTOM",WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON | BS_BOTTOM,
|
||||
220, 10, 250, 40, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[11] = CreateWindow(
|
||||
"BUTTON","BS_DEFPUSHBUTTON|BS_LEFT",WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON | BS_LEFT,
|
||||
480, 10, 250, 40, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[12] = CreateWindow(
|
||||
"BUTTON","BS_DEFPUSHBUTTON|BS_RIGHT|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON | BS_RIGHT |BS_MULTILINE,
|
||||
740, 10, 150, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[13] = CreateWindow(
|
||||
"BUTTON","BS_AUTORADIOBUTTON|BS_TOP",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | BS_TOP,
|
||||
220, 60, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
// Other Combinations
|
||||
|
||||
hbtn[14] = CreateWindow(
|
||||
"BUTTON","BS_AUTORADIOBUTTON|BS_BOTTOM|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | BS_BOTTOM | BS_MULTILINE,
|
||||
480, 60, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[15] = CreateWindow(
|
||||
"BUTTON","BS_AUTORADIOBUTTON|BS_LEFT",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | BS_LEFT,
|
||||
740, 80, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[16] = CreateWindow(
|
||||
"BUTTON","BS_AUTORADIOBUTTON|BS_RIGHT|BS_TOP",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | BS_RIGHT | BS_TOP,
|
||||
220, 130, 200, 20, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[17] = CreateWindow(
|
||||
"BUTTON","BS_AUTORADIOBUTTON|BS_TOP|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | BS_TOP| BS_MULTILINE,
|
||||
480, 130, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[18] = CreateWindow(
|
||||
"BUTTON","BS_AUTOCHECKBOX|BS_BOTTOM|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX | BS_BOTTOM | BS_MULTILINE,
|
||||
740, 130, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[19] = CreateWindow(
|
||||
"BUTTON","BS_AUTOCHECKBOX|BS_TOP|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE,
|
||||
480, 190, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[20] = CreateWindow(
|
||||
"BUTTON","BS_AUTOCHECKBOX|BS_LEFT|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX | BS_LEFT | BS_MULTILINE,
|
||||
220, 230, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[21] = CreateWindow(
|
||||
"BUTTON","BS_AUTOCHECKBOX|BS_RIGHT|BS_MULTILINE",WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX | BS_RIGHT | BS_MULTILINE,
|
||||
480, 240, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[22] = CreateWindow(
|
||||
"BUTTON","BS_GROUPBOX|BS_TOP",WS_VISIBLE | WS_CHILD | BS_GROUPBOX | BS_TOP,
|
||||
10, 340, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[23] = CreateWindow(
|
||||
"BUTTON","BS_GROUPBOX|BS_BOTTOM",WS_VISIBLE | WS_CHILD | BS_GROUPBOX | BS_BOTTOM,
|
||||
10, 410, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[24] = CreateWindow(
|
||||
"BUTTON","BS_GROUPBOXBOX|BS_LEFT",WS_VISIBLE | WS_CHILD | BS_GROUPBOX | BS_LEFT,
|
||||
520, 340, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
hbtn[25] = CreateWindow(
|
||||
"BUTTON","BS_GROUPBOX|BS_RIGHT|BS_BOTTOM",WS_VISIBLE | WS_CHILD | BS_GROUPBOX | BS_BOTTOM | BS_RIGHT,
|
||||
300, 340, 200, 60, hWnd, NULL, (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
|
||||
|
||||
while(GetMessage(&msg, NULL, 0, 0))
|
||||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
|
||||
DeleteObject(tf);
|
||||
|
||||
return msg.wParam;
|
||||
}
|
||||
|
||||
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
PAINTSTRUCT ps;
|
||||
HDC hDC;
|
||||
|
||||
switch(msg)
|
||||
{
|
||||
case WM_PAINT:
|
||||
hDC = BeginPaint(hWnd, &ps);
|
||||
SelectObject(hDC, tf);
|
||||
EndPaint(hWnd, &ps);
|
||||
break;
|
||||
|
||||
case WM_DESTROY:
|
||||
PostQuitMessage(0);
|
||||
break;
|
||||
|
||||
case WM_COMMAND:
|
||||
switch(HIWORD(wParam))
|
||||
{
|
||||
case BN_CLICKED:
|
||||
printf("BUTTON CLICKED !\n");
|
||||
break;
|
||||
case BN_DBLCLK:
|
||||
printf("BUTTON DOUBLE-CLICKED !\n");
|
||||
break;
|
||||
case BN_PUSHED:
|
||||
printf("BUTTON PUSHED !\n");
|
||||
break;
|
||||
case BN_PAINT:
|
||||
printf("BUTTON PAINTED !\n");
|
||||
break;
|
||||
case BN_UNPUSHED:
|
||||
printf("BUTTON UNPUSHED !\n");
|
||||
break;
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
return DefWindowProc(hWnd, msg, wParam, lParam);
|
||||
}
|
||||
return 0;
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user