Commit Graph

812 Commits

Author SHA1 Message Date
Marcus Meissner 8b150d6e5d On i686, report processor level 6. 2003-12-04 01:41:53 +00:00
Alexandre Julliard e9badbfb86 Converted locale setup to Unicode so that we don't use code pages
before they are initialized. Improved error reporting a bit.
2003-12-03 22:32:11 +00:00
Alexandre Julliard ccff458669 Revert change for handling user overrides as numbers and reimplement
it differently.
2003-12-03 20:28:10 +00:00
Alexandre Julliard 04ecca54a1 Use wine_server_release_fd() instead of close() everywhere we use
wine_server_handle_to_fd().
A few minor winsock cleanups.
2003-12-02 04:19:56 +00:00
Jon Griffiths d9339f83ec Fail GetCalendarInfoA for Unicode-only locales. 2003-12-01 22:47:28 +00:00
Jon Griffiths 87ae5ba84e Allow user overridden locale data to be retrieved as numbers. 2003-12-01 22:46:19 +00:00
Alexandre Julliard 402b79a1e8 Porting fixes. 2003-11-27 00:59:36 +00:00
Alexandre Julliard 77b8c0a42f NE_LoadBuiltinModule: return error 21 if the module we loaded was a
32-bit builtin. This should help WinExec16 to do the right thing.
2003-11-26 04:13:53 +00:00
Alexandre Julliard 9e73f55af3 Store the last error code at the TEB offset used by NT instead of the
Win9x one.
2003-11-25 01:53:23 +00:00
Eric Pouech ff0365290b Got rid of DRIVE_OpenDevice, and replaced it with Win32 equivalents. 2003-11-25 01:51:07 +00:00
Alexandre Julliard 16b4411669 Removed MODULE_GetLoadOrderA. 2003-11-25 01:03:04 +00:00
Dimitrie O. Paun c762f5d7af RtlHeapReAllocate() should not allocate memory.
Add small test to make sure it doesn't return.
Don't import ntdll for tests, we need to load it dynamically.
2003-11-25 01:02:02 +00:00
Alexandre Julliard 436eda3071 Removed task.h. 2003-11-25 00:42:26 +00:00
Jon Griffiths eff671ef0d Documentation updates 2003-11-25 00:08:46 +00:00
Alexandre Julliard c6d44be3e5 Create a huge array in bss to reserve the memory area we need for PE
binaries, to prevent exec shield from mapping system libraries there.
2003-11-22 00:08:26 +00:00
Dmitry Timoshkov 33f9dcb1f9 Move CompareString implementation to libwine_unicode, add a bunch of
CompareString tests.
2003-11-22 00:00:53 +00:00
Hans Leidekker af7e65b46d Account for the fact that the temporary directory may expand to a long
name.
2003-11-18 20:39:34 +00:00
Francois Gouget 6768ecb6c1 Scale the buffer sizes with MAX_LISTED_ENV_VAR.
Add a note about the limited buffer size used by the *Profile functions.
Fix a couple of spelling errors.
2003-11-18 19:38:51 +00:00
Alexandre Julliard a7ce2abc9d Removed include/selectors.h. 2003-11-18 00:16:25 +00:00
Alexandre Julliard 746d900b04 Force minimum stack size to 1Mb for Xlib. 2003-11-18 00:14:17 +00:00
Alexandre Julliard 204847e8f6 Use the wine_ldt_* functions directly in winedos instead of calling
SELECTOR_AllocBlock.
2003-11-18 00:06:15 +00:00
Alexandre Julliard d868549754 Moved toolhelp.h to dlls/kernel. 2003-11-17 20:49:45 +00:00
Alexandre Julliard f9be2f3d21 Removed some unnecessary includes. 2003-11-17 20:31:29 +00:00
Alexandre Julliard 464cc10419 Fixed regression in loading of builtin apps from the system dir when
the native doesn't exist.
2003-11-17 20:18:19 +00:00
Alexandre Julliard d3fb25cd0f Moved a few definitions used in only one source file out of module.h. 2003-11-17 20:16:38 +00:00
Alexandre Julliard 8fb98a41e0 Added wine_ldt_is_system() to replace the IS_SELECTOR_SYSTEM macro,
and stop exporting the WINE_LDT_FIRST_ENTRY constant.
2003-11-17 20:12:56 +00:00
Alexandre Julliard e983652363 Moved a number of DOS definitions out of the global headers and into
winedos private files. Removed the msdos.h header.
2003-11-15 00:13:20 +00:00
Alexandre Julliard 4044372596 Moved winedos loading functionality to dlls/kernel/instr.c and get rid
of msdos/dpmi.c.
2003-11-14 21:08:39 +00:00
Jon Griffiths 998cdd650a Fix a crash in GetLocaleInfo() when extra high bits are set. 2003-11-14 20:59:03 +00:00
Eric Pouech 8ca6cadab1 - moved the remaining of int21 calls to dlls/winedos
- disabled drive enabling/disabling as well as disk serial number
  writing (for DLL separation issues)
- added volume management prototypes to include/winbase.h
- started DefineDosDevice (needed by first item in this list)
- removed int21 specific code from dlls/kernel
2003-11-14 04:54:39 +00:00
Alexandre Julliard 55b51eabdf Removed instance.h and callback.h, moving their contents to
kernel_private.h.
2003-11-13 21:04:01 +00:00
Alexandre Julliard 7999469e7d Moved memory/environ.c, memory/virtual.c and misc/cpu.c to
dlls/kernel.
Get rid of the memory/ directory.
2003-11-13 20:58:55 +00:00
Alexandre Julliard daeccba704 Moved the exec_wine_binary function to the wine library, and use it to
exec the wineserver too.
2003-11-11 22:21:29 +00:00
Andreas Mohr 34ed04f1fa Don't include build number in GetVersion() for Win9x versions. 2003-11-11 22:00:14 +00:00
Alexandre Julliard 50fba7ffec Moved the remaining SYSDEPS_* functions to the wine_pthread interface.
Let the pthread library allocate the stack itself.
2003-11-09 01:25:23 +00:00
Francois Gouget ed27249038 Fixed buffer overflow.
Fixed two -Wwrite-strings warnings (but there are more).
2003-11-09 00:30:36 +00:00
Alexandre Julliard b9efd4afcb Moved loader/module.c to dlls/kernel. 2003-11-06 01:09:58 +00:00
Alexandre Julliard 8574412e1e Added wine_pthread_create_thread and wine_pthread_exit_thread to the
pthread support, and removed the corresponding SYSDEPS functions.
Moved stack allocation for new threads to wine_pthread_create_thread
to allow more flexibility.
2003-11-05 23:31:11 +00:00
Alexandre Julliard 063cff8686 Use the signal stack pointer to determine the current thread.
Converted the SIGUSR2 handler to use setup_exception (probably still
not working properly).
2003-11-05 00:52:29 +00:00
Alexandre Julliard 47f62a402a Set %fs and %gs in the register context to their current value when
calling 16-bit code.
2003-11-05 00:46:44 +00:00
Alexandre Julliard 7924f421e9 Allocate the TEB and signal stack separately from the main stack.
Dynamically allocate the initial TEB too so that it is properly
page-aligned.
2003-11-04 04:50:18 +00:00
Mike McCormack 7e1f38034c Stubs for job control. 2003-11-03 22:12:15 +00:00
Dmitry Timoshkov 99e3e6f88b Replace 28591 by 28605 (euro) for appropriate locales. 2003-10-31 03:40:08 +00:00
Alexandre Julliard 7370f60120 Implemented RtlCreateUserThread, and use it to move thread creation to
ntdll.
2003-10-31 00:16:20 +00:00
Mike McCormack 0b28472010 Added a test for mailslots. 2003-10-30 23:24:12 +00:00
Mike McCormack c854f9eba8 Return more sane mailslot error values. 2003-10-30 23:08:23 +00:00
Mike McCormack 6a83224eb3 Fix incorrectly sized buffer. 2003-10-30 23:06:10 +00:00
Alexandre Julliard 59022e5818 Restored emulation of protected instructions in 32-bit code when
running with a Win9x version.
2003-10-28 21:57:24 +00:00
Francois Gouget f405629e8e Weekly spelling fixes. 2003-10-28 21:45:30 +00:00
Alexandre Julliard 54b1d87daf Implemented Add/RemoveVectoredExceptionHandler. 2003-10-28 21:22:50 +00:00
Uwe Bonnes 143f075335 FormatMessageW: Allocate anough space. 2003-10-28 21:09:32 +00:00
Alexandre Julliard 55f2dac059 Fixed typo that broke handling of .com and .bat files. 2003-10-28 00:31:52 +00:00
Shachar Shemesh 9f42d25134 Updated Hebrew resources. 2003-10-27 22:02:06 +00:00
Alexandre Julliard 2e4f0bc9ba Use sigsetjmp instead of setjmp in Wine internal exception handlers to
make sure the signal mask is restored properly.
2003-10-24 04:30:13 +00:00
Alexandre Julliard f9df57d94d Call the application entry point from kernel32, some apps depend on
that.
2003-10-24 00:32:36 +00:00
Jon Griffiths 13a5d6e627 Added tests for FoldStringA/W. 2003-10-24 00:26:18 +00:00
Jon Griffiths 4938f6b993 Implemented FoldStringA (using W version).
Documentation updates.
2003-10-24 00:24:46 +00:00
Alexandre Julliard 8824c38e9e Simplified signal stack allocation a bit, and avoid allocating it on
non-i386 platforms.
2003-10-22 03:26:53 +00:00
Ferenc Wagner 4b28f0f9c6 Account for unique NT4 behaviour.
Better error message.
2003-10-21 23:42:50 +00:00
Alexandre Julliard 2aa8a8390a Replaced a few more 0xffffffff by the appropriate constants. 2003-10-16 19:31:11 +00:00
Alexandre Julliard bbc5242fbc Fixed handling of relay and snoop include/exclude lists to behave as
documented (based on a patch by Rein Klazes).
2003-10-16 00:24:49 +00:00
Alexandre Julliard 8f751bcb40 Print thread id in snoop traces. 2003-10-16 00:23:51 +00:00
Jon Griffiths 8c4ef67452 Implemented FoldStringW. 2003-10-15 20:57:49 +00:00
Alexandre Julliard 49a0224fb3 Get rid of the drive codepages and use CP_UNIXCP instead. 2003-10-15 03:47:53 +00:00
Alexandre Julliard a3c45689b4 Moved codepage functions to dlls/kernel.
Changed initialisation of the locale functions so that CP_UNIXCP works
as soon as possible during kernel32 init.
2003-10-14 05:32:30 +00:00
Oleg Prokhorov de12a97041 Another portion of HeapReAlloc fixes. 2003-10-14 05:24:20 +00:00
Jukka Heinonen 46f29944c3 Remove races from DPMI async event handling. 2003-10-14 05:20:34 +00:00
Alexandre Julliard e55d5937ac Set or clear the BeingDebugged flag in the PEB when a debugger is
attached to or detached from a process.
Don't send exception events to the server unless a debugger is
present.
2003-10-14 01:30:42 +00:00
Alexandre Julliard 0b1a82aa5e Added check for pthread.h (reported by Steven Edwards).
Removed init_done check, the process heap is now created before kernel
is loaded anyway.
2003-10-14 01:27:31 +00:00
Alexandre Julliard aff0343da5 Update __wine_main_argc after option processing. 2003-10-11 05:26:31 +00:00
Dimitrie O. Paun fbdfd910c1 Remove SYMBOLFILE and LDDLLFLAGS from Makefiles. 2003-10-11 01:09:15 +00:00
Alexandre Julliard a6ed49ade3 Don't reference the environ global variable from kernel32, it may fail
to link (reported by Gerald Pfeifer).
2003-10-10 23:33:21 +00:00
Alexandre Julliard 7196724ad0 We can now use the standard DllMain as entry point. 2003-10-10 00:50:56 +00:00
Alexandre Julliard 21066d0d44 Link kernel32 as a normal dll. 2003-10-10 00:23:47 +00:00
Alexandre Julliard 410e6b7b39 Changed the init code to make libwine load only ntdll and transfer
control to it, and then have ntdll load kernel32 using the normal
loader mechanisms.
Get rid of BUILTIN32_LoadExeModule.
2003-10-10 00:12:17 +00:00
Alexandre Julliard 5cb5aa6346 Use the Rtl bitmap functions to implement Tls allocation.
Get rid of the PDB structure.
2003-10-09 19:58:56 +00:00
Alexandre Julliard 30b588955a We need to initialize the relay debug lists for +snoop too. 2003-10-09 19:52:23 +00:00
Oleg Prokhorov 947c61e4f7 Avoid HeapReAlloc of a NULL pointer. 2003-10-09 19:49:05 +00:00
Mike McCormack c06bcc110f Stub implementations for some functions related to RegisterWait. 2003-10-09 19:46:43 +00:00
Alexandre Julliard 20e73d739a Moved the constructor for the initial TEB to ntdll so that it runs as
early as possible on startup.
2003-10-09 04:59:03 +00:00
Alexandre Julliard 67d9f38059 Added __wine_set_signal_fs function to avoid sharing the
SYSLEVEL_Win16CurrentTeb variable between kernel and ntdll.
On the kernel side, replaced SYSLEVEL_Win16CurrentTeb by
CallTo16_TebSelector stored directly in the asm relay code to avoid a
run-time relocation.
2003-10-08 22:59:22 +00:00
Alexandre Julliard 2de67b8428 Duplicate parts of the relay debugging init code into kernel to avoid
referencing ntdll internal symbols.
2003-10-08 22:41:12 +00:00
Alexandre Julliard 0de2fde550 Moved build_command_line back to kernel and make it handle Unicode
properly.
2003-10-08 22:38:52 +00:00
Alexandre Julliard 687ecfa312 Moved a few more functions to the dlls/kernel directory. 2003-10-08 04:24:49 +00:00
Alexandre Julliard b81d9e7cf4 Link all remaining files that contain kernel APIs into kernel32.dll
instead of ntdll.dll. Removed a number of no longer needed files.
2003-10-08 03:57:02 +00:00
Alexandre Julliard 953849f2fc Added hack to call CreateFileW through a pointer so that we don't need
to link to kernel functions.
Commented out SMB support in NtReadFile for now.
2003-10-08 03:51:31 +00:00
Alexandre Julliard 87ae825bf8 Get rid of the argv0 and full_argv0 global variables. 2003-10-08 00:45:01 +00:00
Alexandre Julliard 632676b17e Moved the final process init and dependency loading to
dlls/ntdll/loader.c, (ab)using the LdrInitializeThunk entry point.
2003-10-06 21:18:51 +00:00
Jon Griffiths bdcc0e3619 Implemented GetCPInfoExA/W.
Documentation updates.
2003-10-06 21:07:06 +00:00
Alexandre Julliard 841f898663 Converted process creation to Unicode. 2003-10-04 04:09:41 +00:00
Jukka Heinonen d2936e6ab0 Reboot (int19) under DOS now does ExitProcess.
Made BIOS reboot vector call int19.
2003-10-04 03:06:18 +00:00
Alexandre Julliard 4137aecaa5 Changed LdrLoadDll to only search for the dll in the specified path,
using ntdll functions.
Moved LOAD_WITH_ALTERED_SEARCH_PATH functionality to LoadLibraryEx
where it belongs.
2003-10-02 04:58:49 +00:00
Jon Griffiths 4c1fa161a3 Documentation updates. 2003-10-01 03:20:21 +00:00
Mike McCormack bdfb12c0df Stubs for Get/SetUserGeoID(). 2003-10-01 03:12:02 +00:00
Alexandre Julliard c30cefb2d5 Store module names in Unicode in the server. 2003-09-30 01:04:19 +00:00
Daniel Marmier a613de2a22 Use #ifdef instead of #if for all feature tests.
Check that _MSC_VER is defined before using it.
2003-09-30 00:33:47 +00:00
Robert Shearman e05044a98d Set version of kernel32 to Windows 2000 SP4. 2003-09-30 00:21:31 +00:00
Alexandre Julliard f80b869939 Converted most of the loader code to Unicode. 2003-09-29 20:42:24 +00:00
Francois Gouget 224063f033 Some spelling fixes.
Fix the case of WineHQ.
2003-09-29 20:20:53 +00:00
Alexandre Julliard 1cb92bbeec Converted the load order code to use Unicode throughout. 2003-09-27 03:50:40 +00:00
Alexandre Julliard fd47c8a647 Renamed comm.dll, display.dll, keyboard.dll and mouse.dll to use the
.drv extension.
2003-09-27 02:32:53 +00:00
Dimitrie O. Paun 8b255842ec Remove the obsolete pascal16 (replaced by pascal -ret16). 2003-09-26 04:32:19 +00:00
Alexandre Julliard 2052538a47 Moved loadorder support to dlls/ntdll.
Removed the --dll option and replaced it by the WINEDLLOVERRIDES
environment variable.
2003-09-25 20:33:41 +00:00
Jon Griffiths 90535ce905 Various test fixes for XP/msvc. 2003-09-25 20:29:40 +00:00
Alexandre Julliard 16cd86197a Moved DLLFLAGS to a separate variable instead of including it in
DEFS.
2003-09-24 19:01:44 +00:00
Jon Griffiths 14b215a478 More locale tests. 2003-09-24 18:52:39 +00:00
Jon Griffiths f333510af2 Add LanguageGroup/GeoID enumeration fns.
Add some reg entries from XP.
SetLocaleInfo(): Set 2 I-values from S-values.
Optimise code size, fix a few bugs, documentation.
2003-09-24 18:51:22 +00:00
Alexandre Julliard 240b0a9b48 Moved the Windows version code to dlls/ntdll, and implemented
RtlGetVersion and RtlVerifyVersionInfo.
Moved the 16-bit and DOS version support to dlls/kernel.
2003-09-24 05:26:00 +00:00
Alexandre Julliard 3bff2b3c9c Authors: Juraj Hercek <juraj@syncad.com>, Eric Frias <efrias@syncad.com>
Implemented pthread conditions.
2003-09-23 22:59:44 +00:00
Alexandre Julliard a37e7608c7 Moved 32-bit relay and snoop support to dlls/ntdll. 2003-09-19 04:32:39 +00:00
Alexandre Julliard 97ad311e71 Moved the 32-bit builtin loader and the remaining bits of the PE
loader into dlls/ntdll/loader.c.
2003-09-19 04:04:57 +00:00
Eric Pouech c3e6c095e1 Implemented kernel32.GetIoProcessCounters and stubbed
ntdll.NtQueryProcessInformation(ProcessIoCounters).
2003-09-19 00:06:45 +00:00
Eric Pouech 4df100cda6 By default, console handles are inheritable. 2003-09-19 00:05:18 +00:00
Alexandre Julliard 52f692fb9b Moved the wine server client-side support to dlls/ntdll. Removed a
couple of unnecessary functions.
2003-09-18 23:27:19 +00:00
Alexandre Julliard ba71316172 Moved a couple more functions to dlls/kernel. 2003-09-18 20:59:54 +00:00
Alexandre Julliard ec39821750 Moved 16-bit global heap, DOS memory and selector functions to
dlls/kernel.
2003-09-18 20:58:41 +00:00
Eric Pouech e69ef68fc2 Set default StdError to fd 2 (was on 1). 2003-09-18 20:54:32 +00:00
Alexandre Julliard bff860c4b1 Moved synchronization and syslevel routines to dlls/kernel. 2003-09-18 04:39:13 +00:00
Alexandre Julliard 8db8368ee7 Keep the file handle of 16-bit modules open while the module is
loaded. This makes it possible to remove the InstallShield hack in
OpenFile16.
Moved LoadLibrary32_16 to kernel.
2003-09-18 04:35:34 +00:00
Alexandre Julliard 0f01858228 Moved the 16-bit environment support to dlls/kernel. 2003-09-18 04:28:22 +00:00
Alexandre Julliard 2ac34461ad Reimplemented the 16-bit FindFirstFile, FindNextFile and FindClose
functions on top of their 32-bit counterpart, and moved them to
dlls/kernel.
2003-09-18 04:25:31 +00:00
Alexandre Julliard dccbbcd5d5 Link msdos/int21.c into kernel for now, until it is properly moved to
winedos.
2003-09-18 00:58:48 +00:00
Alexandre Julliard 9146e68b43 Moved VxDCall support to dlls/kernel. 2003-09-18 00:06:02 +00:00
Alexandre Julliard 9eb1d2c7fa Moved I/O port handling to dlls/winedos. 2003-09-17 22:45:46 +00:00
Jon Griffiths ab58bf179b More tests for kernel NLS functions.
Use LOCALE_NOUSEROVERRIDE where appropriate.
2003-09-17 22:40:07 +00:00
Jon Griffiths 31f1a801a7 Re-implement and optimise the NLS formatting functions (many fixes).
Documentation updates.
2003-09-17 22:39:51 +00:00
Alexandre Julliard add0c5850b Use WOWCallback16Ex to switch to vm86 mode so that we can setup a
proper exception handler and handle instruction emulation.
2003-09-17 20:23:33 +00:00
Igor Stepin f638678830 Added a lot of Russian translations. 2003-09-17 20:08:20 +00:00
Jon Griffiths 69d157b2b7 Documentation updates. 2003-09-17 20:05:03 +00:00
Alexandre Julliard aaf3503ea5 Moved almost all remaining process, thread, fiber and exception
functions to dlls/kernel.
2003-09-17 05:31:32 +00:00
Alexandre Julliard 1479aebda3 Moved instruction emulation to dlls/kernel. 2003-09-17 04:34:31 +00:00
Rolf Kalbermatter fddc4ec7b4 Fix another error under Win9x (hopefully). 2003-09-17 04:18:09 +00:00
Alexandre Julliard f3a35766db More robust detection of charset names. 2003-09-16 20:38:33 +00:00
Alexandre Julliard 65e7196fed Moved most kernel string functions to dlls/kernel. 2003-09-16 20:35:42 +00:00
Alexandre Julliard 0f170015f1 Moved most 32-bit heap functions to dlls/kernel. 2003-09-16 20:34:14 +00:00
Alex Pasadyn 33854afbe0 - Use HeapAlloc instead of GlobalAlloc in FindNextFile.
- Add test for FindNextFile that checks last error value.
2003-09-16 01:22:05 +00:00
Rolf Kalbermatter d4f1381154 Added a few todo_wine tests with filenames with wildcards. 2003-09-16 01:19:21 +00:00
Rolf Kalbermatter 55bcaec4f4 Remove <ntstatus.h> to allow compilation with MS PSDK headers. 2003-09-16 01:18:53 +00:00
Mike McCormack b2b2c4794b Move the mailslot stubs into the dlls/kernel directory. 2003-09-15 22:07:50 +00:00
Alexandre Julliard 31292ff4e0 Remove generated assembly code on make clean. 2003-09-15 20:15:05 +00:00
Kevin Groeneveld 4981619784 - Fix small bug with parsing of numbers in BuildCommDCB functions.
- Add conformance test for BuildCommDCB functions.
2003-09-15 20:00:54 +00:00
Kevin Groeneveld 8be51c92e4 Add missing wReserved1 member to DCB structure definition.
Fix several bugs in BuildCommDCBAndTimeouts:
- make sure LPCSTR parameter is really treated as constant
- fix possible buffer overflow if passed in string is too long
- if the device control string is invalid, do not modify DCB
- do not clear entire DCB, only modify appropriate members
- fix parsing of stop bits parameter so it works for 1 and 1.5
- populate COMMTIMEOUTS when to=xxx parameter is specified
- added support for xon, odsr, octs, dtr, rts, and idsr parameters
- fix several other parsing errors
2003-09-12 00:26:15 +00:00
Geoff Thorpe 7701dea1cd Added a stub for Heap32ListFirst. 2003-09-11 03:00:11 +00:00
Francois Gouget 68ea3623b8 Modify winetest_ok to only add a trailing '\n' if there is none.
Modify macros in the kernel, oleaut32 and user tests to print a '\n'.
2003-09-11 01:07:19 +00:00
Alexandre Julliard cf52644a1c Removed the A/W constants for builtin cursors, icons and resource
types since they don't exist on Windows, and added typecasts
everywhere instead.
2003-09-10 03:56:47 +00:00
Francois Gouget ae50013017 Fix the case of product and company names. 2003-09-08 19:38:45 +00:00
Alexandre Julliard e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Alexandre Julliard 80e34dbb66 Moved the implementation of the pthread wrappers to dlls/kernel. 2003-09-03 00:26:08 +00:00
Juan Lang c435c29339 Fix FormatMessage when FORMAT_MESSAGE_FROM_HMODULE is specified and
lpSource is NULL.  Make indenting consistent too.
2003-09-02 00:53:46 +00:00
Alexandre Julliard 3c80bb1443 Don't strip the path in LoadModule16 before we have opened the file
(reported by Jukka Heinonen).
2003-09-01 23:56:39 +00:00