Compare commits

...

4800 Commits

Author SHA1 Message Date
Alex Ionescu
d9f77f47b6 Merge 15540:15610
svn path=/branches/new_headers/; revision=15611
2005-05-28 20:41:55 +00:00
Magnus Olsen
a8575f00b3 check see if the fix have alread be done
fix secon time right unix case

svn path=/trunk/; revision=15610
2005-05-28 20:21:07 +00:00
Martin Fuchs
da712a816d fix unix build
svn path=/trunk/; revision=15609
2005-05-28 20:07:55 +00:00
Martin Fuchs
8262f1f8b1 remove duplicate file
svn path=/trunk/; revision=15608
2005-05-28 20:06:29 +00:00
Casper Hornstrup
a17b3fbff0 Remove unneeded files
svn path=/trunk/; revision=15607
2005-05-28 19:47:04 +00:00
Filip Navara
078f2e9f5f Fix a warning.
svn path=/trunk/; revision=15606
2005-05-28 19:38:54 +00:00
Casper Hornstrup
d11c96fa89 Add example of how to find the prefix
svn path=/trunk/; revision=15605
2005-05-28 19:38:17 +00:00
Casper Hornstrup
f4ad6d109c Use detected prefix
svn path=/trunk/; revision=15604
2005-05-28 19:35:23 +00:00
Filip Navara
080f82f9b4 Fix a few warnings...
svn path=/trunk/; revision=15603
2005-05-28 19:33:26 +00:00
Magnus Olsen
370ff8fa5f fix linux build
svn path=/trunk/; revision=15602
2005-05-28 19:24:13 +00:00
Filip Navara
b7166fefeb Define __NO_CTYPE_INLINES.
svn path=/trunk/; revision=15600
2005-05-28 18:45:55 +00:00
Casper Hornstrup
8d5843e406 -mi switch for rbuild to not have rbuild create install directories.
svn path=/trunk/; revision=15599
2005-05-28 18:43:25 +00:00
Magnus Olsen
ec7a4788aa fix compiling error
services\umpnpmgr\umpnpmgr.c:43:1: "DBG" redefined
<command line>:5:1: this is the location of the previous definition
make3: *** [obj-i386\services\umpnpmgr\umpnpmgr.o] Error 1

svn path=/trunk/; revision=15598
2005-05-28 18:13:11 +00:00
Casper Hornstrup
a330b25482 Correct documentation for ROS_PREFIX. Spotted by Sylvain Petreolle [spetreolle@yahoo.fr].
svn path=/trunk/; revision=15597
2005-05-28 18:10:26 +00:00
Hervé Poussineau
9d3eed8967 Use C99 syntax instead of C89 syntax because some compilers are not smart enough to detect and remove dead code
svn path=/trunk/; revision=15596
2005-05-28 17:45:01 +00:00
Martin Fuchs
60f7fbe06e fix pattern matching
svn path=/trunk/; revision=15595
2005-05-28 17:35:08 +00:00
Alex Ionescu
7717d6cb1a build acpi with w32api
svn path=/trunk/; revision=15594
2005-05-28 17:23:33 +00:00
Alex Ionescu
cd37d4427a Put dbg=1 as default again
svn path=/trunk/; revision=15593
2005-05-28 17:17:27 +00:00
Martin Fuchs
ee52bbdc1b implement file filtering (matching file name patterns and file types)
svn path=/trunk/; revision=15592
2005-05-28 17:13:56 +00:00
Casper Hornstrup
4828e6eaa4 Add depends target as suggested by Martin Fuchs
svn path=/trunk/; revision=15591
2005-05-28 16:51:42 +00:00
Filip Navara
cec1358fb1 Remove "assert" macro.
svn path=/trunk/; revision=15590
2005-05-28 16:47:15 +00:00
Alex Ionescu
c5d7317110 Build with optimizations
svn path=/trunk/; revision=15589
2005-05-28 16:43:25 +00:00
Alex Ionescu
0173e06e40 Build with optimizations
svn path=/trunk/; revision=15588
2005-05-28 16:42:50 +00:00
Alex Ionescu
bc13deab3b fix verbose setting
svn path=/trunk/; revision=15587
2005-05-28 16:34:23 +00:00
Casper Hornstrup
a9702af5a0 Support install target in proxy
svn path=/trunk/; revision=15586
2005-05-28 16:12:46 +00:00
Alex Ionescu
ae5e4b8581 Fix packet lib so it builds
svn path=/trunk/; revision=15585
2005-05-28 15:50:30 +00:00
KJK::Hyperion
28d278bd08 Workaround for GCC inline assembly bug, hopefully fixed for good. Builds for me in both checked and free
Bug details and status here: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10153


svn path=/trunk/; revision=15584
2005-05-28 15:41:09 +00:00
Casper Hornstrup
2990d277fb Merge 12735:15568 from xmlbuildsystem branch
svn path=/trunk/; revision=15583
2005-05-28 15:18:30 +00:00
Gé van Geldorp
f9ef57f5f1 Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
- Comment out stub WEP entry points so that we can call WEP for builtin
  dlls too.
- Removed unnecessary code in the 16-bit DllEntryPoint function of some
  dlls, and also fixed its ordinal in a few places.
Hans Leidekker <hans@it.vu.nl>
- Stub implementation for SetupCopyOEMInfW.
Ivan Leo Puoti <ivanleo@gmail.com>
- Minor fix in SetupQueueCopySectionW.

svn path=/trunk/; revision=15582
2005-05-28 15:14:29 +00:00
Gé van Geldorp
020f1fc22b Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Provide minimal API documentation in advapi/eventlog.c to silence some
  winapi_check output.
- Move around functions in riched20, richedit and rpcrt4 to achieve the
  same goal.
Robert Shearman <rob@codeweavers.com>
- Fix RpcServerListen so that it doesn't return
  RPC_S_ALREADY_LISTENING when the only interfaces it is listening on
  are auto listens.
- Only synchronize with server thread when necessary and move this
  into RpcMgmtWaitServerListen.
Francois Gouget <fgouget@free.fr>
- Tweak the API documentation to silence winapi_check warnings.
Hartmut Birr <hartmut.birr@gmx.de>
- Clean up if named pipe is not available.
  (merge back from WineHQ)

svn path=/trunk/; revision=15581
2005-05-28 15:04:47 +00:00
Hervé Poussineau
98b2118f6b Activate NtGdiRealizePalette code and minor fixes
by Greatlord

svn path=/trunk/; revision=15580
2005-05-28 14:56:02 +00:00
Gé van Geldorp
0474d63d02 Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Provide minimal API documentation in advapi/eventlog.c to silence some
  winapi_check output.
- Move around functions in riched20, richedit and rpcrt4 to achieve the
  same goal.

svn path=/trunk/; revision=15579
2005-05-28 14:42:07 +00:00
Gé van Geldorp
9a3e5b9dad Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Ivan Leo Puoti <ivanleo@gmail.com>
- Fix crash in ME_GetRunSizeCommon(). Turn a FIXME into a TRACE.
Michael Stefaniuc <mstefani@redhat.de>
- Change an assert to a WARN.
Hannu Valtonen <Hannu.Valtonen@hut.fi>
- Use correct background color for the whole richedit control.
- Implement EM_LINESCROLL message handling
- Fix a problem with scrolling over the end of the text in
  WM_WHEELMOUSE.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Provide minimal API documentation in advapi/eventlog.c to silence some
  winapi_check output.
- Move around functions in riched20, richedit and rpcrt4 to achieve the
  same goal.
Krzysztof Foltman <wdev@foltman.com>
- Added stubs for a couple of missing 2.0 and 3.0 messages.
Phil Krylov <phil@newstar.rinet.ru>
- Fixed an error in my previous commit which caused an infinite loop in
  IE6 installer.

svn path=/trunk/; revision=15578
2005-05-28 14:40:26 +00:00
Magnus Olsen
8264539518 Implement NtGdiAnimatePalette (partly ripped from Wine)
by hpussin

svn path=/trunk/; revision=15577
2005-05-28 12:43:26 +00:00
Maarten Bosma
6cb9982a26 discription of the lists
svn path=/trunk/; revision=15576
2005-05-28 12:15:11 +00:00
Filip Navara
c5fc491484 There's no point in keeping two almost identical packet drivers in the SVN.
svn path=/trunk/; revision=15575
2005-05-28 11:38:11 +00:00
Filip Navara
f48663be6d Bye, bye "include/net/" directory...
svn path=/trunk/; revision=15574
2005-05-28 11:34:33 +00:00
Filip Navara
6b4900eb87 - Move LAN headers out of main include directory.
- Add few missing functions to ndis.h.

svn path=/trunk/; revision=15573
2005-05-28 11:30:26 +00:00
Filip Navara
9087951c85 Remove old NDIS headers.
svn path=/trunk/; revision=15572
2005-05-28 11:15:08 +00:00
Filip Navara
36043fe728 Cleanup AFD headers a bit.
svn path=/trunk/; revision=15571
2005-05-28 11:10:27 +00:00
Filip Navara
72742963f5 Use W32API.
svn path=/trunk/; revision=15570
2005-05-28 11:09:53 +00:00
Filip Navara
827234d64e Use W32API.
svn path=/trunk/; revision=15569
2005-05-28 11:09:34 +00:00
Casper Hornstrup
61768ec813 Add missing separators to RBUILD_XXX_OUT variables.
Patch by Mike Lerwill [mlist@ml-solutions.co.uk]


svn path=/branches/xmlbuildsystem/; revision=15568
2005-05-28 10:41:13 +00:00
Maarten Bosma
e550f533e4 !say
svn path=/trunk/; revision=15567
2005-05-28 10:23:48 +00:00
Gé van Geldorp
1768f9ec6b Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Robert Shearman <rob@codeweavers.com>
- Rename MODULENAME_Dll* functions to Dll* for better consistency and
  type checking.

svn path=/trunk/; revision=15566
2005-05-28 09:38:59 +00:00
Maarten Bosma
02c5fdf8d3 ArchBackmann readme. Allmost the same as http://reactos.com/wiki/index.php/ArchBlackmann
svn path=/trunk/; revision=15565
2005-05-28 09:38:28 +00:00
Gé van Geldorp
4b5e84217d Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Use SUBLANG_NEUTRAL for French resources.

svn path=/trunk/; revision=15564
2005-05-28 09:37:01 +00:00
Gé van Geldorp
873d2a6ee8 Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Michael Stefaniuc <mstefani@redhat.de>
- Reimplement VarMul(). It can multiply now all variants that the native
  (WinXP) function supports too.
- Fix VariantChangeType: calls to VarDecFromCy and VarDecFromDisp had
  source and destination swapped.
Richard Cohen <richard@daijobu.co.uk>
- Remove unused macro.
- Check for VT_I8 before testing it.
- VarMod returns DISP_E_OVERFLOW not E_INVALIDARG.
Robert Shearman <rob@codeweavers.com>
- Use I_RpcGetBuffer instead of HeapReAlloc for getting the Buffer
  memory.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Use SUBLANG_NEUTRAL for French resources.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Fix leftover negative sign in height parameter for transparent
  bitmap.
- Properly announce whether bitmap is transparent in get_Attributes.
- GIF transparency is now palette-index based, instead of RGB based.
- Keep original bitmap and XOR mask separate, so that get_Handle
  returns original bitmap.

svn path=/trunk/; revision=15563
2005-05-28 09:35:29 +00:00
Gé van Geldorp
8eff322fdd Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
- Removed unnecessary code in the 16-bit DllEntryPoint function of some
  dlls, and also fixed its ordinal in a few places.
- Comment out stub WEP entry points so that we can call WEP for builtin
  dlls too.
Juan Lang <juan_lang@yahoo.com>
- Obvious fixes to PropVariantClear and PropVariantCopy for vector
  types.
- Add a comment, and a no-op cleanup.
- Differentiate between version 0 and version 1 property storages.
- Store property names in the code page of the property set.
- maintain proper byte order
- maintain PROPSETFLAG_ANSI flag based on codepage
- update comments
- Correct/improve error checking in IPropertyStorage.
- convert strings between property storage's code page and system code
  page
- add tests for setting code page
- fix tests and behavior to match WinXP
- Define and use endian conversion macros for big-endian machines.
Marcus Meissner <marcus@jet.franken.de>
- Move the Dll init function to compobj.c to avoid having global
  variables. Remove need of ole32_main.h.
- Make HGLOBALStream_* functions static.
- Make _xmalloc16() static.
- Staticify FTMarshalImpl definition.
Francois Gouget <fgouget@free.fr>
- Specify the proper call convention in the PropSysFreeString()
  implementation.
- Tweak the API documentation to silence winapi_check warnings.
Robert Shearman <rob@codeweavers.com>
- Add error messages on failure in file moniker load function.
- Fix incorrect pointer check in both monikers.
- Fix max size calculation of item moniker to match native.
- Add a generic moniker marshaler that works by saving & loading
  monikers to & from the stream.
- Use the generic moniker marshal in the file & item monikers and add
  a class factory for each.
- Implement IROTData::GetComparisonData for file & item monikers.
- Add a useful trace message.
- Fix more places where custom header size was calculated exclusive of
  the data size member.
- Optimize custom marshaling by getting size before calling the custom
  marshaler so we can write the header before and not use a second
  stream.
- Change remaining blocks of code with 2-space indentation to 4-space
  indentation.
- Make vtables const.
- Remove an unnecessary memcpy and let the compiler do the work.
- Write custom header up to and including size, not excluding.
- Add a stub implementation of CoIsHandlerConnected.
- Marshal objects & monikers into the ROT.
- Test for this behaviour.
Mike McCormack <mike@codeweavers.com>
- Remove unnecessary declarations and make functions static.
- Remove forward declarations.
- Make sure a stream can't be created in read only storage.
- Fix a memory leak in the ole storage implementation.
- Remove function prototypes.
Kevin Koltzau <kevin@plop.org>
- Implement Hash function on composite moniker.
Jeff Latimer <jeffl@defcen.gov.au>
- Implement the IEnumMoniker interface for the ROT and provide tests to
  exercise the interface.
Pierre d'Herbemont <stegefin@free.fr>
- Big Endian specific code fixes in order to conform with
  NONAMELESSSTRUCT.
Matthew Mastracci <matt@aclaro.com>
- Replace stub entry for StgOpenStorageEx with call to StgOpenStorage.
- Replace StgCreateStorageEx stub with call to StgCreateDocfile and add
  required STGFMT_* enumerations.

svn path=/trunk/; revision=15562
2005-05-28 09:30:04 +00:00
Hartmut Birr
dde52a04c5 Check for the complete initialisation of user mode modules.
svn path=/trunk/; revision=15561
2005-05-28 07:39:54 +00:00
Hartmut Birr
fcc81ed73f Print the complete image name on a fault.
svn path=/trunk/; revision=15560
2005-05-28 07:37:19 +00:00
Hartmut Birr
2ff428f5e5 Use correct flag while checking for uninitialized segments.
svn path=/trunk/; revision=15559
2005-05-28 07:34:54 +00:00
Hartmut Birr
a5a9986767 Don't try to resolve user mode page faults in the very early boot phase.
svn path=/trunk/; revision=15558
2005-05-28 07:32:23 +00:00
Hartmut Birr
f4df167bed Put the assembler functions into the .text section.
svn path=/trunk/; revision=15557
2005-05-28 07:26:38 +00:00
Alex Ionescu
09d22dbdea Build pci with w32api
svn path=/trunk/; revision=15556
2005-05-28 00:24:46 +00:00
Alex Ionescu
cc481fc89f Build beep with w32api
svn path=/trunk/; revision=15555
2005-05-28 00:12:41 +00:00
Hervé Poussineau
45aa5aa956 Use DHCP to get name servers IP addresses
svn path=/trunk/; revision=15554
2005-05-27 23:19:14 +00:00
Steven Edwards
1ce2f8440a use __USE_W32API
svn path=/trunk/; revision=15553
2005-05-27 22:18:48 +00:00
Steven Edwards
fc8a20b794 use -D__USE_W32API
svn path=/trunk/; revision=15552
2005-05-27 22:15:36 +00:00
Steven Edwards
f6f9cdcdbb use w32api
svn path=/trunk/; revision=15551
2005-05-27 21:51:26 +00:00
Hervé Poussineau
0a45432b70 Silent debug message
svn path=/trunk/; revision=15550
2005-05-27 20:35:59 +00:00
Magnus Olsen
c44e26473a Implement NtGdiGetSystemPaletteUse and NtGdiSetSystemPaletteUse
this code have been taken from wine 

svn path=/trunk/; revision=15549
2005-05-27 20:07:48 +00:00
Hervé Poussineau
0b6337b3d8 Don't free heap for string that we don't own
svn path=/trunk/; revision=15548
2005-05-27 19:43:07 +00:00
Casper Hornstrup
062423314c Merge 15329:15546 from trunk
svn path=/branches/xmlbuildsystem/; revision=15547
2005-05-27 19:29:24 +00:00
Magnus Olsen
4a940a2d8e Thx casper to notice a ID was mistagen by translate
svn path=/trunk/; revision=15546
2005-05-27 18:26:14 +00:00
Hartmut Birr
f30557e387 Dereference the event if the queue is freed in IntDereferenceMessageQueue.
svn path=/trunk/; revision=15545
2005-05-27 16:28:10 +00:00
Casper Hornstrup
04f5a8f558 Copy rpoolmgr.h from trunk
svn path=/branches/xmlbuildsystem/; revision=15544
2005-05-27 14:33:41 +00:00
Casper Hornstrup
0aa41d88e0 Delete
svn path=/branches/xmlbuildsystem/; revision=15543
2005-05-27 14:32:40 +00:00
Magnus Olsen
b73c53c40c fix memmory coruption in EnumDisplaySettingsExA
do not alloc memmory with heap. 

svn path=/trunk/; revision=15542
2005-05-27 14:22:06 +00:00
Magnus Olsen
68f4fc41bc fix stupied Ret uninitialized in IntChangeDisplaySettings for DGB=0 build
svn path=/trunk/; revision=15541
2005-05-27 00:32:24 +00:00
Magnus Olsen
71c9d2dddd partially implemented fullscreen in changedisplay setting
I can play winquake in fullscreen now :)


svn path=/trunk/; revision=15538
2005-05-26 22:41:31 +00:00
Gé van Geldorp
2d3d7c7078 Sync to Wine-20050524:
Alexander Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Aric Stewart <aric@codeweavers.com>
- Fix a few leaking object handles.
- Correct user component publication.
- Implement MsiEnumComponentQualifiers.
- Implement Publish Components in order for MsiGetQualifiedComponent
  apis to work. Also implement MsiGetQualifiedComponent, or at least some
  of the functionality as it is supposed to install stuff if it is
  absent, which it does not do yet.
- Correct query quoting based on Mike's patch.
  Also more error messages about return codes from custom actions and
  ignore an error that we should be ignoring.
- Double terminate SZ_MULTI properly.
- ClassInfo and ExtensionInfo are also written for ADVERTISED
  components.
- Write the RegOwner and RegCompany keys as blank if they do not exist
  when doing the RegisterUser action.
- Fix quoting on queries.
- Respect '+' and '*' in WriteRegistryValues to only create the key if
  it does not already exist. Prevents overwriting values with NULL.
- We cannot internally load the files in FileCost because that action
  may be skipped or not called. So do it in CostInitialize.
- Quote the file path in SelfRegModules.
- Do not write squished null guids to the feature registration.
- Correctly use short filenames from uncompressed file sources. Also
  default feature and component install states to ABSENT instead of
  UNKNOWN.
- Correct a problem with parse_data if binary data was not in full bytes.
- More properly handle uncompressed file sources, fix the creating and
  parsing of Source Directories.
- ExecuteAction runs the whole Execute table and not just from
  InstallValidate onward.  To do this make sure we do not do the
  costing initialization work again if it is already done (by checking
  the CostingComplete Property).
- A lot of work to refine feature states, setting the state affects
  the state of all child features and also respect features that want
  to default to something other than LOCAL.
- Fix a few leaking object handles.
- Correct user component publication.
- Implement MsiEnumComponentQualifiers.
- We have a stub for MsiGetUserInfoA we should use it.
- A few small fixes.
- Add a missing msiobj_release that was resulting in a leaked object
  with each MsiCreateRecord call.
- Fix a leaking handle.
- Make MsiCollectUserInfo more internally consistent.
  Thanks to Mike McCormack.
- Fix a leaking handle in MsiConfigureProductExW.
- Implement MsiGetProductCodeW.
- Implement MsiGetUserInfoW.
- Implement MsiCollectUserInfoA/W.
- Implement MsiQueryFeatureStateW.
- Correct a leaking hkey handle.
- Expand some handling of special properties in MsiGetProductInfo.
- Fix for the return codes for the Qualified component calls. They are
  not INSTALLSTATEs but rather success values.
- Quoting fixes.
Mike McCormack <mike@codeweavers.com>
- Make sure that dialogs are only created and destroyed in a single
  thread.
- Track memory allocations in the SQL parser.
- Create the ORDER BY view in a single call.
- Simplify parsing of the FROM keyword.
- Improve parser error checking.
- Simplify parsing of select query.
- remove the unused utf8 field of an expression
- make the parse result a single assignment at top level of parsing
- abort parsing on a memory allocation failure
- Only tables can be backquoted, strings must be single quoted.
- Declare MsiExportDatabase* in the spec file, and fix a typo.
- make sure to free the string table when closing the database
- don't free szPersist in MsiOpenDatabase if it's not a string
- Avoid some non-standard str functions.
Francois Gouget <fgouget@free.fr>
- Tweak the documentation to make winapi_check happy.
Juan Lang <juan_lang@yahoo.com>
- Don't fail in RegisterFonts if the Fonts table is missing.
- Partially implement AppSearch for RegLocator-type searches.
- Turn handled errors from ERRs to WARNs or TRACEs.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Use SUBLANG_NEUTRAL for French resources.
Stefan Leichter <Stefan.Leichter@camLine.com>
- Update version resource of msi.dll to current version shipped from
  windows update.
- Added minimal implementation of MsiCreateAndVerifyInstallerDirectory.
Marcus Meissner <marcus@jet.franken.de>
- Set PhysicalMemory property from system data.

svn path=/trunk/; revision=15537
2005-05-26 21:55:34 +00:00
Gé van Geldorp
15de547cc6 Sync to Wine-20050524:
Alexander Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.

svn path=/trunk/; revision=15536
2005-05-26 21:15:58 +00:00
Gé van Geldorp
cc65e33b46 Sync to Wine-20050524:
Alexander Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.

svn path=/trunk/; revision=15535
2005-05-26 21:09:49 +00:00
Gé van Geldorp
f4600fe75d Sync to Wine-20050524:
Alexander Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.

svn path=/trunk/; revision=15534
2005-05-26 21:07:55 +00:00
Gé van Geldorp
f4f457d418 Sync to Wine-20050524:
Alexander Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.

svn path=/trunk/; revision=15533
2005-05-26 21:06:20 +00:00
Gé van Geldorp
da5d24be89 Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Removed unnecessary code in the 16-bit DllEntryPoint function of some
  dlls, and also fixed its ordinal in a few places.
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
- Don't convert the template name to Unicode, it's not used by the
  dialog anyway. Clear the window property on WM_DESTROY.
Michael Jung <mjung@iss.tu-darmstadt.de>
- Use IShellFolder::GetDisplayNameOf instead of SHGetPathFromIDList to
  be able to browse shell namespace extensions.

svn path=/trunk/; revision=15532
2005-05-26 21:02:35 +00:00
Gé van Geldorp
120d7a64b9 Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Kouji Sasaki <taro-x@justsystem.co.jp>
- Added handling of WM_ENABLE message.
James Hawkins <truiken@gmail.com>
- Audit the List-View control.
- Select the item under the point (x,y) in MouseHover.
- Store the click point in LISTVIEW_INFO.
- Move mouse tracking to MouseMove.
- Use DragDetect instead of TrackMouse.
- Remove the unused TrackMouse function.
- Fixed centering of tab text.
Dimi Paun <dimi@lattica.com>
- Do not compute the hit test if we don't really need it.
- Make it more explicit how we deal with WS_DISABLED.
Felix Nawothnig <felix.nawothnig@t-online.de>
- Resize listview column to autofit on a doubleclick on the
  header-divider.
- Implemented WM_ENABLE.
- Rewrote item layouting - new code fixes bitmap/image position for
  non-left-aligned text, prevents jumping when resizing non-left-aligned
  text, implements clipping for images and correctly aligns bitmaps when
  an image is already there.
- Set iItem to index before notifying callback items.
Duane Clark <dclark@akamail.com>
- Misc rectangle fixes.
- The date should be initialized from local time.
Aric Stewart <aric@codeweavers.com>
- Handle WM_NCCALCSIZE in the tab control.
Hans Leidekker <hans@it.vu.nl>
- Fix uninitialized warnings.

svn path=/trunk/; revision=15531
2005-05-26 20:52:12 +00:00
Gé van Geldorp
088013d4a4 Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Gerold Jens Wucherpfennig <gjwucherpfennig@gmx.net>
- Initial FCI work (FCICreate and FCIDestroy).

svn path=/trunk/; revision=15530
2005-05-26 20:39:17 +00:00
Magnus Olsen
ec4b70a7b6 Fix more bugs in change display. when you press on aply in desk.cpl later on ok you did get change_display fail msg. fix the return code to reboot req. Remove switch statmenet for more that one flags can be send same time. example CDS_TEST + CDS_FULLSCREEN ..... and replace thuse with if statement instead.
svn path=/trunk/; revision=15529
2005-05-26 20:07:10 +00:00
Filip Navara
2d7d796368 Report 16bpp for modes where VBE returns 15bpp.
svn path=/trunk/; revision=15528
2005-05-26 19:58:58 +00:00
Filip Navara
db46d099bc - Revert hacks added by GreatLord in revisons 15521 and 15522.
- Fix mode enumeration code on few places.

svn path=/trunk/; revision=15527
2005-05-26 19:57:54 +00:00
Hartmut Birr
deab50cb8b Protected the handle table.
svn path=/trunk/; revision=15526
2005-05-26 19:22:45 +00:00
Steven Edwards
7d4d22763c work around include_next problem when cross-compiling
svn path=/trunk/; revision=15525
2005-05-26 17:17:29 +00:00
Magnus Olsen
98bc8544de change line 15 from #if DBG to #ifdef DBG
so head builds agein

svn path=/trunk/; revision=15524
2005-05-26 15:53:24 +00:00
Hervé Poussineau
7d9d552b40 Fix compile when DBG is set
svn path=/trunk/; revision=15523
2005-05-26 15:44:04 +00:00
Magnus Olsen
38b2ccb8dd add a commet why 24bits cards fails
and maby other card will fails 
in GetAvailableModes

svn path=/trunk/; revision=15522
2005-05-26 15:15:55 +00:00
Magnus Olsen
c7ae12e813 Fix the problem for 24 bits graphic card.
But it report color deep 15 are supported now. 
it solv the problem. Thanks WaxDragon
Hope filip does like this change. 

svn path=/trunk/; revision=15521
2005-05-26 14:46:23 +00:00
Alex Ionescu
db1bf61e23 Strip files on retail builds and do not send file/section alignment twice
svn path=/trunk/; revision=15520
2005-05-26 13:55:13 +00:00
Alex Ionescu
3f0ddf5160 DEBUG1 on checked only
svn path=/trunk/; revision=15519
2005-05-26 13:53:15 +00:00
Alex Ionescu
6b34120402 make PE loader more lenient with alignment. it could previously not load PEs that I can load on Windows
svn path=/trunk/; revision=15518
2005-05-26 13:52:30 +00:00
Alex Ionescu
ed141bff38 Set non-retail (checked) build as default. Developers should have no reason to use a retail build unless testing a final release version. This also speeds up compilation and reduces the number of compile errors due to developers building with dbg=0 and breaking dbg=1 code. Please do not code with dbg=0 without testing your patches in dbg=1.
svn path=/trunk/; revision=15517
2005-05-26 13:50:52 +00:00
Alex Ionescu
42db7235dc Do not print DPRINT1s on retail builds
svn path=/trunk/; revision=15516
2005-05-26 13:48:55 +00:00
Alex Ionescu
c8a85bc545 Enable and fix NE2000 settings so it works out-of-the-box for QEMU users
svn path=/trunk/; revision=15515
2005-05-26 13:47:21 +00:00
Alex Ionescu
ff1ad3a698 Fix debug messages which previously forced NDEBUG to be off
svn path=/trunk/; revision=15514
2005-05-26 13:45:48 +00:00
Alex Ionescu
1883e277ac Dynamically load and detect iphlpapi. Makes rpcrt4 work on systems without the DLL and also does not force every app on the system to load the network libraries like before
svn path=/trunk/; revision=15513
2005-05-26 13:45:08 +00:00
Alex Ionescu
acec4be2e4 Mark initial loader APIs are INIT_FUNCTION so they can be freed
svn path=/trunk/; revision=15512
2005-05-26 13:44:14 +00:00
Alex Ionescu
45e66d3fce Do not build debug PS function on reatail build
svn path=/trunk/; revision=15511
2005-05-26 13:43:52 +00:00
Alex Ionescu
be4adc56e9 Disable pool debug settings on a retail build and increase speed
svn path=/trunk/; revision=15510
2005-05-26 13:43:13 +00:00
Alex Ionescu
c013c83354 Don't compile ROS-specific tab-debug commands on a retail build
svn path=/trunk/; revision=15509
2005-05-26 13:42:41 +00:00
Alex Ionescu
2e7e95a597 Fix typos in debug messages
svn path=/trunk/; revision=15508
2005-05-26 13:42:07 +00:00
Alex Ionescu
d74a4d1b37 Don't compile pool debug apis on a retail build
svn path=/trunk/; revision=15507
2005-05-26 13:41:46 +00:00
Alex Ionescu
650c785b4a Don't allocate section segments in nonpaged pool
svn path=/trunk/; revision=15506
2005-05-26 13:41:04 +00:00
Alex Ionescu
97db2802cf Fix pool code to actually work when some other defines are used
svn path=/trunk/; revision=15505
2005-05-26 13:40:40 +00:00
Alex Ionescu
9e843895bf Do not allow virtual mem queries > 0x80000000 even if you're from kmode. Remove deprecated debug messages
svn path=/trunk/; revision=15504
2005-05-26 13:39:40 +00:00
Alex Ionescu
16982c81f8 Shut up i8042prt
svn path=/trunk/; revision=15503
2005-05-26 13:36:30 +00:00
Alex Ionescu
e46d7967c7 Don't free heap for string that we don't own
svn path=/trunk/; revision=15502
2005-05-26 13:35:08 +00:00
Maarten Bosma
a897f17cb4 PackageManager
svn path=/trunk/; revision=15501
2005-05-26 10:01:14 +00:00
Gé van Geldorp
b395078e1e Sync to Wine-20050524:
Michael Stefaniuc <mstefani@redhat.de>
- Change the type of 1 bit wide bitfields to unsigned.

svn path=/trunk/; revision=15500
2005-05-26 09:46:02 +00:00
Gé van Geldorp
1149b4b325 Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Free delayed import modules on PROCESS_DETACH.
- Removed no longer used support for 32-bit register entry points.
- Added support in winebuild for specifying import libraries directly on
  the command line without the -l option.
- Changed the -d option to only mark the library as delayed, the actual
  loading is now done separately.
- Generate 16-bit resources in the proper format inside the module data,
  and get rid of the special case for builtins in NE_DefResourceHandler.
- Generate the 16-bit module header in the standard on-disk format, so
  that winebuild doesn't need to know about kernel internal structures.
- Moved the generated code segment for 16-bit builtins inside the module
  structure.
- Get rid of the BUILTIN16_DESCRIPTOR structure and directly register
  the MZ header instead.
- Use RaiseException instead of RtlRaiseException in 16-bit spec files
  since they already depend on kernel32.
- Renamed __wine_(un)register_dll_16 to __wine_dll_(un)register_16 for
  consistency with the 32-bit version, and also make the register
  function use the same prototype as the 32-bit one.
- Use the exported IMAGE_OS2_HEADER to generate the module header in the
  spec file, and moved the NE_MODULE structure definition to
  kernel16_private.h.
- Avoid referencing stackframe.h from outside kernel32.
- Moved data structures for 16-bit relay calls to winbase16.h and
  removed builtin16.h.
- Store the 16-bit stack pointer in the WOW32Reserved TEB field.
- Use RaiseException instead of RtlRaiseException for delayed entry
  points load failure to avoid creating a dependency on ntdll.

svn path=/trunk/; revision=15499
2005-05-26 09:44:59 +00:00
Hervé Poussineau
4f897f671b Fix DPRINT1 messages to display correctly memory ranges
svn path=/trunk/; revision=15498
2005-05-26 06:30:47 +00:00
Gé van Geldorp
d670d4f7e6 Implement sub-allocation of small requests
svn path=/trunk/; revision=15497
2005-05-25 22:36:35 +00:00
Aleksey Bragin
fcb49212d9 Now UHCI HCD driver supports recognizing Memory type of resource. Should help James Tabor's problem (VIA chipset, getting only memory resource as unrecognized, and thus driver failing loading).
svn path=/trunk/; revision=15496
2005-05-25 20:59:13 +00:00
Magnus Olsen
a76329673c New normal curosr by irc:mf
svn path=/trunk/; revision=15495
2005-05-25 14:25:19 +00:00
Alex Ionescu
46dd88ef81 Build usetup and ntoskrnl and winmm in gcc 4.0
svn path=/trunk/; revision=15494
2005-05-25 13:07:27 +00:00
Magnus Olsen
332a72f9b8 Correct bug do not enum other color deep that 8,16,24,32 it will create memmory leek other wise.
in the current code. 

svn path=/trunk/; revision=15493
2005-05-25 09:14:29 +00:00
Alex Ionescu
b09db8ab65 Nonpaged Pool Liberation Day: Allow PagedPool to be used earlier, allow fast mutex to be used earlier on debug builds. Allocate all Se stuff from PagedPool, set the right object types to use paged pool, allocate all strings from paged pool, allocate PE sections from paged pool, and a bunch of other things which should, imo, be in paged pool. If anyone has any contradicting proof, let me know...until then, enjoy ~4-6MB more NonPagedPool
svn path=/trunk/; revision=15492
2005-05-25 04:16:56 +00:00
Alex Ionescu
c1c8137afa Tag the MDL buffer
svn path=/trunk/; revision=15491
2005-05-25 02:20:01 +00:00
Alex Ionescu
007cd2d88a remove debug message
svn path=/trunk/; revision=15490
2005-05-25 01:49:50 +00:00
Magnus Olsen
4f7ea2284f Add 24bits mode strings
hope it fix qemu 

svn path=/trunk/; revision=15489
2005-05-25 00:04:12 +00:00
Alex Ionescu
53db168c0d Fix Tag Usage
svn path=/trunk/; revision=15487
2005-05-24 21:32:47 +00:00
Alex Ionescu
1d899ce8b3 Fix memory leaks in object manager, use tags and use some more public types
svn path=/trunk/; revision=15486
2005-05-24 21:21:34 +00:00
Alex Ionescu
ef8d82998d Fix DHCP from crashing, silence tcp and iphlp
svn path=/trunk/; revision=15485
2005-05-24 21:04:44 +00:00
Magnus Olsen
d92b106774 ChangeDisplay
1. Add debug msg
2. Corrent some return value for CDS_UPDATEREGISTRY
3. Remove #ifdef CDS_VIDEOPARAMETERS  


svn path=/trunk/; revision=15484
2005-05-24 19:52:43 +00:00
Magnus Olsen
d3f81ff12b add CDS_VIDEOPARAMETERS for changedisplay setting it was mising in our include files
svn path=/trunk/; revision=15483
2005-05-24 18:42:54 +00:00
Magnus Olsen
06a280398f VBE driver never write which reslutions it should use as defualt
therefor the change resultions did not working on bootcd 
do not remove this settings. from the reg. 
Thanks

svn path=/trunk/; revision=15482
2005-05-24 14:14:40 +00:00
Hervé Poussineau
d3881cf0ae Add ReactOS version at the start of the debug log
svn path=/trunk/; revision=15481
2005-05-23 20:31:53 +00:00
Hervé Poussineau
4ad1699bf6 Write keyboard identifier in right registry key
svn path=/trunk/; revision=15480
2005-05-23 19:30:22 +00:00
James Tabor
a1b9addb33 I give up! I fix the rest of the headers later.
svn path=/trunk/; revision=15479
2005-05-23 19:17:36 +00:00
James Tabor
15e364a635 Fixup sysinfo.c SystemProcessInfo header.
svn path=/trunk/; revision=15478
2005-05-23 18:59:21 +00:00
James Tabor
78d9f19627 Update include header and update waitreason list.
svn path=/trunk/; revision=15477
2005-05-23 17:13:23 +00:00
Magnus Olsen
ab215aa2bf 1. remove all hardcode strings to En.rc
2. make it unicode and anis 

svn path=/trunk/; revision=15476
2005-05-23 16:48:22 +00:00
Hervé Poussineau
d920c40eee Revert 15473 and 15474 as Alex doesn't like them
svn path=/trunk/; revision=15475
2005-05-23 08:50:29 +00:00
Hervé Poussineau
cc7ba13666 Add ReactOS version at the start of the debug log
svn path=/trunk/; revision=15474
2005-05-23 05:20:39 +00:00
Hervé Poussineau
58ba3012c1 Remove some debug messages at boot
svn path=/trunk/; revision=15473
2005-05-23 05:00:22 +00:00
James Tabor
336ae48375 Revert DPRINT1.
svn path=/trunk/; revision=15472
2005-05-22 22:12:12 +00:00
Hervé Poussineau
1da69bf5f7 Fix compile error when NDEBUG is not set
svn path=/trunk/; revision=15471
2005-05-22 22:04:57 +00:00
Hartmut Birr
8b6398a0e3 ObInsertObject must always return STATUS_OBJECT_NAME_COLLISION if an object with the same name exist.
svn path=/trunk/; revision=15470
2005-05-22 16:48:30 +00:00
Hartmut Birr
4eba3d8e71 Don't create the media change event as named object.
svn path=/trunk/; revision=15469
2005-05-22 16:44:36 +00:00
Emanuele Aliberti
5b45accaef svn propset {keyword, eol-type}
svn path=/trunk/; revision=15468
2005-05-22 16:10:10 +00:00
Emanuele Aliberti
6481ed1ea7 SM: change the way sessions are managed.
(it may be buggy)

svn path=/trunk/; revision=15467
2005-05-22 15:54:15 +00:00
James Tabor
f4e960c324 This is a CompareStringW hack to get (7z313.exe /Q) to install. If anyone else has a better way, go for it!
svn path=/trunk/; revision=15466
2005-05-22 12:29:10 +00:00
Eric Kohl
f564f62205 IoRegisterDeviceInterface: Create nested keys one-by-one.
svn path=/trunk/; revision=15465
2005-05-21 19:00:42 +00:00
Eric Kohl
2455ef0040 Add DeviceClasses key.
svn path=/trunk/; revision=15464
2005-05-21 17:49:58 +00:00
Aleksey Bragin
4c338fffcf Added russian translations for libs: mpr, msacm, msi, oledlg, shdocvw.
Thanks to: Mikhail Zvyzdochkin, Dmitry Phlilippov.

svn path=/trunk/; revision=15463
2005-05-21 17:26:59 +00:00
Hartmut Birr
0c4da041a5 Set STATUS_SUCCESS instead of STATUS_PIPE_CONNECTED in NpfsSignalAndRemoveListeningServerInstance.
svn path=/trunk/; revision=15462
2005-05-21 17:05:38 +00:00
Hartmut Birr
744548fc6a Revert to rev 15172.
svn path=/trunk/; revision=15461
2005-05-21 17:02:38 +00:00
Martin Fuchs
a62f884b0b - fixed for FOR _NO_EXTENSIONS mode
- implement ID_VIEW_SPLIT command

svn path=/trunk/; revision=15460
2005-05-21 16:45:50 +00:00
Hervé Poussineau
fb4635393e Remove some debug messages at boot (DPRINT1 changed to DPRINT)
SVN maintenance in ntoskrnl/ex/: set svn:eol-style and svn:keywords properties

svn path=/trunk/; revision=15459
2005-05-21 16:33:23 +00:00
Hervé Poussineau
d7e937747c Open file with FILE_SHARE_READ in LdrLoadModule
svn path=/trunk/; revision=15458
2005-05-21 15:49:48 +00:00
Hartmut Birr
ca088cc13c Don't interpret STATUS_PIPE_CONNECTED as error.
svn path=/trunk/; revision=15457
2005-05-21 13:39:09 +00:00
Thomas Bluemel
991909bc42 minor optimization
svn path=/trunk/; revision=15456
2005-05-21 12:57:34 +00:00
Eric Kohl
4b4c510e04 Implement ConcatenatePaths and MyGetFileTitle.
svn path=/trunk/; revision=15455
2005-05-21 12:23:07 +00:00
Hartmut Birr
385055dd76 Terminate the process on exit in NtProcessStartup.
svn path=/trunk/; revision=15454
2005-05-21 12:21:30 +00:00
Hartmut Birr
69350ef25a Free all allocated memory in ObpDeleteObject.
svn path=/trunk/; revision=15453
2005-05-21 12:19:26 +00:00
Hartmut Birr
40f2f130a0 Free the capture buffer in ObReferenceObjectByName.
svn path=/trunk/; revision=15452
2005-05-21 12:11:54 +00:00
Hartmut Birr
0eeb5caed9 Set the flag FO_DIRECT_DEVICE_OPEN after the call to IoCreateStreamFileObject in IoCreateFile.
svn path=/trunk/; revision=15451
2005-05-21 12:08:46 +00:00
James Tabor
f10f1f0548 Fix ups and Clean ups.
svn path=/trunk/; revision=15450
2005-05-21 11:29:53 +00:00
Aleksey Bragin
a8779d96c8 Enable built-in debug messages usage (via CONFIG_USB_DEBUG)
svn path=/trunk/; revision=15449
2005-05-21 08:44:40 +00:00
Martin Fuchs
a47cb4260c add explorer-cz.rc to textinclude section
svn path=/trunk/; revision=15448
2005-05-21 07:35:03 +00:00
James Tabor
b8102f68c3 Added Usb cromwell to build system.
svn path=/trunk/; revision=15447
2005-05-21 02:00:52 +00:00
James Tabor
1c7838cc35 Fixups.
svn path=/trunk/; revision=15446
2005-05-21 01:57:38 +00:00
James Tabor
6120955e45 Added PKEVENT to init_waitqueue_head.
svn path=/trunk/; revision=15445
2005-05-21 01:53:53 +00:00
James Tabor
d88e7782d0 Added PKEVENT to wake_up.
svn path=/trunk/; revision=15444
2005-05-21 01:39:32 +00:00
James Tabor
4f7a419fcc Clean up end of line.
svn path=/trunk/; revision=15443
2005-05-21 01:34:50 +00:00
James Tabor
3a9cdf8c34 Added libusbcore.a to makefile
svn path=/trunk/; revision=15442
2005-05-21 01:21:29 +00:00
Hervé Poussineau
8d1c8a184f Fix bus pointer for initial device
svn path=/trunk/; revision=15441
2005-05-20 22:31:55 +00:00
Hervé Poussineau
b2eee5bb0e SVN maintenance:
Set svn:eol-style and svn:keywords for files
Set svn:ignore for directories

svn path=/trunk/; revision=15440
2005-05-20 21:53:08 +00:00
Hervé Poussineau
e277f853b7 Modify some pci_hal funcs, fix obvious errors in code
svn path=/trunk/; revision=15439
2005-05-20 21:43:57 +00:00
Magnus Olsen
b8171c1fd9 Implement same behavor for cd * as ms cmd cd *
Left to implement is /D options for cd then it is same level as ms win2k cmd cd 

En.rc
Fix a options error for cd it did say cd -, but it it is cd .

svn path=/trunk/; revision=15438
2005-05-20 21:33:49 +00:00
Casper Hornstrup
8a4a3a4cb1 Support alternate name for hooked function
svn path=/branches/xmlbuildsystem/; revision=15437
2005-05-20 19:07:23 +00:00
Hartmut Birr
750d4fd13f - Create always the output file. If no debug section exist, do not create a rossym section.
svn path=/trunk/; revision=15436
2005-05-20 18:15:44 +00:00
Casper Hornstrup
19e160bf46 Don't echo executable name of test
svn path=/branches/xmlbuildsystem/; revision=15435
2005-05-20 15:15:19 +00:00
Casper Hornstrup
d04bf21da0 Implement 'make test'
svn path=/branches/xmlbuildsystem/; revision=15434
2005-05-20 15:12:32 +00:00
Casper Hornstrup
892a2cc592 Optimize SourceFile::ReadInclude
svn path=/branches/xmlbuildsystem/; revision=15433
2005-05-20 14:55:15 +00:00
Magnus Olsen
67c71ced7c Add new thing to cd.
Make cd pr* working

svn path=/trunk/; revision=15432
2005-05-20 12:55:09 +00:00
Art Yerkes
4a15530e10 Turned on -Werror
Propogate AdapterBinding rather than LogicalAdapter or MiniportBlock in places
where we handle a request since we might need the protocol that did the request
later on, get rid of LogicalAdapter completely as according to Filip, it's 
never needed.

Also, remove the Packet context hack in send complete if possible as this is
now unnecessary (we now send all needed information in the work item instead).

MiniQueueWorkItem, MiniDequeueWorkItem and MiniDoRequest were all changed to
take an AdapterBinding.
Added MiniRequestComplete, which handles a request complete.

Fixed hang in ipconfig and the tcpip control panel.

svn path=/trunk/; revision=15429
2005-05-20 08:06:27 +00:00
Filip Navara
188f2022f6 Lukáš "denzil" Frolka <d3nzil@gmail.com>
Czech translation of Explorer (some settings dialogs are still untranslated).

svn path=/trunk/; revision=15428
2005-05-20 06:21:01 +00:00
Steven Edwards
7fb3ebb9f9 move the rest of the alread defined tags to the private tag.h
svn path=/trunk/; revision=15427
2005-05-20 04:33:47 +00:00
Steven Edwards
3354ce28a8 started moving tags to a private internal header
svn path=/trunk/; revision=15426
2005-05-20 03:50:13 +00:00
Hervé Poussineau
50752743f5 Remove some debug messages at boot
svn path=/trunk/; revision=15425
2005-05-20 02:46:26 +00:00
Hervé Poussineau
1367527014 IopAssignDeviceResources():
Fix translated resource list for I/O ports and memory ranges
Fix raw resource list for interrupts

svn path=/trunk/; revision=15424
2005-05-20 02:37:51 +00:00
Phillip Susi
027e2bfa3a Removed invalid . from path in this usetup ini file as a temporary fix. Next step is to remove the darn ini file entirely
svn path=/trunk/; revision=15423
2005-05-20 02:21:53 +00:00
Steven Edwards
45d8d84765 adjust case on a header. Sorry Windows users. Do not use mixed case filenames.
svn path=/trunk/; revision=15422
2005-05-20 02:19:00 +00:00
Hervé Poussineau
6261f48b99 Set BusNumber and SlotNumber in resource requirements list
svn path=/trunk/; revision=15421
2005-05-20 01:54:10 +00:00
Hervé Poussineau
e34387f9c2 Remove some debug messages at boot
svn path=/trunk/; revision=15420
2005-05-20 01:10:00 +00:00
Hervé Poussineau
79361fcb93 Remove some debug messages at boot
svn path=/trunk/; revision=15419
2005-05-20 01:08:37 +00:00
Hervé Poussineau
725a500778 Set svn:keywords and svn:eol-style properties
Change some DPRINT1 to DPRINT in bug.c, clock.c, gate.c

svn path=/trunk/; revision=15418
2005-05-20 00:47:16 +00:00
Alex Ionescu
b1274d7f85 Ensure success
svn path=/trunk/; revision=15417
2005-05-20 00:17:35 +00:00
Alex Ionescu
04f9bb0465 Fix one of the added hacks. ObpCreateHAndle not exported anymore, and win32k now duplicates the handle nicely (Also faster since we don't have to attach/detach to csr anymore
svn path=/trunk/; revision=15416
2005-05-19 23:26:56 +00:00
Hervé Poussineau
026d788dcc IoGetDeviceProperty():
Fix DevicePropertyEnumeratorName
Implement DevicePropertyPhysicalDeviceObjectName

svn path=/trunk/; revision=15415
2005-05-19 22:04:45 +00:00
Hervé Poussineau
2e828da9a2 Don't create a new DriverObject if one is already existing
svn path=/trunk/; revision=15414
2005-05-19 22:02:34 +00:00
Casper Hornstrup
083a71c9f2 Option to disable automatic dependencies
svn path=/branches/xmlbuildsystem/; revision=15413
2005-05-19 19:53:01 +00:00
Steven Edwards
2342aee312 Watch the case damnit. Sorry Windows users
svn path=/branches/xmlbuildsystem/; revision=15412
2005-05-19 19:00:37 +00:00
Casper Hornstrup
72053cbd18 Don't put modules in project root to avoid overwriting the top-level makefile with a proxy makefile
svn path=/branches/xmlbuildsystem/; revision=15411
2005-05-19 18:38:04 +00:00
Magnus Olsen
765b83b774 Fix CD bug for
CD "program files"
cd did only working with CD program files 
now it support ""

svn path=/trunk/; revision=15410
2005-05-19 15:32:22 +00:00
Alex Ionescu
2df4b9dc13 Unnamed objects do not have a base directory.
svn path=/trunk/; revision=15409
2005-05-19 05:26:35 +00:00
Art Yerkes
1e16c56cc3 Don't free this MDL. The I/O manager now does it for us.
svn path=/trunk/; revision=15408
2005-05-19 03:36:20 +00:00
Alex Ionescu
e1553447e9 Don't free io completion packet twice
svn path=/trunk/; revision=15407
2005-05-19 03:24:43 +00:00
Art Yerkes
29d29f5ff5 Corrected uninitialized timeout variable. Will be needed later when ARP calls
are present in iphlpapi.

svn path=/trunk/; revision=15406
2005-05-19 02:53:52 +00:00
Alex Ionescu
f39cc83ebf fix boot on vmware
svn path=/trunk/; revision=15405
2005-05-19 01:58:24 +00:00
Alex Ionescu
c6eb354e8b fix compiling
svn path=/trunk/; revision=15404
2005-05-19 01:46:49 +00:00
Phillip Susi
5d4d912efd Rewrote usetup's file copy and cabinet extraction code to use memory mapped files
This increased performance and the code is cleaner
Still needs a bit more cleaning up, but so far, looks good, needs some testing



svn path=/trunk/; revision=15403
2005-05-19 00:59:40 +00:00
Hervé Poussineau
7403e34ca9 Basic resources device allocation (doesn't prevent conflicts)
Send allocated resources in IRP_MN_START_DEVICE

svn path=/trunk/; revision=15402
2005-05-18 22:05:11 +00:00
Hervé Poussineau
3e43a2215b Use translated resources list to get informations about interrupt
svn path=/trunk/; revision=15401
2005-05-18 21:48:41 +00:00
Alex Ionescu
3d90c8bdad Revert accidental commit
svn path=/trunk/; revision=15400
2005-05-18 21:28:12 +00:00
Hervé Poussineau
4507d7ac14 Implement IRP_MN_QUERY_RESOURCE_REQUIREMENTS
svn path=/trunk/; revision=15399
2005-05-18 21:23:54 +00:00
Magnus Olsen
7646e46a35 Swdish translations by irc:anders1 proofread by Andreas Bjerkeholt, Wacko and by Me (GreatLord)
svn path=/trunk/; revision=15398
2005-05-18 20:19:22 +00:00
Magnus Olsen
4cb823eb9e Swdish translations by irc:anders1 proofread by Andreas Bjerkeholt
svn path=/trunk/; revision=15397
2005-05-18 19:58:27 +00:00
Magnus Olsen
f9b7791ad3 Swdish translations by irc:anders1 proofread by Andreas Bjerkeholt
svn path=/trunk/; revision=15396
2005-05-18 19:46:40 +00:00
Alex Ionescu
00fe79ff10 Object Manager Patch. This patch continues the work done in the previous patch and makes the following changes in order to support OB 2.0 (it basically temporarily fixes a highly incorrect implementation so that caller code will be ready to work with the OB 2.0 without change):
1) The documented Object Create Information Structure and semantics implemented. All Object Attributes and passed data from user-mode is now probed and saved into this object create structure when ObCreateObject is called.
2) ObCreateObject does NOT PERFORM ANY OTHER OPERATION EXCEPT CREATING THE OBJECT ANYMORE. ObCreateObject will NOT insert the Object into the tree and other operations. These are now done correctly by ObInsertObject. Therefore, the biggest hurdle was changing pieces of code which assumed ObCreateObject would be enough.
3) ObInsertObject uses the captured create info for all operations isntead of the Object Attributes.
4) ObFindObject now uses the captured info as well.
5) The OBject name and directory are now stored in the documented Object Name Information, always allocated and freed from non paged pool.

HACKS:
5) Because the registry code is horribly broken and doesn't use ObFindObjectByName, the old ObFindObject had to be temporarily duplicated into CmpFindObject.
7) Win32k used ObInsertObject in CsrInsertObject as a way to create a handle inside csrss. However, OBInsertObject now does more then this. As a temporary hack, ObpCreateHandle is exported from the kernel and called from win32k. A fix needs to be done for this, but I don't know the design of win32k+csrss well enough to find a solution.
8) SEH has been commented out in some places of the new probing code because it breaks smss and explorer. These need to be investigated (seh did not exist in the previous code, so this is not really a hack)
9) Named objects with a parent directory are NOT allowed. However because of bugs in kernel32, the new check has been temporarily disabled. (this check did not exist in the previous code, so this is not really a hack)

The next patch will add a proper ObFindObject which will support a more complete Parse Procedure with context and security information. This is needed for proper registry access (requested by Eric Kohl) and for proper functionality of the Desktop/File creation, which should use the Parse routine, and not the Create Handle Routine. This will also make it possible to remove some previous hacks and pave the way for a fixed Iop/IoCreateFile

svn path=/trunk/; revision=15395
2005-05-18 19:26:47 +00:00
Alex Ionescu
dfedb99675 Prettify usetup a bit, show a warranty page before continuing installation (not a license agreement, simply a message stating this is a beta foss product with no warranty), make progressbars have a double border and change the copy file dialog a bit. Also changed setupldr and ntoskrnl to have a more unified text-mode look/appearance when installing. The effect is really nice and the blue screen with gray status-bar appears as soon as the CD boots and takes you all the way to usetup without any breakages or black/blue/black/blue fades and confusing messages. Also, fixed ntoskrnl not to break into KDBG if /NODEBUG is set.
svn path=/trunk/; revision=15394
2005-05-18 19:08:00 +00:00
Alex Ionescu
474cd6a3e3 Fix usetup. This hack needs to remain even though it's incorrect since it's what ROS expects. I am working on rewriting IoCreateFile so these hacks can go away. Please do not remove it
svn path=/trunk/; revision=15392
2005-05-18 17:17:34 +00:00
Magnus Olsen
baed69574e Fix unicode / ansi build problem for -D_DEBUG build
a old bug in cmd. 
Bug report 629 in bugzila 
fix by tinus and his patch at bugzila


 

svn path=/trunk/; revision=15390
2005-05-17 21:18:04 +00:00
Alex Ionescu
a04f8e62fe Implement mouse packet timeout. Fixes right-click menu appearing incorrectly on qemu if debuggins is used. Patch by Tinus
svn path=/trunk/; revision=15389
2005-05-17 20:51:39 +00:00
Alex Ionescu
e3757a0fb1 make cabman report error when file doesnt exist. Patch by Usurp
svn path=/trunk/; revision=15388
2005-05-17 20:43:27 +00:00
Hartmut Birr
e3ac1e89d5 Fixed rsym for executables without any debug informations.
svn path=/trunk/; revision=15387
2005-05-17 20:28:57 +00:00
Alex Ionescu
2e000e7b38 Sorry for the nonatomic commit
svn path=/trunk/; revision=15386
2005-05-17 19:16:21 +00:00
Alex Ionescu
437e9f05fc Sorry for the nonatomic commit
svn path=/trunk/; revision=15383
2005-05-17 19:06:59 +00:00
Alex Ionescu
fe3de87064 Share NtDevice/FsIoControlFile, fixes NtFsControlFile to have same functionality as NtDev...
svn path=/trunk/; revision=15382
2005-05-17 19:04:57 +00:00
Hartmut Birr
7efa574035 - Reference the file object in IopSecurityFile.
- Don't set FO_DIRECT_DEVICE_OPEN in IoCreateStreamFileObject.  
- Disabled the setting of IRP_NOCACHE, because vfat cannot handle cached and non cached requests for the same file.  
- Set the correct device object in NtWriteFile.


svn path=/trunk/; revision=15381
2005-05-17 19:00:12 +00:00
Alex Ionescu
1612126bbb Fix bug in memory mapping which caused large applications to BSOD the system. Abiword setup now works and other large apps should be fixed as well
svn path=/trunk/; revision=15380
2005-05-17 18:04:23 +00:00
Hervé Poussineau
7e68975e35 Don't empty the DriverObject extension if it is already initialized and filled
svn path=/trunk/; revision=15379
2005-05-17 17:39:50 +00:00
Casper Hornstrup
ca46632061 Enable warnings
svn path=/branches/xmlbuildsystem/; revision=15378
2005-05-17 17:28:40 +00:00
Casper Hornstrup
e8fbafa083 Disable -O2
svn path=/branches/xmlbuildsystem/; revision=15377
2005-05-17 17:19:10 +00:00
Magnus Olsen
9c34575fb2 Dorp last sync with wine and userhook
Before we can sync with wine we need to rewrite the enum 
and reg of device so it working fine in reactos and windows.

Add svn rev 15043 + only userhooks for the mouse
at last the mouse are working in tribles windows mode
but in full screen it is bit chopy. Not tested tribles 
in reactos with the new code. 







svn path=/trunk/; revision=15376
2005-05-17 15:20:24 +00:00
Magnus Olsen
db5b39ab3f fix a small bug in dinput the last sync with wine did not go well
still some bugs left

svn path=/trunk/; revision=15375
2005-05-17 12:30:52 +00:00
Casper Hornstrup
cb0e7b1029 Build sm
svn path=/branches/xmlbuildsystem/; revision=15371
2005-05-17 06:17:35 +00:00
Magnus Olsen
a5726f4420 Drop GDI version of dinput complete and add user hook version of dinput
keyboard.c thx GvG for finding the problem in reactos with user hook and implement userhook

mouse.c keep one gdi stuff left but rewrite it to userhook poll mouse 
poll mouse need to be rewrite so it fix last bug for user hook it is it move the mouse to another locations but it should 
stand still. when it insate. then we can share the code with wine 

svn path=/trunk/; revision=15358
2005-05-16 20:42:36 +00:00
Magnus Olsen
86d573abdf drop Keyboard.c gdi version
svn path=/trunk/; revision=15357
2005-05-16 20:36:26 +00:00
Aleksey Bragin
07f2451e95 One more fix to resource DPRINTs, now they are correct, for each resource.
svn path=/trunk/; revision=15349
2005-05-16 19:24:15 +00:00
Aleksey Bragin
c9c8f865f2 Changed Memory to Port resource, also fixed incorrect DPRINT (thanks to hpoussin!)
svn path=/trunk/; revision=15348
2005-05-16 19:12:48 +00:00
Hervé Poussineau
903edc501a Don't send multiple IRP_MJ_PNP/IRP_MN_START_DEVICE in case of a device with lower/upper filters
svn path=/trunk/; revision=15347
2005-05-16 18:08:55 +00:00
Hervé Poussineau
d0ea6a10df Define interrupt resource as required
svn path=/trunk/; revision=15345
2005-05-16 17:19:10 +00:00
Hervé Poussineau
4cb90117fa Report memory and I/O ranges even if they are not the first reported resources by PCI device
svn path=/trunk/; revision=15344
2005-05-16 15:56:01 +00:00
Casper Hornstrup
c3bfe63c19 Correct entry point of win32k.sys
svn path=/branches/xmlbuildsystem/; revision=15340
2005-05-16 12:34:01 +00:00
Casper Hornstrup
3d5d32ed36 Merge 15268:15329 from trunk
svn path=/branches/xmlbuildsystem/; revision=15339
2005-05-16 12:32:10 +00:00
Casper Hornstrup
5673e6c39d Enable warnings
svn path=/branches/xmlbuildsystem/; revision=15338
2005-05-16 12:18:02 +00:00
Casper Hornstrup
0a8ee28a63 Do automatic dependency checking for pre-compiled header files
svn path=/branches/xmlbuildsystem/; revision=15337
2005-05-16 11:41:54 +00:00
Maarten Bosma
b5f744a25a PackageManager
svn path=/trunk/; revision=15336
2005-05-16 11:14:04 +00:00
Gé van Geldorp
9190f5135f Support partition-less disks
svn path=/trunk/; revision=15334
2005-05-16 11:06:57 +00:00
Maarten Bosma
ca8a9b2dff PackageManger: Globle Makefile
svn path=/trunk/; revision=15333
2005-05-16 11:04:21 +00:00
Maarten Bosma
0b6d2a809b PackageManager: German Translation and CreateOptions()
svn path=/trunk/; revision=15332
2005-05-16 10:53:46 +00:00
Casper Hornstrup
42715b124a Allow warnings
svn path=/branches/xmlbuildsystem/; revision=15331
2005-05-16 10:30:13 +00:00
Alex Ionescu
3d2c746433 Fix win32k. For real. I swear.
svn path=/trunk/; revision=15330
2005-05-16 00:52:43 +00:00
Alex Ionescu
0139f35fc0 Fix win32k
svn path=/trunk/; revision=15329
2005-05-16 00:38:44 +00:00
Casper Hornstrup
c6947c142e Add missing file
svn path=/branches/xmlbuildsystem/; revision=15328
2005-05-16 00:02:09 +00:00
Casper Hornstrup
82acb7297a Depend on generated RPC headers
svn path=/branches/xmlbuildsystem/; revision=15327
2005-05-15 23:43:28 +00:00
Alex Ionescu
6b86cb4406 Fix build, clean up headers, add public stuff to public headers
svn path=/trunk/; revision=15326
2005-05-15 23:24:11 +00:00
Casper Hornstrup
6208798644 Remove unused file
svn path=/branches/xmlbuildsystem/; revision=15325
2005-05-15 22:13:08 +00:00
Casper Hornstrup
4a429cdae4 Build and run tests
svn path=/branches/xmlbuildsystem/; revision=15324
2005-05-15 22:07:07 +00:00
Emanuele Aliberti
6a7f1b10c5 Make gcc 3.4.2 compile.
svn path=/trunk/; revision=15323
2005-05-15 21:41:22 +00:00
Emanuele Aliberti
468b7ba0f2 Correct a comment.
svn path=/trunk/; revision=15322
2005-05-15 21:39:10 +00:00
Gé van Geldorp
83deefac8c Handle case where a directory contains a '." but the
filename doesn't (i.e. has no extension)

svn path=/trunk/; revision=15321
2005-05-15 21:28:44 +00:00
Magnus Olsen
52b95ec424 change from atoi to sprintf
linux does not support itoa 

svn path=/trunk/; revision=15320
2005-05-15 21:11:37 +00:00
Alex Ionescu
19ea176f6d Properly create the Object Type Type and remove previous hacks added
svn path=/trunk/; revision=15319
2005-05-15 19:40:57 +00:00
Gé van Geldorp
d02a50d521 Don't let msvcrt import itself and fix the resulting problems
svn path=/branches/xmlbuildsystem/; revision=15318
2005-05-15 18:10:51 +00:00
Alex Ionescu
cf6037ee37 Make Object Type creation compatible with OB 2.0 from the caller's point of view. Use real structures for Object Type and ObjectType Initializer. Added two more hacks that I'll remove in the next commit
svn path=/trunk/; revision=15317
2005-05-15 17:59:33 +00:00
Casper Hornstrup
fa1312ce09 Generate proxy makefiles
svn path=/branches/xmlbuildsystem/; revision=15315
2005-05-15 15:56:06 +00:00
Casper Hornstrup
1c116b83ca Remove unused file
svn path=/branches/xmlbuildsystem/; revision=15314
2005-05-15 15:51:58 +00:00
Casper Hornstrup
a7b4b8b3ec Install rpcrt4.dll, samlib.dll, and setup.exe
svn path=/branches/xmlbuildsystem/; revision=15313
2005-05-15 14:30:35 +00:00
Casper Hornstrup
64b6731731 Overwrite registry only if the source files change
svn path=/branches/xmlbuildsystem/; revision=15312
2005-05-15 14:18:45 +00:00
Hartmut Birr
523c60c5d5 Don't push an already freed irp to the list (in IoFreeIrp).
svn path=/trunk/; revision=15311
2005-05-15 13:59:57 +00:00
Casper Hornstrup
7a812470b6 Re-insert makefile code for non-DLLs which was removed by accident
svn path=/branches/xmlbuildsystem/; revision=15310
2005-05-15 13:57:03 +00:00
Casper Hornstrup
01e18d413a Install explorer.exe in C:\WINDOWS
svn path=/branches/xmlbuildsystem/; revision=15309
2005-05-15 13:21:54 +00:00
Casper Hornstrup
dff44c9f17 Support modules with no base install directory
svn path=/branches/xmlbuildsystem/; revision=15308
2005-05-15 13:20:45 +00:00
Martin Fuchs
f6b3f734ac refresh available drive bar buttons after connecting to network drives or activating manual refresh
svn path=/trunk/; revision=15307
2005-05-15 12:13:17 +00:00
Casper Hornstrup
93b4d98160 Install .inf files in C:\WINDOWS\inf
svn path=/branches/xmlbuildsystem/; revision=15306
2005-05-15 12:06:12 +00:00
Casper Hornstrup
72dcc562ad Don't rename c_437.nls, c_1252.nls, and l_intl.nls on installation
svn path=/branches/xmlbuildsystem/; revision=15305
2005-05-15 12:04:02 +00:00
Casper Hornstrup
9017f3f4f6 Generate hooks and stubs for tests
svn path=/branches/xmlbuildsystem/; revision=15304
2005-05-15 11:58:48 +00:00
Martin Fuchs
d008691568 use the correct ids in options menu
svn path=/trunk/; revision=15303
2005-05-15 11:46:20 +00:00
Martin Fuchs
ba43f28c68 fix for window refresh in shell mode
svn path=/trunk/; revision=15302
2005-05-15 11:10:32 +00:00
Magnus Olsen
f20d4d059e Partiy implement long filename support
example filefilefile.txt can store now with cdmake
but not filefilefiles.txt have not check why it say not a iso9660 name 


svn path=/trunk/; revision=15301
2005-05-15 10:33:33 +00:00
Martin Fuchs
ac178266c3 ugly macro hack to use alloca() while keeping Wine's developers happy
svn path=/trunk/; revision=15300
2005-05-15 09:55:56 +00:00
Gé van Geldorp
c141408f1d user32 is becoming a big boy, give it some more space
svn path=/branches/xmlbuildsystem/; revision=15299
2005-05-15 09:41:00 +00:00
Gé van Geldorp
a0b63f65da Work around broken binutils which creates relocation
entries for the Export Table.

svn path=/branches/xmlbuildsystem/; revision=15298
2005-05-15 09:38:53 +00:00
Hervé Poussineau
5cec531950 Open port before sending IOCTLs
svn path=/trunk/; revision=15297
2005-05-15 09:30:25 +00:00
Hervé Poussineau
e1aa22c032 Correct implementation of IOCTL_SERIAL_SET_BAUD_RATE
Don't test FileObject in IRP_MJ_CREATE as it may be not valid

svn path=/trunk/; revision=15296
2005-05-15 09:29:30 +00:00
Gé van Geldorp
b7d6b92188 Remove local definitions for stuff which is now
present in our headers

svn path=/trunk/; revision=15295
2005-05-15 08:30:35 +00:00
Magnus Olsen
efe2391a80 fix uninitialized waring so gcc 3.4.3 can compile it
svn path=/trunk/; revision=15294
2005-05-15 06:49:01 +00:00
Alex Ionescu
036efb7e10 Removed incorrect Create/DuplicationNotify callbacks and replaced by a more correct Open callback which is what a windows driver would get. This is needed because of some changes I'm trying to make to get Parse routines to work properly, so I had to add two hacks for now, they will be removed within 2-3 commits
svn path=/trunk/; revision=15293
2005-05-15 04:56:52 +00:00
Casper Hornstrup
982dce03b5 Generate files for host zlib in object and output directories
svn path=/branches/xmlbuildsystem/; revision=15292
2005-05-14 22:55:21 +00:00
Gé van Geldorp
133454688d Don't include standard startup code
svn path=/branches/xmlbuildsystem/; revision=15291
2005-05-14 21:35:54 +00:00
Magnus Olsen
63d3f7d1a8 fix Warining msg used uninitialized for gcc 3.4.3
svn path=/trunk/; revision=15290
2005-05-14 20:57:23 +00:00
Martin Fuchs
34a8e38b0f add some additional translated czech strings from Wine
svn path=/trunk/; revision=15289
2005-05-14 20:07:51 +00:00
Martin Fuchs
d642e38ba1 rename czech resource file to sync wih Wine's filename
svn path=/trunk/; revision=15288
2005-05-14 19:58:30 +00:00
Martin Fuchs
6ebb2ab38d add polish resource file
svn path=/trunk/; revision=15286
2005-05-14 19:16:44 +00:00
Martin Fuchs
43e61f63ab fix Wine version of sort order switching
svn path=/trunk/; revision=15285
2005-05-14 19:16:24 +00:00
Gé van Geldorp
2832134fbc Implement WH_MOUSE_LL hook
svn path=/trunk/; revision=15284
2005-05-14 19:09:02 +00:00
Martin Fuchs
c7e747c1fa implement switching of file sort order
svn path=/trunk/; revision=15283
2005-05-14 18:57:07 +00:00
Magnus Olsen
dfc6fbe27e Activate serial mouse for livecd
now it support both ps2 and serial mouse

svn path=/trunk/; revision=15282
2005-05-14 18:04:53 +00:00
Gé van Geldorp
c1557a2be1 Present for GreatLord:
Implement WH_KEYBOARD_LL hook

svn path=/trunk/; revision=15281
2005-05-14 18:03:31 +00:00
Casper Hornstrup
e44380e9a3 Extract WINE resources at compile-time
svn path=/branches/xmlbuildsystem/; revision=15280
2005-05-14 17:57:31 +00:00
Casper Hornstrup
1732348d39 Only pass GCC specific options to GCC
svn path=/branches/xmlbuildsystem/; revision=15279
2005-05-14 15:07:11 +00:00
Casper Hornstrup
f326ceb70f Merge r15277 to trunk
svn path=/trunk/; revision=15278
2005-05-14 14:14:01 +00:00
Casper Hornstrup
91c4967ba6 Compile with DBG=1
svn path=/branches/xmlbuildsystem/; revision=15277
2005-05-14 14:08:31 +00:00
Emanuele Aliberti
4954251a04 distribute the sm system utility even if it does little now
svn path=/trunk/; revision=15276
2005-05-14 13:57:55 +00:00
Emanuele Aliberti
e6b395d0e7 compile the sm system utility
svn path=/trunk/; revision=15275
2005-05-14 13:43:55 +00:00
Emanuele Aliberti
e70c95d52f Little fix to compile with gcc 3.4.2
svn path=/trunk/; revision=15274
2005-05-14 12:54:53 +00:00
Casper Hornstrup
9d474ab0bd Merge 14981:15268 from trunk
svn path=/branches/xmlbuildsystem/; revision=15273
2005-05-14 12:37:12 +00:00
Martin Fuchs
0d88632d20 sync to Wine Patch: format_bytes()
svn path=/trunk/; revision=15272
2005-05-14 12:32:44 +00:00
Casper Hornstrup
72a6942f36 Copy w32api from trunk
svn path=/branches/xmlbuildsystem/; revision=15271
2005-05-13 21:23:37 +00:00
Casper Hornstrup
a73b954aba Remove w32api from branch
svn path=/branches/xmlbuildsystem/; revision=15270
2005-05-13 21:21:57 +00:00
Alex Ionescu
030580a782 Cleanup ntlock/unlockfile with proper io semantics..same stuff as previous patches
svn path=/trunk/; revision=15269
2005-05-13 21:07:40 +00:00
Casper Hornstrup
49d849fa8d Update installation instructions
svn path=/branches/xmlbuildsystem/; revision=15268
2005-05-13 19:47:30 +00:00
Casper Hornstrup
d32ad9196b Support compilerflag within IFs
svn path=/branches/xmlbuildsystem/; revision=15267
2005-05-13 19:17:44 +00:00
Casper Hornstrup
92bdf77b07 Cleanup template configuration file
svn path=/branches/xmlbuildsystem/; revision=15266
2005-05-13 19:01:46 +00:00
Martin Fuchs
6f61a478e8 display free and total disk space
svn path=/trunk/; revision=15265
2005-05-13 17:11:16 +00:00
Martin Fuchs
3feb9db02b adjustments for GCC and MinGW
svn path=/trunk/; revision=15264
2005-05-13 15:35:55 +00:00
Martin Fuchs
a0cb9c83ab - error handling for network connection dialogs
- implement "format disk" dialog

svn path=/trunk/; revision=15263
2005-05-13 15:32:04 +00:00
Martin Fuchs
bccd9d6a2c malloc.h include
svn path=/trunk/; revision=15262
2005-05-13 14:53:40 +00:00
Martin Fuchs
9759ec3705 implement network connect and disconnect dialogs
svn path=/trunk/; revision=15261
2005-05-13 14:48:10 +00:00
Martin Fuchs
37de341023 display source path in "move file" dialog
svn path=/trunk/; revision=15260
2005-05-13 14:21:37 +00:00
Martin Fuchs
6ff7821b69 fix comment, declare parameter type as constant
svn path=/trunk/; revision=15259
2005-05-13 10:27:19 +00:00
Martin Fuchs
e81b6ac90b replace numeric resource identifiers by their defined constants
svn path=/trunk/; revision=15258
2005-05-13 09:35:15 +00:00
Martin Fuchs
3d27af4e77 Wine compatibility changes
svn path=/trunk/; revision=15257
2005-05-13 09:09:07 +00:00
Alex Ionescu
2981638f77 Fix IRP structure (add missing member) and optimize io completion by allowing the io completion packet to be piggybacked on the IRP. Also make io completion use the cpu lookaside lists now as well as the paged pool as a last-chance attempt
svn path=/trunk/; revision=15256
2005-05-13 05:41:24 +00:00
Alex Ionescu
6d1d9cbac8 Implement Lookaside List allocation and release for IRPs on Per-CPU Lists, or global system lists if the per-cpu has been exhausted. This should tremendously reduce memory fragmentation and speed up I/o noticeably. Also, don't allocate IRPs with quota charge when they shouldn't.
svn path=/trunk/; revision=15255
2005-05-13 04:49:54 +00:00
Alex Ionescu
9ca493afb5 Fix lookaside structures, rewrite lookaside code to use new structures, remove some excess abstraction, correct export incorrectly exported as fastcall, fix up macros, add basic init code to allocate lookaside lists for IRPs as well as per-cpu lookaside lists for irps and completion packets
svn path=/trunk/; revision=15254
2005-05-13 03:34:13 +00:00
Art Yerkes
5510552add Fixed wrong STATUS_BUFFER_TOO_SMALL return to documented success return
in the buffer too small case.

svn path=/trunk/; revision=15253
2005-05-13 02:05:15 +00:00
Hervé Poussineau
dcb2ef8cd7 Change ASSERTs to assert on existent variables
svn path=/trunk/; revision=15252
2005-05-12 21:46:50 +00:00
Hervé Poussineau
7f0e11f913 White space cleanup, correct indentation
svn path=/trunk/; revision=15251
2005-05-12 21:45:20 +00:00
Hervé Poussineau
0af5d166a2 fdo.c: don't allocate a buffer with a SERENUM_TAG, because it is freed in ntoskrnl.
misc.c: correct comment
serenum.h: remove ExFreePoolWithTag macro and use function exported by ntoskrnl

svn path=/trunk/; revision=15250
2005-05-12 21:41:21 +00:00
Magnus Olsen
27e330b72b Remove all hardcode string to En.rc
so it can be translaterem

svn path=/trunk/; revision=15249
2005-05-12 21:10:10 +00:00
Casper Hornstrup
ec7d8b2029 Merge 12736:14980 from trunk
svn path=/branches/xmlbuildsystem/; revision=15248
2005-05-12 21:03:51 +00:00
Magnus Olsen
6873af6255 Did forget include En.rc :)
svn path=/trunk/; revision=15247
2005-05-12 20:26:34 +00:00
Magnus Olsen
3ad5fab2d4 Remove all hardcode string to En.rc
so it can be translate

svn path=/trunk/; revision=15246
2005-05-12 20:04:02 +00:00
Aleksey Bragin
0eff533e7c Added MessageBoxes in case of registry funcs errors
svn path=/trunk/; revision=15245
2005-05-12 19:46:14 +00:00
Casper Hornstrup
9c85c4d513 Generate make rules for creating directories if they don't exist
svn path=/branches/xmlbuildsystem/; revision=15244
2005-05-12 19:32:15 +00:00
Magnus Olsen
08142b98ea Remove all hardcode string to En.rc
so it can be translate

svn path=/trunk/; revision=15243
2005-05-12 19:31:10 +00:00
Magnus Olsen
d344ac5409 Add hex value to Color syntax so it working fine
Color x 
x = a - f



svn path=/trunk/; revision=15242
2005-05-12 18:20:41 +00:00
Thomas Bluemel
03800ad522 svn path=/trunk/; revision=15241 2005-05-12 18:08:25 +00:00
Alex Ionescu
c24c77ccaf Fix uninit var
svn path=/trunk/; revision=15240
2005-05-12 18:05:22 +00:00
Magnus Olsen
fbeb0ec2cd Add syntax Color x
x = 0 to 9 Now color are working as it should


svn path=/trunk/; revision=15239
2005-05-12 17:30:52 +00:00
Magnus Olsen
1add9174ff Fix two spelling error
thx dnordenberg to notice them

svn path=/trunk/; revision=15238
2005-05-12 16:44:39 +00:00
Alex Ionescu
5fe9818563 Small fix.
svn path=/trunk/; revision=15237
2005-05-12 11:54:08 +00:00
Magnus Olsen
ade7456218 really small optimze remove lenvalu * sizeof(WCHAR) so it doing it only one time
svn path=/trunk/; revision=15236
2005-05-12 05:01:23 +00:00
Alex Ionescu
32962bc31c cleanup NtDeviceIoControlFile a bit...remove some redundant stuff
svn path=/trunk/; revision=15235
2005-05-12 04:17:43 +00:00
Brian Palmer
942e1f4649 Remove old DJGPP NTVDM patch files.
svn path=/trunk/; revision=15234
2005-05-12 03:00:49 +00:00
Brian Palmer
4b2a42963f Support getting the boot drive from the BIOS or the value in the BPB.
svn path=/trunk/; revision=15233
2005-05-12 02:57:13 +00:00
Casper Hornstrup
d927b8d8fe Generate static libraries in intermediate directory
svn path=/branches/xmlbuildsystem/; revision=15232
2005-05-11 20:58:40 +00:00
Alex Ionescu
b693fc160a Fix incorrect call to ntopenprocess
svn path=/trunk/; revision=15231
2005-05-11 20:45:48 +00:00
Thomas Bluemel
23e79dcdb3 remove explicit bugcheck in NtOpenProcess when the caller supplies a thread CID of -1, looks like this was added for debug purpose and accidently committed.
svn path=/trunk/; revision=15230
2005-05-11 20:04:48 +00:00
Martin Fuchs
30ec640bd2 Synchronisation with ibrowser source code
svn path=/trunk/; revision=15229
2005-05-11 19:15:36 +00:00
Martin Fuchs
f5b2c461dc eliminate GCC4 warnings
svn path=/trunk/; revision=15228
2005-05-11 19:13:20 +00:00
Martin Fuchs
b269a8333e Synchronisation with explorer source code
svn path=/trunk/; revision=15227
2005-05-11 19:12:26 +00:00
Martin Fuchs
7862b7c070 Makefile maintainancement
svn path=/trunk/; revision=15226
2005-05-11 19:12:03 +00:00
Martin Fuchs
7313b15dbd eliminate GCC4 warnings
svn path=/trunk/; revision=15225
2005-05-11 19:11:27 +00:00
Martin Fuchs
267f11a8b4 eliminate GCC4 warnings (patch by Thomas Weidenmueller)
svn path=/trunk/; revision=15224
2005-05-11 19:08:36 +00:00
Casper Hornstrup
be0cf8ed70 Use mingw convention for import libraries (libmodule.a)
svn path=/branches/xmlbuildsystem/; revision=15223
2005-05-11 17:37:46 +00:00
Martin Fuchs
4358dbd01a fix listbox insert algorithmus
svn path=/trunk/; revision=15222
2005-05-11 17:30:21 +00:00
Casper Hornstrup
7dfdcabef9 Rebuild import library if definition file is modified
svn path=/branches/xmlbuildsystem/; revision=15221
2005-05-11 17:12:24 +00:00
Thomas Bluemel
8ece706e06 revert the changes i accidently committed
svn path=/trunk/; revision=15220
2005-05-11 17:03:00 +00:00
Thomas Bluemel
abef9ffacb fixed warnings
svn path=/trunk/; revision=15218
2005-05-11 16:50:39 +00:00
Thomas Bluemel
58d25e229d fixed function prototype
svn path=/trunk/; revision=15217
2005-05-11 16:15:25 +00:00
Martin Fuchs
36551f7fd9 fix for updated MinGW headers: comditional compilation for HSHELL_RUDEAPPACTIVATED
svn path=/trunk/; revision=15216
2005-05-11 15:24:59 +00:00
Martin Fuchs
4dd64b9022 some more spelling fixes
svn path=/trunk/; revision=15215
2005-05-11 14:50:00 +00:00
Martin Fuchs
a0b46d6812 Sync to Wine:
date: 2005/02/25 14:07:56
Jon Griffiths <jon_p_griffiths@yahoo.com>
Documentation spelling fixes.

svn path=/trunk/; revision=15214
2005-05-11 14:49:24 +00:00
Martin Fuchs
aa88e039cb Sync to Wine: (rewritten bug fix)
date: 2004/12/14 11:43:30
Piotr Caban <pio13@poczta.onet.pl>
Fixed display bug.

svn path=/trunk/; revision=15213
2005-05-11 14:46:42 +00:00
Martin Fuchs
dfd0cd04aa Sync to Wine:
date: 2004/11/30 21:38:57
Eric Pouech <pouech-eric@wanadoo.fr>
Const correctness fixes.

svn path=/trunk/; revision=15212
2005-05-11 14:36:40 +00:00
Martin Fuchs
7b801b61fd - Sync to Wine:
date: 2004/11/24 18:28:31;  author: julliard
Avoid using the MAKEPOINTS macro, it's broken on big endian.

- Fix of this patch: use screen relative coordinates for ShellFolderContextMenu()

svn path=/trunk/; revision=15211
2005-05-11 14:33:51 +00:00
Martin Fuchs
9b8bfb6e8b Sync to Wine:
date: 2005/02/23 20:58:09
Henning Gerhardt <henning.gerhardt@web.de>
Small fix for the German resource file.

date: 2005/02/15 20:46:19
Henning Gerhardt <henning.gerhardt@web.de>
Add/updated German resources.

svn path=/trunk/; revision=15210
2005-05-11 14:19:23 +00:00
Martin Fuchs
1b32c4c9b7 Sync to wine:
date: 2005/02/14 11:12:30
Marcelo Duarte <wine-devel@bol.com.br>
Update the resources for Portuguese.

date: 2005/02/10 17:14:15
Américo José Melo <mmodem00@netvisao.pt>
Francois Gouget <fgouget@codeweavers.com>
Translate the Wine resources to Portuguese.

svn path=/trunk/; revision=15209
2005-05-11 14:18:24 +00:00
Martin Fuchs
2bccb359f2 Sync to Wine:
date: 2005/01/26 19:42:40
Hans Leidekker <hans@it.vu.nl>
Don't use utf8 in rc files.

svn path=/trunk/; revision=15208
2005-05-11 14:16:05 +00:00
Martin Fuchs
319058265a sync to wine:
date: 2005/02/16 21:10:59
Alex VillacÝs Lasso <a_villacis@palosanto.com>
Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for LANG_SPANISH in all
resources, so that Spanish locales other than Spain also use Spanish
resources.

date: 2005/01/03 14:45:36
JosÚ Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
Added Spanish translation.


date: 2004/11/21 15:49:24
JosÚ Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
Updated Spanish translations.

svn path=/trunk/; revision=15207
2005-05-11 14:14:33 +00:00
Martin Fuchs
605a9b8e50 add chech and svedish resource files
svn path=/trunk/; revision=15206
2005-05-11 14:11:40 +00:00
Thomas Bluemel
4fb7ebe206 use proper scancode to create upper-case hex numbers directly
svn path=/trunk/; revision=15205
2005-05-11 13:20:34 +00:00
Magnus Olsen
fc2d392cac use _wcsupr to make swedish chater display right when it change langues
this fix maby also fix rus langues display right now after langues change


svn path=/trunk/; revision=15204
2005-05-11 09:56:24 +00:00
Maarten Bosma
26bfaa0941 Set language to czech not to english in cz.rc
svn path=/trunk/; revision=15203
2005-05-10 13:03:40 +00:00
Hervé Poussineau
b4a414fec7 Allow a NULL PeripheralType in IoQueryDeviceDescription
svn path=/trunk/; revision=15202
2005-05-10 09:38:20 +00:00
Hervé Poussineau
c32fd82fbf Implement IoInvalidateDeviceRelations
svn path=/trunk/; revision=15201
2005-05-10 09:34:20 +00:00
Thomas Bluemel
fa832dae41 fixed some more warnings
svn path=/trunk/; revision=15200
2005-05-10 08:15:08 +00:00
Thomas Bluemel
e55b576d82 fixed some more warnings
svn path=/trunk/; revision=15199
2005-05-10 08:04:08 +00:00
Thomas Bluemel
d421003cd4 - disable -Werror for lib/mesa32 to get it to compile with GCC4, however, an upgrade to 6.2.1 would solve these problems
- fixed a few more warnings, the the tree should now fully compile and work with GCC4

svn path=/trunk/; revision=15198
2005-05-10 06:17:54 +00:00
Magnus Olsen
184f23e0a5 Swedish charaters was gone. it should also commit to wine
svn path=/trunk/; revision=15197
2005-05-10 06:13:39 +00:00
Alex Ionescu
2670be2117 Reuse buffer in IopQueryNameFile, since it's temporary and the first one we allocate is already large enough. Also block out SEH in ntread/write file since it seems to crash some user mode code.
svn path=/trunk/; revision=15196
2005-05-09 23:39:08 +00:00
Alex Ionescu
de8ae0fbd2 Revert most of IoCreateStreamFileObject... it's wrong but needs to be wrong for now.
svn path=/trunk/; revision=15195
2005-05-09 22:35:43 +00:00
Phillip Susi
dfcf0aade2 Fixed backwards access check that was causing NtWriteFile to fail when given a read only buffer
svn path=/trunk/; revision=15194
2005-05-09 22:12:43 +00:00
Thomas Bluemel
6ed3a8cd3f fixed some more warnings
svn path=/trunk/; revision=15193
2005-05-09 22:05:47 +00:00
Hartmut Birr
78fdef703c Removed the deallocation of the irp on error after IoBuildSynchronousFsdRequest in NtRead/WriteFile.
There is no irp at this point. If the exception handler is hit, the irp isn't set.

svn path=/trunk/; revision=15192
2005-05-09 21:28:01 +00:00
Alex Ionescu
3c1ebc7084 Fix rc file
svn path=/trunk/; revision=15191
2005-05-09 20:14:10 +00:00
Alex Ionescu
1f40540008 Implement Access State support (SeCreate/DeleteAccessState and SeSetAccessStateGenericMapping. Based on a patch by Javier M. Mellid
svn path=/trunk/; revision=15190
2005-05-09 19:57:41 +00:00
Alex Ionescu
786ed0c605 unmix cases
svn path=/trunk/; revision=15189
2005-05-09 19:08:49 +00:00
Alex Ionescu
61d93abfe3 grr
svn path=/trunk/; revision=15188
2005-05-09 19:05:41 +00:00
Filip Navara
43a5877d27 tinus <o112w8r02@sneakemail.com>
Use ExFreePool instead of RtlFreeUnicodeString.

svn path=/trunk/; revision=15187
2005-05-09 16:00:21 +00:00
Magnus Olsen
581f944e3e Remove ntvdmpat.exe it is not need any longe it was for djgpp
svn path=/trunk/; revision=15186
2005-05-09 12:32:10 +00:00
Steven Edwards
e92888a801 strip the whitespace one more time
svn path=/trunk/; revision=15185
2005-05-09 11:03:44 +00:00
Steven Edwards
3546d3215b correct typo in header to fix the build
svn path=/trunk/; revision=15184
2005-05-09 11:02:48 +00:00
Magnus Olsen
86c0dfdf7e update swedish translation by Harteex
svn path=/trunk/; revision=15183
2005-05-09 10:06:58 +00:00
Magnus Olsen
3280490f6d Fix spellinng error in En.rc
STRING_DIR_HELP8 it should not be "Dirs" it must be "Files"
then it was a "command" wrong spelling in one place


 

svn path=/trunk/; revision=15182
2005-05-09 09:52:48 +00:00
Magnus Olsen
dfd6899631 remove doublecate string STRING_CHCP_ERROR2 and replace it with STRING_ERROR_INVALID_PARAM_FORMAT
Fr.rc and En.rc 
STRING_CHCP_ERROR2 been remove

svn path=/trunk/; revision=15181
2005-05-09 08:43:05 +00:00
Magnus Olsen
32bf2f5e5e remove doublecate string STRING_CHCP_ERROR3 and replace it with STRING_ERROR_INVALID_PARAM_FORMAT
Fr.rc
change STRING_CHCP_ERROR3 to STRING_ERROR_INVALID_PARAM_FORMAT

En.rc 
STRING_CHCP_ERROR3 been remove

svn path=/trunk/; revision=15180
2005-05-09 08:23:18 +00:00
Magnus Olsen
395512ca9a wrong string where being use when you type echo
thx David Nordenberg for notify me about it

svn path=/trunk/; revision=15179
2005-05-09 06:14:54 +00:00
Alex Ionescu
37707ad1a6 Make the remaning code match the current formatting instead of being really ugly, and make some changes to IoCreateFileStreamObject (which is wrong anyways, since it's doing what *Lite should do)
svn path=/trunk/; revision=15178
2005-05-09 04:31:04 +00:00
Alex Ionescu
834acf81da Fix IopSecurityFile: Do not use BuildFsd, create IRP manually for sync/async, support assigning SD to device instead of file, and signal unimplemented set sd to device, simplify code for file object setting and remove duplication, wait on right event and return the matching status. moved static io security function to se subsystem and renamed it from default to world to better match what it's doing
svn path=/trunk/; revision=15177
2005-05-09 03:58:35 +00:00
Alex Ionescu
db63a3b1ad Fix NtSetInformationFile: Cleanup FileCompletionInformation case, use Tag. Use right device object, read FileObject->FinalStatus, use right flags to IO manager can do the cleanup and buffered io semantics, support sync or async waiting
svn path=/trunk/; revision=15176
2005-05-09 03:02:36 +00:00
Alex Ionescu
02a4600eb8 Fix NtWriteFile: Get right Deviceobject, Use FileObject->FinalStatus, use FileObject-.CurrentByteOffset if ByteOffset == FILE_USER_FILE_POINTER_POSITION, add SEH, use right event requested access, set IRP_WRITE_OPERATION flag, add support for IRP_NOCACHE and add support for SL_WRITE_THROUGH if FO_WRITE_THROUGH is enabled.
svn path=/trunk/; revision=15175
2005-05-09 02:15:03 +00:00
Steven Edwards
71b6d3cb0f strip whitespace from end of lines
svn path=/trunk/; revision=15174
2005-05-09 02:04:53 +00:00
Steven Edwards
5c173216a2 strip whitespace from end of lines
svn path=/trunk/; revision=15173
2005-05-09 01:50:07 +00:00
Steven Edwards
7cecaf25e8 strip whitespace from end of lines
svn path=/trunk/; revision=15172
2005-05-09 01:46:57 +00:00
Steven Edwards
baa31fc9e5 strip whitespace from end of lines
svn path=/trunk/; revision=15171
2005-05-09 01:46:46 +00:00
Steven Edwards
c31bbf06e5 strip whitespace from end of lines
svn path=/trunk/; revision=15170
2005-05-09 01:44:13 +00:00
Steven Edwards
189e9fae5c strip whitespace from end of lines
svn path=/trunk/; revision=15169
2005-05-09 01:43:41 +00:00
Steven Edwards
395f5dc9e5 strip whitespace from end of lines
svn path=/trunk/; revision=15168
2005-05-09 01:43:25 +00:00
Steven Edwards
6a73e87d9b strip whitespace from end of lines
svn path=/trunk/; revision=15167
2005-05-09 01:42:07 +00:00
Steven Edwards
ae4b8f6e93 strip whitespace from end of lines
svn path=/trunk/; revision=15166
2005-05-09 01:41:26 +00:00
Steven Edwards
eace72f07c strip whitespace from end of lines
svn path=/trunk/; revision=15165
2005-05-09 01:41:02 +00:00
Steven Edwards
e4be245882 strip whitespace from end of lines
svn path=/trunk/; revision=15164
2005-05-09 01:38:29 +00:00
Alex Ionescu
2d9fea6a7c Fix KDBG and enable IRP_NOCACHE for ReadFile. Also disable SEH for Buffer since PRobeForWrite has a bug and cannot probe past a page
svn path=/trunk/; revision=15163
2005-05-09 01:14:42 +00:00
Alex Ionescu
9248a9d298 Fix uninitailzied variable on dbg=0
svn path=/trunk/; revision=15162
2005-05-09 01:06:39 +00:00
Alex Ionescu
4dbcb4368f Grrr..it's getting late or something. CORRECT fix.
svn path=/trunk/; revision=15161
2005-05-09 01:01:18 +00:00
Alex Ionescu
261e754d28 Sorry, wrong version got commited
svn path=/trunk/; revision=15160
2005-05-09 00:41:55 +00:00
Magnus Olsen
4cced63916 remove last hardcode string to En.rc
need translate to other langes new strings in En.rc
are IDS_DNS_ERROR, IDS_SOCKET_ERROR, IDS_GET_SRV_ERROR, IDS_CON_SRV_ERROR 

svn path=/trunk/; revision=15159
2005-05-09 00:38:57 +00:00
Alex Ionescu
2ba13f06b1 Fix a previous bug and fix NtReadFile: Read FileObject Status, Set Read Operation, support IRP_NOCACHE (ReactOS doesn't like this because of some other bug i'm investigating), use right event reqeuested access, add SEH
svn path=/trunk/; revision=15158
2005-05-09 00:33:23 +00:00
Magnus Olsen
dd19f592a2 Remove all hardcode string from format to En.rc
so it can be translate

svn path=/trunk/; revision=15157
2005-05-09 00:05:15 +00:00
Magnus Olsen
31dea0cce5 Udate french langues and make it unicode
by Usurp

Set eol-style on resurce.h

svn path=/trunk/; revision=15156
2005-05-08 22:02:16 +00:00
Thomas Bluemel
6dd1154d67 Patch by tinus: use the right access mode. fixes bug 627
svn path=/trunk/; revision=15155
2005-05-08 21:55:28 +00:00
Magnus Olsen
a2d9c4e1e9 set eol style
svn path=/trunk/; revision=15154
2005-05-08 21:54:32 +00:00
Magnus Olsen
096abbc0b1 forget the .rc file
svn path=/trunk/; revision=15153
2005-05-08 21:51:23 +00:00
Magnus Olsen
689829649e My and W3seek patch to make format ansi and unicode independen
it is first step to make a rc files for format

svn path=/trunk/; revision=15152
2005-05-08 21:50:39 +00:00
Alex Ionescu
3dfbc26474 Fix NtQueryDirectoryFile to wait on right status, to actually use the event that the user gives, to select the right device and sync/async wait mode and always use FileIndex = 0 since nothing else can be used for this API.
svn path=/trunk/; revision=15151
2005-05-08 20:20:14 +00:00
Magnus Olsen
67627091db Reomve string STRING_CMD_INVALIDDRIVE in En.rc it was doublcate of STRING_FREE_ERROR1
thanks Usurp for finding it 

svn path=/trunk/; revision=15150
2005-05-08 20:15:54 +00:00
Thomas Bluemel
54f6a09bb2 prevent buffer overflow, LoadString accepts the size of the buffer in TCHARs, not in bytes! Please guys, read the documentation of the function _before_ you use it...
svn path=/trunk/; revision=15149
2005-05-08 19:22:28 +00:00
Klemens Friedl
539af1d0d0 update taskmgr german language resource file
svn path=/trunk/; revision=15148
2005-05-08 19:14:18 +00:00
Thomas Bluemel
51d7b8f785 fixed more uninitialized variables warnings
svn path=/trunk/; revision=15147
2005-05-08 19:10:23 +00:00
Thomas Bluemel
87bab86c6b don't generate lvalue assignment code
svn path=/trunk/; revision=15145
2005-05-08 18:32:57 +00:00
Magnus Olsen
65305e4968 Remove two hardcode string to En.rc it is IDS_Not_Responding, IDS_Running
thx irc: potapnik for notice one of them 


svn path=/trunk/; revision=15144
2005-05-08 18:20:39 +00:00
Casper Hornstrup
df8fe14cb4 Remove unneeded w32api files
svn path=/trunk/; revision=15143
2005-05-08 18:07:35 +00:00
Casper Hornstrup
c78d3be5ff Re-add local w32api changes
svn path=/trunk/; revision=15142
2005-05-08 18:02:41 +00:00
Casper Hornstrup
01df92bcb4 Copy w32api 2.5 to trunk
svn path=/trunk/; revision=15141
2005-05-08 17:44:37 +00:00
Casper Hornstrup
701c28c2d1 Delete old w32api
svn path=/trunk/; revision=15140
2005-05-08 17:43:21 +00:00
Magnus Olsen
6ad1c42efb Remove last hardcode string I have check the soure 3more time after I found some more hardcode string
at last every hardcode string are gone in cmd and place in En.rc
new strings in en.rc
STRING_COPY_FILE , STRING_DELETE_WIPE, STRING_FOR_ERROR, STRING_SCREEN_COL, STRING_SCREEN_ROW, STRING_TIMER_TIME

remove some unlsess value in chcp it is no longer in use thanks we are  chaching the codepage hole time. 

svn path=/trunk/; revision=15136
2005-05-08 17:33:17 +00:00
Alex Ionescu
59b1628118 forgot this guy
svn path=/trunk/; revision=15133
2005-05-08 16:50:18 +00:00
Hartmut Birr
578153056c Changed the trap prolog, each exception can have its own trap handler.
svn path=/trunk/; revision=15132
2005-05-08 16:07:43 +00:00
Hartmut Birr
647ee2a30d Fixed the unlocking of pages from a mdl.
svn path=/trunk/; revision=15131
2005-05-08 16:02:38 +00:00
Hartmut Birr
5fd03c29e4 Free the irp after a close operation.
svn path=/trunk/; revision=15130
2005-05-08 16:00:59 +00:00
Hartmut Birr
6e529ef561 Fixed the stack switching.
It isn't possible to access memory between changing the stack and setting the cr3 register. 
A page fault needs a valid kmode stack which is possible not available.

svn path=/trunk/; revision=15129
2005-05-08 15:59:07 +00:00
Gé van Geldorp
f4ce8b5664 Fix for nasm 0.98
svn path=/trunk/; revision=15124
2005-05-08 15:40:25 +00:00
Magnus Olsen
e622b8798b found some hard code string move them to En.rc
them new are STRING_CMD_INVALIDDRIVE, STRING_CMD_SHELLINFO, STRING_VERSION_RUNVER
remove some #define strings that was not in use. 
update ver so it output svn version number and update copyright note 
it take the copyright and buildversion from <reactos/resource.h> and <reactos/buildno.h> 
so we only need change it on one place

svn path=/trunk/; revision=15123
2005-05-08 14:48:24 +00:00
Casper Hornstrup
1513e26e14 Relink executable if definition file changes.
svn path=/branches/xmlbuildsystem/; revision=15122
2005-05-08 14:39:46 +00:00
Casper Hornstrup
f614754ad3 Be consistent when passing --dll argument to gcc
svn path=/branches/xmlbuildsystem/; revision=15121
2005-05-08 14:30:04 +00:00
Casper Hornstrup
d8679de61a Build non-stripped version of ntoskrnl.exe if requested
svn path=/branches/xmlbuildsystem/; revision=15120
2005-05-08 13:45:50 +00:00
Magnus Olsen
d963f8c48f "Sync to Wine-20050419" by GvG
update reactos specify patch by Magnus Olsen
markout better what is reactos specify code
but not all code are not mark

svn path=/trunk/; revision=15119
2005-05-08 11:51:28 +00:00
Hartmut Birr
ad3d28c6d8 Free the irp after a close operation.
svn path=/trunk/; revision=15118
2005-05-08 10:33:45 +00:00
Hartmut Birr
83fb8b7c7c - Changed IopCompleteRequest back to the old schematics (rev 14933) with some minor corrections.
- The status results are always set before an event is signaled.    
- Some checks for ASYNC irp's were wrong (missing brackets, now replaced with SyncIrp).    
- Don't signal the FO event if it is the same as the UserEvent.  
- Set the IOSB on error for async irp's with a sync FO (fix bug #609).    

IMHO, the old schematics is wrong, because on error it is possible that an event
isn't signaled if the driver has previous returned STATUS_PENDING.   
In this case, the caller will wait forever.

svn path=/trunk/; revision=15117
2005-05-08 10:26:34 +00:00
Alex Ionescu
35deccffea Make rtl use a single header. Helps for PCH and will help for the new Headers (no need to change each file)
svn path=/trunk/; revision=15115
2005-05-08 05:14:46 +00:00
Steven Edwards
f60871a43b remove whitespace from end of lines
svn path=/trunk/; revision=15112
2005-05-08 04:22:15 +00:00
Steven Edwards
27479fb866 remove whitespace from end of lines
svn path=/trunk/; revision=15111
2005-05-08 04:07:56 +00:00
Thomas Bluemel
917fe293f6 more fixes for GCC4
svn path=/trunk/; revision=15110
2005-05-08 03:09:14 +00:00
Thomas Bluemel
1d36259d85 Don't declare constants as export and later define it as static. This is not allowed by GCC4.
svn path=/trunk/; revision=15109
2005-05-08 02:30:45 +00:00
Steven Edwards
93f075f207 remove whitespace from end of lines
svn path=/trunk/; revision=15108
2005-05-08 02:16:32 +00:00
Steven Edwards
1e81d3ff1f remove whitespace from end of lines
svn path=/trunk/; revision=15107
2005-05-08 02:15:21 +00:00
Steven Edwards
476cbed37c remove whitespace from end of lines
svn path=/trunk/; revision=15106
2005-05-08 02:11:54 +00:00
Magnus Olsen
f6b87bd320 Fireball patch for fixing RtlUnicodeStringToInteger and RtlCharToInteger
<Fireball> Imported WINE's RtlUnicodeStringToInteger and RtlCharToInteger - they were seriously broken in our revision. Thanks to GreatLord for his help pointing out this bug with me :)

svn path=/trunk/; revision=15092
2005-05-07 22:17:03 +00:00
Steven Edwards
456be5d16b remove trailing whitespace at end of lines
svn path=/trunk/; revision=15091
2005-05-07 21:24:31 +00:00
Magnus Olsen
1c29a40c45 doubicate res id my fualt
now everthing should print out right strings


svn path=/trunk/; revision=15090
2005-05-07 20:47:57 +00:00
Hartmut Birr
8005202506 - initialize a user profile before loading syssetup.dll.
- this makes it possible to install ros over an existing ros.

svn path=/trunk/; revision=15089
2005-05-07 20:20:46 +00:00
Magnus Olsen
8dd7ee7eb4 Fix a old bug in dir it did only accpet lower letters as param
change from ansi _toupper to tchar  _totupper 
it is now both uncide and ansi compatible

svn path=/trunk/; revision=15088
2005-05-07 20:02:50 +00:00
Magnus Olsen
fb0b90fd1b Andreas Bjerkeholt : Swedish translation, proofread by David Nordenberg
svn path=/trunk/; revision=15087
2005-05-07 18:20:23 +00:00
Magnus Olsen
00eb5279ca remove a debug msg after me
svn path=/trunk/; revision=15086
2005-05-07 17:57:12 +00:00
Magnus Olsen
db7dc4e7d1 Add *. to dir but it does not working in ros but in windows fine
some bug in ros 

svn path=/trunk/; revision=15085
2005-05-07 17:48:25 +00:00
Alex Ionescu
cd5450f6f9 Implement FsRtlAllocateResource, FsRtlIsPagingFile, FsRtlBalanceReads. Fix some incorrect function prototypes, rename mdl.c to fastio.c and add some more functions to it. Implement FsRtlGetfileSize to use fastio, combine dbcsname.c and name.c and pretty-fy the array, clean up some ugly formatting. Create context.c and move stream/file context routines there.
svn path=/trunk/; revision=15084
2005-05-07 17:44:54 +00:00
Magnus Olsen
534059e50f Remove the two last langues string it was doublecate
small change to STRING_PATH_ERROR1 in En.rc and Fr.rc
thanks Usurp for notice it



svn path=/trunk/; revision=15083
2005-05-07 15:58:58 +00:00
Alex Ionescu
881487dc6c FILE_BASIC_INFORMATION is 0x28 bytes and aligned on a 8byte boundary. Thanks to Hartmut for notifying me of a bug
svn path=/trunk/; revision=15082
2005-05-07 15:40:03 +00:00
Magnus Olsen
8e7e661c54 implement VOID ConOutResPuts (UINT resID), VOID ConErrResPuts (UINT resID) to outpust msg from rc files
it take less memmory now, and it is bit faster 

CMD_ModuleHandle 
contain GetModuleHandle and it is only execute in main() in cmd 
it optimze for lite more speed in cmd

Langues changes
in En.rc follow new strings have been add and can be translate
STRING_ERROR_WRONG_DATE
STRING_SET_ERROR

svn path=/trunk/; revision=15081
2005-05-07 15:31:07 +00:00
Eric Kohl
104e05622a Implement AssertFail and GetSetFileTimestamp.
svn path=/trunk/; revision=15080
2005-05-07 15:22:32 +00:00
Alex Ionescu
0abe7f6039 Implement FsRtlMdlRead, FsRtlMdlReadComplete, FsMdlReadCompleteDev, FsRtlMdlWRiteComplete, FsRtlMdlWriteCompleteDev, FsRtlPrepareMdlWrite, CcMdlReadCompleted, CcMdlWriteComplete, CcMdlReadCompleteDev
svn path=/trunk/; revision=15079
2005-05-07 15:19:33 +00:00
Magnus Olsen
e18192ed67 Forget change two line in chcp so it did not compile
svn path=/trunk/; revision=15078
2005-05-07 12:04:59 +00:00
Magnus Olsen
a418e5094f the name GetCodePage and OutCodePage is a bit misleading, change it to InputCodePage and OutputCodePage
svn path=/trunk/; revision=15077
2005-05-07 11:54:22 +00:00
Magnus Olsen
e23d422877 Add cache for codepage so it does not call hole time on csrss when it wring out text
it will incress the speed.  Thx w3seek and kjk for the idea.

svn path=/trunk/; revision=15076
2005-05-07 11:14:58 +00:00
Casper Hornstrup
fcd3eba58a Make expat a static library
svn path=/branches/xmlbuildsystem/; revision=15075
2005-05-07 08:32:28 +00:00
Casper Hornstrup
0f6993a1eb Correct typo
svn path=/branches/xmlbuildsystem/; revision=15074
2005-05-07 08:15:07 +00:00
Casper Hornstrup
9b6d13c91b Correctly forward exports to NTDLL
svn path=/branches/xmlbuildsystem/; revision=15073
2005-05-07 08:08:12 +00:00
Casper Hornstrup
2bf694521a Smdll is a native DLL. Thanks to Ge van Geldorp for figuring this out.
svn path=/branches/xmlbuildsystem/; revision=15072
2005-05-07 07:46:54 +00:00
Alex Ionescu
a027f33c15 Update Fast I/O Dispatch routines to proper defintions, and move some stuff into io defines instead of internal native types. Remove outdated data due to newest IFS.
svn path=/trunk/; revision=15071
2005-05-07 06:09:56 +00:00
Alex Ionescu
f11525033d Fix driver loading. patch by tinus
svn path=/trunk/; revision=15070
2005-05-07 01:17:36 +00:00
Alex Ionescu
ee7e1eefbe More IRP Completion changes. Use proper stack count and other semantics, as documented in NT File System Internals. These changes don't break anything :P
svn path=/trunk/; revision=15069
2005-05-07 01:13:04 +00:00
Alex Ionescu
7ed5318927 Update ETHREAD to latest version.
svn path=/trunk/; revision=15068
2005-05-07 00:37:48 +00:00
Thomas Bluemel
c38185a947 ReadFile should return 0 to lpNumberOfBytesRead if NtReadFile returned STATUS_END_OF_FILE for synchronous operations
svn path=/trunk/; revision=15067
2005-05-07 00:21:06 +00:00
Alex Ionescu
3d44032203 Fix win32k to use new EPROCESS defintion
svn path=/trunk/; revision=15066
2005-05-06 22:55:52 +00:00
Alex Ionescu
8c4f9d3417 Update EPROCESS to latest version. Basic Fast Referencing Stubs to allow Token access. Needs to be implemented. Use ActiveProcessLinks instead of ros-specific list.
svn path=/trunk/; revision=15065
2005-05-06 22:54:40 +00:00
Gé van Geldorp
c9ff7749cf Link against static lib instead of dll
svn path=/branches/xmlbuildsystem/; revision=15064
2005-05-06 22:38:00 +00:00
Thomas Bluemel
6ab4605c43 upgrade to PSEH2 (note, the new macros are still named _SEH_*, not _SEH2_*!)
svn path=/trunk/; revision=15063
2005-05-06 22:25:30 +00:00
Aleksey Bragin
9c40b2406e Patch by tinus: Resolves issue of keyboard detection when e.g. booting ReactOS under VMWare with no keyboard grabbed.
svn path=/trunk/; revision=15062
2005-05-06 21:18:20 +00:00
Magnus Olsen
069ef02dff <tinus_> "Forgotten file from commit 14982"
svn path=/trunk/; revision=15061
2005-05-06 20:45:30 +00:00
Magnus Olsen
d01fb36f3c HKLM,"SYSTEM\CurrentControlSet\Services\i8042Prt\Parameters","SampleRate",0x00010001,0x00000060
60 are the dec value but it have not be convort to hex that is 0x3c

legmet value are, e.g., 10, 20, 40,   60, 80, 100, 200.'
in dec in hex 0x0a, 0x14, 0x28, 0x3c, 0x50, 0x64,  0xc8

svn path=/trunk/; revision=15060
2005-05-06 20:12:37 +00:00
Gé van Geldorp
6bd014f928 Update status
svn path=/trunk/; revision=15059
2005-05-06 19:42:39 +00:00
Gé van Geldorp
1bac2f80fc Sync to Wine-20050419:
Peter Berg Larsen <pebl@math.ku.dk>
- Janitorial: Get rid of strncpy/strncpyW.

svn path=/trunk/; revision=15057
2005-05-06 19:18:46 +00:00
Gé van Geldorp
03a1e1b191 Sync to Wine-20050419:
Robert Reif <reif@earthlink.net>
- Stub out DRVM_MAPPER_RECONFIGURE support.
- Correctly handle where waveOutGetPosition changes timepos.wType
  because the requested type is not supported.
- Added Jeremy White's waveOutGetPosition fix to waveInGetPosition.
- Fix memory leak in error path.
- Provide default implementation of waveInPrepareHeader and
  waveInUnprepareHeader if driver doesn't support them.
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Spanish translations updated.
Peter Berg Larsen <pebl@math.ku.dk>
- Assorted memleak fixes. Found on Michael Stefaniuc smatch list.
Jeremy White <jwhite@codeweavers.com>
- Do not fallback to defaults if a driver, mapper, or midi is specified
  in the registry; consolidate MMDRV_Init() into a single function.
Robert Reif <reif@earthlink.net>
- Fix memory leak when there are too many drivers.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Correct and complete some api documentation.
Filip Navara <xnavara@volny.cz>
- Specify correct buffer size in GetPrivateProfileStringW calls.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Jason Edmeades <us@the-edmeades.demon.co.uk>
- Avoid trap in mixerGetLineControlsA when cControls is uninitialized
  and MIXER_GETLINECONTROLSSF_ONEBYTYPE requested.

svn path=/trunk/; revision=15056
2005-05-06 19:16:10 +00:00
Gé van Geldorp
c963e3149a Fix filename case
svn path=/trunk/; revision=15055
2005-05-06 19:11:20 +00:00
Casper Hornstrup
610edc2729 Correct typo
svn path=/trunk/; revision=15054
2005-05-06 19:06:59 +00:00
Magnus Olsen
9736e48f66 Thx w3seek that pointout a bug in ConInString it should have been in fristplase GetConsoleCP() instead for GetConsoleOutputCP
svn path=/trunk/; revision=15053
2005-05-06 17:30:45 +00:00
Magnus Olsen
3f0b1b9276 At last unicode version of cmd are now output text with right code page
so charater on other langues like swedish, french, ... will display right now

svn path=/trunk/; revision=15052
2005-05-06 17:10:21 +00:00
Thomas Bluemel
b62466eed1 - fixed TransactNamedPipe to properly wait on completion for synchronous operations
- prevent completion port notification by not passing an APC context to the kernel when the low-order bit of the event handle is set (for asynchronous operations)

svn path=/trunk/; revision=15051
2005-05-06 16:47:09 +00:00
Gé van Geldorp
bb1d3b119b Sync to Wine-20050419:
Peter Berg Larsen <pebl@math.ku.dk>
- Strncpy elimination.
- Janitorial: Get rid of strncpy/strncpyW.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Troy Rollo <wine@troy.rollo.name>
- Corrections to UrlIsW and UrlIsA.
- URL_IS_OPAQUE results depend only on the scheme, not on the URL.
- URL_IS_FILEURL also only depends on the scheme ("file:").
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Robert Shearman <rob@codeweavers.com>
- Fix SHCopyKey to treat string parameter correctly as source path
  instead of destination path.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Use LMEM_ flags for LocalAlloc(), not GMEM_ (GlobalAlloc).
- Implement @188,190,195,200,256,478,481.
- IUnknown_EnableModeless() also handles IOleInPlaceActiveObject.
- Tests and small fix for PathMakePretty().
- Fix a crash and test failure with early native dlls.

svn path=/trunk/; revision=15050
2005-05-06 16:23:24 +00:00
Aleksey Bragin
c72be4b69c Make intl.cpl really switch InstallLanguage and Default entries of NLS\Language key. Problem with freeldr solved in hacky way - it writes now e.g. "0409" and not "00000409", as it generally should.
svn path=/trunk/; revision=15049
2005-05-06 16:21:30 +00:00
Thomas Bluemel
ecba32de75 - fixed ConnectNamedPipe to properly wait on completion for synchronous operations
- prevent completion port notification by not passing an APC context to the kernel when the low-order bit of the event handle is set (for asynchronous operations)

svn path=/trunk/; revision=15048
2005-05-06 16:07:51 +00:00
Casper Hornstrup
e5c1f57b80 Add <module>_install target
svn path=/branches/xmlbuildsystem/; revision=15047
2005-05-06 16:05:37 +00:00
Casper Hornstrup
7dec8061f1 Add missing files
svn path=/branches/xmlbuildsystem/; revision=15046
2005-05-06 16:02:04 +00:00
Thomas Bluemel
f16e5b9e1d - fixed DeviceIoControl to properly wait on completion for synchronous operations
- prevent completion port notification by not passing an APC context to the kernel when the low-order bit of the event handle is set (for asynchronous operations)

svn path=/trunk/; revision=15045
2005-05-06 15:55:28 +00:00
Casper Hornstrup
df0195a558 More sane default image base addresses
svn path=/branches/xmlbuildsystem/; revision=15044
2005-05-06 14:12:25 +00:00
Thomas Bluemel
496308ed56 - fixed Read/WriteFile(Ex) and properly wait on completion for synchronous operations
- prevent completion port notification by not passing an APC context to the kernel when the low-order bit of the event handle is set (for asynchronous operations)

svn path=/trunk/; revision=15043
2005-05-06 14:02:45 +00:00
Hartmut Birr
c565a223c9 Revert my last changes.
svn path=/trunk/; revision=15042
2005-05-06 13:35:27 +00:00
Casper Hornstrup
ede9da6bd0 Build dhcp
svn path=/branches/xmlbuildsystem/; revision=15041
2005-05-06 12:22:35 +00:00
Hartmut Birr
7fb90fae33 Do not modify the stack layout of a function by using inline assembler.
svn path=/trunk/; revision=15040
2005-05-06 12:17:29 +00:00
Hervé Poussineau
71b3a2ede3 Revert ntoskrnl/cm/regobj.c back to revision 14017
svn path=/trunk/; revision=15039
2005-05-06 11:53:35 +00:00
Casper Hornstrup
3528760e8e Add missing file
svn path=/branches/xmlbuildsystem/; revision=15038
2005-05-06 11:20:10 +00:00
Thomas Bluemel
5ff8364d66 minor corrections to match the behavior of wine's implementation
svn path=/trunk/; revision=15037
2005-05-06 11:02:47 +00:00
Casper Hornstrup
3dc17696df Don't strip relocation information from DLLs
svn path=/branches/xmlbuildsystem/; revision=15036
2005-05-06 10:45:24 +00:00
Casper Hornstrup
ae18ba571a Set svn:eol-style=native
svn path=/branches/xmlbuildsystem/; revision=15035
2005-05-06 10:38:30 +00:00
Casper Hornstrup
751a4e3a06 Add missing leading underscores in symbols
svn path=/branches/xmlbuildsystem/; revision=15034
2005-05-06 10:17:43 +00:00
Magnus Olsen
6687b53ab8 David Nordenberg: Swedish translation, proofread by Andreas Bjerkeholt
svn path=/trunk/; revision=15033
2005-05-06 08:27:46 +00:00
Magnus Olsen
b6759ac808 Swedish translations by David Nordenberg
svn path=/trunk/; revision=15032
2005-05-06 08:21:12 +00:00
Alex Ionescu
b33f21c67e Update some more kernel structures
svn path=/trunk/; revision=15031
2005-05-06 00:11:25 +00:00
Thomas Bluemel
72be0f4961 open the module image file with read access rights instead of full access rights
svn path=/trunk/; revision=15030
2005-05-06 00:11:14 +00:00
Thomas Bluemel
03912150d8 create a token handle with TOKEN_QUERY access rights which is required to query the user information in RtlFormatCurrentUserKeyPath
svn path=/trunk/; revision=15029
2005-05-06 00:09:08 +00:00
Thomas Bluemel
83a2899311 don't leak the registry path string after initializing a driver
svn path=/trunk/; revision=15028
2005-05-06 00:07:05 +00:00
Alex Ionescu
5267e6247e Update KPROCESS structure to latest version and document all its fields on the Wiki page. Move Kernel Structures to ke.h from ps.h, remove stuff from ntifs.h that shouldnt be there
svn path=/trunk/; revision=15027
2005-05-05 22:40:05 +00:00
Gé van Geldorp
b36a075a86 Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Spanish translations updated.
Hans Leidekker <hans@it.vu.nl>
- Dutch resource translation.

svn path=/trunk/; revision=15026
2005-05-05 22:36:25 +00:00
Hartmut Birr
a2a2ab569b Fixed InterlockedClearBit.
svn path=/trunk/; revision=15025
2005-05-05 22:24:27 +00:00
Gé van Geldorp
a3cf83ca68 Sync to Wine-20050419:
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Mike McCormack <mike@codeweavers.com>
- Remove an unused function.
- Eliminate casts of the return value of HeapAlloc.
- Convert path to unicode, rearrange to remove forward declaration.
- Remove forward declarations of interface methods.
- Remove some dead code and some ifdefs.
- Use api definitions, remove duplicate code.
- Fix usage of STGM_ enumerations, remove forward declaration.
- Fix up PIDL dumping code.
- Fix a regression in the file open dialog.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Use LMEM_ flags for LocalAlloc(), not GMEM_ (GlobalAlloc).
Huw Davies <huw@codeweavers.com>
- Fix the icon resource ids (most were off by one).
- Fix IExtractIcon_{GetIconLocation,Extract} to use -ve icon resource
  ids and fix bugs relating to confusion between resource ids and the
  system imagelist indicies.
- Extend the system imagelist initialization hack to load both +ve and
  -ve resource ids.
- Add a printer icon (that'll be used by an upcoming printer folder
  patch).
- When we're hiding file extensions then SetNameOf should append the
  original extension if SHGDN_FORPARSING isn't set.
- The flags passed to SetNameOf refer to the dst string not the src
  pidl.
- If ICommDlgBrowser_OnDefaultCommand returns anything other than S_OK
  then we should call the default handler.
- Directory items should have the SFGOA_FILESYSANCESTOR attribute.
  Add a test for this and cleanup the shlfolder test a bit.
- Better icon handling for some special folders.
- Identify and add defines for a bunch of shell icons.
- Add a unicode pidl type.
- Improve support for PT_YAGUID.
- Improve IShellLink debugging.
Steven Edwards <steven_ed4153@yahoo.com>
- Register Shell Drag and Drop Helper.
Juan Lang <juan_lang@yahoo.com>
- Use Unicode string result from GetDisplayNameOf if it isn't
  representable using ANSI.
- Correct registering shell folders (values in Shell Folders key weren't
  getting written).
Martin Fuchs <martin-fuchs@gmx.net>
- switch to correct shell desktop context menu
- launch desk.cpl when activating the desktop context menu entry
  "properties"
- don't send WM_COMMAND if we didn't get a shell view window
- Correct comments of some export ordinals.
Peter Berg Larsen <pebl@math.ku.dk>
- Replace strncpy with memcpy or lstrcpyn.
Troy Rollo <wine@troy.rollo.name>
- Fix SEGV for non-fully-qualified destination paths.
- Don't fail ShFileOperationW if FOF_ALLOWUNDO is passed.
Filip Navara <xnavara@volny.cz>
- _dbg_ILGetNext returns NULL if pidl->mkid.cb is zero, fix the loops
  accordingly.
Aric Stewart <aric@codeweavers.com>
- For ShellExecuteExA we need to copy out the hProcess value from the W
  structure.

svn path=/trunk/; revision=15024
2005-05-05 22:16:20 +00:00
Gé van Geldorp
ee1685bd2e Sync to Wine-20050419:
Mike McCormack <mike@codeweavers.com>
- Add stub for FaultInIEFeature.

svn path=/trunk/; revision=15023
2005-05-05 21:07:02 +00:00
Hervé Poussineau
fe7b55c2c1 SVN maintenance: Set eol style to native and add keywords
svn path=/trunk/; revision=15022
2005-05-05 20:52:14 +00:00
Hervé Poussineau
cb0daf73fd RtlFreeUnicodeString -> ExFreePool changes
svn path=/trunk/; revision=15021
2005-05-05 20:19:01 +00:00
Gé van Geldorp
6758bb095b Sync to Wine-20050419:
Hans Leidekker <hans@it.vu.nl>
- Stub implementation for SetupCopyOEMInfW.
Peter Berg Larsen <pebl@math.ku.dk>
- Janitorial: Get rid of strncpy/strncpyW.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Juan Lang <juan_lang@yahoo.com>
- Implement SetupDiClassNameFromGuidExA.

svn path=/trunk/; revision=15020
2005-05-05 20:14:39 +00:00
Hervé Poussineau
30cd41fa52 Forgot to commit this file with revision 15013
svn path=/trunk/; revision=15019
2005-05-05 19:36:25 +00:00
Gé van Geldorp
dff6294185 Sync to Wine-20050419:
Robert Shearman <rob@codeweavers.com>
- Fix deadlock caused by not leaving the critical section on all code
  paths.
- RpcMgmtStopServerListen should not affect auto-listen interfaces.
- Implement stub for RpcRevertToSelfEx.
- Change the more verbose files to use a new debug channel, "rpc."
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Ralf S. Engelschall <rse@engelschall.com>
- Fix incorrect random multicast MAC address creation.

svn path=/trunk/; revision=15018
2005-05-05 19:17:25 +00:00
Casper Hornstrup
1fef01891c Merge 14551:14980 from trunk
svn path=/branches/xmlbuildsystem/; revision=15017
2005-05-05 19:15:25 +00:00
Gé van Geldorp
d0bf4f6953 Sync to Wine-20050419:
Remove no longer needed files.

svn path=/trunk/; revision=15016
2005-05-05 19:11:20 +00:00
Magnus Olsen
6af3fc11fe swedish translation by Andreas Bjerkeholt
svn path=/trunk/; revision=15015
2005-05-05 19:05:42 +00:00
Gé van Geldorp
e14533d20a Sync to Wine-20050419:
Krzysztof Foltman <wdev@foltman.com>
- removed trailing spaces from some files
- tab support
- indent support
- PageUp key support.
- Support for "normal" scroll bar functionality (line and page
  scrolling).
- made string operations consistent wrt whitespace handling (which
  should greatly improve stability of the wrap code and eliminate
  regressions of the most recent versions)
- completely new scrollbar handling (much more reliable) and related
  redraw fixes
- Page Down handler (no Page Up yet, fixing wrap/redraw/scrollbar bugs
  was of higher priority)
- RTF reader doesn't use RichEdit messages anymore (which saves on
  unnecessary repaints)
- added unicode character support to RTF import (like: \u12345 ?)
- small fixes
- fixed whitespace identification bug
- removed drawing of paragraph marks
- improved stub implementations for IRichEditOle
- Unknown destinations are now correctly skipped (so loading an RTF
  file generated by, for example, OpenOffice doesn't produce lots of
  garbage anymore).
- Format stack for RTF groups (so that RTF reader can correctly read
  what RTF writer wrote :) )
- EM_STREAMIN can now deal with undo in a reasonable manner (no
  multiple undo actions in one EM_STREAMIN).
- Related changes to undo code (umIgnore mode is now handled
  correctly).
- Numerous improvements in the RTF reader: it reads some character
  attributes now (you will have proper small print in license agreements
  now).
- Fixed a memory overwrite bug in conversion from CHARFORMAT2A to
  CHARFORMAT2W.
- Optimized repaint of the area below the text.
- ME_JoinRuns didn't mark the paragraph for rewrapping, fixed.
- Removed PostQuitMessage(0) from WM_DESTROY handler (duh!).
- Use of EM_GETOLEINTERFACE is reported with FIXME instead of TRACE
  (any app using this message is likely to encounter major problems).
- WM_COPY (and WM_CUT) can now put both Unicode and RTF format (thanks
  to Phil Krylov's RTF generator code).
- New message implemented - WM_PASTE.
- RTF reader: rtfPlain implemented (kind of).
- RTF writer: rewritten main loop (the old one crashed in some
  circumstances when SFF_SELECTION was used).
- The meaning of the rewrap flag got inverted (MEPF_REWRAP instead of
  MEPF_WRAPPED) for consistency.
- Major code cleanups in rewrap/repaint code, leading to "smarter"
  behaviour wrt repainting selections.
- Old font management replaced by the cache-based one, which keeps
  maximum of 10 HFONTs at once, instead of one per a couple of runs.
- EM_CANPASTE implemented
- updated TODO list (including list of (un)implemented messages)
- fixed WM_PASTE (the previous version might not close the clipboard
  if it didn't contain a usable format)
- scrollbar operations (like clicking on arrows) should update
  scrollbar's current position
Gerald Pfeifer <gerald@pfeifer.com>
- Make ME_ArrowLeft() return a value in every case.
Phil Krylov <phil@newstar.rinet.ru>
- Make RTF reader fall back to simple text if a correct RTF header is
  not detected. This should fix some installers.
- Made RTF reader and writer handle codepages mostly similar to the
  original riched20.dll.
- Fixed support for RTF documents using ANSI charset and added support
  for multibyte charsets, so that BIG5 and UTF-8 RTF documents are
  working now.
- Replaced slow and outdated character set handling in RTF reader by
  Unicode/codepages support. Added charset->codepage conversion.
- Implemented hash table lookup for RTF keywords in RTF reader.
- Added "generator" RTF destination handling.
- Initial implementation of EM_STREAMOUT and RTF writer.
- Fixed \u keyword to output signed 16-bit values. Also fixed CP_SYMBOL
  conversion and the detection of the default font's codepage.
- Improved RTF export.
Mike McCormack <mike@codeweavers.com>
- Remove casts and unused code.
Hannu Valtonen <Hannu.Valtonen@hut.fi>
- Added mousewheel support.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Use "" for Windows includes in dlls, instead of <>.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Jason Edmeades <us@the-edmeades.demon.co.uk>
- Correct memory allocation macro.

svn path=/trunk/; revision=15014
2005-05-05 19:00:49 +00:00
Hervé Poussineau
f71087e736 ExFreePool -> ExFreePoolWithTag changes
svn path=/trunk/; revision=15013
2005-05-05 18:59:14 +00:00
Gé van Geldorp
7bd0add306 Sync to Wine-20050419:
Peter Berg Larsen <pebl@math.ku.dk>
- Replace strncpy with memcpy or lstrcpyn.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.

svn path=/trunk/; revision=15012
2005-05-05 18:32:46 +00:00
Gé van Geldorp
df82a2a2a8 Sync to Wine-20050419:
Daniel Remenak <dtremenak@gmail.com>
- Implemented VarIdiv.
- Return DISP_E_DIVBYZERO instead of crashing when asked to divide a
  variant by zero.
- Remove unused variable in _copy_arg.
Marcus Meissner <meissner@suse.de>
- Serialize NULL pointer interfaces correctly.
- Fixed VT_BSTR|VT_BYREF marshalling.
- Added VT_I4|VT_BYREF marshalling.
- Fixed ppvObject serializer (deref twice instead of once).
- Actually pass back return value of remote call in type marshaller.
- Format VT_UI1, VT_I1, VT_UI2, VT_I2 correctly.
- Added IDispatch::GetIDsOfNames() special case serializing.
- Handle VT_PTR / NULL marshalling correctly.
Mike Hearn <mike@navi.cx>
- Fix BSTR tracing in the typelib marshaller.
- Fix PARAMFLAG_FOUT typo in the tmarshaller.
Mike Hearn <mh@codeweavers.com>
Robert Shearman <rob@codeweavers.com>
- Implement VT_BYREF | VT_BSTR marshalling.
- Add more integer types for marshaling and unmarshaling.
- Implement VT_BYREF | VT_BSTR unmarshaling.
- Don't allocate memory for TKIND_DISPATCH/TKIND_INTERFACE
  unmarshaling as it will be lost in the success case and interferes
  with the failure case.
Robert Shearman <rob@codeweavers.com>
- Add outer unknown support for typelib marshaler.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Fix leftover negative sign in height parameter for transparent
  bitmap.
- Properly announce whether bitmap is transparent in get_Attributes.
- GIF transparency is now palette-index based, instead of RGB based.
- Keep original bitmap and XOR mask separate, so that get_Handle
  returns original bitmap.
- Initialize [orig|himetric][Width|Height] for PICTYPE_ICON case.
- Fix failure to notice the use of a GIF palette index greater or equal
  to 128 for transparency.
- After Float->string conversion via sprintfW(), VarDecFromR[4|8] is
  forced to use US locale for string->Decimal conversion, to agree with
  sprintfW().

svn path=/trunk/; revision=15011
2005-05-05 18:29:41 +00:00
Gé van Geldorp
61e422828e Sync to Wine-20050419:
Juan Lang <juan_lang@yahoo.com>
- Implement PropSys{Alloc|Free}String, and support BSTRs in
  PropVariant{Clear|Copy} using them.
- Begin implementing IPropertyStorage.
- Add traces, add unit tests for IPropertyStorage, and fix the problems
  they caught.
- Implement FmtIdToPropStgName & PropStgNameToFmtId, with tests.
- add write support to IPropertyStorage, with tests
- misc. cleanups the tests turned up
- Add a comment about byte order, change types to reduce casting and not
  cast away constness.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Change prototypes so gcc with some warnings doesn't bark.
- Correct and complete some api documentation.
Mike McCormack <mike@codeweavers.com>
- Eliminate forward declarations, make functions static.
- Eliminate casts of the return value of HeapAlloc.
- Remove function prototypes, make functions static.
- StgOpenStorage shouldn't open zero length storage files.
- Remove unnecessary function prototypes.
Robert Shearman <rob@codeweavers.com>
- Add critsec debugging info.
- Move the modal loop called during RPCs into CoWaitForMultipleHandles.
- Use a mutex for long remoting calls to IRemUnknown methods.
- Remove locking in apartment_disconnectproxies as it is not needed.
- Use PostMessage instead of SendMessage so we can run the message
  loop or not as appropriate.
- Rename apartment functions to become more object-oriented.
- Rename register_ifstub to marshal_object to more accurately describe
  what it does.
- Add new function, apartment_getoxid, to prepare for a possible
  future patch where remoting is started on demand.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Use LMEM_ flags for LocalAlloc(), not GMEM_ (GlobalAlloc).
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Huw Davies <huw@codeweavers.com>
- Don't close reg key if the open failed.
- WriteFmtUserTypeStg doesn't pull a CLSID from the registry - it's
  unclear when (if at all) this gets written.
Alexandre Julliard <julliard@winehq.org>
- Fixed a buffer overflow.
Joris Huizer <jorishuizer@planet.nl>
- A few memory checks avoiding memory leaks.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Zero out an invalidated runningObjectTableInstance pointer.
Dimitrie O. Paun <dpaun@rogers.com>
- Remove the need for the non-standard (Close|Delete)MetaFile16().
Troy Rollo <wine@troy.rollo.name>
- ix test for STGM_SHARE_EXCLUSIVE on nameless DocFiles.

svn path=/trunk/; revision=15010
2005-05-05 18:16:09 +00:00
Thomas Bluemel
6b48fc81ad implemented RegOpenUserClassesRoot (doesn't work in reactos because there's no symbolic link \Registry\User\<SID>_Classes yet)
svn path=/trunk/; revision=15009
2005-05-05 17:45:00 +00:00
Hervé Poussineau
bcbeeea71f Change ExFreePool to ExFreePoolWithTag
Don't call RtlFreeUnicodeString if the string wasn't created by RtlAnsiStringToUnicodeString or RtlUpcaseUnicodeString
Implement ExRosQueryNonPagedPoolTag
Add BAD_POOL_CALLER code

svn path=/trunk/; revision=15008
2005-05-05 17:20:10 +00:00
Eric Kohl
11670a0523 Implement OpenAndMapFileForRead, RetreiveFileSecurity, StampFileSecurity, TakeOwnershipOfFile and UnmapAndCloseFile.
svn path=/trunk/; revision=15007
2005-05-05 16:16:28 +00:00
Thomas Bluemel
de9188501b the registry functions shouldn't change the last error, instead they should just return the error code.
svn path=/trunk/; revision=15006
2005-05-05 16:15:08 +00:00
Magnus Olsen
f2454371af Update the swedish translation by
David Nordenberg 



svn path=/trunk/; revision=15005
2005-05-05 16:05:46 +00:00
Hervé Poussineau
a3d0da6d95 Don't desallocate non allocated memory
svn path=/trunk/; revision=15004
2005-05-05 15:39:36 +00:00
Thomas Bluemel
b9c033f3ec - ported BuildTrusteeWithObjectsAndNameA/W and BuildTrusteeWithObjectsAndSidA/W from wine
- implemented RegOpenCurrentUser
- directly forward GetSecurityDescriptorLength to NTDLL.RtlLengthSecurityDescriptorguard dumping the stack trace to prevent infinite exception loopsguard dumping the stack trace to prevent infinite exception loops

svn path=/trunk/; revision=15003
2005-05-05 15:39:27 +00:00
Hervé Poussineau
9961bb7d69 Better handle of wrong arguments in IoRegisterDeviceInterface
svn path=/trunk/; revision=15002
2005-05-05 15:39:09 +00:00
Thomas Bluemel
0f4b0fd412 guard dumping the stack trace to prevent infinite exception loops
svn path=/trunk/; revision=15001
2005-05-05 15:38:32 +00:00
Hervé Poussineau
e5443b9351 Call Fs notifications at PASSIVE_LEVEL by using a guarded mutex
Use ExFreePoolWithTag instead of ExFreePool

svn path=/trunk/; revision=15000
2005-05-05 13:27:00 +00:00
Thomas Bluemel
da6a50d93f directly use HeapAlloc/Free in midl_user_allocate and midl_user_free instead of the depreciated GlobalAlloc/Free functions
svn path=/trunk/; revision=14999
2005-05-05 13:24:39 +00:00
Thomas Bluemel
cb363f4f7d use SERVICES_ACTIVE_DATABASE if the caller didn't specify a database for OpenSCManager()
svn path=/trunk/; revision=14998
2005-05-05 12:58:03 +00:00
Alex Ionescu
264cee75a3 Simply fix up the formatting, there were tabs and 3 spaces and 4 spaces and 2 spaces identation. No code was harmed.
svn path=/trunk/; revision=14997
2005-05-05 12:35:09 +00:00
Thomas Bluemel
74d7b0c5f4 prevent buffer overflow, LoadString accepts the size of the buffer in TCHARs, not in bytes!
svn path=/trunk/; revision=14996
2005-05-05 12:25:40 +00:00
Thomas Bluemel
e85ca23849 don't dereference lpTokenAttributes if the caller passed NULL to DuplicateTokenEx
svn path=/trunk/; revision=14995
2005-05-05 12:21:43 +00:00
Magnus Olsen
d22f099901 Usurp
fransch translations
fix right help string printing out on screen wrong strings was loading when you need help
incress the string buffer for loading strings from rc example for dir /?
remove duplicate STRING_PARAM_ERROR

solv bugzila bug 618 


svn path=/trunk/; revision=14994
2005-05-05 12:03:43 +00:00
Hartmut Birr
3fdefd1abf - Use the WIN32 option to select the correct mkdir.
svn path=/trunk/; revision=14993
2005-05-05 11:28:49 +00:00
Hartmut Birr
76a83ce1cc - Detect msys on windows as a linux system.
- Creating of the bootcd will not work. There is somewhere a path with 'c:/'.

svn path=/trunk/; revision=14992
2005-05-05 11:26:32 +00:00
Hartmut Birr
159160db0d - Fixed the parameters for NtOpenFile in InternalFindFirstFile.
- Closed the opened directory on error in InternalFindFirstFile.

svn path=/trunk/; revision=14991
2005-05-05 11:07:28 +00:00
Hartmut Birr
43e3abdd99 - Return the length in VfatDirectoryControl.
svn path=/trunk/; revision=14990
2005-05-05 11:05:05 +00:00
Hartmut Birr
5e49963c1a - Free always the name string and the completion context in IopDeleteFile.
- Fixed the check for synchronous operations in NtQueryDirectoryFile.

svn path=/trunk/; revision=14989
2005-05-05 11:03:27 +00:00
Hartmut Birr
4200c75f3b - Guard the copying to the IOSB.
- Do the main processing on success or if previous STATUS_PENDING was returned. 
  Do not use some of the IRP and FO flags at this point.   
- Set all results before signaling the events.  
- Signal the FO event previous the user event.    
- Made the code a little bit shorter.


svn path=/trunk/; revision=14988
2005-05-05 10:59:34 +00:00
Hervé Poussineau
e80efe27d7 SVN maintenance:
Delete wine_unicode.map
Add *.map to ignore list

svn path=/trunk/; revision=14987
2005-05-05 09:59:38 +00:00
Casper Hornstrup
0bb263067a Copy wininet to branch
svn path=/branches/xmlbuildsystem/; revision=14986
2005-05-05 09:48:22 +00:00
Casper Hornstrup
0922a0e8e5 Delete wininet
svn path=/branches/xmlbuildsystem/; revision=14985
2005-05-05 09:45:38 +00:00
Thomas Bluemel
483c08b898 - fixed RegSetValueEx to take the null-terminating byte for strings into account when the caller forgot it
- capture the driver service name string in NtLoadDriver

svn path=/trunk/; revision=14984
2005-05-05 02:46:17 +00:00
Thomas Bluemel
079656c5c4 only create handles with access rights needed for the operation
svn path=/trunk/; revision=14983
2005-05-05 00:07:27 +00:00
Magnus Olsen
7a3fb8af07 tinus
implement MouseResolution setting

Me (Magnus Olsen)
remove old psuax drv from hiveinst.inf and add tinus mouse drv settings
add MouseResolution setting to reg


svn path=/trunk/; revision=14982
2005-05-04 23:06:15 +00:00
Thomas Bluemel
0e71d1e88d prevent buffer overflow, LoadString accepts the size of the buffer in TCHARs, not in bytes!
svn path=/trunk/; revision=14981
2005-05-04 22:32:43 +00:00
Thomas Bluemel
c1b7289bd6 prevent buffer overflow, LoadString accepts the size of the buffer in TCHARs, not in bytes!
svn path=/trunk/; revision=14980
2005-05-04 22:21:55 +00:00
Thomas Bluemel
410ddcfe72 correctly use tchar.h again and build a unicode version by default
svn path=/trunk/; revision=14979
2005-05-04 22:18:43 +00:00
Thomas Bluemel
6a0f65e223 it's valid to pass lpTargetHandle = NULL to DuplicateHandle()
svn path=/trunk/; revision=14978
2005-05-04 21:23:13 +00:00
Gé van Geldorp
600cfcc505 Fix GDB stub:
- Initialize WrapperTable routines as early as possible
- Initialize debug port (hard coded to COM2, 115200 baud for now)
- Don't limit runnable thread on startup

svn path=/trunk/; revision=14977
2005-05-04 20:38:43 +00:00
Thomas Bluemel
68b564e30a make correct use of tchar.h in taskmgr and build it as unicode by default
svn path=/trunk/; revision=14976
2005-05-04 19:29:28 +00:00
Maarten Bosma
587ddda1d5 Steven Wilson: update tlist to use new process info struct names
svn path=/trunk/; revision=14975
2005-05-04 18:53:47 +00:00
Magnus Olsen
6039178c86 David Nordenberg: Swedish translation, proofread by Andreas Bjerkeholt and small change from Kris Engeman
svn path=/trunk/; revision=14974
2005-05-04 18:10:12 +00:00
Martin Fuchs
8ec74d5f10 restore toolbar bitmap
svn path=/trunk/; revision=14973
2005-05-04 17:59:36 +00:00
Magnus Olsen
7e2d943420 Swedish åäö was gone in the translation after some commit.
I which we can split all langues to own .rc files. 
so this can not be happen agien

Thx  Harteex for fixing åäö in the .rc file 

svn path=/trunk/; revision=14972
2005-05-04 17:41:27 +00:00
Magnus Olsen
35b46085ea filip0402 : patch for taskmgr to remove some hardcode string tested by Harteex
svn path=/trunk/; revision=14971
2005-05-04 16:54:48 +00:00
Hervé Poussineau
60bdc5ad60 Set Thread->SystemThread to TRUE when creating a system thread. Patch by Filip Navara
svn path=/trunk/; revision=14970
2005-05-04 16:00:39 +00:00
Aleksey Bragin
d534342503 RegOpenKey, RegOpenKeyEx A/W imported and ported from WINE. This keeps the current test set in advapi32_test registry on 85/0 level
svn path=/trunk/; revision=14969
2005-05-04 15:53:54 +00:00
Aleksey Bragin
8460c6e770 NtOpenKey modified to correctly behave when wrong input params are given (according to WINE tests).
svn path=/trunk/; revision=14968
2005-05-04 15:27:05 +00:00
Hervé Poussineau
ed23d5951d Fix flags checking in I8042ReadData (patch by Tinus_)
Check error codes returned by IoCreateDevice
Replace ExFreePool by ExFreePoolWithTag

svn path=/trunk/; revision=14967
2005-05-04 13:28:34 +00:00
Alex Ionescu
985abe1494 Fix horrible bug where Queued Threads were treated like Threads on the Ready list. I was aware of this bug for months and it's fixed in my new scheduler but now that tinus has seen it happen, I'm comitting the fix temporarly in trunk.
svn path=/trunk/; revision=14966
2005-05-03 23:24:26 +00:00
Magnus Olsen
151078eab1 bugfix from, tinus mailto:o112w8r02@sneakemail.com
fixining http://reactos.com/bugzilla/show_bug.cgi?id=616#c1
bug in mozila 

There's a small bug in usetup/bootsup.c which makes it fail formatting the disk.
It tries to read the bootsector image on the cdrom for write access (which
succeeds), then tries to read from the handle (which fails).

svn path=/trunk/; revision=14965
2005-05-03 23:18:21 +00:00
Hartmut Birr
5255b326ec Do always set the UserIosb of an irp in IoSecondStageCompletion.
svn path=/trunk/; revision=14964
2005-05-03 21:42:35 +00:00
Hervé Poussineau
f2b9954c3f Add French translation for sndvol32 (Patch by Usurp)
Set properties for Cz.rc and Sv.rc

svn path=/trunk/; revision=14963
2005-05-03 21:25:41 +00:00
Magnus Olsen
0d5f3d84cb Implement WSAStringToAddressA
svn path=/trunk/; revision=14962
2005-05-03 18:37:51 +00:00
Magnus Olsen
4732ce19d1 Implement WSAStringToAddressW
svn path=/trunk/; revision=14961
2005-05-03 17:22:52 +00:00
Hervé Poussineau
d6ce9d647e Remove Disk driver for Bochs.
It doesn't compile and shouldn't be usefull as we have a normal disk driver in drivers/storage/disk

svn path=/trunk/; revision=14960
2005-05-03 13:14:59 +00:00
Martin Fuchs
aa0e827382 rosshell: printer and network folder in start menu
svn path=/trunk/; revision=14959
2005-05-03 12:15:27 +00:00
Alex Ionescu
e49c3dc30f revert accidental commit
svn path=/trunk/; revision=14958
2005-05-03 11:56:46 +00:00
Martin Fuchs
61ce6acfa9 context menu interface pointer cleanup
svn path=/trunk/; revision=14957
2005-05-03 09:32:10 +00:00
Martin Fuchs
7b8809480b small optimization for the last change
svn path=/trunk/; revision=14956
2005-05-03 09:21:42 +00:00
Martin Fuchs
63415000fe display custom folders in start menu root
svn path=/trunk/; revision=14955
2005-05-03 08:04:58 +00:00
Martin Fuchs
7bb756385c context menu interface pointer cleanup
svn path=/trunk/; revision=14954
2005-05-03 08:03:46 +00:00
Hartmut Birr
c853c0b6e3 Open/create all files with the necessary rights.
svn path=/trunk/; revision=14951
2005-05-02 20:30:29 +00:00
Hartmut Birr
98c1f41b90 - Check first for a valid returned object in ObOpenObjectByName.
- Free always the remaining path string if an error is returned in ObOpenObjectByName.

svn path=/trunk/; revision=14950
2005-05-02 19:12:31 +00:00
Hervé Poussineau
82eacd2e6d Add i8042prt.sys and kbdclass.sys to boot cd
Remove leftover of keyboard.sys and psaux.sys drivers
(Pointed by Usurp)

svn path=/trunk/; revision=14949
2005-05-02 16:35:58 +00:00
Emanuele Aliberti
143f5e1f74 Move VMS subtree in the proper place.
svn path=/trunk/; revision=14948
2005-05-02 14:15:56 +00:00
Filip Navara
51e5c11dc8 Fix Alex's completely wrong fix for NtUserScrollWindowEx (aka bug #606).
svn path=/trunk/; revision=14947
2005-05-02 14:05:38 +00:00
Alex Ionescu
6c331c3529 Fix many of the scrollbar issues. However, MDI Scrollbars are still not working perfectly. Patch by tinus <o112w8r02@sneakemail.com>. Fixes bug 606
svn path=/trunk/; revision=14946
2005-05-02 11:42:41 +00:00
Alex Ionescu
dff743f85a Don't call internal function which checks parameters since our parameter is kernel mode.
svn path=/trunk/; revision=14945
2005-05-02 11:38:48 +00:00
Hervé Poussineau
252332e971 Don't free unicode strings in case of error
svn path=/trunk/; revision=14944
2005-05-02 11:03:54 +00:00
Art Yerkes
dabd9ab597 Fix KDSERIAL.
svn path=/trunk/; revision=14943
2005-05-02 07:04:36 +00:00
Alex Ionescu
f19732f822 Same kind of fixes for NtFlushBuffersFile
svn path=/trunk/; revision=14942
2005-05-02 05:27:32 +00:00
Alex Ionescu
fb52d69134 Fix NtQueryInformationFile. Use right device object in case of FO_DIRECT_DEVICE_OPEN, use local event, set proper flags so that the I/O manager does the copying and freeing of the buffers, respect syyncronous I/O. Same kind of fixes for IoQueryFileInformation
svn path=/trunk/; revision=14941
2005-05-02 05:15:20 +00:00
Martin Fuchs
7997eff27f implement owner drawn context menus for winefile
svn path=/trunk/; revision=14940
2005-05-01 23:19:48 +00:00
Hervé Poussineau
f4bf96a034 Fix garbage text output with cmd.exe in GUI mode.
Thanks to Hartmut for pointing me the problem

svn path=/trunk/; revision=14939
2005-05-01 22:30:13 +00:00
Alex Ionescu
b099687f31 Byebye decrepit drivers
svn path=/trunk/; revision=14938
2005-05-01 22:29:18 +00:00
Alex Ionescu
24f249ab54 Remove incorrect change
svn path=/trunk/; revision=14936
2005-05-01 22:20:13 +00:00
Alex Ionescu
f3a824a347 remove accidental commit
svn path=/trunk/; revision=14935
2005-05-01 22:06:38 +00:00
Alex Ionescu
f38095c406 Remove incorrect change
svn path=/trunk/; revision=14934
2005-05-01 21:57:57 +00:00
Alex Ionescu
13c655b516 Do not signal event twice. Thanks to Gunnar for finding the bug
svn path=/trunk/; revision=14933
2005-05-01 21:51:57 +00:00
Martin Fuchs
8441c8115e merge ROS Shell without integrated explorer part into trunk
svn path=/trunk/; revision=14932
2005-05-01 21:22:13 +00:00
Thomas Bluemel
38055bc7ed DeleteFile should create a handle with DELETE access rights
svn path=/trunk/; revision=14931
2005-05-01 21:19:04 +00:00
Hervé Poussineau
9420d88967 SVN maintenance on new directories/files
svn path=/trunk/; revision=14929
2005-05-01 21:03:02 +00:00
Filip Navara
27fff4b070 Potapnik <jirka@studioprojekt.cz>
Czech translation of Registry Editor.

svn path=/trunk/; revision=14928
2005-05-01 20:53:29 +00:00
Filip Navara
a5584f9242 Potapnik <jirka@studioprojekt.cz>
Czech translation of VMWInst, Welcome and WinLogon (with one change by me).

svn path=/trunk/; revision=14927
2005-05-01 20:48:20 +00:00
Alex Ionescu
a70444fab1 i8042prt driver by tinus.
svn path=/trunk/; revision=14926
2005-05-01 20:38:29 +00:00
Magnus Olsen
82b7f31f61 reverted them back from ekohl change it create
alot of problem example chater are not being display right
if you switch reactos to another langues. 

svn path=/trunk/; revision=14925
2005-05-01 20:30:41 +00:00
Hervé Poussineau
fbad02ab35 Please give names to your PDOs. Should correct the boot on non-ACPI systems.
svn path=/trunk/; revision=14924
2005-05-01 20:20:59 +00:00
Alex Ionescu
aa1fd35178 Fix IopCloseFile: Use IRP_SYNC_API flag, use local stack event, get the right deviceobject if FO_DIRECT_DEVICE_OPEN is set, set IRP_CLOSE_OPERATION flag.
svn path=/trunk/; revision=14921
2005-05-01 19:46:51 +00:00
Alex Ionescu
f7695b0f53 Fix IopDeleteFile: Use IRP_SYNC_API flag, use local stack event, fix memory leak (Free completion context), dereference completion port, get the right deviceobject if FO_DIRECT_DEVICE_OPEN is set
svn path=/trunk/; revision=14920
2005-05-01 19:36:00 +00:00
Thomas Bluemel
722d9a84e4 fixed some warnings with gcc4 (mostly assignment differs in signedness warnings)
svn path=/trunk/; revision=14919
2005-05-01 19:30:06 +00:00
Magnus Olsen
832cfa1af7 Fix so it can compile agein
svn path=/trunk/; revision=14918
2005-05-01 18:23:08 +00:00
Magnus Olsen
62bf02deb7 Remove some hardcode strings
to En.rc

svn path=/trunk/; revision=14917
2005-05-01 17:32:09 +00:00
Magnus Olsen
7a4df43bd1 Move english langues to own .rc file (En.rc) so it be more easy to maintain all langues
svn path=/trunk/; revision=14916
2005-05-01 15:18:45 +00:00
Magnus Olsen
6ee6ce325b Move english langues to own .rc file (En.rc) so it be more easy to maintain all langues
svn path=/trunk/; revision=14915
2005-05-01 14:53:57 +00:00
Magnus Olsen
dfa965f933 Andreas Bjerkeholt: Swedish translation, proofread by David Nordenberg
svn path=/trunk/; revision=14914
2005-05-01 14:42:04 +00:00
Magnus Olsen
27da6bdc5d David Nordenberg: Swedish translation, proofread by Andreas Bjerkeholt
svn path=/trunk/; revision=14913
2005-05-01 14:39:01 +00:00
Eric Kohl
2603ff574e - Use fixed message buffer size.
- Don't translate command options.
- Only use _one_ message buffer per function.
- Fix indentation mess.

svn path=/trunk/; revision=14912
2005-05-01 13:58:30 +00:00
Martin Fuchs
ca6a77b739 restore the IDS_TERMINATE strings trashed by the commit in rev. 14769
Could please someone with a swedish environment check if the character encoding in codepage 1252 is correct?

svn path=/trunk/; revision=14911
2005-05-01 12:56:25 +00:00
Art Yerkes
196bd4d6aa Added HOST=mingw32-linux64 setting.
Fixed various small breakage for linux64 host.

svn path=/trunk/; revision=14910
2005-05-01 11:24:07 +00:00
Filip Navara
515d8e34ac tinus <o112w8r02@sneakemail.com>
Call the shell hook on showing/hiding window.

svn path=/trunk/; revision=14909
2005-05-01 11:15:11 +00:00
Hartmut Birr
ea130b3ba2 Made the loading of resource strings more unicode compatibly.
svn path=/trunk/; revision=14908
2005-05-01 10:28:58 +00:00
Hartmut Birr
7ce3991a5c Return the correct data length for FSCTL_PIPE_GET_STATE.
svn path=/trunk/; revision=14907
2005-05-01 09:53:19 +00:00
Hartmut Birr
65deeff1c1 Fixed the calculation of timeout values.
svn path=/trunk/; revision=14906
2005-05-01 09:51:06 +00:00
Hartmut Birr
d226234328 Print symbol names if DBG is defined.
svn path=/trunk/; revision=14905
2005-05-01 09:49:45 +00:00
Filip Navara
ecba11e64f Potapnik <jirka@studioprojekt.cz>
Czech translation of Task Manager statusbar messages.

svn path=/trunk/; revision=14904
2005-05-01 09:45:35 +00:00
Filip Navara
d13148cece Forgot to change the sprintf statements in revision 14902.
svn path=/trunk/; revision=14903
2005-05-01 09:29:20 +00:00
Filip Navara
3ce5a90320 Move the statusbar strings to resources.
svn path=/trunk/; revision=14902
2005-05-01 09:23:12 +00:00
Eric Kohl
ccbb2fb84b Use default locale until ReactOS fully suports all required locale functions!
svn path=/trunk/; revision=14901
2005-05-01 09:07:31 +00:00
Filip Navara
334e2d762a Fix coordinate mapping of unmodRect in DefWndDoSizeMove.
svn path=/trunk/; revision=14900
2005-05-01 08:25:33 +00:00
Filip Navara
0c23b97544 Set the message point/time for keyboard and hotkey messages.
svn path=/trunk/; revision=14899
2005-05-01 08:03:41 +00:00
Filip Navara
4913443e7e Change the default system menu icon in MDI_AugmentFrameMenu to application icon (based on patch by tinus <o112w8r02@sneakemail.com>).
svn path=/trunk/; revision=14898
2005-05-01 07:10:47 +00:00
Gé van Geldorp
dd735b0384 svn maintenance
svn path=/trunk/; revision=14897
2005-05-01 07:08:18 +00:00
Filip Navara
4fee912dfe - Merge changes to MDI_AugmentFrameMenu from Wine (fixes part of bug #606).
- Fix deleting of bitmap in MDI_RestoreFrameMenu.

svn path=/trunk/; revision=14896
2005-05-01 07:05:13 +00:00
Gé van Geldorp
d679231534 svn maintenance
svn path=/trunk/; revision=14895
2005-05-01 06:38:51 +00:00
Thomas Bluemel
6e1ab38590 fixed uninitialized variable warning
svn path=/trunk/; revision=14894
2005-04-30 22:45:58 +00:00
Eric Kohl
8f40adc5eb NtQueryInformationFile/NtSetInformationFile:
- Check for information class specific access rights.
- Clean-up some indentation mess.

svn path=/trunk/; revision=14893
2005-04-30 22:00:26 +00:00
Aleksey Bragin
be9f61a8b9 Fixed RegEnumValueA/W behaviour when output buffers are too small. This fixes 20+ tests from "advapi32_test registry" (now it has only 2 failures - but that's a reduced tests set!).
I beg my pardon for reformatting these two funcs and fixing bugs in one commit, I will do it in different commits in the future.

svn path=/trunk/; revision=14891
2005-04-30 21:11:34 +00:00
Magnus Olsen
acb9e6951d forget this file
thx <hpoussin>

svn path=/trunk/; revision=14890
2005-04-30 21:07:32 +00:00
Magnus Olsen
671be67001 Remove all hardcode string to En.rc
Hopplyfull all hardcoing string are gone now 


svn path=/trunk/; revision=14888
2005-04-30 19:00:46 +00:00
Filip Navara
a14761769e Potapnik <jirka@studioprojekt.cz>
Czech translation of Task Manager.

svn path=/trunk/; revision=14887
2005-04-30 18:55:44 +00:00
Phillip Susi
96f75639c4 Renamed another makefile in the xmlbuildsystem branch that had the wrong case
svn path=/branches/xmlbuildsystem/; revision=14886
2005-04-30 18:52:55 +00:00
Filip Navara
7765507978 Potapnik <jirka@studioprojekt.cz>
Czech translations of appwiz, control, desk, intl, ncpa, sysdm and timedate.

svn path=/trunk/; revision=14885
2005-04-30 18:49:41 +00:00
Alex Ionescu
9ff89d4fd7 Add hack for ROS's weird behavior. Will investigate but this lets you boot for now
svn path=/trunk/; revision=14884
2005-04-30 17:43:18 +00:00
Hartmut Birr
d7ea77e414 Set the readed size within the irp.
svn path=/trunk/; revision=14883
2005-04-30 17:37:11 +00:00
Alex Ionescu
f04a0c4e50 Remove debug message
svn path=/trunk/; revision=14882
2005-04-30 17:30:05 +00:00
Phillip Susi
ba9cb9156c Fixed another makefile with the wrong case in the xmlbuildsystem branch
svn path=/branches/xmlbuildsystem/; revision=14881
2005-04-30 17:22:34 +00:00
Phillip Susi
d13badb58d makefile was spelled with a lower case in the xmlbuild branch,
but with upper case M in the trunk.  This was causing problems with
svn switch on win32 due to the name conflict.  


svn path=/branches/xmlbuildsystem/; revision=14880
2005-04-30 17:15:58 +00:00
Phillip Susi
9550da5a54 Fixed up a few missing includes that were preventing builds
svn path=/branches/xmlbuildsystem/; revision=14879
2005-04-30 16:37:06 +00:00
Magnus Olsen
7b4892749e Remove all hardcode string to En.rc
Hopplyfull all hardcoing string are gone now 
in cmd


svn path=/trunk/; revision=14878
2005-04-30 16:21:06 +00:00
Magnus Olsen
f1dad288cd Remove all hardcode string to En.rc
for all file 

This changes are only for  ver.c
Remove hardcode dev list to cmd.rc

update mailing adress for bug report to ros-dev@reactos.com
sugestion by GvG 

I did leave copyright year hardcode in ver.c


svn path=/trunk/; revision=14877
2005-04-30 15:46:59 +00:00
Hervé Poussineau
5c87a8787a Register GUID_DEVINTERFACE_COMPORT for serial devices
Register GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR for serenum devices
Fix some comments

svn path=/trunk/; revision=14876
2005-04-30 15:04:10 +00:00
Hervé Poussineau
8293cc1006 Patch by Tinus_: Check for right error code returned by ZwOpenSymbolicLinkObject
svn path=/trunk/; revision=14875
2005-04-30 14:53:41 +00:00
Hervé Poussineau
71486fdc01 Don't double define GUID_DEVICE_INTERFACE_ARRIVAL and GUID_DEVICE_INTERFACE_REMOVAL in include/ntos/ntpnp.h and w32api/include/ddk/wdmguid.h
svn path=/trunk/; revision=14874
2005-04-30 14:36:05 +00:00
Gé van Geldorp
c15811bc14 Change BootDrive/BootPartition examples to BootPath
svn path=/trunk/; revision=14873
2005-04-30 14:15:38 +00:00
Hervé Poussineau
08b9a8878b I forgot to dereference FileObject in IoSetDeviceInterfaceState
svn path=/trunk/; revision=14872
2005-04-30 13:53:39 +00:00
Magnus Olsen
6510ad1387 Remove all hardcode string to En.rc
svn path=/trunk/; revision=14871
2005-04-30 13:35:52 +00:00
Magnus Olsen
e705463f4a Remove all hardcode string to En.rc
svn path=/trunk/; revision=14870
2005-04-30 13:13:36 +00:00
Magnus Olsen
04dd142850 Remove all hardcode string to En.rc
svn path=/trunk/; revision=14869
2005-04-30 12:36:36 +00:00
Magnus Olsen
39458d7a85 Remove all hardcode string to En.rc
svn path=/trunk/; revision=14868
2005-04-30 11:53:15 +00:00
Magnus Olsen
fcedc0bf07 Remove all hardcode string to En.rc
from misc.c, move.c pause.c, prompt.c

svn path=/trunk/; revision=14867
2005-04-30 11:16:47 +00:00
Hervé Poussineau
b8bccfb8b4 Implement IoRegisterPlugPlayNotification, IoUnregisterPlugPlayNotification
Implement IoSetDeviceInterfaceState
Fix IoRegisterDeviceInterface
Add prototype for ExFreePoolWithTag

namespc.c: change STATUS_UNSUCCESSFUL to STATUS_OBJECT_NAME_INVALID

SVN maintenance in ntoskrnl/kd/wrappers/

svn path=/trunk/; revision=14866
2005-04-30 09:39:09 +00:00
Filip Navara
847279d106 Denzil <d3nzil@gmail.com>
Czech translation of Package Manager (with minor corrections by myself).

svn path=/trunk/; revision=14865
2005-04-30 05:08:13 +00:00
Filip Navara
eddbd1a4e3 tinus <o112w8r02@sneakemail.com>
Change the backtrace command to show current EIP too.

svn path=/trunk/; revision=14864
2005-04-30 04:43:17 +00:00
Magnus Olsen
6985385b7d Remove all hardcode string to En.rc
from locale.c

svn path=/trunk/; revision=14863
2005-04-29 19:49:50 +00:00
Thomas Bluemel
827c16db5f - added stubs for NtSuspendProcess and NtResumeProcess
- the ProcessDebugPort information class is read-only on NT5.1+

svn path=/trunk/; revision=14862
2005-04-29 16:41:52 +00:00
Alex Ionescu
aff5e61f45 IRP Completion Fixes for 2nd-Stage:
- Free ALL Mdls, not just the first
- Don't copy buffered data just because the Device Object is buffered. Check if the IRP is.
- Don't handle MajorFunctions differenty, use flags which are now correctly set in order to determine course of action.
- Free memory by using flag.
- Don't remove IRP from Thread List too soon.
- Don't use FileObject fields after dereferencing it.
- Don't call IO Completion if there is already an APC routine.
- Signal FileObject/UserEvent properly depending on cases.
- Don't call UserAPC and set events like before if the IRP actually failed.

svn path=/trunk/; revision=14861
2005-04-29 14:38:05 +00:00
Aleksey Bragin
11e90a8e41 Import from WINE 25.04.05 (just because we have old version sitting in our SVN, which shows failures even on WinXP).
Now "advapi32_test registry" has 0 failures on Windows XP Pro. (and generally should have 0 failures under ROS too...)

svn path=/trunk/; revision=14860
2005-04-29 11:25:55 +00:00
Hervé Poussineau
aa182938a2 Remove debug message
svn path=/trunk/; revision=14859
2005-04-29 07:35:01 +00:00
Alex Ionescu
19a014905e And look who made a dumber mistake ;). Thanks WaxDragon
svn path=/trunk/; revision=14858
2005-04-29 02:13:42 +00:00
Magnus Olsen
b35cd289ca Swedish translations by Kris Engeman
svn path=/trunk/; revision=14857
2005-04-28 23:17:13 +00:00
Magnus Olsen
2a0755fbb0 Translate by Andreas Bjerkeholt (harteex@gmail.com)
svn path=/trunk/; revision=14856
2005-04-28 23:15:26 +00:00
Hervé Poussineau
cc5a10001c SVN maintenance:
Add svn:eol-style = native
Add svn:keywords = author date id revision

svn path=/trunk/; revision=14855
2005-04-28 23:14:54 +00:00
Magnus Olsen
32d6f2faa4 David Nordenberg: Swedish translation
svn path=/trunk/; revision=14854
2005-04-28 23:11:04 +00:00
Alex Ionescu
e606cb3718 Remove rant. H&E are very competent developers and made a typical bug that anyone could've made. I was just pissed for having lost an hour finding it ;)
svn path=/trunk/; revision=14853
2005-04-28 22:39:50 +00:00
Magnus Olsen
0dd12c923f Remove all hardcode string to En.rc
from memmory.c

svn path=/trunk/; revision=14852
2005-04-28 22:05:26 +00:00
Hervé Poussineau
1e92d6dfb5 Don't pass a NULL pointer as offset when creating a IRP_MJ_READ irp.
svn path=/trunk/; revision=14851
2005-04-28 21:56:36 +00:00
Magnus Olsen
cadb55139f Remove all hardcode string to En.rc
from free.c, goto.c, if.c label.c 

svn path=/trunk/; revision=14850
2005-04-28 21:17:07 +00:00
Aleksey Bragin
23c9abb0b3 Fix (registry.c:325, dated 20050425) test failure. Description: Added RegOpenKeyA/W check for input param (if it's NULL pointer, returning error)
svn path=/trunk/; revision=14849
2005-04-28 20:26:06 +00:00
Magnus Olsen
492c96c8f9 change _T((LPTSTR)szMsg)) to (LPTSTR)szMsg)
thanks royce3 he did see my small mistage

Remove all hardcode string to En.rc 
from for.c


svn path=/trunk/; revision=14848
2005-04-28 20:00:37 +00:00
Magnus Olsen
5571662474 Remove all hardcode string to En.rc
from echo.c and error.c

svn path=/trunk/; revision=14847
2005-04-28 17:44:34 +00:00
Aleksey Bragin
9e858b535b Added Nls\Locale registry tree, it corresponds to locales I imported from WINE a few revisions ago.
svn path=/trunk/; revision=14846
2005-04-28 14:48:28 +00:00
Magnus Olsen
b6ef59c124 Fix all these warings
libnurbs/nurbtess/sampleComp.cc: In function `void sampleCompLeft(Real*, Real*, vertexArray*, Int, Int, vertexArray*, Int, Int, gridBoundaryChain*, Int, Int, Int, Int, Int, Int, primStream*)':
libnurbs/nurbtess/sampleComp.cc:162: warning: 'gridMidIndex1' might be used uninitialized in this function
libnurbs/nurbtess/sampleComp.cc:162: warning: 'gridMidIndex2' might be used uninitialized in this function

libnurbs/nurbtess/sampleCompRight.cc: In function `void sampleCompRight(Real*, Real*, vertexArray*, Int, Int, vertexArray*, Int, Int, gridBoundaryChain*, Int, Int, Int, Int, Int, Int, primStream*)':
libnurbs/nurbtess/sampleCompRight.cc:75: warning: 'gridMidIndex1' might be used uninitialized in this function
libnurbs/nurbtess/sampleCompRight.cc:75: warning: 'gridMidIndex2' might be used uninitialized in this function

svn path=/trunk/; revision=14845
2005-04-28 13:55:35 +00:00
Aleksey Bragin
4e01611563 Imported locales information from WINE. Sorry it isn't done the "right way" (store all info in locales.nls as WinXP does), but for now I think this way will do.
Also some locales aren't imported because their info contains unicode characters, and I didn't want to switch kernel32 from windres to wrc.

svn path=/trunk/; revision=14844
2005-04-28 13:54:19 +00:00
Aleksey Bragin
af4afa4f65 Imported LANG_ and SUBLANG_ defines from WINE
svn path=/trunk/; revision=14843
2005-04-28 13:50:32 +00:00
Magnus Olsen
4a2a65e916 Fix all these waring by initaielize them where they are declare
libutil/quad.c: In function `gluPartialDisk':
libutil/quad.c:451: warning: 'texLow' might be used uninitialized in this function
libutil/quad.c:451: warning: 'texHigh' might be used uninitialized in this function
libutil/quad.c: In function `gluSphere':
libutil/quad.c:720: warning: 'sintemp2' might be used uninitialized in this function
libutil/quad.c:720: warning: 'sintemp3' might be used uninitialized in this function
libutil/quad.c:720: warning: 'sintemp4' might be used uninitialized in this function
libutil/quad.c:721: warning: 'costemp2' might be used uninitialized in this function
libutil/quad.c:721: warning: 'costemp3' might be used uninitialized in this function
libutil/quad.c:721: warning: 'costemp4' might be used uninitialized in this function

svn path=/trunk/; revision=14842
2005-04-28 13:38:30 +00:00
Magnus Olsen
dada212f2a fix this waring
libutil/mipmap.c: In function `gluBuild3DMipmaps':
libutil/mipmap.c:7382: warning: 'proxyTarget' might be used uninitialized in this function
by initialized the value when it declare


svn path=/trunk/; revision=14841
2005-04-28 13:19:23 +00:00
Magnus Olsen
fadd959c12 fix waring with insiate iter
libutil/mipmap.c: In function `gluScaleImage':
libutil/mipmap.c:5105: warning: 'iter' might be used uninitialized in this function

remve outindex it is not being use at all 
libutil/mipmap.c: In function `scaleInternalPackedPixel':
libutil/mipmap.c:5990: warning: 'outindex' might be used uninitialized in this function


svn path=/trunk/; revision=14840
2005-04-28 13:01:57 +00:00
Steven Edwards
6184590544 we have two copies of a better calc floating around
svn path=/trunk/; revision=14839
2005-04-28 03:37:01 +00:00
Alex Ionescu
f43691583f My mistake
svn path=/trunk/; revision=14838
2005-04-28 00:57:35 +00:00
Alex Ionescu
defaccea55 IO Manager Cleanup continues:
- Removed many extra files that expanded the I/O Manager too much. We usually stick with the standard of
      one object/class per file, like io/device.c or io/controller.c, so it was very confusing to have some
      objects split up in 5 or 6 different files, some containing only one api. Additionally, even a third
      system was used, were objects were bunched up together by class. This mess was so bad that NtCreateFile,
      IopCreateFile, IoCreateFile, IopDeleteFile, NtDeleteFile and NtWriteFile were in 5 different files (as an
      example).
    - Cleaned up some IRP code and fixed a couple of bugs, mainly:
        - Write I/O Type in IRP
        - Write proper IRP Flags where they shoudl be used (Will help for completing requests when i clean up that code)
        - Do *NOT* zero out buffers or data that shouldn't be zeroed. Scsiport actually dependen on this incorrect
          behaviour. Code should never depend on a buffer being zeroed!
        - Remove a lot of duplicated code and helper/alternate functions that weren't really useful.
        - Free MDL and IRP on some failures where we didn't
     - Alphabetized some of the large io files for easier lookup of functions. This and the deletions have resulted
       in a completely bloated diff file. I will provide a cleaned up diff on request by manually downloading the
       old revision and copy/pasting the new code directly above it. The functions which we touched are: 
           - IoAllocateIrp
           - IoBuild[A]SyncronousFsdRequest
           - IoBuildDeviceIoControlRequest
           - IoInitializeIrp
           - IoPageRead, IoSynchronousPageWrite

svn path=/trunk/; revision=14837
2005-04-28 00:54:59 +00:00
Hartmut Birr
612461644d Fixed the check for a created first thread.
svn path=/trunk/; revision=14836
2005-04-27 21:57:24 +00:00
Hartmut Birr
a6d944ecfc Close only the Nls directory handle if the directory was created.
svn path=/trunk/; revision=14835
2005-04-27 21:55:02 +00:00
Hartmut Birr
5e1d995563 Fixed _SEH2_END.
svn path=/trunk/; revision=14834
2005-04-27 21:51:55 +00:00
Hartmut Birr
2c12af40a1 Guarded some calls to handle functions with KeEnterCriticalRegion/KeLeaveCriticalRegion in PsDeleteCidHandle.
svn path=/trunk/; revision=14833
2005-04-27 21:47:34 +00:00
Hartmut Birr
d38a2745a9 Made the physical memory section permanent.
svn path=/trunk/; revision=14832
2005-04-27 21:44:27 +00:00
Hartmut Birr
68f8b9f89b Reinitialized the palette entries after setting the video mode in DrvAssertMode.
svn path=/trunk/; revision=14831
2005-04-27 21:10:44 +00:00
Aleksey Bragin
06ff525737 Added language 0419 (russian) into NLS\Language
svn path=/trunk/; revision=14830
2005-04-27 19:46:41 +00:00
Art Yerkes
2e9d113d86 turned off DEBUG output (thanks to gge for pointing it out).
svn path=/trunk/; revision=14829
2005-04-27 19:04:20 +00:00
Magnus Olsen
f00d82e494 remove ddalphablt worng functions
it should have been NtGdiDdAddAlphaBlt

svn path=/trunk/; revision=14828
2005-04-26 22:28:24 +00:00
Magnus Olsen
3bd5362791 implement NtGdiDdBlt and NtGdiDdAlphaBlt
NtGdiDdAlphaBlt are not supportet by microsoft 
so we report unsupport directx function 


svn path=/trunk/; revision=14827
2005-04-26 22:02:32 +00:00
Aleksey Bragin
dd182c1076 A few locales entries added, though we have currently only 4 locales imported from wine (france, eng, enu, german)
svn path=/trunk/; revision=14826
2005-04-26 21:26:06 +00:00
Aleksey Bragin
037d9d7e8b More DPRINTs added for better tracing of locale-related calls, but NDEBUG is defined.
svn path=/trunk/; revision=14825
2005-04-26 21:23:43 +00:00
Aleksey Bragin
23e1c587a2 Minor changes into a way locales are get and listed
svn path=/trunk/; revision=14824
2005-04-26 21:21:32 +00:00
Gé van Geldorp
c5106fcc0a Sync to Wine-20050419:
Mike McCormack <mike@codeweavers.com>
- Load and display bitmaps in the dialogs.
- Make sure there's only one place we allocate dialog controls.
- Rename dupstrW to strdupW, and remove duplicate definition.
- Move definition of string manipulation functions to msipriv.h.
- Split out database functions, remove dependence on wine/unicode.h.
- Fix loading of the summary information.
- test cases for summary information
- fix memory leaks
- Implement summary information loading and saving.
- Declare MsiExportDatabase* in the spec file, and fix a typo.
- Replace instances of HeapAlloc/MultiByteToWideChar with the internally
  defined strdupAtoW.
- Use strdup, implement MsiDatabaseImportA.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Peter Berg Larsen <pebl@math.ku.dk>
- Janitorial: Get rid of strncpy/strncpyW.
- Remove 2 identicals calls to strlenW.
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Spanish translations updated.
Aric Stewart <aric@codeweavers.com>
- Implement Publish Components in order for MsiGetQualifiedComponent
  apis to work. Also implement MsiGetQualifiedComponent, or at least some
  of the functionality as it is supposed to install stuff if it is
  absent, which it does not do yet.
- Make sure the GUID of the typelib we are registering matches the guid
  requested from MSI. If not search the given typelib file to find the
  typelib requested to register.
- If running in UI mode, then display the UI mode dialogs at the end of
  the installs.
Steven Edwards <steven_ed4153@yahoo.com>
- Avoid using ver.h in favor of winver.h.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Hans Leidekker <hans@it.vu.nl>
- Dutch resource translation.
Marcus Meissner <meissner@suse.de>
- Fixed MsiDatabaseImportA, MsiDatabaseImportW, and
  MsiCreateAndVerifyInstallerDirectory stub parameter counts.
Juan Lang <juan_lang@yahoo.com>
- Log missing environment vars for easier debugging.

svn path=/trunk/; revision=14823
2005-04-26 20:39:02 +00:00
Gé van Geldorp
f668ceb14f Sync to Wine-20050419:
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Spanish translations updated.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.

svn path=/trunk/; revision=14822
2005-04-26 20:05:25 +00:00
Gé van Geldorp
6119adfe22 Sync to Wine-20050419:
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
- SBSP_ABSOLUTE is 0 so we cannot do (wFlags & SBSP_ABSOLUTE).
- Add COMDLG32_DumpSBSPFlags().
Eric Pouech <pouech-eric@wanadoo.fr>
- Added proper definition for PRINTDLGEX[AW] structures.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Juan Lang <juan_lang@yahoo.com>
- Change a fixme to a warn, and use W version of call.
Peter Berg Larsen <pebl@math.ku.dk>
- Replace strncpy with memcpy or lstrcpyn.
- Janitorial: Get rid of strncpy/strncpyW.

svn path=/trunk/; revision=14821
2005-04-26 19:18:13 +00:00
Hartmut Birr
c292d7ed88 - Preinitialise the com port infos with default values.
- Set the baud rate also in SerialPortInfo.

svn path=/trunk/; revision=14820
2005-04-26 19:06:19 +00:00
Gé van Geldorp
b55b368e31 Re-apply 14698 - 14762 and fix resulting problem
svn path=/trunk/; revision=14819
2005-04-26 18:18:36 +00:00
Magnus Olsen
9b91fad21c Implement NtGdiDdCanCreateSurface
not tested 

svn path=/trunk/; revision=14818
2005-04-26 17:19:06 +00:00
Hartmut Birr
c087372392 - Used SysProcessorTimeInfo to calculate the idle time.
- Fixed the allocation of SysProcessorTimeInfo.  
- Used the process creation time as second unique id.


svn path=/trunk/; revision=14817
2005-04-26 16:28:38 +00:00
Alex Ionescu
946594bdc0 Implement IoRaiseHardError, combine error stuff, fix hideously wrong implementatin of Controller Objects.
svn path=/trunk/; revision=14816
2005-04-26 14:51:18 +00:00
Alex Ionescu
c6c78c3133 Fixedd CTM for sedwards. happy birthday to me
svn path=/trunk/; revision=14815
2005-04-26 13:17:44 +00:00
Alex Ionescu
d54cf3af82 Enable flags only for 3.4.3, should fix the build for people with versions below. Disabled on 4.0 since they are automatic
svn path=/trunk/; revision=14814
2005-04-26 12:35:32 +00:00
Thomas Bluemel
72612ded64 don't request write access in NtReadVirtualMemory, this should fix the listdlls.exe issues
svn path=/trunk/; revision=14813
2005-04-26 09:40:30 +00:00
Art Yerkes
869e1792b8 Fixes by WaxDragon:
- Implement get* integer reading.
- Properly implement ipv4addrs (validates a set of IPv4 addresses)
- Limit returned DNS servers to 1 until we fix iphlpapi.

svn path=/trunk/; revision=14812
2005-04-26 07:11:02 +00:00
Alex Ionescu
940803cd14 Do not strip if KDBG is used
svn path=/trunk/; revision=14811
2005-04-26 05:13:49 +00:00
Alex Ionescu
ae45230c20 Change optimization settings for retail builds. Change to -Os for smaller executables which are not slower, and enable more advanced optimizations. funitatatime is already included by default in GCC 4.0. Strip debug info from retail builds, since we don't parse the symbols anyways. I hope these options don't break anything, they don't for me; Debugging is unaffected.
svn path=/trunk/; revision=14810
2005-04-26 05:10:58 +00:00
Alex Ionescu
da26306086 Fix compilation with optimizations
svn path=/trunk/; revision=14809
2005-04-26 04:58:32 +00:00
Hartmut Birr
02202bd8b1 Fixed the initialising of bochs debug.
svn path=/trunk/; revision=14808
2005-04-25 20:35:37 +00:00
Alex Ionescu
b92778d49a Remove excess header
svn path=/trunk/; revision=14807
2005-04-25 19:43:50 +00:00
Alex Ionescu
d06c1ef5e9 Remove dbg.h and move it to kd.h, it was getting confusing to have so many debug files. Also fixes hal to compile
svn path=/trunk/; revision=14806
2005-04-25 19:42:48 +00:00
Alex Ionescu
a3bf890534 Merge in wrappers with DBG setting as requested
svn path=/trunk/; revision=14805
2005-04-25 18:31:20 +00:00
Alex Ionescu
a893ce48dd Fix compilation problem..
svn path=/trunk/; revision=14804
2005-04-25 18:29:16 +00:00
Hartmut Birr
7519345381 Replaced a dirty hack by another.
svn path=/trunk/; revision=14803
2005-04-25 17:57:57 +00:00
Alex Ionescu
6f666f0ad4 Simplify and correct KiDebugService
svn path=/trunk/; revision=14802
2005-04-25 16:17:35 +00:00
Alex Ionescu
3ebd40dd0f Add GDB = 1 to makefile to compile-in the GDB Wrapper. These options will be better manged with rbuild
svn path=/trunk/; revision=14801
2005-04-25 15:20:15 +00:00
Alex Ionescu
6458f12f54 Added KiDebugService. Will optimize soon to use common Exit code
svn path=/trunk/; revision=14800
2005-04-25 15:02:11 +00:00
Alex Ionescu
e160c0fb26 KD System Rewrite:
- Totally dynamic based on the principle of Native Providers built-in the Kernel (like Screen, 
      FileLog and Serial) and a pluggable Wrapper which is optionally compiled (Bochs, GDB)
    - Nothing changed in KDBG, except for that its settings (KDSERIAL/KDNOECHO) are now stored in
      KdbDebugState instead.
    - Wrappers are currently built uncondtionally. With rbuild, I'll make them easily removable.
    - Debug Log code simplified greatly, sped up and now supports printing even the first boot messages,
      which wasn't supported before.
    - Removed most of KDBG compile-time settings, ones which are needed are in include/dbg as macros now.
    - Left in some kdbg init code and break code, but it could be made to be used as a 'wrapper' for those
      functions. I will do it later.
    - Made a hack for KdpEnterDebuggerException..it seems to be called differently and at different times
      for GDB vs KDBG and I couldn't unite them.
    - KdpServiceDispatcher now does both the documented and ros-internal debug functions and will eventually
      be called through INT2D from keyboard.sys instead of as an API.

All in all, this patch makes KD  separated from KDBG and creates a pluggable architecture for creating future wrappers that don't require changing tons of code in the future. It improves the debug
log by printing even the earliest debug messages to it and it removes many of the manual ifdef(KDBG) but making them automatic though a single macro file. It makes extra debugging functionality optional and it
allows removal of a private API from our exports.

svn path=/trunk/; revision=14799
2005-04-25 14:44:48 +00:00
Gé van Geldorp
753a3c0e99 Sync to Wine-20050419:
Juan Lang <juan_lang@yahoo.com>
- Always initialize header file name, to prevent "#include (null)"
  statements in generated files.
- Put space between include directive and include file.
- Add proxy/stub options to widl man page.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Add support for single in idl files.
- Keep types sorted in alphabetical order.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.

svn path=/trunk/; revision=14798
2005-04-25 10:58:34 +00:00
Gé van Geldorp
2b5f3c76a1 Sync to Wine-20050419:
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Michael Lin <mlin@corvu.com.au>
- Change menu item options to use optional comma.

svn path=/trunk/; revision=14797
2005-04-25 09:12:35 +00:00
Gé van Geldorp
c782c3c14d Sync to Wine-20040419:
Jon Griffiths <jon_p_griffiths@yahoo.com>
- -Wunsigned fixes.
Alexandre Julliard <julliard@winehq.org>
- Use the correct file name in the "generated automatically" comments.
- Don't crash on xrealloc(0) (found by Jon Griffiths).
Marcus Meissner <meissner@suse.de>
- Use correct movw instead of movl when handling segment registers.

svn path=/trunk/; revision=14796
2005-04-25 08:26:29 +00:00
Gé van Geldorp
1900553907 SVN maintenance
svn path=/trunk/; revision=14794
2005-04-25 07:13:04 +00:00
Thomas Bluemel
a075aaef57 add missing typecast
svn path=/trunk/; revision=14793
2005-04-24 20:12:14 +00:00
Eric Kohl
4fd3eee227 Implement the time format page for the regional settings control panel.
svn path=/trunk/; revision=14792
2005-04-24 14:49:56 +00:00
Maarten Bosma
63b33dd9b3 PackageManager: HTML Log
svn path=/trunk/; revision=14791
2005-04-24 10:37:17 +00:00
Alex Ionescu
88d6fe5cb4 Don't use hack for trap frames anymore, read TempEsp and TempSegSs for kernel-mode traps during debugging.
svn path=/trunk/; revision=14790
2005-04-23 20:02:39 +00:00
Alex Ionescu
5673eb73b9 Use fake frame in KDBG mode, not DBG
svn path=/trunk/; revision=14789
2005-04-23 19:23:00 +00:00
Casper Hornstrup
e2239c25dc ROS_BUILDNOSTRIP environment variable to control building of non-symbol-stripped executable output files
svn path=/branches/xmlbuildsystem/; revision=14788
2005-04-23 18:41:02 +00:00
Alex Ionescu
8057554d01 forgot to delete this one too
svn path=/trunk/; revision=14787
2005-04-23 18:17:11 +00:00
Casper Hornstrup
f76d62cff1 Use correct case
svn path=/branches/xmlbuildsystem/; revision=14786
2005-04-23 18:16:59 +00:00
Alex Ionescu
a1151864cc Share compiler-generated asm exports between ntdll and ntoskrnl (stuff like aullshr, alldiv, etc
svn path=/trunk/; revision=14785
2005-04-23 18:15:39 +00:00
Alex Ionescu
1d0c612395 Remove MDA support
svn path=/trunk/; revision=14784
2005-04-23 18:00:59 +00:00
Alex Ionescu
9a7799d8b8 Delete cruft
svn path=/trunk/; revision=14783
2005-04-23 17:56:10 +00:00
Casper Hornstrup
abe602feed Don't detect host compiler on Linux
svn path=/branches/xmlbuildsystem/; revision=14782
2005-04-23 17:24:13 +00:00
Casper Hornstrup
dea6a7d878 Allow warnings for now (for real this time)
svn path=/branches/xmlbuildsystem/; revision=14781
2005-04-23 17:11:51 +00:00
Casper Hornstrup
a29d2466ef Allow warnings for now
svn path=/branches/xmlbuildsystem/; revision=14780
2005-04-23 17:09:59 +00:00
Alex Ionescu
7f7e3e1cf6 Add more detailed comment about ThreadListEntry so people don't get confused liek I did
svn path=/trunk/; revision=14779
2005-04-23 16:23:57 +00:00
Alex Ionescu
6c66ab6c64 Move removing process from active list to PspDeleteProcess instead of PspExitProcess. This way we don't have to do it manually after ObInsertObject failure in PspCreateProces. Also, set the Process Query Time at the end of Process Creation, since the process doesn't really exist before then. Thanks to Hartmut for finding the bugs.
svn path=/trunk/; revision=14778
2005-04-23 16:17:27 +00:00
Alex Ionescu
e60561fb17 Move removing process from active list to PspDeleteProcess instead of PspExitProcess. This way we don't have to do it manually after ObInsertObject failure in PspCreateProces. Also, set the Process Query Time at the end of Process Creation, since the process doesn't really exist before then. Thanks to Hartmut for finding the bus.
svn path=/trunk/; revision=14777
2005-04-23 16:16:59 +00:00
Hartmut Birr
efa3efe5bb Fixed restoring of registers.
svn path=/trunk/; revision=14776
2005-04-23 16:09:06 +00:00
Magnus Olsen
b331ee2104 Swedish translation
Andreas Bjerkeholt (harteex@gmail.com) 

svn path=/trunk/; revision=14775
2005-04-23 14:16:48 +00:00
Magnus Olsen
18ca7ef010 Swedish translation by Kris Engeman
irc : nick "Wacko"

svn path=/trunk/; revision=14774
2005-04-23 14:14:16 +00:00
Magnus Olsen
e3f6aacd83 forget use lates winfile.rc
svn path=/trunk/; revision=14773
2005-04-23 14:09:44 +00:00
Magnus Olsen
7a1c9f6f2d Fix a bug in sv.rc so it can compile
and it is working now in ros


svn path=/trunk/; revision=14772
2005-04-23 14:01:43 +00:00
Magnus Olsen
a893ac134a reverit swedish translation
svn path=/trunk/; revision=14771
2005-04-23 13:42:15 +00:00
Magnus Olsen
aeb0176d0e David Nordenberg: Swedish translation, proofread by Andreas Bjerkeholt
svn path=/trunk/; revision=14770
2005-04-23 13:39:53 +00:00
Magnus Olsen
b37e882082 2005-04-07 For swedish translations in explorer
* David Nordenberg: Fixed & on two idetical letters and switched to codepage 1252

svn path=/trunk/; revision=14769
2005-04-23 13:36:06 +00:00
Hartmut Birr
8235965b9e Fixed the smp build.
svn path=/trunk/; revision=14768
2005-04-23 12:44:42 +00:00
Hartmut Birr
d00288c263 - Initialized the process create time.
- Fixed some minor bugs.

svn path=/trunk/; revision=14767
2005-04-23 10:18:43 +00:00
Hartmut Birr
4db3d406aa Removed a wrong additional reference in IoCreateDevice.
svn path=/trunk/; revision=14766
2005-04-23 10:16:18 +00:00
Gé van Geldorp
ed7c0b9e7c Revert freeldr back to revision 14697
svn path=/trunk/; revision=14765
2005-04-23 10:15:49 +00:00
Hartmut Birr
493afd1118 Do not remove an entry from the parent for twice.
svn path=/trunk/; revision=14764
2005-04-23 10:14:29 +00:00
Hartmut Birr
ff121124b1 Remove the thread from the list when terminating.
svn path=/trunk/; revision=14763
2005-04-23 10:11:37 +00:00
Alex Ionescu
3ff5700950 And these should've been added...
svn path=/trunk/; revision=14762
2005-04-23 06:45:56 +00:00
Alex Ionescu
9732c7adea Bug in previous commit...these should've been deleted
svn path=/trunk/; revision=14761
2005-04-23 06:43:39 +00:00
Alex Ionescu
665e646216 Small Debugging Services re-arrangement. /dbgk created for User-Mode debugging and Native Debug Objects (implemented an experimental NtCreateDebugObject. Untested and doesn't work since the DbgkObjectType isn't created yet. Added dbgk.h with the basic structures for now. Removed /dbg and split up code in ex/debug.c for executive and rtl/debug.c for RunTime Library Debug calls. Kdbg now dedicated in /kdbg.
svn path=/trunk/; revision=14760
2005-04-23 06:41:25 +00:00
Art Yerkes
45ae6da0c6 Fixes a problem reported by WaxDragon when acquiring the nameserver address
from DHCP.  This needs to be rechecked but seems harmless.

svn path=/trunk/; revision=14759
2005-04-23 05:43:35 +00:00
Alex Ionescu
98f1613a52 Implement KiServiceExit2 which restores debug registers and exits with IRET, used during user-mode return without a syscall
svn path=/trunk/; revision=14758
2005-04-23 05:00:10 +00:00
Alex Ionescu
e43b4d5c1a Terminate System Thread after execution...forgot to add this for some reason.Thanks to WaxDragon for reporting it
svn path=/trunk/; revision=14756
2005-04-23 04:19:35 +00:00
Alex Ionescu
1928c25d73 Add KDBG debugging hack from old code and convert it to fit new one. Not enabled yet because it underflows the stack after a while (researching why). Also complete KeContextToTrapFrame and have Ke386InitThreadWithContext call it to handle creating the Initial Trap Frame
svn path=/trunk/; revision=14754
2005-04-23 04:12:26 +00:00
Art Yerkes
18ac7f07b6 Don't try to discover if we didn't find any interfaces we like. When we get
PnP, we'll need to do discover when the first interface appears.

svn path=/trunk/; revision=14751
2005-04-23 00:40:44 +00:00
Eric Kohl
e8c40d4eee advapi32.dll: Implement QueryServiceStatus.
services.exe: Implement OpenSCManagerA, OpenServiceA, OpenServiceW and QueryServiceStatus.

svn path=/trunk/; revision=14750
2005-04-23 00:01:37 +00:00
Hervé Poussineau
2160c0c245 Add Green driver, that emulates a VT100 compatible server.
Input won't work as long as we don't have a kdbclass driver.

svn path=/trunk/; revision=14749
2005-04-22 19:57:03 +00:00
Filip Navara
5b43b8d8b1 Fix one more typo...Spotted by gasmann.
svn path=/trunk/; revision=14748
2005-04-22 15:26:14 +00:00
Casper Hornstrup
b7d6aeae38 * Use freeldr.sys for livecd
* Install registry hives in the right place on the livecd


svn path=/branches/xmlbuildsystem/; revision=14747
2005-04-22 15:06:58 +00:00
Casper Hornstrup
03858e9151 Correct install name
svn path=/branches/xmlbuildsystem/; revision=14746
2005-04-22 15:03:28 +00:00
Filip Navara
8af30ee387 Fix a typo. Spotted by Potapnik.
svn path=/trunk/; revision=14745
2005-04-22 14:58:22 +00:00
Filip Navara
bf338a8003 Denzil <d3nzil@gmail.com>
Czech translation of Calc, SndVol32, WineFile and Autorun applications.

svn path=/trunk/; revision=14744
2005-04-22 13:54:08 +00:00
Alex Ionescu
3b57e224a1 Fix win32k building
svn path=/trunk/; revision=14743
2005-04-22 13:17:35 +00:00
Alex Ionescu
4b4d215e36 Thread Creation and Context Switching re-write, plus Idle/First Thread minimization attempt. Full changelog on ML, too large to post here
svn path=/trunk/; revision=14742
2005-04-22 12:52:25 +00:00
Art Yerkes
725d5b0050 Removed a useless temporary from router setting.
Use option 6, DHO_DOMAIN_NAME_SERVERS to get name servers from dhcp server.
Fix wrong variable in nameserver setting.
Router and Nameserver now correctly acquired from DHCP.

svn path=/trunk/; revision=14741
2005-04-22 12:46:27 +00:00
Alex Ionescu
264ff7e6d2 Switch to NT5
svn path=/trunk/; revision=14740
2005-04-22 12:43:16 +00:00
Alex Ionescu
8d6d8aaf57 Put back GUI Shell
svn path=/trunk/; revision=14739
2005-04-22 12:42:35 +00:00
Casper Hornstrup
4e8835798a * Remove empty line
* Rearrange some dependencies


svn path=/branches/xmlbuildsystem/; revision=14738
2005-04-22 10:12:37 +00:00
Art Yerkes
d7b7ff3672 tcpmisc.h:
- Correct wrongly sized struct IPAddrEntry.
dhcp: dhclient.c and dispatch.c
- remove lots of #if 0
- remove instances of script_go and associated stuff
- write stub check_arp pending ARP api functions being implemented
- introduced S_STATIC state for adapters
dhcp: api.c:
- Do add_protocol and send_discover when telling an adapter to lease.
- Do remove_protocol when we make an adapter static.
dhcp: adapter.c:
- Add infrastructure for finding the adapter key in the registry
- Check for IP address settings and apply as static if set, otherwise dynamic
tcpip: *info and lan:
- Set info types to DEBUG_INFO and DEBUG_DATALINK everywhere
tcpip: lan:
- Remove kernel IP configuration.
bootdata:
- Added dhcp service and make it start.
- Removed static IP address settings from the default configuration
- Removed old JS bootcode


svn path=/trunk/; revision=14737
2005-04-22 09:45:17 +00:00
Casper Hornstrup
2f6df3a9cf Clean object files for static libraries
svn path=/branches/xmlbuildsystem/; revision=14736
2005-04-22 09:19:18 +00:00
Gé van Geldorp
9ac6146c7b Sync to Wine-20050419:
Robert Shearman <rob@codeweavers.com>
- Fix TB_GETBUTTONSIZE to return the correct width/height for no
  buttons.
- Use ES_AUTOHSCROLL for edit box.
- Fix size passed to SPI_NONCLIENTMETRICS.
- iSelectedImage is allowed to be 0.
- Use SetWindowPos to move the buddy window into position instead of
  destroying it and recreating it at the new position.
- Clear the background in WM_VSCROLL to avoid problems with
  antialiased text drawing on top of itself multiple times.
Dimitrie O. Paun <dpaun@rogers.com>
- Use {Alloc,ReAlloc,Free}() instead of Heap{Alloc,ReAlloc,Free}().
- Fix a memory leak in toolbar. Avoid casts.
- Complete unicodification of the toolbar common control.
- Move a header comment for consistency with the other controls.
- Very small alignment fixes.
- Add support for LVN_ODSTATECHANGED.
- Minor typo fixes.
- Handle wParam in WM_PAINT properly: if non-null, it is the hdc we are
  supposed to use to draw into.
- Complete unicodification of the propsheet common control.
- Complete unicodification of the flatsb common control.
- Pull the WM_TIMER handling into its own function.
- ANIMATE_DrawFrame shouldn't worry about locking, the lock should be
  held by the caller.
- Delete the critical section when freeing up the infoPtr.
- Audit the control against Comctl32.dll version 6.0.
- Proper handling of GWL_STYLE.
- Implement WM_CLOSE. Fix WM_SIZE implementation.
- Small cleanups.
- Cleanup and simplify the painting code.
- Fix a potential bug along the way.
- Unicodification and typesafe interfaces.
- Complete unicodification.
- Complete unicodification of the rebar common control.
- Add Robert Shearman's explanation about WM_NCPAINT.
- Move testing comments in a more appropriate place.
- Proper handling for GWL_STYLE.
- Store and use hwndSelf in the PAGER_INFO.
- Pass the infoPtr around instead of hwnd.
- Use proper types in the function signatures.
- Fix a few return statements.
- MonthCal unicodification.
- Tab unicodification.
- Keep track of WS_DISABLED explicitely, as it doesn't generate a
  WM_STYLECHANGED message.
- Minor cleanups.
- Complete unicodification of the tooltips common control.
- Complete the unicodification of comctl32undoc.
- Complete unicodification of the header common control.
- Complete unicodification of the treeview common control.
- Audit the code against Comctl32.dll version 6.0.
- Handle notification and styles as in the other controls.
- Maintain the const for strings throughout parsing.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
- Eliminate HeapAlloc casts.
Alexandre Julliard <julliard@winehq.org>
- Revert changes to the painting code, the WM_CTLCOLORSTATIC message
  should not be sent from the animation thread.
Duane Clark <dclark@akamail.com>
- Misc rectangle fixes.
- The date should be initialized from local time.
- Monday is day number '1'.
- Set day of week when a day is selected in the calender.
- Use fixed width fields in datetime.
- DTS_TIMEFORMAT is a two bit field, so test accordingly.
- Reposition and resize the updown control when the datetime control is
  resized.
- Respond to updown inputs.
- The datetime should be initialized with local time.
- Add support for direct keyboard input to numeric fields.
- Hour '0' corresponds to 12AM.
Vitaliy Margolen <wine-devel@kievinfo.com>
- Draw only visible tabs.
- Don't redraw if no information has changed.
- Fixed endless redraw loop if app using callback for images and/or
  text.
- Keep color changes made by app for the current draw cycle.
- Send notifies after invalidating changed areas.
- Don't use custom draw returned colors for control.
C. Scott Ananian <cscott@cscott.net>
- UPDOWN_GetBuddyInt should not fail when the control is empty.
Peter Berg Larsen <pebl@math.ku.dk>
- Replace strncpy with memcpy or lstrcpyn.
Huw Davies <huw@codeweavers.com>
- The depth of the colour bitmap needs to match that of the screen.
Jason Edmeades <us@the-edmeades.demon.co.uk>
- Make the treeview correctly search when the top index is selected.
Evan Deaubl <wine@warpedview.com>
- TREEVIEW_DoSelectItem should not do any of the TVGN_FIRSTVISIBLE work
  if the newSelect parameter is NULL.
Eric Pouech <pouech-eric@wanadoo.fr>
- Removed excessive statement (break after return or goto, not useful
  break, not needed vars...)

svn path=/trunk/; revision=14735
2005-04-21 21:01:05 +00:00
Maarten Bosma
7909dfa511 PackageManager: Uploaded forgotten File
svn path=/trunk/; revision=14734
2005-04-21 16:28:44 +00:00
Casper Hornstrup
ef5b027655 Generate temporary files at the root of the directory
svn path=/branches/xmlbuildsystem/; revision=14733
2005-04-21 16:18:29 +00:00
Aleksey Bragin
702e2a0488 EnumSystemLocalesW() implementation. Certainly not full (doesn't support INSTALLED/SUPPORTED/etc flags) - but at least it does what is needed - enumerate locales.
Other stuff is coming soon so intl.cpl could work.

svn path=/trunk/; revision=14732
2005-04-21 14:49:17 +00:00
Casper Hornstrup
e3bf054824 Use ROS_INTERMEDIATE and ROS_OUTPUT environment variables
svn path=/branches/xmlbuildsystem/; revision=14731
2005-04-21 13:05:54 +00:00
Aleksey Bragin
d6eec68dd8 Added xbox video driver information (by GvG), I hope it doesn't interfere anyone, and there will be no need to patch registry everytime to boot under xbox.
svn path=/trunk/; revision=14730
2005-04-21 12:58:20 +00:00
Casper Hornstrup
4f605b66c3 Clean-as-you-go mode to remove generated files as soon as possible to minimize disk space requirements
svn path=/branches/xmlbuildsystem/; revision=14729
2005-04-21 12:54:15 +00:00
Casper Hornstrup
376f9fd35c Document ROS_PREFIX environment variable
svn path=/branches/xmlbuildsystem/; revision=14728
2005-04-21 09:52:11 +00:00
Casper Hornstrup
7f1e0b51b2 Autodetect compiler
svn path=/branches/xmlbuildsystem/; revision=14727
2005-04-21 09:38:45 +00:00
Gé van Geldorp
5568b1261a - Protect multiboot info from being overwritten
- Pass command line to MachInit() funcs

svn path=/trunk/; revision=14725
2005-04-21 09:29:02 +00:00
Gé van Geldorp
ee219b0e23 Sync to Wine-20050419:
Peter Berg Larsen <pebl@math.ku.dk>
- Eliminate a strncpy and remove unused variable.

svn path=/trunk/; revision=14724
2005-04-20 22:05:23 +00:00
Eric Kohl
37d076fdc0 Move RtlAreAllAccessesGranted, RtlAreAnyAccessesGranted and RtlMapGenericMask to the shared runtime library.
svn path=/trunk/; revision=14723
2005-04-20 20:58:16 +00:00
Casper Hornstrup
5c61988e18 Don't put \ at end of path
svn path=/branches/xmlbuildsystem/; revision=14722
2005-04-20 20:48:55 +00:00
Gé van Geldorp
4dd2fef625 Roman Hoegg <roman.hoegg@unisg.ch>
Add configuration stuff for Swiss German keyboard

svn path=/trunk/; revision=14721
2005-04-20 19:52:45 +00:00
Hervé Poussineau
a93d293fa7 Implement IoRegisterDeviceInterface
svn path=/trunk/; revision=14720
2005-04-20 19:38:39 +00:00
Maarten Bosma
101713f39a PackageManager: Corrected default setting
svn path=/trunk/; revision=14719
2005-04-20 19:33:48 +00:00
Maarten Bosma
31d0c28c6d PackageManager: Options.xml
svn path=/trunk/; revision=14718
2005-04-20 19:01:30 +00:00
Royce Mitchell III
31390cae28 latest version of ArchBlackmann
svn path=/trunk/; revision=14717
2005-04-20 18:16:32 +00:00
Casper Hornstrup
40242e030f Don't link kernel-mode modules to kernel32.dll
svn path=/branches/xmlbuildsystem/; revision=14716
2005-04-20 17:57:26 +00:00
Hervé Poussineau
fde9a780c8 Don't hardcode "Reactos.xml" name
svn path=/branches/xmlbuildsystem/; revision=14715
2005-04-20 16:01:19 +00:00
Casper Hornstrup
fed5678a4c Fix build error
svn path=/branches/xmlbuildsystem/; revision=14714
2005-04-20 15:19:09 +00:00
Maarten Bosma
ffb29d1f85 PackageManager: Changed download Server back to http://svn.reactos.com
svn path=/trunk/; revision=14712
2005-04-20 12:52:36 +00:00
Alex Ionescu
0bc300d64d Remove bogus error message. It is normal for Mutex creation to fail since the Object will alredy exist after the first time it's created
svn path=/trunk/; revision=14711
2005-04-20 12:52:13 +00:00
Alex Ionescu
27a6253e6c Don't relocate shell32 and gdi32. Changed their base addresses so they fit better
svn path=/trunk/; revision=14710
2005-04-20 12:46:39 +00:00
Gé van Geldorp
7792b4bfea You can ask for e.g. GWL_STYLE for the desktop window,
but GWL_WNDPROC is off-limits for all windows if your
process didn't create it

svn path=/trunk/; revision=14709
2005-04-20 07:25:14 +00:00
Thomas Bluemel
6ba7e5d2cd don't access pagable memory at dispatch level in NtQueryDirectoryObject
svn path=/trunk/; revision=14708
2005-04-19 22:45:48 +00:00
Gé van Geldorp
9da5e3306e Hervé Poussineau <poussine@freesurf.fr>
Solve quarrel between GDB stub and serenum

svn path=/trunk/; revision=14707
2005-04-19 22:33:09 +00:00
Thomas Bluemel
377ffd2516 convert the device object to a temporary device before deleting it
svn path=/trunk/; revision=14706
2005-04-19 21:47:05 +00:00
Casper Hornstrup
ca82812967 Support 'make livecd'
svn path=/branches/xmlbuildsystem/; revision=14705
2005-04-19 20:52:49 +00:00
Thomas Bluemel
353f0bf39d use anonymous events for synchronization
svn path=/trunk/; revision=14704
2005-04-19 17:13:34 +00:00
Thomas Bluemel
932dc7e607 - Delete named objects from the namespace when the last handle is closed, unless the object is a permanent object
- IoCreateDevice should create a permanent object for named devices

svn path=/trunk/; revision=14703
2005-04-19 17:12:03 +00:00
Thomas Bluemel
995ac8a5b2 import wininet.h from wine to solve conflicts with the w32api headers
svn path=/trunk/; revision=14702
2005-04-19 15:06:18 +00:00
Thomas Bluemel
a0ef12d39e fix typo
svn path=/trunk/; revision=14701
2005-04-19 10:40:37 +00:00
Thomas Bluemel
77089de5b6 directly redirect MapGenericMask to ntdll
svn path=/trunk/; revision=14700
2005-04-19 10:36:11 +00:00
Gé van Geldorp
2200dc3562 Make disk partition handling architecture dependent, as not
all architectures have partitions

svn path=/trunk/; revision=14698
2005-04-19 08:51:16 +00:00
Alex Ionescu
68a209fb2b damn fingers were too fast. sorry, reverting
svn path=/trunk/; revision=14697
2005-04-19 06:26:01 +00:00
Alex Ionescu
05c22b76ae Use MmDeleteKernelStack and remove KeReleaseThread
svn path=/trunk/; revision=14696
2005-04-19 06:24:15 +00:00
Alex Ionescu
c683236f8a Use MmDeleteKernelStack and remove KeReleaseThread
svn path=/trunk/; revision=14695
2005-04-19 06:22:36 +00:00
Steven Edwards
cf1a2b10ac done with wininet import
svn path=/trunk/; revision=14694
2005-04-19 05:01:47 +00:00
Steven Edwards
00c9609713 added wine wininet.h
svn path=/trunk/; revision=14693
2005-04-19 05:00:05 +00:00
Steven Edwards
87aa47161b imported wininet from wine
svn path=/trunk/; revision=14692
2005-04-19 04:57:39 +00:00
Steven Edwards
38de497b18 imported in to the trunk
svn path=/trunk/; revision=14691
2005-04-19 04:50:10 +00:00
Steven Edwards
0c3c1a51b0 removing wininet for reimport
svn path=/trunk/; revision=14690
2005-04-19 04:49:49 +00:00
Steven Edwards
2607bc5f85 imported in to the trunk
svn path=/trunk/; revision=14689
2005-04-19 04:48:51 +00:00
Filip Navara
096c2a1089 Reenable ControlService and fix syntax errors in svcctl.idl.
svn path=/trunk/; revision=14686
2005-04-18 22:11:46 +00:00
Gé van Geldorp
645c3e7497 Fix copy/paste error
svn path=/trunk/; revision=14685
2005-04-18 22:00:52 +00:00
Filip Navara
08807e03af Don't use pointer to freed memory.
svn path=/trunk/; revision=14684
2005-04-18 21:50:08 +00:00
Eric Kohl
e2e4bed006 Disable ControlService() because of a bug in WIDL.
svn path=/trunk/; revision=14683
2005-04-18 21:34:11 +00:00
Thomas Bluemel
88e83d47c5 don't query additional information for the system idle process (which doesn't work anyway)
svn path=/trunk/; revision=14682
2005-04-18 21:03:33 +00:00
Hervé Poussineau
b3dee30733 Implement IOCTL_VIDEO_QUERY_AVAIL_MODES, IOCTL_VIDEO_QUERY_CURRENT_MODE, IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES
Add checks to input/output structure sizes
Move prototypes to new file vgamp.h

svn path=/trunk/; revision=14681
2005-04-18 20:18:06 +00:00
Maarten Bosma
aeac4dceb8 PackageManager: Changed Makefiles
svn path=/trunk/; revision=14680
2005-04-18 19:56:45 +00:00
Maarten Bosma
eb5d74fe5e PackageManager: TARGET_INSTALLDIR = bin
svn path=/trunk/; revision=14679
2005-04-18 19:41:15 +00:00
Thomas Bluemel
9c23880fd4 fix uninitialized variable
svn path=/trunk/; revision=14678
2005-04-18 19:26:12 +00:00
Maarten Bosma
0331e3dfe8 PackageManager: added missing package.h
svn path=/trunk/; revision=14677
2005-04-18 19:22:50 +00:00
Alex Ionescu
58f9a46b3e Fix remaining System Process information structure issues and fix compilation
svn path=/trunk/; revision=14676
2005-04-18 18:24:06 +00:00
Alex Ionescu
6e2aa454ad Fix Process/Thread information structures to match Windows 2000 and have proper structure. Fix bug in ntdll related to OpenProcess
svn path=/trunk/; revision=14675
2005-04-18 17:48:01 +00:00
Alex Ionescu
5817ae7a54 Fix Process/Thread information structures to match Windows 2000 and have proper structure. Fix bug in ntdll related to OpenProcess
svn path=/trunk/; revision=14674
2005-04-18 17:46:59 +00:00
Alex Ionescu
db6c8885b6 Fix incorrect replacement
svn path=/trunk/; revision=14673
2005-04-18 16:25:53 +00:00
Alex Ionescu
c614ba1a5e Remove excess debugging
svn path=/trunk/; revision=14672
2005-04-18 15:51:21 +00:00
Alex Ionescu
610dd8e8bc Use official THREAD_STATE enumeration for thread states
svn path=/trunk/; revision=14671
2005-04-18 15:49:57 +00:00
Alex Ionescu
6733de66c9 Fix win32k
svn path=/trunk/; revision=14670
2005-04-18 14:56:52 +00:00
Alex Ionescu
c030bd043b Forgot this...sorry..it was 3am
svn path=/trunk/; revision=14669
2005-04-18 14:13:03 +00:00
Gé van Geldorp
5845a581f2 Roman Hoegg <roman.hoegg@unisg.ch>
Add support for Swiss German keyboards

svn path=/trunk/; revision=14668
2005-04-18 13:27:16 +00:00
Alex Ionescu
5da996d016 Implement PsGetVersion. OSR and other sources say that the build number is a mix of high and low word, where the high represents checked or free
svn path=/trunk/; revision=14667
2005-04-18 05:47:13 +00:00
Alex Ionescu
234a011028 Fix Access Bug. cmd.exe and taskmgr work again, but there remains a bug with the process list
svn path=/trunk/; revision=14666
2005-04-18 05:25:07 +00:00
Alex Ionescu
2b66d8f4fb Fix incorrect OpenProcess implementation in kernel32 and make it tidier. I'm now seeing a bug with Access rights...
svn path=/trunk/; revision=14665
2005-04-18 05:12:36 +00:00
Alex Ionescu
9cafa059bd Fix Process not being deleted
svn path=/trunk/; revision=14664
2005-04-18 04:55:48 +00:00
Alex Ionescu
6829bd8c8b Implement PsSetLegoNotifyRoutine and PsRemoveCreateThreadNotifyroutine. Clean up ps/thread.c, move things to their own subsystem, do proper TEB Allocation with MmCreateTeb, remove TEB EPROCESS hack fields. Rename PsFrezeAllThreads to KeFreezeAllThreads and implement a working version.
svn path=/trunk/; revision=14663
2005-04-18 04:46:06 +00:00
Alex Ionescu
f4d2ac0b1e Remove ps/create.c, it did not fit with the current model of abstraction. Major cleanup of ps/process.c, created ps/notify.c and ps/quota.c. Implemented NtOpenProcess, PsRemoveLoadImageNotifyRoutine, PsGetCurrentProcessSessionId
svn path=/trunk/; revision=14662
2005-04-18 02:12:30 +00:00
Alex Ionescu
781c6b374f Forgot this
svn path=/trunk/; revision=14661
2005-04-18 02:11:19 +00:00
Alex Ionescu
7740536c18 Mini-merge from my local changes. Rewrite of Process Creation. Notable improvements:
- Subsystemization of Process Creation code. Memory code done by new Mm functions (not all used yet),
      Kernel code done by Ke*, etc.
    - Written to be compatible with the information in "Windows Internals".
    - Optimized and cleaned up.
    - ObInsertObject is now called at the end, fixing a plethora of wrong things that were covered with FIXMEs.
    - PEB is allocated with a Memory Area, and so will TEB soon, which allows 4KB allocation without 64KB gra
      nularity.
    - System DLL Mapping/Loading has been changed to be cached at system bootup, resulting in faster code.
    
Also changed Peb to report NT 5.0

NOTE: Messy, more to come soon. The full benefits of this patch won't be realized until the complete changes
      are in.

svn path=/trunk/; revision=14660
2005-04-18 00:42:31 +00:00
Thomas Bluemel
a9920ccd9d fixed warning
svn path=/trunk/; revision=14659
2005-04-17 20:46:36 +00:00
Eric Kohl
30e7e912c2 ADVAPI32.DLL / SERVICES.EXE:
Implement ControlService()

RPCRT4.DLL:
Disable a bogus buffer overflow check in NdrSimpleStructMarshall.

svn path=/trunk/; revision=14658
2005-04-17 19:56:50 +00:00
Art Yerkes
631838f4a3 Fixed the repeating DHCPOFFER/DHCPACK. I was assuming that the lease timeout
was relative but it's been adjusted by the time we get here.

Thanks to hpoussineau for helping with this bug.

svn path=/trunk/; revision=14657
2005-04-17 19:47:44 +00:00
Eric Kohl
e0dda3685a Support out-pointers to structs.
svn path=/trunk/; revision=14656
2005-04-17 19:45:06 +00:00
Thomas Bluemel
c9a0b04418 fixed warning and minor portability fix
svn path=/trunk/; revision=14655
2005-04-17 19:33:50 +00:00
Thomas Bluemel
3e18dad277 fixed warning and minor portability fix
svn path=/trunk/; revision=14654
2005-04-17 19:32:24 +00:00
Art Yerkes
ddc52fc76c Don't set a zero timeout for a lease. Zero here is taken to mean infinite.
svn path=/trunk/; revision=14653
2005-04-17 19:16:39 +00:00
Emanuele Aliberti
45d0cf852c sm info ssid - implemented
svn path=/trunk/; revision=14651
2005-04-17 17:50:48 +00:00
Alex Ionescu
d4449cd58d Put in alphabetical order, remove IopCreateDevice, and remove incorrect implementation tag for EFi functions
svn path=/trunk/; revision=14650
2005-04-17 16:26:44 +00:00
Eric Kohl
8c8090fc65 - Move generated files to the top of the file list.
- Rename generated file svcctl.h to svcctl_c.h.

svn path=/trunk/; revision=14647
2005-04-17 11:01:00 +00:00
Art Yerkes
99bd564c01 Add sufficient permission to the TCP handle to configure the IP address.
svn path=/trunk/; revision=14646
2005-04-17 08:00:01 +00:00
Art Yerkes
4c0e95ce09 More cleaning. Mostly working DHCP. IP address is automatically discovered
and configured on the first ethernet adapter.

svn path=/trunk/; revision=14645
2005-04-17 07:58:24 +00:00
Art Yerkes
aa0b005b38 Needed infrastructure for DHCP:
Corrected adapter index problem in iinfo.c.  Now the index returned is from
 IF->Index.
ninfo: ditto.
ip.c: Expose IPAddInterfaceRoute and IPRemoveInterfaceRoute for use by
 set ip address IOCTL.
if.c: Allow deleting of TCP context.
main.c: Turn off debugging in CVS.

svn path=/trunk/; revision=14644
2005-04-17 07:55:24 +00:00
Alex Ionescu
24b6532712 IoCreateDevice Changes:
- IoAllocateVpb renamed to IopAllocateVpb and made cleaner
    - Let ObCreateObject do all the memory allocation since the extra data belongs to the
      object and it should be responsible for allocating it. No more extra pool allocations
      or deallocations.
    - Zero out everythign a single time.
    - Remove useless code duplication
    - Use proper I/O Manager types for the object headers.
    - Honour Exclusive Flag, and Has Name Flag.
    - Only initialize event if there is a volume.
    - Initialize a VPB for Virtual Disks also.
    - Set up Device Object Extension properly
    - Set DO_DEVICE_INITIALIZING flag.
    - Use proper sector sizes, don't hardcode 512 (should be 2048 for cds)
    - Actually insert the object into the object table with ObInsertObject. This might seem
      useless, but remember that's simply because ROS has a broken Ob Manager which does way
      too much in ObCreateObject. It will be easier to use the rewrite if this is done properly.
    - Set the right sizes in some places.

svn path=/trunk/; revision=14643
2005-04-17 04:20:16 +00:00
Art Yerkes
f4c3dd909b Make the broadcast address all 1's.
svn path=/trunk/; revision=14642
2005-04-16 22:11:59 +00:00
Art Yerkes
0ed727c9f8 Fixed multiple bind of DHCP client port. Later, we need to implement
per adapter binding.

svn path=/trunk/; revision=14641
2005-04-16 22:10:55 +00:00
Alex Ionescu
d70abfc25b More I/O Stuff that was leftover in the old branch. Yes I'm still on break, I'm just comitting
my local work to avoid duplication.

    - Implemented IoRegisterBootDriverReinitialization, but routines don't actually get called yet.
    - Created IopGetDeviceObjectPointer to deal with the case when the pointer is needed for an attach;
      when this happens, a special (documented) flag should be sent to the driver, so that it can do any
      internal routines to be ready for an attach.
    - Fixed IoAttachDevice to use the Safe Attach routine and sent the IO_ATTACH_DEVICE_API flag (See above)
    - Fixed IoAttachDeviceToDeviceStack to call the safe function.
    - Optimized IoAttachDeviceByPointer
    - Implemented IoAttachDeviceToDeviceStackSafe. Support Device Extension Attach semantics.
    - Added various checks for unload/delete flags (that we never supported). Checks are pretty useless for now
      since we don't use the flags, but I've added one during IoDeleteDevice.
    - Implemented IoEnumerateDeviceObjectList. Should work, but untested.
    - Implemented IoGetDeviceAttachmentBaseRef.
    - Optimized IoGetRelatedDeviceObject.
    - Made IoGetDeviceObjectPointer call the internal routine (see #2 above).
    - Implemented IoDetachDevice.
    - Removed IoOpenDeviceInstanceKey and IoQueryDeviceEnumInfo. Obsoleted, unimplemented, undocumented NT4 APIs.
    - Various Attach/Detach fixes.

svn path=/trunk/; revision=14640
2005-04-16 21:41:32 +00:00
Alex Ionescu
39ef71436d Add file object flags, complete DEVOBJ_EXTENSION, and implement: IoIsFileOriginRemote, IoGetLowerDeviceObject, IoGetdiskDeviceObject, IoGetRequestorSessionId, IoGetRequestorProcessId
svn path=/trunk/; revision=14639
2005-04-16 19:38:14 +00:00
Alex Ionescu
9d6033ebad Fix WaitAll bug. Previously, not all Wait Objects in a WaitAll were checked for signaling, which meant as soon as one was signaled, all were supposed to be satisfied. Worse however, only one object would get satisfied anyways, because of a second bug which hid the first during my testing. Now, all wait all objects must be signaled before satsifcation, and satisfaction is correctly done on all the objects. Reg tested with multithrdwin, which did not properly work before. Thanks to w3seek for notifying me of this bug.
svn path=/trunk/; revision=14638
2005-04-16 17:48:46 +00:00
Maarten Bosma
88594a14de PackageManager: Ported GUI to C
svn path=/trunk/; revision=14637
2005-04-16 17:09:12 +00:00
Hervé Poussineau
f5129193e2 Implement FSCTL_IS_VOLUME_DIRTY and FSCTL_MARK_VOLUME_DIRTY
svn path=/trunk/; revision=14636
2005-04-16 16:04:38 +00:00
Eric Kohl
5942162766 ADVAPI32.DLL:
- Implement LockServiceDatabase and UnlockServiceDatabase.

SERVICES.EXE:
- Add stubs: ScmrLockServiceDatabase, ScmrUnlockDerviceDatabase, SamrNotifyBootConfigStatus, and ScmrCreateServiceW.
- Store and check access rights.

svn path=/trunk/; revision=14635
2005-04-16 12:50:33 +00:00
Maarten Bosma
837c3298c7 PackageManager: Little fix
svn path=/trunk/; revision=14634
2005-04-16 11:48:26 +00:00
Maarten Bosma
887849790a PackageManager: Changed download server to my own webspace. Because http://svn.reactos.com is still offline.
svn path=/trunk/; revision=14633
2005-04-16 11:42:44 +00:00
Maarten Bosma
58096a81e6 PackageManager: Converted cmdline interface to C
svn path=/trunk/; revision=14632
2005-04-16 11:11:52 +00:00
Hervé Poussineau
1eb9c1db51 Allow interrupts indicating an empty buffer only if some bytes are pending
This should correct the boot in Qemu

svn path=/trunk/; revision=14631
2005-04-15 22:14:13 +00:00
Eric Kohl
91ec410e2f Use RPC for making calls to the Service Control Manager.
svn path=/trunk/; revision=14630
2005-04-15 22:02:37 +00:00
Art Yerkes
1a1051e787 Removed need for separately prefixed binutils.
svn path=/trunk/; revision=14629
2005-04-15 19:33:51 +00:00
Eric Kohl
9a53101c31 Support in-pointers to structs.
svn path=/trunk/; revision=14628
2005-04-15 17:56:40 +00:00
Hervé Poussineau
fc68dda45d Add ASSERTs
Correct a bug when processing IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / TargetDeviceRelation (serenum)
Don't breakpoint if NDEBUG is defined (serenum)
Allow to write more than 16 bytes in one IRP_MJ_WRITE (serial)

svn path=/trunk/; revision=14627
2005-04-15 15:56:19 +00:00
Thomas Bluemel
df118afc6f use the correct version of KeGetCurrentIrql for MP
svn path=/trunk/; revision=14626
2005-04-15 10:52:29 +00:00
Alex Ionescu
956f376f4f Implemented Guarded Mutex, a drop-in replacement for Fast Mutex (the correct one, not the one ROS incorrectly implements) on NT 5.2. Not fully tested yet, so nothing switched to it and probably not usable. Also made KeGetCurrentThread/Irql become inlined, since this should create quite a speed boost. Made KeLeaveCriticalRegion deliver APCs if possible, and made Crit regions macros usable from outside ntoskrnl thanks to a new NT 5.2 API (KiCheckForKernelApcDelivery). Guarded Mutex code based on Filip Navara.
svn path=/trunk/; revision=14625
2005-04-15 06:24:35 +00:00
Art Yerkes
3e3c9e9775 Use DriverDesc in the registry as the adapter name since the ndis name OID
seems generally unimplemented.  What a pain.

svn path=/trunk/; revision=14624
2005-04-15 00:48:25 +00:00
Hervé Poussineau
34eabf82b5 Change debug messages to more neutral ones
svn path=/trunk/; revision=14623
2005-04-14 22:41:48 +00:00
Emanuele Aliberti
b47adbe03f Simple Win32/text application to query the SM (incomplete/untested).
svn path=/trunk/; revision=14621
2005-04-14 21:46:14 +00:00
Martin Fuchs
adcb1f9fef charn <charn89@hotmail.com>:
A function for desktopbar.cpp that controls how the taskbar can be resized.

svn path=/trunk/; revision=14620
2005-04-14 20:32:00 +00:00
Martin Fuchs
3d7368e673 from ThomasLa <sikker2004@yahoo.com>:
Corrected DE.rc language controls
Modifed EN.rc
implemented part of screensaver functions

Shows Screensavers
Get Some Values from registry
get default screensaver
implemented delete screensavers

svn path=/trunk/; revision=14619
2005-04-14 20:23:02 +00:00
Thomas Bluemel
c6c92ec896 add some missing gdi functions to the driver function table
svn path=/trunk/; revision=14618
2005-04-14 15:47:03 +00:00
Thomas Bluemel
33bd174f16 define KGATE in win32api
svn path=/trunk/; revision=14617
2005-04-14 15:45:14 +00:00
Casper Hornstrup
849d82764b repos test
svn path=/branches/xmlbuildsystem/; revision=14616
2005-04-14 15:42:56 +00:00
Casper Hornstrup
9e82ebc2fb repos test
svn path=/branches/xmlbuildsystem/; revision=14615
2005-04-14 15:26:31 +00:00
Casper Hornstrup
ea46a589a2 repos test
svn path=/branches/xmlbuildsystem/; revision=14614
2005-04-14 15:21:25 +00:00
Casper Hornstrup
a268dab596 repos test
svn path=/branches/xmlbuildsystem/; revision=14613
2005-04-14 15:14:19 +00:00
Casper Hornstrup
808b0255b6 repos test
svn path=/branches/xmlbuildsystem/; revision=14612
2005-04-14 15:10:41 +00:00
Casper Hornstrup
8aa43261af repos test
svn path=/branches/xmlbuildsystem/; revision=14611
2005-04-14 15:06:21 +00:00
Casper Hornstrup
3a085e784e ci test
svn path=/branches/xmlbuildsystem/; revision=14610
2005-04-14 15:02:30 +00:00
Casper Hornstrup
347e371970 test
svn path=/branches/xmlbuildsystem/; revision=14609
2005-04-14 14:54:58 +00:00
Casper Hornstrup
9201a30848 test
svn path=/branches/xmlbuildsystem/; revision=14607
2005-04-14 14:30:33 +00:00
Casper Hornstrup
ff1ef6813c test
svn path=/branches/xmlbuildsystem/; revision=14606
2005-04-14 14:27:25 +00:00
Art Yerkes
a4ca03679f Sorry, forgot header for API dll communication.
svn path=/trunk/; revision=14605
2005-04-13 06:55:26 +00:00
Alex Ionescu
3b6c6f0a94 Kernel Gates. Ultra-lightweight and exclusive Wait Objects used in NT 5.2+ as high-speed events. Code is untested, so it's not added to the build until I'm back in May.
svn path=/trunk/; revision=14603
2005-04-13 01:12:08 +00:00
Art Yerkes
b9df1e262e Added DHCP and dhcpcapi to the makefile.
svn path=/trunk/; revision=14602
2005-04-12 23:33:29 +00:00
Art Yerkes
abe286b572 Patch by tinus_ to fix a persistent problem with kdbg. Fixes the y umlaut
bug.

svn path=/trunk/; revision=14601
2005-04-12 23:27:59 +00:00
Art Yerkes
d91b173cb3 First instance of DHCP client API. Not tested yet. Next, the control
panel.

svn path=/trunk/; revision=14600
2005-04-12 23:25:14 +00:00
Art Yerkes
1df2f8903a Added client API interface.
svn path=/trunk/; revision=14599
2005-04-12 23:23:26 +00:00
Emanuele Aliberti
b27e166698 SM: some server side code for SM_API_QUERY_INFORMATION
svn path=/trunk/; revision=14598
2005-04-12 21:25:58 +00:00
Hervé Poussineau
95cdf6e471 Remove unneeded hack. DriverEntry is now called only once.
svn path=/trunk/; revision=14597
2005-04-11 22:38:53 +00:00
Hervé Poussineau
63e93fb6ba Respect OBJ_OPENIF flag in ObCreateObject
svn path=/trunk/; revision=14596
2005-04-11 22:38:05 +00:00
Hervé Poussineau
c568ca436d Open \Windows directory if it exists
svn path=/trunk/; revision=14595
2005-04-11 22:37:46 +00:00
Hervé Poussineau
40c9a57fa2 Don't call DriverEntry more than once. Fix suggested by Filip Navara.
svn path=/trunk/; revision=14594
2005-04-11 22:29:31 +00:00
Thomas Bluemel
9a3b51ea9a support kernel handles, creating them is however not yet supported
svn path=/trunk/; revision=14593
2005-04-11 21:50:15 +00:00
Maarten Bosma
e70a05cabf Package Manager: fixed HotKeys (thanks to w3seek) *shamed*
svn path=/trunk/; revision=14592
2005-04-11 20:27:20 +00:00
Casper Hornstrup
1c89a135da Have the object files of a module depend on the build file that contain the module
svn path=/branches/xmlbuildsystem/; revision=14591
2005-04-11 18:45:48 +00:00
Maarten Bosma
abd513250f PackageManager: Bug fix
svn path=/trunk/; revision=14590
2005-04-11 17:59:52 +00:00
Hervé Poussineau
4b77a4d92d Filip Navara <xnavara@volny.cz>: Use correct service name in IopInitializeDriverModule
svn path=/trunk/; revision=14589
2005-04-11 17:28:14 +00:00
Art Yerkes
298503a6e4 Commit for blight: fix stack alignment.
svn path=/trunk/; revision=14588
2005-04-11 15:43:04 +00:00
Aleksey Bragin
093d9f292c Initial version of uhci driver import from Linux 2.5 kernel. Currently compiles and links, but not usable (most probably will bugcheck when loaded).
Also a lot of compile warnings exist.
I will update UsbStack wiki page sometime soon to reflect direction of my work.

svn path=/trunk/; revision=14587
2005-04-11 12:49:25 +00:00
Art Yerkes
7af94c863d Use the right set (the referenced file objects) to compare when killing
exclusive select objects.  This fixes the select leakage observed when
running Xircon.

svn path=/trunk/; revision=14586
2005-04-11 08:41:58 +00:00
Art Yerkes
d34cc750d8 Fixed warning, uninitialized length. Sorry, I did this in a different way
and missed one use of NewBufferLen.  Not sure why I don't see the 'might be
used uninitialized' warning.

svn path=/trunk/; revision=14585
2005-04-11 08:07:41 +00:00
Art Yerkes
9166ff8f34 lock: Fixes suggested by w3seek:
protect the remaining MmProbeAndLockPages
don't return from the exception handler

read: Hopefully the last indecision in here:

Avoid using AFD_EVENT_CLOSE until the socket is really toast.
Use AFD_EVENT_DISCONNECT instead when we've got an EOF, but still have
buffered data.
I was doing this socket fiddling without a callout block.  Fixed.

svn path=/trunk/; revision=14584
2005-04-11 06:03:20 +00:00
Aleksey Bragin
7bbf6258d7 Started implementing Locale property page of intl.cpl appltet. It already provides choices for locale, the only thing it doesn't do - actually set chosen locale. Also it doesn't work under ReactOS.
svn path=/trunk/; revision=14583
2005-04-10 21:01:13 +00:00
Casper Hornstrup
fb03ace091 Support -Werror
svn path=/branches/xmlbuildsystem/; revision=14582
2005-04-10 19:44:11 +00:00
Emanuele Aliberti
810d009783 SM: initial work on SM_API_QUERY_INFORMATION (client side; ROS specific).
SM: fixed connection data in callback SM->subsystem_server during ss registration

svn path=/trunk/; revision=14581
2005-04-10 19:08:23 +00:00
Maarten Bosma
c1a2f01875 PackageManager: Cmdline fix
svn path=/trunk/; revision=14580
2005-04-10 17:03:40 +00:00
Hartmut Birr
0ba6cce82a Added dependency tracking.
svn path=/trunk/; revision=14579
2005-04-10 16:45:30 +00:00
Hartmut Birr
85197737c3 Set a better value for gap3 on read/write requests.
svn path=/trunk/; revision=14578
2005-04-10 16:44:00 +00:00
Hartmut Birr
a6e0f1b9c1 Made the hard coded value for the HUT a little bit longer.
svn path=/trunk/; revision=14577
2005-04-10 16:41:32 +00:00
Maarten Bosma
e45867b698 PackageManager: Depencies
svn path=/trunk/; revision=14576
2005-04-10 15:34:15 +00:00
Casper Hornstrup
6d5cdde45c Merge 13831:14550 from trunk
svn path=/branches/xmlbuildsystem/; revision=14575
2005-04-10 14:32:30 +00:00
Aleksey Bragin
56ec91131c Change OsLoadOptions back to the default value
svn path=/trunk/; revision=14574
2005-04-10 14:16:38 +00:00
Aleksey Bragin
b94afd8f6e Add russian keyboard layout to HKLM\...\KeyboardLayours, and also add kbdru.dll into reactos.dff (as pointed again by unC0Rr :-))
svn path=/trunk/; revision=14573
2005-04-10 14:02:31 +00:00
Aleksey Bragin
a16cc05ef2 Added kbdru.dll into build process
svn path=/trunk/; revision=14572
2005-04-10 11:37:57 +00:00
Aleksey Bragin
cc161feeb5 Fix incorrect file name of kgbgb.dll to kbduk.dll (by unC0Rr), added kbdru.dll into keyboard layouts
svn path=/trunk/; revision=14571
2005-04-10 11:35:19 +00:00
Aleksey Bragin
c9481ea29c Fixed incorrect version (was 1010h) to 1000h, as reported by XP's kbdru.dll
svn path=/trunk/; revision=14570
2005-04-10 11:18:05 +00:00
Aleksey Bragin
2663d38106 Some minor additions to support newer versions of uhci driver (though doesn't even compile atm).
svn path=/trunk/; revision=14569
2005-04-10 10:20:10 +00:00
Hartmut Birr
71160a6cae - Fixed the destination path for installing freeldr on a floppy.
- Used NtOpenFile for accessing the mbr or the boot sector.

svn path=/trunk/; revision=14568
2005-04-10 10:16:37 +00:00
Phillip Susi
d36e7a745d Fixed freeldr fat16 boot sector to use the bios provided boot device number instead of the ( usually invalid ) one in the boot sector header.
svn path=/trunk/; revision=14567
2005-04-10 05:00:27 +00:00
Filip Navara
56f3c4ed58 - Pass correct parameters to MmLocateMemoryAreaByAddress in MmLockPagableDataSection.
- Change UNIMPLEMENTED to DPRINT1 in MmLockPagableSectionByHandle.

svn path=/trunk/; revision=14566
2005-04-10 04:02:54 +00:00
Gé van Geldorp
b1cf1bfa05 Fix "make bootcd"
svn path=/trunk/; revision=14565
2005-04-09 22:37:15 +00:00
Aleksey Bragin
52c1eca7aa Implemented kbdru.dll, tested under Windows XP - works great. Though I would appreciate more thorough testing.
svn path=/trunk/; revision=14564
2005-04-09 17:33:47 +00:00
Hartmut Birr
3985d6c980 Close the desktop handle after getting the object pointer.
svn path=/trunk/; revision=14563
2005-04-09 17:10:25 +00:00
Maarten Bosma
a16ba46cd2 svn path=/trunk/; revision=14562 2005-04-09 13:48:31 +00:00
Hartmut Birr
02d3095664 Fixed the dereferencing of an existing named object in IoCreateFile.
svn path=/trunk/; revision=14561
2005-04-09 09:40:44 +00:00
Hartmut Birr
6256db0836 ObCreateObject should return an existing named object if one already exist.
svn path=/trunk/; revision=14560
2005-04-09 09:37:32 +00:00
Hervé Poussineau
366a70a52a GCC 3.3.3 detects uninitialized variable where it is not the case. Workaround problem by moving initialization at the top of function.
svn path=/trunk/; revision=14559
2005-04-08 22:19:39 +00:00
Hartmut Birr
322cd3e113 - Don't allow to create objects in the nt name space for twice.
- Create a stream file object in IoCreateFile if a deviceobject is opening.

svn path=/trunk/; revision=14558
2005-04-08 20:38:08 +00:00
Hartmut Birr
c5ccc1106a Csrss should only open the '\Windows' directory.
svn path=/trunk/; revision=14557
2005-04-08 20:29:30 +00:00
Klemens Friedl
a6bdb724d0 update makefile (add ros-get)
svn path=/trunk/; revision=14556
2005-04-08 19:31:08 +00:00
Casper Hornstrup
af941b419a Copy riched20
svn path=/branches/xmlbuildsystem/; revision=14555
2005-04-08 19:18:01 +00:00
Casper Hornstrup
b69e3dfd1d Delete riched20
svn path=/branches/xmlbuildsystem/; revision=14554
2005-04-08 19:16:52 +00:00
Maarten Bosma
c6237266d7 PackageManager
Created the commandline Interface
Deleated subcategries

svn path=/trunk/; revision=14553
2005-04-08 19:09:20 +00:00
Casper Hornstrup
e07a1f6200 Copy makefile
svn path=/branches/xmlbuildsystem/; revision=14552
2005-04-08 19:03:04 +00:00
Casper Hornstrup
62a2326dfb Delete Makefile
svn path=/branches/xmlbuildsystem/; revision=14551
2005-04-08 18:59:37 +00:00
Casper Hornstrup
a95618a8a5 Build when DBG=1
svn path=/branches/xmlbuildsystem/; revision=14550
2005-04-08 17:24:30 +00:00
Magnus Olsen
2cb97d1370 New document icon from Mindflyer <mf@mufunyo.net>
svn path=/trunk/; revision=14549
2005-04-08 16:59:16 +00:00
Steven Edwards
76644e2b9b wow it really does work on linux now
svn path=/branches/xmlbuildsystem/; revision=14548
2005-04-08 16:58:29 +00:00
Royce Mitchell III
601ea5384b use tags for pool allocations, and reformat code
svn path=/trunk/; revision=14547
2005-04-08 13:14:15 +00:00
Royce Mitchell III
18cff7ccc9 use tags for pool allocations, and reformat code
svn path=/trunk/; revision=14546
2005-04-08 13:02:23 +00:00
Royce Mitchell III
dac8f53fe5 use tags for pool allocations, and reformat code
svn path=/trunk/; revision=14545
2005-04-08 12:54:37 +00:00
Art Yerkes
d57bccaddf Adapter: some info display.
Socket: implemented send and recv.

svn path=/trunk/; revision=14544
2005-04-08 11:08:26 +00:00
Art Yerkes
c0282425ac Read: Generalized EOF condition slightly.
Remember to check for failure when locking address buffer.
Lock: SEH to protect from bad address length ptr.

svn path=/trunk/; revision=14543
2005-04-08 11:04:13 +00:00
Royce Mitchell III
e2303991a6 raddr2line utility
moved code common betw rsym and raddr2line to rsym_common.c
simplified tools/Makefile

svn path=/trunk/; revision=14542
2005-04-08 05:35:20 +00:00
Art Yerkes
034bf04901 Initialize these in case handle locking fails.
svn path=/trunk/; revision=14541
2005-04-08 01:11:32 +00:00
Casper Hornstrup
eb4fea4ab7 * Clean object files
* Clean generated files for cabman


svn path=/branches/xmlbuildsystem/; revision=14540
2005-04-07 20:28:35 +00:00
Casper Hornstrup
991efa7f22 Add missing file
svn path=/branches/xmlbuildsystem/; revision=14539
2005-04-07 19:57:05 +00:00
Casper Hornstrup
19592be8c0 Use order-only prerequisites for directories to prevent spurious rebuilds when building on non-FAT volumes
svn path=/branches/xmlbuildsystem/; revision=14538
2005-04-07 19:39:39 +00:00
Thomas Bluemel
bdd0224945 forward CommConfigDialogA to CommConfigDialogW
svn path=/trunk/; revision=14537
2005-04-07 18:01:29 +00:00
Thomas Bluemel
2acf2098b8 - don't redefine public structures in taskmgr
- minor taskmgr changes and make better use of PCH
- fixed definition of SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION and depending code

svn path=/trunk/; revision=14536
2005-04-07 13:25:34 +00:00
Thomas Bluemel
b995b11c1d fixed warnings
svn path=/trunk/; revision=14535
2005-04-07 13:11:46 +00:00
Magnus Olsen
98b6f6bd7b Remove more hardcode string to En.rc
svn path=/trunk/; revision=14534
2005-04-07 11:24:38 +00:00
Casper Hornstrup
a15b6d2023 Add the files where they are located
svn path=/branches/xmlbuildsystem/; revision=14533
2005-04-06 22:27:22 +00:00
Casper Hornstrup
1ea35be664 Correct some wrong dependencies for 'make bootcd'
svn path=/branches/xmlbuildsystem/; revision=14532
2005-04-06 20:49:49 +00:00
Thomas Bluemel
68c2c91476 reformat some code to make it readably
svn path=/trunk/; revision=14530
2005-04-06 18:30:09 +00:00
Thomas Bluemel
237d12dc8e Saveliy Tretiakov <saveliyt@mail.ru>:
- Implemented CommConfigDialogA and CommConfigDialogW
- Removed @unimplemented comments for some implemented functions

svn path=/trunk/; revision=14529
2005-04-06 17:40:25 +00:00
Thomas Bluemel
95a75efe29 add image base address for serialui.dll
svn path=/trunk/; revision=14528
2005-04-06 17:08:17 +00:00
Thomas Bluemel
cf7a330bf0 use unicode functions only and some minor fixes to preserve 64bit compatibility
svn path=/trunk/; revision=14527
2005-04-06 17:04:28 +00:00
Royce Mitchell III
b8442ebcdd fix uninitialized variable warnings
svn path=/trunk/; revision=14526
2005-04-06 12:32:14 +00:00
Hervé Poussineau
2cec8d9d65 Saveliy Tretiakov <saveliyt@mail.ru>
- Started serialui dll
- Implemented drvCommConfigDialogA and drvCommConfigDialogW

svn path=/trunk/; revision=14525
2005-04-06 11:14:57 +00:00
Hervé Poussineau
b82483c76c Verify that allocated resource list is not NULL in IRP_MN_START_DEVICE.
svn path=/trunk/; revision=14524
2005-04-06 06:09:01 +00:00
Royce Mitchell III
7b78b8092c patch by kjk::hyperion, fix syntax of gcc inline asm
svn path=/trunk/; revision=14523
2005-04-06 04:03:41 +00:00
Steven Edwards
bbba49d610 remove the use of windows.h in some places where it is not needed
svn path=/trunk/; revision=14522
2005-04-05 23:04:24 +00:00
Alex Ionescu
16290c9195 Use w32api... hope this does something? Just trying to help steven.
svn path=/trunk/; revision=14521
2005-04-05 21:41:03 +00:00
Casper Hornstrup
f81cbc31f1 Accept ROS_INSTALL environment variable
svn path=/branches/xmlbuildsystem/; revision=14520
2005-04-05 20:24:26 +00:00
Steven Edwards
49388de0ac fixed rosapps a bit. disabled tests for now. will fix them tonight
svn path=/trunk/; revision=14519
2005-04-05 19:42:40 +00:00
Steven Edwards
c773a28861 more w32api conversion. Send errors.h to the Trash Can
svn path=/trunk/; revision=14518
2005-04-05 19:30:34 +00:00
Steven Edwards
bd3a9da15f fixed header usage. Please avoid using windows.h
svn path=/trunk/; revision=14517
2005-04-05 19:22:30 +00:00
Steven Edwards
ff86185830 remove windows.h
svn path=/trunk/; revision=14516
2005-04-05 19:19:44 +00:00
Steven Edwards
1cb1df84c1 __USE_W32API
svn path=/trunk/; revision=14515
2005-04-05 19:17:21 +00:00
Steven Edwards
8a7c057498 __USE_W32API
svn path=/trunk/; revision=14514
2005-04-05 19:14:37 +00:00
Steven Edwards
d3ab2ca78a use -D__USE_W32API
svn path=/trunk/; revision=14513
2005-04-05 19:13:51 +00:00
Hervé Poussineau
353bc6197c Add serial port enumerator driver:
- Enumerate legacy mice
- Should also detect PnP serial devices even if they are not yet reported
It is implemented as an upper filter for serial port driver (serial.sys)
Add corresponding registry entries

svn path=/trunk/; revision=14512
2005-04-05 19:04:07 +00:00
Steven Edwards
c6779bb5c2 use -D__USE_W32API
svn path=/trunk/; revision=14511
2005-04-05 18:59:56 +00:00
Casper Hornstrup
dcdd51410c Rebuild source if a header is changed
svn path=/branches/xmlbuildsystem/; revision=14510
2005-04-05 18:49:53 +00:00
Casper Hornstrup
f6d915eecc Simplify directory handling
svn path=/branches/xmlbuildsystem/; revision=14509
2005-04-05 18:20:45 +00:00
Casper Hornstrup
13fb77b90b Generate registry hives on 'make install'
svn path=/branches/xmlbuildsystem/; revision=14507
2005-04-05 17:22:02 +00:00
Hartmut Birr
785882957e - Changed the calculation of the current sector count to read or write from both sides of a floppy in one step.
- Set the EOT sector always to the last sector of a floppy.

svn path=/trunk/; revision=14506
2005-04-05 17:12:52 +00:00
Hartmut Birr
80eabf0040 Initialize the maximum length of the device description to allocate more than map register.
svn path=/trunk/; revision=14505
2005-04-05 17:07:56 +00:00
Hartmut Birr
1a0cac4ee8 Set the correct CurrentVa in the call to IoFlushAdapterBuffers.
svn path=/trunk/; revision=14504
2005-04-05 15:53:09 +00:00
Hartmut Birr
e1d5086ebf Changed back to IoBuildSynchronousFsdRequest.
svn path=/trunk/; revision=14503
2005-04-05 15:51:02 +00:00
Thomas Bluemel
2177dfcfd2 free work items after processing them
svn path=/trunk/; revision=14502
2005-04-05 15:08:18 +00:00
Hervé Poussineau
47632d3088 Print date and time formats according to regional settings
svn path=/trunk/; revision=14501
2005-04-05 12:34:38 +00:00
Hervé Poussineau
f477aa0a0f Remove useless code (ACPI now reports resources correctly)
Change ULONG to ULONG_PTR for IoStatus.Information field

svn path=/trunk/; revision=14500
2005-04-05 12:00:37 +00:00
Hervé Poussineau
849f32b6b5 Implement IRP_MN_QUERY_RESOURCES (Irq, IO ports, DMA)
svn path=/trunk/; revision=14499
2005-04-05 12:00:13 +00:00
Royce Mitchell III
f165c00432 add some asserts
svn path=/trunk/; revision=14498
2005-04-05 05:12:16 +00:00
Art Yerkes
13027a8afa Added acknowledgement (thank tinus and sorry I didn't put this in the first
commit).

svn path=/trunk/; revision=14497
2005-04-04 23:48:11 +00:00
Art Yerkes
cb76d1fab2 First import of DHCP client service.
No pipe created yet.  Event model up and running.
Does not produce a dhcp offer yet but working on that.

svn path=/trunk/; revision=14496
2005-04-04 23:45:33 +00:00
Hervé Poussineau
e26cc4962b Fix file properties
svn path=/trunk/; revision=14495
2005-04-04 23:17:28 +00:00
Hervé Poussineau
04bbda156c Move variable declarations at the start of functions
svn path=/trunk/; revision=14494
2005-04-04 23:12:21 +00:00
Hartmut Birr
f4a430511e Check for an valid mdl pointer before calling IoFreeMdl in IoReadWriteCompletion.
svn path=/trunk/; revision=14493
2005-04-04 23:11:19 +00:00
Hartmut Birr
1844746db4 Fixed some bugs, which have prevented the using of isa dma channels.
svn path=/trunk/; revision=14492
2005-04-04 23:09:15 +00:00
Hervé Poussineau
e0dfaf1c5b Allow ACPI detection and legacy detection for serial ports
Detect serial debug port and prevent its management by serial driver
Activate serial driver in registry

svn path=/trunk/; revision=14491
2005-04-04 23:00:52 +00:00
Hervé Poussineau
d9bef42fde Correct IOCTL_SERIAL_CLEAR_STATS and IOCTL_SERIAL_PURGE
Manage read errors (overrun, parity, ...)
Use output buffer even if Uart is ready to transmit

svn path=/trunk/; revision=14490
2005-04-04 22:48:51 +00:00
Casper Hornstrup
c8c43a85a3 Install generated files
svn path=/branches/xmlbuildsystem/; revision=14489
2005-04-04 22:05:08 +00:00
Casper Hornstrup
19fa7f20af Support installation of generated files
svn path=/branches/xmlbuildsystem/; revision=14488
2005-04-04 20:50:55 +00:00
Casper Hornstrup
77b574742c Let dependencies control 'make install'
svn path=/branches/xmlbuildsystem/; revision=14487
2005-04-04 19:39:44 +00:00
Alex Ionescu
ff0ad6c8cb Compile with w32api...gift for Steven
svn path=/trunk/; revision=14486
2005-04-04 03:55:43 +00:00
Hervé Poussineau
6514e33a95 Replace polling mode in IRP_MJ_READ by an interrupt mode.
It is a lot less CPU consuming...

svn path=/trunk/; revision=14485
2005-04-03 21:36:15 +00:00
Hervé Poussineau
ad17913046 Add WaitAll and WaitAny values
svn path=/trunk/; revision=14484
2005-04-03 21:31:41 +00:00
Casper Hornstrup
de09c8d285 Partial 'make install' implementation
svn path=/branches/xmlbuildsystem/; revision=14483
2005-04-03 19:25:58 +00:00
Eric Kohl
aed77eddbd Support marshalling of 'unique' strings.
svn path=/trunk/; revision=14482
2005-04-03 19:15:14 +00:00
Klemens Friedl
be04afc103 ReactOS Package Manager
More information:
http://reactos.com/wiki/index.php/ReactOS_Package_Manager

* Maarten Bosma (Dr. Fred)
* Klemens Friedl (frik85)

svn path=/trunk/; revision=14481
2005-04-03 19:06:49 +00:00
Hartmut Birr
f22d019858 Removed some calls to NtOpenProcess. They aren't necessary because the process data structure contains already a process handle.
svn path=/trunk/; revision=14480
2005-04-03 15:47:15 +00:00
Emanuele Aliberti
4e0cf9abb6 WinTrust.dll: Update EXPORTS table
svn path=/trunk/; revision=14479
2005-04-03 14:38:42 +00:00
Martin Fuchs
a9f4f32734 activate printer folder menu
svn path=/trunk/; revision=14478
2005-04-03 14:32:47 +00:00
Magnus Olsen
af2755d461 minor change that I did forget
svn path=/trunk/; revision=14477
2005-04-03 13:45:23 +00:00
Magnus Olsen
2f4cc70e0f Remove more hardcode string to En.rc
svn path=/trunk/; revision=14476
2005-04-03 13:40:15 +00:00
Hartmut Birr
7f6485630b Since a process id is only unique if the associated process is not deleted,
we must prevent the deleting of the process. An opened handle does this.

svn path=/trunk/; revision=14475
2005-04-03 13:04:10 +00:00
Eric Kohl
938d6d1baf Support 'ref' and 'unique' attributes for pointers.
svn path=/trunk/; revision=14474
2005-04-03 12:49:25 +00:00
Martin Fuchs
d840ae26ad protect system image list
svn path=/trunk/; revision=14473
2005-04-03 12:14:30 +00:00
Casper Hornstrup
dff399ada6 Add missing file
svn path=/branches/xmlbuildsystem/; revision=14472
2005-04-03 11:58:31 +00:00
Casper Hornstrup
c4387e8d7d Verbose mode
svn path=/branches/xmlbuildsystem/; revision=14471
2005-04-03 11:57:34 +00:00
Martin Fuchs
b01de1ffd4 show logoff dialog in lean explorer
svn path=/trunk/; revision=14470
2005-04-03 11:38:08 +00:00
Martin Fuchs
359d3bc253 display "log off" dialog, add "terminate" menu entry
svn path=/trunk/; revision=14469
2005-04-03 11:23:03 +00:00
Casper Hornstrup
2c65178fde Detect compiler -pipe support
svn path=/branches/xmlbuildsystem/; revision=14468
2005-04-03 10:46:08 +00:00
Magnus Olsen
315c267eef Remove more hardcode string to En.rc
svn path=/trunk/; revision=14467
2005-04-03 10:16:56 +00:00
Casper Hornstrup
1cb006090f Avoid spurious error messages during make clean
svn path=/branches/xmlbuildsystem/; revision=14466
2005-04-03 10:05:52 +00:00
Hartmut Birr
32fce0a991 Initialized the event with the object instead of the handle.
svn path=/trunk/; revision=14465
2005-04-03 10:05:00 +00:00
Martin Fuchs
e56e6b57c7 fix SDI shell browser
svn path=/trunk/; revision=14464
2005-04-03 09:16:20 +00:00
Magnus Olsen
1e7d27e8c9 Remove more hardcode string to En.rc
svn path=/trunk/; revision=14463
2005-04-02 22:19:12 +00:00
Casper Hornstrup
78c796560d Generate map files
svn path=/branches/xmlbuildsystem/; revision=14462
2005-04-02 21:45:38 +00:00
Casper Hornstrup
d7fdb5701e Generate map files
svn path=/branches/xmlbuildsystem/; revision=14461
2005-04-02 21:45:16 +00:00
Magnus Olsen
2c4319bbb7 Remove more hardcode string to En.rc
svn path=/trunk/; revision=14460
2005-04-02 21:06:44 +00:00
Steven Edwards
3acecc6fd4 another one bytes the dust. messages.h is gone
svn path=/trunk/; revision=14459
2005-04-02 21:02:31 +00:00
Magnus Olsen
70ccaeb797 Did forget the info I did change
it is remove all hardcode string to En.rc
to make it easy to translate

svn path=/trunk/; revision=14458
2005-04-02 20:27:41 +00:00
Magnus Olsen
cc05ff6eb8 svn path=/trunk/; revision=14457 2005-04-02 20:23:01 +00:00
Steven Edwards
93ccc29d64 here you go
svn path=/trunk/; revision=14456
2005-04-02 19:52:29 +00:00
Steven Edwards
0f301d785a __USE_W32API
svn path=/trunk/; revision=14455
2005-04-02 19:47:52 +00:00
Hartmut Birr
ff278d3830 Changed the indentation to a human readable format (no code change).
svn path=/trunk/; revision=14454
2005-04-02 19:33:08 +00:00
Thomas Bluemel
8a17f1f08d corrected file name so it matches the include in slayer.rc
svn path=/trunk/; revision=14453
2005-04-02 19:26:54 +00:00
Steven Edwards
2f69ef0ae5 another one bytes the dust
svn path=/trunk/; revision=14452
2005-04-02 19:13:54 +00:00
Martin Fuchs
38024cdd26 fix termination of "search program" dialog
svn path=/trunk/; revision=14451
2005-04-02 18:24:13 +00:00
Casper Hornstrup
8d784c14d4 Document ROS_TEMPORARY environment variable
svn path=/branches/xmlbuildsystem/; revision=14450
2005-04-02 18:01:18 +00:00
Casper Hornstrup
d72d41723c Have rbuild create the output directories
svn path=/branches/xmlbuildsystem/; revision=14449
2005-04-02 16:46:08 +00:00
Martin Fuchs
275c59c4d4 "minimize all": only minimize windows with valid positions
svn path=/trunk/; revision=14448
2005-04-02 16:18:09 +00:00
Hartmut Birr
fccdd32ffd Dereference the object if the type doesn't match in ObmReferenceObjectByHandle.
svn path=/trunk/; revision=14447
2005-04-02 16:17:08 +00:00
Martin Fuchs
7e355fdee2 update Jamfile
svn path=/trunk/; revision=14446
2005-04-02 16:16:53 +00:00
Hartmut Birr
b82d7998fa Do only dereference the desktop window if the handle was valid in IntMouseInput.
svn path=/trunk/; revision=14445
2005-04-02 16:13:11 +00:00
Hartmut Birr
c5fcba3366 Added the string for IDS_PROGRAMFILES.
svn path=/trunk/; revision=14444
2005-04-02 15:58:25 +00:00
Hartmut Birr
d5c7b7443b - Fixed ExTimerRundown.
- Fixed adding and removing of timers to the wake list.  
- Fixed the reinserting of the timer apc.  
- Don't unlock the timer twice in NtSetTimer.

svn path=/trunk/; revision=14443
2005-04-02 15:55:15 +00:00
Eric Kohl
23ffe8c3f8 NdrSendReceive: Update the message buffer info after the call to I_RpcSendReceive.
svn path=/trunk/; revision=14442
2005-04-02 15:11:36 +00:00
Martin Fuchs
87c424ef42 reactivate control panel folder
svn path=/trunk/; revision=14441
2005-04-02 14:26:56 +00:00
Hervé Poussineau
ce4cbf5e57 Correct timeout issues when reading
Pend read IRPs
Lots of small issues

svn path=/trunk/; revision=14440
2005-04-02 14:16:47 +00:00
Martin Fuchs
11fe38608b fix tray icon config dialog for the first icon
svn path=/trunk/; revision=14439
2005-04-02 11:40:58 +00:00
Martin Fuchs
c5c1a87719 switch to search icon in search dialog
svn path=/trunk/; revision=14438
2005-04-02 11:21:46 +00:00
Martin Fuchs
45ba821ec5 terminate shell service objects thread if there is nothing to do
svn path=/trunk/; revision=14434
2005-04-02 10:48:16 +00:00
Steven Edwards
5875f60018 __USE_W32API
svn path=/trunk/; revision=14433
2005-04-02 05:43:37 +00:00
Steven Edwards
afa13639b8 bunch of w32api fixes. ascii.h is gonecd ..! coff.h was unused and quite a few others were redunant and could be moved. If you try to build a app in the ROS build system without using __USE_W32API or Unicode beware it won't build as it shouldn't. Also partinfo was really broken so someone needs to fix this. If not I will attempt to w32api'ise it in the morning.
svn path=/trunk/; revision=14432
2005-04-02 05:37:20 +00:00
Steven Edwards
f8ec26b8ae avoid the use of ver.h in favor of winver.h
svn path=/trunk/; revision=14431
2005-04-02 00:49:10 +00:00
Gunnar Dalsnes
95daa63b61 -move rtl thread/process stuff from ntdll to rtl and make ntoskrnl\ldr\init.c use those
-fix RtlCreateUserProcess to create the thread suspended and update all users of RtlCreateUserProcess to manually resume the thread

svn path=/trunk/; revision=14430
2005-04-02 00:18:46 +00:00
Steven Edwards
c8e0c8df83 nevermind. It helps to do a make bootcd in the terminal that has the value and /usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/opt/www/htdig/bin:/usr/lib/java/bin:/usr/lib/java/jre/bin:/opt/kde/bin:/usr/lib/qt/bin to mingw defined.
svn path=/trunk/; revision=14429
2005-04-02 00:11:50 +00:00
Steven Edwards
450aa4ce11 mingw32-linux is not setting ARCH=i386....this fixes the bootcd for now
svn path=/trunk/; revision=14428
2005-04-02 00:05:16 +00:00
Steven Edwards
8b21b47868 use the w32api headers
svn path=/trunk/; revision=14426
2005-04-01 21:44:22 +00:00
Steven Edwards
e231640a15 remove my WinCE support attempt
svn path=/trunk/; revision=14425
2005-04-01 21:19:23 +00:00
Steven Edwards
8e401adc6b remove my WinCE support attempt
svn path=/trunk/; revision=14424
2005-04-01 21:18:43 +00:00
Casper Hornstrup
321673ceb9 Put winebuild output in intermediate directory
svn path=/branches/xmlbuildsystem/; revision=14423
2005-04-01 19:31:52 +00:00
Hartmut Birr
e31b75dfe5 - Route the stream file objects also through the close path.
- Calculate the size of the fcb hash table depend on the file system type.

svn path=/trunk/; revision=14422
2005-04-01 18:35:34 +00:00
Hartmut Birr
7bf6af0dce - Use IoBuildAsynchronousFsdRequest instead IoBuildSynchronousFsdRequest in NtRead/WriteFile.
- Guard the calls to IoBuildAsynchronousFsdRequest with an exception frame.

svn path=/trunk/; revision=14421
2005-04-01 18:22:17 +00:00
Hartmut Birr
de83dfa5b8 Raise the exception in MmProbeAndLockPages always with STATUS_ACCESS_VIOLATION.
svn path=/trunk/; revision=14420
2005-04-01 18:19:46 +00:00
Casper Hornstrup
75065f4320 Build stubs generated by winebuild
svn path=/branches/xmlbuildsystem/; revision=14419
2005-04-01 18:18:18 +00:00
Hartmut Birr
4ea628ccaa Guard the calls to MmProbeAndLockPages and IoPrepareIrpBuffer with an exception frame and do free allocated resources if an exception occurs.
svn path=/trunk/; revision=14418
2005-04-01 18:17:47 +00:00
Steven Edwards
fc9d1af415 move another SDK header to the SDK
svn path=/trunk/; revision=14417
2005-04-01 18:06:50 +00:00
Steven Edwards
af98825fd6 use -D__USE_W32API for tgetopt
svn path=/trunk/; revision=14416
2005-04-01 18:00:22 +00:00
Magnus Olsen
a8708688d2 Swedish translation
David Nordenberg 
dnordenberg@users.sourceforge.net

proofread by 
Andreas Bjerkeholt
harteex@gmail.com,



svn path=/trunk/; revision=14415
2005-04-01 11:42:40 +00:00
Magnus Olsen
671ba3795b minor update
Swedish translation
Andreas Bjerkeholt
harteex@gmail.com,

proofread by 
David Nordenberg 
dnordenberg@users.sourceforge.net


svn path=/trunk/; revision=14414
2005-04-01 11:29:14 +00:00
Magnus Olsen
5ca5fa5dd7 David Nordenberg: New copy from english resource translated to Swedish,
old one was missing 95% of its content.
	  proofread by Andreas Bjerkeholt

svn path=/trunk/; revision=14413
2005-04-01 10:19:45 +00:00
Magnus Olsen
dee9cfe25c minor changs by
Swedish translation
Andreas Bjerkeholt
harteex@gmail.com,

and 
proofread by 
David Nordenberg 
dnordenberg@users.sourceforge.net


svn path=/trunk/; revision=14412
2005-04-01 09:54:56 +00:00
Magnus Olsen
0cd3294365 Swedish translation
Andreas Bjerkeholt
harteex@gmail.com,

proofread by 
David Nordenberg 
dnordenberg@users.sourceforge.net


svn path=/trunk/; revision=14411
2005-04-01 09:38:01 +00:00
Magnus Olsen
ed14a2c656 Swedish translation
David Nordenberg 
dnordenberg@users.sourceforge.net

proofread by 
Andreas Bjerkeholt
harteex@gmail.com,



svn path=/trunk/; revision=14410
2005-04-01 09:10:32 +00:00
Magnus Olsen
6edcaa7b93 Swedish translation
David Nordenberg 
dnordenberg@users.sourceforge.net  
with some help from Andreas

proofread by 
Andreas Bjerkeholt
harteex@gmail.com,





svn path=/trunk/; revision=14409
2005-04-01 09:06:13 +00:00
Magnus Olsen
ca512a7b11 Swedish translation
David Nordenberg 
dnordenberg@users.sourceforge.net

proofread by 
Andreas Bjerkeholt
harteex@gmail.com,



svn path=/trunk/; revision=14408
2005-04-01 09:03:09 +00:00
Magnus Olsen
ce23c3c042 Swedish translation
David Nordenberg 
dnordenberg@users.sourceforge.net

proofread by 
Andreas Bjerkeholt
harteex@gmail.com,



svn path=/trunk/; revision=14407
2005-04-01 08:56:53 +00:00
Magnus Olsen
8cd95a438b * David Nordenberg: fixed minor things in swedish translation
dnordenberg@users.sourceforge.net

svn path=/trunk/; revision=14406
2005-04-01 08:54:01 +00:00
Magnus Olsen
5696ea2bc9 Swedish translation
David Nordenberg 
dnordenberg@users.sourceforge.net

proofread by 
Andreas Bjerkeholt
harteex@gmail.com,



svn path=/trunk/; revision=14405
2005-04-01 08:51:57 +00:00
Steven Edwards
a9bcd9387d moved this to the wrong folder
svn path=/trunk/; revision=14404
2005-04-01 05:12:15 +00:00
Steven Edwards
fd0f414659 move some SDK headers to the SDK, convert filenames and include statements to lowercase as everything else is in lowercase
svn path=/trunk/; revision=14403
2005-04-01 05:04:40 +00:00
Gunnar Dalsnes
0b60acbc3c -move ppb from ntdll to rtl
smapiexec.c: free ppb on failure. resume thread (RtlCreateUserProcess is supposed to create the thread suspended)

svn path=/trunk/; revision=14402
2005-04-01 00:39:52 +00:00
Art Yerkes
8a147bd7bb PowerPC also uses 4k pages.
svn path=/trunk/; revision=14401
2005-04-01 00:30:29 +00:00
Art Yerkes
0699457c1d PowerPC architecture files. Few Mach function are implemented.
The biggest things to note here:
1) We have to probe the pci bridge to find out the amount of available
memory on older macs.  We use the base model boot-time assumption that
linux uses and leave it till later to find our max memory.
2) Open firmware proxy functionality is divided in two parts.  FreeLDR
is responsible for providing data to and getting it from Open firmware
in big-endian format in memory.  The ofproxy function itself is
responsible for shifting the arguments and calling the target big endian
function.  The good thing here is that we share open firmware functions
between the xcoff part and FreeLDR.

svn path=/trunk/; revision=14400
2005-04-01 00:22:30 +00:00
Steven Edwards
346e718bc8 Some cleanup of crt.a feel free to remove header duplication and use 'precomp.h' in more places to speed build times
svn path=/trunk/; revision=14399
2005-04-01 00:20:29 +00:00
Art Yerkes
3a1a462a26 Powerpc math header.
svn path=/trunk/; revision=14398
2005-04-01 00:17:10 +00:00
Art Yerkes
c0212e2720 Changes to use stdarg rather than assume that arguments are on the stack
and in the correct order.  Tested on i386 and powerpc.

svn path=/trunk/; revision=14397
2005-04-01 00:15:04 +00:00
Gunnar Dalsnes
7df5d3e7e1 mmfuncs.h: add MmGetSystemAddressForMdlSafe/MmMapLockedPagesSpecifyCache defs.
matherr.c: remove _exception struct since its already in math.h
path: simply file exsitence check
iomgr: simplify/use standard generic file mappings flags
misc.

svn path=/trunk/; revision=14396
2005-04-01 00:04:15 +00:00
Steven Edwards
5b6820630a remove these control panels, they never worked
svn path=/trunk/; revision=14395
2005-03-31 22:40:23 +00:00
Steven Edwards
bf30d232a0 add a inline strupr for us Unix folk
svn path=/branches/xmlbuildsystem/; revision=14394
2005-03-31 19:54:03 +00:00
Hervé Poussineau
eeabdc3329 Add OBJ_KERNEL_HANDLE value
svn path=/trunk/; revision=14393
2005-03-31 19:33:50 +00:00
Gregor Anich
3d737b9d74 Fix little bug.
svn path=/trunk/; revision=14392
2005-03-31 18:26:31 +00:00
Gregor Anich
91203bfc8d * Move the KdbEntryCount (check for exception inside KDB) into the critical section to prevent KDB from not handling simultaneous exceptions correctly.
* Flush input when KDB is entered.
* Detect if terminal is connected and filter out escape sequences if no terminal is present.

svn path=/trunk/; revision=14389
2005-03-31 16:08:09 +00:00
Thomas Bluemel
97db1efac1 don't bugcheck on object type mismatch in PsLookupCidHandle
svn path=/trunk/; revision=14388
2005-03-31 14:23:11 +00:00
Alex Ionescu
fd13cf7e83 Clean up catch.c
svn path=/trunk/; revision=14387
2005-03-31 13:52:49 +00:00
Art Yerkes
8df3d41437 Added boot carrier for freeldr. I'm at the point where I need to do
something about the mac disklabel, because freeldr is trying to read
a PC partition table.  I'll need to sleep on it a bit.

svn path=/trunk/; revision=14386
2005-03-31 09:30:29 +00:00
Thomas Bluemel
1d13fa9747 initialize variables
svn path=/trunk/; revision=14384
2005-03-30 20:19:47 +00:00
Alex Ionescu
6f4ae1108e Return status on failure.
svn path=/trunk/; revision=14383
2005-03-30 00:44:52 +00:00
Alex Ionescu
4069692f64 Add SEH...thanks to Hardon for noticing the bugs
svn path=/trunk/; revision=14382
2005-03-30 00:32:38 +00:00
Thomas Bluemel
c1442ae332 - added stub for PoQueueShutdownWorkItem required by XP's ntfs.sys
- added stubs for KeAcquireInStackQueuedSpinLock and KeReleaseInStackQueuedSpinLock

svn path=/trunk/; revision=14381
2005-03-29 17:29:02 +00:00
Thomas Bluemel
9ad486dd0a - ported RtlVerifyVersionInfo from wine
- moved version functions in kernel32 into their own file

svn path=/trunk/; revision=14380
2005-03-29 15:22:44 +00:00
Thomas Bluemel
911b9d27ae move chkstk.s from ntdll to rtl because _alloca_probe needs to be exported by ntoskrnl as well
svn path=/trunk/; revision=14379
2005-03-29 14:27:46 +00:00
Thomas Bluemel
7c238e511f implemented RtlValidateUnicodeString, thanks to "mephistopheles" for providing some pseudeo code
svn path=/trunk/; revision=14378
2005-03-29 02:09:42 +00:00
Magnus Olsen
dea5b1d43f Swedish translation
David Nordenberg 
dnordenberg@users.sourceforge.net

proofread by 
Andreas Bjerkeholt
harteex@gmail.com,

steven : Will commit it to wine also 

svn path=/trunk/; revision=14377
2005-03-28 19:29:59 +00:00
Magnus Olsen
0c492c87b9 Swedish translation
David Nordenberg 
dnordenberg@users.sourceforge.net

proofread by 
Andreas Bjerkeholt
harteex@gmail.com,

changes only for swedish user
steven : Will commit it to wine also 
IDD_TBCUSTOMIZE, LTEXT "Knappar i..." changed width to 85

svn path=/trunk/; revision=14376
2005-03-28 19:25:02 +00:00
Magnus Olsen
29937a5a8c Swedish translation
Andreas Bjerkeholt
harteex@gmail.com,

proofread by 
David Nordenberg 
dnordenberg@users.sourceforge.net


svn path=/trunk/; revision=14375
2005-03-28 19:03:06 +00:00
Magnus Olsen
f9764318f4 New driver ico from Mindflyer <mf@mufunyo.net>
svn path=/trunk/; revision=14374
2005-03-28 18:52:52 +00:00
Hartmut Birr
7189768d70 - Used different overlapped structures for read and write operations on the server side.
- Check for pending i/o requests.

svn path=/trunk/; revision=14373
2005-03-28 18:47:19 +00:00
Hartmut Birr
a48a01798c - Put the wait entry into the DriverContext of the irp instead to allocated it from pool.
- Lock the data list on both ends of the pipe, if we disconnect the pipe.    
- Implemented a read and a write event on each end of the pipe.  
- Implemented a list for read requests to deliver the requests in the correct sequence.  
- Do not end a read request if the pipe was connected and if the buffer wasn't filled completely.

svn path=/trunk/; revision=14372
2005-03-28 18:42:53 +00:00
Alex Ionescu
9b5646acd0 Make w3seek happy. Setting OPTIMIZE=yes as en enviro-var (do NOT add to config) will force optimizations for debug builds too (not recommended). Previous commit was a mistake.
svn path=/trunk/; revision=14371
2005-03-28 18:37:39 +00:00
Magnus Olsen
a57d7a6f93 remove res
svn path=/trunk/; revision=14370
2005-03-28 18:12:31 +00:00
Magnus Olsen
16b0e06b8f Remove the exteran icon file as request from
GvG and other. for the maintain betwin reactos and wine
should be more easy. The new icon from MF are now instead embeded in th shres.rc 

svn path=/trunk/; revision=14369
2005-03-28 18:10:32 +00:00
Alex Ionescu
ea49ca93dd Make w3seek happy. Setting OPTIMIZE=yes as en enviro-var (do NOT add to config) will force optimizations for debug builds too (not recommended)
svn path=/trunk/; revision=14368
2005-03-28 17:27:20 +00:00
Thomas Bluemel
e7986f168f fix warning on optimized builds
svn path=/trunk/; revision=14367
2005-03-28 17:25:19 +00:00
Magnus Olsen
903225f24e did foget the icon form mf
svn path=/trunk/; revision=14366
2005-03-28 16:51:23 +00:00
Magnus Olsen
4d27307543 New ico from Mindflyer <mf@mufunyo.net>
svn path=/trunk/; revision=14365
2005-03-28 16:47:33 +00:00
Thomas Bluemel
713139d9ea release the adapter lock after queuing a work item for the request in ProRequet()
svn path=/trunk/; revision=14364
2005-03-28 16:04:18 +00:00
Thomas Bluemel
d295d5da57 release the dispatcher lock in KeReleaseMutant before raising an exception and handle the exception in NtReleaseMutant
svn path=/trunk/; revision=14363
2005-03-28 15:17:54 +00:00
Martin Fuchs
f3fc2ca494 enable multiline tooltips
svn path=/trunk/; revision=14362
2005-03-28 10:56:29 +00:00
Martin Fuchs
9b8f8ea446 launch all registered Shell Service Objects (Systray, network icons, ...)
svn path=/trunk/; revision=14361
2005-03-28 09:16:50 +00:00
Art Yerkes
f9a85ac5fb Make sure that the socket structure list does't accumulate duplicates.
svn path=/trunk/; revision=14360
2005-03-28 02:50:23 +00:00
Klemens Friedl
8030aa9a2c change the icon file
svn path=/trunk/; revision=14359
2005-03-27 21:34:41 +00:00
Klemens Friedl
fe96ab9edf change the icon file
svn path=/trunk/; revision=14358
2005-03-27 21:32:35 +00:00
Martin Fuchs
628501e0ac New ReactOS and start menu icons by Mindflyer <mf@mufunyo.net>
svn path=/trunk/; revision=14357
2005-03-27 20:46:17 +00:00
Klemens Friedl
bcfaaaf65b Remove the icon files, greatlrd add these icons (from Mindflyer) already to an other folder.
svn path=/trunk/; revision=14356
2005-03-27 20:12:36 +00:00
Klemens Friedl
0607c67b68 Remove all hardcode english phrases from the source code and add the phrases to the resource file.
svn path=/trunk/; revision=14355
2005-03-27 20:01:18 +00:00
Martin Fuchs
03a5f16ed9 - make Shell Hook Messages really work in Windows
- comments for SHELL32's RegisterShellHook()

svn path=/trunk/; revision=14354
2005-03-27 19:57:26 +00:00
Magnus Olsen
0baf2d03b1 New ico from Mindflyer <mf@mufunyo.net>
Swedish translation of explorer By
David Nordenberg dnordenberg@users.sourceforge.net

svn path=/trunk/; revision=14353
2005-03-27 19:57:20 +00:00
Magnus Olsen
761a68acf7 New ico from Mindflyer <mf@mufunyo.net>
svn path=/trunk/; revision=14352
2005-03-27 19:50:50 +00:00
Martin Fuchs
154128c1a0 launch shell DDE server
svn path=/trunk/; revision=14351
2005-03-27 18:13:43 +00:00
Martin Fuchs
cd0596ffa4 hide login screen to make the login on XP faster
svn path=/trunk/; revision=14350
2005-03-27 16:32:06 +00:00
Filip Navara
742ddb108f Fix memory leak I introduced in revision 14343 and fix buffer size calculation to save 4 bytes.
svn path=/trunk/; revision=14349
2005-03-27 13:03:30 +00:00
Eric Kohl
f39737088b Added handling of unsigned type. Patch by Jacek Caban (from WINE).
svn path=/trunk/; revision=14348
2005-03-27 13:02:06 +00:00
Hervé Poussineau
577b88645b Saveliy Tretiakov <saveliyt@mail.ru>
- Implement ClearCommError
- Correct badly implemented apis: ClearCommBreak, EscapeCommFunction, GetCommMask, GetCommModemStatus, GetCommState, GetCommTimeouts, PurgeComm, SetCommBreak, SetCommMask, SetCommTimeouts, SetCommState, SetupComm, TransmitCommChar, WaitCommEvent

svn path=/trunk/; revision=14346
2005-03-27 12:03:59 +00:00
Hervé Poussineau
fce0440b32 Fix handling of input and output buffers
svn path=/trunk/; revision=14345
2005-03-27 11:14:30 +00:00
Hervé Poussineau
f0e7b26df9 Mark Junker <mjscod@gmx.de>
Don't detect a 16550A UART if it is a 16550.

svn path=/trunk/; revision=14344
2005-03-27 11:13:25 +00:00
Filip Navara
5f113d7735 Correct DLL loading order and honour the LOAD_WITH_ALTERED_SEARCH_PATH flag.
svn path=/trunk/; revision=14343
2005-03-27 11:00:41 +00:00
Filip Navara
e332bc75f9 - Rewrite NtUserGetUpdateRect. It should return TRUE when the window needs to be pained, not only when the client update rect is non-empty.
- Return TRUE for windows with pending WM_NCPAINT message in IntIsWindowDirty.

svn path=/trunk/; revision=14342
2005-03-27 08:29:25 +00:00
KJK::Hyperion
212b767a54 Implemented PSEH wrapper for native compiler SEH. Changed copyright years
svn path=/trunk/; revision=14341
2005-03-27 01:57:26 +00:00
KJK::Hyperion
0a9a6b6359 Forgot to implement _SEH2_LEAVE. Also added some _SEH2 aliases to clean any possible ambiguity
svn path=/trunk/; revision=14340
2005-03-27 00:53:15 +00:00
KJK::Hyperion
4d4ec75256 _SEH2_HANDLE as a short-hand for _SEH2_EXCEPT(_SEH_STATIC_FILTER(_SEH_EXECUTE_HANDLER))
svn path=/trunk/; revision=14339
2005-03-27 00:44:53 +00:00
KJK::Hyperion
fde9c768e4 New syntax for PSEH. UNTESTED, any takers? It can be used like this:
_SEH2_TRY
{
 // Code that might raise an exception
}
_SEH2_EXCEPT(FilterFunc)
{
 // Handle the exception
}
_SEH2_END;

or like this:

_SEH2_TRY
{
 // Code that might raise an exception
}
_SEH2_FINALLY(UnwindFunc)
_SEH2_END;

or even like this (but PLEASE forget I said it):

_SEH2_TRY
{
 // Code that might raise an exception
}
_SEH2_EXCEPT(FilterFunc)
{
 // Handle the exception
}
_SEH2_FINALLY(UnwindFunc)
_SEH2_END;

_SEH2_TRY
{
 // Code that might raise an exception
}
_SEH2_END;

svn path=/trunk/; revision=14338
2005-03-27 00:41:31 +00:00
Emanuele Aliberti
b0c5a68699 Some stubbing and some stack sizes in exported symbols.
svn path=/trunk/; revision=14337
2005-03-26 22:10:04 +00:00
Filip Navara
5b1f9c5705 Fix return value of SwitchToThread.
svn path=/trunk/; revision=14336
2005-03-26 21:16:42 +00:00
Hartmut Birr
b4e10fa87d - Fixed the wrong check for KMUTEX objects in KeRundownThread.
- Fixed the endless loop in KeRundownThread.

svn path=/trunk/; revision=14335
2005-03-26 20:14:06 +00:00
Emanuele Aliberti
a24101498d Exported symbol list updated to 5.1-SP2
svn path=/trunk/; revision=14334
2005-03-26 17:52:32 +00:00
Magnus Olsen
3210fa3a76 Fix some more bugs thanks to Tribes.
Now the mouse y cordinate works fine
Set right timestap on the event. 
Remove time delay on 50ms 
new code for 50ms event calction.

Todo
why does the Tribes get wrong x,y cordinate.
why does the mouse limit area setup are wrong.




svn path=/trunk/; revision=14333
2005-03-26 16:41:45 +00:00
Magnus Olsen
24a420afcf Fix a small bug I introdues and fix a old bug for tribes
svn path=/trunk/; revision=14330
2005-03-26 11:58:43 +00:00
Magnus Olsen
cb6b20b96e more bugfix for Tribes
but still choppy mouse but not equal as last time

svn path=/trunk/; revision=14329
2005-03-26 11:16:14 +00:00
Art Yerkes
614603eeb9 Added tools needed to build the ppc boot program.
svn path=/trunk/; revision=14328
2005-03-26 10:19:48 +00:00
Magnus Olsen
fdd9078191 Fix some bugs for Tirbes in GetDeivceData
remove to call for geting mouse data. That
are not need it. rest are bugs fix for Tirbes.

Left Todo
The mouse are bit choppy. The mouse area you 
can move the mouse are not being set up right.

svn path=/trunk/; revision=14327
2005-03-26 09:38:23 +00:00
Thomas Bluemel
00018abc54 always wake waiting threads when releasing the last recursion
svn path=/trunk/; revision=14326
2005-03-26 00:10:34 +00:00
Hervé Poussineau
f51f04e53e Implement IntChangeDisplaySettings in a crappy way. Feel free to improve it!
svn path=/trunk/; revision=14325
2005-03-25 23:23:35 +00:00
Hervé Poussineau
554ba464bc Call ChangeDisplaySettingsEx.
We need to implement a test phase to verify that new settings are correct.

svn path=/trunk/; revision=14324
2005-03-25 23:21:00 +00:00
Thomas Bluemel
f14bd21382 grant correct access rights when duplicating a handle
svn path=/trunk/; revision=14323
2005-03-25 23:11:20 +00:00
Thomas Bluemel
2cf86ba40d minor optimization fix for single linked lists
svn path=/trunk/; revision=14322
2005-03-25 22:53:57 +00:00
Casper Hornstrup
a4ca6d5949 Always overwrite output file
svn path=/branches/xmlbuildsystem/; revision=14321
2005-03-25 22:40:56 +00:00
Eric Kohl
63fa5da683 Generate code without L-value casts. Fix remaining issues.
svn path=/trunk/; revision=14320
2005-03-25 21:29:11 +00:00
Royce Mitchell III
8ac9a09484 patch by Filip Navara:
IopCreateDeviceNode should allocate from NonPagedPool, not PagedPool... (the memory is accessed at DISPATCH_LEVEL)

svn path=/trunk/; revision=14319
2005-03-25 19:34:26 +00:00
Casper Hornstrup
fa082a4797 Build template HAL
svn path=/branches/xmlbuildsystem/; revision=14318
2005-03-25 19:28:55 +00:00
Casper Hornstrup
f94bae987b Add missing files
svn path=/branches/xmlbuildsystem/; revision=14317
2005-03-25 18:48:51 +00:00
Thomas Bluemel
71cda6ad2a only return the token handle if creating it succeeded
svn path=/trunk/; revision=14316
2005-03-25 18:13:31 +00:00
Royce Mitchell III
c122f61bfc reorder GenerateRules() to get rid of unnecessary if()
svn path=/branches/xmlbuildsystem/; revision=14315
2005-03-25 17:08:30 +00:00
Casper Hornstrup
b184fdc029 Output rules for objectlibrary files
svn path=/branches/xmlbuildsystem/; revision=14314
2005-03-25 16:32:46 +00:00
Filip Navara
e11896f814 Fix a typo.
svn path=/trunk/; revision=14313
2005-03-25 15:48:03 +00:00
Casper Hornstrup
55b0952903 Revert part of previous change
svn path=/branches/xmlbuildsystem/; revision=14312
2005-03-25 14:37:08 +00:00
Casper Hornstrup
3756253ddf Generate object macros before target macros
svn path=/branches/xmlbuildsystem/; revision=14311
2005-03-25 14:31:00 +00:00
Hartmut Birr
2b55bc2731 - Implemented NpfsCleanup.
- Moved most of the code from NpfsClose to NpfsCleanup.  
- If a pipe handle is closed, remove the fcb from the wait list and cancel a connecting irp if one is waiting.

svn path=/trunk/; revision=14310
2005-03-25 13:40:33 +00:00
Casper Hornstrup
4aa22b18ad Enable rbuild_test again
svn path=/branches/xmlbuildsystem/; revision=14309
2005-03-25 13:02:35 +00:00
Filip Navara
a106e5c2e0 Fix uninitialized variable warnings.
svn path=/trunk/; revision=14308
2005-03-25 12:00:56 +00:00
Hartmut Birr
0341276444 Reverted my last changes which allows to read from a listening pipe.
svn path=/trunk/; revision=14307
2005-03-25 11:45:48 +00:00
Hartmut Birr
bb8e4bcd9e Fixed the return value and last error in ConnectNamedPipe if a overlapped structure is given.
svn path=/trunk/; revision=14306
2005-03-25 11:25:44 +00:00
Hartmut Birr
79d1ef572c Added a missing unlock.
svn path=/trunk/; revision=14305
2005-03-25 11:05:10 +00:00
Filip Navara
97ae5f94b5 Fix compilation.
svn path=/trunk/; revision=14299
2005-03-24 13:17:23 +00:00
Art Yerkes
0ecfffa8a0 This is change 1 of 2.
AddIPAddress and DeleteIPAddress are now implemented all the way down.
Next we need the dhcp service live enough to assign the address from userland,
then we can remove the IP address setting from the kernel.

svn path=/trunk/; revision=14298
2005-03-24 10:46:52 +00:00
Hervé Poussineau
632a47580b - Add synchronization on input and output buffers
- Respect timeouts on IRP_MJ_READ
- Get right buffer in read/write routines

svn path=/trunk/; revision=14297
2005-03-24 07:50:41 +00:00
Hartmut Birr
974ee62e85 - Guarded the calls to IoSetCancelRoutine with IoAcquireCancelSpinLock/IoReleaseCancelSpinLock.
- Used a fastmutex as lock for the data queue.  
- Used paged pool for the data buffers.  
- Allowed the server to read (and to wait) on a listening pipe.  
- Implemented the non blocking read operations.

svn path=/trunk/; revision=14296
2005-03-23 22:11:20 +00:00
Hartmut Birr
7889b35088 Set the share disposition of an interrupt according to the value from the resource.
svn path=/trunk/; revision=14295
2005-03-23 21:51:40 +00:00
Emanuele Aliberti
b929be435f old Win9x drivers subsystem id
svn path=/trunk/; revision=14294
2005-03-23 21:51:08 +00:00
Hervé Poussineau
2a60fd0675 SUBLANG_NEUTRAL -> SUBLANG_ENGLISH_US because ReactOS searches for english/US if no more suitable langage is found
svn path=/trunk/; revision=14293
2005-03-23 21:06:02 +00:00
Hartmut Birr
1821eebb12 Fixed the calling convention of the cancel routine.
svn path=/trunk/; revision=14292
2005-03-23 19:05:42 +00:00
Thomas Bluemel
8e6267fd39 revert my changes
svn path=/trunk/; revision=14275
2005-03-23 13:26:38 +00:00
Emanuele Aliberti
58042e8e21 updated an absolete comment
svn path=/trunk/; revision=14274
2005-03-22 23:34:08 +00:00
Hervé Poussineau
64574d47b1 - Implement IOCTL_SERIAL_GET_COMMSTATUS, IOCTL_SERIAL_PURGE, IOCTL_SET_QUEUE_SIZE
- Add a hack in IOCTL_SERIAL_GET_BAUD_RATE to get it working with mode.exe

svn path=/trunk/; revision=14273
2005-03-22 22:10:44 +00:00
Hervé Poussineau
c75445a9d4 Christoph von Wittich <Christoph@ApiViewer.de>
- Extract hard-coded english sentences from settings.c and put them into resources
- Add corresponding german translations
- Correct some control locations in german and english resource files
- Show only resolutions >= 640x480

svn path=/trunk/; revision=14271
2005-03-22 20:16:41 +00:00
Gé van Geldorp
59904f6ca5 Forgotten file in r13928
svn path=/trunk/; revision=14270
2005-03-22 19:32:17 +00:00
Thomas Bluemel
7a236ead2e forgot this file
svn path=/trunk/; revision=14269
2005-03-22 17:46:44 +00:00
Thomas Bluemel
8d780ebc45 fixed a few race conditions during thread/process termination leading to dead-locks
svn path=/trunk/; revision=14268
2005-03-22 17:32:15 +00:00
Thomas Bluemel
c0b7a5108d improve readability by removing obsolete gotos and for loops where appropriate
svn path=/trunk/; revision=14267
2005-03-22 17:17:02 +00:00
Royce Mitchell III
810c5e38ec forgot this file
svn path=/branches/xmlbuildsystem/; revision=14266
2005-03-22 07:29:02 +00:00
Royce Mitchell III
8102c0deae eliminate rmkdir and generate directory dependencies the right way.
treat ROS_TEMPORARY, ROS_INTERMEDIATE, and ROS_OUTPUT as potential different directories.
major refactor of mingw backend to simplify things, and fix some output bugs, as well as reduce makefile.auto size a bit.
create all macros before we start writing rules ( create all target macros before any other ), this fixes bug with macros being empty because they're used before they're defined

svn path=/branches/xmlbuildsystem/; revision=14265
2005-03-22 07:25:53 +00:00
Alex Ionescu
2700763b70 Fix really really big Mutex/APC bug. Killing GUI Threads from taskmanager should now work flawlessly, and gui apps should work better; the bug had probably tiny important impact in them
svn path=/trunk/; revision=14264
2005-03-22 03:06:03 +00:00
Thomas Bluemel
efa9275d99 forgot to remove debug messages
svn path=/trunk/; revision=14263
2005-03-22 03:05:46 +00:00
Thomas Bluemel
ef30b93924 silence obsolete debug message
svn path=/trunk/; revision=14262
2005-03-22 02:35:54 +00:00
Thomas Bluemel
a642687b55 fixed thread/process termination bugs that might have caused crashes. due to a apc bug gui threads terminating gui threads doesn't work. Alex is going to take care of it.
svn path=/trunk/; revision=14261
2005-03-22 02:32:14 +00:00
Hervé Poussineau
fe8ad2a13b Sylvain Petreolle <spetreolle@yahoo.fr>
- Translate sysdm.cpl into french
- Fix misplaced icons and text boxes
- Add default values into network identification

svn path=/trunk/; revision=14260
2005-03-21 23:37:02 +00:00
Aleksey Bragin
9cc07a82a9 Nice "About Explorer" icon, by Mindflyer.
svn path=/trunk/; revision=14259
2005-03-21 22:10:10 +00:00
Hervé Poussineau
725a3c2f57 Change REG_MULTI_SZ entry values to readable form.
svn path=/trunk/; revision=14258
2005-03-21 22:07:06 +00:00
Filip Navara
8c984877c4 Move the process object dereference from NtTerminateProcess to PspExitProcess (comments inside).
svn path=/trunk/; revision=14257
2005-03-21 21:33:31 +00:00
Filip Navara
49b1d66ec3 - Advance the CurrentEntry pointer before terminating thread in PspTerminateProcessThreads.
- Lock the process in NtTerminateProcess to prevent race conditions.

svn path=/trunk/; revision=14256
2005-03-21 20:11:52 +00:00
Gunnar Dalsnes
561b4db8e9 readd incorrectly removed access mapping
svn path=/trunk/; revision=14255
2005-03-21 17:13:55 +00:00
Gunnar Dalsnes
4dcc066ed7 CopyAcceleratorTableA: dont access lpAccelDst it its NULL (w3seek)
svn path=/trunk/; revision=14254
2005-03-21 17:11:48 +00:00
Gregor Anich
0ac49e9d42 Use a work item only for calling KdSystemDebugControl with code 10 (which is Tab + K, or "Enter Kernel Debugger") because sometimes when the system crashes work items do not work anymore. Thanks to Filip for pointing out the problem.
svn path=/trunk/; revision=14253
2005-03-21 17:09:06 +00:00
Hervé Poussineau
160084df80 Based on work by Saveliy Tretiakov (saveliyt@mail.ru)
Implement IOCTL_SERIAL_GET_PROPERTIES

svn path=/trunk/; revision=14252
2005-03-21 12:41:54 +00:00
Hervé Poussineau
28a24e8079 - Implement GetCommProperties (Saveliy Tretiakov <saveliyt@mail.ru>)
- Remove a test in GetCommState that shouldn't exist

svn path=/trunk/; revision=14251
2005-03-21 10:32:15 +00:00
Filip Navara
e5d49d1493 Fix a typo in write_function_stubs.
svn path=/trunk/; revision=14250
2005-03-21 08:43:01 +00:00
Filip Navara
07647a0b62 Specify correct access rights in NtOpenProcess when sending control events.
svn path=/trunk/; revision=14249
2005-03-21 08:32:22 +00:00
Filip Navara
fd19aa00e6 Correctly draw the titlebar as active or inactive during the processing of WM_NCACTIVATE message.
svn path=/trunk/; revision=14248
2005-03-21 01:59:21 +00:00
Filip Navara
2315100314 - Cleanup DefWndDoButton function.
- Fix some loops where GetMessage was inadvertently used.

svn path=/trunk/; revision=14247
2005-03-21 01:34:02 +00:00
Filip Navara
3a6ab460dd - Move WINDOWOBJECT_NEED_INTERNALPAINT flag handling to NtGdiBeginPaint.
- Fix IntGetPaintMessage to not return TRUE when no message was returned.
- IntIsWindowDirty shouldn't check for the WINDOWOBJECT_NEED_NCPAINT flag (at least not now).

svn path=/trunk/; revision=14246
2005-03-21 00:55:16 +00:00
Emanuele Aliberti
b1367292b1 cleaned a wrong comment (copy&paste)
svn path=/trunk/; revision=14245
2005-03-20 23:01:48 +00:00
Emanuele Aliberti
a90ec8327c SM: init system reading the registry
CSR: register with SM for IMAGE_SUBSYSTEM_WINDOWS_CUI

svn path=/trunk/; revision=14244
2005-03-20 22:55:05 +00:00
Casper Hornstrup
297bfe4644 Test module type support
svn path=/branches/xmlbuildsystem/; revision=14241
2005-03-20 21:58:30 +00:00
Filip Navara
8b0ad6b22f Minor correction to my r14237 commit. Forgot to delete "++".
svn path=/trunk/; revision=14239
2005-03-20 21:44:58 +00:00
Filip Navara
a9c2167a20 Reorder the source file lists so we, lousy people, building with DEPENDENCIES=no can also enjoy the blessing of the PnP gods.
svn path=/trunk/; revision=14238
2005-03-20 21:40:00 +00:00
Filip Navara
17a549a975 Generate code without L-value casts.
svn path=/trunk/; revision=14237
2005-03-20 21:35:12 +00:00
Thomas Bluemel
86a52339fb revert changes from CreateFileA
svn path=/trunk/; revision=14236
2005-03-20 20:46:16 +00:00
Eric Kohl
b718e3cc4e - Add stubs: CM_GetChild, CM_GetChild_Ex, CM_GetParent, CM_GetPaarent_Ex, CM_GetSibling, CM_GetSibling_Ex, CM_Locate_DevNodeA, CM_Locate_DevNodeW, CM_Locate_DevNode_ExA, CM_Locate_DevNode_ExW
- Implement:  CM_GetVersion, CM_GetVersion_Ex, CM_Connect_MachineA, CM_Connect_MachineW, CM_Disconnect_Machine.
- Implement RPC server in umpnpmgr.dll to reply to calls to CM_GetVersion/CM_GetVersion_Ex.

svn path=/trunk/; revision=14235
2005-03-20 20:43:46 +00:00
Filip Navara
a0da8855ea There's no need to call PropertySheet twice.
svn path=/trunk/; revision=14234
2005-03-20 20:28:19 +00:00
Thomas Bluemel
b407470ef1 added support for template directories (copy ntfs extended attributes) to CreateDirectoryEx()
svn path=/trunk/; revision=14233
2005-03-20 20:27:56 +00:00
Filip Navara
34484a48d9 Initialize the "toc" field in the pdb_lookup structure in order
to prevent pdb_free_lookup from trying to delete invalid pointers.

svn path=/trunk/; revision=14232
2005-03-20 19:11:52 +00:00
Thomas Bluemel
0f4cfdb301 - added support for template files (copy ntfs extended attributes) to CreateFile()
- mask out file flags from dwFlagsAndAttributes before passing them to NtCreateFile as file attributes

svn path=/trunk/; revision=14231
2005-03-20 18:55:54 +00:00
Filip Navara
b4d371d7d2 Don't use uninitialized variable in _SHExpandEnvironmentStrings.
svn path=/trunk/; revision=14230
2005-03-20 18:40:57 +00:00
Hervé Poussineau
e8ecbebd7d Based on work by Mark Junker <mjscod@gmx.de>
- Detect UART type
- Clear transmit/receive FIFO if applicable

svn path=/trunk/; revision=14229
2005-03-20 18:30:09 +00:00
Magnus Olsen
0936234d7d LPUNKNOWN pUnkOuter did check it was NULL and return
forget it should be not equal with NULL it return 
thx to mifritscher did the first test to find my mistake

svn path=/trunk/; revision=14228
2005-03-20 18:20:59 +00:00
Gunnar Dalsnes
124f38a790 GetBinaryTypeA, CopyFileExA, CreateFileA, DeleteFileA, MoveFileWithProgressA: Use common A2W conv. routines
svn path=/trunk/; revision=14227
2005-03-20 17:39:11 +00:00
Gunnar Dalsnes
de75c774c3 removed faulty FilenameA2U (returned ptr to stack var)
remove faulty init of StaticUnicodeString (now done in ntdll)

svn path=/trunk/; revision=14226
2005-03-20 17:26:58 +00:00
Magnus Olsen
08482c30b1 start add hardware interface to hal
we now map the hal to directdraw 

follow api are implement in the ddraw for hal
but all hal api are not implement in the kernel
if you got louky it maby working with nvida driver now. 

untested yet. 

svn path=/trunk/; revision=14225
2005-03-20 17:24:11 +00:00
Gunnar Dalsnes
bab510233f init StaticUnicodeString
svn path=/trunk/; revision=14224
2005-03-20 17:22:24 +00:00
Thomas Bluemel
de138c3bb4 - fixed access rights and shared access checks in IoSetShareAccess()
- remove obsolete checks in IoCheckShareAccess() and IoUpdateShareAccess() to simplify them

svn path=/trunk/; revision=14223
2005-03-20 15:54:22 +00:00
Thomas Bluemel
8b9646ca2a - only mask out the generic rights flags in RtlMapGenericMask()
- only deny access when requested rights can't be granted in IoCheckDesiredAccess()

svn path=/trunk/; revision=14222
2005-03-20 13:53:54 +00:00
Magnus Olsen
fb157f301a this waring break the head for me
pnp.c:141: warning: 'Affinity' might be used uninitialized in this function
{standard input}: Assembler messages:

initialized it with Affinity = 0;

svn path=/trunk/; revision=14221
2005-03-20 13:32:27 +00:00
Filip Navara
d73103f0f2 Fix a cut & paste error.
svn path=/trunk/; revision=14220
2005-03-20 13:10:57 +00:00
Filip Navara
2d8afa8978 Allow the lpTemplateDirectory parameter to be NULL in CreateDirectoryExA.
svn path=/trunk/; revision=14219
2005-03-20 13:10:11 +00:00
Eric Kohl
439e6fd789 Improve error messages.
Don't start counting the type_offset for each new fuction. It is a global offset.
Use only basic types in type- and proc-strings (e.g. unsigned long -> long).


svn path=/trunk/; revision=14218
2005-03-20 13:06:11 +00:00
Filip Navara
05bc884b35 - Rename bitblt.c to more generic bitmap.c.
- Normalize BITMAPINFO structure in CreateDIBSection before sending it to win32k.

svn path=/trunk/; revision=14217
2005-03-20 12:30:06 +00:00
Hervé Poussineau
abb9dfec3b Add legacy detection of COM3 and COM4
Be ready for PnP serial ports
Don't hardcode base addresses and irq twice

svn path=/trunk/; revision=14216
2005-03-20 12:15:51 +00:00
Hervé Poussineau
fcc7d2acc7 Implement IoReportDetectedDevice
svn path=/trunk/; revision=14215
2005-03-20 12:15:33 +00:00
Filip Navara
4cae592ec2 Fix nasty condition when we were subtracting AlignedAddress (which happened to be aligned to 0x80000000) from HighestAddress (which is MmSystemRangeStart - 1 == 0x7fffffff) and then using it for length comparsion.
svn path=/trunk/; revision=14214
2005-03-20 12:04:30 +00:00
Filip Navara
b0fb19733c Fix the AdjustTokenPrivileges call once more.
svn path=/trunk/; revision=14213
2005-03-20 11:35:39 +00:00
Thomas Bluemel
0e847f36a6 fixed AdjustTokenPrivileges() call
svn path=/trunk/; revision=14212
2005-03-20 11:22:50 +00:00
Magnus Olsen
a98111e50f Complete the dummy of HAL.
CreateDirectDraw and CreateDirectDrawEx
will return a pointer of ddraw object.
only hardware acclration support are being add.
noting real working yet. 

svn path=/trunk/; revision=14211
2005-03-20 09:58:10 +00:00
Hartmut Birr
f0e4451f31 Fixed the required access rights for formating a disk.
svn path=/trunk/; revision=14210
2005-03-20 09:46:13 +00:00
Filip Navara
572aa1faf4 Minor correction to NtAdjustPrivilegesToken to keep it from returning total junk.
svn path=/trunk/; revision=14209
2005-03-20 01:58:54 +00:00
Filip Navara
c29c8b9124 Revert the last change to device stack attaching.
svn path=/trunk/; revision=14208
2005-03-20 00:53:24 +00:00
Filip Navara
621ded7636 Attach the PDOs to device stack and report device unique IDs if available.
svn path=/trunk/; revision=14207
2005-03-20 00:33:36 +00:00
Magnus Olsen
e7f2044681 did forget these two file
svn path=/trunk/; revision=14206
2005-03-19 23:52:04 +00:00
Magnus Olsen
8b29e58251 update directx d3d and draw header to Wine-20050310
so the work on ddraw dll can continue. 



svn path=/trunk/; revision=14205
2005-03-19 23:47:52 +00:00
Filip Navara
edda3944bc Forgot to add this file in revision 14203.
svn path=/trunk/; revision=14204
2005-03-19 22:50:11 +00:00
Filip Navara
1e7a5224aa - Replace the ColorMap pointer in BITMAPOBJ with palette handle and
correctly free it when the bitmap is about to be destroyed. Also
  get rid of some palette leaks when DIBs were selected into device
  context.
- Refine GDI32 -> Win32k interface for creating and managing brushes.
  Remove NtGdiCreateBrushIndirect, NtGdiCreateDIBPatternBrush,
  NtGdiCreateDIBPatternBrushPt and NtGdiFixBrushOrgEx syscalls and
  add NtGdiCreateDIBBrush.
- Implement basic support for DIB pattern brushes.
- Add user mode helper routine for "normalizing" BITMAPINFO structure.
- Add definition for BITMAPV5HEADER.

svn path=/trunk/; revision=14203
2005-03-19 22:15:02 +00:00
Filip Navara
db3d786f03 Specify correct buffer size in GetPrivateProfileStringW calls.
svn path=/trunk/; revision=14202
2005-03-19 21:48:33 +00:00
Magnus Olsen
8da44c3750 add more code.
start create a protype of hal, that can be use also for
software emulation mode. 

svn path=/trunk/; revision=14201
2005-03-19 20:39:25 +00:00
Alex Ionescu
a04bad112d Oops
svn path=/trunk/; revision=14200
2005-03-19 20:29:19 +00:00
Alex Ionescu
396ff5690c Correct NtW32call to call correct kernel function, add placeholder for SEH, implement KeUserModeCallback (right now a copy of the old code). Part I of an incomplete W32Callback rewrite, just to set up the groundwork to make testing easier. Might look ugly/messy now but it'll be clean soon
svn path=/trunk/; revision=14199
2005-03-19 20:26:46 +00:00
Filip Navara
52a70e745d Fix indentation.
svn path=/trunk/; revision=14198
2005-03-19 19:52:36 +00:00
Thomas Bluemel
6c8fad94ac - correctly deny access to handles when rights requested can't be granted
- map generic rights correctly
- various fixes where handles with inappropriate access rights were created

svn path=/trunk/; revision=14197
2005-03-19 19:13:01 +00:00
Emanuele Aliberti
6f3c732b92 winsta.dll raw stubs
svn path=/trunk/; revision=14196
2005-03-19 18:31:14 +00:00
Magnus Olsen
9cb33ba90d geting update version of ddraw.h working with gdi32.h
thanks filip. 

svn path=/trunk/; revision=14195
2005-03-19 18:28:01 +00:00
Magnus Olsen
dd212d63c9 update the ddraw.h header ageinst Wine-20050310
so the work on ddraw dll can continue. 

this header file have been modify to geting reactos compile and add one struct and fix some protypes that was wrong.

svn path=/trunk/; revision=14194
2005-03-19 18:26:45 +00:00
Filip Navara
ee054cd0f4 Export the HOST variable even on Windows.
svn path=/trunk/; revision=14193
2005-03-19 17:22:02 +00:00
Aleksey Bragin
1ca3f8ce13 Fix a very small typo - "VfatFormat() done" to "VfatxFormat() done"
svn path=/trunk/; revision=14192
2005-03-19 17:11:15 +00:00
Magnus Olsen
229fed0315 lite more code.
nothing works yet. 
add some check see if the parama are right. 

svn path=/trunk/; revision=14191
2005-03-19 10:22:52 +00:00
Martin Fuchs
e24c42bb6b - unregister task manager window at termination
svn path=/trunk/; revision=14190
2005-03-19 09:37:46 +00:00
Martin Fuchs
cf95dc8b1b - remove old experimental shell hook code
svn path=/trunk/; revision=14189
2005-03-19 09:37:24 +00:00
Hartmut Birr
0692378689 Added two missing dereferencing calls in ObReferenceObjectByHandle.
Checked also for NtCurrentThread in NtDuplicateObject.  
Used the return value from InterlockedIncrement to check for a correct handle count.

svn path=/trunk/; revision=14188
2005-03-19 09:18:58 +00:00
Hartmut Birr
c2a04f5107 Added two missing dereferencing calls in NtTerminateThread.
svn path=/trunk/; revision=14187
2005-03-19 09:14:21 +00:00
Filip Navara
e54de54618 - Fix acpi_os_get_thread_id to return 1-based thread ids (instead of zero-based ones).
- Zero the owner_id field while initializing acpi_gbl_acpi_mutex_info.

svn path=/trunk/; revision=14186
2005-03-19 02:18:49 +00:00
Royce Mitchell III
8b3af26269 fix warning that is really a bug - from looking at the code, wDevID, is a UINT, not a UINT_16
svn path=/trunk/; revision=14185
2005-03-19 01:37:47 +00:00
Alex Ionescu
e389f0c999 Implement timer expiring too fast for KeDelayExecutionThread. Dedicated to filip
svn path=/trunk/; revision=14184
2005-03-18 23:26:44 +00:00
Martin Fuchs
0412c84cea register ourselved as task manager window to make the RegisterShellHookWindow() call working [thanks to Filip :)]
svn path=/trunk/; revision=14183
2005-03-18 23:00:54 +00:00
Martin Fuchs
a5b6da0234 cleanup of latest RegisterShellHookWindow() changes
svn path=/trunk/; revision=14182
2005-03-18 20:34:01 +00:00
Gunnar Dalsnes
846dc1aebe -remove incorrect handle count check when deleting files
-reformat code

svn path=/trunk/; revision=14181
2005-03-18 19:36:36 +00:00
Hervé Poussineau
f0bec76acd Fix a warning with some compilers about non-initialized variable.
This can't really happen in real execution, but let's be the compiler happy ;)

svn path=/trunk/; revision=14180
2005-03-18 19:00:48 +00:00
Hervé Poussineau
64944b49f7 Don't double-define STATUS_ARRAY_BOUNDS_EXCEEDED
svn path=/trunk/; revision=14179
2005-03-18 17:45:59 +00:00
Hervé Poussineau
301637bbde Implement partly IoReportResourceForDetection() and IoReportDetectedDevice(), just enough to support serial driver
svn path=/trunk/; revision=14178
2005-03-18 16:51:39 +00:00
Hervé Poussineau
08da4a07b0 Implement legacy detection (it should be able to detect the first two serial ports)
Implement reading by polling (expect lots of bugs!)
Use receive and send queues
Better handling of some IRPs
Lots of small bugs fixes

svn path=/trunk/; revision=14177
2005-03-18 16:01:35 +00:00
Thomas Bluemel
343e3f7bdc can't receive the cid from a KTHREAD structure, fixes compiling with debugging enabled
svn path=/trunk/; revision=14176
2005-03-18 13:52:21 +00:00
Alex Ionescu
c2c6049107 Update ETHREAD fields and termination port stucture to XP, and do necessary code changes. This makes reaping even faster. It's 2:30am, i hope there's no bugs ;-)
svn path=/trunk/; revision=14175
2005-03-18 07:19:30 +00:00
Alex Ionescu
eb54434d27 Thread/Process Termination/Repeaing Rewrite + Fixes
---------------------------------------------------

    - ps/cid.c: 
            * Moved CID Lookup functions here
            
    - ps/security.c: 
            * Moved all security related functions here. Makes other files neater and security functions
              easier to locate.
              
    - ps/thread.c: 
            * Moved most of the Thread Scheduling/Dispatching code that belongs in the Kernel to /ke and
              renamed functions from Ps to Ki.
            * Implemented PsIsSystemThread.
            * Removed Reaper Thread Init (now obsolete).
            * Renamed PiDeleteThread to PspDeleteThread.
            * Moved Thread State functions from tinfo.c to here.
            
    - ps/process.c:
            * Removed Query/Set Process functions and moved to ps/query.c
            * Renamed PiDeletePRocess to PspDeleteProcess
            * Removed obsoleted Process Termination functions, moved persistent one to kill.c
    
    - ps/create.c:
            * Moved the security APIs to security.c
            * Correctly implemented PsCreateSystemThread to actually create system threads.
        
            
    - ps/suspend.c
            * Rewrote Nt Executive functions to use Kernel functions.
            * Moved Ps* Routines into ke/kthread.c and fixed them. The implementation was wrong in
              some aspects, especially the issue of the APC looping around the KeWaitXxx call and the
              fact that the routines excluded/ignored the FreezeCount.
            
    - ps/debug.c
            * Fixed completely broken implementation of Get/SetThreadContext. The old version crashed
              when called and did not work at all. Suspend Regression test now works.
            * Moved Context<->TrapFrame functions to ke/i386/
            * Combined Set/GetThreadContext APCs into a single one, and used special context structure.
            
    - ps/query.c:
            * Moved Thread/Process Query/Set Routines here.
            
    - ps/tinfo.c:
            * Removed.
            
    - ps/kill.c
            * Removed complicated Process Termination semantics and useless Attach/Detach in favor for
              a much more lightweight function which performs the same tasks as before and actually works.
              TaskManager can now terminate foreign processes.
            * Rewrote Thread Reaping to use the HyperCritical Work Queue instead of manually controlled
              thread. This results in much less code as well as an increase in speed and less micro
              management. The reaper is PspReapRoutine. Closing CMD.EXE now works properly without
              requiring masks that were added as hacks to allow it.
            * Renamed PiTerminateProcessThreads to PspTerminateProcessThreads. Fixed it to work with new
              termination code.
            * Added PspDeleteProcess to handle Process Object deletion. Kills the CID Handle here as done
              by Hartmut.
            * Added PspDeletethread here.
            * Renamed and rewrote PsTerminateCurrentThread to PspExitThread. Used NT Implementation out-
              lined in Windows Internals, Chapter 13. Uses less locks, a more concise order of actions,
              actually parses the Termination Ports, handles Dbgk notification. Timers are now rundown,
              and Mutex rundown is in a dedicated Kernel function. Final termination handled by KeTerminate
              Thread as documented.
            * Renamed PsTerminateOtherThread to PspTerminateThreadByPointer and modified implementation to
              be compatible with the changes above.
            * Renamed and regrouped Process Termination into PspExitProcess. Also implemented as described
              above, and moved each subsystem specific termination helper into its own subsytem.
            * Improved NtTerminateProcess and added more debugging messages.
            * Improved NtTerminateThread and added check against System Thread and made it compatible with
              new implementation.
            * Corrected PsTerminateSystemThread now that we support System Threads.
            * Corrected NtRegisterThreadTerminatePort to use same structure name as on windows for the 
              port, and added tag to pool allocation (documented in pooltag.txt)
    
    include/internal/*.h:
    
            * Defined Scheduler Functions and misc new functions or renamed functions.
            
    ke/apc.c:
    
            * Fixed critical bug where APCs were not delivered at all if the thread wastion and cancels any timers that are associated
              to a thread, as well as their APCs and DPCs.
      
    REGRESSIONS FOUND: NONE
    
    BUGS/REGRESSIOSN FIXED:
                * Thread/Get Set Context now works.
                * Suspend Regression test now works.
                * Task manager can now kill foreign processes, even hung ones (like it should).
                * ExitProcess/closing cmd.exe with the 'x' button now works correctly without hacks.
      KNOWN ISSUES: I left a bit of a mess in the headers and some stuff still needs to be moved into the right 
                  places. I just wanted to have this first part ready first, so that it won't get too big.

svn path=/trunk/; revision=14174
2005-03-18 05:53:04 +00:00
Art Yerkes
604f4f13c1 Added simple dword OID query to lan.
Correct oper status, admin status and type settings in iinfo.
Small fixes in lan.c for adapter name.

svn path=/trunk/; revision=14173
2005-03-18 03:26:12 +00:00
Art Yerkes
59c145b801 Don't let sign extension mess us up here.
svn path=/trunk/; revision=14172
2005-03-18 02:56:29 +00:00
Filip Navara
e52a450d86 - Correctly initialize the standard handles for console-less applications.
- Simplify _isatty and fix it to not set the errno for "invalid" handles.

svn path=/trunk/; revision=14171
2005-03-18 02:10:50 +00:00
Steven Edwards
b4e1db6c92 Lined up Buttons.
Removed my broken attempt at understaind comboboxes.
Cleaned up WM_INITDIALOG.

svn path=/trunk/; revision=14170
2005-03-18 00:56:34 +00:00
Filip Navara
e995509c26 It's not exactly wise to call GetFileTime and CloseHandle with invalid handle, so don't do it.
svn path=/trunk/; revision=14169
2005-03-17 23:52:28 +00:00
Filip Navara
b8419654bd Don't try to release mutex with NULL handle. Also prevent releasing the same mutex twice.
svn path=/trunk/; revision=14168
2005-03-17 23:16:12 +00:00
Filip Navara
310a5bcfb7 Don't try to duplicate NULL handles.
svn path=/trunk/; revision=14167
2005-03-17 22:40:19 +00:00
Filip Navara
a384c6e670 (GDIOBJ_SetOwnership): Don't try to decrease the GDI object counter for global handles since they're not associated with process.
svn path=/trunk/; revision=14166
2005-03-17 22:00:19 +00:00
Magnus Olsen
02755a61f0 more stuff for ddraw.dll not tested yet.
svn path=/trunk/; revision=14165
2005-03-17 20:15:44 +00:00
Hartmut Birr
eabbaacd53 Don't close the handle if the write back does fail (in NtOpenProcessTokenEx).
svn path=/trunk/; revision=14164
2005-03-17 19:35:16 +00:00
Steven Edwards
fc4c441263 Dedicated to Alex.
I give to you "The ReactOS License Manager"

No its just a dummy dialog I wrote to learn how to make
Control Panel Applets. Please don't implement this.

svn path=/trunk/; revision=14163
2005-03-17 19:03:55 +00:00
Hartmut Birr
100f53e3ab - Moved the deleting of the process id from PiTerminateProcess to PiDeleteProcessWorker.
- Checked the status at the end of NtOpenProcessTokenEx.

svn path=/trunk/; revision=14162
2005-03-17 18:51:20 +00:00
Aleksey Bragin
a392c38668 One more assert added, but unfortunately it isn't triggered currently...
svn path=/trunk/; revision=14161
2005-03-17 16:09:12 +00:00
Filip Navara
f60f345d30 - Don't try to kill non-existing timers.
- Close dialog using EndDialog instead of DestroyWindow.

svn path=/trunk/; revision=14160
2005-03-17 13:17:05 +00:00
Filip Navara
643a182dd0 Now that CSRSS is getting unloaded we must unregister the primitive message queue when it's about to be destroyed.
svn path=/trunk/; revision=14159
2005-03-17 13:07:28 +00:00
Gunnar Dalsnes
cd4a8585a8 scanf: fix handling of %n token
svn path=/trunk/; revision=14157
2005-03-17 00:31:40 +00:00
Gunnar Dalsnes
9019d252be scanf: fix handling of %n token
svn path=/trunk/; revision=14154
2005-03-16 23:59:41 +00:00
Robert Kopferl
847aa89893 To do once more a little piece os2ss
svn path=/trunk/; revision=14153
2005-03-16 23:51:26 +00:00
Magnus Olsen
1020ee4805 add regsvr.c from wine as frist implement of ddraw.
so it can registrate it selv into the register. 

svn path=/trunk/; revision=14152
2005-03-16 23:23:44 +00:00
Magnus Olsen
c72257a26f small change to start to implement ddraw.dll
svn path=/trunk/; revision=14151
2005-03-16 23:21:00 +00:00
Magnus Olsen
d1274928bb small change to start to implement ddraw.dll
svn path=/trunk/; revision=14150
2005-03-16 23:17:33 +00:00
Gé van Geldorp
8753158ddb Add riched20.dll, msi.dll and msiexec.exe to bootcd
svn path=/trunk/; revision=14149
2005-03-16 22:52:55 +00:00
Hervé Poussineau
b6ef4c6ee6 Better NtUserEnumDisplayDevices stub
svn path=/trunk/; revision=14148
2005-03-16 22:27:47 +00:00
Hervé Poussineau
96b374677d Implement resolution and color depth selection.
Applying new settings doesn't work due to unimplemented NtUserChangeDisplaySettings

svn path=/trunk/; revision=14147
2005-03-16 22:19:12 +00:00
Gé van Geldorp
4dde3a1c21 Fix eol-style
svn path=/trunk/; revision=14146
2005-03-16 22:18:42 +00:00
Filip Navara
37c4d8279f Initialize the pGdiInfo->flRaster field to zero.
svn path=/trunk/; revision=14145
2005-03-16 21:28:21 +00:00
Klemens Friedl
c79360a933 Mindflyer, a.k.a. mf <mf@mufunyo.net>
alternative icon files
* mycomputer icon
* terminal icon

svn path=/trunk/; revision=14144
2005-03-16 21:18:33 +00:00
Filip Navara
baefc0115b Fix some logic in port management code.
svn path=/trunk/; revision=14143
2005-03-16 21:03:51 +00:00
Thomas Bluemel
d86736989a Rouven Wessling <rouven@rouvenwessling.de>:
calc:
- fixed spelling mistakes
ncpa, aclui:
- German translation

svn path=/trunk/; revision=14142
2005-03-16 20:36:02 +00:00
Filip Navara
11c6007bb9 Ulrich Czekalla <ulrich@codeweavers.com>
Set WS_EX_CONTROLPARENT when dialog has DS_CONTROL.
Mike McCormack <mike@codeweavers.com>
Strip WS_CAPTION and WS_SYSMENU for child dialogs.

svn path=/trunk/; revision=14141
2005-03-16 20:13:55 +00:00
Aleksey Bragin
31046fef6e Ivan Semenoff <ivans77@mail.ru>
Fixed a bug in RtlClearBits (asserting if startingindex+count is more than size, instead of silently continuing processing).

svn path=/trunk/; revision=14140
2005-03-16 19:27:45 +00:00
Hervé Poussineau
4d47498931 Saveliy Tretiakov <saveliyt@mail.ru>
- Only one file may be open on a port at any given time
- Implemented IOCTL_SERIAL_GET_STATS and IOCTL_SERIAL_CLEAR_STATS

svn path=/trunk/; revision=14139
2005-03-16 19:24:41 +00:00
Gé van Geldorp
ba0f1263e4 Reapply Wine-20050310 changes, this time with the changes
to the include files. Where's CIS when you need it :P

svn path=/trunk/; revision=14138
2005-03-16 17:30:11 +00:00
Gregor Anich
9577665661 Rename patch to binpatch in apps/utils
svn path=/trunk/; revision=14137
2005-03-16 16:25:54 +00:00
Gregor Anich
c165636757 Rename patch to binpatch.
svn path=/trunk/; revision=14136
2005-03-16 16:24:20 +00:00
Gregor Anich
a00d9b33dc Simple patch-creation tool (not much tested, but should work)
svn path=/trunk/; revision=14135
2005-03-16 14:01:52 +00:00
Hervé Poussineau
534636f9ce Revert revision 14118 changes
svn path=/trunk/; revision=14134
2005-03-16 12:33:26 +00:00
Magnus Olsen
9189284a9d implemnet NtGdiDdGetDriverInfo and NtGdiDdWaitForVerticalBlank
it is untested. 

svn path=/trunk/; revision=14133
2005-03-16 11:50:24 +00:00
Hervé Poussineau
89cc6c3c47 Christoph von Wittich <Christoph@ApiViewer.de>
Added Unicode support and fixes cannot compile problem

svn path=/trunk/; revision=14132
2005-03-16 11:26:14 +00:00
Gé van Geldorp
080bf05b6d Thomas Larsen <sikker2004@yahoo.com>
- Danish Translation

svn path=/trunk/; revision=14131
2005-03-16 09:45:26 +00:00
Gé van Geldorp
f07f87eb09 Thomas Larsen <sikker2004@yahoo.com>
- Danish translation

svn path=/trunk/; revision=14130
2005-03-16 09:42:40 +00:00
Gé van Geldorp
bb2b8992b4 Thomas Larsen <sikker2004@yahoo.com>
- updated danish language

svn path=/trunk/; revision=14129
2005-03-16 09:22:30 +00:00
Gé van Geldorp
53ac0de2ad Thomas Larsen <sikker2004@yahoo.com>
- added danish language

svn path=/trunk/; revision=14128
2005-03-16 09:19:12 +00:00
Gé van Geldorp
03cf4fc8db Thomas Larsen <sikker2004@yahoo.com>
- added danish language

svn path=/trunk/; revision=14127
2005-03-16 09:16:13 +00:00
Gé van Geldorp
6b116da4a1 Thomas Larsen <sikker2004@yahoo.com>
- added danish language

svn path=/trunk/; revision=14126
2005-03-16 09:13:28 +00:00
Gé van Geldorp
206cbe2545 Thomas Larsen <sikker2004@yahoo.com>
- added danish language

svn path=/trunk/; revision=14125
2005-03-16 09:10:23 +00:00
Art Yerkes
ff056457a2 consw has not been needed for a long time.
svn path=/trunk/; revision=14124
2005-03-16 09:02:07 +00:00
Gé van Geldorp
e95a8de179 Update status
svn path=/trunk/; revision=14120
2005-03-16 08:34:44 +00:00
Gé van Geldorp
23265de0b9 Sync to Wine-20050310:
Michael Jung <mjung@iss.tu-darmstadt.de>
- Beginning of a shell namespace extension to browse the unix
  filesystem.
- Fixed parsing of ITEMIDLIST in InitializeTreeView.
- Added some documentation.
- Fixed a crash occuring when the user double-clicks a leaf item.
Dimitrie O. Paun <dpaun@rogers.com>
- Add support for .exe's with exported functions.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
- Add the -noname flag to match the Platform SDK.
- Don't hardcode ordinals if which are not hardcoded on Windows.
Juan Lang <juan_lang@yahoo.com>
- Convert more API calls to Unicode.
- Convert tabs to space, wrap long lines, make indenting consistent.
- Convert a few calls to Unicode.
Mike McCormack <mike@codeweavers.com>
- handle IFileSystemBindData in ISF_Desktop_fnParseDisplayName
- more Unicode conversion
- handle IFileSystemBindData in IShellFolder::ParseDisplayName
- convert IShellFolder::ParseDisplayName to use Unicode
- Remove tabs and make formatting consistent.
- Reindent some code to improve readability.
- Define some extra SHFGI values.
- Remove tabs and reformat.
- Use lstrcmpiA in preference to strcasecmp.
- Make lstr* functions inline inside Wine.
- implement loading and saving of MSI advertised shortcut info
- make more test cases pass
- read and write the location block
- improve the binary compatibility of lnk files
- Cleanup, create unicode versions of _ILCreateFromPath,
  _ILCreateGuidFromStr, and _ILCreateFromFindData.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Documentation spelling fixes.
Hans Leidekker <hans@it.vu.nl>
- Revert wrong -noname markup for Drag*, DoEnvironmentSubst and
  SHGetNewLinkInfo{A,W}.
- Also mark stub exports -noname when they are exported by ordinal
  only on win98/2k.
- Implementation level stubs for SheChangeDirA, SheGetDirA,
  SHHelpShortcuts_RunDLL{A,W}.
- New spec file stubs for Control_RunDLLAsUserW,
  FixupOptionalComponents, OCInstall, SHChangeNotifySuspendResume,
  SHCreateProcessAsUserW, SHExtractIconsW,
  SHInvokePrinterCommand{A,W}, SHIsFileAvailableOffline,
  SHLoadNonloadedIconOverlayIdentifiers, SHPathPrepareForWrite{A,W},
  ShellExec_RunDLL{,A,W}, SHGetIconOverlayIndex{A,W}.
- Mark exports -noname when they are exported by ordinal only on
  win98/2k.
Marcelo Duarte <wine-devel@bol.com.br>
- Update the resources for Portuguese.
Filip Navara <xnavara@volny.cz>
- Don't crash if ShellFolder doesn't implement the IID_ISFHelper
  interface.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Fix prototypes of GetClassLongA/W, GetClassLongPtrA/W and
  SetClassLongA/W according to SDK definitions.
- Add prototypes for SetClassLongPtrA/W, protect some GWL_ and GCL_
  constants from using in Wine or in _WIN64 mode.
- Fix all places in Wine affected by the above changes.
- Convert winemenubuilder to unicode.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for LANG_SPANISH in all
  resources, so that Spanish locales other than Spain also use Spanish
  resources.
Marcus Meissner <marcus@jet.franken.de>
- Output some more informations.
- Mark one global variable static.
Huw Davies <huw@codeweavers.com>
- SetPath("") should return S_OK.
  SetPath("nonexistent_path") should return S_FALSE.
- Don't prepend '\\' to the subkey name.
Joris Huizer <jorishuizer@planet.nl>
- renamed file_operation_delete and to shfileops_delete
- renamed file_operation_checkFlags to shfileops_check_flags
- added helper function shfileops_do_operation()
- added helper function shfileops_get_parent_attr()
- added helper function shfileops_get_parent_attr2()
- various cleanups in SHFileOperationW using these functions
Ge van Geldorp <gvg@reactos.com>
- Error numbers >= 32 are to be expected.

svn path=/trunk/; revision=14118
2005-03-16 07:51:01 +00:00
Alex Ionescu
4bf67aaf0f Fix dillo/vncviewer regressions (semaphore bug). thanks to art and waxdragon for notifying me of the regressions.
svn path=/trunk/; revision=14117
2005-03-16 03:12:32 +00:00
Gé van Geldorp
fbfe053b9b Don't crash when debugger asks for invalid memory location
svn path=/trunk/; revision=14116
2005-03-15 23:47:13 +00:00
Filip Navara
82c445e96b Accidently forgot to disable the debug messages.
svn path=/trunk/; revision=14115
2005-03-15 23:33:54 +00:00
Filip Navara
1fa5efe3d7 Don't use uninitialized variable in FdoQueryBusRelations.
svn path=/trunk/; revision=14114
2005-03-15 23:27:36 +00:00
Filip Navara
40b71ac19d Fix broken logic in PoInit.
svn path=/trunk/; revision=14113
2005-03-15 23:02:51 +00:00
Filip Navara
3f249a0a67 Set the ACPI flag in loader block *after* performing the ACPI detection.
svn path=/trunk/; revision=14112
2005-03-15 23:02:12 +00:00
Gregor Anich
d001f75197 Improve the WNDOBJ implementation a bit... There are still some problems with the visible area when a window is overlapped by another one...
svn path=/trunk/; revision=14111
2005-03-15 22:26:12 +00:00
Gé van Geldorp
d24e173122 Don't disable debugging just because we want the debug
prints to go to the screen or serial port

svn path=/trunk/; revision=14110
2005-03-15 22:14:22 +00:00
Gregor Anich
43bfb5dd4e Allow mapping of MDLs which describe I/O memory (device memory) into usermode. I hope the changes are correct :-/
svn path=/trunk/; revision=14109
2005-03-15 22:07:05 +00:00
Filip Navara
23475fc1f9 Don't access the Irp->User* fields in NpfsSignalAndRemoveListeningServerInstance. The I/O manager will safely do that for us.
svn path=/trunk/; revision=14108
2005-03-15 22:06:41 +00:00
Gé van Geldorp
cea2f0f1d2 Aric Stewart <aric@codeweavers.com>
- The values are quoted and spaces added, so having spaces in the
  properties results in spaces in the values which is incorrect.

svn path=/trunk/; revision=14107
2005-03-15 21:46:14 +00:00
Gé van Geldorp
67b97bc9ef Sync to Wine-20050310:
Jeremy White <jwhite@codeweavers.com>
- Aggressively round up to the proper alignment when reporting position
  on streams where we are converting up.
- When we are converting from one sample rate to another, we do have to
  adjust when calculating TIME_SAMPLES.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for LANG_SPANISH in all
  resources, so that Spanish locales other than Spain also use Spanish
  resources.
Robert Reif <reif@earthlink.net>
- Added parameter checking to timeGetDevCaps.
- Added timer tests.
Christian Costa <titan.costa@wanadoo.fr>
- Added some more cases to MCI_MapMsgAtoW.
- Fixed offsets calculations.

svn path=/trunk/; revision=14106
2005-03-15 21:44:42 +00:00
Steven Edwards
f4ccfedf3e Use the new ReactOS icon for the boot cd.
svn path=/trunk/; revision=14105
2005-03-15 21:39:07 +00:00
Gé van Geldorp
aafd813531 Francois Gouget <fgouget@free.fr>
- Add a comment explaining why CDLGetLongPathName[AW] and
  IsJITInProgress have hardcoded ordinals.

svn path=/trunk/; revision=14104
2005-03-15 21:38:57 +00:00
Gé van Geldorp
33d7cd5d53 Sync to Wine-20050310:
Dmitry Timoshkov <dmitry@codeweavers.com>
- Fix prototypes of GetClassLongA/W, GetClassLongPtrA/W and
  SetClassLongA/W according to SDK definitions.
- Add prototypes for SetClassLongPtrA/W, protect some GWL_ and GCL_
  constants from using in Wine or in _WIN64 mode.
- Fix all places in Wine affected by the above changes.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Documentation spelling fixes.
Thomas Weidenmueller <wine-patches@reactsoft.com>
- Forward to user32 when appropriate.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for LANG_SPANISH in all
  resources, so that Spanish locales other than Spain also use Spanish
  resources.

svn path=/trunk/; revision=14103
2005-03-15 21:36:47 +00:00
Gé van Geldorp
ef5b410045 Sync to Wine-20050310:
Jonathan Ernst <Jonathan@ErnstFamily.ch>
- Add French resources.
Henning Gerhardt <henning.gerhardt@web.de>
- Add/updated German resources.
Marcelo Duarte <wine-devel@bol.com.br>
- Update the resources for Portuguese.
- Use "MS Shell Dlg" everywhere except for Japanese.
Juan Lang <juan_lang@yahoo.com>
- Fix a crash if the Mozilla ActiveX control doesn't implement
  DllCanUnloadNow.

svn path=/trunk/; revision=14102
2005-03-15 21:30:32 +00:00
Gunnar Dalsnes
cb05e516a2 fixed GetTempFileNameA/W by ripping from wine
impl. GetLongPathNameA/W by ripping from wine
impl. EnumResourceNamesA/W by ripping from wine
Use common routines for filename A2W/W2A conversion (wine inspired)
impl. ReadDirectoryChangesW (kmode part is not workin yet)
fixed RtlSetCurrentDirectory_U (dont convert to long path)

svn path=/trunk/; revision=14101
2005-03-15 19:40:22 +00:00
Hartmut Birr
e035ce116b On smp machines, unmap all low memory pages (except page 2 and 3).
svn path=/trunk/; revision=14100
2005-03-15 17:38:54 +00:00
Hartmut Birr
2423a80b6b Prevent from accessing DpcEvent in the KPCR structure, because it is currently a NULL pointer.
svn path=/trunk/; revision=14099
2005-03-15 17:35:27 +00:00
Filip Navara
37ac253ad6 Fix debug messages.
svn path=/trunk/; revision=14098
2005-03-15 15:58:36 +00:00
Filip Navara
68ed284f6e Cleanup misleading code.
svn path=/trunk/; revision=14097
2005-03-15 15:57:45 +00:00
Hervé Poussineau
9b56503fc8 Disable serial driver as it is in conflit with sermouse and debug output
svn path=/trunk/; revision=14096
2005-03-15 14:47:41 +00:00
Royce Mitchell III
ecf13d206b have buildno invocation conform to VERBOSE setting
svn path=/branches/xmlbuildsystem/; revision=14095
2005-03-15 14:02:22 +00:00
Gé van Geldorp
2850638aad Sync to Wine-20050310:
Americo Jose Melo <mmodem00@netvisao.pt>
Francois Gouget <fgouget@codeweavers.com>
- Translate the Wine resources to Portuguese.
Alex Villacfs Lasso <a_villacis@palosanto.com>
- Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for LANG_SPANISH in all
  resources, so that Spanish locales other than Spain also use Spanish
  resources.
Juan Lang <juan_lang@yahoo.com>
- Implement SetupDiGetClassDevsA/W, SetupDiEnumDeviceInterfaces,
  SetupDiDestroyDeviceInfoList, and SetupDiGetDeviceInterfaceDetailA for
  serial ports.
Hans Leidekker <hans@it.vu.nl>
- Don't use utf8 in rc files.
Ge van Geldorp <gvg@reactos.com>
- eol-style fixes

svn path=/trunk/; revision=14094
2005-03-15 11:38:15 +00:00
Gé van Geldorp
d4a5e08d97 Sync to Wine-20050310:
Alexandre Julliard <julliard@winehq.org>
- Avoid spaces before preprocessor directives, that's not portable.
Robert Shearman <rob@codeweavers.com>
- Add a stub implementation of RpcImpersonateClient.
- More tracing, particularly on error paths.
- ERROR_IO_PENDING is expected, so don't return an error.
Mike Hearn <mh@codeweavers.com>
- Suppress some useless warnings in the RPC runtime, and make a few
  TRACEs that were reporting problems into WARNs.

svn path=/trunk/; revision=14093
2005-03-15 09:22:34 +00:00
Gé van Geldorp
402686e69a Sync to Wine-20050310:
Mike McCormack <mike@codeweavers.com>
- Forward the RichEdit 1.0 control to the RichEdit 2.0 control.
- Don't clear ES_AUTO[HV]SCROLL in the edit control created by
  richedit.
- Remove unused declaration.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Jason Edmeades <us@the-edmeades.demon.co.uk>
- Make the edit field created from a richedit control which was created
  with ES_DISABLENOSCROLL, not have the ES_NUMBER style and hence accept
  alphanumeric input.

svn path=/trunk/; revision=14092
2005-03-15 09:08:16 +00:00
Gé van Geldorp
67347846ec Sync to Wine-20050310:
import

svn path=/trunk/; revision=14091
2005-03-15 09:04:29 +00:00
Gé van Geldorp
0eb4051a93 Make room for vendor import
svn path=/trunk/; revision=14090
2005-03-15 09:01:28 +00:00
Gé van Geldorp
f20f399309 Sync to Wine-20050310:
Alex Villacis Lasso <a_villacis@palosanto.com>
- Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for LANG_SPANISH in all
  resources, so that Spanish locales other than Spain also use Spanish
  resources.
- eol-style stuff

svn path=/trunk/; revision=14088
2005-03-15 08:10:52 +00:00
Royce Mitchell III
06e37a6a8a I give up, make's "directory target" support has a fatal flaw, converting to "dummy file" system
svn path=/branches/xmlbuildsystem/; revision=14087
2005-03-15 03:51:11 +00:00
James Tabor
e7005a9352 eol-style native
svn path=/trunk/; revision=14086
2005-03-15 00:23:19 +00:00
Gé van Geldorp
f9279fd739 Sync to Wine-20050310:
Jacek Caban <jack@itma.pwr.wroc.pl>
- Implemented GetRecordInfoFromTypeInfo and GetRecordInfoFromGuid.
- Beginnig implementation of IRecordInfo.
- More implementation of IRecordInfo.
Maxime Bellenge <maxime.bellenge@laposte.net>
- Implements OleLoadPicturePath.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Use variant macros instead of accessing the union directly.
- Documentation spelling fixes.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Implement OleFontImpl_QueryTextMetrics.
- Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for LANG_SPANISH in all
  resources, so that Spanish locales other than Spain also use Spanish
  resources.
Marcelo Duarte <wine-devel@bol.com.br>
- Update the resources for Portuguese.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Add a stub for OleLoadPicturePath().
Huw Davies <huw@codeweavers.com>
- The typelib cache should take the typelib resource index into
  account.
Mike Hearn <mh@codeweavers.com>
- Allow loading of builtin typelibs.
Marcus Meissner <marcus@jet.franken.de>
- Check for overflows with ClrUsed.

svn path=/trunk/; revision=14085
2005-03-14 23:44:13 +00:00
Gé van Geldorp
9bc71c43a2 Sync to Wine-20050310
svn path=/trunk/; revision=14084
2005-03-14 23:25:39 +00:00
Gé van Geldorp
9a10a39940 Sync to Wine-20050310:
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Documentation spelling fixes.
Mike McCormack <mike@codeweavers.com>
- Implement and test IPropertySetStorage.
- Fix more incorrect uses of STGM_ enumerations.
- Add struct StorageBaseImpl at the start of derived structures instead
  of trying to keep the first members the same.
- StgOpenStorage shouldn't open zero length storage files.
- Shared reading of storage files requires STGM_TRANSACTED.
- Test and fix grfMode handling in StgOpenDocfile.
- Implement StgSetTimes.
Robert Shearman <rob@codeweavers.com>
- Better tracing.
- Small cleanup of creation functions.
- Rename apartment functions to become more object-oriented.
- Rename register_ifstub to marshal_object to more accurately describe
  what it does.
- Add new function, apartment_getoxid, to prepare for a possible
  future patch where remoting is started on demand.
- Move marshaling state machine into stub manager from ifstub.
- Add additional needed states for table-weak marshaling, as shown by
  tests.
- Protect external reference count from underflows/overflows.
- Make COM use the RPC runtime as the backend for RPC calls. Based on a
  patch by Ove Ksven.
- Invoke objects in STA's in the correct thread by sending messages to
  the hidden apartment window.
- Use I_RpcGetBuffer, instead of our own buffer routines to fix an
  occasional test crash caused by heap corruption.
- Zero the memory block passed to RpcServerRegisterIfEx so we don't
  pass garbage in some of the fields we don't fill in.
- Return the correct error code from create_server and fix two handle
  leaks.
- TODO update.
- Remove cruft left over from previous RPC backend implementation in
  the apartment structure.
- Don't pass an IPID by value for proxy_manager_create_ifproxy.
- Disable more of RPC_UnregisterInterface to prevent the RPC runtime
  using freed memory.
- Rename various external RPC backend functions so that they all have
  the same "RPC_" prefix.
- Reduce the timeout of the function that connects to a local server
  to 30s, like native.
- Make each ifproxy have its own channel buffer to fix a bug where a
  proxy with multiple interfaces could invoke the wrong stub buffer on
  the server.
- The Global Interface Table should do table-strong marshaling instead
  of normal marshaling so that an interface can be retrieved more than
  one time.
Mike Hearn <mh@codeweavers.com>
- Avoid infinite loop when doing a typelib marshalled
  IUnknown::QueryInterface by only doing an extra QI if requested IID is
  not equal to marshalled IID.
Rob Shearman <rob@codeweavers.com>
Mike Hearn <mh@codeweavers.com>
- Add re-entrancy tests to the test suite.
- Run RPCs on a new thread client side so we can pump the message
  loop.
Juan Lang <juan_lang@yahoo.com>
- Fix the calling convention of DllCanUnloadNow.
- Move vtbl to end of file and get rid of unnecessary prototypes.
- Implement StgCreatePropSetStg.
Joris Huizer <jorishuizer@planet.nl>
- A few memory checks avoiding memory leaks.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Paul Vriens <Paul.Vriens@xs4all.nl>
- Added some TRACE statements.

svn path=/trunk/; revision=14083
2005-03-14 23:17:44 +00:00
Gé van Geldorp
8c43665c8d Sync to Wine-20050310
svn path=/trunk/; revision=14082
2005-03-14 22:56:02 +00:00
Gé van Geldorp
5df62c8577 Sync to Wine-20050310:
Ulrich Czekalla <ulrich@codeweavers.com>
- Add support for radio buttons.
- Allocate space for terminating null.
- Fix a memory leak.
- Prevent accessing freed memory in failure case.
Mike McCormack <mike@codeweavers.com>
- Add a border to the edit control, add some more controls.
- Implement SQL delete query.
- Move product, feature and component enumeration functions to
  registry.c.
- Make sure strings are null terminated.
- Fix up the summary information code a little.
- Allow MsiViewExecute to be called twice on the same query.
- Implement MsiDatabaseGetPrimaryKeys.
- MsiGetComponentPath should allow null pointers for pcchBuf and
  lpPathBuf.
- Remove const declaration from non-const function.
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Added MSI Spanish resources.
Juan Lang <juan_lang@yahoo.com>
- Implement MsiEnumRelatedProducts.
- make sure msihandle2msiinfo is correctly matched with msiobj_release
- don't do redundant NULL checks
- Don't hardcode windows or system directories, correct a typo.
- Fix a regression in AppSearch.
Jonathan Ernst <Jonathan@ErnstFamily.ch>
- Add French resources.
Henning Gerhardt <henning.gerhardt@web.de>
- Add/updated German resources.
Marcelo Duarte <wine-devel@bol.com.br>
- Update the resources for Portuguese.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Alexandre Julliard <julliard@winehq.org>
- Avoid spaces before preprocessor directives, that's not portable.
Aric Stewart <aric@codeweavers.com>
- Text reformatting patch to clean up all the static strings.
- Implement the action RegisterFonts.
- Add the ExecuteAction handler.
- Store the keypath, and do refcounting and registration of SharedDLLs.
- Fix a bug with handing dword values in the registry.
- Fix bugs with writing registry keys where value == NULL.
- Make use of msidefs.h.
- Lay some groundwork for uninstalls.
- Update the installed state for components during CostFinalize. Laying
  groundwork to be able to start processing uninstall logic as well.
- Fixed problems with my code for finding the PackageCode.
- Stubs for MsiUseFeature.
- Do some basic work with registry component paths.
- Make sure formats like [\\]] and [\\[] work properly.
Steven Edwards <steven@codeweavers.com>
- Correct typo.
Marcus Meissner <marcus@jet.franken.de>
- Output some more informations.
- Mark one global variable static.

svn path=/trunk/; revision=14081
2005-03-14 22:54:57 +00:00
Emanuele Aliberti
9cc503a1b2 SMDLL + SMLIB (static code in SMSS.EXE)
SM now self registers for IMAGE_SUBSYSTEM_NATIVE.

svn path=/trunk/; revision=14080
2005-03-14 22:38:12 +00:00
Gé van Geldorp
f689818f82 Sync to Wine-20050310:
Marcelo Duarte <wine-devel@bol.com.br>
- Use "MS Shell Dlg" everywhere except for Japanese.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for LANG_SPANISH in all
  resources, so that Spanish locales other than Spain also use Spanish
  resources.

svn path=/trunk/; revision=14079
2005-03-14 22:28:58 +00:00
Gé van Geldorp
cb8820f660 Sync to Wine-20050310:
Alexandre Julliard <julliard@winehq.org>
- Make sure to always pass valid QS_* flags to
  MsgWaitForMultipleObjects.
Christian Costa <titan.costa@wanadoo.fr>
- Implemented GetProperty method for keyboard device.

svn path=/trunk/; revision=14078
2005-03-14 22:24:35 +00:00
Gé van Geldorp
86f13a4752 Sync to Wine-20050310:
Marcelo Duarte <wine-devel@bol.com.br>
- Update the resources for Portuguese.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Fix prototypes of GetClassLongA/W, GetClassLongPtrA/W and
  SetClassLongA/W according to SDK definitions.
- Add prototypes for SetClassLongPtrA/W, protect some GWL_ and GCL_
  constants from using in Wine or in _WIN64 mode.
- Fix all places in Wine affected by the above changes.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Documentation spelling fixes.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for LANG_SPANISH in all
  resources, so that Spanish locales other than Spain also use Spanish
  resources.
Troy Rollo <wine@troy.rollo.name>
- Fix stack object overrun when an application calls ChooseFontA.
Mike Hearn <mh@codeweavers.com>
- Respect the flags member of the CHOOSEFONT structure, and don't
  attempt to process bogus strings.

svn path=/trunk/; revision=14077
2005-03-14 22:21:18 +00:00
Royce Mitchell III
effadc5c83 reformat and simplify before adding functionality
svn path=/branches/xmlbuildsystem/; revision=14076
2005-03-14 21:59:25 +00:00
Hervé Poussineau
78237daf70 Add registry entries for serial driver
svn path=/trunk/; revision=14075
2005-03-14 21:30:25 +00:00
Hervé Poussineau
df94eae35b Start of the serial driver:
Handle write support and some IOCTL codes
First serial port is mapped to COM3 and second serial port is mapped to COM4. This prevents conflicts with existing code.

svn path=/trunk/; revision=14074
2005-03-14 20:59:50 +00:00
Royce Mitchell III
defea05242 reorder dependencies to fix $(ECHO_CC) output
svn path=/branches/xmlbuildsystem/; revision=14073
2005-03-14 20:38:32 +00:00
Royce Mitchell III
9195e788b1 reorder dependencies to fix $(ECHO_CC) output
svn path=/branches/xmlbuildsystem/; revision=14072
2005-03-14 20:30:45 +00:00
Royce Mitchell III
22e89b83ae fix dlltool target directory dependencies
add buildno's output to clean:

svn path=/branches/xmlbuildsystem/; revision=14071
2005-03-14 20:06:14 +00:00
Casper Hornstrup
d12b2619f0 Report why a file is marked for rebuild
svn path=/branches/xmlbuildsystem/; revision=14070
2005-03-14 19:42:00 +00:00
Royce Mitchell III
944769bcd5 list directory dependencies last, so that $(ECHO_FOO) prints the right thing. also use $@ where possible to reduce makefile.auto size a bit
svn path=/branches/xmlbuildsystem/; revision=14069
2005-03-14 19:38:13 +00:00
Casper Hornstrup
9b336ed130 Depend on the object file directory, not the object file.
svn path=/branches/xmlbuildsystem/; revision=14068
2005-03-14 19:31:25 +00:00
Royce Mitchell III
e7018c4009 echo [WMC] commands
remove some unnecessary indirect dependencies
have rbuild mkdir commands depend directly on RMKDIR_TARGET
don't have object files depend on themselves!
add rmkdir, rsym, and wmc phony targets

svn path=/branches/xmlbuildsystem/; revision=14067
2005-03-14 19:11:03 +00:00
Casper Hornstrup
346a557406 * Build bin2res and cabman in bootstrap makefiles
* Remove make directory hack as it wasn't needed anyway


svn path=/branches/xmlbuildsystem/; revision=14066
2005-03-14 18:51:29 +00:00
Thomas Bluemel
42819f010e revert the changes i accidently made, sorry
svn path=/trunk/; revision=14065
2005-03-14 16:10:21 +00:00
Thomas Bluemel
9309c80c1b implemented the SystemInterruptInformation information class to fill the structure with empty data to make process explorer shut up
svn path=/trunk/; revision=14064
2005-03-14 16:04:12 +00:00
Thomas Bluemel
3f89e7fa88 ignore alignment checks for unimplemented information classes in NtQuery/SetInformationProcess(). This gets sysinternals' ProcessExplorer to run
svn path=/trunk/; revision=14063
2005-03-14 15:23:44 +00:00
Thomas Bluemel
5672781aa4 safely access buffers in NtReadVirtualMemory()
svn path=/trunk/; revision=14062
2005-03-14 15:22:46 +00:00
Thomas Bluemel
2f460387c0 fixed copy+paste mistake
svn path=/trunk/; revision=14061
2005-03-14 14:30:43 +00:00
Thomas Bluemel
666973de7f dereference processes when enumerating them was cancelled. Accidently removed that.
svn path=/trunk/; revision=14060
2005-03-14 13:42:38 +00:00
Thomas Bluemel
437f357dd1 report idling statistics from the idle process, not from the system process
svn path=/trunk/; revision=14059
2005-03-14 13:24:46 +00:00
Thomas Bluemel
009fddf0b2 group idle threads into the idle process
svn path=/trunk/; revision=14058
2005-03-14 13:18:29 +00:00
Gé van Geldorp
61c807a7ec Sync to Wine-20050310:
Martijn Vernooij <yuxdwa702@sneakemail.com>
- Scroll instead of repainting when expanding/collapsing trees.
- Don't repaint on hover if 'hot tracking' isn't on.
Francois Gouget <fgouget@free.fr>
- Add the -noname flag to match the Platform SDK.
- Assorted spelling fixes.
Maxime Bellenge <maxime.bellenge@laposte.net>
- Take into account the new size of a column when the header size
  change.
- Correctly displays the text with ellipsis when there is not enough
  room in a header item and an image from an imagelist is displayed on
  the right of the text.
- Fix SetItem so that items don't get wrongly re-ordered.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Fix prototypes of GetClassLongA/W, GetClassLongPtrA/W and
  SetClassLongA/W according to SDK definitions.
- Add prototypes for SetClassLongPtrA/W, protect some GWL_ and GCL_
  constants from using in Wine or in _WIN64 mode.
- Fix all places in Wine affected by the above changes.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Documentation spelling fixes.
- Remove unneeded calls to TAB_GetInfoPtr(), const fixes, inline small
  funcs & remove unused parameters.
Dimitrie O. Paun <dpaun@rogers.com>
- Fix indentation for consistency with the rest of the file.
- Unicodification. Small cleanups.
Filip Navara <navaraf@reactos.com>
- Implement SB_SETBORDERS.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for LANG_SPANISH in all
  resources, so that Spanish locales other than Spain also use Spanish
  resources.
Robert Shearman <rob@codeweavers.com>
- Fix one more place where the code assumes row indices are
  zero-based.
- Document a known bug in the layout code.
- Make row number be zero-based.
- Improvements to dumping functions to not dump out fields that may
  not have been filled in.
Michael Stefaniuc <mstefani@redhat.de>
- ImageList_LoadImage{A,W} were basicaly a cut'n'paste of each
  other. Removed the A variant and did a A->W translation.
- ImageList_LoadImageW: get the bitmap size from the image itself and
  not from the mask (ImageList_LoadImageA did that).

svn path=/trunk/; revision=14057
2005-03-14 11:34:02 +00:00
Gé van Geldorp
11039e6faf Sync to Wine-20050310:
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Documentation spelling fixes.
Alexandre Julliard <julliard@winehq.org>
- Allow specifying extended control styles also in standard dialogs
  (reported by Michael Lin).
- Avoid spaces before preprocessor directives, that's not portable.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.

svn path=/trunk/; revision=14056
2005-03-14 11:01:02 +00:00
Gé van Geldorp
61dcda8178 Sync to Wine-20050310:
Merge back WineHQ commits

svn path=/trunk/; revision=14055
2005-03-14 10:44:46 +00:00
Gé van Geldorp
e51a2aab8f Re-import because of SVN problems
svn path=/trunk/; revision=14053
2005-03-14 10:36:02 +00:00
Gé van Geldorp
97445cc205 Sync to Wine-20050310:
Dimitrie O. Paun <dpaun@rogers.com>
- Add support for .exe's with exported functions.

svn path=/trunk/; revision=14052
2005-03-14 10:32:28 +00:00
James Tabor
4b9a323664 Fixed up rc file names.
svn path=/trunk/; revision=14050
2005-03-14 07:21:20 +00:00
Alex Ionescu
8b97b835f2 Support Priority Boosting during Wait Satisfaction and Thread Abortion, and use it where necessary. Should provide a bit more responsiveness.
svn path=/trunk/; revision=14049
2005-03-14 06:44:31 +00:00
Alex Ionescu
3d801bebec Forgot this file.
svn path=/trunk/; revision=14048
2005-03-14 05:54:58 +00:00
Alex Ionescu
6a7ba78c91 Dispatching & Queue Rewrite II:
- Rewrote wait code. It is now cleaner, more optimized and faster. All waiting
      functions are now clearly differentiated instead of sharing code. These functions
      are called up to a dozen times a second, so having dedicated code for each of
      them is a real boost in speed.
    - Fixed several queue issues, made a dedicated queue wait/wake function (you are not
      supposed to use KeWaitFor on a queue, and this is also a speed boost), and make it
      compatible with new wait code.
    - Optimized Work Queue code to be much smaller and better organized, by using an 
      array instead of hard-coded multiple static variables. Also, add support for the
      real NT structures and implementation, paving the road for Dynamic Work Items, which
      also have timeouts, and deadlock dection + debug info.
    - Simplified PsBlockThread and made it compatible with wait code.
    - Added support for priority boosting when unwaiting a thread; will use later, as well
      as put proper boosting for dispatch objects.
    - Inlined all dispatcher lock functions and header initialization for speed.
    - Moved executive wait code into ob.

svn path=/trunk/; revision=14047
2005-03-14 05:54:32 +00:00
Alex Ionescu
e33a78f93b Do not assume that a debugger is present only because we are debugging to a file or to the screen. This corrects bugchecks not to launch an INT3 where no debugger is actually there to catch it.
svn path=/trunk/; revision=14046
2005-03-14 04:51:51 +00:00
Thomas Bluemel
cfdb595cc6 Alex Ionescu <ionucu@videotron.ca>
Dispatcher Objects Rewrite (minus Queues, coming in next patch).
	Global Changes:
 
		- Use KOBJECT enumerations for all objects, remove obsoleted ros-internal enumeration.
		- Reformatting, commenting, and addition of Debug Prints for easier debugging
		- Properly create Executive Objects. They don't need a creation routine.
		- Make sure to properly lock and release the Dispatcher Database.
 
	Mutex/Mutant:
 
		- Correct MUTANT_BASIC_INFORMATION
		- Return previous state in Kernel Functions, intead of 1 or 0 all the time.
		- Initialize listhead properly
		- Removed code duplication between mutant and mutex release.
		- Fix bugs in release
		- Add proper exeption if the mutex is not owned.
 
	Kernel Queues:
 
		- Optimize the code
		- Use Inserted Flag
 
	Timers:
 
		- Some changes in setting the default data to allow KiInsertTimer to be called internally 
		  by the wait code in the next patch.
 
	Events:
 
		- Optimize and simplify KeInitializeEvent
		- Implement KeInitializeEventPair
		- Fix KePulseEvent. It was completely messed up and also used unneeded Interlocked function.
		- Fix KeResetEvent. It was not locking the dispatcher lock but using Interlocked.
		- Fix KeSetEvent. It was not differentiating between Notification and Sycronization events 
		  and also signaling the Event even if nobody was waiting on it.
 
	Semaphores:
 
		- Fix KeReleaseSemaphore. It was not checking if nobody was waiting on it before unwaiting the thread.
		- Fix not releasing dispatcher database before raising an exception.
		- Add check to NtCreateSemaphore to make sure the counts make sense.
 
	Event Pairs:
 
		- Remove Thread Event Pair. They are only used for NT4 QuickLPC which is obsoleted.
		- Use KeInitializeEventPair

svn path=/trunk/; revision=14045
2005-03-14 02:08:17 +00:00
Thomas Bluemel
865a496525 don't receive the previous mode before the current thread was created, this should finally fix the boot.
svn path=/trunk/; revision=14044
2005-03-14 01:47:18 +00:00
Magnus Olsen
78dbb934c2 GetDeviceData
fix the choppy mouse in UT and fix some other small bugs.
I can now use the mouse with out any problem in UT


svn path=/trunk/; revision=14043
2005-03-14 00:36:02 +00:00
Gé van Geldorp
05df4eff43 tinus <o112w8r02@sneakemail.com>:
Use RegisterShellHookWindow

svn path=/trunk/; revision=14042
2005-03-13 23:10:25 +00:00
Gé van Geldorp
fa4bd57bed tinus <o112w8r02@sneakemail.com>:
Implement RegisterShellHookWindow

svn path=/trunk/; revision=14041
2005-03-13 23:08:51 +00:00
Thomas Bluemel
f1fa92f6fc initialize the handle tables before creating them
svn path=/trunk/; revision=14040
2005-03-13 23:03:31 +00:00
Casper Hornstrup
30c142ef2d Build winebuild by bootstrap makefiles
svn path=/branches/xmlbuildsystem/; revision=14039
2005-03-13 22:33:13 +00:00
Casper Hornstrup
f6646e9181 Add missing file
svn path=/branches/xmlbuildsystem/; revision=14038
2005-03-13 21:59:51 +00:00
Gé van Geldorp
c367070483 Allow cancelling of listen IRPs
svn path=/trunk/; revision=14037
2005-03-13 21:47:04 +00:00
Gé van Geldorp
6f699ce531 arty:
Always keep port numbers in network byte order

svn path=/trunk/; revision=14036
2005-03-13 21:41:44 +00:00
Thomas Bluemel
a8ea6a6ab4 don't use the current process' pid if no process specified.
svn path=/trunk/; revision=14035
2005-03-13 21:37:54 +00:00
Casper Hornstrup
eb194612c3 * Correct dependencies for ROS_INTERMEDIATE <> . in generated makefile
* GNU make don't support depending on a directory, so simulate the dependency using a file


svn path=/branches/xmlbuildsystem/; revision=14034
2005-03-13 21:34:47 +00:00
Eric Kohl
a3e183bd64 Remove debug printf().
svn path=/trunk/; revision=14033
2005-03-13 21:34:15 +00:00
Casper Hornstrup
e160a25508 * Introduce ROS_OUTPUT
* Correct dependencies for ROS_INTERMEDIATE <> . in bootstrap makefiles
* GNU make don't support depending on a directory, so simulate the dependency using a file


svn path=/branches/xmlbuildsystem/; revision=14032
2005-03-13 21:30:35 +00:00
Eric Kohl
7019953f42 Remove debug printf().
svn path=/trunk/; revision=14031
2005-03-13 21:29:49 +00:00
Casper Hornstrup
7fb6d76a2b -P switch to set root path for files when creating cabinet
svn path=/branches/xmlbuildsystem/; revision=14030
2005-03-13 21:02:04 +00:00
Casper Hornstrup
5c5c83ecb2 Build msacm32.dll
svn path=/branches/xmlbuildsystem/; revision=14029
2005-03-13 20:55:16 +00:00
Emanuele Aliberti
fd01d2046a LsaQueryInfoTrustedDomain stub added
svn path=/trunk/; revision=14028
2005-03-13 20:42:48 +00:00
Thomas Bluemel
57946d8a9a Alex Ionescu <ionucu@videotron.ca>
- Use optimized semantics as previously decided (OPTIMIZED = 1 if DBG = 0)

svn path=/trunk/; revision=14027
2005-03-13 18:55:01 +00:00
Royce Mitchell III
785ffdc0da set eol-style=native
svn path=/trunk/; revision=14026
2005-03-13 18:54:37 +00:00
James Tabor
e19f4b7bd9 Fix paste error.
svn path=/trunk/; revision=14025
2005-03-13 18:51:46 +00:00
James Tabor
7ac15d3bbf Fixup for *nix port
svn path=/trunk/; revision=14024
2005-03-13 18:47:13 +00:00
James Tabor
1bb6977546 Fixup for *nix port
svn path=/trunk/; revision=14023
2005-03-13 18:43:44 +00:00
Thomas Bluemel
b1ce653a14 Alex Ionescu <ionucu@videotron.ca>
- Fix implementation of NT Profile Objects. Structures are guesses, but seem pretty close to the NT ones... a lot of stuff based on David Welch's old implementation, but simplified the way profiles are managed extensively, and also using the same buckethash mechanism as NT, this is required for compatibility with Nt Native APIs that use Profile Objects.
- Removed KDBG internal profile management and associated files. I will re-write the Profiler to use NT Profile Objects, which will allow us more extensibilty while profiling and also greater compatibility with NT.

svn path=/trunk/; revision=14022
2005-03-13 18:41:59 +00:00
Thomas Bluemel
b607cb6445 fixed HANDLE_TABLE structure
svn path=/trunk/; revision=14021
2005-03-13 18:39:38 +00:00
Royce Mitchell III
3d00595df2 c version of wine's 'make_ctests' script
svn path=/trunk/; revision=14020
2005-03-13 18:08:10 +00:00
Royce Mitchell III
539c296fa7 -Wall -Werror and fix warnings
svn path=/trunk/; revision=14019
2005-03-13 17:24:17 +00:00
Royce Mitchell III
5751b32540 -Wall -Werror and fix warnings
svn path=/trunk/; revision=14018
2005-03-13 17:18:33 +00:00
Hartmut Birr
e9ae9105f5 Added a keep-alive reference to each key object.
Lock the registry while accessing sub keys of a key object.  
Implemented a worker thread which removes all unused key objects.  
Fixed a bug which shows keys twice if a key is already opened.

svn path=/trunk/; revision=14017
2005-03-13 17:03:42 +00:00
Emanuele Aliberti
2d250ad2a7 ea@reactos.com
- make SmExecuteProgram work
- implement SmCompleteSession (untested)

svn path=/trunk/; revision=14016
2005-03-13 17:01:59 +00:00
Emanuele Aliberti
12da975bfd ea@reactos.com
Make SmConnectApiPort more safe.

svn path=/trunk/; revision=14015
2005-03-13 17:00:19 +00:00
Hartmut Birr
779a7eeb41 Removed CloseInProcess from object header structure.
svn path=/trunk/; revision=14014
2005-03-13 16:44:15 +00:00
Hartmut Birr
aed77689d2 Added two missing calls to KeLeaveCriticalRegion.
svn path=/trunk/; revision=14013
2005-03-13 16:41:05 +00:00
Martin Fuchs
85fdc76fb2 launch display properties dialog via desktop context menu
svn path=/trunk/; revision=14012
2005-03-13 15:43:02 +00:00
Martin Fuchs
c9f8b0e7e0 remove temporary desktop context menu code from explorer
svn path=/trunk/; revision=14011
2005-03-13 15:30:29 +00:00
Martin Fuchs
0418e694e6 a little context menu code cleanup
svn path=/trunk/; revision=14010
2005-03-13 15:29:53 +00:00
Eric Kohl
28eb04c4db Fix gcc warnings in generated client stub.
svn path=/trunk/; revision=14009
2005-03-13 14:49:59 +00:00
Thomas Bluemel
29bd3ad1f9 revert changes to the config file. I accidently committed it, sorry.
svn path=/trunk/; revision=14008
2005-03-13 14:29:09 +00:00
Thomas Bluemel
d288e05d38 - fixed handle table structures
- implement generic executive handle tables (since there don't exist documents that describe the parameters of most of these functions (which are kernel internal only), i made them up as required)
- adjusted OB's handle manager to use ex handle tables
- adjusted the client id manager to use ex handle tables

svn path=/trunk/; revision=14007
2005-03-13 14:21:47 +00:00
Aleksey Bragin
a3c3364289 Removed excess copy of accidently inserted twice russian language resources.
svn path=/trunk/; revision=14006
2005-03-13 13:59:06 +00:00
Aleksey Bragin
27f383b70d Fixed typos, removed excess copy of accidently inserted twice russian language resources, also fixed "To add new program, click Install" (was cut, so now height increased to 16).
svn path=/trunk/; revision=14005
2005-03-13 13:47:45 +00:00
Magnus Olsen
84a36613f5 getdevicedata
Make the mouse less choopy. 
But it still choopy. It need implement real buffer.
instead it being fild when it is call.

Fix the buffer seq are in right order.


 

svn path=/trunk/; revision=14004
2005-03-13 10:45:23 +00:00
Casper Hornstrup
4c6320805b Make tests build again
svn path=/branches/xmlbuildsystem/; revision=14003
2005-03-13 10:33:15 +00:00
Eric Kohl
53170a9c19 Implement [string] attribute for pointers to char and wchar_t.
svn path=/trunk/; revision=14002
2005-03-13 10:24:34 +00:00
Hartmut Birr
d6c9cf0a41 Use KeGetCurrentPrcb instead of KeGetCurrentKPCR.
svn path=/trunk/; revision=14001
2005-03-13 09:19:33 +00:00
Hartmut Birr
e6bf69e0ae Use only one access to the spinlock in the assertion, because the value may change between two access' on smp machines.
svn path=/trunk/; revision=14000
2005-03-13 09:14:59 +00:00
Hartmut Birr
0d216dc91a Ignore exception 15 in KiTrapHandler.
svn path=/trunk/; revision=13999
2005-03-13 09:10:36 +00:00
Hartmut Birr
0618186aa6 Initialized the key name before each call to ZwCreateKey in IopCreateDeviceKeyPath.
svn path=/trunk/; revision=13998
2005-03-13 09:08:26 +00:00
Hartmut Birr
154d6c64f8 Define IPI_REQUEST_FREEZE.
svn path=/trunk/; revision=13997
2005-03-13 09:06:14 +00:00
Royce Mitchell III
fbff6fe0f0 don't end a string if the last character outputted was an escape, will cause output file to be invalid
svn path=/trunk/; revision=13996
2005-03-13 07:38:40 +00:00
Royce Mitchell III
9a2cf81bc4 don't end a string if the last character outputted was an escape, will cause output file to be invalid
svn path=/branches/xmlbuildsystem/; revision=13995
2005-03-13 07:37:33 +00:00
Royce Mitchell III
4f130648e1 added validation for <directory>'s name attribute
create dk/nkm/lib if it doesn't exist

svn path=/branches/xmlbuildsystem/; revision=13994
2005-03-13 06:31:38 +00:00
Royce Mitchell III
c181edef3c fix some dependencies
get rid of unnecessary phony targets
eliminate unnecessary makefile.auto dependencies
silence gcc when detecting pch

svn path=/branches/xmlbuildsystem/; revision=13993
2005-03-13 05:32:52 +00:00
James Tabor
b2f5efa2cf Fix up opps.
svn path=/trunk/; revision=13992
2005-03-13 04:25:09 +00:00
James Tabor
29f3606a01 Fix up Linux port.
svn path=/trunk/; revision=13991
2005-03-13 04:23:35 +00:00
Royce Mitchell III
cc39e7793a hack fix 'hostzlib' circular dependency, added a couple more stub makefiles, added 'rbuild' phony target
svn path=/branches/xmlbuildsystem/; revision=13990
2005-03-13 03:16:16 +00:00
Steven Edwards
bf89d5df7d added winetest gui program. Does not interact with server yet and requires advapi32 and comctl32 tests to be built.
svn path=/trunk/; revision=13989
2005-03-13 01:54:53 +00:00
Magnus Olsen
0bf2971d1a getmousedevice buffer
UT2004 the mouse are less choopy on my computer now.
and small bug fix. it maby still exists some bug left.

svn path=/trunk/; revision=13988
2005-03-13 01:10:46 +00:00
Magnus Olsen
bc1cb8bf6e Fix the mouse for Unreal tormnet 2004, it is working now
have not test it to 100%. But hoppfull it is last fix, geting games that need dinput working now with opengl.

svn path=/trunk/; revision=13987
2005-03-13 00:13:07 +00:00
Gé van Geldorp
108b495229 Allow inter-thread timer setting but not inter-process
svn path=/trunk/; revision=13986
2005-03-12 22:42:38 +00:00
Thomas Bluemel
2a13486746 Alex Ionescu <ionucu@videotron.ca>
- Remove ke/critical.c and move its functions into ke/apc.c
- Reformat ke/apc.c code which I had written messed up (due to MSVC)
- Add a bit more commenting.

svn path=/trunk/; revision=13985
2005-03-12 22:31:22 +00:00
Thomas Bluemel
322dbd6fba Thomas Weidenmueller <w3seek@reactos.com>
- Fix various security structures and constants
- Add code to capture quality of service structures and ACLs
- Secure buffer access in NtQueryInformationToken, NtSetInformationToken, NtNotifyChangeDirectoryFile and NtQueryDirectoryFile

svn path=/trunk/; revision=13984
2005-03-12 22:16:02 +00:00
Magnus Olsen
6830474b06 Now UT2004 start, but the mouse does not work or ?
Still some problem with the mouse buffer on getdevicedata.But it does not freze any longer.

svn path=/trunk/; revision=13983
2005-03-12 22:10:11 +00:00
Thomas Bluemel
7bc94f8976 Alex Ionescu <ionucu@videotron.ca>
- Remove ke/error.c and add its functions into ke/catch.c where they belong.
- Create ex/error.c and move Executive functions present in ke/error.c to it.
- Implement NtRaiseHardError and move it from ke/error.c to ex/error.c.
- Increase Exceptions Dispatched count in dispatch code and comment code more throughly.

svn path=/trunk/; revision=13982
2005-03-12 21:26:29 +00:00
Thomas Bluemel
566c2840b9 Alex Ionescu <ionucu@videotron.ca>
- Reorganized Bootup code. Most of the Executive initialization is now in ex/init.c
- Remove ExPostSystemEvent.
- Sped up Command-line parasing and wrote a function specificalyl for it, to ease extensibility
- Sped up and optimized loading modules from FreeLoader. The data is only looked up once and then the pointers are cached for easy re-use.
- Moved KeGetRecommendedSharedDataAlignmented to ke/main.c and implemented it.
- Moved subsystem-specific intialization to their own subsystem, like Io in ioinit and Cm in CmInit.

svn path=/trunk/; revision=13981
2005-03-12 21:08:29 +00:00
Klemens Friedl
523d77cc92 resource icon added
svn path=/trunk/; revision=13980
2005-03-12 20:59:36 +00:00
Klemens Friedl
0c969fe931 add icon (flags)
svn path=/trunk/; revision=13979
2005-03-12 20:36:23 +00:00
Magnus Olsen
0aa810f5e1 Small bug fix
do not crash UT2004 any longer, but it freze ut2004 
screen. still some problem with getdevicedata for
the mouse. it is the mouse buffer problem. more
apps will work better now. 

svn path=/trunk/; revision=13978
2005-03-12 20:29:51 +00:00
Thomas Bluemel
7fd17a9a85 Alex Ionescu <ionucu@videotron.ca>
- Clean up IO Completion Code
- Properly delete an IO Completion. The IRPs were not freed, resulting in memory leaks

Thomas Weidenmueller <w3seek@reactos.com>
- Add SEH to IO Completion Code

svn path=/trunk/; revision=13977
2005-03-12 19:58:53 +00:00
Klemens Friedl
b21f552e3b * add combobox (select language/region)
* german & english resource files

svn path=/trunk/; revision=13976
2005-03-12 19:46:27 +00:00
Thomas Bluemel
fd962e2f04 Alex Ionescu <ionucu@videotron.ca>
- Fixed formatting mess in ke/dpc.c (which I had made when I wrote it due to MSVC).
- Add more comments where needed.
- Properly Initialize a Threaded DPC.

Thomas Weidenmueller <w3seek@reactos.com>
- Use Prcb directly in KeInitDpc.

svn path=/trunk/; revision=13975
2005-03-12 19:45:37 +00:00
Thomas Bluemel
b2a42182ef Alex Ionescu <ionucu@videotron.ca>
- Removed ke/alert.c and moved its functions where they belong.
- Commented and organized KeInitializeThread.
- Began switch to true KOBJECT enumeration used in NT.
- Implemented KeAlertResumeThread and NtAlertResumeThread.
- Harmonized Formatting in ke/kthread.c

svn path=/trunk/; revision=13974
2005-03-12 19:23:04 +00:00
Klemens Friedl
a8f6850b9f Add registry keys for language support
svn path=/trunk/; revision=13973
2005-03-12 19:22:30 +00:00
Thomas Bluemel
64c70941d3 Alex Ionescu <ionucu@videotron.ca>
- Remove branch leftover in debug message.
- Uncondtionally enable setting the Window Station Atom Table.

svn path=/trunk/; revision=13972
2005-03-12 18:15:54 +00:00
Thomas Bluemel
052a86b641 Alex Ionescu <ionucu@videotron.ca>
- Clean up formatting of ke/process.c (which I had messed up at the time due to MSVC)
- Acknowledge Blight's work
- Implement KeRemoveServiceDescriptorTable
- Remove ex/napi.c and move the Tables into ke/process.c

svn path=/trunk/; revision=13971
2005-03-12 18:10:03 +00:00
Thomas Bluemel
62fe406292 Alex Ionescu <ionucu@videotron.ca>
Fix wrong assertion.

svn path=/trunk/; revision=13970
2005-03-12 17:02:43 +00:00
Filip Navara
f954a88f34 Alex Ionescu <ionucu@videotron.ca>
Various bugcheck code improvements:
- Fix bugcheck code and make debugging easier for unhandled exceptions/spinlocks.
- Fix a race condition with TAB+B,
- Fix irql to be high_level.
- Fix calling unsafe function by caching bugcode data.
- Fix support for smp by using IPI.
- Fix not-breakpointing when no debugger is there.
- Implement KeBugCheck callbacks with reason.
- Fix callbacks not being called.
- Fix proper breakpoint during bugcheck.
Filip Navara <xnavara@volny.cz>
- Move the bugcheck initialization code into Ke (was in Ex on Alex's branch).

svn path=/trunk/; revision=13969
2005-03-12 16:01:30 +00:00
Filip Navara
5307ffb9c6 Alex Ionescu <ionucu@videotron.ca>
Move win32k callbacks to win32k where they belong. Registration is done with Ps function just like on XP+. Also allows non-win32k stuff to manage their own desktops and window stations.

svn path=/trunk/; revision=13968
2005-03-12 14:15:49 +00:00
Thomas Bluemel
510dc740a5 include ctype.h for isalpha()
svn path=/trunk/; revision=13967
2005-03-12 13:50:48 +00:00
Eric Kohl
8871c0355a Implement [in], [out] and [in, out] support for pointers to basic types.
svn path=/trunk/; revision=13966
2005-03-12 13:23:09 +00:00
Filip Navara
466b206539 Alex Ionescu <ionucu@videotron.ca>
- Add KeGetCurrentPrcb function and use it where appropriate.
- Fix returning of values in ExGetCurrentProcessorCpuUsage and ExGetCurrentProcessorCounts.
- Move ExIsProcessorFeaturePresent from ex/init.c to ex/sysinfo.c.

svn path=/trunk/; revision=13965
2005-03-12 09:40:07 +00:00
Gé van Geldorp
17f773cb7d Fix htons
svn path=/trunk/; revision=13964
2005-03-12 09:21:59 +00:00
Hartmut Birr
653d79d129 Lock the kernel address space instead the process' one, if the pages are located in kernel space.
Unlock the address space on error.


svn path=/trunk/; revision=13963
2005-03-12 09:14:38 +00:00
Filip Navara
57787bb881 Thomas Weidenmueller <w3seek@reactos.com>
- Implement support for vectored exception handlers.
- Add code for querying process cookie.

svn path=/trunk/; revision=13962
2005-03-12 08:54:41 +00:00
Art Yerkes
724d399a3f Some improvements I've been sitting on.
Set SEL_FIN if we need to in TCPReceiveData.
Clear out pending IRP queues properly when shutting down.
Lock the tcp when getting or setting the address.

svn path=/trunk/; revision=13961
2005-03-12 07:52:16 +00:00
Art Yerkes
e58c615243 Changed bare words to strings so we don't get complaints about unterminated
char constants.

svn path=/trunk/; revision=13957
2005-03-12 05:46:45 +00:00
Royce Mitchell III
49594687df more *nix compatibility fixes
svn path=/branches/xmlbuildsystem/; revision=13956
2005-03-12 04:55:41 +00:00
Royce Mitchell III
c5097fd3dc set *nix-compatible paths for tools
svn path=/branches/xmlbuildsystem/; revision=13955
2005-03-12 04:39:20 +00:00
Steven Edwards
3db0384e86 added Wine tests for advapi32. (untested)
svn path=/trunk/; revision=13954
2005-03-12 04:32:00 +00:00
Royce Mitchell III
0e37d806a5 detect windows instead of assuming it
svn path=/trunk/; revision=13953
2005-03-12 04:20:35 +00:00
Royce Mitchell III
af64b1423c put windows-detection code in makefile, don't make proxy.mak silent
svn path=/branches/xmlbuildsystem/; revision=13952
2005-03-12 04:14:09 +00:00
Steven Edwards
3ed09e40d9 Should be winetests not winetest.
svn path=/trunk/; revision=13951
2005-03-12 04:11:24 +00:00
Steven Edwards
e8451b25d5 Added Wine regression tests for comctl32. (Untested)
svn path=/trunk/; revision=13950
2005-03-12 04:09:57 +00:00
Filip Navara
eab893a17c Minor touch ups to the tools version check to get it working on Linux.
svn path=/trunk/; revision=13949
2005-03-12 02:04:08 +00:00
Filip Navara
7c7a235e5f Steven Edwards <steven_ed4153@yahoo.com>
Revert incorrect change - KD_DEBUG_BOOTLOG => KD_DEBUG_FILELOG, /DEBUGPORT=BOOTLOG => /DEBUGPORT=FILE.

svn path=/trunk/; revision=13948
2005-03-12 01:11:06 +00:00
Filip Navara
5bbfa0aa1d Don't use intermediate objects linked with "ld -r". There's a bug in binutils that causes the data section relocations to be stripped.
svn path=/trunk/; revision=13947
2005-03-12 00:54:06 +00:00
Filip Navara
fe2a7b4489 Alex Ionescu <ionucu@videotron.ca>
Add definitions for WORKER_THREAD_RETURNED_AT_BAD_IRQL, MANUALLY_INITIATED_CRASH and IMPERSONATING_WORKER_THREAD bug check codes.

svn path=/trunk/; revision=13946
2005-03-12 00:51:55 +00:00
Filip Navara
94066e01ef Alex Ionescu <ionucu@videotron.ca>
Pass an ACPI flag from FreeLdr to the kernel and replace the usage of ACPI compile time option with it.

svn path=/trunk/; revision=13945
2005-03-12 00:49:18 +00:00
Royce Mitchell III
b62f2bb179 rename more makefiles, preparation for local makefiles to work with xml build system
svn path=/branches/xmlbuildsystem/; revision=13944
2005-03-12 00:23:38 +00:00
Art Yerkes
b89e71762d Changed sizeof(RemoteAddress) to sizeof(*RemoteAddress). Now address
returns work in accept.

svn path=/trunk/; revision=13943
2005-03-12 00:02:24 +00:00
Filip Navara
b6926c02fc Alex Ionescu <ionucu@videotron.ca>
Relocate kernel if the /3GB switch is supplied in kernel parameters.

svn path=/trunk/; revision=13941
2005-03-11 23:38:59 +00:00
Royce Mitchell III
99ba4dfee6 fix case bug with wpp's makefile
svn path=/branches/xmlbuildsystem/; revision=13940
2005-03-11 23:13:03 +00:00
Royce Mitchell III
87cbce76ad remove obsoleted makefiles and config files, tools/Makefile -> tools/tools.mak, fix bugs in buildno's makefile.
svn path=/branches/xmlbuildsystem/; revision=13938
2005-03-11 23:06:43 +00:00
Art Yerkes
6cc6c8571b Swap the port part of the address so it's reported correctly.
svn path=/trunk/; revision=13937
2005-03-11 21:13:11 +00:00
Aleksey Bragin
76c165b428 Andrey Korotaev (unC0Rr): Added russian translations for control, appwiz and timedate.
svn path=/trunk/; revision=13936
2005-03-11 21:07:55 +00:00
Hervé Poussineau
7699eb9d3b Add semi-implementation of AttachDeviceToDeviceStackSafe
svn path=/trunk/; revision=13935
2005-03-11 18:46:44 +00:00
Filip Navara
ec996ca887 tinus <o112w8r02@sneakemail.com>
Add a Initialized member to TEXTOBJ so it isn't reinitialized all the time.

svn path=/trunk/; revision=13934
2005-03-11 18:34:44 +00:00
Filip Navara
c350cae866 tinus <o112w8r02@sneakemail.com>
Don't allocate 0 bytes of memory for no color map.

svn path=/trunk/; revision=13933
2005-03-11 18:17:29 +00:00
Filip Navara
fc556dfcc1 Check BinUtils and GCC version.
svn path=/trunk/; revision=13932
2005-03-11 17:33:12 +00:00
Royce Mitchell III
b832dffe13 beginning of local stub makefiles, to allow building from subdirectories ( I'm explicitly not allowing a full clean from a subdirectory )
svn path=/branches/xmlbuildsystem/; revision=13931
2005-03-11 14:07:48 +00:00
Gé van Geldorp
2c7442af29 Thomas Larsen <sikker2004@yahoo.com>
- Added Danish language

svn path=/trunk/; revision=13930
2005-03-11 08:53:28 +00:00
Gé van Geldorp
00975016b1 Thomas Larsen <sikker2004@yahoo.com>
- Added Danish language
- Corrected English Ressource for missing Title
- Split The Res Files to make room for more translation to other langs

svn path=/trunk/; revision=13929
2005-03-11 08:50:04 +00:00
Gé van Geldorp
d514b0dc03 Thomas Larsen <sikker2004@yahoo.com>
- Added Danish language
- Move icons to language neutral resources

svn path=/trunk/; revision=13928
2005-03-11 08:43:24 +00:00
Gé van Geldorp
70385eb1e6 Thomas Larsen <sikker2004@yahoo.com>
- Added Danish language

svn path=/trunk/; revision=13927
2005-03-11 08:29:40 +00:00
Gé van Geldorp
edc2f49701 Thomas Larsen <sikker2004@yahoo.com>
- Added Danish language

svn path=/trunk/; revision=13926
2005-03-11 08:22:29 +00:00
Royce Mitchell III
022b0bff73 don't assume zlib's include directory will work for hostzlib library
svn path=/branches/xmlbuildsystem/; revision=13925
2005-03-11 07:51:43 +00:00
Royce Mitchell III
96a66ee4c7 host vs target refactoring, <module> has two new attributes 'host' and 'prefix' ( this should fix sedwards' host.zlib.a issue, and also forgot to commit change to buildno's makefile in support of new macros in top-level makefile ( which should fix build bug arty experiencing re buildno.h )
svn path=/branches/xmlbuildsystem/; revision=13924
2005-03-11 07:46:22 +00:00
Royce Mitchell III
4a91158ed5 remove unnessary @true, and create some macros to clean things up
svn path=/branches/xmlbuildsystem/; revision=13923
2005-03-11 07:41:19 +00:00
Art Yerkes
d3c8339fa1 Uniform handling of stream socket reads.
svn path=/trunk/; revision=13922
2005-03-11 07:30:17 +00:00
Royce Mitchell III
34bc0ec777 turn on all warnings, and fix remaining warnings
svn path=/trunk/; revision=13921
2005-03-11 02:38:55 +00:00
Royce Mitchell III
7b9b41e304 fix gcc4 warnings
svn path=/trunk/; revision=13920
2005-03-11 02:37:30 +00:00
Gé van Geldorp
7dbc98c96c Pass NameLength back to caller
svn path=/trunk/; revision=13919
2005-03-10 22:59:28 +00:00
Art Yerkes
f68df768b9 Caps Lock fix suggested by Johannes Olofsson. We now xor the caps lock
attribute bit with the mod bits before turning them into a column 
number.

svn path=/trunk/; revision=13918
2005-03-10 20:54:53 +00:00
Royce Mitchell III
107eec449d more efficient detection of C++ modules, fixed bug in C++ pch support, always clean pch files, even if pch not being used
svn path=/branches/xmlbuildsystem/; revision=13917
2005-03-10 20:34:08 +00:00
Eric Kohl
2517dde027 Implement '-o' option. This is equivalent to MIDLs '/oldnames' option.
svn path=/trunk/; revision=13916
2005-03-10 20:07:17 +00:00
Royce Mitchell III
af9bc63975 simplified verbosity
svn path=/branches/xmlbuildsystem/; revision=13915
2005-03-10 19:56:46 +00:00
Royce Mitchell III
6e18ca3d45 remove incorrect <pch>
svn path=/branches/xmlbuildsystem/; revision=13914
2005-03-10 17:46:44 +00:00
Royce Mitchell III
bc13f5f38b add <pch> to existing xml files that support pch on trunk
svn path=/branches/xmlbuildsystem/; revision=13913
2005-03-10 16:50:29 +00:00
Royce Mitchell III
838a6c6422 accidentally commited testing changes
svn path=/branches/xmlbuildsystem/; revision=13912
2005-03-10 16:43:31 +00:00
Royce Mitchell III
56532e03e1 Makefile.auto -> makefile.auto
svn path=/branches/xmlbuildsystem/; revision=13911
2005-03-10 16:42:28 +00:00
Steven Edwards
33c313a6ff Change tabs to spaces.
svn path=/trunk/; revision=13910
2005-03-10 16:08:08 +00:00
Royce Mitchell III
75224f16af enable PCH support for ntoskrnl
svn path=/branches/xmlbuildsystem/; revision=13909
2005-03-10 14:06:14 +00:00
Royce Mitchell III
54abe91bd0 PCH support
svn path=/branches/xmlbuildsystem/; revision=13908
2005-03-10 14:05:41 +00:00
Royce Mitchell III
60f02a7882 eliminate warnings, fix bug that locked up game when single-clicking a card
svn path=/trunk/; revision=13907
2005-03-10 04:58:40 +00:00
Steven Edwards
26676ade4c remove some backup files created by editplus
svn path=/trunk/; revision=13905
2005-03-10 04:05:53 +00:00
Steven Edwards
e415037205 imported catch-22 sol clone with authors permission
svn path=/trunk/; revision=13904
2005-03-10 04:04:27 +00:00
Steven Edwards
59b8be68dc added winres.h from Wine
svn path=/trunk/; revision=13903
2005-03-10 03:50:43 +00:00
Royce Mitchell III
cadb20c83d don't try to create ROS_INTERMEDIATE directories if ROS_INTERMEDIATE isn't defined
svn path=/branches/xmlbuildsystem/; revision=13902
2005-03-09 23:38:37 +00:00
Royce Mitchell III
11b45e8535 simplified <if> handling ( and fixed several bugs, too )
cleaned up devcpp backend to compile with these changes

svn path=/branches/xmlbuildsystem/; revision=13901
2005-03-09 22:29:18 +00:00
Gunnar Dalsnes
67bd235566 LockFileEx: forward overlapped->hEvent to NtLockFile
LockFile: zero overlapped->hEvent

svn path=/trunk/; revision=13900
2005-03-09 22:20:41 +00:00
Royce Mitchell III
dd650dbfae fixed some dependency issues, verbose support, 'make clean' gets more
svn path=/branches/xmlbuildsystem/; revision=13899
2005-03-09 08:12:30 +00:00
Royce Mitchell III
c2a87f42ad set eolstyle to native
svn path=/branches/xmlbuildsystem/; revision=13898
2005-03-09 08:04:40 +00:00
Filip Navara
8f22c7534c Fix failure case in IoConnectInterrupt. (Now really)
svn path=/trunk/; revision=13895
2005-03-08 23:15:34 +00:00
Filip Navara
b5d60675a0 Fix failure case in IoConnectInterrupt.
svn path=/trunk/; revision=13894
2005-03-08 23:10:38 +00:00
Art Yerkes
b1bfbd3389 Last fix due to w3seek. I will stop working on this stuff until I have
time to be thorough.

svn path=/trunk/; revision=13893
2005-03-08 23:07:10 +00:00
Art Yerkes
53af8e03f3 Fixes by w3seek regarding interlocked functions. These were due to my
missing a mismatch between the glib functions and windows variants.

svn path=/trunk/; revision=13892
2005-03-08 23:01:54 +00:00
Emanuele Aliberti
34d49aaa33 Refresh RC script for PSX bare sh.
svn path=/trunk/; revision=13891
2005-03-08 22:41:27 +00:00
Art Yerkes
72f40b7d14 Added PowerPC interlocked functions from glib.
svn path=/trunk/; revision=13890
2005-03-08 22:39:53 +00:00
Royce Mitchell III
ba7ccda6fb adjust newlines around rsym command
svn path=/branches/xmlbuildsystem/; revision=13889
2005-03-08 21:02:50 +00:00
Royce Mitchell III
d37606edee add newline at EOF to suppress warning
svn path=/branches/xmlbuildsystem/; revision=13888
2005-03-08 20:50:42 +00:00
Steven Edwards
dcdeb7b0c0 another fix
svn path=/branches/xmlbuildsystem/; revision=13887
2005-03-08 20:40:35 +00:00
Gé van Geldorp
1dca540f6b Use GDIINFO values instead of DEVMODE values
svn path=/trunk/; revision=13886
2005-03-08 20:23:40 +00:00
Steven Edwards
d5c61075a9 more lower case changes for Makefile -> makefile
svn path=/branches/xmlbuildsystem/; revision=13885
2005-03-08 20:19:07 +00:00
Steven Edwards
9aff2f9419 lower case please
svn path=/branches/xmlbuildsystem/; revision=13884
2005-03-08 20:12:43 +00:00
Hervé Poussineau
ac74a57d42 Minor changes to remove warnings
"memmory" -> "memory"

svn path=/trunk/; revision=13883
2005-03-08 19:19:45 +00:00
Klemens Friedl
a285c15efb appwiz.cpl:
* add language support
* english and german language files

svn path=/trunk/; revision=13882
2005-03-08 19:03:11 +00:00
Klemens Friedl
7758ecc0bf System Control Panel:
* add language support
* english and german language files

svn path=/trunk/; revision=13881
2005-03-08 19:00:44 +00:00
Klemens Friedl
0b18ff226e Slayer: german language file
svn path=/trunk/; revision=13880
2005-03-08 18:48:01 +00:00
Hervé Poussineau
2ed637d9a6 Remove warning
svn path=/trunk/; revision=13879
2005-03-08 18:25:25 +00:00
Royce Mitchell III
0be0bb57b2 detect PCH support ( not doing anything more than detection yet )
svn path=/branches/xmlbuildsystem/; revision=13878
2005-03-08 17:14:07 +00:00
Aleksey Bragin
1adf22c4f4 27-Feb-2005 (Konstantinos Paliouras <squarious@gmail.com>)
Implemented all the switches that were missing, and made the ros dir very similar to windows dir. Major part of the code is rewritten. /p is removed, to be rewriten in the main cmd code.

svn path=/trunk/; revision=13877
2005-03-08 15:08:01 +00:00
Aleksey Bragin
2a18423084 Added error_parameter_format(), patch by Konstantinos Paliouras <squarious@gmail.com>
svn path=/trunk/; revision=13876
2005-03-08 15:02:41 +00:00
Emanuele Aliberti
3bb8964ec2 Win32 utility to bootstrap the PSX subsystem (it is an optional subsystem, therefore the SM does not bootstrap it on system startup).
svn path=/trunk/; revision=13875
2005-03-08 14:28:04 +00:00
Emanuele Aliberti
e2a3109a00 Fixed a bug in SmConnectApiPort
svn path=/trunk/; revision=13874
2005-03-08 14:26:31 +00:00
Gé van Geldorp
0537266be6 Properly fill DEVMODE
svn path=/trunk/; revision=13873
2005-03-08 11:41:56 +00:00
Casper Hornstrup
79f349c48f Have Makefile.auto depend on xml build files
svn path=/branches/xmlbuildsystem/; revision=13872
2005-03-08 11:15:39 +00:00
Gé van Geldorp
907b461720 Use IC instead of DC when possible
svn path=/trunk/; revision=13871
2005-03-07 22:25:39 +00:00
Gé van Geldorp
49bf05dfb5 Implement Information Contexts
svn path=/trunk/; revision=13870
2005-03-07 22:24:33 +00:00
Casper Hornstrup
025de74d84 Escape "
svn path=/branches/xmlbuildsystem/; revision=13869
2005-03-07 18:31:10 +00:00
Hartmut Birr
8399d9c123 Split some of the halmp files according its functions.
svn path=/trunk/; revision=13868
2005-03-07 16:40:32 +00:00
Art Yerkes
63981fc041 Changed exception format in kernel32 slightly to make the offset of the
addresses apparent.  Made a change suggested by ion, to remove the line
numbers of the lines printing the stack trace.


svn path=/trunk/; revision=13867
2005-03-07 16:37:49 +00:00
Thomas Bluemel
15539c1521 change logfont quality to FreeType mode conversion. Patch by tinus.
svn path=/trunk/; revision=13866
2005-03-07 01:40:01 +00:00
Royce Mitchell III
eaf0e227f2 correct dependency for rline target, this fixes bug #519
svn path=/trunk/; revision=13865
2005-03-07 01:26:25 +00:00
Thomas Bluemel
bdf10ff3ff detect hyper-threading, determine number of logical processors per phyiscal processor and it's apic id
svn path=/trunk/; revision=13864
2005-03-07 00:35:49 +00:00
Gunnar Dalsnes
f05c21fa3a fix nasty bug:-(
svn path=/trunk/; revision=13863
2005-03-07 00:04:21 +00:00
Casper Hornstrup
e9c4096fb7 Use inline message tables
svn path=/branches/xmlbuildsystem/; revision=13862
2005-03-06 22:00:23 +00:00
Casper Hornstrup
57919b0e61 Run rsym on images
svn path=/branches/xmlbuildsystem/; revision=13861
2005-03-06 21:24:06 +00:00
Eric Kohl
d95010663e Remove useless calls to ResetEvent.
svn path=/trunk/; revision=13860
2005-03-06 21:01:04 +00:00
Casper Hornstrup
3ddf79a918 Export symbols in HALs
svn path=/branches/xmlbuildsystem/; revision=13859
2005-03-06 19:49:19 +00:00
Filip Navara
d0c2c28b81 Return AE_NO_ACPI_TABLES instead of AE_OK when the ACPI tables are messed up.
svn path=/trunk/; revision=13857
2005-03-06 18:06:17 +00:00
Filip Navara
dc2b964751 - Fix pipe connection to non-waiting pipes.
- More corrections to the cancellation logic.
- Minor correction to read/write event setting (still I'm getting infinite loops there in some cases).

svn path=/trunk/; revision=13856
2005-03-06 16:42:36 +00:00
Gunnar Dalsnes
91979c15bb add missing newline
svn path=/trunk/; revision=13855
2005-03-06 14:03:37 +00:00
Casper Hornstrup
9fbf269e59 Don't generate intermediate archives
svn path=/branches/xmlbuildsystem/; revision=13854
2005-03-06 13:49:10 +00:00
Gunnar Dalsnes
c02ae1b606 IoCancelIrp didnt remove the cancel routine from the irp after canceling it
svn path=/trunk/; revision=13853
2005-03-06 13:48:04 +00:00
Gunnar Dalsnes
4369eecce7 irp cancelation boiler plate, for irp queues you manage yourself
svn path=/trunk/; revision=13852
2005-03-06 13:41:18 +00:00
Filip Navara
ca4d8c0923 Fix some cancellation race conditions.
svn path=/trunk/; revision=13851
2005-03-06 12:37:31 +00:00
Eric Kohl
fb22000d1c Support pointers to simple types as input arguments.
svn path=/trunk/; revision=13850
2005-03-06 12:36:05 +00:00
Gé van Geldorp
d2e60e66f3 Fix compilation with DBG := 1 and KDBG := 0
svn path=/trunk/; revision=13849
2005-03-06 10:44:38 +00:00
Art Yerkes
8fa490af68 This directory contained both [Mm]akefile, which were identical. Makefile
removed.

svn path=/branches/xmlbuildsystem/; revision=13848
2005-03-06 07:38:54 +00:00
Gregor Anich
530931df11 Rename KDB.init to KDBinit - it was not an ISO9660 conforming name.
svn path=/trunk/; revision=13846
2005-03-06 02:34:18 +00:00
Gregor Anich
3aa3b694b0 Hopefully fix some input problems. If input does not work for you please let me know.
svn path=/trunk/; revision=13845
2005-03-06 02:06:11 +00:00
Gregor Anich
088d3f0612 Fix build with optimizations and one or two bugs - should have tested with optimizations before committing :-/
svn path=/trunk/; revision=13843
2005-03-06 00:20:32 +00:00
Gregor Anich
f3cea5b1a2 Little KDB update ;-) If you have any problems and/or questions let me know. I hope it was tested enough and works well enough for everybody.
svn path=/trunk/; revision=13841
2005-03-05 23:35:08 +00:00
Casper Hornstrup
bb4eed2c43 Put remaining files on the cd
svn path=/branches/xmlbuildsystem/; revision=13840
2005-03-05 23:22:44 +00:00
Casper Hornstrup
e014ae4003 Build HALs
svn path=/branches/xmlbuildsystem/; revision=13838
2005-03-05 22:20:15 +00:00
Casper Hornstrup
1358decfb3 Copy msiexec from trunk
svn path=/branches/xmlbuildsystem/; revision=13837
2005-03-05 22:13:47 +00:00
Casper Hornstrup
1048e15cc5 Delete msiexec
svn path=/branches/xmlbuildsystem/; revision=13836
2005-03-05 22:12:26 +00:00
Martin Fuchs
ef8c905431 - make new icons look a bit smarter and including a 32 bit alpha channel format
- update ROS icon in about dialog and start menu side bar


svn path=/trunk/; revision=13835
2005-03-05 22:10:01 +00:00
Martin Fuchs
fd6d2a5226 update copyright notice
svn path=/trunk/; revision=13834
2005-03-05 21:35:46 +00:00
Casper Hornstrup
efe22d2e07 Merge 13511:13830 from trunk
svn path=/branches/xmlbuildsystem/; revision=13833
2005-03-05 20:50:25 +00:00
Martin Fuchs
c9b6889b66 case insensitive startmenu merging
svn path=/trunk/; revision=13831
2005-03-05 20:44:41 +00:00
Martin Fuchs
7274c581f6 add ibrowser to XML build
svn path=/branches/xmlbuildsystem/; revision=13830
2005-03-05 17:52:12 +00:00
Martin Fuchs
a0acd5386b install ibrowser.exe in system32 dir
svn path=/trunk/; revision=13829
2005-03-05 17:27:21 +00:00
Eric Kohl
8027ba84c5 Support asynchronous (aka overlapped) connect, read and write requests.
svn path=/trunk/; revision=13826
2005-03-05 12:08:50 +00:00
Eric Kohl
888cadd6ea Fix calls to ReadFile and WriteFile for asynchronous I/O.
svn path=/trunk/; revision=13825
2005-03-05 11:38:48 +00:00
Filip Navara
594c2c424b - Implement NtCancelIoFile.
- Queue the IRP to correct thread in IoQueueThreadIrp.
- Cancel I/O requests when thread is about to be terminated.
- Do not queue close requests to thread IRP list.

svn path=/trunk/; revision=13824
2005-03-05 11:27:15 +00:00
Royce Mitchell III
83cac15e73 per-module clean rules, make cabman more *nix/msys friendly
This fix made it so I was able to successfully build a 22.4MB ReactOS.iso from the xmlbuildsystem branch! ( now to test it... )

svn path=/branches/xmlbuildsystem/; revision=13823
2005-03-05 05:13:38 +00:00
James Tabor
3d5ac6b2be Added comments about systemHandleInfo.
svn path=/trunk/; revision=13822
2005-03-05 00:21:38 +00:00
Royce Mitchell III
c4f496eb04 disable warning about missing file ( make handles this situation correctly regardless )
svn path=/branches/xmlbuildsystem/; revision=13820
2005-03-04 19:07:02 +00:00
Royce Mitchell III
d4da224325 let make do some more work for us
svn path=/branches/xmlbuildsystem/; revision=13819
2005-03-04 18:51:17 +00:00
Aleksey Bragin
e2444ad438 New ReactOS icon by Mindflyer. Just give ros a fresh look :)
svn path=/trunk/; revision=13818
2005-03-04 17:26:51 +00:00
Aleksey Bragin
75d5b7d4f9 New StartMenu and ReactOS icons by Mindflyer
svn path=/trunk/; revision=13817
2005-03-04 17:24:08 +00:00
Art Yerkes
f01eb33dad Suggested by d_layer: Remove -Wconversion. I had planted these flags here
because they were used in the original makefile from before the import.
I was trying to remove the warnings in a hurry and didn't think to check.


svn path=/trunk/; revision=13816
2005-03-04 11:40:10 +00:00
Hartmut Birr
025e2010b4 Implemented 48(32)bit lba support.
svn path=/trunk/; revision=13815
2005-03-04 09:43:34 +00:00
Art Yerkes
bb41c20ca7 Recommented vprintf out. Not strictly needed but I should figure out what to
do here eventually.

svn path=/trunk/; revision=13814
2005-03-04 04:57:42 +00:00
Art Yerkes
ac309256c3 Warning cleanups.
- #define log to something else that isn't a gcc intrinsic
- Move some definitions around in the bsd headers so that proper order is
  maintained between selinfo and socket and functions that take these as
  arguments.
- Miscellaneous casts.

svn path=/trunk/; revision=13811
2005-03-04 02:09:43 +00:00
Art Yerkes
8dd6c79a58 Some warning suppression. Read the <rant/>.
svn path=/trunk/; revision=13810
2005-03-04 01:47:01 +00:00
Casper Hornstrup
1ae869295f Copy non-generated files to cd
svn path=/branches/xmlbuildsystem/; revision=13808
2005-03-03 21:26:27 +00:00
Casper Hornstrup
6125e67003 Support for copying non-generated files to cd
svn path=/branches/xmlbuildsystem/; revision=13807
2005-03-03 21:00:30 +00:00
Royce Mitchell III
e3fe1f6006 fix spelling mistakes
svn path=/trunk/; revision=13804
2005-03-03 02:46:43 +00:00
Casper Hornstrup
6af904f645 Copy bootstrap files to cd
svn path=/branches/xmlbuildsystem/; revision=13803
2005-03-02 22:56:41 +00:00
Filip Navara
113ecdfc88 Fix W->A conversions in EnumDisplaySettingsExA. This is dedicated to Caroline!
svn path=/trunk/; revision=13802
2005-03-02 22:29:11 +00:00
Emanuele Aliberti
e5948313f6 Mispelled word and wrong past tense in a comment.
svn path=/trunk/; revision=13801
2005-03-02 22:17:34 +00:00
Emanuele Aliberti
5bef1d9303 Kmode subsystem no more hardwired.
svn path=/trunk/; revision=13800
2005-03-02 22:09:53 +00:00
Casper Hornstrup
7f24916383 Add bootstrap tag to specify that files are to be copied to the CD
svn path=/branches/xmlbuildsystem/; revision=13797
2005-03-02 21:24:02 +00:00
Hartmut Birr
2078ec7054 Fixed smp boot.
svn path=/trunk/; revision=13796
2005-03-02 20:35:18 +00:00
James Tabor
c8e6164e8c Clean up.
svn path=/trunk/; revision=13795
2005-03-02 07:11:26 +00:00
Emanuele Aliberti
6bcdd89778 Fix SM\Subsystems\Required and SM\Subsystems\Optional.
svn path=/trunk/; revision=13792
2005-03-01 22:56:51 +00:00
Gunnar Dalsnes
f1a3bf3cef tcharize a couple of routines
svn path=/trunk/; revision=13791
2005-03-01 22:22:56 +00:00
Gunnar Dalsnes
926067bd87 init. work on a notify-directory impl.
svn path=/trunk/; revision=13790
2005-03-01 22:13:40 +00:00
Gunnar Dalsnes
2093306969 remove local EOF define
svn path=/trunk/; revision=13789
2005-03-01 13:53:32 +00:00
James Tabor
d81708951e Dereference process object.
svn path=/trunk/; revision=13788
2005-03-01 06:34:16 +00:00
James Tabor
95957e5826 Partial implementation of SystemHandleInformation and ObpGetNextHandleByProcessCount (Name will change very soon). Fix GetHandleCountByHandleTable return real number of open handles.
svn path=/trunk/; revision=13787
2005-03-01 02:32:09 +00:00
Emanuele Aliberti
643b34465c Fix FsRtlNotifyInitializeSync signature.
svn path=/trunk/; revision=13785
2005-02-28 21:59:47 +00:00
Gregor Anich
56a2f29715 Patch by tinus: clean up long lines of = outputted by freeldr build.
svn path=/trunk/; revision=13784
2005-02-28 21:10:39 +00:00
Klemens Friedl
fbafe04bf2 fix spelling mistake
svn path=/trunk/; revision=13783
2005-02-28 21:07:30 +00:00
Gunnar Dalsnes
799674bef8 init. work on a notify-directory impl.
svn path=/trunk/; revision=13782
2005-02-28 21:00:59 +00:00
Hartmut Birr
e508120441 Fixed german resource script for desk.cpl.
svn path=/trunk/; revision=13781
2005-02-28 20:43:23 +00:00
Steven Edwards
90ca24a29a and remove regedt32 from the install CD
svn path=/trunk/; revision=13780
2005-02-28 19:46:39 +00:00
Steven Edwards
7faea85017 disable buggy German resource script for desk.cpl. Remove regedt32 as even Microsoft sees having two registry editors is pointless.
svn path=/trunk/; revision=13779
2005-02-28 19:45:54 +00:00
Alex Ionescu
db4c78ea86 Reverting to 13775. Sorry for the mess. This is dedicated to Jane! 19934415.
svn path=/trunk/; revision=13777
2005-02-28 17:40:15 +00:00
Alex Ionescu
ecfad8ec74 Test commit. Not official branch release -- it will follow shortly in 15 minutes. If this ends up in HEAD i will revert immediately (i have svn switched so it shouldn't)
svn path=/trunk/; revision=13776
2005-02-28 16:44:38 +00:00
Thomas Bluemel
24fd581490 German translation fixes by Rouven Wessling
svn path=/trunk/; revision=13775
2005-02-28 14:38:02 +00:00
Art Yerkes
2df169cd4a First shot at some primitives for powerpc. Untested yet.
svn path=/trunk/; revision=13773
2005-02-28 00:26:28 +00:00
Steven Edwards
219b034127 merge in Winehq changes to reduce noise
svn path=/trunk/; revision=13772
2005-02-27 22:55:54 +00:00
Klemens Friedl
8619cecdb3 Add support for explorer to load the desk.cpl when right clicking on background.
svn path=/trunk/; revision=13771
2005-02-27 21:40:32 +00:00
Klemens Friedl
a923f5285c update files (rundll32 moved)
svn path=/trunk/; revision=13770
2005-02-27 21:31:07 +00:00
Klemens Friedl
0de2f0e2ca move rundll32
svn path=/trunk/; revision=13769
2005-02-27 21:22:04 +00:00
James Tabor
ab1066da6a Check for removable media and Partition length is 0, for DiskClassCheckReadWrite.
svn path=/trunk/; revision=13768
2005-02-27 21:17:24 +00:00
Hartmut Birr
2e93c2f4d9 Do only signal the other side of the pipe if the pipe is connected.
svn path=/trunk/; revision=13767
2005-02-27 20:38:36 +00:00
Royce Mitchell III
4674211527 small efficiency fix
svn path=/trunk/; revision=13766
2005-02-27 17:03:00 +00:00
Eric Kohl
ccabddbffd ConnectNamedPipe must return TRUE if lpOverlapped is not NULL and NtFsIoControl returns STATUS_PENDING.
svn path=/trunk/; revision=13765
2005-02-27 15:46:46 +00:00
Filip Navara
2229c3b1f4 Use unadjusted rect (the one calculated before sending WM_SIZING) for sizing calculations while resizing windows.
svn path=/trunk/; revision=13764
2005-02-27 14:55:01 +00:00
Eric Kohl
2f494319c3 - Data is now written to the readers data buffer and the reader reads from his own data buffer. This fixes Filip's wrokaround to enable the reader to read data although the writers side was closed.
- Minor cleanup.

svn path=/trunk/; revision=13763
2005-02-27 12:43:37 +00:00
Emanuele Aliberti
b6701ec6f9 SM some simple work (wip)
svn path=/trunk/; revision=13762
2005-02-26 23:22:48 +00:00
Emanuele Aliberti
0cd607f519 CSR: Wrong event and wrong place for mu.
svn path=/trunk/; revision=13761
2005-02-26 23:21:58 +00:00
Emanuele Aliberti
57b7d1bf18 sm namespace macros
svn path=/trunk/; revision=13760
2005-02-26 23:19:56 +00:00
Emanuele Aliberti
d080afd5a6 DbgPrint calls DbgPrintEx
(which runs the code previously belonging to DbgPrint).

svn path=/trunk/; revision=13759
2005-02-26 23:18:27 +00:00
Casper Hornstrup
633526eb0b Build cdmake
svn path=/branches/xmlbuildsystem/; revision=13758
2005-02-26 20:17:44 +00:00
Casper Hornstrup
6349cfaf50 Set base address of modules
svn path=/branches/xmlbuildsystem/; revision=13757
2005-02-26 19:29:51 +00:00
Casper Hornstrup
4ef89a29c6 Support for non-standard module base addresses
svn path=/branches/xmlbuildsystem/; revision=13755
2005-02-26 17:11:06 +00:00
Eric Kohl
ab419177d6 - Server stubs are void functions.
- Fix a warning in the server stub descriptor.

svn path=/trunk/; revision=13752
2005-02-26 15:54:27 +00:00
Emanuele Aliberti
22e4fff2f1 Multiuser Win32: empty server dll
svn path=/trunk/; revision=13751
2005-02-26 15:17:54 +00:00
Emanuele Aliberti
825a47e3ad CSR pre-init cleanup
svn path=/trunk/; revision=13748
2005-02-26 15:06:19 +00:00
Casper Hornstrup
01e577bd0d Move to media directory
svn path=/trunk/; revision=13747
2005-02-25 21:22:05 +00:00
Royce Mitchell III
3324a119a4 fix NUL, move macros to the bootstrap makefile as necessary
svn path=/branches/xmlbuildsystem/; revision=13746
2005-02-25 21:21:53 +00:00
Klemens Friedl
bc40692e0a Create rosmedia subfolder (artworks, themes, ...)
svn path=/trunk/; revision=13745
2005-02-25 20:53:00 +00:00
Royce Mitchell III
e1134dc2fc silence clean rule
svn path=/branches/xmlbuildsystem/; revision=13744
2005-02-25 20:04:44 +00:00
Royce Mitchell III
0ce702e83f fixed 'make all' and added some missing clean:: rules
svn path=/branches/xmlbuildsystem/; revision=13743
2005-02-25 20:00:27 +00:00
Royce Mitchell III
f650bdd243 generate buildno.h and it's cousins before makefile.auto, so it's sure to exist before processing makefile.auto
svn path=/branches/xmlbuildsystem/; revision=13742
2005-02-25 19:38:11 +00:00
Aleksey Bragin
d531c3bb21 Updated linux wrapper to contain more funcs (to allow UHCI in the future), also wait added into hub thread, so it *should* take much fewer cpu time then it was taking before (though I haven't tested it at all - will do later). Added dependency tracking to makefiles.
svn path=/trunk/; revision=13741
2005-02-25 15:05:51 +00:00
Eric Kohl
83c3f7b4ef - Support multiple interfaces per idl file.
- Support explicit binding handles.

svn path=/trunk/; revision=13740
2005-02-25 12:20:36 +00:00
Art Yerkes
7732bb216d Reads are allowed on connecting sockets. They act like normal reads
with no data available.

svn path=/trunk/; revision=13739
2005-02-25 05:28:54 +00:00
Art Yerkes
333c14350e Set nonblocking on all sockets initially.
Zero flags and other junk in the ea buffer when creating a new socket.
More correct error return function (check both Errno and ReturnedBytes ptrs).

svn path=/trunk/; revision=13738
2005-02-25 05:27:43 +00:00
Art Yerkes
9127a1ca9d Noticed that I had not used the right status for EOF when consolidating
some code.  Added a flag that governs whether we are after or at EOF.

svn path=/trunk/; revision=13737
2005-02-25 03:02:45 +00:00
Emanuele Aliberti
cea1f1e0a6 Added some init code for the embedded DBGSS.
svn path=/trunk/; revision=13736
2005-02-24 22:20:43 +00:00
Hervé Poussineau
0218879b00 Silent debug messages
svn path=/trunk/; revision=13735
2005-02-24 21:28:49 +00:00
Hervé Poussineau
60cb1041df Fix various warnings
svn path=/trunk/; revision=13734
2005-02-24 20:47:07 +00:00
Eric Kohl
a6d6b56960 Support remaining basic types (float, double, small, wchar_t and handle_t).
svn path=/trunk/; revision=13733
2005-02-24 16:48:16 +00:00
Art Yerkes
b0588e3ebf Fixed more socket close problems. You could get through TCPClose, unlock
the socket, have somebody else service and even, and unlink the connection
object at the same time.  Now we hold the TCP lock while removing a connection.

svn path=/trunk/; revision=13732
2005-02-24 08:51:18 +00:00
Emanuele Aliberti
31907da958 Minor changes and documentation.
svn path=/trunk/; revision=13731
2005-02-23 23:37:06 +00:00
Casper Hornstrup
b5c75a66cb Add resources
svn path=/trunk/; revision=13730
2005-02-23 22:03:02 +00:00
Klemens Friedl
d5ec45d101 German language file (minor update)
svn path=/trunk/; revision=13729
2005-02-23 18:45:46 +00:00
Hartmut Birr
3d2a023ce8 Used HasTerminated as bitmap for flags to make difference between calling PsTerminateCurrentThread and delivering an apc which calls PsTerminateCurrentThread.
svn path=/trunk/; revision=13728
2005-02-23 18:43:25 +00:00
Klemens Friedl
6e837055bc German language support added
svn path=/trunk/; revision=13727
2005-02-23 18:40:51 +00:00
Klemens Friedl
429b485443 Change icons: speaker
svn path=/trunk/; revision=13726
2005-02-23 18:36:04 +00:00
Eric Kohl
593c579794 WIDL: Support basic type function arguments.
svn path=/trunk/; revision=13725
2005-02-23 13:15:40 +00:00
Thomas Bluemel
23bfc70050 added msacm32.dll to the bootcd
svn path=/trunk/; revision=13724
2005-02-23 10:37:46 +00:00
Thomas Bluemel
d60f4e5131 added more irql checks
svn path=/trunk/; revision=13723
2005-02-23 09:56:36 +00:00
Gé van Geldorp
1d8b8598af tinus <o112w8r02@sneakemail.com>
Cleanup the timers after sending WM_NCDESTROY

svn path=/trunk/; revision=13722
2005-02-23 08:16:19 +00:00
Gé van Geldorp
53f1824b0e tinus <o112w8r02@sneakemail.com>
Fix the caret timer warnings
Don't kill the timer unless we added it.

svn path=/trunk/; revision=13721
2005-02-23 08:14:48 +00:00
Thomas Bluemel
756ab632ca added more irql checks
svn path=/trunk/; revision=13720
2005-02-22 22:19:14 +00:00
Eric Kohl
2c2b8c9796 Remove accidentially committed changes.
svn path=/trunk/; revision=13719
2005-02-22 22:08:04 +00:00
Thomas Bluemel
310c7ac816 added more irql checks and secured access to buffers in symbolic link code
svn path=/trunk/; revision=13718
2005-02-22 21:09:54 +00:00
Thomas Bluemel
87428f5f55 German translation of winecalc by Rouven Wessling
svn path=/trunk/; revision=13717
2005-02-22 20:08:06 +00:00
Gé van Geldorp
ee72d4c019 Remove bison/flex dependency
svn path=/trunk/; revision=13716
2005-02-22 19:59:12 +00:00
Magnus Olsen
d041e45119 Fix a small bug I did found in no gdi hook code
for SysMouseAImpl_GetDeviceData
no buffer implenet yet

svn path=/trunk/; revision=13715
2005-02-22 19:26:40 +00:00
Thomas Bluemel
f871df2c56 added more irql checks
svn path=/trunk/; revision=13714
2005-02-22 19:25:17 +00:00
Thomas Bluemel
fee36b29eb German translation by Rouven Wessling
svn path=/trunk/; revision=13713
2005-02-22 18:17:16 +00:00
Thomas Bluemel
ea5929db62 1. added irql checks to various rtl and security functions
2. RtlGetVersion needs to be implemented differently in ntoskrnl and ntdll, ntoskrnl's version must not access the PEB (which might not be present) while ntdlls gets most information from the PEB structure
3. can't use spinlocks to serialize access to the security descriptor cache since it calls sd rtl functions which require to run < apc level

svn path=/trunk/; revision=13712
2005-02-22 17:58:19 +00:00
Eric Kohl
2020a93026 - Support implict_handle attribute in IDL files.
- Build mixed-mode stub files.

svn path=/trunk/; revision=13711
2005-02-22 11:46:44 +00:00
Thomas Bluemel
2ef42901b7 remove obsolete check in InterlockedPopEntrySList()
svn path=/trunk/; revision=13710
2005-02-22 09:35:59 +00:00
Thomas Bluemel
d2417ffe5a InterlockedPushEntrySList() and InterlockedPopEntrySList() shouldn't serialize access to the list with semaphores
svn path=/trunk/; revision=13709
2005-02-22 01:07:41 +00:00
Martin Fuchs
7e242c624b move public expat headers into common include folder
svn path=/trunk/; revision=13708
2005-02-21 21:40:31 +00:00
Martin Fuchs
68ab4001fa update Expat and XMLStorage files
svn path=/trunk/; revision=13707
2005-02-21 20:40:30 +00:00
Filip Navara
14db1027b7 Fix build on Linux.
svn path=/trunk/; revision=13706
2005-02-21 20:30:10 +00:00
Gé van Geldorp
9eacf9de6f Fix csrss shutdown/cleanup
svn path=/trunk/; revision=13705
2005-02-21 17:42:23 +00:00
Eric Kohl
065eb0823f Add basic support for creating client and server stub files.
svn path=/trunk/; revision=13704
2005-02-21 12:38:50 +00:00
Thomas Bluemel
b1bfb456c9 synchronized with wine to get tools build again (missing definition of RPC_FC_CVSTRUCT)
svn path=/trunk/; revision=13703
2005-02-21 11:01:32 +00:00
Eric Kohl
d80f7d2798 Build unmodified widl.
svn path=/trunk/; revision=13702
2005-02-21 09:48:09 +00:00
Thomas Bluemel
a7b3295667 implemented CmUnRegisterCallback() and CmUnRegisterCallback()
svn path=/trunk/; revision=13701
2005-02-21 02:41:16 +00:00
Thomas Bluemel
838bea2661 handle the case when ExRundownCompleted() was called before ExReleaseRundownProtectionEx()
svn path=/trunk/; revision=13700
2005-02-21 00:39:59 +00:00
Thomas Bluemel
502d8150de fixed some bugs in ExWaitForRundownProtectionRelease() and ExReleaseRundownProtectionEx()
svn path=/trunk/; revision=13699
2005-02-20 23:56:47 +00:00
Hervé Poussineau
96969f6dc7 Allow HAL choice during first stage setup
svn path=/trunk/; revision=13698
2005-02-20 22:40:30 +00:00
Filip Navara
c0cf3a6c0a I shouldn't commit at night...never!
svn path=/trunk/; revision=13697
2005-02-20 20:46:59 +00:00
Filip Navara
55344520dd Fix a stupid cut & paste error.
svn path=/trunk/; revision=13696
2005-02-20 20:41:11 +00:00
Filip Navara
6c64024a25 Add KeMemoryBarrier.
svn path=/trunk/; revision=13695
2005-02-20 20:35:59 +00:00
Steven Edwards
535d688d66 Added a Open dialog. Right now it still opens new windows
rather than opening documents in a existing ibrowser window.

svn path=/trunk/; revision=13694
2005-02-20 19:51:38 +00:00
Gé van Geldorp
16a80322bb Forgotten file
svn path=/trunk/; revision=13693
2005-02-20 19:07:24 +00:00
Hervé Poussineau
d958d95934 Handle NULL values in IntGdiPolygon and IntRectangle
svn path=/trunk/; revision=13691
2005-02-20 18:01:03 +00:00
Hervé Poussineau
5f5e7e77d2 Handle NULL values in IntRoundRect and NtGdiEllipse
svn path=/trunk/; revision=13690
2005-02-20 17:35:50 +00:00
Emanuele Aliberti
9eb2145d0e SM_ missing updated headers
svn path=/trunk/; revision=13689
2005-02-20 16:46:10 +00:00
Emanuele Aliberti
49c033c5fa FreeType: version information
- original copyright added
- year updated

svn path=/trunk/; revision=13688
2005-02-20 16:37:58 +00:00
Filip Navara
fa7fc028cf Fix the compilation of expat.
svn path=/trunk/; revision=13687
2005-02-20 15:24:06 +00:00
Gé van Geldorp
50c2b29389 Import from Wine
svn path=/trunk/; revision=13686
2005-02-20 15:02:48 +00:00
Gé van Geldorp
6fac7dc1d1 Build unicode and wpp as host_library
svn path=/trunk/; revision=13683
2005-02-20 14:54:18 +00:00
Gé van Geldorp
b9eeb2efc0 Add host_library TARGET_TYPE
svn path=/trunk/; revision=13682
2005-02-20 14:52:47 +00:00
Gé van Geldorp
a3ee39d788 Update status
svn path=/trunk/; revision=13679
2005-02-20 11:33:58 +00:00
Gé van Geldorp
4aa97b408b Wine-20050211 vendor import
svn path=/trunk/; revision=13675
2005-02-20 11:11:20 +00:00
Gé van Geldorp
5b3bf12e75 Prepare for vendor import
svn path=/trunk/; revision=13673
2005-02-20 11:07:59 +00:00
Gé van Geldorp
d32375b57f Sync to Wine-20050211
Eric Pouech <pouech-eric@wanadoo.fr>
- rewrite MCI interfaces as Unicode interface (as it should be)
- made some winmm APIs rely on the Unicode version for the core
  implementation (instead of Ansi flavor)
Klemens Friedl <klemens_friedl@gmx.net>
Henning Gerhardt <henning.gerhardt@web.de>
- Spelling fixes.

svn path=/trunk/; revision=13671
2005-02-20 11:03:14 +00:00
Gé van Geldorp
4d728cef69 Need to W->A convert the ReactOS version string too
svn path=/trunk/; revision=13670
2005-02-20 10:48:44 +00:00
Martin Fuchs
73da0f2435 handle new expat 1.95.8 error codes
svn path=/trunk/; revision=13669
2005-02-20 10:43:00 +00:00
Martin Fuchs
f0fa701704 fix XBEL write routine
svn path=/trunk/; revision=13668
2005-02-20 10:36:35 +00:00
Martin Fuchs
c011b2f3f4 update Expat and XMLStorage files
svn path=/trunk/; revision=13667
2005-02-20 10:21:20 +00:00
Thomas Bluemel
c7a7f1b757 append the reactos string after a null-character
svn path=/trunk/; revision=13666
2005-02-20 10:21:19 +00:00
Martin Fuchs
5d24e9057f rm expat.h
svn path=/trunk/; revision=13665
2005-02-20 10:20:15 +00:00
Martin Fuchs
93fb87de71 update to Expat 2.0 pre-release
svn path=/trunk/; revision=13664
2005-02-20 10:12:49 +00:00
Mike Nordell
bd53a68ef3 Make sure to actually include symbols that are needed! Thanks to Usurp.
svn path=/trunk/; revision=13663
2005-02-20 02:32:23 +00:00
Mike Nordell
5585cc057b Used, but never set include-guard macro fixed. Thanks to Usurp.
svn path=/trunk/; revision=13662
2005-02-20 02:30:28 +00:00
Art Yerkes
a9f369b8ed Finish zeroing fields that need it.
svn path=/trunk/; revision=13661
2005-02-19 23:24:38 +00:00
Aleksey Bragin
1053eac705 Make OHCI+Core drivers really working, they are basically working now. Next thing to do is to make them working better (e.g. having a thread infinitely looping to serve irqs/other stuff isn't a good solution for multitasking OS) - add interrupt handler, spinlocks wrappers, waits etc.
svn path=/trunk/; revision=13660
2005-02-19 23:12:32 +00:00
Emanuele Aliberti
bc1516fae9 CSRSS: silenced debug messages.
svn path=/trunk/; revision=13658
2005-02-19 23:07:22 +00:00
Aleksey Bragin
e677819f8c Remove cromwell from default build for now (it can significantly slow down work without any usb devices really working)
svn path=/trunk/; revision=13657
2005-02-19 23:06:59 +00:00
Gé van Geldorp
5de6577d1f Don't use svn command line tool to get revision number
XML code stolen from the xmlbuildsystem branch, we need
to merge this when merging the xmlbuildsystem back into trunk

svn path=/trunk/; revision=13656
2005-02-19 23:05:09 +00:00
Emanuele Aliberti
915fb7c58c SM: added keys for env subsystem startup (not yet used)
svn path=/trunk/; revision=13655
2005-02-19 22:59:17 +00:00
Emanuele Aliberti
5ea38c2861 SM: subsystem registration (partial)
- merged duplicate code in process creation
- experimental implementation of env subsystem registration

svn path=/trunk/; revision=13654
2005-02-19 22:58:18 +00:00
Emanuele Aliberti
1c2c6c8582 CSRSS: register CSRSS to manage IMAGE_SUBSYSTEM_WINDOWS_CUI (experimental).
svn path=/trunk/; revision=13653
2005-02-19 22:56:59 +00:00
Gé van Geldorp
b36baad125 Import Wine Resource Compiler and use it for winedll's
svn path=/trunk/; revision=13652
2005-02-19 22:30:27 +00:00
Art Yerkes
67f6f9d307 Zero queue fields needed for accept.
svn path=/trunk/; revision=13651
2005-02-19 22:22:45 +00:00
Thomas Bluemel
dfc35c22f3 silence debug message
svn path=/trunk/; revision=13645
2005-02-19 18:12:44 +00:00
Gregor Anich
de7052f5bf One could have the impression that I am bored ;-)
svn path=/trunk/; revision=13644
2005-02-19 16:36:51 +00:00
Thomas Bluemel
879f12f1f8 revert my changes to RtlTryEnterCriticalSection()
svn path=/trunk/; revision=13643
2005-02-19 14:30:32 +00:00
Thomas Bluemel
f66a4cec4d don't increment the lock count twice in RtlTryEnterCriticalSection() and added some more comments
svn path=/trunk/; revision=13642
2005-02-19 13:44:56 +00:00
Thomas Bluemel
c6a8c7496f fixed RtlEnterCriticalSection not to fail on wrong assumptions and added comment on why the debug message "Critical section not initialized (guess)" is wrong
svn path=/trunk/; revision=13641
2005-02-19 13:13:17 +00:00
Thomas Bluemel
99f3640c17 don't pass NULL handles to NtGdiCombineRgn
svn path=/trunk/; revision=13640
2005-02-19 11:13:41 +00:00
Thomas Bluemel
5239de8ad5 1. made the PEB structure match xp's layout
2. fixed GetVersionEx()

svn path=/trunk/; revision=13639
2005-02-19 03:38:43 +00:00
Gé van Geldorp
c8ad5d3ade Include svn revision in build string
svn path=/trunk/; revision=13638
2005-02-18 22:46:49 +00:00
Filip Navara
f4c555b1ee Remove expat.dll from the list.
svn path=/trunk/; revision=13637
2005-02-18 21:20:01 +00:00
Gregor Anich
9097259b0e Add shutdown message.
svn path=/trunk/; revision=13636
2005-02-18 20:52:24 +00:00
Gé van Geldorp
c53bc44bae Protect against bogus string offsets
svn path=/trunk/; revision=13635
2005-02-18 20:19:49 +00:00
Gregor Anich
41475e9941 Fix KeUnstackDetachProcess.
svn path=/trunk/; revision=13634
2005-02-18 18:28:49 +00:00
Filip Navara
299de40214 Fix the detection of /3GB switch.
svn path=/trunk/; revision=13633
2005-02-18 17:15:01 +00:00
Thomas Bluemel
d10dba35e6 don't call win32k for GetObjectType() and query the information directly from the shared handle table
svn path=/trunk/; revision=13632
2005-02-18 15:13:02 +00:00
Gunnar Dalsnes
2daefe4dcd workaround for buggy mingw include search order on linux (gvg)
svn path=/trunk/; revision=13631
2005-02-18 13:53:21 +00:00
Thomas Bluemel
ed7f80714a minor fix
svn path=/trunk/; revision=13630
2005-02-18 13:07:27 +00:00
Thomas Bluemel
5b3d4bc5b1 only dump stack traces when GDI_DEBUG is enabled
svn path=/trunk/; revision=13629
2005-02-18 12:59:30 +00:00
Thomas Bluemel
d786cecb72 implemented reuse counters for gdi objects
svn path=/trunk/; revision=13628
2005-02-18 12:54:17 +00:00
Gé van Geldorp
738f6ff916 We don't have separate .sym files anymore
svn path=/trunk/; revision=13627
2005-02-18 09:17:56 +00:00
Gunnar Dalsnes
a3b58dfa4c remove duplicate typedef
svn path=/trunk/; revision=13626
2005-02-18 02:41:49 +00:00
Gunnar Dalsnes
d9c59d586a remove duplicate typedef
svn path=/trunk/; revision=13625
2005-02-18 02:28:16 +00:00
Thomas Bluemel
18a7ecc14b 1. implemented shared sections used for (shared) desktop heaps
2. map the gdi handle table to userland

svn path=/trunk/; revision=13624
2005-02-18 01:57:32 +00:00
Thomas Bluemel
6d97eb3b0f 1. object type names are stored in ntoskrnl's image (which is nonpaged memory), so there's no need to allocate and copy them to new memory
2. fixed PsLookupThreadByThreadId() prototype
3. renamed the process list to PsActiveProcessHead and use fast mutexes to serialize access to it

svn path=/trunk/; revision=13623
2005-02-17 16:41:28 +00:00
Thomas Bluemel
e376d4e01d declare NtTerminateThread()
svn path=/trunk/; revision=13622
2005-02-17 15:11:36 +00:00
Thomas Bluemel
d86b66f04d fixed includes
svn path=/trunk/; revision=13621
2005-02-17 15:10:55 +00:00
Gunnar Dalsnes
5e471fb25d add missing include
svn path=/trunk/; revision=13620
2005-02-17 14:35:47 +00:00
Gunnar Dalsnes
ffb21066c5 _T should not be defined here
svn path=/trunk/; revision=13619
2005-02-17 14:06:19 +00:00
Eric Kohl
8764a46ff1 Build lsass.exe.
svn path=/trunk/; revision=13618
2005-02-17 12:46:56 +00:00
Eric Kohl
1f5552d521 - Make lsass.exe a win32 application.
- Load and initialize lsasrv.dll.

svn path=/trunk/; revision=13617
2005-02-17 12:45:13 +00:00
Gunnar Dalsnes
598769de43 forgot to change those two...
svn path=/trunk/; revision=13616
2005-02-17 12:18:10 +00:00
Gunnar Dalsnes
f7a525a34b add workarounds for mingw runtime version differences
gave directory routines a good cleanup (based on wine)
more tcharizing of routines

svn path=/trunk/; revision=13615
2005-02-17 11:38:16 +00:00
Gunnar Dalsnes
2374843a9d fix typo
svn path=/trunk/; revision=13614
2005-02-17 10:44:57 +00:00
Gunnar Dalsnes
f0d29764b0 remove more cruft
svn path=/trunk/; revision=13613
2005-02-17 00:01:54 +00:00
Casper Hornstrup
a1c0271111 Interpret numeric values as being hexadecimal values if they contain hex digits a-f
svn path=/trunk/; revision=13612
2005-02-16 23:17:17 +00:00
Gunnar Dalsnes
8bab7189cb hack into private crt headers
svn path=/trunk/; revision=13611
2005-02-16 23:08:04 +00:00
Casper Hornstrup
d57dd016c4 Support private messages
svn path=/trunk/; revision=13610
2005-02-16 22:38:49 +00:00
Gunnar Dalsnes
bdce06f005 ntdll:
-critical.c: catch (more) invalid use
-impl. sscanf (stolen from wine)
crt:
-use native mingw headers and not private copies of them
-converted some routines to using tchar == impl. many missing unicode routines
-impl. sscanf and friends correctly (stolen from wine)
tchar.h:
-added lotsa missin stuff

svn path=/trunk/; revision=13609
2005-02-16 22:30:50 +00:00
Gunnar Dalsnes
55fb40a502 ntdll:
-critical.c: catch (more) invalid use
-impl. sscanf (stolen from wine)
crt:
-use native mingw headers and not private copies of them
-converted some routines to using tchar == impl. many missing unicode routines
-impl. sscanf and friends correctly (stolen from wine)
tchar.h:
-added lotsa missin stuff

svn path=/trunk/; revision=13608
2005-02-16 22:29:48 +00:00
Gunnar Dalsnes
0645d3e055 ntdll:
-critical.c: catch (more) invalid use
-impl. sscanf (stolen from wine)
crt:
-use native mingw headers and not private copies of them
-converted some routines to using tchar == impl. many missing unicode routines
-impl. sscanf and friends correctly (stolen from wine)
tchar.h:
-added lotsa missin stuff

svn path=/trunk/; revision=13607
2005-02-16 22:29:16 +00:00
Gunnar Dalsnes
66c87c2788 crt:
-use native mingw headers and not private copies of them
tchar.h:
-added lotsa missin stuff

svn path=/trunk/; revision=13606
2005-02-16 22:22:42 +00:00
Eric Kohl
159e5dbdb6 Add lsasrv.dll stub.
svn path=/trunk/; revision=13605
2005-02-16 21:59:00 +00:00
Casper Hornstrup
70350430a5 Support multiple channels
svn path=/trunk/; revision=13604
2005-02-16 21:07:55 +00:00
Filip Navara
6536947239 Cast pointers to ULONG_PTR instead of ULONG.
svn path=/trunk/; revision=13603
2005-02-16 18:21:21 +00:00
Filip Navara
bc6becf4da Fix email address.
svn path=/trunk/; revision=13602
2005-02-16 18:19:54 +00:00
Filip Navara
e757e556cf Fix a typo.
svn path=/trunk/; revision=13601
2005-02-16 18:12:15 +00:00
Filip Navara
85d110c02b Fix definition of MIDL_SERVER_INFO structure.
svn path=/trunk/; revision=13600
2005-02-16 18:10:12 +00:00
Filip Navara
95a579734f Minor formatting change.
svn path=/trunk/; revision=13599
2005-02-16 18:02:50 +00:00
Art Yerkes
ed90f1d041 Fix compilation with -O3 and fix bugs 484 and 505. win32k patches by Tinus.
svn path=/trunk/; revision=13598
2005-02-16 16:52:51 +00:00
Thomas Bluemel
ca22e241e0 get rid of libunicode
svn path=/trunk/; revision=13597
2005-02-16 16:45:51 +00:00
Thomas Bluemel
3f7501d7c3 Forward to user32 when appropriate in shlwapi and removed dependencies to libunicode
svn path=/trunk/; revision=13596
2005-02-16 16:44:54 +00:00
Eric Kohl
dd88251afc - Implement CaptureStringArg and CaptureAndConvertAnsiArg.
- FileExists: Restore error mode.
- Move configuration manager functions to a separate file.
- Add cfgmgr32.h.

svn path=/trunk/; revision=13595
2005-02-16 15:44:34 +00:00
Filip Navara
4b76287e18 File system drivers should forward the IRP_MJ_SHUTDOWN request to underlying storage drivers. Fixes bug #504.
svn path=/trunk/; revision=13594
2005-02-16 15:27:30 +00:00
Thomas Bluemel
7e682fbbd0 converted libexpat to a static library
svn path=/trunk/; revision=13593
2005-02-16 14:01:34 +00:00
Steven Edwards
e651dfa82d Add EOL to make gcc shutup.
svn path=/trunk/; revision=13592
2005-02-16 03:17:36 +00:00
James Tabor
65ebf7f999 Update and sync Msiexec with Wine Cvs.
svn path=/trunk/; revision=13591
2005-02-16 00:24:12 +00:00
Casper Hornstrup
170bf2d5d5 Merge 13159:13510 from trunk
svn path=/branches/xmlbuildsystem/; revision=13590
2005-02-15 21:24:19 +00:00
Casper Hornstrup
92afa4fc63 Copy msimg32
svn path=/branches/xmlbuildsystem/; revision=13589
2005-02-15 20:55:59 +00:00
Casper Hornstrup
2b09e16837 Remove msimg32
svn path=/branches/xmlbuildsystem/; revision=13588
2005-02-15 20:49:41 +00:00
Filip Navara
b670149976 Fix inline assembler register specification (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10153).
svn path=/trunk/; revision=13587
2005-02-15 19:43:17 +00:00
Gé van Geldorp
1217e4a19d Use bitwise operators for ROUND_UP/DOWN and rename them
to ROUND_UP_POW2/ROUND_DOWN_POW2

svn path=/trunk/; revision=13585
2005-02-15 19:26:13 +00:00
Gé van Geldorp
14f94bc26a Fix ROUND_UP when N is a multiple of S. Proposed by unC0Rr.
svn path=/trunk/; revision=13584
2005-02-15 17:25:01 +00:00
Thomas Bluemel
382d68525a secured buffer access in NtCreateSection(), NtOpenSection(), NtMapViewOfSection(), NtQuerySection() and NtExtendSection()
svn path=/trunk/; revision=13583
2005-02-15 15:46:22 +00:00
Thomas Bluemel
a2e0ee8993 don't leak the captured file name in NtCreatePagingFile() when probing the other parameters failed
svn path=/trunk/; revision=13582
2005-02-15 14:37:53 +00:00
Thomas Bluemel
4f0495a525 distinguish kmode and umode alertability
svn path=/trunk/; revision=13581
2005-02-15 13:40:10 +00:00
Thomas Bluemel
b24437e1ae NtQueueApcThread always inserts a umode apc
svn path=/trunk/; revision=13580
2005-02-15 11:46:31 +00:00
Thomas Bluemel
f4c9f96205 secured access to buffers in NtWaitForSingleObject(), NtWaitForMultipleObjects() and NtSignalAndWaitForSingleObject()
svn path=/trunk/; revision=13579
2005-02-14 22:50:15 +00:00
Thomas Bluemel
eafae64526 fixed the NtRaiseHardError() prototype
svn path=/trunk/; revision=13578
2005-02-14 21:41:49 +00:00
Mike Nordell
03b34e7857 Fix broken DEVICE_NO_FLUSH handling for ATAPI devices, with augmentation to check the SupportedFeatures83 of the device. Thanks to tinus_ for finding and fixing.
svn path=/trunk/; revision=13577
2005-02-14 21:07:25 +00:00
Thomas Bluemel
f0222daf5d 1. a few previous mode fixes
2. implemented NtSetDefaultHardErrorPort() with help of pseudo code from windowsitlibrary.com

svn path=/trunk/; revision=13576
2005-02-14 21:00:05 +00:00
Gé van Geldorp
36e7b406b5 Sync to Wine-20050211
svn path=/trunk/; revision=13573
2005-02-14 18:39:15 +00:00
Gé van Geldorp
eb51ddf583 Delete old version in preparation of vendor drop
svn path=/trunk/; revision=13572
2005-02-14 18:36:46 +00:00
Eric Kohl
861abd2956 Export splay-tree and generic table functions.
svn path=/trunk/; revision=13569
2005-02-14 17:10:20 +00:00
Thomas Bluemel
2e2b7b4073 don't walk all the timers as they're sorted.
svn path=/trunk/; revision=13568
2005-02-14 17:03:16 +00:00
Thomas Bluemel
f9f5d87742 fixed typo and don't use memcpy to just copy a 32bit variable...
svn path=/trunk/; revision=13567
2005-02-14 16:49:36 +00:00
Thomas Bluemel
04380923bf don't remove the timer from the list before walking to the next timer. also handle over-due timers in KeSetTimerEx(). This should make the system bootable again.
svn path=/trunk/; revision=13566
2005-02-14 16:41:53 +00:00
Gé van Geldorp
40623e356a Sync to Wine-20050211
Oleh R. Nykyforchyn <nick@pu.if.ua>
- Ukrainian codepage 21866 added and respective files corrected. Two
  keyboard layouts (for Ukrainian and Russian) added.

svn path=/trunk/; revision=13562
2005-02-14 15:55:32 +00:00
Gé van Geldorp
e2e83d6591 Sync to Wine-20050211
James Hawkins <truiken@gmail.com>
- Properly implement DllCanUnloadNow ref counting.
- Use only stored result of Interlocked* in AddRef/Release.
- Expand TRACEs to display the ref count.

svn path=/trunk/; revision=13561
2005-02-14 15:04:09 +00:00
Gé van Geldorp
05ba38b081 Sync to Wine-20050211
James Hawkins <truiken@gmail.com>
- use only stored result of Interlocked* in AddRef/Release
- expand TRACEs to display the ref count
Hans Leidekker <hans@it.vu.nl>
- Stub implementations for PathUnExpandEnvStringsSHRegEnumUSValue{A,W},
  SHRegCreateUSKey{A,W}, SHRegDeleteEmptyUSKey{A,W},
  SHRegDeleteUSValue{A,W}, SHRegEnumUSValue{A,W}.
- Implement and test PathIsValidChar{A,W}.
Paul Vriens <Paul.Vriens@xs4all.nl>
- Change the order of Src and Dst in CopyKey calls/functions.

svn path=/trunk/; revision=13560
2005-02-14 14:55:38 +00:00
Gé van Geldorp
54eed4d708 Sync to Wine-20050211
James Hawkins <truiken@gmail.com>
- use only stored result of Interlocked* in AddRef/Release
- expand TRACEs to display the ref count
Hans Leidekker <hans@it.vu.nl>
- Stub implementations for PathUnExpandEnvStringsSHRegEnumUSValue{A,W},
  SHRegCreateUSKey{A,W}, SHRegDeleteEmptyUSKey{A,W},
  SHRegDeleteUSValue{A,W}, SHRegEnumUSValue{A,W}.
- Implement and test PathIsValidChar{A,W}.
Paul Vriens <Paul.Vriens@xs4all.nl>
- Change the order of Src and Dst in CopyKey calls/functions.

svn path=/trunk/; revision=13559
2005-02-14 14:50:45 +00:00
Eric Kohl
dfa5c9434a - Implement RtlSetAttributesSecurityDescriptor, RtlInitializeGenericTableAvl, RtlNumberGenericTableElements and RtlNumberGenericTableElementsAvl.
svn path=/trunk/; revision=13558
2005-02-14 14:36:03 +00:00
Thomas Bluemel
3922c4030b fixed some warnings
svn path=/trunk/; revision=13557
2005-02-14 11:57:51 +00:00
Thomas Bluemel
31a913fde7 don't leak a reference to the timer object when copying to the buffer failed in NtQueryTimer() and don't use uninitialized variable in NtSetTimer()
svn path=/trunk/; revision=13556
2005-02-14 11:46:17 +00:00
Gé van Geldorp
be2fa40d3e netzimme@netscape.net
Make RTL8029 work with NE2000 driver

svn path=/trunk/; revision=13555
2005-02-14 07:46:14 +00:00
Alex Ionescu
3f700c132c Reimplemented Kernel and Executive Timers. Use Microsoft documented structures, added locks to protect against race conditions, use dispatcher database, implement new features like wake timers, use thread timer lists, simplify timer list, add more comments and debug info, actually add apc/dpc functions which do what the should do, fix a couple of bugs, simplfiy absolute vs relative timers. I will do more testing and see wether an experimental Timer Tree patch (which greatly speeds up timer processing) is necessary.
svn path=/trunk/; revision=13554
2005-02-14 05:36:04 +00:00
Thomas Bluemel
44b4c1125e probe pointers in NtCreateToken. Still needs some work as access to the buffers needs to be secured
svn path=/trunk/; revision=13553
2005-02-14 00:32:09 +00:00
Thomas Bluemel
caea1ad51f secure access to buffers in NtAllocateLocallyUniqueId
svn path=/trunk/; revision=13552
2005-02-14 00:28:12 +00:00
Gé van Geldorp
9a76ee5861 Sync to Wine-20050211
James Hawkins <truiken@gmail.com>
- Properly implement DllCanUnloadNow ref counting. Make sure the mozilla
  control is ready to unload as well.
- Use Interlocked* instead of ++/-- in AddRef/Release.
- Use only stored result of Interlocked* in AddRef/Release.
- Expand TRACEs to display the ref count.
Mike McCormack <mike@codeweavers.com>
- Stub definition for OpenUrl.

svn path=/trunk/; revision=13551
2005-02-13 23:10:36 +00:00
Emanuele Aliberti
ca70c99dad Resource script uses the new generic rc script.
svn path=/trunk/; revision=13550
2005-02-13 23:03:17 +00:00
Thomas Bluemel
9ad7ca2ec1 don't return value of uninitialized variable
svn path=/trunk/; revision=13549
2005-02-13 23:01:33 +00:00
Thomas Bluemel
013461bd7d don't return value of uninitialized variable
svn path=/trunk/; revision=13548
2005-02-13 22:56:12 +00:00
Emanuele Aliberti
f4bc26733a SM - some more work
svn path=/trunk/; revision=13547
2005-02-13 22:55:28 +00:00
Gé van Geldorp
f890195506 Sync to Wine-20050211
James Hawkins <truiken@gmail.com>
- Use Interlocked* instead of ++/-- in AddRef/Release.
- Use only stored result of Interlocked* in AddRef/Release.
- Expand TRACEs to display the ref count.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Mike McCormack <mike@codeweavers.com>
- Implement GetAdvise and SetAdvise.
Henning Gerhardt <henning.gerhardt@web.de>
- A small spelling fix and a small update (thank to Andreas Mohr).
- Update German resources.
Joris Huizer <jorishuizer@planet.nl>
- add file_operation_delete
- add file_operation_checkFlags
- use these in SHFileOperationW replacing inline code

svn path=/trunk/; revision=13544
2005-02-13 22:42:47 +00:00
Thomas Bluemel
52cb066916 fixed wrong buffer check in NtDuplicateToken and added buffer checks in NtOpenThreadTokenEx
svn path=/trunk/; revision=13541
2005-02-13 22:00:36 +00:00
Hartmut Birr
e63c27b419 - Silence a debug message.
svn path=/trunk/; revision=13540
2005-02-13 21:32:50 +00:00
Emanuele Aliberti
ca17def287 LPC message type LPC_CONNECTION_REFUSED does not exist in NT.
svn path=/trunk/; revision=13539
2005-02-13 21:32:41 +00:00
Emanuele Aliberti
3565708b26 NtAcceptConnectPort signature fixed.
svn path=/trunk/; revision=13538
2005-02-13 21:31:34 +00:00
Emanuele Aliberti
f2b1a2e2a0 Fix OriginalCopyright.
svn path=/trunk/; revision=13537
2005-02-13 21:18:37 +00:00
Emanuele Aliberti
69e17b8f04 OriginalCopyright added.
svn path=/trunk/; revision=13536
2005-02-13 21:17:34 +00:00
Emanuele Aliberti
62ed018810 Resource script added.
svn path=/trunk/; revision=13535
2005-02-13 21:16:59 +00:00
Gé van Geldorp
e655d1606e Sync to Wine-20050211
Jonathan Ernst <Jonathan@ErnstFamily.ch>
- Updated French resources.

svn path=/trunk/; revision=13534
2005-02-13 21:06:18 +00:00
Gé van Geldorp
5faf6ad9c1 Sync to Wine-20050211
James Hawkins <truiken@gmail.com>
- Use Interlocked* instead of ++/-- in AddRef/Release.
- Use only stored result of Interlocked* in AddRef/Release.
- Expand TRACEs to display the ref count.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Initialize temporary variants before calling VariantChangeTypeEx.
- When parsing an hex/oct integer value, copy value verbatim in VARIANT,
  rather than a negated value. Add test case for this behavior.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Remove message telling users to copy native stdole32.tlb over as we
  now provide it.
- Better trace in LoadTypeLib.
- Change debug messages type to reflect we provide stdole32.tlb.
Robert Shearman <rob@codeweavers.com>
- Move OLE automation interface registration to oleaut32.
- Add IRemUnknown to list of interfaces to register.
Mike Hearn <mh@codeweavers.com>
- Change some FIXMEs to ERRs to reflect the fact that nothing needs
  fixing.
- Fix some memory leaks on error paths in _marshal_interface.
- Fix a typo, propagate errors better from inside the typelib
  marshaller.
- Return OLE automation build value as win2k by default.
Rein Klazes <wijn@wanadoo.nl>
- SafeArrayDestroy() returns success when called with a NULL
  pointer. Added to the test cases.
Paul Vriens <Paul.Vriens@xs4all.nl>
- Add WinXP to OaBuildVersion.

svn path=/trunk/; revision=13533
2005-02-13 21:03:37 +00:00
Gé van Geldorp
f4477fcb16 Sync to Wine-20050211
Robert Shearman <rob@codeweavers.com>
- Add documentation for most Co* functions.
- Move several functions into different files to group them with
  similar functions.
- Implement CoDisconnectObject.
- Change CoLockObjectExternal so that it does the correct action now
  and eliminate a fair few lines of now redundant code.
- Rename OLE32_Dll{Register,Unregister}Server to
  Dll{Register,Unregister}Server.
- Move OLE automation interface registration to oleaut32.
- Add IRemUnknown to list of interfaces to register.
- Make proxy manager use IMultiQI instead of IInternalUnknown as tests
  show that IInternalUnknown isn't exposed.
- Implement IMultiQI on top of IRemUnknown calls.
- Silence some fixmes that occur during tests and don't give us any
  useful information.
- Fix typo in class factory proxy that caused us to use the wrong
  offset into the CFProxy structure, causing us to not call the
  outer_unknown properly.
- Use InterlockedIncrement for the ipid counter instead of a critical
  section (suggested by Mike Hearn).
- Remove a line added by a bad merge.
- Implement RemUnkStub_Disconnect.
- Remove all of the RPC disconnect code.
- Implement IRemUnknown.
- Use IRemUnknown for life-cycle management instead of the current
  hacks.
- Generate machine-local IPIDs.
- Make pipes be uniquely identified only by their IPID.
- Implement table marshaling.
- The apartment reference should be held while the stub manager
  reference is held.
- Fix same apartment-unmarshal detection.
- Proxies/stubs for IRemUnknown methods, based on code written by Ove
  Ksven.
- Initialize ppv pointer in ClientIdentity_QueryInterface to NULL as
  apps depend on this.
- Don't release IRpcProxyBuffer on ifproxy destruction - the caller
  will do this for us.
- Make find_proxy_manager add a reference to the proxy manager and
  make proxy_manager_construct return an object with a valid
  ref-count.
- Remove stray not operator to fix a memory leak / crash in
  proxy_manager_destroy.
- More debug messages, especially on errors.
- Fix ref-count leak in the Class Factory proxy.
- Add a test case for IClassFactory_CreateInstance.
- Split up apartment creation so that the long code paths that don't
  need locking no longer have locking.
- Add special cases for the threads that join apartments but can't
  increase the refcount of the apartment.
- Free TLS storage on thread destruction (including releasing the
  apartment the thread is in, if any, and so making another test
  pass).
- More tests.
- Change return code of CoGetPSClsid to match test result.
- Do a slight hack to make IRemUnknown proxies be added after the
  proxy that uses them to stop them being used after they are
  destroyed.
- Fix multiple local server connections.
- The apartment reference should be held while the stub manager
  reference is held.
- Fix same apartment-unmarshal detection.
- Don't use the pipe caching code because it doesn't work correctly at
  the moment.
- Always write disconnect reply packet, even in failure cases.
- Move object-to-stub-manager mapping rule to register_ifstub.
- Pass the original IID to IMarshal_UnmarshalInterface and query for
  the requested interface.
- Unmarshaling IID_NULL means use the IID the interface was originally
  marshaled with.
- Add code for destroying the thread-local storage data, but don't use
  it yet.
- Don't release apartment on changing modes because we didn't add a
  reference anywhere.
- Quieten the RPC_E_DISCONNECTED error message as it is an expected
  return code.
- Treat IID_NULL the same as IID_IUnknown.
- Make tests compile on Win95 again.
- Fix copy+paste error where the test failure should be from the
  CoUnmarshalInterface function.
- Give IUnknown its own ifstub to fix ref-counting and ipid storage
  issues.
- Add a new flag SORFP_NOLIFETIMEMGMT to tell the proxy manager not to
  call any IRemUnknown functions.
- Move the low-level unmarshaling code into a new function,
  unmarshal_object, so that it can be easily reused for unmarshaling
  IRemUnknown.
- Consolidate more stub creation details into register_ifstub.
- Replace the current wine_marshal_id structure with STDOBJREF for the
  on-the-wire format.
- Initialize clsid member to the marshaler clsid to fix custom
  marshaling.
- Make proxy shutdown test succeed by releasing the channel on
  disconnect.
- Remove wine_marshal_data: it is unneeded and there is no equivalent in
  STDOBJREF.
- Remove obsolete structs, rearrange things to group the structs
  together and to group similar functions.
- Document thread-safety of members of structs.
- Document CoSetState & CoGetState.
- Rewrite them to only retrieve TLS info once.
- Remove trailing whitespace in COM_CurrentInfo.
- Release the client security objects when no longer needed (reported by
  Mike McCormack).
- Implement CoSetProxyBlanket, CoQueryProxyBlanket and CoCopyProxy.
- Update todo list.
- Destroy stubs on apartment shutdown.
- Make MTA dynamically allocated so that proxies and other resources
  are freed at the proper time.
- Changed/removed some incorrect comments regarding apartments.
Mike Hearn <mh@codeweavers.com>
- Various formatting/style changes.
- Force context switch on chanbuf disconnect to avoid a race in the test
  suite.
Mike Hearn <mh@codeweavers.com>
Robert Shearman <rob@codeweavers.com>
- Rework RPC dispatch layer to be simpler and not get confused by
  server/client duality.
- Make threads shut down at the right time and not access freed memory
  after apartment destruction.
- Rename stub_dispatch_thread to client_dispatch_thread.
- Add some more tracing
- Check return value of WaitNamedPipe.
- Change named pipe timeouts to 0.5s, which should be enough for even the
  slowest machines.
Christian Costa <titan.costa@wanadoo.fr>
- CoInitialize(Ex) should return S_FALSE when COM is already initialized
  for the current thread.

svn path=/trunk/; revision=13532
2005-02-13 20:52:16 +00:00
Hartmut Birr
4267da8a2f - Forgot this file.
- Prepared cdfs for using CcInitializeCacheMap/CcUninitializeCacheMap instead of CcRosInitializeFileCache/CcRosReleaseFileCache.

svn path=/trunk/; revision=13531
2005-02-13 17:25:52 +00:00
Hartmut Birr
11aca778bc - Prepared ntfs for using CcInitializeCacheMap/CcUninitializeCacheMap instead of CcRosInitializeFileCache/CcRosReleaseFileCache.
svn path=/trunk/; revision=13530
2005-02-13 17:23:41 +00:00
Hartmut Birr
be6f666161 - Prepared cdfs for using CcInitializeCacheMap/CcUninitializeCacheMap instead of CcRosInitializeFileCache/CcRosReleaseFileCache.
svn path=/trunk/; revision=13529
2005-02-13 17:21:16 +00:00
Hartmut Birr
6dc6d975d8 - Partial implementation of IoSetInformation.
svn path=/trunk/; revision=13528
2005-02-13 17:10:59 +00:00
Hartmut Birr
516c6b3ffc - Initialize the Lock value of a stream file object.
svn path=/trunk/; revision=13527
2005-02-13 17:09:10 +00:00
Hartmut Birr
6277bda603 - Changed the definition of fpos_t to a 64bit value to get binutils 2.15.94 working.
svn path=/trunk/; revision=13526
2005-02-13 15:38:56 +00:00
Klemens Friedl
b331ffc1b7 VMware SVGA Wizard:
* add title and subtitle (wizard window)
* center the wizard window
* update english and german language files

svn path=/trunk/; revision=13525
2005-02-13 13:49:55 +00:00
Thomas Bluemel
ecc1462959 fixed returning the reference to the token in SeCopyClientToken() and probe pointer when neccessary
svn path=/trunk/; revision=13524
2005-02-13 13:03:44 +00:00
Steven Edwards
9e0d358564 Remove the old control apps from rosapps/control.
svn path=/trunk/; revision=13522
2005-02-13 02:11:22 +00:00
Aleksey Bragin
9f1be875f3 Some basics of driver wrapper - establish dispatch functions, a very basic AddDevice handler. Still stubs, but they will be filled with something very soon!
svn path=/trunk/; revision=13521
2005-02-12 23:31:15 +00:00
Aleksey Bragin
4ba5ab7473 Added cromwell's drivers into build/install process. Now we have two alternatives: usbport/usbXhci or usbcore/ohci.sys. With time they will be merged into one, or cromwell will be wasted and usbport/usbXhci will be written from scratch.
svn path=/trunk/; revision=13520
2005-02-12 23:27:27 +00:00
Aleksey Bragin
aacb7a22f6 Fixed a copy-n-paste typo in usbuhci ("Type"->"Image" reg key), also adding ohci driver entry (loads in VirtualPC).
svn path=/trunk/; revision=13519
2005-02-12 23:11:10 +00:00
Gé van Geldorp
c4a2530191 Sync to Wine-20050211
Mike McCormack <mike@codeweavers.com>
- add support for Edit boxes in MSI dialogs
- run the message loop when waiting for threads or processes
- fix the dialog font
- allow waiting on a handle while running the message loop
- implement checkboxes in dialogs
- use TextStyle enumeration instead of numbers
- fix MSI_IterateRecords to return the correct count
- Add more dialog controls, do something when they're clicked on.
- Implement MsiPreviewDialog.
- Implement and document MsiLoadString.
- Added stub implementations for MsiPreviewDialog and
  MsiPreviewBillboard.
- Fix MsiModifyView and MsiViewGetColumnInfo to use MSIRECORD* not MSIHANDLE.
- Implement, test and document MsiDecomposeDescriptor.
- Handle a number as a parameter for custom action 19.
- Move OpenQuery into msiquery.c and make it non-static.
- Fix and test inserting records.
- Fix refcounting, use Interlocked functions.
- MsiEvaluateCondition returns an error when passed NULL as a
  condition.
- Lock record in MsiViewExecute, move stubs to end.
- Fix MsiRecordSetString for NULL strings and update test case.
- Fix a bug caused by freeing memory too soon in the table code.
- Update headers, add MsiGetUserInfoA stub implementation.
- Fix a memory leak in MsiConfigureProductExW.
- Indentation and style cleanup.
- implement MsiOpenPackageEx, and forward MsiOpenPackage there
- make a MSI_CreatePackage function and use it in MSI_OpenPackage
- move MsiOpenPackageA down with the rest of the API functions
Juan Lang <juan_lang@yahoo.com>
- Partially implement AppSearch action.
- If a full path isn't specified, search across all fixed drives.
- Simplify AppSearch error checking.
- Identifiers evaluate to true if they are non-empty, regardless of
  value.
Aric Stewart <aric@codeweavers.com>
- action.c is getting too big, so split out all the handling of
  CustomActions into custom.c. Cleaned up a lot of the handling of
  custom actions including scripting actions and processing return
  codes.
- Mike McCormack pointed out that MsiFormatRecord is basically the
  same as internal function deformat_string. So broke deformat_string
  out and updated it to function as MsiFormatRecord and implemented
  MsiFormatRecord.
- A number of random fixes to action.c including properly calculating
  the length for the LocalPackage name, not forcing a reboot when
  really we should just return ERROR_INSTALL_SUSPEND and handling
  REG_MULTI_SZ now that we can deformat the properly.
- Move the guid squishing functions out of msi.c and make a new
  registry.c file. Also clean up all the various registry keys we need
  to open and create to this module and modify the functions for msi.c
  to call these functions.
- Added a few more stub implementations.
- Implement custom action type 19, Halt install and display error
  message.
- Continued work to simplify the ProcessAction call, also split it into
  a ProcessAction and ProcessUIAction for future dialog box work.
  Also fix a bug in deformat_string where i was not freeing the created
  record.
- Make a temp file for each dll saved for custom actions. This prevents
  name collisions from causing custom actions to fail.
- Do not track the temp files for custom actions based on the name from
  the table because then we get conflicts and files not tracked or
  cleaned up.
- Add the RegisterUser action.
- Implement RegisterExtensionInfo and RegisterMIMEInfo.
- Add logic to be able to resolve the SourceDir based on
  CurrentPath. Also add logic to get the source locations of a file if
  it is not in a cabinet.
- Finish up the framework by stubbing out all the remaining Standard
  actions.
- A fix to deformat_string so it only returns a null return if you
  provided a null buffer.
- Eliminate the giant if.. else if block from ACTION_ProcessAction in
  favor of a table of handlers.
- Return code of the install should not depend on the return code of the
  final action.
- Update component installed states as they are installed so that
  conditions based on component states are at least a little more
  correct.
- Add icon and argument when regestering clsids.
- Add a stub for ResolveSource because we do that work just not in
  ResolveSource like we should.
- When quering a Component state return the correct state.
- Enable the updating of Feature and thus the resulting component
  states.
- Run the end of install actions for suspend and user exit states as
  well.
- Start putting in place a currently running state for future ui use.
- Use the new registry functions in registry.c.
- Do not force a reboot, just return ERROR_INSTALL_SUSPEND and write
  some keys to the registry.
- Quite a few fixes:
- Allow for the queing of custom actions to trigger on the
  InstallExecute or InstallExecuteAgain actions.
- allow for the queing of custom actions to trigger on
  InstallFinalize.
- Properly set the CustomActionData property for said queued actions.
- Implement RegisterProduct.
- Beginning implementation of ForceReboot.
- Don't kill install if an item to be duplicated does not exist.
- Write out SourceList and LastUsedSource for resuming installs.
- Use regsvr32 to register self reg dlls.
- Implementations for SelfRegModules and PublishFeatures.
- Set default ACTION property for Install.
- Deformat more than JUST properties properly. Allows for Files and
  Component paths in deformat.
- Properly deformat a LaunchCondition failure dialog box.
- Resolve and save registry Keypaths.
- Write the Features published keys more correctly. Still some
  problems.
- First implementation of the WriteIniValues action.
- Custom actions can have null in their target parameters, handle that
  without crashing. Also enable deformating of lines greater than 256
  characters.
- Added some more suminfo stubs.
- An implementation of MsiSummaryInfoGetPropertyW based off of
  MsiSummaryInfoGetPropertyA.
- Added stubs for MsiGetShortcutTargetA/W.
- Do a very basic first implementation of MsiConfigureProductExW for
  msiexec /@  when run as a reboot.
- Also add a number of new stubs for the office xp and 2k3 install and
  startup process.
- Fix a copy and paste error, check for a null value and discard
  unneeded errors.
- Do not limit properties to 256 characters when evaluating them.
- Setting a record to an empty string is the same as making it null.
- First pass implement ion of MsiQueryProductState[A/W] as well as a few
  fixes for MsiGetComponentPath.
- Actually start on an implemention for MsiGetComponentPathW that should
  handle all keypaths that are files.
- A reworking of format.c to remove the recursion, clean things up and
  stabilize behavior to match windows.
- Cleanup processing a bit more.
- Allow for nested keys to work properly.
- MsiGetProperty does not return any error on missing properties.
- The new Insert fixes now properly require ?,? instead of just ? for
  the Insert call. This fix modifies the MSI_SetProperty query to be
  correct.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
  redundant.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Ulrich Czekalla <ulrich@codeweavers.com>
- Handle 0 length buffers in MSI_FormatRecordW.
- Remove unused buffer in deformat_string.
Mike Hearn <mh@codeweavers.com>
- Correctly ensure properties set from resolved directory paths are
  backslash terminated.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Marcus Meissner <meissner@suse.de>
- Initialize rc in create_component_directory().
Alexandre Julliard <julliard@winehq.org>
- Avoid unnecessary run-time initializations.

svn path=/trunk/; revision=13518
2005-02-12 22:59:04 +00:00
Gé van Geldorp
b14fe2e98e Sync to Wine-20050211
Alexandre Julliard <julliard@winehq.org>
- It makes no sense to export the dll entry point as stub.

svn path=/trunk/; revision=13517
2005-02-12 21:46:45 +00:00
Gé van Geldorp
f2d6147dc9 Sync to Wine-20050211
Juan Lang <juan_lang@yahoo.com>
- Make netspi.h private, as some of its declarations conflict with
  npapi.h.  Spotted by Paul Vriens.
Jonathan Ernst <Jonathan@ErnstFamily.ch>
- Updated French resources.
Henning Gerhardt <henning.gerhardt@web.de>
- Update German resources.

svn path=/trunk/; revision=13516
2005-02-12 21:26:15 +00:00
Gé van Geldorp
a8037e241c Sync to Wine-20050211
Carlos Lozano <clozano@andago.com>
- Fix regression in Fallout game.
Remi Assailly <remi.assailly@free.fr>
- char -> const char fixes.
Robert Reif <reif@earthlink.net>
- Copy data structures one at a time using supplied size.

svn path=/trunk/; revision=13515
2005-02-12 21:07:16 +00:00
Gé van Geldorp
b0c3deb666 Henning Gerhardt <henning.gerhardt@web.de>
- Update German resources.
Robert Shearman <rob@codeweavers.com>
- Draw a representation of a document in the page setup dialog.
- Change some FIXME's to TRACE's because everything we need is
  implemented and they fire for ones that we don't need to implement.
Remi Assailly <remi.assailly@free.fr>
- char -> const char fixes.
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Updated Spanish resources.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Correct coordinates of a couple of controls.
- Do not forget to allocate internal OPENFILENAMEW structure for 16-bit
  GetOpenFileName, initialize it by zeros for 16/A cases.
- Make GetOpenFileNameW with an old style open file dialog work with the
  original OPENFILENAMEW structure, making sure that all changes are
  passed back to the caller.
Ulrich Czekalla <ulrich@codeweavers.com>
- GetFileName31W should call unicode version of FD31_AllocPrivate.
Jonathan Ernst <Jonathan@ErnstFamily.ch>
- Updated French resources.

svn path=/trunk/; revision=13514
2005-02-12 21:03:08 +00:00
Gé van Geldorp
2b5f93358a Sync to Wine-20050211
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Dimitrie O. Paun <dpaun@rogers.com>
- Use the LVCFMT_{LEFT,RIGHT,CENTER} enumeration flags properly.
Alexandre Julliard <julliard@winehq.org>
- Store the "managed" flag as a window property instead of the
  Wine-specific WS_EX_MANAGED style bit.
Paul Vriens <Paul.Vriens@xs4all.nl>
- Remove needless check for horizontal or vertical pager.
Paul Vriens <Paul.Vriens@xs4all.nl>
- Remove the checking/setting of the defaults in TRACKBAR_Create.

svn path=/trunk/; revision=13513
2005-02-12 20:51:20 +00:00
Thomas Bluemel
709af1f28a the callback management doesn't have to be serialized as it's only accessed by the thread itself
svn path=/trunk/; revision=13512
2005-02-12 20:37:04 +00:00
Thomas Bluemel
a780838c2e added stubs for NeedCurrentDirectoryForExePathA/W()
svn path=/trunk/; revision=13511
2005-02-12 17:15:04 +00:00
Casper Hornstrup
69101c3619 Branch setupapi (again)
svn path=/branches/xmlbuildsystem/; revision=13510
2005-02-12 16:47:02 +00:00
Casper Hornstrup
2c0578844f Remove setupapi (again)
svn path=/branches/xmlbuildsystem/; revision=13509
2005-02-12 16:43:03 +00:00
Casper Hornstrup
cdc4cb09c4 Branch setupapi
svn path=/branches/xmlbuildsystem/; revision=13508
2005-02-12 16:11:43 +00:00
Casper Hornstrup
bbb19c02cc Remove setupapi
svn path=/branches/xmlbuildsystem/; revision=13507
2005-02-12 16:08:13 +00:00
Casper Hornstrup
07a8c86438 Add stub GNU makefile
svn path=/branches/xmlbuildsystem/; revision=13506
2005-02-12 15:11:48 +00:00
Emanuele Aliberti
5d99bb07ca SM - Sorry, I forgot silence dbg messages!
svn path=/trunk/; revision=13505
2005-02-12 14:34:39 +00:00
Emanuele Aliberti
68537ca04f PSX: posixw32: some work for compatibility with future SM
svn path=/trunk/; revision=13504
2005-02-12 14:33:41 +00:00
Eric Kohl
feb76365e7 - Implement RtlGetLastNtStatus, RtlGetLastWin32Error, RtlRestoreLastWin32Error, RtlSetLastWin32Error and RtlSetLastWin32ErrorAndNtStatusFromNtStatus.
svn path=/trunk/; revision=13503
2005-02-12 12:42:10 +00:00
Thomas Bluemel
df616c9b3b The structure layout of self-relative security descriptors may be different from absolute security descriptors depending on the platform. Self-relative security descriptors always use 32 bit offsets while absolute security descriptors use pointers which could be 64 bits.
svn path=/trunk/; revision=13502
2005-02-12 11:47:03 +00:00
Gé van Geldorp
18e42fda45 Check subsystem
svn path=/trunk/; revision=13501
2005-02-12 09:17:51 +00:00
Emanuele Aliberti
3cc5374fe1 SM - clean, simplify, make more readable
- split initialization in more files to make it more readable
- cleaned up some code
- simplified some code
- documented some todos

svn path=/trunk/; revision=13500
2005-02-12 09:08:52 +00:00
Art Yerkes
165794f5c8 AddrWidenAddress: set type
NBFlushPackets: We already hold the table lock when calling this.

svn path=/trunk/; revision=13499
2005-02-12 03:53:19 +00:00
Gé van Geldorp
6d7d3aaff6 Be compatible with some of the crap apps out there
svn path=/trunk/; revision=13497
2005-02-11 21:02:35 +00:00
Casper Hornstrup
760ebcb3e3 * Run build tools after parsing build files
* Generate roscfg.h


svn path=/branches/xmlbuildsystem/; revision=13496
2005-02-11 19:13:01 +00:00
Eric Kohl
1a4bf3f6f5 Ooops! These are the correct exports.
svn path=/trunk/; revision=13494
2005-02-11 16:01:10 +00:00
Eric Kohl
1ca75be5f0 Implement RtlGetSecurityDescriptorRMControl, RtlSetSecurityDescriptorRMControl, SetSecurityDescriptorControl, GetSecurityDescriptorRMControl and SetSecurityDescriptorRMControl.
svn path=/trunk/; revision=13493
2005-02-11 15:52:38 +00:00
Eric Kohl
5930efc575 - Implement RtlSetControlSecurityDescriptor
- Remove property set functions from ntdll.def because they are not implemented in Win2K and above.

svn path=/trunk/; revision=13492
2005-02-11 12:06:29 +00:00
Gé van Geldorp
e37dad5493 Match packing in DDK
svn path=/trunk/; revision=13491
2005-02-10 22:54:30 +00:00
Aleksey Bragin
7d5865df32 Deleted binaries, added ignore
svn path=/trunk/; revision=13490
2005-02-10 22:08:39 +00:00
Aleksey Bragin
a66312aa06 Deleted binaries, added ignore
svn path=/trunk/; revision=13489
2005-02-10 22:05:40 +00:00
Thomas Bluemel
a5f97a39da removed obsolete typecast in AllocConsole()
svn path=/trunk/; revision=13487
2005-02-10 19:38:47 +00:00
Thomas Bluemel
ca15298d31 fixed ObpCaptureObjectAttributes()
svn path=/trunk/; revision=13486
2005-02-10 11:32:06 +00:00
Thomas Bluemel
f49c77e03f revert the changes to NtCreateEvent and do the real fix
svn path=/trunk/; revision=13485
2005-02-10 09:22:27 +00:00
Alex Ionescu
ef53ccc2a8 Fix APC problems. Thanks to Arty for finding this. This makes vncviewer work
svn path=/trunk/; revision=13484
2005-02-10 05:13:43 +00:00
Art Yerkes
73f1d215e0 Patch to fix NtCreateSempahore, in the case where the initial lookup
succeeds.  We previously left the function without initializing 
hSemaphore.  Patch suggested by me and executed by hpoussin.

svn path=/trunk/; revision=13483
2005-02-10 03:58:03 +00:00
Steven Edwards
231989d7ac Added note about freeldr 2.0 changes
svn path=/trunk/; revision=13482
2005-02-10 01:42:58 +00:00
Gé van Geldorp
2bdc976286 Big change warrants major version number bump
svn path=/trunk/; revision=13481
2005-02-09 23:57:07 +00:00
Gé van Geldorp
00c444e957 Pass PageDirectoryStart and End so the memory manager
knows not to clobber it

svn path=/trunk/; revision=13480
2005-02-09 23:52:27 +00:00
Gé van Geldorp
2da2045b7f Add DPRINT_HWDETECT to DEBUG_ALL
svn path=/trunk/; revision=13479
2005-02-09 20:53:18 +00:00
Mike Nordell
a309fd9ca9 Send the correct handle_s_. tinus found this one.
svn path=/trunk/; revision=13478
2005-02-09 20:11:48 +00:00
Gé van Geldorp
9d11fdcdac Don't include NEVER_LOAD sections in image size.
Rename SizeOfImage to ResidentSize to avoid confusion

svn path=/trunk/; revision=13477
2005-02-09 18:34:13 +00:00
Gé van Geldorp
22b2e24aea Fix EOL setting
svn path=/trunk/; revision=13476
2005-02-09 18:18:20 +00:00
Gé van Geldorp
44705e9fdb - Fix quoting of .cpl filename.
- Use "cplopen" verb to execute .cpl files.

svn path=/trunk/; revision=13475
2005-02-09 17:33:36 +00:00
Art Yerkes
877b125678 Made a nice function CantReadMore which tells if we can't possibly fill
the buffer any longer, and don't have waiting data.
Return an EOF in every case where a read could hit EOF from tcpip,
Return a hard error thereafter.

svn path=/trunk/; revision=13474
2005-02-09 08:38:46 +00:00
Gé van Geldorp
cf6b823a18 - Add entry for .cpl files
- Disable recycle bin for now

svn path=/trunk/; revision=13473
2005-02-08 22:52:16 +00:00
Steven Edwards
63b4ab39e4 define _MAX_PATH as well
svn path=/branches/xmlbuildsystem/; revision=13472
2005-02-08 22:50:55 +00:00
Gé van Geldorp
d45db8b732 Prefer SEE_MASK_IDLIST, since that one is actually implemented in shell32...
svn path=/trunk/; revision=13471
2005-02-08 22:23:05 +00:00
Casper Hornstrup
d441fe88f2 Generate reactos.cab
svn path=/branches/xmlbuildsystem/; revision=13470
2005-02-08 22:21:16 +00:00
Gé van Geldorp
183a36f0fb You can't execute a DLL
svn path=/trunk/; revision=13469
2005-02-08 22:11:27 +00:00
Gé van Geldorp
9b0eaad850 Hervé Poussineau <poussine@freesurf.fr>
Initialize default partition size to maximum size.

svn path=/trunk/; revision=13468
2005-02-08 21:27:49 +00:00
Gé van Geldorp
1914ba8245 Set eol-style
svn path=/trunk/; revision=13467
2005-02-08 18:58:59 +00:00
Art Yerkes
4b90e54e6f There's no need to link ntdll here.
svn path=/trunk/; revision=13466
2005-02-08 17:10:19 +00:00
Eric Kohl
b03a789169 - Convert U32 to ULONG.
svn path=/trunk/; revision=13465
2005-02-08 14:46:44 +00:00
Gé van Geldorp
ead52a2278 Redraw shell background when wallpaper is changed
svn path=/trunk/; revision=13464
2005-02-08 12:35:44 +00:00
Alex Ionescu
e2de4723c6 Forgot this file
svn path=/trunk/; revision=13463
2005-02-08 01:55:04 +00:00
Alex Ionescu
518763e600 FreeLdr Patch. Now fully loads ntoskrnl using a PE Loader, supports /3gb dynamically but this is NOT enabled yet, so please continue using the 3GB entry in config until r2 is ready which will support relocation and remove the config entry. You must also supply /3GB to the commandline if you're using 3GB, just like since the previous patch. Also freeldr now uses w32api headers. Janitors will clean the dupes up. Thank you: Mike, Royce, Hartmut, Blight, Filip and everyone who reviewed. Hartmut, if anything is missing from the patch you sent me, feel free to add it. More info at http://blogs.reactos.com/Alex_Ionescu.
svn path=/trunk/; revision=13462
2005-02-08 01:46:01 +00:00
Emanuele Aliberti
f390d143d5 Typographic errors fixed and a function name changed.
svn path=/trunk/; revision=13461
2005-02-07 23:11:30 +00:00
Thomas Bluemel
7a4e07b567 revert moving smdll to rosrtl.
svn path=/trunk/; revision=13460
2005-02-07 12:58:08 +00:00
Thomas Bluemel
61c28f28b3 moved smdll to rosrtl. We just _can't_ have separate dlls for everything internal, that's what static libraries are for. Unless we want a dll hell even worse than necessary...
svn path=/trunk/; revision=13459
2005-02-07 11:35:29 +00:00
Thomas Bluemel
fb80c5416d moved smdll to rosrtl. We just _can't_ have separate dlls for everything internal, that's what static libraries are for. Unless we want a dll hell even worse than necessary...
svn path=/trunk/; revision=13458
2005-02-07 11:35:10 +00:00
Thomas Bluemel
63e01b63df moved smdll to rosrtl. We just _can't_ have separate dlls for everything internal, that's what static libraries are for. Unless we want a dll hell even worse than necessary...
svn path=/trunk/; revision=13457
2005-02-07 11:34:52 +00:00
Eric Kohl
30b7d49ae6 - Nt->Zw
- Assign an instance path to the root device node and reports its arrival.

svn path=/trunk/; revision=13456
2005-02-07 10:33:44 +00:00
Gé van Geldorp
e4e9497fb0 Remove no longer needed hack
svn path=/trunk/; revision=13455
2005-02-07 10:30:14 +00:00
Gé van Geldorp
8b55015f04 Fix definition of LUID constants
svn path=/trunk/; revision=13454
2005-02-07 10:29:44 +00:00
Gé van Geldorp
4cc354816b Hervé Poussineau <poussine@freesurf.fr>
(Partial) implementation of CheckTokenMembership()

svn path=/trunk/; revision=13453
2005-02-06 22:16:05 +00:00
Emanuele Aliberti
210f9b4812 Add SMDLL to the boot CD.
svn path=/trunk/; revision=13452
2005-02-06 22:06:44 +00:00
Emanuele Aliberti
b77a02dbef SMDLL: add it to the build process.
svn path=/trunk/; revision=13451
2005-02-06 22:03:32 +00:00
Gé van Geldorp
97bae25ad4 - Add RegisterServiceCtrlHandlerExA/W
- Add stubs for CheckTokenMembership and LsaGetUserName

svn path=/trunk/; revision=13450
2005-02-06 21:57:44 +00:00
Emanuele Aliberti
9e799af696 Some preliminary work on the SM to make it manage environment servers.
svn path=/trunk/; revision=13449
2005-02-06 21:55:07 +00:00
Gé van Geldorp
e8a6256e32 Export some Lsa stubs
svn path=/trunk/; revision=13448
2005-02-06 21:21:22 +00:00
Gé van Geldorp
8efa6b64a6 - Prevent image loading and symbol loading getting each others way
- DPRINT1 is preferred over DbgPrint

svn path=/trunk/; revision=13447
2005-02-06 19:52:26 +00:00
Gunnar Dalsnes
fa4b4f314a -add macros for msvc/gcc portable int64 suffix/LARGE_INTEGER handling
-add C_ASSERT (compile-time asserts)

svn path=/trunk/; revision=13446
2005-02-06 19:04:00 +00:00
Gé van Geldorp
bc7bba6f78 Pass ROP4 instead of ROP3 to drivers
svn path=/trunk/; revision=13445
2005-02-06 18:27:06 +00:00
Gé van Geldorp
78a54aa150 Properly synchronize with GPU
svn path=/trunk/; revision=13444
2005-02-06 18:24:31 +00:00
Emanuele Aliberti
90b5ddc462 SMDLL: helper to use the SM
svn path=/trunk/; revision=13443
2005-02-06 17:00:53 +00:00
Emanuele Aliberti
e0d9326630 SM & SMDLL definitions
svn path=/trunk/; revision=13442
2005-02-06 16:59:55 +00:00
Mike Nordell
d31b888c46 Remove COM1 as default debug messages output channel for LiveCD.
If users are skilled enough to make use of it, it can be turned on manually during boot.

svn path=/trunk/; revision=13441
2005-02-06 14:13:32 +00:00
Martin Fuchs
97715243ac owner drawn context menus for lean explorer version
svn path=/trunk/; revision=13440
2005-02-06 14:03:25 +00:00
Martin Fuchs
24ed9a6f95 owner drawn context menus for FileChild
svn path=/trunk/; revision=13439
2005-02-06 13:28:34 +00:00
Martin Fuchs
32ded4ebff fix warning message
svn path=/trunk/; revision=13438
2005-02-06 13:12:07 +00:00
Martin Fuchs
ac1bda4c72 generic support for owner drawn context menus
svn path=/trunk/; revision=13437
2005-02-06 13:02:48 +00:00
Filip Navara
b98bef3c5f Fix a typo.
svn path=/trunk/; revision=13436
2005-02-06 12:39:41 +00:00
Casper Hornstrup
0dd134f1a2 Build snmpapi and network applications
svn path=/branches/xmlbuildsystem/; revision=13435
2005-02-06 11:01:22 +00:00
Martin Fuchs
3af8771d1a prevent crash related to unsupported context menu types
svn path=/trunk/; revision=13434
2005-02-06 10:50:50 +00:00
Martin Fuchs
7ae66a94b0 support for owner drawn context menus on the desktop
svn path=/trunk/; revision=13433
2005-02-06 10:38:51 +00:00
Casper Hornstrup
11d1cdd366 Build services
svn path=/branches/xmlbuildsystem/; revision=13432
2005-02-06 10:23:29 +00:00
Filip Navara
a1775e6e4c Use only 80 character wide lines in the comments.
svn path=/trunk/; revision=13431
2005-02-06 10:01:07 +00:00
Art Yerkes
a6b98eefa1 Kill only selects involving a named file descriptor when clearing exclusive
selects.  This makes ASECHO32 work perfectly.

svn path=/trunk/; revision=13430
2005-02-06 07:56:45 +00:00
Thomas Bluemel
8f344fcd2f Just cleaned up the code and changed the name of a few things. Patch by Trevor McCort.
svn path=/trunk/; revision=13429
2005-02-06 00:01:21 +00:00
Casper Hornstrup
8c410194a0 Build smss and system applications
svn path=/branches/xmlbuildsystem/; revision=13428
2005-02-05 22:48:07 +00:00
Alex Ionescu
59a9bf1efc Prevent buffer overflow on SMP systems. The buffer may be filled with 'Unknown CPU with family ID %ld and model ID %ld. Patch by Herve Poussineau.
svn path=/trunk/; revision=13427
2005-02-05 21:04:17 +00:00
Casper Hornstrup
75df7c5bca * Build ntvdm
* Add win32cui module type support


svn path=/branches/xmlbuildsystem/; revision=13426
2005-02-05 19:16:14 +00:00
Gregor Anich
75f792014d Raise exception when MmMapLockedPagesSpecifyCache fails to map into UserMode.
svn path=/trunk/; revision=13425
2005-02-05 18:59:14 +00:00
Casper Hornstrup
56ff0d9653 * Build csrss and win32csr
* NativeCUI module type support


svn path=/branches/xmlbuildsystem/; revision=13424
2005-02-05 18:52:38 +00:00
Gé van Geldorp
cb884ccdb4 Re-use (better) stack backtrace function
svn path=/trunk/; revision=13423
2005-02-05 18:49:43 +00:00
Eric Kohl
bda30e3034 Use the allocated buffer size in the call to NtGetPlugPlayEvent.
svn path=/trunk/; revision=13422
2005-02-05 10:54:00 +00:00
Thomas Bluemel
bb766d5404 only attach to the process to be queried when necessary
svn path=/trunk/; revision=13421
2005-02-05 10:31:37 +00:00
Gé van Geldorp
7cd9c86676 Convert ROP2 to MIX when calling driver
svn path=/trunk/; revision=13420
2005-02-05 10:19:49 +00:00
Gé van Geldorp
a1c0a3b1d6 Silence debug messages
svn path=/trunk/; revision=13419
2005-02-05 10:17:33 +00:00
Filip Navara
e83557fa58 Dynamically reallocate the buffer for PnP event if it's too small.
svn path=/trunk/; revision=13418
2005-02-05 08:44:49 +00:00
Filip Navara
92a1779473 Use CONTAINING_RECORD macro instead of type cast, fix the copyright header.
svn path=/trunk/; revision=13417
2005-02-05 08:43:52 +00:00
Art Yerkes
41918c7577 Read: Change AFD_EVENT_CLOSE to AFD_EVENT_DISCONNECT when the other end
hangs up.  The socket isn't closed yet.
Listen: Turn off fired flag for AFD_EVENT_ACCEPT.

svn path=/trunk/; revision=13416
2005-02-05 05:40:35 +00:00
Art Yerkes
c7bf3eead3 Fixed some signalling problems.
1) Always OR the current state bits into the socket for the handler to see
2) Remove special case for SEL_CONNECT | SEL_FIN in the signalled handler.
   Now it's much cleaner.

svn path=/trunk/; revision=13415
2005-02-05 04:56:04 +00:00
Thomas Bluemel
ab73f037f8 implemented GetConsoleProcessList()
svn path=/trunk/; revision=13414
2005-02-05 01:44:05 +00:00
Eric Kohl
2b921cb3e3 svn path=/trunk/; revision=13413 2005-02-05 00:20:14 +00:00
Gregor Anich
b70985ca99 Change WNDOBJ implementation a bit to make the NVIDIA driver happy.
svn path=/trunk/; revision=13412
2005-02-05 00:17:49 +00:00
Gregor Anich
824d1552c9 Fix VideoPortMapMemory.
svn path=/trunk/; revision=13411
2005-02-05 00:09:56 +00:00
Gregor Anich
9566275d1b Small update of opengl32.
svn path=/trunk/; revision=13410
2005-02-05 00:07:57 +00:00
Eric Kohl
61f4f70343 - Link ntoskrnl against libwdmguid.a.
- Report device arrival events to the user-mode pnp manager.

svn path=/trunk/; revision=13409
2005-02-05 00:04:52 +00:00
Eric Kohl
b0e251bab8 - Fix WDM-GUIDs. Patch by Filip Navara.
- Implement libwdmguid.a.

svn path=/trunk/; revision=13408
2005-02-04 23:24:32 +00:00
Casper Hornstrup
900f042f61 Build twain_32, ws2help, opengl32, syssetup, urlmon, shdocvw, wininet, userenv, wsock32, and wshirda
svn path=/branches/xmlbuildsystem/; revision=13407
2005-02-04 20:46:46 +00:00
Thomas Bluemel
efd11df7cc Trevor McCort implemented desktop wallpaper changing
svn path=/trunk/; revision=13406
2005-02-04 20:39:10 +00:00
Aleksey Bragin
01e24007ea Include usbd.sys in build of usb drivers
svn path=/trunk/; revision=13405
2005-02-04 16:51:11 +00:00
Aleksey Bragin
81d6ebf9e3 usbd.sys implementation - done long time ago by Filip, I just added .def and changed .rc (I think he doesn't mind it :))
svn path=/trunk/; revision=13404
2005-02-04 16:49:17 +00:00
Eric Kohl
fc76ea5157 Implement DelayedMove and FileExists.
svn path=/trunk/; revision=13403
2005-02-04 12:27:34 +00:00
Mike Nordell
f09c1928ae Fix broken year handling.
svn path=/trunk/; revision=13402
2005-02-04 03:21:46 +00:00
Royce Mitchell III
2212e07d3e compatibility fixes
svn path=/branches/xmlbuildsystem/; revision=13401
2005-02-03 23:54:02 +00:00
Gé van Geldorp
14986414b9 Always create debug info (-g)
svn path=/trunk/; revision=13400
2005-02-03 22:01:00 +00:00
Casper Hornstrup
cb6d12288b * Build midimap, netapi32, lz32, setupapi, mpr, olepro32, msimg32, secur32
* Build msafd, riched32, msgina, mmdrv, samlib, msvcrt20, mesa32


svn path=/branches/xmlbuildsystem/; revision=13399
2005-02-03 21:55:43 +00:00
Gé van Geldorp
c41788a8a2 Always clean the .gch file, even if ROS_USE_PCH is not active. This prevents
problems when switching between PCH and non-PCH builds.

svn path=/trunk/; revision=13398
2005-02-03 21:31:57 +00:00
Aleksey Bragin
85f0f3de51 Cromwell <-> PCI interface (stubs now) is taken to another file. In the long run I'm gonna change the file structure, but for now it's ok.
svn path=/trunk/; revision=13397
2005-02-03 20:38:38 +00:00
Filip Navara
bb6b84b0af Correct the library order.
svn path=/trunk/; revision=13396
2005-02-03 19:15:43 +00:00
Casper Hornstrup
d7abcec443 Build keyboard layout DLLs
svn path=/branches/xmlbuildsystem/; revision=13395
2005-02-03 19:14:46 +00:00
Filip Navara
56b11588c4 Prevent linking to MSVCRT in case some CRT function isn't found.
svn path=/trunk/; revision=13394
2005-02-03 19:08:54 +00:00
Art Yerkes
75acfdfa72 Add a . to an empty path to make a relative path, before the initial /
is added.

svn path=/branches/xmlbuildsystem/; revision=13393
2005-02-03 15:43:51 +00:00
Gé van Geldorp
8b7ac2780a Store symbolic information in a .rossym section in the
executable/library/driver/whatever

svn path=/trunk/; revision=13392
2005-02-02 23:07:33 +00:00
Casper Hornstrup
9dd8914484 * Parse .cpp, .rc, and .s files
* #include_next support


svn path=/branches/xmlbuildsystem/; revision=13390
2005-02-02 22:30:55 +00:00
Emanuele Aliberti
b7ecf6f1ef Make Jim Tabor visible.
svn path=/trunk/; revision=13389
2005-02-02 21:40:33 +00:00
Steven Edwards
54687f3ee6 MAX_PATH is PATH_MAX on Posix
svn path=/branches/xmlbuildsystem/; revision=13388
2005-02-02 20:10:14 +00:00
Aleksey Bragin
5f67689cbb Make dev node count correct, since for example Mac Virtual PC BIOS reports slightly wrong number which must be &0xFF.
This patch removes "Memory allocation failed: Out of memory" error while booting Freeldr.

svn path=/trunk/; revision=13387
2005-02-02 15:42:48 +00:00
Filip Navara
446441503d Protect against writes beyond the end of partition.
svn path=/trunk/; revision=13386
2005-02-01 21:21:33 +00:00
Casper Hornstrup
5987025ab4 Use automatic dependencies to mark files to be rebuilt.
svn path=/branches/xmlbuildsystem/; revision=13385
2005-02-01 20:49:03 +00:00
Filip Navara
02f0f81fc0 Correct prototype for NtGetPlugPlayEvent and use the ntpnp.h header.
svn path=/trunk/; revision=13384
2005-02-01 17:54:25 +00:00
Gunnar Dalsnes
6705201337 RtlCreateUnicodeString->RtlpCreateUnicodeString
svn path=/trunk/; revision=13383
2005-02-01 17:53:55 +00:00
Filip Navara
2eaa151579 - Header with declarations for NtPlugPlayControl and NtGetPlugPlayEvent.
svn path=/trunk/; revision=13382
2005-02-01 17:41:49 +00:00
James Tabor
786b85342f Added Jimtabor to list.
svn path=/trunk/; revision=13381
2005-02-01 17:40:21 +00:00
Eric Kohl
abbcb5b10f NtDisplayString: Convert Unicode string to OEM.
svn path=/trunk/; revision=13380
2005-02-01 16:40:23 +00:00
James Tabor
abd3d65035 But back Advpack for now.
svn path=/trunk/; revision=13379
2005-02-01 16:38:02 +00:00
Hartmut Birr
a11189968c - Removed some wrong calls to MmUnlockAddressSpace.
- Dereference the section object after creating the section. 

svn path=/trunk/; revision=13378
2005-02-01 16:35:30 +00:00
Eric Kohl
0a44e5f7e6 First attempt at implementing NtGetPlugPlayEvent.
svn path=/trunk/; revision=13377
2005-02-01 16:24:10 +00:00
Eric Kohl
7a91135976 Fix typos in shutdown messages.
svn path=/trunk/; revision=13376
2005-02-01 16:15:24 +00:00
Eric Kohl
736ae5e36b - Implement SetupDiBuildClassInfoListExA, SetupDiClassGuidsFromNameExA, SetupDiCreateDeviceInfoListExA and SetupDiOpenClassRegKeyExA using MultiByteToUnicode.
- Retrieve OS version upon process attach.

svn path=/trunk/; revision=13375
2005-02-01 13:58:33 +00:00
Steven Edwards
ff4e3250a0 forward stubs for Escape and GetSystemPaletteUse. Working on a real patch.
svn path=/trunk/; revision=13374
2005-01-31 23:58:10 +00:00
James Tabor
9535cafaaf Remove building of Advpack for now.
svn path=/trunk/; revision=13373
2005-01-31 23:33:34 +00:00
Gunnar Dalsnes
cf5aa86154 remove obvious duplicates
svn path=/trunk/; revision=13372
2005-01-31 22:13:43 +00:00
Casper Hornstrup
6052ab4bd7 Generate automatic dependencies.
svn path=/branches/xmlbuildsystem/; revision=13371
2005-01-31 18:25:55 +00:00
Eric Kohl
949f9a7ff6 - Implement DoesUserHavePrivilege and EnablePrivilege.
- Fix IsUserAdmin.

svn path=/trunk/; revision=13370
2005-01-31 12:49:46 +00:00
Filip Navara
418a089cb3 Force non-inlining of ctype functions even in OPTIMIZED builds. Fixes bug #497.
svn path=/trunk/; revision=13369
2005-01-30 19:40:24 +00:00
Thomas Bluemel
36cdd4e24b fixed warnings when compiling with DBG:=1 and OPTIMIZE:=1
svn path=/trunk/; revision=13368
2005-01-30 15:27:13 +00:00
Eric Kohl
84b7df2861 - Implement IsUserAdmin (untested), MultiByteToUnicode and UnicodeToMultiByte.
- Sort prototypes in setupapi.h.

svn path=/trunk/; revision=13367
2005-01-30 13:48:51 +00:00
Filip Navara
fe2f2f66fc Attempt to solve the imfamous WM_NCPAINT handle leak. The message handler isn't required to delete the region handle while it's also valid to delete it (eg. by calling GetDCEx with it). Thus we have to send the WM_NCPAINT message only synchronously and verify the handle after the SendMessage call.
svn path=/trunk/; revision=13366
2005-01-30 12:56:12 +00:00
Filip Navara
fb16822055 Don't shutdown devices before flushing registry and shutting down filesystems.
svn path=/trunk/; revision=13365
2005-01-30 09:46:15 +00:00
Gunnar Dalsnes
7aefb1c881 msvcrt: fix incorrect export
misc

svn path=/trunk/; revision=13364
2005-01-29 22:36:52 +00:00
Steven Edwards
deee81164b Allow IntEngExtEscape stub to return something.
svn path=/trunk/; revision=13363
2005-01-29 20:16:48 +00:00
Martin Fuchs
5f08703823 border for address bar
svn path=/trunk/; revision=13362
2005-01-29 17:39:09 +00:00
Thomas Bluemel
b3f22aba55 fixed compiling with optimizations
svn path=/trunk/; revision=13361
2005-01-29 15:29:20 +00:00
Thomas Bluemel
a725df1b30 securely access buffers in NtSetContextThread() and NtGetContextThread()
svn path=/trunk/; revision=13360
2005-01-29 12:24:15 +00:00
Royce Mitchell III
1291972098 remove eol whitespace
svn path=/trunk/; revision=13359
2005-01-29 03:15:05 +00:00
Thomas Bluemel
48bc6a5e53 added buffer checks to NtCreateThread()
svn path=/trunk/; revision=13358
2005-01-28 22:43:13 +00:00
Filip Navara
00ae7e938d Hervé Poussineau <poussine@freesurf.fr>
Use fast mutexes instead of spin locks because the file system callbacks shouldn't be called at DISPATCH_LEVEL.

svn path=/trunk/; revision=13357
2005-01-28 21:17:11 +00:00
Steven Edwards
66044ade6b setupapi was sync'd to winehq.
svn path=/trunk/; revision=13356
2005-01-28 21:04:12 +00:00
Thomas Bluemel
5149504971 securely access buffers in NtImpersonateThread()
svn path=/trunk/; revision=13355
2005-01-28 20:48:43 +00:00
Thomas Bluemel
87e189fd31 GetTempPathW should write an empty string to the buffer in case it wasn't large enough
svn path=/trunk/; revision=13354
2005-01-28 19:28:24 +00:00
Casper Hornstrup
adeb8563b5 Started on automatic dependencies support
svn path=/branches/xmlbuildsystem/; revision=13353
2005-01-28 19:11:22 +00:00
Thomas Bluemel
919a5257b4 also save the esi register. Thx to d_layer
svn path=/trunk/; revision=13352
2005-01-28 18:35:21 +00:00
Thomas Bluemel
22501b78f9 When a toolbar doesn't have the TBSTYLE_FLAT style redrawing the buttons when moving the mouse is not necessary.
Merged back from winehq. Fixes bug #404

svn path=/trunk/; revision=13351
2005-01-28 18:29:13 +00:00
Eric Kohl
9f44705b10 Use the service contol pipe to send a start command in order to start a service thread.
svn path=/trunk/; revision=13350
2005-01-28 13:28:56 +00:00
Thomas Bluemel
91337fece1 reverted my previous two commits, they are part of not yet committed changes...
svn path=/trunk/; revision=13349
2005-01-28 12:12:42 +00:00
Thomas Bluemel
747952fbac removed double definition of Nt/ZwSecureConnectPort
svn path=/trunk/; revision=13348
2005-01-28 12:06:50 +00:00
Thomas Bluemel
38e941330d removed double definition of Nt/ZwSecureConnectPort
svn path=/trunk/; revision=13347
2005-01-28 12:04:37 +00:00
Thomas Bluemel
fef48ab3fa 1. fixed InbvPutPixels() to save the ebx register which caused bootvid to crash when built with optimizations
2. build bootvid with optimizations when enabled

svn path=/trunk/; revision=13346
2005-01-28 11:37:09 +00:00
Royce Mitchell III
c6e6ddf2d4 allow oring multiple DebugPort values
svn path=/trunk/; revision=13345
2005-01-28 06:10:01 +00:00
Royce Mitchell III
d2f23650e6 bug fix: use the requested default os when timeout is 0 instead of defaulting to the first OS in the list.
svn path=/trunk/; revision=13344
2005-01-28 06:07:48 +00:00
Gunnar Dalsnes
4b5d785258 build msvcrt and crtdll from same source via lib\crt
fix problem with scanf/printf reading/printing doubles

svn path=/trunk/; revision=13343
2005-01-27 21:23:43 +00:00
Gunnar Dalsnes
b6a8b98ef0 build msvcrt and crtdll from same source via lib\crt
fix problem with scanf/printf reading/printing doubles

svn path=/trunk/; revision=13342
2005-01-27 21:18:04 +00:00
Gunnar Dalsnes
5379bfaa41 build msvcrt and crtdll from same source via lib\crt
fix problem with scanf/printf reading/printing doubles

svn path=/trunk/; revision=13341
2005-01-27 21:17:28 +00:00
Gunnar Dalsnes
b9d18ec3d7 build msvcrt and crtdll from same source via lib\crt
fix problem with scanf/printf reading/printing doubles

svn path=/trunk/; revision=13340
2005-01-27 21:16:41 +00:00
Mike Nordell
60d9e9aa67 Help freeloader stop crashing from divide-by-zero, provoked by drain-bamaged BIOS.
svn path=/trunk/; revision=13339
2005-01-27 21:12:05 +00:00
Eric Kohl
2829fb845f CreateNamedPipeW(): Set access rights according to the given open mode.
svn path=/trunk/; revision=13338
2005-01-27 15:28:08 +00:00
Thomas Bluemel
466fa48bd1 1. fixed prototypes of NtQueryPerformanceCounter() and NtDelayExecution() and made them safely access buffers
2. moved the implementation of Sleep(Ex)() into more a appropriate file

svn path=/trunk/; revision=13337
2005-01-27 14:11:19 +00:00
Art Yerkes
6a5c36c54a There is no WinSta in here.
svn path=/trunk/; revision=13335
2005-01-27 04:15:14 +00:00
Martin Fuchs
46a940fddb move address bar into top rebar
svn path=/trunk/; revision=13334
2005-01-27 01:03:37 +00:00
Thomas Bluemel
a84129a69e This patch removes the cursor location from the window station object and always uses it in the GDIDEVICE. Patch by tinus. Fixes bug #484
svn path=/trunk/; revision=13333
2005-01-27 00:49:24 +00:00
Martin Fuchs
f99bb4b97d fix UNICODE command line handling for MinGW builds
svn path=/trunk/; revision=13332
2005-01-27 00:33:11 +00:00
Martin Fuchs
15476f2d69 fix UNICODE command line handling for MinGW builds
svn path=/trunk/; revision=13331
2005-01-27 00:33:05 +00:00
Thomas Bluemel
fb5a8b1c3c don't optimize reading/writing from/to vga memory away in optimized builds. this fixes bug #490
svn path=/trunk/; revision=13330
2005-01-27 00:29:12 +00:00
Martin Fuchs
002ed92443 fix typos
svn path=/trunk/; revision=13329
2005-01-27 00:21:34 +00:00
Martin Fuchs
0fc75e8bd1 store startup path statically
svn path=/trunk/; revision=13328
2005-01-27 00:20:40 +00:00
Martin Fuchs
9e0b60cb02 store start URL statically
svn path=/trunk/; revision=13327
2005-01-27 00:18:30 +00:00
Martin Fuchs
47335997a6 - rename some Explorer strings to IBrowser
- fix child window size

svn path=/trunk/; revision=13326
2005-01-27 00:09:43 +00:00
Gé van Geldorp
9627e4ac70 Avoid crash if import directory is messed up
svn path=/trunk/; revision=13325
2005-01-26 23:30:50 +00:00
Aleksey Bragin
d3fb293ea3 This is the initial version of USB port+hub+hostcontroller drivers from a special version of Linux USB Stack. More info will be placed at ROS-Wiki.
svn path=/trunk/; revision=13324
2005-01-26 22:34:39 +00:00
Filip Navara
5546cc5fd3 Hervé Poussineau <poussine@freesurf.fr>
No need to create \??\Mouse symlink in mouse driver, it's done in mouclass.

svn path=/trunk/; revision=13323
2005-01-26 22:05:12 +00:00
Steven Edwards
0053497f82 added ibrowser to the makefile
svn path=/trunk/; revision=13322
2005-01-26 22:03:05 +00:00
Gé van Geldorp
c05831ef5f Hervé Poussineau <poussine@freesurf.fr>
Replace GET_RETRIEVAL_DESCRIPTOR structure (undocumented) by
RETRIEVAL_POINTERS_BUFFER. Correct alignment for some structures

svn path=/trunk/; revision=13321
2005-01-26 20:31:05 +00:00
Steven Edwards
2c0281bda7 define stricmp to strcasecmp for the Unix build
svn path=/branches/xmlbuildsystem/; revision=13320
2005-01-26 20:23:50 +00:00
Hartmut Birr
b142dbd5d2 - Fixed a crash in PAE mode and without the '/3GB' switch.
svn path=/trunk/; revision=13319
2005-01-26 19:43:03 +00:00
Steven Edwards
5d781df325 fix resouce compiling on cross-compile
svn path=/trunk/; revision=13318
2005-01-26 19:22:37 +00:00
Thomas Bluemel
66af63e1c7 fixed typo, "fixes" bug 486
svn path=/trunk/; revision=13317
2005-01-26 19:19:07 +00:00
Thomas Bluemel
92ce1ebfdc don't return a random status code in case of probing failed, initialize the Status variable first
svn path=/trunk/; revision=13316
2005-01-26 17:54:26 +00:00
Thomas Bluemel
a3d5e1cf55 Heap32ListFirst() should check the number of heaps in the list, not the numer of modules
svn path=/trunk/; revision=13315
2005-01-26 17:53:01 +00:00
Thomas Bluemel
87e84448db NtCreatePagingFile() should release the captured unicode string even if probing the other parameters failed
svn path=/trunk/; revision=13314
2005-01-26 14:38:27 +00:00
Thomas Bluemel
a2ea8e6fef Fixed GetTempPathA/W and GetCurrentDirectoryA/W. Patch by tinus, Eric Kohl and me, fixes bug #482
svn path=/trunk/; revision=13313
2005-01-26 14:15:38 +00:00
Eric Kohl
77a7f19e4f Remove RtlImageNtHeader, RtlImageDirectoryEntryToData, RtlImageRvaToSection and RtlImageRvaToVa because these function have been moved to lib/rtl/image.c.
svn path=/trunk/; revision=13312
2005-01-26 14:00:41 +00:00
Alex Ionescu
fe6116543e Standardize comment headers. Patch by Trevor McCort
svn path=/trunk/; revision=13311
2005-01-26 13:58:37 +00:00
Thomas Bluemel
c7348f1204 fixed usage of NtQueryDirectoryObject()
svn path=/trunk/; revision=13310
2005-01-26 13:54:53 +00:00
Thomas Bluemel
c4ee7a37ef fixed NtQueryDirectoryObject() to properly handle buffers that are not large enough
svn path=/trunk/; revision=13309
2005-01-26 13:54:07 +00:00
Eric Kohl
49cd29484d Replace hardcoded values by known constants.
svn path=/trunk/; revision=13308
2005-01-26 13:52:53 +00:00
Eric Kohl
4556d3a778 - Replace NtQuerySystemTime by KeQuerySystemTime
- Nt->Zw

svn path=/trunk/; revision=13307
2005-01-26 13:48:38 +00:00
Thomas Bluemel
0ce1bb564c securely access buffers in NtOpenDirectoryObject(), NtQueryDirectoryObject() and NtCreateDirectoryObject()
svn path=/trunk/; revision=13306
2005-01-26 12:47:38 +00:00
Alex Ionescu
394f14a702 Dynamic 3GB support, part 1. Only multiboot.S remains to be changed, all other parts of the Kernel now used KERNEL_BASE based on the command-line (Please don't use /3gb if you don't compile 3GB)
svn path=/trunk/; revision=13305
2005-01-26 05:00:08 +00:00
Steven Edwards
d533b8c5d3 Windows is stupid. Why they hell would you be case insensitive but case retaining
svn path=/trunk/; revision=13304
2005-01-26 00:43:49 +00:00
Thomas Bluemel
180cf153bb don't shift the PIDs of objects so the first bit can be used to lock objects, as the lower 2 bits of PIDs are now always zero just test and set this bit
svn path=/trunk/; revision=13303
2005-01-26 00:43:24 +00:00
Martin Fuchs
0cf4124706 first draft of SDI browser application derived from ROS Explorer
svn path=/trunk/; revision=13302
2005-01-26 00:12:33 +00:00
Thomas Bluemel
b55653e57c 1. fixed NtCreateProcess to do some buffer checks and moved the implementation to an internal function so it can be shared with PsCreateSystemProcess(). Also don't leak so many resources on failures
2. processes should acuire a cid handle for their unique process id
3. fixed several instances in structures where process ids were DWORD/ULONG instead of HANDLEs

svn path=/trunk/; revision=13301
2005-01-26 00:03:05 +00:00
Thomas Bluemel
e91cfb5065 enable the SeSystemtimePrivilege privilege which is required to call SetLocalTime
svn path=/trunk/; revision=13300
2005-01-25 23:57:57 +00:00
Steven Edwards
e22aec2f4a Forgot to add Makefiles
svn path=/trunk/; revision=13299
2005-01-25 23:50:22 +00:00
Alex Ionescu
5078cef23f Sorry for incorrect file comiited.
svn path=/trunk/; revision=13298
2005-01-25 23:40:05 +00:00
Steven Edwards
c4e6624f9a fixed building of setupapi.
svn path=/trunk/; revision=13297
2005-01-25 23:39:07 +00:00
Steven Edwards
bd706b9ed3 Imported setupapi from the vendor branch. (Again).
svn path=/trunk/; revision=13296
2005-01-25 23:36:57 +00:00
Alex Ionescu
9238d3d14f Remove debug output from user mode exceptions. Reported by hbirr.
svn path=/trunk/; revision=13295
2005-01-25 23:36:23 +00:00
Steven Edwards
30e78f58a6 removing this to reimport it
svn path=/trunk/; revision=13294
2005-01-25 23:36:16 +00:00
Steven Edwards
3cae21ed95 Imported vendor drop of setupapi.
svn path=/trunk/; revision=13293
2005-01-25 23:23:38 +00:00
Gé van Geldorp
8948ac5248 Replace wcschr. Fixes bug #488.
svn path=/trunk/; revision=13290
2005-01-25 22:58:47 +00:00
Hartmut Birr
1701ae1191 - Removed slab.c, because this functions are not used.
svn path=/trunk/; revision=13289
2005-01-25 22:51:51 +00:00
Hartmut Birr
6193b59bb3 - Implemented a kernel mapping region which is process local.
This mapping can be used to map temporary memory pages from 
  other process's like  pde's/pte's. It is also used to make 
  a copy of a page or to clean a page.

svn path=/trunk/; revision=13288
2005-01-25 22:50:47 +00:00
Hartmut Birr
df79339515 - Renamed UpdateProgress to VfatxUpdateProgress.
svn path=/trunk/; revision=13287
2005-01-25 22:36:28 +00:00
Hartmut Birr
85d156faef - Added vfatxlib.
svn path=/trunk/; revision=13286
2005-01-25 22:10:39 +00:00
Hartmut Birr
ce143bb72c - Fixed the directory index of a file for FATX.
- Initialize some values from the RFCB.

svn path=/trunk/; revision=13285
2005-01-25 21:16:19 +00:00
Hartmut Birr
0bc04189e7 - Fixed the directory index of a file for FATX.
- Check for the file size before eache call to CcMapData. W2K doesnt like to map over the end of a directory.

svn path=/trunk/; revision=13284
2005-01-25 21:14:57 +00:00
Hartmut Birr
0d6305b3bc - Print the major function codes if debug prints are enabled.
svn path=/trunk/; revision=13283
2005-01-25 21:13:28 +00:00
Hartmut Birr
9147b52d01 - Allow the second device name RosFat to make it possible to load vfatfs on W2k if fastfat is already loaded.
- Moved the initialisation of the callback and fast io functions to fastio.c.

svn path=/trunk/; revision=13282
2005-01-25 21:12:52 +00:00
Hartmut Birr
b3dd7cd455 - Fixed some problems to recognize a FATX partition on a non xbox (Should be tested on a real xbox).
- Fixed the calculation of the number of clusters.

svn path=/trunk/; revision=13281
2005-01-25 21:11:46 +00:00
Hartmut Birr
4ef74de489 - Print the file information class if debug prints are enabled in VfatGet/SetInformation.
- Check for the open handle count instead of the reference count if file deletion is requested.

svn path=/trunk/; revision=13280
2005-01-25 21:10:42 +00:00
Hartmut Birr
81ddc4aa52 - Implemented dummy stubs for all fast io entry points. W2K does ignore the IsFastIoPossible variable of the fcb.
- Fixed the directory index of a file for FATX.

svn path=/trunk/; revision=13279
2005-01-25 21:09:55 +00:00
Hartmut Birr
c25206e880 - Check for some special file streams in VfatUpdateEntry.
W2K does open the volume for changing the date and time, 
  but the volume hasn't a parent fcb.  
- Fixed the directory index of a file for FATX.

svn path=/trunk/; revision=13278
2005-01-25 21:08:54 +00:00
Hartmut Birr
4211cf6398 - Fixed the directory index of a file for FATX.
- Replaced VfatSupersedeFile with VfatSetAllocationSizeInformation.  
- Check for the file size before each call to CcMapData. W2K doesn't like it to map over the end of a directory.


svn path=/trunk/; revision=13277
2005-01-25 21:07:32 +00:00
Hartmut Birr
4240c717c7 - Always try to uninitialize the file cache in VfatCleanupFile.
- Try to purge the file cache if the last handle is closed and deleting of the file was requested.

svn path=/trunk/; revision=13276
2005-01-25 21:05:38 +00:00
Mike Nordell
afec493812 NtGdiExtTextOut (ExtTextOut in user-mode) should now obey at least the right clipping edge with ETO_CLIPPED.
svn path=/trunk/; revision=13275
2005-01-25 20:53:37 +00:00
Steven Edwards
83b24c1c23 added winetests for version.dll
svn path=/trunk/; revision=13274
2005-01-25 19:11:22 +00:00
Steven Edwards
c7fd3f9438 remove some duplicate definintions.
svn path=/trunk/; revision=13273
2005-01-25 17:52:28 +00:00
Mike Nordell
c819a16600 Fixe use of memory after it had been free'd.
svn path=/trunk/; revision=13272
2005-01-25 16:38:18 +00:00
Mike Nordell
b0fc9bcff6 Kill compiler warning.
svn path=/trunk/; revision=13271
2005-01-25 16:26:01 +00:00
Mike Nordell
c4566e585f Fix declaration of WSAStartup
svn path=/trunk/; revision=13270
2005-01-25 14:22:50 +00:00
Gé van Geldorp
0b1105fc94 tinus <o112w8r02@sneakemail.com>
Properly allow removing toolbar bitmaps by changing it into 0.

svn path=/trunk/; revision=13269
2005-01-25 08:32:47 +00:00
Alex Ionescu
e032cf1fe8 Set up ACPI Interrupt data before creating the interrupt, to fix case where interrupt is being called as soon as it's being set up, before the data is set. Patch by tinus. Fixes bug 472
svn path=/trunk/; revision=13268
2005-01-25 05:38:01 +00:00
Alex Ionescu
c0441b0e5f Fix compiler errors. Patch by Herve Poussineau. Fixes bug 478
svn path=/trunk/; revision=13267
2005-01-25 05:11:17 +00:00
Alex Ionescu
dcee180336 Fix bug 474. Patch by tinus
svn path=/trunk/; revision=13266
2005-01-25 05:00:57 +00:00
Steven Edwards
ce861ca908 finished merging setupapi with Winehq CVS. Tommrow I will do a vendor drop of the latest Winehq CVS.
svn path=/trunk/; revision=13265
2005-01-25 01:35:43 +00:00
Alex Ionescu
05ea4c4aa5 Fix bugs on optimized build, fix RtlpDispatchException gobbling up ebx (thx ge), remove obsolete files
svn path=/trunk/; revision=13264
2005-01-25 01:23:23 +00:00
Steven Edwards
e19650d041 sync'd more of Wine setupapi. Added stubs and such.
svn path=/trunk/; revision=13263
2005-01-25 01:22:10 +00:00
Steven Edwards
6fba4c4f68 update to latest setupapi.h
svn path=/trunk/; revision=13262
2005-01-25 01:21:38 +00:00
Hartmut Birr
93e62510cf - Enabled SYSENTER/SYSEXIT for application processors on smp machines.
svn path=/trunk/; revision=13261
2005-01-25 00:28:45 +00:00
Thomas Bluemel
a3209eaf3e return error status in case probing the parameters failed in IoCreateFile()
svn path=/trunk/; revision=13260
2005-01-25 00:05:56 +00:00
Thomas Bluemel
5cb56337b2 some more parameter checks in IoCreateFile()
svn path=/trunk/; revision=13259
2005-01-24 23:59:30 +00:00
Hartmut Birr
24154dbca8 - Fixed my last commit.
svn path=/trunk/; revision=13258
2005-01-24 23:23:38 +00:00
Hartmut Birr
a7cbe13790 - Interpret STATUS_TIMEOUT as error in PsLockProcess.
svn path=/trunk/; revision=13257
2005-01-24 22:58:54 +00:00
Gé van Geldorp
93551abbd2 Implement IO_NO_PARAMETER_CHECKING flag
svn path=/trunk/; revision=13256
2005-01-24 22:02:09 +00:00
Martin Fuchs
d7aea92eeb adjust properties (CRLF line endlings, ignores)
svn path=/trunk/; revision=13255
2005-01-24 21:25:27 +00:00
Gé van Geldorp
d4d3631bfe Rollback last change, since we found out that IoCreateFile can accept
usermode parameters too

svn path=/trunk/; revision=13254
2005-01-24 21:21:17 +00:00
Martin Fuchs
4b48677143 fix typo and update CVS->Subversion
svn path=/trunk/; revision=13253
2005-01-24 21:05:37 +00:00
Gé van Geldorp
fe7b4968ce IoCreateFile should be passed kernelmode parameters.
svn path=/trunk/; revision=13252
2005-01-24 19:42:54 +00:00
Gé van Geldorp
c011a8410e Check error code before it is possibly clobbered. Spotted by w3seek.
svn path=/trunk/; revision=13251
2005-01-24 19:32:40 +00:00
Casper Hornstrup
610b936ad0 Add missing file
svn path=/branches/xmlbuildsystem/; revision=13250
2005-01-24 18:47:52 +00:00
Art Yerkes
c396222f34 Minor fix to ICMP receive.
svn path=/trunk/; revision=13249
2005-01-24 16:58:53 +00:00
Eric Kohl
0523b42582 Implement DuplicateString and QueryRegistryValue.
svn path=/trunk/; revision=13248
2005-01-24 14:17:30 +00:00
Eric Kohl
0c3b08d721 MyMalloc must not zero the memory.
svn path=/trunk/; revision=13247
2005-01-24 11:53:36 +00:00
Gé van Geldorp
87be65443f tinus <o112w8r02@sneakemail.com>
Don't allow selecting disabled menu items

svn path=/trunk/; revision=13246
2005-01-24 09:41:00 +00:00
Gé van Geldorp
5888e99ef3 Sylvain Petreolle <spetreolle@yahoo.fr>:
Add makefile for "polytest" test & enable it.
Fix compile warnings for diskspeed & zwcontinue tests

svn path=/trunk/; revision=13245
2005-01-24 09:33:21 +00:00
Gé van Geldorp
1aef2603e8 Fix compilation
svn path=/trunk/; revision=13244
2005-01-24 09:31:42 +00:00
Steven Edwards
c8f0cffff4 Correct location of a few stubs. Getting ready to sync in a day or so.
svn path=/trunk/; revision=13243
2005-01-24 05:12:15 +00:00
Alex Ionescu
a7272a8721 Proper support for vfatlib and allow -j2 to work (as long as make tools && make implib && make -j2 is used).
svn path=/trunk/; revision=13242
2005-01-24 02:08:25 +00:00
Thomas Bluemel
35c792ee32 fixed prototype of ZwOpenSemaphore
svn path=/trunk/; revision=13241
2005-01-24 00:44:21 +00:00
Thomas Bluemel
1796f01382 minor fixes
svn path=/trunk/; revision=13240
2005-01-24 00:43:39 +00:00
Gé van Geldorp
b1f6601134 Nt -> Zw
svn path=/trunk/; revision=13239
2005-01-24 00:18:57 +00:00
Gé van Geldorp
49af955e23 Make memory layout of GET_RETRIEVAL_DESCRIPTOR match RETRIEVAL_POINTERS_BUFFER
svn path=/trunk/; revision=13238
2005-01-24 00:15:29 +00:00
Thomas Bluemel
e453a1e961 don't copy the entire security descriptor to the stack in SeCaptureSecurityDescriptor() when previous mode is kernel mode and capturing for kernel mode is undesired
svn path=/trunk/; revision=13237
2005-01-24 00:09:04 +00:00
Thomas Bluemel
064504a61d 1. fixed the timer functions to securely access buffers
2. minor fixes due to copy+paste

svn path=/trunk/; revision=13236
2005-01-23 23:51:40 +00:00
Thomas Bluemel
7c02041548 1. fixed prototypes of NtSetSystemTime and NtQuerySystemTime and made them handle passed buffers securely
2. check for the SeSystemtimePrivilege privilege in NtSetSystemTime()
3. write debug messages when privileges are missing

svn path=/trunk/; revision=13235
2005-01-23 23:02:19 +00:00
Emanuele Aliberti
4301549d0d ObjectBody->Permanent setting cleaned.
svn path=/trunk/; revision=13234
2005-01-23 22:42:31 +00:00
Gé van Geldorp
60a81b9a9b Fix typo
svn path=/trunk/; revision=13233
2005-01-23 22:25:11 +00:00
Thomas Bluemel
baf658a398 fixed semaphore functions to securely access buffers and some minor fixes
svn path=/trunk/; revision=13232
2005-01-23 22:09:27 +00:00
Alex Ionescu
b25bf92b14 Fix svn:ignore problems and remove alignment hacks
svn path=/trunk/; revision=13231
2005-01-23 21:26:27 +00:00
Gé van Geldorp
acb0d0d67d Nt -> Zw fixes
svn path=/trunk/; revision=13230
2005-01-23 21:19:24 +00:00
Thomas Bluemel
7b20e4cdbf get rid of the reactos-only RTL_REGISTRY_ENUM flag and added more debug messages to ease debugging failures
svn path=/trunk/; revision=13229
2005-01-23 20:58:28 +00:00
Gé van Geldorp
05934c33b6 Make gdb stack trace back to usermode work again
svn path=/trunk/; revision=13228
2005-01-23 20:57:45 +00:00
Gé van Geldorp
c377a52fa4 Keep usermode stack 4-byte aligned
svn path=/trunk/; revision=13227
2005-01-23 20:48:19 +00:00
Thomas Bluemel
e9c80bcd6f the system process should be called "System", not "SYSTEM"
svn path=/trunk/; revision=13226
2005-01-23 18:18:08 +00:00
Casper Hornstrup
04f77b12fe Add documentation
svn path=/branches/xmlbuildsystem/; revision=13225
2005-01-23 12:47:42 +00:00
Art Yerkes
fcfa663724 Fixed DNS lookup in ping.
Fixed output format.

Patch by Andrew Munger (WaxDragon)

svn path=/trunk/; revision=13224
2005-01-23 11:01:51 +00:00
Art Yerkes
a23df2bed0 Fixed broadcast UDP.
lan: Added calculation of broadcast address.
fileobjs: Check for broadcast receive.
neighbor: Check for broadcast send.
interface: Use cached broadcast address.
udp: Fix port allocation.

svn path=/trunk/; revision=13223
2005-01-23 09:51:03 +00:00
Casper Hornstrup
3ccd7d62e9 * Build epsapi, dxguid, devenum, imm32, dinput8, dsound, expat, glu32, vfatlib
* Build dbghelp, gdiplus, dxdiagn, imagehlp, strmiids, dinput, fmifs, psapi 


svn path=/branches/xmlbuildsystem/; revision=13222
2005-01-23 01:33:35 +00:00
Casper Hornstrup
ab4b7a72aa * Build crtdll
* Add module attribute "mangledsymbols" to control --kill-at option for dlltool in order to allow preservation of mangled symbols


svn path=/branches/xmlbuildsystem/; revision=13221
2005-01-22 22:00:17 +00:00
Thomas Bluemel
063e4f41a5 don't leak resources on failure
svn path=/trunk/; revision=13220
2005-01-22 20:59:49 +00:00
Thomas Bluemel
31067aaecb RtlCaptureUnicodeString should also check the buffers that the UNICODE_STRING structure points to...
svn path=/trunk/; revision=13219
2005-01-22 20:53:14 +00:00
Casper Hornstrup
421cfcb760 Add missing file
svn path=/branches/xmlbuildsystem/; revision=13218
2005-01-22 18:08:28 +00:00
Casper Hornstrup
28243f499d Build control panel applets
svn path=/branches/xmlbuildsystem/; revision=13217
2005-01-22 18:06:37 +00:00
Casper Hornstrup
d0acee6af8 * Invoke cabman when building a CD
* Entrypoint attribute on <module> to override default entrypoint
* Use entrypoint _DrvEnableDriver@12 for display drivers


svn path=/branches/xmlbuildsystem/; revision=13216
2005-01-22 17:38:31 +00:00
Thomas Bluemel
87a8d3ebeb more NtXxx vs. ZwXxx fixes
svn path=/trunk/; revision=13215
2005-01-22 15:48:00 +00:00
Casper Hornstrup
ac58a35d34 * Build cabman and zlib
* Add iso module type


svn path=/branches/xmlbuildsystem/; revision=13214
2005-01-22 15:27:06 +00:00
Royce Mitchell III
cd93112435 This fixes the small problem that generated files were being added to the Dev-C++ project even though they didn't yet exist. - patch by Trevor McCort
svn path=/branches/xmlbuildsystem/; revision=13213
2005-01-22 15:09:36 +00:00
Thomas Bluemel
96245a4ae9 return the status code when probing the buffer failed
svn path=/trunk/; revision=13212
2005-01-22 14:34:54 +00:00
Casper Hornstrup
87f69aaf32 * Build freeldr
* Add BootLoader and ObjectLibrary module types
* Add <compilerflag> tag


svn path=/branches/xmlbuildsystem/; revision=13211
2005-01-22 14:07:45 +00:00
Thomas Bluemel
d361170c2c 1. remove obsolete buffer size checks from NtQueryInformationProcess()
2. fixed some buffer checks

svn path=/trunk/; revision=13210
2005-01-22 13:34:27 +00:00
Thomas Bluemel
1be6d7bcaa fixed the prototype of KePulseEvent() and made NtPulseEvent() return the previous state
svn path=/trunk/; revision=13209
2005-01-22 12:45:03 +00:00
Thomas Bluemel
72ae3c4197 1. A few Nt vs. Zw fixes
2. Fixed and extended RtlCaptureUnicodeString()
3. securely access buffers in NtQuerySystemEnvironmentValue() and NtSetSystemEnvironmentValue() and check for required SeSystemEnvironmentPrivilege privilege

svn path=/trunk/; revision=13208
2005-01-22 12:20:12 +00:00
Art Yerkes
9fbbec950f Working ping.
msafd: Added datagram flag to SOCK_RAW sockets
transport/* did some refactoring, added some printing.
  Main thing: there is now a generic IP only header builder in rawip that's
  shared by udp and rawip.
afd: Make sure datagram sockets always select writable
     Add some socket close infrastructure to kill associated active polls

svn path=/trunk/; revision=13207
2005-01-22 06:47:33 +00:00
Alex Ionescu
07ea0d9fa0 Fix remaning ROS bugs. A minor hack has been added to ObCreateObject because it seems that gcc doesn't dword-align the stacks?!! Thanks to w3seek for some of the ex patches.
svn path=/trunk/; revision=13206
2005-01-22 03:54:23 +00:00
Steven Edwards
c6bd59c308 more syncing of setupapi
svn path=/trunk/; revision=13205
2005-01-22 02:38:07 +00:00
Art Yerkes
7d3a25e1cc Removed uninitialized uSec and its use.
svn path=/trunk/; revision=13204
2005-01-22 02:06:56 +00:00
Steven Edwards
e6c8a783fb started syncing setupapi.dll with Winehq. Once I get things in sync I will import to the vendor branch and do a proper merge.
svn path=/trunk/; revision=13203
2005-01-22 01:35:07 +00:00
Alex Ionescu
e5c8bc95a6 Fix all remaning alignment errors. Ros is now moderately usable. Error in explorer remains making disk browsing impossible, but with other tools it still works
svn path=/trunk/; revision=13202
2005-01-22 01:30:05 +00:00
Alex Ionescu
f01dc245a1 ReactOS now boots. More bug fixes needed
svn path=/trunk/; revision=13201
2005-01-22 01:00:12 +00:00
Thomas Bluemel
06bcb7b055 remove double function head of NtCreateEvent()
svn path=/trunk/; revision=13200
2005-01-21 23:58:30 +00:00
Alex Ionescu
686128e903 First patch to fix seriously broken ROS (thank Thomas). Work in progress, will be cleaned up at the end
svn path=/trunk/; revision=13199
2005-01-21 23:35:19 +00:00
Thomas Bluemel
1b5ef0524f don't probe ObjectAttributes if NULL
svn path=/trunk/; revision=13198
2005-01-21 23:01:33 +00:00
Thomas Bluemel
bbc9243d77 NtCreateJobObject() should create the handle instead of just returning a uninitialized variable
svn path=/trunk/; revision=13197
2005-01-21 22:25:54 +00:00
Thomas Bluemel
81fd53f09d Simplify buffer checks for NtQueryInformation...() and NtSetInformation...() using universal macros and information class tables
svn path=/trunk/; revision=13196
2005-01-21 21:37:32 +00:00
Thomas Bluemel
52fadec1ee the ProcessPriorityBoost class expects ULONG, not BOOL
svn path=/trunk/; revision=13195
2005-01-21 21:34:49 +00:00
Thomas Bluemel
ec6ea0795a properly query the device map
svn path=/trunk/; revision=13194
2005-01-21 21:29:29 +00:00
Casper Hornstrup
7b13462f5a Build comdlg32, oleaut32, wine_unicode, winspool, shell32, and shlwapi
svn path=/branches/xmlbuildsystem/; revision=13193
2005-01-21 21:06:40 +00:00
Thomas Bluemel
4da8f45753 properly set the access token in CreateProcessAsUser()
svn path=/trunk/; revision=13192
2005-01-21 20:31:24 +00:00
Royce Mitchell III
23a949dd32 attribute 'first' of <file> must be 'true' or 'false'
remove an obsolete comment

svn path=/branches/xmlbuildsystem/; revision=13191
2005-01-21 18:15:10 +00:00
Casper Hornstrup
f7201d8993 Build cabinet, advpack, rpcrt4, ole32, version, cards, and uuid
svn path=/branches/xmlbuildsystem/; revision=13190
2005-01-21 18:09:02 +00:00
Gregor Anich
955bb3e32e Fix compiler warning.
svn path=/trunk/; revision=13189
2005-01-21 17:24:34 +00:00
Thomas Bluemel
a016befb78 fixed ASSERT statement, thanks to blight for pointing it out
svn path=/trunk/; revision=13188
2005-01-21 17:17:13 +00:00
Gé van Geldorp
27c9d50d1d Merge back commit from winehq
svn path=/trunk/; revision=13187
2005-01-21 16:50:11 +00:00
Thomas Bluemel
1e0c9bb940 partial implementation of NtTerminateJobObject()
svn path=/trunk/; revision=13186
2005-01-21 14:52:53 +00:00
Thomas Bluemel
21f9ca1b64 implemented NtOpenJobObject()
svn path=/trunk/; revision=13185
2005-01-21 14:40:06 +00:00
Thomas Bluemel
f67131616e partial implementation of NtAssignProcessToJobObject() and NtCreateJobObject()
svn path=/trunk/; revision=13184
2005-01-21 14:12:03 +00:00
Thomas Bluemel
b3dfa90a2f add PoolType parameter to ObpCaptureObjectAttributes() and removed an unused parameter
svn path=/trunk/; revision=13183
2005-01-21 13:25:28 +00:00
Eric Kohl
3c5d760b6c Implement MyFree, MyMalloc and MyReAlloc.
svn path=/trunk/; revision=13182
2005-01-21 12:27:32 +00:00
Thomas Bluemel
599f7e108c fixed ObpCaptureObjectAttributes() so it doesn't copy the object name if probing previously failed
svn path=/trunk/; revision=13181
2005-01-21 11:14:41 +00:00
Thomas Bluemel
0dbd86466b fixed usage of uninitialized variable
svn path=/trunk/; revision=13180
2005-01-21 10:33:30 +00:00
Thomas Bluemel
f15230fffc added helper functions ObpCaptureObjectAttributes() and ObpReleaseObjectAttributes() to be used to safely capture OBJECT_ATTRIBUTES structures
svn path=/trunk/; revision=13179
2005-01-21 10:28:13 +00:00
Thomas Bluemel
d183d616d0 SeCaptureSecurityDescriptor() should only copy SIDs and ACLs when present
svn path=/trunk/; revision=13178
2005-01-21 02:39:59 +00:00
Mike Nordell
53ea2da74d Fix crashing browsing namespace with non-zero-terminated UNICODE_STRING.
svn path=/trunk/; revision=13177
2005-01-21 02:34:33 +00:00
Thomas Bluemel
be2cf1c579 SeCaptureSecurityDescriptor() should take PoolType into account...
svn path=/trunk/; revision=13176
2005-01-21 02:19:13 +00:00
Thomas Bluemel
f693575e35 implemented SeCaptureSecurityDescriptor() and SeReleaseSecurityDescriptor(), thanks also to Alex
svn path=/trunk/; revision=13175
2005-01-21 02:14:52 +00:00
Gunnar Dalsnes
e0e2a23ad6 forgot a letter...
svn path=/trunk/; revision=13174
2005-01-20 23:25:05 +00:00
Gunnar Dalsnes
759171e1fe add readme with rtl restrictions info
svn path=/trunk/; revision=13172
2005-01-20 23:21:14 +00:00
Casper Hornstrup
5ce17b05d1 Modules are built in the intermediate directory.
svn path=/branches/xmlbuildsystem/; revision=13171
2005-01-20 23:05:36 +00:00
Gé van Geldorp
1e2f8e3c7d Gedi <gedi@ntworld.com>
Prevent possible use of uninitialized var warning

svn path=/trunk/; revision=13170
2005-01-20 22:45:22 +00:00
Casper Hornstrup
45e6d4dd39 Fix copy/paste error.
svn path=/branches/xmlbuildsystem/; revision=13169
2005-01-20 22:24:30 +00:00
Casper Hornstrup
49d3351175 * Build bin2res, winmm, comctl32, aclui, acledit
* Correct dependencies for build tool invocations
* Normalize paths in the generated makefile


svn path=/branches/xmlbuildsystem/; revision=13168
2005-01-20 22:19:01 +00:00
Thomas Bluemel
808fec3b76 don't touch memory outside the area to be probed in ProbeForWrite() and minor address range check fixes in ProbeForRead/Write()
svn path=/trunk/; revision=13167
2005-01-20 21:03:35 +00:00
Alex Ionescu
0b7bbeea36 Fix FsRtl function prototypes
svn path=/trunk/; revision=13166
2005-01-20 13:31:49 +00:00
Thomas Bluemel
1afa98bcff fixed uninitialized variables warning
svn path=/trunk/; revision=13165
2005-01-20 13:17:57 +00:00
Thomas Bluemel
0d3598e98b fixed uninitialized variables warning
svn path=/trunk/; revision=13164
2005-01-20 13:13:16 +00:00
Gé van Geldorp
5be65d6f1d ReactOS additions/changes
svn path=/trunk/; revision=13163
2005-01-20 11:41:23 +00:00
Gé van Geldorp
f24b6093d2 Initial vendor drop
svn path=/trunk/; revision=13162
2005-01-20 11:37:29 +00:00
Gé van Geldorp
4ba8fcfa61 Remove old version
svn path=/trunk/; revision=13161
2005-01-20 11:23:48 +00:00
Eric Kohl
cba8100915 - Update LegalAnsiCharacterArray (set FAT, HPFS and NTFS flags).
- Improve the prototypes of FsRtlIsDbcsInExpression, FsRtlIsFatDbcsLegal and FsRtlIsHpfsDbcsLegal.

svn path=/trunk/; revision=13156
2005-01-20 10:04:22 +00:00
Royce Mitchell III
a04e56cbf4 beginnings of dev-c++ backend - patch by Trevor McCort
svn path=/branches/xmlbuildsystem/; revision=13155
2005-01-20 06:42:22 +00:00
Royce Mitchell III
03c9d860ba require attributes to have values
svn path=/branches/xmlbuildsystem/; revision=13154
2005-01-20 06:36:37 +00:00
Steven Edwards
dc266b8b95 hard code mingw32-* for cross-compile, this is bad.
svn path=/branches/xmlbuildsystem/; revision=13153
2005-01-20 06:29:08 +00:00
Royce Mitchell III
0b93b06fee mark off area where variables need to differ for *nix
svn path=/branches/xmlbuildsystem/; revision=13152
2005-01-20 06:09:07 +00:00
Thomas Bluemel
c894dc2473 fixed copying buffers in the ProcessImageFileName class in NtQueryInformationProcess() when copying the image name from a process other than the current one
svn path=/trunk/; revision=13151
2005-01-20 02:14:20 +00:00
Thomas Bluemel
e9bb005dfb fixed ProbeForWrite() for optimized builds
svn path=/trunk/; revision=13149
2005-01-20 01:19:52 +00:00
Thomas Bluemel
f9c455c59e move implementation of NtOpenProcessToken() to NtOpenProcessTokenEx()
svn path=/trunk/; revision=13148
2005-01-20 00:44:55 +00:00
Thomas Bluemel
d6628e3e23 wrap access to foreign Peb with SEH
svn path=/trunk/; revision=13147
2005-01-20 00:31:52 +00:00
Thomas Bluemel
cfdf8abfca fixed typo
svn path=/trunk/; revision=13146
2005-01-20 00:14:50 +00:00
Thomas Bluemel
80d404e4e9 implemented the ProcessDebugPort class for NtSetInformationProcess()
svn path=/trunk/; revision=13145
2005-01-20 00:12:38 +00:00
Thomas Bluemel
f006a0d6f9 1. implemented the ProcessDebugPort class for NtQueryInformationProcess()
2. Probe user mode pointers in NtQueryInformationProcess() and NtSetInformationProcess()

svn path=/trunk/; revision=13144
2005-01-19 23:38:06 +00:00
Thomas Bluemel
3638fef3ce secure access to buffers in NtQueryInformationProcess() and NtSetInformationProcess()
svn path=/trunk/; revision=13143
2005-01-19 22:47:26 +00:00
Thomas Bluemel
9543041c3d implemented the TokenSessionId class for NtQueryInformationToken()
svn path=/trunk/; revision=13142
2005-01-19 22:45:14 +00:00
Thomas Bluemel
51e2ff7462 1. fixed the ProcessAccessToken information class to properly check buffers
2. implemented the ProcessExceptionPort information class

svn path=/trunk/; revision=13141
2005-01-19 21:47:51 +00:00
KJK::Hyperion
223c560590 Temporary hack to make ntoskrnl stop crashing - an user-mode pointer (in the EBP register) was being dereferenced without any check
Since I don't know what this is for, I'm disabling it for now - it works for people reporting the crash, and it apparently only breaks GDB support. Alex, this should be your baby, please have a look

svn path=/trunk/; revision=13140
2005-01-19 21:05:26 +00:00
Thomas Bluemel
030b284e30 fixed typo in PsLockProcess()
svn path=/trunk/; revision=13139
2005-01-19 21:04:37 +00:00
Thomas Bluemel
f2e99da071 implemented the ProcessSessionInformation information class
svn path=/trunk/; revision=13138
2005-01-19 20:59:53 +00:00
Steven Edwards
edd0e23bb6 make NtFlushVirtualMemory return STATUS_SUCCESS rather than hanging as being UNIMPLEMENTED. Added a DPRINT to warn that its a stub
svn path=/trunk/; revision=13137
2005-01-19 20:26:56 +00:00
Thomas Bluemel
837f31e111 fixed implementation of SetErrorMode() which should rather store the mode in the EPROCESS structure
svn path=/trunk/; revision=13136
2005-01-19 20:16:26 +00:00
Casper Hornstrup
4b9c656dd5 * Build freetype, win32k, and video drivers
* Generate module.spec.def, not module.def


svn path=/branches/xmlbuildsystem/; revision=13135
2005-01-19 19:49:57 +00:00
Thomas Bluemel
c0ff13e571 made SetErrorMode() thread-safe
svn path=/trunk/; revision=13134
2005-01-19 19:14:56 +00:00
Gé van Geldorp
5b0f6dccee tinus <o112w8r02@sneakemail.com>
This patch fixes some weirdness in the clipping logic. It also seems to make
these 'black cursor' images happen less often, but I can't tell for sure.

svn path=/trunk/; revision=13133
2005-01-19 14:25:10 +00:00
Gé van Geldorp
c668ac40c1 tinus <o112w8r02@sneakemail.com>
Prevent part of "My Computer" icon being erased during startup

svn path=/trunk/; revision=13132
2005-01-19 14:15:29 +00:00
Steven Edwards
626bad3278 Change UNIMPLEMENTED to DPRINT1 for NtGdiRemoveFontResource to make the MS Office installer a little more happy
svn path=/trunk/; revision=13131
2005-01-19 06:51:35 +00:00
Alex Ionescu
5b90245c50 Bug fixes against uninitizlied variables and support for tree-wide optimization (do not try yet, crashes in bootvid).
svn path=/trunk/; revision=13130
2005-01-19 03:33:43 +00:00
Royce Mitchell III
6a6a71b2f1 added 'first' attribute to <file>
svn path=/branches/xmlbuildsystem/; revision=13129
2005-01-19 01:37:35 +00:00
Alex Ionescu
dfb0ecac30 Fix hacks from last night and properly share the code
svn path=/trunk/; revision=13128
2005-01-19 01:11:43 +00:00
Thomas Bluemel
662d94147e fixed prototype of NtNotifyChangeKey()
svn path=/trunk/; revision=13127
2005-01-18 22:47:16 +00:00
KJK::Hyperion
5a3c9154cd Implemented TransmitFile (non-functional, depends on unimplemented features), added some missing definitions to mswsock.h
svn path=/trunk/; revision=13126
2005-01-18 22:36:39 +00:00
Hartmut Birr
1454ac7d81 - Fixed the disabling of interrupts on the stack before sysexit.
svn path=/trunk/; revision=13125
2005-01-18 18:12:41 +00:00
Royce Mitchell III
6f056ee7ce msvc6 compatibility
svn path=/branches/xmlbuildsystem/; revision=13124
2005-01-18 17:00:47 +00:00
Eric Kohl
b924c1f528 Revert accidential changes.
svn path=/trunk/; revision=13123
2005-01-18 14:16:01 +00:00
Eric Kohl
fafbe81db6 - Remove Nt/ZwQueryOleDirectoryFile.
- Nt/ZwPlugPlayControl has got 3 instead of 4 arguments.

svn path=/trunk/; revision=13122
2005-01-18 13:59:14 +00:00
Gunnar Dalsnes
38646d1b3f replace heap allocs with pool allocs (cant use heap allocs in rtl)
svn path=/trunk/; revision=13121
2005-01-18 13:27:28 +00:00
Gé van Geldorp
0612bf5ddf SVN property stuff
svn path=/trunk/; revision=13120
2005-01-18 11:07:34 +00:00
Gé van Geldorp
058076c6a2 Fix crash during boot
svn path=/trunk/; revision=13119
2005-01-18 10:41:49 +00:00
Gé van Geldorp
820d97c380 Fix line endings
svn path=/trunk/; revision=13118
2005-01-18 10:08:31 +00:00
Alex Ionescu
3f10399e5d Fix to unbreak tree. This is temporary until I come up with a good NtCurrentPeb macro that can be shared. Note that the brekage is because an ntdll only function was put in rtl but never used from ntoskrnl until my previous patch. It could be shared, but I need to do some work on it.
svn path=/trunk/; revision=13117
2005-01-18 06:00:55 +00:00
Steven Edwards
e67bd739cb added cabinet,msi and msiexec to the Makefile. This gets IE, Office and friends a little further along
svn path=/trunk/; revision=13116
2005-01-18 05:52:54 +00:00
Art Yerkes
c43897388e This file migrated to ip.a a while back.
svn path=/trunk/; revision=13115
2005-01-18 04:41:17 +00:00
Art Yerkes
2cbfa21b96 Removed this IoReleaseCancelSpinlock. I believe it's correct but seems to
bugcheck others.

svn path=/trunk/; revision=13114
2005-01-18 04:39:15 +00:00
Alex Ionescu
e4d14eb7ad Share duplicated Rtl code. I've taken care to use the most recent code, so now ntoskrnl can also do environment string expansion.
svn path=/trunk/; revision=13113
2005-01-18 04:33:31 +00:00
Art Yerkes
c435570afa HTTP registry browser.
svn path=/trunk/; revision=13112
2005-01-18 04:25:27 +00:00
Art Yerkes
6ef8bebde9 Browsing netreg, the http registry server works.
svn path=/trunk/; revision=13111
2005-01-18 04:14:13 +00:00
Alex Ionescu
fc779d75d9 MSVC compatibility for NCITool, fix more svn:ignore stuff..., enable interrupts during APC delivery and syscall calling, because the functions are probably expecting them to be enabled at that time.
svn path=/trunk/; revision=13110
2005-01-18 04:02:49 +00:00
Mark Tempel
ecac8a6e91 Update to load usbuhci
svn path=/trunk/; revision=13109
2005-01-18 03:35:37 +00:00
Mark Tempel
c1d9eb7340 Update to add some debugging messages.
svn path=/trunk/; revision=13108
2005-01-18 03:34:18 +00:00
Alex Ionescu
c2f6ea52b4 Fix SYSENTER support in VMware. New benchmar: 200ms. ***70%*** faster then with Int2E. Fix FPU save bug/explorer bug. Fix Vmware 4.0 crash bug. HARTMUT IS A GENIUS.
svn path=/trunk/; revision=13107
2005-01-18 03:28:00 +00:00
Mark Tempel
79da6bc351 svn path=/trunk/; revision=13106 2005-01-18 02:12:45 +00:00
Art Yerkes
3fd5cf1bd2 Removed old stupid cruft i added when i didn't understand this code.
svn path=/trunk/; revision=13105
2005-01-18 01:32:01 +00:00
Thomas Bluemel
2215233073 fixed GetCurrentDirectoryA() to properly handle the case where the caller only queries the required buffer size.
svn path=/trunk/; revision=13104
2005-01-17 22:05:00 +00:00
Casper Hornstrup
9b92b2cc9a Build storage drivers
svn path=/branches/xmlbuildsystem/; revision=13103
2005-01-17 21:40:12 +00:00
Hartmut Birr
d259b9f2fc - Set the limit of the user mode code/data segment back to 4GB.
svn path=/trunk/; revision=13102
2005-01-17 21:29:43 +00:00
Gé van Geldorp
3dd9f51ff6 Fix building on Windows
svn path=/trunk/; revision=13101
2005-01-17 20:32:09 +00:00
Hartmut Birr
fa74b30016 - Fixed the sysexit check. We must use a kernel mode segment to access KiFastSystemCallDisable.
- Fixed some segment limits.

svn path=/trunk/; revision=13100
2005-01-17 19:22:03 +00:00
Art Yerkes
dc88ce8729 More commits of the same. SVN is being a bit picky about resolved
conflicts.

svn path=/branches/xmlbuildsystem/; revision=13099
2005-01-17 16:27:28 +00:00
Art Yerkes
076c15efdb - Add a NUL definition, as well as rmkdir
- Create directory targets for intermediate files area
- .def files are in the source tree in our current scheme

svn path=/branches/xmlbuildsystem/; revision=13098
2005-01-17 16:26:11 +00:00
Eric Kohl
69688ce6ab Patch by tinus.Fix media change support for CDROMs. This fixes bug #471. Patch by tinus.
svn path=/trunk/; revision=13097
2005-01-17 14:30:31 +00:00
Eric Kohl
968f3f7c24 Enable CdfsOpenFile() to open a file using a relative filename. This fixes bug #477. Patch by tinus.
svn path=/trunk/; revision=13096
2005-01-17 10:20:03 +00:00
Eric Kohl
27c0824f2c Remove obsolete code.
svn path=/trunk/; revision=13095
2005-01-17 10:16:17 +00:00
Eric Kohl
54703fcfc8 Set the environment variables %USERPROFILE% and %ALLUSERSPROFILE% for the Live-CD. Fixes bug #479.
Patch by tinus.

svn path=/trunk/; revision=13094
2005-01-17 09:50:10 +00:00
Alex Ionescu
13390d7cbd The actual fix...
svn path=/trunk/; revision=13093
2005-01-17 07:31:12 +00:00
Alex Ionescu
87a98e17d3 SVN Stupidity
svn path=/trunk/; revision=13092
2005-01-17 07:25:38 +00:00
Alex Ionescu
7b59e487ac Small fix
svn path=/trunk/; revision=13091
2005-01-17 07:24:10 +00:00
Alex Ionescu
f6559e22c4 SYSENTER support, INT2E Optimization, new Syscall Table/Stub generator and svn:ignore fixes. Please read associated Mailing List Post.
svn path=/trunk/; revision=13090
2005-01-17 07:10:34 +00:00
Art Yerkes
0eab4e1544 Assert writable on a new socket.
svn path=/trunk/; revision=13089
2005-01-17 01:30:26 +00:00
Emanuele Aliberti
3d23fea989 Alex Ionescu added.
svn path=/trunk/; revision=13088
2005-01-16 22:53:36 +00:00
Gé van Geldorp
230af59be2 Create performance test program
svn path=/trunk/; revision=13087
2005-01-16 22:35:11 +00:00
Casper Hornstrup
b71ea907b8 * Build networking components
* WINE DLL support


svn path=/branches/xmlbuildsystem/; revision=13086
2005-01-16 22:26:26 +00:00
Casper Hornstrup
b854348f4e Build input device drivers
svn path=/branches/xmlbuildsystem/; revision=13085
2005-01-16 18:39:32 +00:00
Casper Hornstrup
c5557e2907 Clean intermediate files.
svn path=/branches/xmlbuildsystem/; revision=13084
2005-01-16 18:30:40 +00:00
Casper Hornstrup
e7a44a6878 Build filesystems
svn path=/branches/xmlbuildsystem/; revision=13083
2005-01-16 18:14:04 +00:00
Casper Hornstrup
cca9835bf1 Build device drivers
svn path=/branches/xmlbuildsystem/; revision=13082
2005-01-16 17:24:37 +00:00
Casper Hornstrup
14af027c76 Build bus drivers
svn path=/branches/xmlbuildsystem/; revision=13081
2005-01-16 16:45:53 +00:00
Casper Hornstrup
772c512c90 Export functions in .def files
svn path=/branches/xmlbuildsystem/; revision=13080
2005-01-16 16:18:52 +00:00
Casper Hornstrup
fd7f52294b Don't include full path for --dllname
svn path=/branches/xmlbuildsystem/; revision=13079
2005-01-16 14:23:35 +00:00
Casper Hornstrup
40a6da67c4 * KernelModeDriver module support
* Build afd.sys


svn path=/branches/xmlbuildsystem/; revision=13078
2005-01-16 13:51:33 +00:00
Casper Hornstrup
41c7d92f46 Add resources to existing modules.
svn path=/branches/xmlbuildsystem/; revision=13077
2005-01-16 11:52:30 +00:00
Gé van Geldorp
182c4064e6 Use native BOOLEAN instead of win32k BOOL
svn path=/trunk/; revision=13076
2005-01-16 11:29:03 +00:00
Art Yerkes
9f8bfdb6c1 Added xml for ip libs.
svn path=/branches/xmlbuildsystem/; revision=13075
2005-01-16 11:02:12 +00:00
Gé van Geldorp
3944d90e5e Implement LOAD_LIBRARY_AS_DATAFILE flag (forgotten file)
svn path=/trunk/; revision=13074
2005-01-16 09:44:07 +00:00
Gé van Geldorp
06a877e885 Implement LOAD_LIBRARY_AS_DATAFILE flag
svn path=/trunk/; revision=13073
2005-01-16 09:36:19 +00:00
Art Yerkes
1231f84084 Corrected filename trap.S -> trap.s
svn path=/branches/xmlbuildsystem/; revision=13072
2005-01-16 09:24:00 +00:00
Royce Mitchell III
c5e94f140e msys compatibility fix
svn path=/branches/xmlbuildsystem/; revision=13071
2005-01-15 23:15:04 +00:00
Royce Mitchell III
2735c4ca05 remove unnecessary call to c_str()
svn path=/branches/xmlbuildsystem/; revision=13070
2005-01-15 23:14:53 +00:00
Casper Hornstrup
8df8ba2e6a Refactor GenerateGlobalCFlagsAndProperties
svn path=/branches/xmlbuildsystem/; revision=13069
2005-01-15 23:00:02 +00:00
Casper Hornstrup
d451f1d1f2 Windres support.
svn path=/branches/xmlbuildsystem/; revision=13068
2005-01-15 22:32:01 +00:00
Hartmut Birr
a30a353dcb - Fixed some minor bugs.
- Moved the definition for unicode compiling to the make file.  
- Wait on the input handle instead to poll it every 40ms.
- Use the number of cpus for time calculations.

svn path=/trunk/; revision=13067
2005-01-15 20:28:19 +00:00
Hartmut Birr
c30d55149e - 'Y', 'N', 'K' and 'Q' must be upper case.
svn path=/trunk/; revision=13066
2005-01-15 20:23:32 +00:00
Hartmut Birr
9bf671b7f6 - Fixed a bug which results in losing a character in the write buffer
if there is a  call to lseek immediately after the call to flsbuf.

svn path=/trunk/; revision=13065
2005-01-15 20:20:53 +00:00
Casper Hornstrup
9dab4509fa Import TechBot
svn path=/trunk/; revision=13064
2005-01-15 19:27:25 +00:00
Casper Hornstrup
568b27baeb Move Arch to irc module.
svn path=/trunk/; revision=13063
2005-01-15 19:15:45 +00:00
Casper Hornstrup
c5b25f41e4 * Use objects rather than archive when linking ntoskrnl
* Remove unused file except.s
* Remove duplicate strtok() in ntoskrnl


svn path=/branches/xmlbuildsystem/; revision=13062
2005-01-15 19:00:35 +00:00
Casper Hornstrup
f429c942db If test
svn path=/branches/xmlbuildsystem/; revision=13061
2005-01-15 17:59:06 +00:00
Thomas Bluemel
85ae2d98f2 janitory work
svn path=/trunk/; revision=13060
2005-01-15 16:42:28 +00:00
Thomas Bluemel
c0aceb10d9 janitory work
svn path=/trunk/; revision=13059
2005-01-15 16:35:30 +00:00
Thomas Bluemel
96bc14a162 fixed invalid dependency to msvcrt
svn path=/trunk/; revision=13058
2005-01-15 16:01:55 +00:00
Gé van Geldorp
e3ea6fc396 Hervé Poussineau <hpoussineau@fr.st>
Add localization to ctm

svn path=/trunk/; revision=13057
2005-01-15 15:28:51 +00:00
Gé van Geldorp
274efb4364 amdg <xbn@isw.uni-stuttgart.de>
Spanish translation for timedate.cpl

svn path=/trunk/; revision=13056
2005-01-15 15:09:22 +00:00
Casper Hornstrup
d3a30bf22d * LinkerFlag tag support
* Build addsys, libwine.a, user32.dll, advapi32.dll, gdi32.dll, msvcrt.dll, and welcome.exe


svn path=/branches/xmlbuildsystem/; revision=13055
2005-01-15 13:52:36 +00:00
Thomas Bluemel
0ccb1d80d9 delete empty and unused directory
svn path=/trunk/; revision=13054
2005-01-15 10:37:01 +00:00
Gé van Geldorp
8d58a5f254 Speed up 16bpp fills by a factor 2
svn path=/trunk/; revision=13053
2005-01-15 09:46:55 +00:00
Thomas Bluemel
cc5f2d10ce implemented QueryWorkingSet()
svn path=/trunk/; revision=13052
2005-01-15 02:44:25 +00:00
Thomas Bluemel
3e133f3384 implemented GetProcessMemoryInfo()
svn path=/trunk/; revision=13051
2005-01-15 02:33:06 +00:00
Mark Tempel
dd0186b047 oops... make sure that I use / not \ in path specifiers so that linux builds don't get confused.
svn path=/trunk/; revision=13050
2005-01-14 23:22:39 +00:00
Royce Mitchell III
65f058c4f0 *nix compatibility
svn path=/branches/xmlbuildsystem/; revision=13049
2005-01-14 21:40:55 +00:00
Steven Edwards
0cefd55620 get the new buildsystem to mostly work for cross-compiling. Thanks Casper, Royce, etc.
svn path=/branches/xmlbuildsystem/; revision=13048
2005-01-14 21:14:48 +00:00
Gé van Geldorp
b80866de7c Speed up 8bpp fills by a factor 4
svn path=/trunk/; revision=13047
2005-01-14 21:08:01 +00:00
Steven Edwards
ffdcbc9c60 started working on cross-compile support
svn path=/branches/xmlbuildsystem/; revision=13046
2005-01-14 20:41:45 +00:00
Gregor Anich
b06d14e94f Replace EXCEPTION_FLT_XXX by STATUS_FLOAT_XXX. Set ExceptionFlags to 0 for exceptions dispatched from ntoskrnl.
svn path=/trunk/; revision=13045
2005-01-14 19:42:47 +00:00
Mark Tempel
ee34d784d4 Initial commit of USB support. These are just stubs. They build, but that is about it. Expect heavy development in usbport, and usbuhci.
svn path=/trunk/; revision=13044
2005-01-14 16:12:34 +00:00
Gregor Anich
ef7b4a79dc Add STATUS_FLOAT_MULTIPLE_TRAPS/FAULTS.
svn path=/trunk/; revision=13043
2005-01-14 16:10:07 +00:00
Gregor Anich
6182a1c5f7 Fix MmAllocatePageForMdl when it cannot allocate as much memory as requested.
svn path=/trunk/; revision=13042
2005-01-14 14:47:03 +00:00
Filip Navara
f3367f398b We're not supposed to build elf.c, it's template file.
svn path=/branches/xmlbuildsystem/; revision=13041
2005-01-14 14:11:13 +00:00
Royce Mitchell III
30921fb72c better config.template.xml
svn path=/branches/xmlbuildsystem/; revision=13040
2005-01-14 14:10:41 +00:00
Royce Mitchell III
e35d70d940 add csq library to ntoskrnl
svn path=/branches/xmlbuildsystem/; revision=13039
2005-01-14 13:29:27 +00:00
Royce Mitchell III
dbc5b96c09 use ntoskrnl's def file when running dlltool, otherwise not all of ntoskrnl's exports make it into final executable.
svn path=/branches/xmlbuildsystem/; revision=13038
2005-01-14 06:51:37 +00:00
Steven Edwards
c4f5066636 added some missing license headers
svn path=/trunk/; revision=13037
2005-01-14 03:29:47 +00:00
Gregor Anich
e3345e4f7e MmMapLockedPagesSpecifyCache: Raise STATUS_ACCESS_VIOLATION instead of bugchecking when mapping into usermode.
svn path=/trunk/; revision=13036
2005-01-13 23:47:10 +00:00
Gé van Geldorp
b91bb39ed6 Small sync to Wine
svn path=/trunk/; revision=13035
2005-01-13 22:43:10 +00:00
Gé van Geldorp
888a6e6c36 Update status
svn path=/trunk/; revision=13034
2005-01-13 21:03:02 +00:00
Hartmut Birr
1edc02642e Reverted parts of the last changes. Vfat must always check the partition type if it is available.
svn path=/trunk/; revision=13032
2005-01-13 20:57:30 +00:00
Hartmut Birr
3360f1a1ae Fixed some length problems.
svn path=/trunk/; revision=13031
2005-01-13 20:54:13 +00:00
Hartmut Birr
7e23b350aa Don't add a terminating null character in RtlCopyString, if the destination buffer isn't large enough.
A ansi/unicode string doesn't need a terminating null character.


svn path=/trunk/; revision=13030
2005-01-13 20:53:35 +00:00
Gregor Anich
1a99f299a1 Fix unused variable warning.
svn path=/trunk/; revision=13029
2005-01-13 20:30:59 +00:00
Steven Edwards
bf73503d49 I am not the copyright holder on this one
svn path=/trunk/; revision=13028
2005-01-13 19:40:21 +00:00
Filip Navara
101235ab40 d_layer <dome@koganet.ne.jp>
Fix some problems with RtlStoreUlong:
- Store SECONDBYTE of the value correctly.
- Store ULONG value, not ULONG_PTR value.

svn path=/trunk/; revision=13027
2005-01-13 12:26:09 +00:00
Gé van Geldorp
2b79d428b9 Small Wine sync
svn path=/trunk/; revision=13026
2005-01-13 09:41:55 +00:00
Gé van Geldorp
289a65afa7 Small Wine sync
svn path=/trunk/; revision=13025
2005-01-13 09:28:58 +00:00
Gé van Geldorp
c5f29850b0 Fix compilation with DBG := 1 and KDBG := 0
svn path=/trunk/; revision=13024
2005-01-13 08:45:23 +00:00
Art Yerkes
2f96b042b8 Conditionalized possibly unused variable.
svn path=/trunk/; revision=13023
2005-01-13 07:29:12 +00:00
Art Yerkes
d8dd93dab9 Correct handling of zero address and zero address length in accept.
svn path=/trunk/; revision=13022
2005-01-13 06:55:44 +00:00
Art Yerkes
756723d2d5 Initial accept commit. Accept sockets now work although there are still
problems related to shutting down the listener itself at process close
time.  I've tried a simple server with it and it looks good.

svn path=/trunk/; revision=13021
2005-01-13 06:46:22 +00:00
Royce Mitchell III
46db98e48d kill the output exe files in a clean, too
svn path=/branches/xmlbuildsystem/; revision=13020
2005-01-13 05:10:33 +00:00
Royce Mitchell III
b657e0b0bf generate clean rules
svn path=/branches/xmlbuildsystem/; revision=13019
2005-01-13 05:01:22 +00:00
Royce Mitchell III
90d59a4287 create phony targets for each module name, so you can type 'make ntoskrnl' instead of having to type 'make ./ntoskrnl/ntoskrnl.exe'
svn path=/branches/xmlbuildsystem/; revision=13018
2005-01-13 04:17:53 +00:00
Royce Mitchell III
babc7c7c8a generate output rules for files under <if>
svn path=/branches/xmlbuildsystem/; revision=13017
2005-01-13 04:13:20 +00:00
Royce Mitchell III
84c57ede37 bugfixes to new <if> and related code
svn path=/branches/xmlbuildsystem/; revision=13016
2005-01-13 03:43:10 +00:00
Royce Mitchell III
c869f797fb add support for <if> and <property>
svn path=/branches/xmlbuildsystem/; revision=13015
2005-01-13 02:46:46 +00:00
Royce Mitchell III
31f4493219 fix variable cases
svn path=/branches/xmlbuildsystem/; revision=13012
2005-01-13 02:26:05 +00:00
Gé van Geldorp
b8ed66e011 Sync to Wine-20050111:
Eric Pouech <pouech-eric@wanadoo.fr>
Filip Navara <xnavara@volny.cz>
- 32 bit low level drivers now use a Unicode interface (used to be ANSI):
- Send the *_GETDEVCAPS messages in unicode format from the
  *GetDevCapsW function and call the *GetDevCapsW from their respective
  Ansi versions.
- Modify all low level drivers to correctly process the *_GETDEVCAPS
  messages as unicode.
- *_GETDEVCAPS messages are now mapped from/to unicode for 16 bit code.
- Removed all SoundBlaster naming oldies.
  Better use of some unicode functions (instead of Ansi) in winmm.
Alexandre Julliard <julliard@winehq.org>
- Fixed header dependencies to be fully compatible with the Windows
  headers (with help from Dimitrie O. Paun).
- Get rid of the ThunkData stubs, these are not functions.
Jeff Smith <whydoubt@hotmail.com>
- Fix for MIDI Mapper.
Robert Reif <reif@earthlink.net>
- Return actual result on error.
- Return flag for DRVM_MAPPER_PREFERRED_GET.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
  redundant.
Ge van Geldorp <gvg@reactos.com>
- Match PSDK definitions for LPCWAVEFORMATEX.

svn path=/trunk/; revision=13006
2005-01-12 23:33:10 +00:00
Gé van Geldorp
1141d723c3 Add some WAVE_FORMATs
svn path=/trunk/; revision=13005
2005-01-12 23:25:02 +00:00
Gé van Geldorp
5468d049be Add wine_dbgstr_w
svn path=/trunk/; revision=13004
2005-01-12 23:18:20 +00:00
Gé van Geldorp
222cd13d93 Sync to Wine-20050111:
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
  redundant.
Jacek Caban <jack@itma.pwr.wroc.pl>
- Added test of BindToStorage.
- Added some declarations to urlmon.idl.
- Implemented CreateAsyncBindCtx.
- Added test.

svn path=/trunk/; revision=13003
2005-01-12 23:10:02 +00:00
Gé van Geldorp
0edd21e67f Sync to Wine-20050111:
Eric Pouech <pouech-eric@wanadoo.fr>
- Another round of const correctness fixes.

svn path=/trunk/; revision=13002
2005-01-12 23:07:36 +00:00
Gé van Geldorp
2b7c8d6391 Sync to Wine-20050111:
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
  redundant.
Hans Leidekker <hans@it.vu.nl>
- Implement and test URLIS_URL flag in UrlIs().
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Const correctness fix.
- Remove unneeded headers to reduce unneeded rebuilds.
- Include shlwapi.h to get prototypes, and correct 2 wrong ones.
- Documentation fix.
Michael Stefaniuc <mstefani@redhat.de>
- Missing HeapFree's + 1 LocalFree (found by smatch).
Eric Pouech <pouech-eric@wanadoo.fr>
- Removed excessive statement (break after return or goto, not useful
  break, not needed vars...)
Jacek Caban <jack@itma.pwr.wroc.pl>
- Get rid of W->A calls.
Mike McCormack <mike@codeweavers.com>
- Use CreateEventW in preference to CreateEventA for unnamed events.
Francois Gouget <fgouget@free.fr>
- Remove unneeded NULL casts.
James Hawkins <truiken@gmail.com>
- use only stored result of Interlocked* in AddRef/Release
- expand TRACEs to display the ref count

svn path=/trunk/; revision=13001
2005-01-12 23:04:52 +00:00
Gé van Geldorp
bc33e47045 Sync to Wine-20050111:
Eric Pouech <pouech-eric@wanadoo.fr>
- Removed excessive statement (break after return or goto, not useful
  break, not needed vars...)

svn path=/trunk/; revision=13000
2005-01-12 22:57:30 +00:00
Gé van Geldorp
e247c380dd Add SHFMT_ constants
svn path=/trunk/; revision=12999
2005-01-12 22:51:23 +00:00
Gé van Geldorp
da5e391c9c Sync to Wine-20050111:
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Remove unneeded headers to reduce unneeded rebuilds.
Jacek Caban <jack@itma.pwr.wroc.pl>
- Get rid of W->A call.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
  redundant.
Alexandre Julliard <julliard@winehq.org>
- Remove some no longer needed AW functions.
- Janitorial: C booleans must not be compared against TRUE.
Hans Leidekker <hans@it.vu.nl>
- Stub implementations for SHUpdateImageA, SHHandleUpdateImage,
  SHObjectProperties, SHGetNewLinkInfo{A,W}, SHStartNetConnectionDialog,
  SHEmptyRecycleBin{A,W}, SHFormatDrive, SHQueryRecycleBin{A,W}.
- 'HeapAlloc can fail' fix for ExtractIconExA.
- Implement ExtractAssociatedIconA -> W.
- Correct prototype for SHObjectProperties.
- Forward SHGetNewLinkInfo to SHGetNewLinkInfoA.
Robert Shearman <rob@codeweavers.com>
- Remove unnecessary WNDPROC casts.
- Don't sort the children of My Computer in shell browse for folder
  dialog.
Eric Pouech <pouech-eric@wanadoo.fr>
- Removed excessive statement (break after return or goto, not useful
  break, not needed vars...)
- Fixed some errors in function prototypes.
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Added some Spanish translations.
Juan Lang <juan_lang@yahoo.com>
- Revert shell32 version to Win2K SP4 level.
Rein Klazes <wijn@wanadoo.nl>
- ShellExecuteEx, ExtractIconEx, SHFileOperation, SHGetFileInfo,
  SHGetPathFromIDList spec entries always refer to the Ansi
  version. Problem found by Paul Vriens.

svn path=/trunk/; revision=12998
2005-01-12 22:49:57 +00:00
Filip Navara
e8d6b09951 Fix definion of udphdr and use it.
svn path=/trunk/; revision=12997
2005-01-12 21:02:21 +00:00
Art Yerkes
85cffe692b Added table entry for SOCK_RAW IPPROTO_ICMP
svn path=/trunk/; revision=12996
2005-01-12 20:49:51 +00:00
Filip Navara
40847c3fd3 Call WSAStartup and WSACleanup.
svn path=/trunk/; revision=12995
2005-01-12 20:40:52 +00:00
Steven Edwards
f68079aff3 and now it should really build
svn path=/trunk/; revision=12994
2005-01-12 20:30:04 +00:00
Steven Edwards
8a991b772f ok one more time
svn path=/trunk/; revision=12993
2005-01-12 20:28:59 +00:00
Steven Edwards
bb2592ba58 a few more minor changes
svn path=/trunk/; revision=12992
2005-01-12 20:27:23 +00:00
Gé van Geldorp
6aa3e62e96 Sync to Wine-20050111:
Robert Shearman <rob@codeweavers.com>
- Remove unnecessary WNDPROC casts.
- Implement RPC_E_DISCONNECTED in proxies.
Mike McCormack <mike@codeweavers.com>
- Use CreateEventW in preference to CreateEventA for unnamed events.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
  redundant.
Bill Medland <billmedland@mercuryspeed.com>
- Implemented DceErrorInqText.

svn path=/trunk/; revision=12991
2005-01-12 20:23:51 +00:00
KJK::Hyperion
530cd953b8 elf.c renamed to elf.inc.h. There, happy?
svn path=/trunk/; revision=12990
2005-01-12 20:18:57 +00:00
Steven Edwards
a0b2f40b73 Added a port of BSD traceroute. needs work
svn path=/trunk/; revision=12989
2005-01-12 20:18:50 +00:00
Gé van Geldorp
f387572e84 Sync to Wine-20050111:
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
  redundant.
Eric Pouech <pouech-eric@wanadoo.fr>
- Fixed some errors in function prototypes.
Robert Shearman <rob@codeweavers.com>
- Remove unnecessary WNDPROC casts.

svn path=/trunk/; revision=12988
2005-01-12 20:12:53 +00:00
Gé van Geldorp
edc6b71a42 Sync to Wine-20050111:
Eric Pouech <pouech-eric@wanadoo.fr>
- Removed excessive statement (break after return or goto, not useful
  break, not needed vars...)
- Fixed some errors in function prototypes.
- Some missing const correctness fixes.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Robert Shearman <rob@codeweavers.com>
- Make the DECIMAL_SETZERO macro take a DECIMAL instead of a DECIMAL* as
  in the Microsoft headers and fix up the only caller.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
  redundant.
Bill Medland <billmedland@mercuryspeed.com>
- Fully initialise the structure to prevent ill-defined behaviour.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Remove unneeded headers to reduce unneeded rebuilds.
Robert Shearman <rob@codeweavers.com>
- Implement RPC_E_DISCONNECTED in proxies.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Add Russian translations.
Huw Davies <huw@codeweavers.com>
- The value of a packed VARIANT can be up to 1L << 26 - 1.
- Fix comment to reflect reality and indeed the code.
- Remove the remaining dependencies on internal structures from Invoke.
- GetTypeAttr should deep copy the typedesc.
- Fix return value of GetVarIndexOfMemId.
- Remove Invoke's dependence on the internal TLBFuncDesc structure.
- Fix memory leaks in some failure cases.
- GetFuncIndexOfMemId should respect invkind and return
  TYPE_E_ELEMENTNOTFOUND if the function cannot be found.
- Allocate the TYPEATTR rather than copying it.
- For a dual interface the dispinterface's cfuncs should include the
  inherited functions, cbSizeVft should just be the size of IDispatch's
  vtbl and we should strip TYPEFLAG_FOLEAUTOMATION.
- Fix typelib generation of CARRAYs.
Paul Vriens <Paul.Vriens@xs4all.nl>
- use Interlocked* functions in AddRef and Release.
- store the result of the Interlocked functions and use only this.
Walt Ogburn <reuben@ugcs.caltech.edu>
- In OlePictureImpl_Load, always use DIB_RGB_COLORS because no indexed
  palette has been defined.
Alexandre Julliard <julliard@winehq.org>
- Another warning fix.
- Avoid warnings.

svn path=/trunk/; revision=12987
2005-01-12 19:51:40 +00:00
Gé van Geldorp
a30c1830c0 Add new file
svn path=/trunk/; revision=12986
2005-01-12 19:51:26 +00:00
Casper Hornstrup
37ff0b66b5 * Keep project level includes and defines in PROJECT_CFLAGS
* Win32dll module type support
* Build kernel32.dll


svn path=/branches/xmlbuildsystem/; revision=12985
2005-01-12 19:42:07 +00:00
Gregor Anich
d0a2f448f4 Add possibility to make KDB break on module-loads. Fix handling of breakpoints in usermode with KDB. Set ExceptionRecord->ExceptionFlags to 0 for breakpoints/singlesteps and noncontinuable for everything else. Fix WriteProcessMemory.
svn path=/trunk/; revision=12973
2005-01-12 19:04:06 +00:00
Filip Navara
030b0867f6 - Fix compilation error in KeIpiGenericCall.
- Revert my last changes in RPoolMgr.h. Currently they cause more harm than good. :(

svn path=/trunk/; revision=12972
2005-01-12 16:09:12 +00:00
Filip Navara
af3dff11b7 Portability fixes.
svn path=/trunk/; revision=12971
2005-01-12 15:35:12 +00:00
Filip Navara
56efa291ee KJK::Hyperion <noog@libero.it>
Mark ELF sections as non-paged for now.
Fix 64bit compilation warning in PeFmtCreateSection.

svn path=/trunk/; revision=12970
2005-01-12 15:00:32 +00:00
Filip Navara
8d5fa22d0a Portability fixes.
svn path=/trunk/; revision=12969
2005-01-12 14:57:03 +00:00
Filip Navara
0918733dc9 Fix definition of RtlRetrieveUlong to be 64bit safe.
svn path=/trunk/; revision=12968
2005-01-12 14:51:38 +00:00
Filip Navara
b5c55ab4de Fix the build, sorry.
svn path=/trunk/; revision=12967
2005-01-12 14:09:07 +00:00
Royce Mitchell III
a868feb94a forgot to recurse If elements when generating macros
svn path=/branches/xmlbuildsystem/; revision=12966
2005-01-12 14:07:55 +00:00
Filip Navara
e6464bc179 Basic support for priority boosting.
svn path=/trunk/; revision=12965
2005-01-12 13:43:05 +00:00
Filip Navara
e0adece65b Add definiton of RPC_E_INVALID_OBJREF.
svn path=/trunk/; revision=12964
2005-01-12 13:35:43 +00:00
Filip Navara
95ba8cd118 Herve Poussineau <poussine@freesurf.fr>
Simpily the VFAT/FATX detection.

svn path=/trunk/; revision=12963
2005-01-12 13:15:24 +00:00
Filip Navara
1eb8f5f55d Herve Poussineau <poussine@freesurf.fr>
Use MmGetSystemAddressForMdlSafe instead of MmGetSystemAddressForMdl.

svn path=/trunk/; revision=12962
2005-01-12 13:07:17 +00:00
Filip Navara
4b208cd9ff Based on a patch by Herve Poussineau <poussine@freesurf.fr>:
Add basic cache manager and Fast I/O callbacks and don't use ReactOS specific cache manager / filesystem features if USE_ROS_CC_AND_FS is not defined.

svn path=/trunk/; revision=12961
2005-01-12 13:00:43 +00:00
Filip Navara
d8fda17a06 Based on a patch by Herve Poussineau <poussine@freesurf.fr>:
- Clean up #includes.
- Get rid of ROSRTL dependancy.

svn path=/trunk/; revision=12960
2005-01-12 12:33:57 +00:00
Filip Navara
19c59e79f0 Add definition of RTL_CONSTANT_STRING.
svn path=/trunk/; revision=12959
2005-01-12 12:32:06 +00:00
Gunnar Dalsnes
5c7b628714 remove leftovers
svn path=/trunk/; revision=12958
2005-01-12 12:31:10 +00:00
Filip Navara
5a27206097 Based on a patch by Herve Poussineau <poussine@freesurf.fr>:
- Compile using W32API.
- Use documented structures names instead of ReactOS equivalent.
- Get rid of MAX_PATH constant (only valid in user mode).

svn path=/trunk/; revision=12957
2005-01-12 12:06:15 +00:00
Filip Navara
fb6e28b8a0 Herve Poussineau <poussine@freesurf.fr>
- Use documented structures names instead of ReactOS equivalents.
- Replace CcMapData with CcPinRead on places where we're modifying the data.

svn path=/trunk/; revision=12956
2005-01-12 11:07:31 +00:00
Filip Navara
70a623f0d2 Oops, forgot to patch one place.
svn path=/trunk/; revision=12955
2005-01-12 10:49:47 +00:00
Filip Navara
561f4090e1 Herve Poussineau <poussine@freesurf.fr>
Use DDK types instead of Win32 types (BOOL, WORD, DWORD).

svn path=/trunk/; revision=12954
2005-01-12 10:46:13 +00:00
Filip Navara
1f84743388 Hervé Poussineau <poussine@freesurf.fr>
Fill DriverName field in DRIVER_OBJECT structure.

svn path=/trunk/; revision=12953
2005-01-12 10:24:56 +00:00
Gé van Geldorp
8d07772195 Sync to Wine-20050111:
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
  redundant.
Eric Pouech <pouech-eric@wanadoo.fr>
- Fixed some errors in function prototypes.
- ReadFile and WriteFile must be passed a parameter for the number of
  handled bytes when no overlapped operation is done.
- Removed excessive statement (break after return or goto, not useful
  break, not needed vars...)
Robert Shearman <rob@codeweavers.com>
- Remove unnecessary WNDPROC casts.
- Document how thread-safety is ensured for each member of the
  stub_manager and ifstub structs.
- Make stub_manager ref counted to ensure it doesn't get freed whilst
  it is still being used.
- ifstubs are now freed only when the controlling stub_manager is freed.
- Rename stub_manager_ref/unref to stub_manager_ext_addref/release
  respectively and make then take an unsigned long to prevent
  malicious callers from passing in a negative value and corrupting
  the ref count.
- Rename iid in wine_marshal_id to ipid and use IPIDs instead of IIDs in
  the stub manager.
- The channel buffer can be NULL if the proxy is disconnected, so check
  for this before releasing it.
- Make the ClassFactory proxy support aggregation.
- Document how thread-safety is ensured for each member of the
  stub_manager and ifstub structs.
- Make stub_manager ref counted to ensure it doesn't get freed whilst
  it is still being used.
- ifstubs are now freed only when the controlling stub_manager is freed.
- Rename stub_manager_ref/unref to stub_manager_ext_addref/release
  respectively and make then take an unsigned long to prevent
  malicious callers from passing in a negative value and corrupting
  the ref count.
- The current architecture cannot handle pipes changing address, so use
  a static array. Fixes memory corruption that sometimes occurs when
  using multiple pipes.
- Fix race on apartment creation.
- Display errors in decimal to make searching for the meaning in
  winerror.h easier.
- Move named pipe macros into rpc.c.
- Remove unneeded function.
- Implement COM local servers using table marshaling to avoid doing the
  marshaling in a child thread where COM has not been initialized.
- Remove unneeded includes and the unused COMPOBJ_hInstance32 variable.
- Make the wine_marshal_id structure more like the DCOM OBJREF
  structure, by replacing the process id field by apartment id (OXID),
  changing the users of the process id field to use the new field and
  renaming the objectid field to oid.
- Fix StdMarshalImpl_UnmarshalInterface to invalidate and release its
  stub when doing a same apartment marshal.
- Fixed incorrect unsigned test.
- Add tracing for proxy ref count functions.
- Release the channel on proxy destruction.
- Implement proxy manager.
- Add documentation to several functions.
- Coding style changes according to the style Mike and I have agreed
  upon for COM related files.
- Use OBJREF on the wire for generic marshaling functions.
- Add some function declarations to objbase.h.
- Add stubs for server ref counting.
- Implement HRESULT marshaling.
- Make struct oletls ref counted so that it is only detached from the
  apartment on the final CoUninitialize.
- Decrease the size of the crit sec on destroying an apartment - it is
  only needed for touching the apartment list.
- Small cleanups.
Mike Hearn <mh@codeweavers.com>
- Implement the COM stub manager, refactor the current stub code.
- Begin implementing interface stubs.
- Make apartment access thread-safe by introducing refcounting and
  wider usage of the apartment lock.
- Rework OLE TLS management to eliminate uninitialised apartments and
  parent chaining.
- Comment out an assert, as we don't yet implement IRemUnknown.
- Propagate apartments through the intermediate threads, make listener
  thread apartment scoped.
- Rename the STUBMGR thread to more accurately reflect its purpose.
- Add a DCOM todo list.
Mike McCormack <mike@codeweavers.com>
- Test and fix a few problems with OLE storage streams.
- Allow COM to start services containing COM servers.
- Tests and fixes for StgOpenStorage.
- Test and fix StgCreateDocFile grfModes.
Paul Vriens <Paul.Vriens@xs4all.nl>
- use Interlocked* functions in AddRef and Release.
- store the result of the Interlocked functions and use only this.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Alexandre Julliard <julliard@winehq.org>
- Janitorial: C booleans must not be compared against TRUE.
Bill Medland <billmedland@mercuryspeed.com>
- Corrected testing for multithreaded (based upon observations by Paul
  Vriens, Christian Costa and Robert Shearman).
- Added TRACE for investigating OXID errors.

svn path=/trunk/; revision=12952
2005-01-12 10:23:25 +00:00
Gé van Geldorp
f887ae590d Sync to Wine-20050111
svn path=/trunk/; revision=12951
2005-01-12 10:22:33 +00:00
Filip Navara
6ce344b434 Portability fixes.
svn path=/trunk/; revision=12950
2005-01-12 10:05:31 +00:00
Filip Navara
54b6cbb3a2 Portability fixes.
svn path=/trunk/; revision=12949
2005-01-12 10:05:05 +00:00
Gé van Geldorp
7fb581fc0b Sync to Wine-20050111:
Vitaly Lipatov <lav@etersoft.ru>
- Get real screen properties.
- Add description for MsiGetMode, MSIRUNMODE constants.
- Add ScreenX, ScreenY, ColorBits installer properties.
Mike McCormack <mike@codeweavers.com>
- Add a simple test case for MSI databases.
- Remove unneeded whitespace, indent correctly.
- Remove more fixed length buffers, rewrite functions to return
malloc'ed memory.
- Remove a lot of fixed length buffers.
- Implement thread safety for records.
- Fix selecting string columns and matching against a wildcard.
- Implement MsiRecordSetStreamA/W and add tests for records containing
streams.
- Fix records according to test cases.
- Fix transposition of 4 byte values when reading in table data from
storage.
- MsiCloseAllHandles only closes handles allocated in the calling
thread.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Aric Stewart <aric@codeweavers.com>
- Make all custom type 1 actions happen in a seperate thread and close
all handles for that thread when it exits. Honors the concept of
temporary MSI handles for custom actions.
- Properly deformat keys written to the registry.
- Because directory mappings can change between the CostFinalize step
  and the InstallFiles step we need to do a final resolution of the
  target file name before installing.
- When checking for an existing .lnk shortcut extension on the filename
do not just search for '.' but actually verify it is '.lnk'.
- CustomAction 35 should call SetTargetPath not just set the property.
- TARGETDIR and SOURCEDIR may not be entries 0 in the directory
  tables. So when resolving the folder we need to seek them out.
- When we handle SetTargetPath we need to be sure to recalculate the
  resulting paths as things with the now set Directory as the parent
  will change.
- Change how we install files so that we extract files as we need them,
cuts down on extraction time and unused files.
- Improve progress bar tracking.
- Be sure that set paths are terminated with a backslash.
- Free allocated buffers.
- Parse out the full features by using the ',' character and do
comparisons based on the full feature names.
- Continue when a duplicate component is found and loaded.
- Rework how we handle Feature and Component States. I have confirmed
  from testing that, although documented nowhere, having ADDLOCAL on
  the install line overrides INSTALLLEVEL.
- Track all files extracted from cabinents as tempfiles so they can be
  removed at the end of the install to not leave uninstalled but
  uncabbed files laying around.
- Move Install Features selection and evaluation into CostFinalize.
- Allow for end of install actions.
- Create the shortcut directory if it does not exist.
- Set the INSTALLLEVEL in CostFinalize if it is not set.
- Eliminate some fixed length buffers.
- Enable asynchronous dll custom action calls.
- Make sure to include trailing backslash in path.
- Move around and rename some functions.
- Fix incorrect return code check.
- Fix folder resolution.
- Let negative number be parsed correctly. Needed for accessing actions
with sequences such as -1.
- Added MsiSetExternalUIW.
- Include a System16Folder definition.
- Free allocated buffers.
- Blank the property buffers even if the property is not found.
- Include the trailing backslash on the Windows volume.
- Fix folder resolution.
Eric Pouech <pouech-eric@wanadoo.fr>
- Fixed some errors in function prototypes.
Steven Edwards <steven@codeweavers.com>
- Add and fix some stubs.
Ulrich Czekalla <ulrich@codeweavers.com>
- Set the out buffer count to zero on read error.
Michael Stefaniuc <mstefani@redhat.de>
- Add missing HeapFree's (found by smatch).
Paul Vriens <Paul.Vriens@xs4all.nl>
- Use Interlocked* functions in AddRef and Release.

svn path=/trunk/; revision=12948
2005-01-12 09:31:44 +00:00
Gunnar Dalsnes
e620ebee7f add MakeSureDirectoryPathExistsExA/W
svn path=/trunk/; revision=12945
2005-01-12 07:51:11 +00:00
Royce Mitchell III
9264ed7582 support for <if> tag
.PHONY must be output before the target gets defined


svn path=/branches/xmlbuildsystem/; revision=12944
2005-01-12 06:02:58 +00:00
Royce Mitchell III
4846c7b4a2 bugfix - patch by filip navara
svn path=/branches/xmlbuildsystem/; revision=12943
2005-01-12 05:01:49 +00:00
Gunnar Dalsnes
73c479f923 -move alert stuff into own file
-only use Thread->Alerted[0]. Alerted[1] is not used.
-misc

svn path=/trunk/; revision=12942
2005-01-11 23:31:58 +00:00
Gé van Geldorp
72a6852583 Sync to Wine-20050111:
Mike McCormack <mike@codeweavers.com>
- Add proxy authentication dialog.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.

svn path=/trunk/; revision=12941
2005-01-11 23:19:40 +00:00
Gé van Geldorp
eabf3955a8 Sync to Wine-20050111:
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
Christian Costa <titan.costa@wanadoo.fr>
- Handle device class in DX8 enumeration (found by Robert Reif).
- Fixed remaining DX8 device types.
- Factorized a bit GetCapabilities for keyboard and mouse.
- Fixed enumeration of joysticks in DX8.
- Fixed some traces.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Neil Olver <olver@math.mcgill.ca>
- The flag for a mouse button down in the structure returned by
GetDeviceState should be 0x80 (only the high bit set), not 0xff.

svn path=/trunk/; revision=12937
2005-01-11 23:11:18 +00:00
Gé van Geldorp
85527b3aaa Sync to Wine-20050111:
Robert Shearman <rob@codeweavers.com>
- Change dialog templates to not explicitly specify extended window
styles for the static rects on the Page Setup dialog as the ones
specified were wrong anyway.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Replace 'All xxx pages' text in common print dialog by simple 'All'.
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Updated Spanish resource.
Jacek Caban <jack@itma.pwr.wroc.pl>
- Moved save* strings to resources.
- Moved string to resources.
- Get rid of W->A calls.
- Unicodified fontdlg.
Eric Pouech <pouech-eric@wanadoo.fr>
- Removed excessive statement (break after return or goto, not useful
break, not needed vars...)
Paul Vriens <Paul.Vriens@xs4all.nl>
- use Interlocked* functions in AddRef and Release.
- store the result of the Interlocked functions and use only this.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
Alexandre Julliard <julliard@winehq.org>
- Janitorial: C booleans must not be compared against TRUE.

svn path=/trunk/; revision=12935
2005-01-11 23:05:16 +00:00
Gé van Geldorp
fe687a094d Sync to Wine-20050111:
Eric Pouech <pouech-eric@wanadoo.fr>
- Removed excessive statement (break after return or goto, not useful
break, not needed vars...)
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
Ulrich Czekalla <ulrich@codeweavers.com>
- Add partial handler for WM_PRINTCLIENT.
- WM_GETTEXTLENGTH should return zero for owner drawn status bars.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Remove unneeded headers to reduce unneeded rebuilds.
- Implement the remaining MRU functions, fix a couple of differences
from native comctl32, add tests of MRU behaviour and documentation.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Eric Kohl <eric.kohl@t-online.de>
- DrawStatusText() must not process prefix characters.
Filip Navara <xnavara@volny.cz>
- Don't use DrawEdge with NULL device context, it's invalid call and
  sets last error.
- Tooltip icons must be destroyed with DestroyIcon and not with
  DeleteObject.
- Rebar cursors must be destroyed with DestroyCursor and not with
  DeleteObject.
Robert Shearman <rob@codeweavers.com>
- Use the DrawFocusRect function to draw the focus rect, instead of a
broken home-brewed solution.
- Don't highlight text in non-TVS_TRACKSELECT mode.
- Add code for hot tracking.
- Draw hot items with underline and with highlight colour with
  TVS_TRACKSELECT style.
- Set cursor to hand cursor with TVS_TRACKSELECT style.
- Make sure uInternalStatus is consistent with actual scrollbar state
  by forcing scrollbars off in WM_CREATE handler.
- Make the month calendar child window auto-size instead of using a
  hard coded 200px.
- Use SetFocus when the control is clicked on to get the correct
  behaviour when another control clicked on.
- Force the WS_EX_CLIENTEDGE style, instead of emulating it.
- Implement WM_ENABLE handler to update cached control style when the
  control is disabled.
- Move background drawing into WM_ERASEBKGND handler and draw the
  background differently when disabled.
- Change WM_PAINT handler to draw text with transparent background and
  with the correct colour for the style.
- Initialize selected field to -1 instead of 0 so that the control
  notices when field 0 is selected.
Vitaly Lipatov <lav@etersoft.ru>
- Add comments, fix negative value from GetCurFocus.
Alexandre Julliard <julliard@winehq.org>:
- Janitorial: C booleans must not be compared against TRUE.
Mike McCormack <mike@codeweavers.com>
- Fix image list mask and blending.
Evan Deaubl <wine@warpedview.com>
- GetItemA/W on header controls should handle message even if index is
invalid.
Crestez Leonard <cleonard@go.ro>
- Fix bug with Treeview_SelectItem reselecting the same item.
Thomas Weidenmnller <w3seek@gmail.com>
- Free allocated font handles when control is destroyed.

svn path=/trunk/; revision=12933
2005-01-11 22:44:10 +00:00
Filip Navara
742527875b Fix comments to be recognized by Doxygen.
svn path=/trunk/; revision=12932
2005-01-11 22:15:41 +00:00
Gé van Geldorp
4702ede529 Sync to Wine-20050111:
Michael Stefaniuc <mstefani@redhat.de>
Missing HeapFree's + 1 LocalFree (found by smatch).

svn path=/trunk/; revision=12930
2005-01-11 21:37:29 +00:00
Hartmut Birr
011cd29d57 - Changed a forgotten MP to CONFIG_SMP.
svn path=/trunk/; revision=12927
2005-01-11 20:23:48 +00:00
Casper Hornstrup
6858112b10 Build ntdll.dll.
svn path=/branches/xmlbuildsystem/; revision=12926
2005-01-11 20:02:58 +00:00
Royce Mitchell III
444e4297dd create a couple more variables to reduce makefile size
preparations for <if> support

svn path=/branches/xmlbuildsystem/; revision=12925
2005-01-11 18:20:30 +00:00
Gunnar Dalsnes
b885ecfa57 add comments + small fix/change
svn path=/trunk/; revision=12924
2005-01-11 01:47:35 +00:00
Gunnar Dalsnes
5c84018967 remove duplicate macro
svn path=/trunk/; revision=12923
2005-01-11 01:12:36 +00:00
Gregor Anich
29ca1c4689 Fix compilation without NDEBUG.
svn path=/trunk/; revision=12922
2005-01-10 23:11:45 +00:00
Martin Fuchs
0afc3c7bef comment for _NO_ALPHABLEND in the makefile
svn path=/trunk/; revision=12921
2005-01-10 21:32:18 +00:00
Martin Fuchs
2ab1b0f2e1 _NO_ALPHABLEND compiler switch
svn path=/trunk/; revision=12920
2005-01-10 21:20:06 +00:00
Royce Mitchell III
72a0e1e6b7 make sure parentElement is set properly for <xi:include> elements
svn path=/branches/xmlbuildsystem/; revision=12918
2005-01-10 14:03:21 +00:00
Gé van Geldorp
c1746abda0 Sylvain Petreolle <spetreolle@yahoo.fr>:
Add French translation for timedate.cpl

svn path=/trunk/; revision=12917
2005-01-10 10:10:49 +00:00
Gé van Geldorp
8fd760ac87 Sylvain Petreolle <spetreolle@yahoo.fr>:
Add French translation for timedate.cpl

svn path=/trunk/; revision=12916
2005-01-10 10:10:02 +00:00
Art Yerkes
2a03d2626d Added a work item to prevent stack overflow.
svn path=/trunk/; revision=12915
2005-01-10 04:43:05 +00:00
Gunnar Dalsnes
31629a61a5 when echoing too much stuff on windows, a newline is generated and it tries to execute the stuff echoed...
svn path=/trunk/; revision=12914
2005-01-10 03:03:24 +00:00
Casper Hornstrup
b663342f01 * Nasm support
* Hal, rosrtl, pseh, string modules
* Build ntoskrnl


svn path=/branches/xmlbuildsystem/; revision=12913
2005-01-09 21:26:16 +00:00
Gunnar Dalsnes
f98b6e4125 small cleanup
svn path=/trunk/; revision=12912
2005-01-09 19:40:08 +00:00
Royce Mitchell III
e5130a546a added xi:fallback support
fixed some memory leaks in Project
detect and report "end of file looking for end tag" instead of just crashing

svn path=/branches/xmlbuildsystem/; revision=12911
2005-01-09 19:16:35 +00:00
Casper Hornstrup
51221a2b14 Fix compilation.
svn path=/branches/xmlbuildsystem/; revision=12910
2005-01-09 17:24:09 +00:00
Klemens Friedl
75b87b9d2c 8 german language files (update)
svn path=/trunk/; revision=12909
2005-01-09 16:44:14 +00:00
Casper Hornstrup
f361174e9b GCC assembler support.
svn path=/branches/xmlbuildsystem/; revision=12908
2005-01-09 16:36:57 +00:00
Filip Navara
aeaad43c1d Open the DLL files as FILE_SHARE_READ to prevent sharing violations.
svn path=/trunk/; revision=12907
2005-01-09 14:16:36 +00:00
Filip Navara
6947ecd976 - Output correct length and page to the controller on DMA transfers.
- Fix the value of AdapterObject->PagePort.
- Don't modify variables we're not supposed to modify in IoMapTransfer.

svn path=/trunk/; revision=12906
2005-01-09 14:11:25 +00:00
Filip Navara
df756bcc24 Allocate correct number of bytes for EABuffer.
svn path=/trunk/; revision=12905
2005-01-09 11:38:07 +00:00
Gé van Geldorp
2929a492fd Signal the ReactOSInitDone event like smss.exe does,
prevents bugcheck when usetup is done in less than 120 sec

svn path=/trunk/; revision=12904
2005-01-09 08:20:28 +00:00
Gunnar Dalsnes
5e6907f665 experimental/useless "pretty seh"
svn path=/trunk/; revision=12903
2005-01-09 04:40:01 +00:00
Royce Mitchell III
d16f78506a use enum instead of string in more places
svn path=/branches/xmlbuildsystem/; revision=12902
2005-01-09 03:43:26 +00:00
Royce Mitchell III
03e6c98e63 add 'location' information to a couple exceptions that should have it
fixed bug I introduced in MingwBackend::ProcessModule()
fixed bug in std::map usage, apparently map<const char*,...> is a bad idea
let make do some work, create variables to hold include list for each module

svn path=/branches/xmlbuildsystem/; revision=12901
2005-01-09 03:29:46 +00:00
Royce Mitchell III
10324ce772 replaced Backend Factory's vector with a map.
added a map of the MingwModuleHandlers that's created at startup time

svn path=/branches/xmlbuildsystem/; revision=12900
2005-01-09 01:58:53 +00:00
Casper Hornstrup
0f4b9848d1 Put global includes last.
svn path=/branches/xmlbuildsystem/; revision=12899
2005-01-09 01:25:16 +00:00
Casper Hornstrup
8fc0497edb Fix compile error
svn path=/branches/xmlbuildsystem/; revision=12898
2005-01-09 01:13:31 +00:00
Casper Hornstrup
2ddad45463 Precondition dependencies.
svn path=/branches/xmlbuildsystem/; revision=12897
2005-01-09 01:10:43 +00:00
Gé van Geldorp
325d499971 Install symbol files by default for DBG := 1 builds
svn path=/trunk/; revision=12896
2005-01-09 00:04:32 +00:00
Gé van Geldorp
5637b9f123 Include COFF symbols in our .sym files
svn path=/trunk/; revision=12895
2005-01-09 00:00:31 +00:00
Filip Navara
ad6ee8a5e1 Change vsprint to _vsnprintf in PrintString to prevent potential buffer overflows. Patch by Uwe Matthaeus <uwe.matthaeus@guehring.de>.
svn path=/trunk/; revision=12894
2005-01-08 23:36:03 +00:00
Gé van Geldorp
c7d2525d45 Change console class name for Windows compatibility.
Thanks to tonik <spammed@fromru.com> for reporting and
providing the correct name.
Fixes bug 462.

svn path=/trunk/; revision=12893
2005-01-08 22:08:29 +00:00
Gé van Geldorp
ec137eeb0e makefile.dos is not used anymore, remove to prevent confusion
svn path=/trunk/; revision=12892
2005-01-08 21:14:54 +00:00
Casper Hornstrup
87d6ec37a6 Invocation of buildtool modules.
svn path=/branches/xmlbuildsystem/; revision=12891
2005-01-08 19:38:51 +00:00
Eric Kohl
0a7494dd76 Start services again and call a services main routine.
svn path=/trunk/; revision=12890
2005-01-08 18:11:46 +00:00
Eric Kohl
de8627877c Connect a pipes client side as soon as a listening server side is available.
svn path=/trunk/; revision=12889
2005-01-08 14:54:59 +00:00
Eric Kohl
b8e8ef8580 Use string resources instead of hardcoded strings.
svn path=/trunk/; revision=12888
2005-01-08 12:56:07 +00:00
Casper Hornstrup
30e8e25cb7 BuildTool module type support.
svn path=/branches/xmlbuildsystem/; revision=12887
2005-01-08 12:54:43 +00:00
Hartmut Birr
742da9ba73 - Make the drive letter to uppercase in RtlDosPathNameToNtPathName_U.
svn path=/trunk/; revision=12886
2005-01-08 12:47:32 +00:00
Art Yerkes
cf16395eac Added spanish layout to the registry.
svn path=/trunk/; revision=12885
2005-01-08 11:59:41 +00:00
Art Yerkes
a042459d87 Solved an stupid error with kbdes.c
-- HUMA2000

svn path=/trunk/; revision=12884
2005-01-08 11:57:34 +00:00
Hartmut Birr
6dbed13c78 - Fixed the initialization of critical section objects.
svn path=/trunk/; revision=12883
2005-01-08 09:34:37 +00:00
Royce Mitchell III
3e6eb979d8 use ROS_TEMPORARY and ROS_INTERMEDIATE to allow builder to override locations for created files. Fix name conflict with temporary files
svn path=/branches/xmlbuildsystem/; revision=12882
2005-01-08 06:36:03 +00:00
Royce Mitchell III
2f837bf69e don't allow duplicate module names
svn path=/branches/xmlbuildsystem/; revision=12881
2005-01-08 05:22:02 +00:00
Royce Mitchell III
aead7a68f9 <include> now has attribute 'base' which allows to specify subdirectory of another module
svn path=/branches/xmlbuildsystem/; revision=12880
2005-01-08 04:33:01 +00:00
Royce Mitchell III
774f167e5e xml nodes now store the location they were parsed from; invalidbuildexceptions now required a location of the error; don't allow modules to process xml until all modules are created; don't allow libraries, defines, includes, etc to process xml until all modules have processed; don't allow module to link against itself or a non-existant module; don't allow library to specify non-existant module;
svn path=/branches/xmlbuildsystem/; revision=12879
2005-01-08 03:37:32 +00:00
Royce Mitchell III
de7c566b05 Don't pass objects ( particularly vectors ) by value unless absolutely necessary. Also applied some const-correctness
svn path=/branches/xmlbuildsystem/; revision=12878
2005-01-08 02:33:09 +00:00
Casper Hornstrup
5f69cb429e Static library module type.
svn path=/branches/xmlbuildsystem/; revision=12877
2005-01-08 00:25:48 +00:00
Casper Hornstrup
49a2dd8017 Include and define support.
svn path=/branches/xmlbuildsystem/; revision=12876
2005-01-07 21:46:18 +00:00
Art Yerkes
2c65e4355d Added makefile.
svn path=/trunk/; revision=12875
2005-01-07 19:24:54 +00:00
Art Yerkes
c0a9a2be94 Reverted some local changes that aren't meant to be checked in yet.
svn path=/trunk/; revision=12874
2005-01-07 19:16:19 +00:00
Art Yerkes
014a3fa6f0 Spanish Keyboard Layout
Contributed by HUMA2000

svn path=/trunk/; revision=12873
2005-01-07 18:57:43 +00:00
Alex Ionescu
5848b2d8e9 Move ke/zw.c to ex/zw.c
svn path=/trunk/; revision=12872
2005-01-07 16:10:50 +00:00
Gregor Anich
f5daa985c6 modified include/ntos/zwtypes.h Add SYSTEM_BATTERY_STATE from w32api.
modified   ntoskrnl/include/internal/mm.h   Add MmAllocPagesSpecifyRange (internal function)
modified   ntoskrnl/mm/freelist.c           Add MmAllocPagesSpecifyRange function (used by MmAllocatePagesForMdl)
modified   ntoskrnl/mm/mdl.c                Implemenet MmAllocatePagesForMdl, MmFreePagesFromMdl. Turn MmMapLockedPages into MmMapLockedPagesSpecifyCache (and make MmMapLockedPages a wrapper to it).
modified   ntoskrnl/po/power.c              Implement SystemBatteryState in NtPowerInformation (Thanks to Alex for testing the returned values on his windows desktop PC)

Windows 2000 NVIDIA driver should work now.

svn path=/trunk/; revision=12871
2005-01-07 16:10:48 +00:00
Martin Fuchs
679e6f6c09 fix case of XML.o
svn path=/branches/xmlbuildsystem/; revision=12870
2005-01-07 15:36:40 +00:00
Gunnar Dalsnes
7d7661d52d Fixed RtlGetFullPathName_U bug (didn't remove duplicate slashes) and general ugliness by rippin fresh version from wine. Makes w2k cmd.exe work (imo) 100%.
svn path=/trunk/; revision=12869
2005-01-07 15:07:52 +00:00
Royce Mitchell III
4e235dbcc9 parse, but ignore, <? ?> tags - eliminated duplicate code ala FixSeparator() - fix path separator issues
svn path=/branches/xmlbuildsystem/; revision=12868
2005-01-07 13:48:53 +00:00
Thomas Bluemel
8a3239aef3 GetProcessAffinityMask() should return correct system affinity mask
svn path=/trunk/; revision=12867
2005-01-07 13:34:47 +00:00
Gé van Geldorp
2637be230f Protect against unused variable warning
svn path=/trunk/; revision=12866
2005-01-07 13:06:11 +00:00
Gé van Geldorp
baf1b20d76 Silence debug messages
svn path=/trunk/; revision=12865
2005-01-07 13:04:36 +00:00
Eric Kohl
a366210998 RtlCutoverTimeToSystemTime(): The 4th argument determines whether the cutover time of the current year or the next cutover time is calculated.
svn path=/trunk/; revision=12864
2005-01-07 12:58:46 +00:00
Alex Ionescu
d6f646a37f Remove /nt directory, part two.
svn path=/trunk/; revision=12862
2005-01-07 06:57:30 +00:00
Alex Ionescu
3ce0266401 Remove /nt directory
svn path=/trunk/; revision=12861
2005-01-07 06:54:27 +00:00
Gregor Anich
f0c39c8ec6 added agp.c First try of implementing the AGP functions (Untested)
added      ddc.c         First try of implementing DDC functions (Untested)
modified   dispatch.c    Handle IRP_MJ_PNP:IRP_MN_START_DEVICE. Let AddDevice create the device object and call HwFindAdapter from IRP_MN_START_DEVICE.
modified   int10.c       Make VideoPortInt10 return ERROR_INVALID_PARAMETER when called while CSRSS is not initialized.
modified   Makefile      Add agp.o and ddc.o
modified   resource.c    Don't remember usermode mappings - they are valid only in the context of the process which they were created in. Add IntVideoPortMapPhysicalMemory() to map part of \Device\PhysicalMemory into UserMode. Make VideoPortGetAccessRanges use DeviceExtension->AllocatedResources (from the IRP_MJ_PNP:IRP_MN_START_DEVICE) if present.
modified   services.c    Implement VideoPortGetAgpServices. VideoPortQueryServices support for VideoPortServicesAGP.
modified   videoprt.c    Split IntVideoPortFindAdapter into IntVideoPortCreateAdapterDeviceObject and IntVideoPortFindAdapter. Basic implementation of VideoPortEnumerateChildren. Implement VideoPortAcquireDeviceLock/VideoPortReleaseDeviceLock.
modified   videoprt.def  Export VideoPortAcquireDeviceLock/VideoPortReleaseDeviceLock.
modified   videoprt.h    Various stuff.

svn path=/trunk/; revision=12860
2005-01-07 01:03:34 +00:00
Gregor Anich
9e8fbcf903 Add half-verbose output to target "clean".
svn path=/trunk/; revision=12859
2005-01-07 00:02:56 +00:00
Gregor Anich
e008fd8fc6 Forgot to commit this file - sorry!
svn path=/trunk/; revision=12858
2005-01-06 23:18:17 +00:00
Gregor Anich
a2189e5e4b eng/driverobj.c: DRIVEROBJ implementation.
eng/semaphor.c: Implement safe semaphore functions.
eng/window.c: Basic WNDOBJ implementation.
include/inteng.h: IntEngXxx functions for DRIVEROBJs.
main/dllmain.c: Cleanup DRIVEROBJs.
makefile: Add eng/driverobj.o and eng/window.o.
stubs/stubs.c, win32k.def: Add EngAllocPrivateUserMem and EngFreePrivateUserMem stubs.

svn path=/trunk/; revision=12857
2005-01-06 23:12:59 +00:00
Casper Hornstrup
f7257ee1be * Generate kernel
* Add static library module type
* Add build script for kjs


svn path=/branches/xmlbuildsystem/; revision=12856
2005-01-06 22:22:13 +00:00
Casper Hornstrup
b1ec82cd59 Generate dependencies for kernel module type.
svn path=/branches/xmlbuildsystem/; revision=12855
2005-01-06 20:38:14 +00:00
Klemens Friedl
019137fd50 Update ReactOS Icons:
Replace the radioactive icons with the newer ReactOS icon.

Files:
trunk/reactos/bootdata/icon.ico
trunk/reactos/lib/user32/resources/oic_reactos.ico

svn path=/trunk/; revision=12854
2005-01-06 19:22:01 +00:00
Gé van Geldorp
528b35b1df Don't return characters is key is up
svn path=/trunk/; revision=12853
2005-01-06 15:57:38 +00:00
Martin Fuchs
e228aadfe5 migrate substitution keywords to SVN
svn path=/trunk/; revision=12852
2005-01-06 13:58:04 +00:00
Martin Fuchs
505695d368 migrate substitution keywords to SVN
svn path=/branches/xmlbuildsystem/; revision=12851
2005-01-06 13:34:15 +00:00
Gé van Geldorp
f31ecfbd4a Copy correct number of bytes
svn path=/trunk/; revision=12850
2005-01-06 10:16:18 +00:00
Mark Tempel
5ccc6ee89d Update to remove some lines of code that broke the build.
svn path=/trunk/; revision=12849
2005-01-06 05:10:13 +00:00
Royce Mitchell III
8e5e9a4925 fix gcc warning
svn path=/branches/xmlbuildsystem/; revision=12848
2005-01-06 03:52:12 +00:00
Royce Mitchell III
199fca493d forgot to remove and unneeded #include
svn path=/branches/xmlbuildsystem/; revision=12847
2005-01-06 03:49:38 +00:00
Royce Mitchell III
1900ede13b much better factory implementation - thanks art yerkes
svn path=/branches/xmlbuildsystem/; revision=12846
2005-01-06 03:27:24 +00:00
Royce Mitchell III
477157b4d4 Factories for Backend creation
svn path=/branches/xmlbuildsystem/; revision=12845
2005-01-06 02:55:11 +00:00
Royce Mitchell III
8051633a4c file & line # reporting on xml syntax errors
svn path=/branches/xmlbuildsystem/; revision=12844
2005-01-06 02:06:44 +00:00
Royce Mitchell III
c6916243d1 fixed some warnings, and added some asserts
svn path=/branches/xmlbuildsystem/; revision=12843
2005-01-06 01:35:01 +00:00
Eric Kohl
f8b923d236 - Remove __USE_W32API support.
- Add definition of _ttoi64.

svn path=/trunk/; revision=12842
2005-01-06 01:28:10 +00:00
Art Yerkes
647e34dd0c Corrected off-by-one error retrieving adapter index.
svn path=/trunk/; revision=12841
2005-01-06 01:20:13 +00:00
Casper Hornstrup
7d876c4d0c Parse libraries.
svn path=/branches/xmlbuildsystem/; revision=12840
2005-01-05 22:36:17 +00:00
Casper Hornstrup
91d97cbc91 Parse module type.
svn path=/branches/xmlbuildsystem/; revision=12839
2005-01-05 21:29:54 +00:00
KJK::Hyperion
d33004b441 honor __USE_W32API
svn path=/trunk/; revision=12838
2005-01-05 21:00:51 +00:00
Casper Hornstrup
1568981925 Generate MinGW makefile in the backend.
svn path=/branches/xmlbuildsystem/; revision=12837
2005-01-05 20:59:10 +00:00
Casper Hornstrup
222bde955c Handle modules.
svn path=/branches/xmlbuildsystem/; revision=12836
2005-01-05 19:47:10 +00:00
Hartmut Birr
3d5ec80a67 - Used a system thread to shutdown various kernel components.
- Halt also the other processors on a smp machine. 

svn path=/trunk/; revision=12835
2005-01-05 19:28:55 +00:00
Hartmut Birr
6801048d57 - Replaced MP with CONFIG_SMP.
- Used interlocked function for accessing the page directories/tables.

svn path=/trunk/; revision=12834
2005-01-05 19:27:58 +00:00
Hartmut Birr
b0c84d931e - Replaced MP with CONFIG_SMP.
- Implemented an idle processor map.
- Fixed the initialisation of the first kernel stack for the application processors.

svn path=/trunk/; revision=12833
2005-01-05 19:26:51 +00:00
Hartmut Birr
f8d9c5d204 - Replaced MP with CONFIG_SMP.
svn path=/trunk/; revision=12832
2005-01-05 19:25:49 +00:00
KJK::Hyperion
be7247ba17 - makefile: use the native headers, don't bother with our hopelessly broken ones
- tickcount.c: also accept arbitrary tick counts as arguments or from standard input (initially conceived to convert the result of subtracting two Date objects in Javascript - which conveniently happens to be a count of milliseconds - into a human-readable format. Useful to write a batch file that calculates the exact difference between two dates). Also use typedef aliases for __int64 that won't conflict with standard C typedefs

(I had a craving for C code, too much Java for school was melting my brain. Thanks god for good ol' tickcount)

svn path=/trunk/; revision=12831
2005-01-05 19:09:38 +00:00
Hartmut Birr
a91d61b02e - Initialize the symbols for boot load driver before the driver entry routine is called.
- Store the symbols for boot load driver within the non paged pool.

svn path=/trunk/; revision=12830
2005-01-05 19:06:05 +00:00
Hartmut Birr
6f39b3e0e0 - Prevent from calling PsTerminateCurrentThread from within an apc if PsTerminateThread was already called.
svn path=/trunk/; revision=12829
2005-01-05 19:04:25 +00:00
Hartmut Birr
76fbb4d0bf - Removed an unused variable.
svn path=/trunk/; revision=12828
2005-01-05 19:03:21 +00:00
Hartmut Birr
7537381804 - Set the number of processors before initialize the critical sections.
svn path=/trunk/; revision=12827
2005-01-05 19:02:23 +00:00
Royce Mitchell III
b9bffbca54 beginnings of makefile output
svn path=/branches/xmlbuildsystem/; revision=12826
2005-01-05 19:02:00 +00:00
Hartmut Birr
00e2091fd8 - Silence a debug message.
svn path=/trunk/; revision=12825
2005-01-05 19:01:27 +00:00
Royce Mitchell III
00a8526f83 allow for other build systems
svn path=/branches/xmlbuildsystem/; revision=12824
2005-01-05 18:48:45 +00:00
Royce Mitchell III
f2f4ddff19 specify output filename
svn path=/branches/xmlbuildsystem/; revision=12823
2005-01-05 18:16:55 +00:00
Royce Mitchell III
f97516bc1c assume HOST is set to mingw32-windows until someone who knows how can have make fail when HOST isn't set
svn path=/branches/xmlbuildsystem/; revision=12822
2005-01-05 18:13:56 +00:00
Royce Mitchell III
5793157884 small XMLFile cleanup
svn path=/branches/xmlbuildsystem/; revision=12821
2005-01-05 17:59:08 +00:00
Alex Ionescu
49592c9234 Remove ROS-specific File Object Flags
svn path=/trunk/; revision=12820
2005-01-05 15:16:10 +00:00
Gé van Geldorp
d1a5b105f2 Neil Blackburn <neilb@iowatelecom.net>:
- Fixed a few spelling mistakes

svn path=/trunk/; revision=12819
2005-01-05 08:16:00 +00:00
Royce Mitchell III
039d7779de pch.h can be used as pre-compiled header
svn path=/branches/xmlbuildsystem/; revision=12818
2005-01-05 05:09:38 +00:00
Steven Edwards
ab8ef4b325 Make NtUserSetClipboardViewer return something that applications can deal with. This makes the vncviewer qusi-work.
svn path=/trunk/; revision=12817
2005-01-05 04:16:23 +00:00
Royce Mitchell III
4ee64fd1b7 handle comments while parsing, instead of returning them to the user
svn path=/branches/xmlbuildsystem/; revision=12816
2005-01-05 03:47:55 +00:00
Royce Mitchell III
0b755662dd don't define macros that conflict with MinGW system header files, causes very cryptic error messages
svn path=/branches/xmlbuildsystem/; revision=12815
2005-01-05 02:57:58 +00:00
Gunnar Dalsnes
4e4b7cff0b i'm pretty sure a non-inheritable handle _can_ be duplicated! This fixes compiling ros-on-ros w/w2k msvcrt.dll for me.
svn path=/trunk/; revision=12814
2005-01-05 02:50:50 +00:00
Nedko Arnaudov
7671e20ce8 Remove definitions now present in /reactos/include/ntos/security.h
svn path=/trunk/; revision=12813
2005-01-05 02:21:05 +00:00
Nedko Arnaudov
f671eb9004 Remove definitions now present in /reactos/include/ntos/security.h
svn path=/trunk/; revision=12812
2005-01-05 02:05:59 +00:00
Alex Ionescu
ad60ddbca6 Remove ROS-specific File Object Flags
svn path=/trunk/; revision=12811
2005-01-05 01:42:23 +00:00
Alex Ionescu
2b9f762918 Significantly improved performance of Critical Section code by using a static buffer. Increased debug info dramatically and, if enabled, leaks can be found with ease. Future revision will include Spincount support.
svn path=/trunk/; revision=12810
2005-01-05 01:09:30 +00:00
Steven Edwards
ff4ae27d2f add ftp to the bootcd as well
svn path=/trunk/; revision=12809
2005-01-05 00:08:45 +00:00
Steven Edwards
c645e0d34c add ftp to the build
svn path=/trunk/; revision=12808
2005-01-05 00:03:42 +00:00
Nedko Arnaudov
f765c59019 Use build helpers from /reactos/tools/
svn path=/trunk/; revision=12807
2005-01-04 23:36:14 +00:00
Alex Ionescu
4dba0925ac Use proper PISID pointer to SID structure, fix wrong LUID definition, and remove duplicate code in Security Manager
svn path=/trunk/; revision=12806
2005-01-04 22:44:50 +00:00
Casper Hornstrup
4e36b04d0d MinGW backend.
svn path=/branches/xmlbuildsystem/; revision=12805
2005-01-04 22:40:08 +00:00
Steven Edwards
ddd07cb377 Why is gcc stupid....
svn path=/trunk/; revision=12804
2005-01-04 22:11:50 +00:00
Nedko Arnaudov
c0ba0ea090 Fix personal info.
svn path=/trunk/; revision=12803
2005-01-04 21:40:25 +00:00
Nedko Arnaudov
d61f6e4c18 Fix personal info.
Replace tabs with spaces.

svn path=/trunk/; revision=12802
2005-01-04 21:36:26 +00:00
Casper Hornstrup
6f22300491 Add project and module tests.
svn path=/branches/xmlbuildsystem/; revision=12801
2005-01-04 21:29:09 +00:00
Filip Navara
fca5c9e765 Don't free the memory for LParam in NtUserPeekMessage if called with PM_NOREMOVE flag.
svn path=/trunk/; revision=12800
2005-01-04 21:25:20 +00:00
Filip Navara
c0f005d179 Remove a broken header that's not needed anymore.
svn path=/trunk/; revision=12799
2005-01-04 21:19:51 +00:00
Nedko Arnaudov
2981f57ae6 Use .exe postfix when building on non-windows hosts too.
We are always building Win32 executable.

svn path=/trunk/; revision=12798
2005-01-04 20:50:06 +00:00
Casper Hornstrup
8b3d554adb Exception handling.
svn path=/branches/xmlbuildsystem/; revision=12797
2005-01-04 20:37:48 +00:00
Eric Kohl
db2f53dc81 Implement RtlCutoverTimeToSystemTime().
svn path=/trunk/; revision=12796
2005-01-04 20:10:11 +00:00
Royce Mitchell III
6332037cc9 fix gcc incompatibilities
svn path=/branches/xmlbuildsystem/; revision=12795
2005-01-04 19:06:48 +00:00
Royce Mitchell III
9d52adaf02 ssprintf() family of functions for std::string + printf functionality
svn path=/branches/xmlbuildsystem/; revision=12794
2005-01-04 18:38:31 +00:00
Casper Hornstrup
47c197a607 Move project to its own file.
svn path=/branches/xmlbuildsystem/; revision=12793
2005-01-04 18:24:21 +00:00
Royce Mitchell III
ac754b1f06 break XML-parsing stuff into it's own files, and fix 'make test'
svn path=/branches/xmlbuildsystem/; revision=12792
2005-01-04 17:53:26 +00:00
Casper Hornstrup
650cbe59a3 Kill warnings.
svn path=/branches/xmlbuildsystem/; revision=12791
2005-01-04 17:19:43 +00:00
Hartmut Birr
d8b3bb21d1 - Removed the 'shadow' NtGlobalFlag from ntdll.dll.
- Initialized NumberOfProcessors from the PEB structure.

svn path=/trunk/; revision=12790
2005-01-04 16:23:29 +00:00
Royce Mitchell III
ee24430c57 parse a module's files into a vector ( conditions are still a TODO )
svn path=/branches/xmlbuildsystem/; revision=12789
2005-01-04 14:46:06 +00:00
Royce Mitchell III
b6ce86818c handle xml comments and added handling for some possible error conditions
svn path=/branches/xmlbuildsystem/; revision=12788
2005-01-04 14:27:27 +00:00
Royce Mitchell III
eced4673d4 each XMLElement now stores a pointer to it's parent node, so the tree can be traversed from the bottom
svn path=/branches/xmlbuildsystem/; revision=12787
2005-01-04 14:02:04 +00:00
Royce Mitchell III
0e49eb5441 create virtual attribute "top_href" for <xi:include> that is a path relative to top level of project to make it easier to generate non-recursive makefiles
svn path=/branches/xmlbuildsystem/; revision=12786
2005-01-04 13:40:05 +00:00
Eric Kohl
8caac8b834 Implement BuildExplicitAccessWithNameA/W() and BuildImpersonateExplicitAccessWithNameA/W().
svn path=/trunk/; revision=12785
2005-01-04 09:35:28 +00:00
Royce Mitchell III
83a90b1ff8 use ntoskrnl/module.xml
svn path=/branches/xmlbuildsystem/; revision=12784
2005-01-04 07:05:31 +00:00
Royce Mitchell III
767c4f1f9e xml file for ntoskrnl module
svn path=/branches/xmlbuildsystem/; revision=12783
2005-01-04 07:05:04 +00:00
Royce Mitchell III
7b85a3019d support for <xi:include href="foo/foo.xml">, including the "relative path-mucking" necessary
svn path=/branches/xmlbuildsystem/; revision=12782
2005-01-04 07:03:59 +00:00
Royce Mitchell III
e6258f2fa1 buffer overflow (& invalid registry path for device) bugfix: DataPtr != KeyInformation->Data on 2nd+ passes
svn path=/trunk/; revision=12781
2005-01-04 06:24:17 +00:00
Royce Mitchell III
d2cca7e010 dump first 128 bytes of violated memory blocks
svn path=/trunk/; revision=12780
2005-01-04 05:09:53 +00:00
Gunnar Dalsnes
708b29556c -move structs OBJECT_TYPE/OBJECT_HEADER into private headers
-correct OBJECT_TYPE_INFORMATION struct
-rename meaningless members OBJECT_TYPE->MaxObjects/MaxHandles to PeakObjects/PeakHandles and init to zero. Both are still unused.

svn path=/trunk/; revision=12779
2005-01-04 04:45:00 +00:00
Royce Mitchell III
4b6d28c5a2 proper destruction for Project objects
svn path=/branches/xmlbuildsystem/; revision=12778
2005-01-04 04:09:04 +00:00
Royce Mitchell III
0b41f2cc93 initial code to step through tree looking for modules, and calculating their relative paths, for now just print out our findings and clean up.
svn path=/branches/xmlbuildsystem/; revision=12777
2005-01-04 04:04:32 +00:00
Steven Edwards
34bf6de206 added a port of netkit ftp.exe
svn path=/trunk/; revision=12776
2005-01-04 04:03:57 +00:00
Royce Mitchell III
24bc72075e don't pass vector<pointer> by value unless you are looking for trouble, also fixed Assert() to take stdargs to make it's usage simpler and less error-prone. Also fixed IsTrue(), etc, to take file and line info by args and created macros to pass that info automatically.
svn path=/branches/xmlbuildsystem/; revision=12775
2005-01-04 03:10:07 +00:00
Alex Ionescu
8c065412f4 Add more Critical Section Debug Data and fix two bugs.
svn path=/trunk/; revision=12774
2005-01-04 01:51:16 +00:00
Filip Navara
b06887c39a Robert Shearman <rob@codeweavers.com>
- Fix colours used for SS_*RECT, SS_*FRAME.
- Implement SS_CENTERIMAGE for static control.

svn path=/trunk/; revision=12773
2005-01-04 01:49:08 +00:00
Alex Ionescu
27780dc59a Fix silly bugs in Critical section code. Thanks to Gunnar for finding one of them, thanks to mifritscher for finding the actual regression, and thanks to Filip for being understanding :P
svn path=/trunk/; revision=12772
2005-01-04 00:10:50 +00:00
Alex Ionescu
abd7686a78 Fix RtlCriticalSection dummy calls in ntoskrnl's libsupp, for consistency with previous patch and correctness of types.
svn path=/trunk/; revision=12771
2005-01-03 23:35:02 +00:00
Royce Mitchell III
ac0d1d2023 get rid of transitory junk
svn path=/branches/xmlbuildsystem/; revision=12770
2005-01-03 23:24:12 +00:00
Royce Mitchell III
7db6de29fc 1) vector<BaseClass> = bad juju, must use vector<BaseClass*>
2) BaseClass must have virtual dtor
3) make Run() pure virtual

svn path=/branches/xmlbuildsystem/; revision=12769
2005-01-03 23:21:25 +00:00
Gregor Anich
57cef8643d added ntagp.h
svn path=/trunk/; revision=12768
2005-01-03 23:12:56 +00:00
Casper Hornstrup
0f703e6c9b Add small testing framework.
svn path=/branches/xmlbuildsystem/; revision=12767
2005-01-03 23:04:52 +00:00
Alex Ionescu
352d524633 Rewrite ROS Critical Section implementation, which was slow and broken (because it always created an event, which is the slow path). Note that coincidentally, Gunnar also fixed this code and committed a patch this morning, taken from WINE. This code is also based on WINE, but adds more features which WINE does not support/need yet (regarding Debug CS). Hence, this code was a re-write of the original ROS code, not of Gunnar's, and we've both discussed the accidental conflict.
svn path=/trunk/; revision=12766
2005-01-03 23:02:15 +00:00
Gé van Geldorp
a3e3b56cca Since we can load .sym files when defined(DBG) now, enable
/PROFILE option for defined(DBG) too.

svn path=/trunk/; revision=12765
2005-01-03 22:53:21 +00:00
Gé van Geldorp
22244655d6 Reverse last change, as it causes problems for ReadConsole (line input)
svn path=/trunk/; revision=12764
2005-01-03 22:00:39 +00:00
Filip Navara
366252dce4 Don't crash if ShellFolder doesn't implement the IID_ISFHelper interface.
svn path=/trunk/; revision=12763
2005-01-03 21:19:25 +00:00
Casper Hornstrup
5b5cae1d8f Add makefile for rbuild.
svn path=/branches/xmlbuildsystem/; revision=12762
2005-01-03 20:43:23 +00:00
Art Yerkes
edc694086f Removed spaces, put tabs.
svn path=/trunk/; revision=12761
2005-01-03 19:51:26 +00:00
Art Yerkes
c60fc95e69 Added route.exe to bootcd.
Patch by WaxDragon.

svn path=/trunk/; revision=12760
2005-01-03 19:45:35 +00:00
Royce Mitchell III
af0029cf63 moved rbuild.cpp per Casper's request
svn path=/branches/xmlbuildsystem/; revision=12759
2005-01-03 19:29:19 +00:00
Gé van Geldorp
d9b4e88284 Make command-prompt-link creation code Unicode resistent
svn path=/trunk/; revision=12758
2005-01-03 18:44:36 +00:00
Gunnar Dalsnes
a4b36e0224 critical.c:
-don't allocate semaphore until its. actually needed (just like windows & wine)
Ripped from Wine

-correct InterlockedCompareExchange proto
-add Interlocked(Compare)ExchangePointer def.
-correct CRITICAL_SECTION_DEBUG struct

svn path=/trunk/; revision=12757
2005-01-03 14:58:44 +00:00
Filip Navara
1de5b28f80 Fix import of DBGHELP:
- StackWalk is now compilable.
- SymInitialize shouldn't try to find Wine loader.

svn path=/trunk/; revision=12756
2005-01-03 14:47:11 +00:00
Filip Navara
28f15433b0 Add wine_dbgstr_longlong.
svn path=/trunk/; revision=12755
2005-01-03 14:46:08 +00:00
Eric Kohl
fb1c02d7d1 Clean up the pipe type and mode mess.
svn path=/trunk/; revision=12754
2005-01-03 13:50:04 +00:00
Hartmut Birr
896ba320b8 - Fixed the searching for uninitialized (like .bss) segments.
svn path=/trunk/; revision=12753
2005-01-03 11:30:28 +00:00
Martin Fuchs
5e976e5bad update Explorer Jamfile
svn path=/trunk/; revision=12752
2005-01-03 11:25:40 +00:00
Gé van Geldorp
41c18f8e50 Silence stupid compiler which doesn't know what it is talking about
svn path=/trunk/; revision=12751
2005-01-03 10:59:19 +00:00
Gé van Geldorp
10763448ee Find other entries besides the first too...
svn path=/trunk/; revision=12750
2005-01-03 10:06:08 +00:00
Gé van Geldorp
0f86e212b1 Fix ref counting bug
svn path=/trunk/; revision=12749
2005-01-03 09:46:31 +00:00
Alex Ionescu
91fc5d1804 Fix incorrect LPC Object export...we export pointers not the object itself! Also remove more TIME stuff to be properly compatible with real structures.
svn path=/trunk/; revision=12748
2005-01-03 05:17:16 +00:00
Alex Ionescu
b429ae3287 Fix more wrong structure defintions... and use proper values for Thread/Process mapping, not some weird undocumented/reversed values with no explenation.
svn path=/trunk/; revision=12747
2005-01-03 04:06:24 +00:00
Steven Edwards
d222bec89c added support for building Wine tests along with CI tests
svn path=/trunk/; revision=12746
2005-01-03 03:54:00 +00:00
Steven Edwards
e9c2a13f25 move wine tests from tests to winetests
svn path=/trunk/; revision=12745
2005-01-03 02:37:10 +00:00
Alex Ionescu
01efd62aff Fix more wrong structure defintions that don't match official ones, plus fix little bug I introduced.
svn path=/trunk/; revision=12744
2005-01-03 01:13:10 +00:00
Royce Mitchell III
1698e638a2 XML parsing working with my local sample build script. Now we need to start coding the makefile-generation
svn path=/branches/xmlbuildsystem/; revision=12743
2005-01-03 01:02:26 +00:00
Gé van Geldorp
8c1121a5be Don't destroy cursors/icons prematurely.
svn path=/trunk/; revision=12742
2005-01-03 00:46:42 +00:00
Art Yerkes
c60f00807e Change temporary file creation to tmpfile(). FullName was not initialized
correctly before and it's only by chance that this worked at all.

svn path=/trunk/; revision=12741
2005-01-02 23:46:28 +00:00
Alex Ionescu
afbaa12f82 Fix my previous patch and fix ACCESS_TOKEN being declared as a structure. This is incompatible with DDK/W32API because ACCESS_TOKEN is a PVOID. The real structure is TOKEN. Also, structure has been updated.
svn path=/trunk/; revision=12740
2005-01-02 23:12:40 +00:00
Casper Hornstrup
4aa419fcb5 Add sample build script.
svn path=/branches/xmlbuildsystem/; revision=12739
2005-01-02 22:17:02 +00:00
Alex Ionescu
f862727d03 Fix KeRaiseUserException and rename Object Information Structure
svn path=/trunk/; revision=12738
2005-01-02 20:51:02 +00:00
Filip Navara
3e2aa03dcf Fix HEAP_free call.
svn path=/trunk/; revision=12737
2005-01-02 20:49:00 +00:00
KJK::Hyperion
f6466c9edd Patch to make the End Process Button working, by Michael Fritscher
svn path=/trunk/; revision=12736
2005-01-02 20:47:34 +00:00
KJK::Hyperion
dd387c42f0 Relaxed the validity checks for PE executables yet more (no limitation for the file layout anymore, as the memory manager doesn't really care and executables seen in the wild tend to be pretty eccentric). Documented with an ASSERT the fact that the file offset cannot overflow (MAXULONG + MAXULONG < MAXLONGLONG)
svn path=/trunk/; revision=12734
2005-01-02 20:09:39 +00:00
Filip Navara
724fce9fd9 Disable debugging message.
svn path=/trunk/; revision=12732
2005-01-02 19:27:53 +00:00
Filip Navara
e6f2a2f607 Rename MmOpenMemoryAreaBy[Address/Region] to MmLocateMemoryAreaBy[Address/Region].
svn path=/trunk/; revision=12731
2005-01-02 19:14:52 +00:00
Filip Navara
7581cc7fb9 Implement ExtCreateRegion.
svn path=/trunk/; revision=12730
2005-01-02 18:04:59 +00:00
Filip Navara
59aa5bd203 Allocate enough bytes for the adapter object.
svn path=/trunk/; revision=12729
2005-01-02 18:00:31 +00:00
Filip Navara
2644fdc88a Change the MEMORY_AREAs to be stored it a binary search tree instead of linked list. Thanks to Royce Mitchell III and Mike Nordell for helping me.
svn path=/trunk/; revision=12728
2005-01-02 17:55:06 +00:00
Aleksey Bragin
d57bd697fd Removed file/folder
svn path=/trunk/; revision=12727
2005-01-02 17:47:07 +00:00
Aleksey Bragin
b685e5d6be Removed file/folder
svn path=/trunk/; revision=12726
2005-01-02 17:46:51 +00:00
Aleksey Bragin
9837438cb2 Removed file/folder
svn path=/trunk/; revision=12725
2005-01-02 17:46:46 +00:00
Aleksey Bragin
d7a8b29d38 Removed file/folder
svn path=/trunk/; revision=12724
2005-01-02 17:46:36 +00:00
Aleksey Bragin
100e13b72c Removed file/folder
svn path=/trunk/; revision=12723
2005-01-02 17:46:28 +00:00
Aleksey Bragin
81426398fc svn path=/trunk/; revision=12722 2005-01-02 17:43:23 +00:00
Emanuele Aliberti
6299fc1186 Replace
POBJECT_TYPE ExPortType

with

OBJECT_TYPE LpcPortObjectType

and export it.

svn path=/trunk/; revision=12720
2005-01-02 16:45:50 +00:00
Martin Fuchs
b6b2885037 Updated years range in copyright note.
svn path=/trunk/; revision=12719
2005-01-02 16:24:32 +00:00
Casper Hornstrup
c3b38401e3 Correct location of freeldr.sys for livecd target.
svn path=/trunk/; revision=12718
2005-01-02 15:02:59 +00:00
Emanuele Aliberti
f264388c30 - Updated years range in copyright note.
What is the master now?
* resource.h
* version.rc

svn path=/trunk/; revision=12717
2005-01-02 14:34:17 +00:00
Eric Kohl
b0b4ad8a28 Remove pipe only if client fcb list and server fcb list are empty.
svn path=/trunk/; revision=12716
2005-01-02 12:02:42 +00:00
Alex Ionescu
d062e3d562 Fix more wrong Mm definitions and constants and sync up with proper ones.
svn path=/trunk/; revision=12715
2005-01-02 07:04:56 +00:00
Alex Ionescu
9b48875031 Fix some wrong Mm definitions and sync up with proper ones.
svn path=/trunk/; revision=12714
2005-01-02 05:36:43 +00:00
Alex Ionescu
3be1a720e8 Fix horribly wrong defintions of ULONG32 and ULONG, as well as elf support which depended on these wrong definitions.
svn path=/trunk/; revision=12713
2005-01-02 04:27:29 +00:00
Alex Ionescu
28dff13100 Don't use MmLowestUserAddress as a ULONG!
svn path=/trunk/; revision=12712
2005-01-02 01:06:17 +00:00
Alex Ionescu
6a5aa2060e More LDR constants changes.
svn path=/trunk/; revision=12711
2005-01-01 22:57:06 +00:00
Gé van Geldorp
38c0b28279 Fix copy command
svn path=/trunk/; revision=12710
2005-01-01 22:53:21 +00:00
Alex Ionescu
2ee2dcfd7e Use W32API/PSDK structures/constants. The whole /ldr code is in MAJOR need of re-writing. Amazing it even works.
svn path=/trunk/; revision=12709
2005-01-01 22:10:23 +00:00
Steven Edwards
863fb4e364 didnt mean to commit this
svn path=/trunk/; revision=12708
2005-01-01 20:44:34 +00:00
Steven Edwards
1c648feae0 add urlmon and shdocvw to the build and install cd to get the Mozilla ActiveX Control working
svn path=/trunk/; revision=12707
2005-01-01 20:32:43 +00:00
Emanuele Aliberti
e4f12e6d99 - Updated years range in copyright note.
svn path=/trunk/; revision=12706
2005-01-01 19:33:26 +00:00
Alex Ionescu
21a0462b92 Remove unneeded defines and fix hal operation function types.
svn path=/trunk/; revision=12705
2005-01-01 17:44:06 +00:00
Eric Kohl
292272eff4 Connect client and server side upon client side creation only if both sides were created by the same thread.
svn path=/trunk/; revision=12704
2005-01-01 14:54:25 +00:00
Hartmut Birr
88c78cbdd8 - Fixed a debug message in KeConnectInterrupt.
svn path=/trunk/; revision=12703
2005-01-01 14:35:46 +00:00
Eric Kohl
9e8add4928 CreatePipe(): Don't open client side in passive mode.
svn path=/trunk/; revision=12702
2005-01-01 14:06:39 +00:00
Eric Kohl
4cffccfe6f Don't flush the caches of CD/DVD drives.
svn path=/trunk/; revision=12699
2005-01-01 12:19:21 +00:00
Hartmut Birr
6bd1cc19a3 - Check the caller pointers in all cases.
- Simplified the thread info functions a little bit.

svn path=/trunk/; revision=12698
2005-01-01 11:57:53 +00:00
Hartmut Birr
38d12a5ce6 - Fixed a length calculation in IopInitializeDriverModule.
- Freed the memory from hal.dll.

svn path=/trunk/; revision=12697
2005-01-01 11:53:38 +00:00
Hartmut Birr
adecdb10c6 - Fixed the return values in some unimolemented functions.
svn path=/trunk/; revision=12696
2005-01-01 11:51:16 +00:00
Hartmut Birr
b95c9c0eba - Loaded symbols also for kernel mode dll's.
svn path=/trunk/; revision=12695
2005-01-01 11:49:57 +00:00
Hartmut Birr
2e5a5b050c - Simplified KeSetSystemAffinityThread and KeRevertToUserAffinityThread for non smp machines.
- Set the number of processors before calling PiInitProcessManager.  
- Lock the dispatcher database while accessing some values in the thread structure in KeWaitForMultipleObjects.  
- Used Ke-functions to initialize the idle thread.  
- Fixed the offset to the stack frame in PsDumpThreads.  
- Implemented KeSetAffinityThread.  
- Fixed KeSetPriorityThread for threads on the ready queue.

svn path=/trunk/; revision=12694
2005-01-01 11:47:33 +00:00
Martin Fuchs
879287ceb0 eliminate 'using uninitialized variable' warning
svn path=/trunk/; revision=12693
2005-01-01 11:42:12 +00:00
Hartmut Birr
b167684edc - Fixed the access to the KPCR in KiQuantumEnd.
svn path=/trunk/; revision=12692
2005-01-01 11:33:31 +00:00
Hartmut Birr
576224deec - Implemented the interrupt handling for smp machines.
- Enabled interrupts (irqs) on all processors.

svn path=/trunk/; revision=12691
2005-01-01 11:31:43 +00:00
Hartmut Birr
1dc7aa3d70 - Implemented KeAcquireInterruptSpinLock and KeReleaseInterruptSpinLock.
- Implemented the interrupt handling for smp machines.

svn path=/trunk/; revision=12690
2005-01-01 11:28:46 +00:00
Hartmut Birr
7060a9893e - Used interlocked functions to modify the values for the ipi functions on smp machines.
svn path=/trunk/; revision=12689
2005-01-01 11:22:12 +00:00
Hartmut Birr
2d760db23f - Implemented Ke386TestAndClearBit and Ke386TestAndSetBit.
- Fixed some interlocked functions.

svn path=/trunk/; revision=12688
2005-01-01 11:18:54 +00:00
Hartmut Birr
37d9e18817 - Used the parent fcb instead to determine it from parent fileobject.
svn path=/trunk/; revision=12687
2005-01-01 11:11:52 +00:00
Hartmut Birr
635e37f654 - Initialized the pointers for the init environment.
svn path=/trunk/; revision=12686
2005-01-01 11:02:35 +00:00
Hartmut Birr
aaa5b3b1d4 - Fixed the releasing of the memory from the init section.
svn path=/trunk/; revision=12685
2005-01-01 10:59:31 +00:00
Hartmut Birr
f0b1beeb8a - Set the page protection for the section header.
svn path=/trunk/; revision=12684
2005-01-01 10:57:39 +00:00
Hartmut Birr
095823bec8 - Fixed ROUND_UP.
- Simplified ROUND_DOWN.

svn path=/trunk/; revision=12683
2005-01-01 10:54:48 +00:00
Alex Ionescu
8f33dd1b68 Fix DMA_OPERATIONS to use stdcall.
svn path=/trunk/; revision=12682
2005-01-01 08:43:02 +00:00
Alex Ionescu
b9378b35ed Fix more old cruft.
svn path=/trunk/; revision=12681
2005-01-01 08:20:47 +00:00
Art Yerkes
67fe83b228 Use host compiler to build bin2c
svn path=/trunk/; revision=12680
2005-01-01 07:01:47 +00:00
Alex Ionescu
cd9f2f7964 Fix work item enumaration values.
svn path=/trunk/; revision=12679
2005-01-01 04:55:11 +00:00
Alex Ionescu
849dcb1be9 Use PROCESSOR_FEATURE_MAX instead of PROCESSOR_FEATURES_MAX. The latter is not official and a useless ducpliate. Use LARGE_INTEGER instead of TIME in ex/sysinfo.c
svn path=/trunk/; revision=12678
2005-01-01 04:05:42 +00:00
Alex Ionescu
d5882cfd80 Use proper name for the NtSetInformationKey Info classes/structures, as well as add new XP+ class/structure
svn path=/trunk/; revision=12677
2005-01-01 02:08:13 +00:00
Eric Kohl
56f3b59cfb Don't start services until the control pipe issues are fixed.
svn path=/trunk/; revision=12676
2005-01-01 01:53:48 +00:00
Alex Ionescu
7510a729c6 Fix my previous NtDelayExecution patch. Fix Cc function prototypes which were incorrect, and remove useless file.
svn path=/trunk/; revision=12675
2005-01-01 01:51:05 +00:00
Casper Hornstrup
b11715e1ab Add error reporting assistant.
svn path=/trunk/; revision=12674
2005-01-01 01:11:54 +00:00
Alex Ionescu
7b174da1fd Modified NtDelayExecution Prototype/Function to use LARGE_INTEGER and not TIME, and renamed EX_MAXIMUM_WAIT_OBJECTS to MAXIMUM_WAIT_OBJECTS, which is the correct define to use (the ex define was an unnecessary duplicate)
svn path=/trunk/; revision=12673
2005-01-01 01:03:31 +00:00
Casper Hornstrup
a32ae2ed8f Move freeldr to reactos\boot\freeldr.
svn path=/trunk/; revision=12672
2005-01-01 00:42:18 +00:00
Alex Ionescu
9311f8ddc4 Fix some Rtl Prototype inconsistencies, more are in ntifs/winddk but i have fixed those in my header branch for when ntoskrnl will use them.
svn path=/trunk/; revision=12671
2004-12-31 21:31:39 +00:00
Alex Ionescu
1464aa0ecb Remove generated file
svn path=/trunk/; revision=12670
2004-12-31 21:26:43 +00:00
Alex Ionescu
73e868d565 Removed HEAP_NO_VALLOC from Heap Manager because the flag is redunant. Removed Version Differentation in epsapi because it's only meant to run on ROS, and we decide what to emulate. KJK agrees.
svn path=/trunk/; revision=12669
2004-12-31 20:05:16 +00:00
Art Yerkes
438aa3123b Avoid including dep rules if the previous makefile had an empty dep set,
because -include can't tolerate zero include files.

svn path=/trunk/; revision=12660
2004-12-31 19:38:47 +00:00
Alex Ionescu
9274918700 Changed CVS tag to SVN for buildno
svn path=/trunk/; revision=12652
2004-12-31 19:18:23 +00:00
Gé van Geldorp
97b9077773 Update status
svn path=/trunk/; revision=12651
2004-12-31 17:10:32 +00:00
Gé van Geldorp
f68f38c2cc Add svn:ignore properties back
svn path=/trunk/; revision=12650
2004-12-31 17:08:14 +00:00
Gé van Geldorp
15b937dfec Import and merge Wine-20041201
svn path=/trunk/; revision=12642
2004-12-31 16:48:25 +00:00
Gé van Geldorp
0cfb700271 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12641
2004-12-31 16:44:51 +00:00
Gé van Geldorp
5a0eafb788 Import and merge Wine-20041201
svn path=/trunk/; revision=12637
2004-12-31 16:30:04 +00:00
Gé van Geldorp
5e732eb747 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12636
2004-12-31 16:29:21 +00:00
Gé van Geldorp
449ae7cef2 Import and merge Wine-20041201
svn path=/trunk/; revision=12628
2004-12-31 16:21:45 +00:00
Gé van Geldorp
552bbfd1a5 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12625
2004-12-31 16:20:30 +00:00
Gé van Geldorp
c57663f076 Import and merge Wine-20041201
svn path=/trunk/; revision=12613
2004-12-31 16:12:23 +00:00
Gé van Geldorp
11e2ec38d3 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12609
2004-12-31 16:10:48 +00:00
Gé van Geldorp
1b515d5749 Import and merge Wine-20041201
svn path=/trunk/; revision=12603
2004-12-31 16:07:59 +00:00
Gé van Geldorp
dc540e8946 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12602
2004-12-31 16:06:52 +00:00
Gé van Geldorp
038eebbf4e Import and merge Wine-20041201
svn path=/trunk/; revision=12599
2004-12-31 16:00:23 +00:00
Gé van Geldorp
0004a79f81 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12598
2004-12-31 15:57:39 +00:00
Gé van Geldorp
995dc47fd0 Import and merge Wine-20041201
svn path=/trunk/; revision=12595
2004-12-31 15:52:05 +00:00
Gé van Geldorp
b622dd0602 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12594
2004-12-31 15:50:08 +00:00
Gé van Geldorp
5bcd5409f3 Import and merge Wine-20041201
svn path=/trunk/; revision=12591
2004-12-31 15:44:47 +00:00
Gé van Geldorp
231d02b6af Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12590
2004-12-31 15:43:49 +00:00
Gé van Geldorp
0069d808c0 Import and merge Wine-20041201
svn path=/trunk/; revision=12587
2004-12-31 15:41:00 +00:00
Gé van Geldorp
9bc23e307d Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12586
2004-12-31 15:39:51 +00:00
Gé van Geldorp
d2b43c9093 Import and merge Wine-20041201
svn path=/trunk/; revision=12583
2004-12-31 15:35:07 +00:00
Gé van Geldorp
448e644f09 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12582
2004-12-31 15:34:15 +00:00
Gé van Geldorp
d8a1cb88e7 Import and merge Wine-20041201
svn path=/trunk/; revision=12579
2004-12-31 15:28:42 +00:00
Gé van Geldorp
eaf65abccd Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12578
2004-12-31 15:27:32 +00:00
Gé van Geldorp
c270c6db34 Import and merge Wine-20041201
svn path=/trunk/; revision=12575
2004-12-31 15:20:48 +00:00
Gé van Geldorp
53af5ece75 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12574
2004-12-31 15:19:40 +00:00
Gé van Geldorp
da5c413758 Import and merge Wine-20041201
svn path=/trunk/; revision=12569
2004-12-31 15:11:31 +00:00
Gé van Geldorp
412382b514 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12567
2004-12-31 15:10:21 +00:00
Gé van Geldorp
c606eeb39a Import and merge Wine-20041201
svn path=/trunk/; revision=12551
2004-12-31 15:06:50 +00:00
Gé van Geldorp
329aa380dd Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12550
2004-12-31 15:05:54 +00:00
Gé van Geldorp
811db616d2 Import and merge Wine-20041201
svn path=/trunk/; revision=12533
2004-12-31 15:01:00 +00:00
Gé van Geldorp
3d47600ac9 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12528
2004-12-31 15:00:01 +00:00
Gé van Geldorp
7b0b16d102 Import and merge Wine-20041201
svn path=/trunk/; revision=12507
2004-12-31 14:52:07 +00:00
Gé van Geldorp
672316dd13 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12506
2004-12-31 14:50:49 +00:00
Gé van Geldorp
13db281fa1 Import and merge Wine-20041201
svn path=/trunk/; revision=12496
2004-12-31 14:46:26 +00:00
Gé van Geldorp
0b58caa931 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12492
2004-12-31 14:43:15 +00:00
Gé van Geldorp
7019e45c1e Import and merge Wine-20041201
svn path=/trunk/; revision=12486
2004-12-31 14:38:10 +00:00
Gé van Geldorp
560189fa51 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12485
2004-12-31 14:36:08 +00:00
Gé van Geldorp
e0004d8405 Import and merge Wine-20041201
svn path=/trunk/; revision=12470
2004-12-31 14:19:43 +00:00
Gé van Geldorp
2e2a9d4897 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12465
2004-12-31 14:17:57 +00:00
Gé van Geldorp
6b36db792e Add back missing files
svn path=/trunk/; revision=12440
2004-12-31 14:03:51 +00:00
Gé van Geldorp
12ee80de00 Merge Wine-20041201
svn path=/trunk/; revision=12436
2004-12-31 14:01:01 +00:00
Gé van Geldorp
cd7253e298 Try to fix import mess
svn path=/trunk/; revision=12433
2004-12-31 13:58:48 +00:00
Gé van Geldorp
6e2fe87e5c Import of Wine-20041201
svn path=/trunk/; revision=12426
2004-12-31 13:47:13 +00:00
Gé van Geldorp
f8179ef1d9 Need to delete before doing initial vendor import
svn path=/trunk/; revision=12425
2004-12-31 13:45:51 +00:00
Casper Hornstrup
8fabf8b0ad Remove .cvsignore files.
svn path=/trunk/; revision=12417
2004-12-31 12:29:26 +00:00
Casper Hornstrup
3a156b0bac Remove ChangeLog
svn path=/trunk/; revision=12414
2004-12-31 11:38:20 +00:00
Casper Hornstrup
2ea5bbad67 Fix building dbghelp.dll on Windows.
Patch by Filip Navara (xnavara@volny.cz)

svn path=/trunk/; revision=12412
2004-12-30 20:24:20 +00:00
Alex Ionescu
88bb3cec55 Added dbghelp.dll to bootcd
svn path=/trunk/; revision=12411
2004-12-30 18:56:40 +00:00
Alex Ionescu
2c31701a8c Added dbghelp to build because it builds for now.
svn path=/trunk/; revision=12410
2004-12-30 18:31:43 +00:00
Alex Ionescu
ac1c6873a1 Added SEH support to NtReadVirtualMemory. Allows OllyDbg to load (and probably a load of other applications too).
svn path=/trunk/; revision=12409
2004-12-30 18:30:44 +00:00
Alex Ionescu
88454ea69a Implemented:
ExSetResourceOwnerPointer, FsRtlDissectDbcs, FsRtlDoesDbcsContainWildCards, FsRtlAcquireFileExclusive, FsRtlReleaseFile, FsRtlGetNextMcbEntry, FsRtlLookupLastMcbEntry, FsRtlLookupMcbEntry, FsRtlRemoveMcbEntry, FsRtlIncrementCcFastReadResourceMiss, FsRtlIncrementCcFastReadNotPossible, FsRtlIncrementCcFastReadWait, FsRtlIncrementCcFastReadNoWait , FsRtlAreNamesEqual, FsRtlDoesNameContainWildCards, IoCreateDriver, IoDeleteDriver

Thanks to Filip for reviewing some of these.

svn path=/trunk/; revision=12408
2004-12-30 18:30:05 +00:00
Alex Ionescu
b3ba03af69 Make dbghelp build. Very buggy, very wine-ized, haven't looked much at the code yet, work in progress for my upcoming Debug API support.
svn path=/trunk/; revision=12407
2004-12-30 18:24:19 +00:00
Eric Kohl
216311551a - Use ShareAccess FILE_SHARE_READ | FILE_SHARE_WRITE to indicate passive mode for client end pipes.
svn path=/trunk/; revision=12406
2004-12-30 16:15:46 +00:00
Royce Mitchell III
78c79c31e7 msvc6 and gcc4 support
svn path=/trunk/; revision=12405
2004-12-30 16:02:12 +00:00
Gé van Geldorp
365dff816f tmHeight calculation
svn path=/trunk/; revision=12404
2004-12-30 15:15:01 +00:00
Filip Navara
d673e21b8c Fix by WaxDragon: Pass the Metric parameter from RouterCreateRoute to RouterAddRoute. This only needs to be hard-coded in *one* place.
svn path=/trunk/; revision=12403
2004-12-30 13:54:21 +00:00
Eric Kohl
4801e8cc23 Use a new passive pipe state (0) to ensure that client ends don't connect to server ends in calls to WaitNamed Pipe().
svn path=/trunk/; revision=12402
2004-12-30 12:34:27 +00:00
KJK::Hyperion
da6d4e37b3 Disable debug messages
svn path=/trunk/; revision=12401
2004-12-30 08:13:00 +00:00
KJK::Hyperion
6948c64efb ELF_support, welcome to HEAD! (just in time for the freeze, too!)
svn path=/trunk/; revision=12400
2004-12-30 08:05:12 +00:00
KJK::Hyperion
ca61e32c5c The right header to include is <pseh.h>
svn path=/trunk/; revision=12399
2004-12-30 06:55:18 +00:00
KJK::Hyperion
395ae7d908 - PSEH changes imported in the main tree
- initial (dead, disabled) import of ELF support

svn path=/trunk/; revision=12398
2004-12-30 05:59:11 +00:00
Filip Navara
269d17ca59 - Fix prototype of NtGdiExtCreatePen.
svn path=/trunk/; revision=12396
2004-12-30 04:11:19 +00:00
Filip Navara
c70497e059 I accidently removed objects/metafile.o from the makefile...adding back.
svn path=/trunk/; revision=12395
2004-12-30 03:42:03 +00:00
Filip Navara
ead9e85bda - Reimplementation of CreateCursor (now the correct way).
- Various small fixes in the cursors/icon implementation.
- Print the message about InSendMessage being unimplemented only once (per process).

svn path=/trunk/; revision=12394
2004-12-30 02:32:26 +00:00
Filip Navara
a0d295de59 - Move implemented functions from stubs[aw].c to appropriate files.
- Replace GDI functions that were just calling NtGdi functions with forwarders in the .def file.
- Port GetTextFaceA from Wine.

svn path=/trunk/; revision=12393
2004-12-30 02:32:24 +00:00
Filip Navara
1cbf5899cf - Use pvScan0 instead of pvBits as the first scan line in AlphaBltMask.
- Fix setting of icon size in NtUserCreateCursorIconHandle for icons with boths color and mask bitmaps.
- Fix size check in NtGdiSetBitmapBits.
- Don't flip images in BITMAPOBJ_CopyBitmap if we're passed a top-down bitmap.
- IntSetDIBits shouldn't just silently ignore the ScanLines and StartScan parameters.
- Hack in place of NtGdiExtCreatePen implementation.

svn path=/trunk/; revision=12392
2004-12-30 02:32:19 +00:00
Gunnar Dalsnes
c97559f3c5 filelock.c:
-general cleanup
-fix signed -> unsigned comparsion
-allow zero length unlocks to complete with success
-makes some more wine reg. tests pass
ntdef.h: add macros LIST_FOR_EACH and LIST_FOR_EACH_SAFE

svn path=/trunk/; revision=12391
2004-12-30 02:30:40 +00:00
Thomas Bluemel
f5e28a77d1 very beginning of a reactos volume control application, not really usable yet
svn path=/trunk/; revision=12389
2004-12-29 22:37:14 +00:00
Gé van Geldorp
13b05d6081 Fix crash when closing unconnected socket
svn path=/trunk/; revision=12388
2004-12-29 21:44:44 +00:00
Gé van Geldorp
cffcbe1d74 Generate timer messages instead of queueing them
svn path=/trunk/; revision=12387
2004-12-29 19:55:01 +00:00
Gé van Geldorp
3149ec5ad0 Fix rosapps build
svn path=/trunk/; revision=12385
2004-12-29 00:31:45 +00:00
Gé van Geldorp
1d1a9c5708 Minor version number update because of xbox support
svn path=/trunk/; revision=12384
2004-12-28 23:59:14 +00:00
Filip Navara
a69f115882 - Implement connection-less Connect and Send.
svn path=/trunk/; revision=12383
2004-12-28 17:05:19 +00:00
Gé van Geldorp
5398292e64 Call TdiReceive when local buffer is empty
svn path=/trunk/; revision=12382
2004-12-28 16:53:26 +00:00
Eric Kohl
1b7ee37237 Move 'Command Prompt' link creation from setup.exe to syssetup.dll.
svn path=/trunk/; revision=12381
2004-12-28 14:41:46 +00:00
Eric Kohl
9af695bf7b Implement CopyProfileDirectoryA/W.
svn path=/trunk/; revision=12380
2004-12-28 13:30:18 +00:00
Thomas Bluemel
59951cd18f don't allocate movable memory and use the returned handle as a pointer, allocate fixed memory instead
svn path=/trunk/; revision=12379
2004-12-28 13:11:02 +00:00
Filip Navara
3ad6d76cf9 - Don't try to free uninitialized pointer in error case.
svn path=/trunk/; revision=12378
2004-12-28 12:18:08 +00:00
Filip Navara
be70ea04aa - Don't continue if WarmSocketForConnection fails.
svn path=/trunk/; revision=12377
2004-12-28 11:41:29 +00:00
Filip Navara
a7c62fa529 - Fix WSPSelect.
- Partial implementation of WSPGetSockOpt.

svn path=/trunk/; revision=12376
2004-12-28 11:39:05 +00:00
Gé van Geldorp
27679de8f1 Implement ToAscii() and ToAsciiEx()
svn path=/trunk/; revision=12375
2004-12-28 08:58:35 +00:00
Gé van Geldorp
430c468657 Don't return characters is key is up
svn path=/trunk/; revision=12374
2004-12-28 08:50:10 +00:00
Gé van Geldorp
c8bcc7b2c8 Set transition state bit in WM_KEY messages
svn path=/trunk/; revision=12373
2004-12-28 08:49:06 +00:00
Alex Ionescu
190c2b5fc1 Fully support AsyncSelect by re-enabling events. Also, FD_CONNECT stuff isn't quite right, I need to investigate more.
svn path=/trunk/; revision=12372
2004-12-27 21:18:07 +00:00
Filip Navara
dc88a45c29 - Minor fixes to get Wine NTDLL environment tests pass.
svn path=/trunk/; revision=12371
2004-12-27 20:43:42 +00:00
Gé van Geldorp
af72a293ff Import libs now have a "lib" prefix
svn path=/trunk/; revision=12370
2004-12-27 20:09:57 +00:00
Gé van Geldorp
befed0390b Consolidate filling of TEXTMETRICS to a single location.
svn path=/trunk/; revision=12369
2004-12-27 20:06:55 +00:00
Art Yerkes
8bd8d19886 Fix by WaxDragon: don't use before initialize.
svn path=/trunk/; revision=12368
2004-12-27 16:50:56 +00:00
Filip Navara
f5e5ae6874 - Implement MsgWaitForMultipleObjects.
svn path=/trunk/; revision=12367
2004-12-27 16:48:29 +00:00
Filip Navara
f87aca3585 - Set last error in CreateDIBSection.
svn path=/trunk/; revision=12366
2004-12-27 16:47:02 +00:00
Filip Navara
7d8d83ff01 - BitmapFormat should handle BI_BITFIELDS compression type.
svn path=/trunk/; revision=12365
2004-12-27 16:45:19 +00:00
Filip Navara
5848acdc90 - Implement _onexit.
- Port __dllonexit from Wine.
- Fix vsscanf stream initialization.

svn path=/trunk/; revision=12364
2004-12-27 16:43:49 +00:00
Filip Navara
691f45eb54 - RtlExpandEnvironmentStrings_U and ExpandEnvironmentStrings[AW] should return the total length needed for the string with all the environment variables expanded.
svn path=/trunk/; revision=12363
2004-12-27 16:40:14 +00:00
Eric Kohl
ea579e1a95 Detect and report ACPI- and APM-BIOS support.
svn path=/trunk/; revision=12362
2004-12-27 16:13:41 +00:00
Eric Kohl
280e3627d8 Enumerate all devices on the 'ACPI bus'.
svn path=/trunk/; revision=12361
2004-12-27 14:24:00 +00:00
Eric Kohl
e81ecb35ce Enumerate FILE_DEVICE_BUS_EXTENDER and FILE_DEVICE_ACPI devices.
svn path=/trunk/; revision=12360
2004-12-27 14:21:35 +00:00
Martin Fuchs
d8d3883496 fix GPF for clicks in the favorites folder
svn path=/trunk/; revision=12359
2004-12-27 13:54:19 +00:00
Gé van Geldorp
7a1b4194e2 Use ListEntry->Flink before ListEntry is freed by SignalSocket()
svn path=/trunk/; revision=12358
2004-12-27 11:00:01 +00:00
Gé van Geldorp
4b48423b86 Make AsyncData point to the allocated memory instead of overwriting some
random memory locations

svn path=/trunk/; revision=12357
2004-12-27 10:38:06 +00:00
Filip Navara
89ae96ff47 - Free all memory in error case of GetClassInfoExCommon.
- Fix RegisterClassExA for menu-less window classes.

svn path=/trunk/; revision=12353
2004-12-26 23:56:16 +00:00
Filip Navara
f6f130ea4b - Fix size returned by NtUserGetClassInfo.
svn path=/trunk/; revision=12352
2004-12-26 23:54:54 +00:00
Gé van Geldorp
e4514c3fed Dynamically resize buffer as needed
svn path=/trunk/; revision=12350
2004-12-26 23:31:00 +00:00
Gé van Geldorp
8bbd20efdc Don't write outside buffer
svn path=/trunk/; revision=12349
2004-12-26 23:09:51 +00:00
Gé van Geldorp
0afb1fb12d Move the I/O completion port setting to second stage and fix the async I/O
test. Thanks to Alex Ionescu for explaining this stuff to me.

svn path=/trunk/; revision=12348
2004-12-26 21:18:34 +00:00
Filip Navara
46016205f7 DceResetActiveDCEs fixes:
- Don't check ownership because window DCs are global now.
- Correctly reposition client DCs (if window style changes).

svn path=/trunk/; revision=12347
2004-12-26 20:34:49 +00:00
Filip Navara
fe67fad88a - Fix building on Linux.
svn path=/trunk/; revision=12346
2004-12-26 18:55:26 +00:00
Filip Navara
11d39be5b5 - Export ExSemaphoreObjectType.
svn path=/trunk/; revision=12345
2004-12-26 17:48:19 +00:00
Gé van Geldorp
cbfd8c1020 Set I/O completion port on completion of the IRP
svn path=/trunk/; revision=12344
2004-12-26 15:55:14 +00:00
Gé van Geldorp
f5639215be Implement IoSetIoCompletion()
svn path=/trunk/; revision=12343
2004-12-26 15:36:23 +00:00
Gé van Geldorp
eb9bfeca2c Thomas pointed out that we can just use PostMessageW() instead of going
through WPUPostMessage()

svn path=/trunk/; revision=12342
2004-12-26 15:21:23 +00:00
Gé van Geldorp
fb8f8407b9 Handle AFD_EVENT_CONNECT notifications
svn path=/trunk/; revision=12341
2004-12-26 15:04:33 +00:00
Gé van Geldorp
fbabeaaf58 - Don't use boolean NOT when bitwise NOT is intended
- Add break to end of switch cases

svn path=/trunk/; revision=12340
2004-12-26 14:55:51 +00:00
Gé van Geldorp
aa94246f81 Don't free AsyncData if we're still using it
svn path=/trunk/; revision=12339
2004-12-26 14:47:57 +00:00
Gé van Geldorp
65c509fce1 Implemented WPUPostMessage()
svn path=/trunk/; revision=12338
2004-12-26 14:43:01 +00:00
Filip Navara
ec977e2072 - Set the popup menu flag in IntSetMenuItemInfo when setting the handle of submenu.
svn path=/trunk/; revision=12337
2004-12-25 23:40:47 +00:00
Filip Navara
adc5944468 - Partial implementation of RealMsgWaitForMultipleObjectsEx and message queue wake mask.
- Fix setting of menu item type and strings.

svn path=/trunk/; revision=12336
2004-12-25 22:59:10 +00:00
Gé van Geldorp
0dedd084f1 Don't return uninitialized variable
svn path=/trunk/; revision=12335
2004-12-25 22:58:59 +00:00
Art Yerkes
af8cd05c99 Added a (currently unworking) accept implementation. Needs work, but doesn't
break anything.
Committed a patch by GvG:
 - SignalSocket: Removed collected parameter, changed Information to actual
   number of bytes returned.

svn path=/trunk/; revision=12333
2004-12-25 21:30:20 +00:00
Filip Navara
bcf559d5f2 - Fix compilation with MinGW runtime 3.5.
svn path=/trunk/; revision=12332
2004-12-25 21:05:19 +00:00
Filip Navara
681a0743e5 - Fix finding of windows by classes in NtUserFindWindow.
- Marshal WM_COPYDATA messages.

svn path=/trunk/; revision=12331
2004-12-25 20:30:50 +00:00
Filip Navara
2d0fbe6020 - Fix KDBG build that I've broken.
svn path=/trunk/; revision=12330
2004-12-25 19:38:17 +00:00
Filip Navara
2aab39efbd - Fix a typo.
svn path=/trunk/; revision=12329
2004-12-25 15:33:30 +00:00
Filip Navara
373381ed59 - Fix comparsion that I broke with my last commit.
svn path=/trunk/; revision=12328
2004-12-25 14:22:57 +00:00
Filip Navara
32dfb00066 - Fix yet another double completition error.
svn path=/trunk/; revision=12327
2004-12-25 12:07:24 +00:00
Filip Navara
c7505530e0 - Fix compilation with GCC 4.0-20041219.
svn path=/trunk/; revision=12326
2004-12-25 11:22:37 +00:00
Filip Navara
37dca7acbd - Fix compilation with GCC 4.0-20041219.
- Don't try to stick (1 << 8) into entry.delivery_mode which is 3-bit integer.

svn path=/trunk/; revision=12325
2004-12-25 11:21:48 +00:00
Filip Navara
f73524a056 - Don't pass uninitialized variables to PropertySheet,
svn path=/trunk/; revision=12324
2004-12-25 11:17:10 +00:00
Magnus Olsen
89384064a9 regsettings for acpi and
fix powerdown when reactos shortdown by Herv� Poussineau

svn path=/trunk/; revision=12323
2004-12-25 00:46:07 +00:00
Magnus Olsen
2b91825e80 fix powerdown when reactos shortdown by Herv� Poussineau
svn path=/trunk/; revision=12322
2004-12-25 00:44:49 +00:00
Filip Navara
63dde03aef - Fix compilation with GCC 4.0-20041219.
svn path=/trunk/; revision=12321
2004-12-24 23:01:35 +00:00
Magnus Olsen
2c0d95525f change NtUserChangeDisplaySettings stub so it report res not supported
geting quake1 working direcly form console with out any extra switch

svn path=/trunk/; revision=12320
2004-12-24 19:02:32 +00:00
Thomas Bluemel
e07e530aa6 revert my temporary class hacks and remove my desktop handling changes temporarily as they cause some trouble
svn path=/trunk/; revision=12319
2004-12-24 17:45:59 +00:00
Eric Kohl
68bf1ffa6a Add simple first stage GUI setup application.
svn path=/trunk/; revision=12317
2004-12-24 17:31:07 +00:00
Eric Kohl
f9131a7f31 - Move english resource to a separate file.
- Keep language-independent resources in welcome.rc.
- Run 'reactos.exe' to install ReactOS.

svn path=/trunk/; revision=12316
2004-12-24 17:19:44 +00:00
Eric Kohl
102860f1bd Add simple first stage GUI setup application.
svn path=/trunk/; revision=12315
2004-12-24 17:17:12 +00:00
Filip Navara
f4e0630b1d - Fix compilation with GCC 4.0-20041219.
svn path=/trunk/; revision=12314
2004-12-24 17:07:00 +00:00
Royce Mitchell III
9f1fc57758 IntEngGradientFill() fix ASSERT statements
svn path=/trunk/; revision=12312
2004-12-24 06:00:53 +00:00
Gunnar Dalsnes
699702d6ce -add some asserts to catch abuse (double insertions, unititialized items etc.)
-add asserts for KeRemoveQueue NTSTATUS returns

svn path=/trunk/; revision=12311
2004-12-24 02:09:12 +00:00
Gunnar Dalsnes
11deb707d5 add bugcode: INVALID_WORK_QUEUE_ITEM
svn path=/trunk/; revision=12310
2004-12-24 02:05:26 +00:00
Gunnar Dalsnes
8d1d54877f ExInitializeWorkItem: synch with Windows (only NULL the Flink)
svn path=/trunk/; revision=12309
2004-12-24 01:39:50 +00:00
Alex Ionescu
8b4b5441b4 Fix building with DBG=1, OPTIMIZED=1. Patch by Stephen Hodges.
svn path=/trunk/; revision=12308
2004-12-24 01:32:38 +00:00
Eric Kohl
38615c56e8 - Pass create parameters for named pipes and mailslots in the stack location.
- Call NpfsFindPipe to search for an existing pipe.

svn path=/trunk/; revision=12307
2004-12-23 23:58:44 +00:00
Eric Kohl
9b7ba3e6fb Pass create parameters for named pipes and mailslots in the stack location.
svn path=/trunk/; revision=12306
2004-12-23 23:56:33 +00:00
Filip Navara
630b572695 - Check the return value of LdrProcessModule instead of uninitialized variable.
svn path=/trunk/; revision=12305
2004-12-23 23:33:54 +00:00
Eric Kohl
09e71d4f7d Fix the signature of Nt/ZwCreateNamedPipe, the 8th to 10th arguments are ULONGs instead of BOOLEANs.
svn path=/trunk/; revision=12303
2004-12-23 20:13:38 +00:00
Gé van Geldorp
52bbffc39f Free process data when LPC port is closed, not when process is terminated,
'cause there now might be a "hide desktop" request coming in after process
termination

svn path=/trunk/; revision=12302
2004-12-23 18:02:12 +00:00
Eric Kohl
ceedef9d54 Merge EXTENDED_IO_STACK_LOCATION into IO_STACK_LOCATION and fix the resulting errors.
svn path=/trunk/; revision=12301
2004-12-23 12:39:16 +00:00
Gé van Geldorp
0b8f1f6126 Rollback last change since it's causing problems on Linux
svn path=/trunk/; revision=12300
2004-12-23 12:05:40 +00:00
Gé van Geldorp
80fe6c33b9 CVS maintenance
svn path=/trunk/; revision=12299
2004-12-23 09:15:18 +00:00
Gé van Geldorp
5eddab1bad Import shdocvw from Wine
svn path=/trunk/; revision=12297
2004-12-23 08:55:00 +00:00
Royce Mitchell III
eba02683e2 give Arch a little more variety
svn path=/trunk/; revision=12296
2004-12-23 02:24:04 +00:00
Gé van Geldorp
0b50bd52b2 Reimport of urlmon from Wine
svn path=/trunk/; revision=12295
2004-12-22 23:15:15 +00:00
Mike Nordell
3d7aa0b923 Tamlin was tired. Now byte order should _really_ be fixed
svn path=/trunk/; revision=12294
2004-12-22 23:05:12 +00:00
Mike Nordell
0a7987564c Remove bad declaration of htons
svn path=/trunk/; revision=12293
2004-12-22 22:57:19 +00:00
Mike Nordell
0fa4a286ba Fix order-of-evalutation bug-to-be
svn path=/trunk/; revision=12292
2004-12-22 22:48:02 +00:00
Royce Mitchell III
e386edfdb9 commited the wrong source for the bot.. sorry
svn path=/trunk/; revision=12291
2004-12-22 21:53:02 +00:00
Royce Mitchell III
5e7ce7f6f5 forgot to commit responses file
svn path=/trunk/; revision=12290
2004-12-22 18:57:09 +00:00
Royce Mitchell III
089686cac2 ArchBlackmann irc bot - works in ReactOS - happy hacking
svn path=/trunk/; revision=12289
2004-12-22 18:25:29 +00:00
Art Yerkes
f781714ac5 This corresponds to the change made in dispatch.c on the 20th.
svn path=/trunk/; revision=12288
2004-12-22 16:23:03 +00:00
Royce Mitchell III
4cf6b9f489 MiQueryVirtualMemory(): created because ZwQueryVirtualMemory() didn't work for me, added cases for memory area types that I needed to walk stack traces.
Stack traces now use MiQueryVirtualMemory to make sure they never step outside the allocated stack they started in ( this prevents page faults at high irql ) - for some reason this patch eliminates the NtW32Callback() crash everybody is seeing with GDI_DEBUG enabled, tho I don't understand why.

svn path=/trunk/; revision=12286
2004-12-22 05:17:44 +00:00
Royce Mitchell III
5dcad29338 msvc compatibility
svn path=/trunk/; revision=12285
2004-12-22 05:06:59 +00:00
Filip Navara
7ea5ac8d87 - Run UserInit program instead of running shell directly.
svn path=/trunk/; revision=12282
2004-12-22 01:22:08 +00:00
Filip Navara
9769f53baa - Wait for the shell process to finish execution.
svn path=/trunk/; revision=12281
2004-12-22 01:20:52 +00:00
Gunnar Dalsnes
d509bf9f98 forgot to add this when making chages to status.c earlier
svn path=/trunk/; revision=12280
2004-12-22 00:58:53 +00:00
Thomas Bluemel
02388014ad - initialize system window classes when creating window stations
- when creating consoles tell CSRSS the window station/desktop where they should created in, if there's information available

svn path=/trunk/; revision=12279
2004-12-21 21:38:27 +00:00
Magnus Olsen
6b4db70aba add dsound include files from wine
svn path=/trunk/; revision=12278
2004-12-21 19:31:07 +00:00
Gé van Geldorp
67cde50ddc - Don't pass a timeout (which wasn't initialized btw), just hang around forever
- Call completion routine

svn path=/trunk/; revision=12277
2004-12-21 18:38:49 +00:00
Gé van Geldorp
ea8bd9a5d2 - Standardize I/O Completion Port initialization function
- Actually call it

svn path=/trunk/; revision=12276
2004-12-21 18:37:28 +00:00
Magnus Olsen
b4ad77b7ad activate wine own guid for dsound ?
first step geting dsound compile
wine dsound compile agein
need todo some clean work now

svn path=/trunk/; revision=12275
2004-12-21 18:14:11 +00:00
Mike Nordell
f651c1283c Command line completion fix (uninitialized memory)
svn path=/trunk/; revision=12274
2004-12-21 16:30:24 +00:00
Filip Navara
df23944ec6 *** empty log message ***
svn path=/trunk/; revision=12273
2004-12-21 15:07:01 +00:00
Filip Navara
75f1fd495c - Add CLSID entries for CLSID_DragDropHelper.
svn path=/trunk/; revision=12272
2004-12-21 14:33:59 +00:00
Royce Mitchell III
d56daebd24 blasted sym files just aren't always in address-order, must search entire sym file to find correct function for our offset.
svn path=/trunk/; revision=12270
2004-12-21 04:32:11 +00:00
Royce Mitchell III
73df8e0872 wrap stack walks in SEH - this doesn't fix page faults tho, so something else is going to have to be done :(
svn path=/trunk/; revision=12269
2004-12-21 04:05:18 +00:00
Gunnar Dalsnes
93af2278c0 NtRemoveIoCompletion: didn't check for possible NTSTATUS codes returned from KeRemoveQueue
Spotted by GvG

svn path=/trunk/; revision=12268
2004-12-21 02:34:32 +00:00
Filip Navara
ff32df1937 - Add registry entries for DXDIAG.
svn path=/trunk/; revision=12267
2004-12-21 00:39:34 +00:00
Magnus Olsen
cd064303bb add devenum to the bootcd
svn path=/trunk/; revision=12266
2004-12-20 22:33:01 +00:00
Magnus Olsen
476dd07c96 add devenum to the build
svn path=/trunk/; revision=12265
2004-12-20 22:26:18 +00:00
Magnus Olsen
cd77453af5 spell error
svn path=/trunk/; revision=12264
2004-12-20 22:18:41 +00:00
Magnus Olsen
8e962ca524 add devnum.dll base adress
svn path=/trunk/; revision=12263
2004-12-20 22:12:43 +00:00
Magnus Olsen
0a80f15977 header file from wine
small change in one of these

svn path=/trunk/; revision=12262
2004-12-20 22:11:56 +00:00
Magnus Olsen
1117373fd8 port over devnum from wine only small change to createdevnum.c
svn path=/trunk/; revision=12261
2004-12-20 22:09:31 +00:00
Hartmut Birr
a736766cac Fixed the include of utime.h. (I should read the mails from others more exactly.)
svn path=/trunk/; revision=12260
2004-12-20 21:50:41 +00:00
Gé van Geldorp
b41e30eb6d Set ownership to NULL for both cursor and mask bitmaps
svn path=/trunk/; revision=12258
2004-12-20 21:34:23 +00:00
Magnus Olsen
026cdb6db3 fix some fualt here.
svn path=/trunk/; revision=12257
2004-12-20 21:09:40 +00:00
Hartmut Birr
22b8e65551 Used stat, utime and utimbuf instead of _stat, _utime and _utimbuf.
svn path=/trunk/; revision=12256
2004-12-20 19:55:26 +00:00
Magnus Olsen
7f6d0de950 rename dxdigan to dxdiagn
now wee remove dxdigan

svn path=/trunk/; revision=12255
2004-12-20 19:55:07 +00:00
Gé van Geldorp
259079e083 Add some stubs to allow msvcp60.dll to load
svn path=/trunk/; revision=12254
2004-12-20 17:32:05 +00:00
Magnus Olsen
3e2ae1fc05 rename dxdigan to dxdiagn
now wee remove dxdigan

svn path=/trunk/; revision=12253
2004-12-20 16:34:47 +00:00
Magnus Olsen
21a54bca5b rename dxdigan to dxdiagn
svn path=/trunk/; revision=12252
2004-12-20 16:32:43 +00:00
Eric Kohl
c443a93492 NtAllocateUuids(): Improve randomness of initial sequence count.
svn path=/trunk/; revision=12251
2004-12-20 14:07:34 +00:00
Magnus Olsen
e49daf9671 add dxdigan.dll to the bootcd
svn path=/trunk/; revision=12250
2004-12-20 06:58:23 +00:00
Magnus Olsen
003b5a6949 add strmiids and dxdigan to the build
svn path=/trunk/; revision=12249
2004-12-20 06:55:28 +00:00
Filip Navara
e9808cae5d - Don't try to free string that isn't allocated.
svn path=/trunk/; revision=12248
2004-12-20 02:31:48 +00:00
Filip Navara
28196d0b54 - Fix calling convention of OpenDriverA.
svn path=/trunk/; revision=12247
2004-12-20 02:16:19 +00:00
Filip Navara
70ea1560fe - Fix RosRtlDevModeA2W and RosRtlDevModeW2A for older versions of DEVMODE[AW] structures.
svn path=/trunk/; revision=12246
2004-12-20 01:52:01 +00:00
Filip Navara
5888259db6 - Fix parameter handling in EnumDisplaySettingsExA.
svn path=/trunk/; revision=12245
2004-12-20 01:50:39 +00:00
Magnus Olsen
27a6be65a9 port from wine
thanks filip to help me with some changes

svn path=/trunk/; revision=12244
2004-12-20 01:10:17 +00:00
Magnus Olsen
566bc4e279 port from wine
Directx digansotic dll
it is working in windows but fails some program in reactos

svn path=/trunk/; revision=12243
2004-12-20 01:08:18 +00:00
Magnus Olsen
10a38eaddf add static lib strmiids for directx
svn path=/trunk/; revision=12242
2004-12-20 00:59:11 +00:00
Magnus Olsen
6199c85de8 add TARGET_BASE = $(TARGET_BASE_LIB_DINPUT8)
svn path=/trunk/; revision=12241
2004-12-20 00:57:38 +00:00
Filip Navara
99eb3217fb - Pass correct parameters to UDPReceiveDatagram.
svn path=/trunk/; revision=12240
2004-12-20 00:55:27 +00:00
Magnus Olsen
4991937434 fix TARGET_BASE_LIB_DINPUT
fix TARGET_BASE_LIB_DINPUT8
fix TARGET_BASE_LIB_DXDIAGN

svn path=/trunk/; revision=12239
2004-12-20 00:54:56 +00:00
Magnus Olsen
56ebacd78f add TARGET_BASE = $(TARGET_BASE_LIB_DINPUT)
svn path=/trunk/; revision=12238
2004-12-20 00:53:54 +00:00
Alex Ionescu
4814e3518f Update AFD Include for WSPCloseSocket
svn path=/trunk/; revision=12237
2004-12-19 22:18:59 +00:00
Hartmut Birr
427f167cae - Set the time of the copied file to the time of the source file.
svn path=/trunk/; revision=12236
2004-12-19 21:49:13 +00:00
Hartmut Birr
7e6f1ac93b - Used the last write time instead of the last access time in GetFileTimes (only on windows).
svn path=/trunk/; revision=12235
2004-12-19 21:45:34 +00:00
Gé van Geldorp
0950c88772 Version number bump on HEAD
svn path=/trunk/; revision=12233
2004-12-19 20:57:53 +00:00
Alex Ionescu
28bce6709b Implemented WSPCloseSocket.
svn path=/trunk/; revision=12232
2004-12-19 20:13:28 +00:00
Filip Navara
9367e001e8 - Fix compilation errors with GCC 4.0-20041212.
svn path=/trunk/; revision=12230
2004-12-19 19:35:05 +00:00
Filip Navara
2513acd5bf - Don't ignore status returned by IOCTLs in WSPAccept.
- Wait for IOCTL_AFD_WAIT_FOR_LISTEN request to finish in pending case.

svn path=/trunk/; revision=12228
2004-12-19 17:28:07 +00:00
Thomas Bluemel
5e9dedd497 use GDI_DEBUG
svn path=/trunk/; revision=12227
2004-12-19 16:53:57 +00:00
Filip Navara
016f144f5b - Remove unused and broken MmSplitMemoryArea function.
- Don't allow releasing section with NtFreeVirtualMemory.
- Implement TokenDefaultDacl case of NtSetInformationToken.

svn path=/trunk/; revision=12226
2004-12-19 16:16:58 +00:00
Filip Navara
e469cf0000 - Fix compilation errors with GCC 4.0-20041212.
svn path=/trunk/; revision=12225
2004-12-19 15:56:53 +00:00
Filip Navara
c30b427a20 - Store the device object we're attached to in the device extension.
svn path=/trunk/; revision=12224
2004-12-19 15:51:51 +00:00
Eric Kohl
e84c9310a5 NtAllocateUuids(): Load and save sequence counter.
svn path=/trunk/; revision=12223
2004-12-19 12:52:42 +00:00
Eric Kohl
1d48593faa Add timezone index mapping value and Rpc key.
svn path=/trunk/; revision=12222
2004-12-19 12:50:55 +00:00
Mike Nordell
51f96d5871 Fix crash clicking desktop during setup (NULL pointer was unchecked)
svn path=/trunk/; revision=12221
2004-12-19 11:05:48 +00:00
Art Yerkes
b950b4dd97 Return error on every read after the first that returns EOF.
svn path=/trunk/; revision=12220
2004-12-19 10:26:01 +00:00
Art Yerkes
08f643dfc4 Recognize and deal with STATUS_END_OF_FILE.
svn path=/trunk/; revision=12219
2004-12-19 10:24:52 +00:00
Royce Mitchell III
4439ab0fb9 small bugfix to KeRosDumpStackFrames
svn path=/trunk/; revision=12218
2004-12-19 05:08:53 +00:00
Royce Mitchell III
b27cf5b226 much improved reporting on gdi handle leaks ( you must completely run out of handles tho - which is rare now that quotas are implemented )
svn path=/trunk/; revision=12217
2004-12-19 05:03:29 +00:00
Royce Mitchell III
4a371112ec gdi handle leak fixed - taskmgr no longer leaks gdi handles whilest sitting still. (why on earth was this commented out?!?!??!)
svn path=/trunk/; revision=12216
2004-12-19 05:00:22 +00:00
Royce Mitchell III
b4101d22b8 HACK: hard-coded gdi handle quotas, excepting code paths I haven't found yet, reactos can handle gdi leaky apps without bsoding or getting hosed now. This is a hack, because we should properly read the quota from the registry upon session initialization and use that value instead.
svn path=/trunk/; revision=12215
2004-12-19 00:03:56 +00:00
Royce Mitchell III
c39a4131db IntSetCursor() don't BSOD in low-resource conditions
svn path=/trunk/; revision=12214
2004-12-18 23:55:26 +00:00
Art Yerkes
60f819d761 Removed some badly formatted checkpoints.
svn path=/trunk/; revision=12213
2004-12-18 23:12:23 +00:00
Art Yerkes
9f1235eb99 Added some extra printing.
Fixed numerous places where we assume lpErrno is non-null.

svn path=/trunk/; revision=12212
2004-12-18 23:09:30 +00:00
Gé van Geldorp
0df032976f Add some DPRINTs
svn path=/trunk/; revision=12211
2004-12-18 22:54:37 +00:00
Gé van Geldorp
edf496d8c5 Add olepro32.dll to build
svn path=/trunk/; revision=12210
2004-12-18 22:28:42 +00:00
Gé van Geldorp
6385199930 Sync to Wine-20041201:
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Ensure DllCanUnloadNow is a truly void function, and give it a unique
name so it can be documented per-dll.

svn path=/trunk/; revision=12209
2004-12-18 22:19:52 +00:00
Gé van Geldorp
b51b7135a4 Add some stubs
svn path=/trunk/; revision=12208
2004-12-18 22:15:07 +00:00
Gregor Anich
c37ff99746 Support mapping of video device memory into usermode - unfortunately this is not correctly supported by the memory manager yet.
svn path=/trunk/; revision=12207
2004-12-18 22:14:39 +00:00
Royce Mitchell III
5016bfecf7 dump some statistics on the gdi handle table when it runs out of handles
svn path=/trunk/; revision=12206
2004-12-18 21:41:17 +00:00
Royce Mitchell III
de1d28fabc NtGdiExtTextOut(): fixed some double-frees I introduced, initialize variables that need it, put {} around DPRINT(1) where needed
svn path=/trunk/; revision=12205
2004-12-18 21:35:35 +00:00
Royce Mitchell III
ef53a44b8a added non-magic-dependant double-free detection via 'status' variable
svn path=/trunk/; revision=12204
2004-12-18 21:30:17 +00:00
Royce Mitchell III
97d6fccc69 use KeRosPrintAddress in RPoolMgr
svn path=/trunk/; revision=12203
2004-12-18 21:27:27 +00:00
Gé van Geldorp
598fa7fea7 Set version info to NT 4.0 Build 1381 Service Pack 6 and include ReactOS
version number after Windows version in szCSDVersion

svn path=/trunk/; revision=12202
2004-12-18 21:06:25 +00:00
Royce Mitchell III
8afda8f04f added KeRosPrintAddress
svn path=/trunk/; revision=12201
2004-12-18 20:55:54 +00:00
Filip Navara
a67fbba8ec - Minor fix in MiniportDpc.
svn path=/trunk/; revision=12200
2004-12-18 20:32:41 +00:00
Royce Mitchell III
8e3c98a05f fix stack dumps from printing an infinite amount of <0> in some cases
svn path=/trunk/; revision=12199
2004-12-18 20:26:03 +00:00
Art Yerkes
91bbf4471d Added missing pending check (pointed out by filip).
svn path=/trunk/; revision=12198
2004-12-18 20:10:39 +00:00
Gé van Geldorp
2fa970d484 Fix harddisk detection for seriously broken BIOS
svn path=/trunk/; revision=12197
2004-12-18 19:53:30 +00:00
Art Yerkes
e8861acfb2 Filip and I have hopefully fixed the ndis completion problem on sends.
After calls to delayed miniport send routines, we check status and if not
pending, do NdisMSendComplete and set the miniport busy flag off.

svn path=/trunk/; revision=12196
2004-12-18 19:32:40 +00:00
Gé van Geldorp
e0c43e5c83 Handle failures better (i.e. without crashing)
svn path=/trunk/; revision=12195
2004-12-18 19:23:05 +00:00
Gregor Anich
35d320bd71 Fix handling of breakpoint exceptions in KDB.
svn path=/trunk/; revision=12194
2004-12-18 19:22:10 +00:00
Art Yerkes
fd0590d3cc Add a busy flag for the receive worker. This needs something better.
Remove #if 0 on send completion.  We need these.  Packets still aren't
getting completed however.  Need to investigate more.

svn path=/trunk/; revision=12193
2004-12-18 18:27:22 +00:00
Art Yerkes
1a2e000397 Check for a bad return from AllocatePacketWithBuffer.
svn path=/trunk/; revision=12192
2004-12-18 18:22:47 +00:00
Royce Mitchell III
f4354d8f89 NtGdiExtTextOut(): improved error handling
svn path=/trunk/; revision=12191
2004-12-18 18:21:02 +00:00
Royce Mitchell III
e6a6a8e434 IntGdiInitBrushInstance(): assume callers pass us valid parameters
svn path=/trunk/; revision=12190
2004-12-18 18:19:24 +00:00
Hartmut Birr
d7be13618b - Fixed the timer calibration for processors without a tsc, spotted by Casper Hornstrup.
svn path=/trunk/; revision=12189
2004-12-18 18:04:18 +00:00
Royce Mitchell III
4bd03f70f7 EngMaskBitBlt() ASSERT instead of if(), this function should trust it's callers
IntEngMaskBlt() trust caller to send required parameters

svn path=/trunk/; revision=12188
2004-12-18 17:52:30 +00:00
Royce Mitchell III
6dce633245 add error checking
svn path=/trunk/; revision=12187
2004-12-18 17:50:22 +00:00
Royce Mitchell III
e35792c4ed BUGFIX: EngMaskBitBlt() shouldn't BSOD if Mask is NULL
svn path=/trunk/; revision=12186
2004-12-18 17:36:13 +00:00
Hartmut Birr
43ccb648b2 - Fixed the definitions of HEAP_GROWABLE and HEAP_NO_VALLOC.
svn path=/trunk/; revision=12185
2004-12-18 17:30:27 +00:00
Royce Mitchell III
4076ea8740 BUGFIX: Missing error handling in IntSetDIBits()
svn path=/trunk/; revision=12184
2004-12-18 17:15:10 +00:00
Royce Mitchell III
9b125b75bd BUGFIX: EngCreateBitmap() - don't call GDIOBJ_SetOwnerShip() with invalid handle
svn path=/trunk/; revision=12183
2004-12-18 17:12:32 +00:00
Steven Edwards
eec9a15bd8 Merged most of the recent changes from the Wine edit control.
We now pass all of the Wine edit regression tests.

Vitaliy Margolen <wine-patch@kievinfo.com>
- return "want all keys" for WM_GETDLGCODE when multi-line
- single-line edit control does not want all messages
- additional style combinations are possible for both multi-line and
  single-line edit controls
- tests to confirm it

James Hawkins <truiken@gmail.com>
Limit scrolling of the edit control to the last line of text.

Ulrich Czekalla <ulrich@codeweavers.com>
Handle painting the border if WS_EX_CLIENTEDGE is not set.

Ulrich Czekalla <ulrich@codeweavers.com>
Allow copying selection when control is read only.

svn path=/trunk/; revision=12182
2004-12-18 16:06:23 +00:00
Hartmut Birr
3d5519a309 - PsUnblockThread must be called with dispatcher database lock held.
svn path=/trunk/; revision=12181
2004-12-18 15:52:51 +00:00
Thomas Bluemel
98d6439521 silence debug message i accidently added
svn path=/trunk/; revision=12180
2004-12-18 13:35:15 +00:00
Thomas Bluemel
b79bb15644 guard SetConsoleInputExeNameW() with SEH to properly release the console lock in case of failure
svn path=/trunk/; revision=12179
2004-12-18 13:33:09 +00:00
Eric Kohl
0ad5627d13 Implement NtAllocateUuids() partially.
svn path=/trunk/; revision=12178
2004-12-18 13:27:58 +00:00
Thomas Bluemel
db7aca35ef implemented undocumented GetConsoleInputExeNameA/W() and SetConsoleInputExeNameA/W() used by NT's cmd.exe
svn path=/trunk/; revision=12177
2004-12-18 13:26:57 +00:00
Hartmut Birr
a653ae39ad - Allocated a zero filled memory block for the font.
- Restored Ge's last changes.

svn path=/trunk/; revision=12176
2004-12-18 11:05:03 +00:00
Gé van Geldorp
04cae08bbc Rollback last change
svn path=/trunk/; revision=12175
2004-12-18 09:39:14 +00:00
Art Yerkes
478a3a1bd2 Added a few forwards to ws2_32.
svn path=/trunk/; revision=12172
2004-12-18 01:17:35 +00:00
Gunnar Dalsnes
68b0228983 IntReadConsole: in case of unicode read, not all chars were copied
W2k cmd.exe now works for me

svn path=/trunk/; revision=12171
2004-12-18 00:28:16 +00:00
Filip Navara
69c462a21c - Fix issues with DCE clip region ownership.
svn path=/trunk/; revision=12170
2004-12-17 19:42:46 +00:00
Royce Mitchell III
6aa427939e BUGFIX: stabs lookup ( particularly line # lookup )
svn path=/trunk/; revision=12169
2004-12-17 17:51:57 +00:00
Gé van Geldorp
26b1a392bf Pass parameters in correct order
svn path=/trunk/; revision=12168
2004-12-17 17:40:29 +00:00
Filip Navara
7b483dc2f7 - Don't allow changing ownership of foreign GDI handles.
svn path=/trunk/; revision=12167
2004-12-17 15:12:37 +00:00
Filip Navara
c79373c4c1 - Fix ownership issues with DCEs.
svn path=/trunk/; revision=12166
2004-12-17 14:44:19 +00:00
Royce Mitchell III
0fe4682b80 completely rewritten PagedPool.
- more than 800% faster
- support for multiple pools (SpecialPool, etc anyone?)
- can be used for NPool if wanted, too
- tries not to immediately reallocate a block that's just freed for allocations of <= 512 (helps find memory abusers)

svn path=/trunk/; revision=12165
2004-12-17 13:20:05 +00:00
Gregor Anich
7cbb0d7e6e Remove unused defines and structures.
svn path=/trunk/; revision=12164
2004-12-17 13:19:44 +00:00
Gé van Geldorp
af4cfbfdec Don't mess with WNDCLASS contents if class doesn't exist
svn path=/trunk/; revision=12163
2004-12-17 09:56:10 +00:00
Aleksey Bragin
74e4b45769 Include link to IoCsq...() funcs
svn path=/trunk/; revision=12162
2004-12-17 07:31:11 +00:00
Gunnar Dalsnes
0bf2982f43 IntReadConsole: don't tell we failed just because we didn't fill up the read buffer!
svn path=/trunk/; revision=12161
2004-12-17 00:44:46 +00:00
Eric Kohl
ac61295ec2 Simplify time conversion functions.
svn path=/trunk/; revision=12160
2004-12-16 23:46:41 +00:00
Eric Kohl
a2b3047314 Remove 'unassigned' error codes.
svn path=/trunk/; revision=12159
2004-12-16 23:06:07 +00:00
Gé van Geldorp
77e8ed7c6f Implement NtFlushInstructionCache()
svn path=/trunk/; revision=12158
2004-12-16 22:36:09 +00:00
Steven Edwards
8d2782b2fa Added regex support
svn path=/trunk/; revision=12157
2004-12-16 18:37:28 +00:00
Steven Edwards
99a066e54b We need this for now.
svn path=/trunk/; revision=12156
2004-12-16 18:02:32 +00:00
Steven Edwards
682154185b This should not be in CVS
svn path=/trunk/; revision=12155
2004-12-16 18:01:14 +00:00
Steven Edwards
b7ce6af053 KJK::Hyperion has PSEH'ifyed msc.c
svn path=/trunk/; revision=12154
2004-12-16 17:50:36 +00:00
Steven Edwards
1aea28360c First shot at importing dbghelp. Its broken. Dont enable it
until KJK and Alex have a look.

svn path=/trunk/; revision=12153
2004-12-16 17:42:10 +00:00
Steven Edwards
d057566f59 add dbghelp.h and cvconst.h for importing dbghelp.dll
svn path=/trunk/; revision=12152
2004-12-16 17:34:54 +00:00
Gunnar Dalsnes
9cbb3d72e1 -link heaps together instead of using stupid table past peb
-RtlValidateProcessHeaps/RtlGetProcessHeaps/RtlEnumProcessHeaps  didn't process all heaps
-correct RtlDestroyHeap proto. / return value
All changes based on Wine

svn path=/trunk/; revision=12151
2004-12-16 15:10:01 +00:00
Art Yerkes
4d8fc530e9 We can arrive here early on, before the filter is set. Check for a null
filter.

svn path=/trunk/; revision=12150
2004-12-16 07:50:06 +00:00
Alex Ionescu
25c4daa164 Freeldr will not load a UI if Timeout = 0, and will instead immediately load the default OS.
svn path=/trunk/; revision=12149
2004-12-16 07:09:33 +00:00
Alex Ionescu
d986574df1 Set default Freeldr Timeout to 5 seconds (requested).
svn path=/trunk/; revision=12148
2004-12-16 07:08:48 +00:00
Richard Campbell
0132fcd8f1 - Implemented SwitchToThisWindow, not 100% correct more then likely...but it should work well enough, considering the function is deprecated.
- Implemented BringWindowToTop

svn path=/trunk/; revision=12147
2004-12-16 03:57:35 +00:00
Gunnar Dalsnes
f7adabb3ca add InternetOpenUrlA/W stubs
svn path=/trunk/; revision=12146
2004-12-16 03:00:06 +00:00
Richard Campbell
c75ff223da Final Touchups:
- Removed potential copyrighted microsoft icon.  Replaced with ROS icon.

TODO:
 - localize
 - implement code that makes the cpl work
 - sleep.

svn path=/trunk/; revision=12145
2004-12-16 02:09:16 +00:00
Richard Campbell
bfaf8bf9be - Added the remaining two dialog layouts
svn path=/trunk/; revision=12144
2004-12-16 01:56:53 +00:00
Richard Campbell
d9f9895b85 - center some things that i realized weren't centered when actually RUNNING the cpl. (damn visual studio...)
svn path=/trunk/; revision=12143
2004-12-16 01:26:06 +00:00
Richard Campbell
353463b34c - oops...
- added screen saver controls

svn path=/trunk/; revision=12142
2004-12-16 01:12:40 +00:00
Richard Campbell
f7977f0c1c - added background page controls...no code yet, just the resources.
svn path=/trunk/; revision=12141
2004-12-16 00:51:01 +00:00
Richard Campbell
bf25913468 - Removed extra 'properties' in window caption.
svn path=/trunk/; revision=12140
2004-12-16 00:21:40 +00:00
Steven Edwards
965e9ee858 revert change from lastnight.
svn path=/trunk/; revision=12139
2004-12-15 23:34:37 +00:00
Eric Kohl
935e412f83 Fix GetInheritanceSource[A/W] signature.
svn path=/trunk/; revision=12138
2004-12-15 14:23:11 +00:00
Eric Kohl
2f57c7dc4f Remove aclapi.h from include. User the w32api version instead.
svn path=/trunk/; revision=12137
2004-12-15 14:13:34 +00:00
Eric Kohl
6fd5df9a7b Implement simple trustee functions:
- BuildImpersonateTrustee[A/W]
 - GetMultipleTrustee[A/W]
 - GetMultipleTrusteeOperation[A/W]
 - GetTrusteeForm[A/W]
 - GetTrusteeName[A/W]
 - GetTrusteeType[A/W]

svn path=/trunk/; revision=12136
2004-12-15 12:29:36 +00:00
Gé van Geldorp
473143e808 Allocate correct amount of memory.
Fixes bug 451.

svn path=/trunk/; revision=12135
2004-12-15 11:34:52 +00:00
Steven Edwards
54897a486b add notepad to the bootcd
svn path=/trunk/; revision=12134
2004-12-15 06:10:24 +00:00
Steven Edwards
7be51c63cb Disable check for invalid chars in string.
svn path=/trunk/; revision=12133
2004-12-15 05:27:17 +00:00
Steven Edwards
2288ba398c Moved notepad to main CVS module.
svn path=/trunk/; revision=12132
2004-12-15 05:09:32 +00:00
Steven Edwards
d1a61871aa Add notepad to the makefile
svn path=/trunk/; revision=12131
2004-12-15 05:08:44 +00:00
Steven Edwards
d9ccbedded Added Wine notepad to main tree.
svn path=/trunk/; revision=12130
2004-12-15 05:07:53 +00:00
Royce Mitchell III
13277fb296 change a few #ifdefs to allow loading of SYM files for user modules in DBG builds
svn path=/trunk/; revision=12129
2004-12-15 03:00:33 +00:00
Royce Mitchell III
8236f00175 filter out invalid S_FUN entries
svn path=/trunk/; revision=12128
2004-12-15 02:24:35 +00:00
Royce Mitchell III
66468c3013 RSYM: force all sym files to have 0-based function offsets.
NTOSKRNL: look for 0-based offsets instead of absolute offsets.

svn path=/trunk/; revision=12127
2004-12-15 01:49:37 +00:00
Filip Navara
262a6b4866 - Implement NtUserMonitorFromWindow.
svn path=/trunk/; revision=12126
2004-12-14 23:38:14 +00:00
Filip Navara
3b2955e805 - Fix bug in IntCallHookProc for window classes specified with atom.
svn path=/trunk/; revision=12125
2004-12-14 23:14:15 +00:00
Casper Hornstrup
023fe261e3 2004-12-14 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/freetype/rosglue.c: Use native line-endings.
	* drivers/lib/bzip2/sample2.ref: Ditto.
	* lib/freetype/builds/mac/ftlib.prj: Ditto.
	* apps/utils/net/telnet/src/tnmsg.h: Ditto.

svn path=/trunk/; revision=12124
2004-12-14 22:57:35 +00:00
Gé van Geldorp
4bd813253a This is a generated file, doesn't belong in CVS
svn path=/trunk/; revision=12123
2004-12-14 22:27:02 +00:00
Gregor Anich
4b5de6d7f7 Fixed compilation with GCC 3.4.2
svn path=/trunk/; revision=12122
2004-12-14 22:15:52 +00:00
Thomas Bluemel
7af8972536 implemented GetUserNameA()
svn path=/trunk/; revision=12121
2004-12-14 22:11:16 +00:00
Art Yerkes
ddd8ede921 Cleaned up a bit. Sorry, I should edit more carefully.
svn path=/trunk/; revision=12120
2004-12-14 21:56:44 +00:00
Thomas Bluemel
dc39a75a6c fixed typo in comment
svn path=/trunk/; revision=12119
2004-12-14 21:26:53 +00:00
Thomas Bluemel
2c84739e31 implemented LookupAccountSidA()
svn path=/trunk/; revision=12118
2004-12-14 21:25:21 +00:00
James Tabor
0056248f6d Update files from WineHq.
svn path=/trunk/; revision=12117
2004-12-14 20:42:02 +00:00
Gé van Geldorp
eb3db535d2 Make GDB work again
svn path=/trunk/; revision=12116
2004-12-14 10:18:57 +00:00
Art Yerkes
a95a04eb35 Store interface speed to retrieve later.
svn path=/trunk/; revision=12115
2004-12-14 08:00:48 +00:00
Royce Mitchell III
c3168d10e5 implemented LookupAccountSidW() thx to the help of Alex Ionescu - this function is needed for GetUserNameA/W().
svn path=/trunk/; revision=12114
2004-12-14 06:40:50 +00:00
Royce Mitchell III
a80be8cc45 ASSERT parameter assumptions
svn path=/trunk/; revision=12113
2004-12-14 04:55:43 +00:00
Royce Mitchell III
9df9a16c4d BUGFIX: bad params to MouseSafetyOnDrawStart() in IntEngTransparentBlt(), also ASSERT parameter assumptions
svn path=/trunk/; revision=12112
2004-12-14 04:40:16 +00:00
Royce Mitchell III
3bbc2dd8e3 ASSERT parameter assumptions in IntEngLineTo()
svn path=/trunk/; revision=12111
2004-12-14 04:30:58 +00:00
Royce Mitchell III
6d6cf25eee ASSERT parameter assumptions in IntEngGradientFill()
svn path=/trunk/; revision=12110
2004-12-14 04:26:49 +00:00
Royce Mitchell III
2e027c01b7 ASSERT parameter assumptions in EngCopyBits()
svn path=/trunk/; revision=12109
2004-12-14 04:22:00 +00:00
Royce Mitchell III
be95834e02 fix infinite loop in KeRosDumpStackFrames()
svn path=/trunk/; revision=12108
2004-12-14 03:46:10 +00:00
Royce Mitchell III
6484c7e5b5 ASSERT parameter assumptions in IntEngStretchBlt() and IntEngMaskBlt()
svn path=/trunk/; revision=12107
2004-12-14 03:36:46 +00:00
Royce Mitchell III
adf92baa5e IntEngBitBlt() ASSERT() some assumptions
svn path=/trunk/; revision=12106
2004-12-14 03:28:34 +00:00
Royce Mitchell III
0dfc0d93bd came across small potential kmode crash while researching another bug fix
svn path=/trunk/; revision=12105
2004-12-14 03:23:14 +00:00
Gunnar Dalsnes
241ac18672 STATUSBAR_SetTextT:
-ntext wasn't freed on return if text was unicode
-part->text was allways freed, but if the previous style was SBT_OWNERDRAW, part->text would contain 32bit data (not a buffer ptr.)

svn path=/trunk/; revision=12104
2004-12-14 01:12:51 +00:00
Gunnar Dalsnes
43ca7fca1f zw.h: correct ZwDuplicateToken proto.
advapi32\token\token.c: DuplicateTokenEx: pass correct values to NtDuplicateToken
security.c: RtlImpersonateSelf: pass correct values to NtDuplicateToken
ntoskrnl\token.c:
-NtSetInformationToken: lie and say we succeded
-NtDuplicateToken: don't deref. nullpointer

svn path=/trunk/; revision=12103
2004-12-14 00:41:24 +00:00
Thomas Bluemel
31a9a2b464 sorry for defining structures twice...
svn path=/trunk/; revision=12102
2004-12-14 00:00:41 +00:00
Filip Navara
d7b522cba2 - Modify RtlGetNtVersionNumbers to allow loading of WinXP SP2 MSVCRT.DLL.
svn path=/trunk/; revision=12101
2004-12-13 23:11:13 +00:00
Thomas Bluemel
f49768c160 cache free gdi handles
svn path=/trunk/; revision=12100
2004-12-13 21:59:28 +00:00
Filip Navara
b02dd7c73d - Remove duplicate typedefs.
svn path=/trunk/; revision=12099
2004-12-13 21:45:36 +00:00
Art Yerkes
402db44755 I had put an IOSB on the stack in TdiConnect. Now we use a PendingIrp
struct that associates it with an IRP.  Better.

svn path=/trunk/; revision=12098
2004-12-13 21:20:38 +00:00
Eric Kohl
c4f4ef9ea2 - Remove Wine-isms from the profile code.
- Wrap single-line if-statements.
- Cleanup the indentation.

svn path=/trunk/; revision=12097
2004-12-13 21:16:26 +00:00
Eric Kohl
c11fd7a860 Don't link kernel32.dll against wine.a.
svn path=/trunk/; revision=12096
2004-12-13 21:11:45 +00:00
Thomas Bluemel
51f494a42c forgot this file
svn path=/trunk/; revision=12095
2004-12-13 20:53:25 +00:00
Art Yerkes
91ff22985a Added stack frames and Tag printing to used blocks. This allows redzone
violations on used blocks to tell where the block was allocated.

svn path=/trunk/; revision=12094
2004-12-13 20:11:08 +00:00
Art Yerkes
0492a94c6f Allocate a final WCHAR for the NUL put on by wcsncat.
svn path=/trunk/; revision=12093
2004-12-13 20:09:26 +00:00
Thomas Bluemel
3340e6eecd added stubs for SetSecurityInfo(), GetInheritanceSourceA/W() and FreeInheritedFromArray()
svn path=/trunk/; revision=12092
2004-12-13 19:06:28 +00:00
Hartmut Birr
1d2f603b9d - Replaced HeapAlloc, HeapFree and HeapReAlloc with alloc, free and realloc.
svn path=/trunk/; revision=12091
2004-12-13 18:30:08 +00:00
Thomas Bluemel
e2e32b1c11 cvs maintainance
svn path=/trunk/; revision=12090
2004-12-13 18:20:28 +00:00
Thomas Bluemel
c88782cd9c cvs maintainance
svn path=/trunk/; revision=12089
2004-12-13 18:06:39 +00:00
Filip Navara
6320501cf5 I was wrong, MiniSendComplete shouldn't be called at all by NDIS except if explicitly asked to by the miniport (in pending case).
svn path=/trunk/; revision=12088
2004-12-13 17:16:36 +00:00
Filip Navara
f687a8456d REVERT:
- Don't call ProtocolSendComplete after NdisSend (NDIS should call it).

svn path=/trunk/; revision=12087
2004-12-13 17:13:24 +00:00
Filip Navara
04afe309b7 - Don't call ProtocolSendComplete after NdisSend (NDIS should call it).
svn path=/trunk/; revision=12086
2004-12-13 16:53:38 +00:00
Filip Navara
48048914c0 MiniSendComplete should be called if MiniportSend routine returns STATUS_SUCCESS even for deserialized miniports.
svn path=/trunk/; revision=12085
2004-12-13 16:50:21 +00:00
Filip Navara
b5fa0b44a1 - Fix compilation errors with GCC 4.0-20041205.
svn path=/trunk/; revision=12084
2004-12-13 16:36:39 +00:00
Filip Navara
963cbda1e0 - Fix compilation errors with GCC 4.0-20041205.
svn path=/trunk/; revision=12082
2004-12-13 15:39:52 +00:00
Filip Navara
dc866ac5b0 Don't pass UNICODE_STRINGs in the dwTypeData of MENUITEMINFO. Pass the usual strings here.
svn path=/trunk/; revision=12081
2004-12-13 15:38:19 +00:00
Gé van Geldorp
6d6f09144e Fix double-spaced output in crash report
svn path=/trunk/; revision=12080
2004-12-13 15:07:33 +00:00
Filip Navara
b2a1d58158 - Get handling of unhandled exceptions working again.
svn path=/trunk/; revision=12079
2004-12-13 13:32:24 +00:00
Thomas Bluemel
56a8abdfa4 decrement process gdi object counter on object deletion
svn path=/trunk/; revision=12078
2004-12-13 12:51:51 +00:00
Royce Mitchell III
55c08f71b9 implemented GetUserNameA() and GetUserNameW() - thanks to kjk_hyperion and Alex Ionescu for help on how to implement them.
svn path=/trunk/; revision=12075
2004-12-13 07:09:56 +00:00
Royce Mitchell III
d2b0c045cd BUGFIX: unhandled error conditions IntGdiCreateDC()
svn path=/trunk/; revision=12073
2004-12-13 05:23:59 +00:00
Gregor Anich
6298e65633 Changed half-verbose build output a bit:
- Do not print "Entering directory ..." messages
 - Do not print "Nothing to be done for ..." messages
 - Print the target name before the command which is executed (does not work with wine dlls yet)

Added/Changed stuff in rules.mak:
FULL_MAP was renamed to BUILD_MAP and can be set to
 - full (default, like FULL_MAP=yes was - build maps with objdump)
 - yes (like FULL_MAP=no was - build maps with nm)
 - no (don't build maps at all)
BUILD_SYM was added - can be set to yes/no (defaults to yes)

svn path=/trunk/; revision=12071
2004-12-13 02:20:09 +00:00
Royce Mitchell III
ed3a9ff266 BUGFIX: get rid of an incorrect ASSERT
svn path=/trunk/; revision=12070
2004-12-13 01:45:18 +00:00
Thomas Bluemel
ce3ef02040 revert some of the changes i did to IntDestroyWindow()
svn path=/trunk/; revision=12069
2004-12-13 00:11:59 +00:00
Thomas Bluemel
29be8a4058 unmark dirty windows on destruction so no painting messages get generated afterwards
svn path=/trunk/; revision=12068
2004-12-12 23:42:35 +00:00
Filip Navara
ed10a7b01f - Acquire the dispatcher lock in KeRevertToUserAffinityThread instead of just using uninintialized oldIrql variable.
svn path=/trunk/; revision=12067
2004-12-12 23:18:55 +00:00
Eric Kohl
f51fcb3a2b Replace assert by ASSERT.
svn path=/trunk/; revision=12066
2004-12-12 23:09:13 +00:00
Filip Navara
eeeb963b9d - Fix compilation errors with GCC 4.0-20041205.
svn path=/trunk/; revision=12065
2004-12-12 23:08:13 +00:00
Thomas Bluemel
02f77a0c2a initialize the unhandled exception filter automatically
svn path=/trunk/; revision=12064
2004-12-12 23:03:56 +00:00
Thomas Bluemel
f920a98034 make SetunhandledExceptionFilter() thread-safe
svn path=/trunk/; revision=12063
2004-12-12 22:39:45 +00:00
Eric Kohl
68f22d804d - Replace hive locks and hive list lock by a global lock to make the registry thread-safe.
svn path=/trunk/; revision=12062
2004-12-12 22:36:10 +00:00
Royce Mitchell III
50a975cc08 BUGFIX: NtGdiGetDeviceCaps() called NtGdiEscape() with hDC when it already had it locked.
BUGFIX: fixed condition surrounding failed ASSERT in NtGdiGetTextExtentPoint32().

svn path=/trunk/; revision=12061
2004-12-12 21:58:42 +00:00
Royce Mitchell III
522137c499 add missing assertion
svn path=/trunk/; revision=12060
2004-12-12 21:43:17 +00:00
Royce Mitchell III
63fcc0cffd BUGFIX: MouseSafety does it's own parameter validation, and this calculation was flat-out wrong anyway
svn path=/trunk/; revision=12059
2004-12-12 21:38:25 +00:00
Thomas Bluemel
4e843a2af2 * Implement EnumDisplayDevicesA
* Better implementation of LookupAccountSidA/W stubs
* Allow enumeration of display settings in CLI mode
* Add route app to compile/install target
* Correct debug messages

Patch by Herv� Poussineau.

svn path=/trunk/; revision=12058
2004-12-12 21:25:05 +00:00
Royce Mitchell III
9530713f4b testing reveals that source rect must be constrained to the boundaries of the source image. Adjust dest rect so that output still lands where user expected it. This fixes kmode crash from comctl32 handing bad data off to StretchBlt().
svn path=/trunk/; revision=12057
2004-12-12 20:58:09 +00:00
Thomas Bluemel
d2cc7ec4a0 MessageBoxIndirectA() should check whether the MB_USERICON bit was set, otherwise in case the lpszIcon field of the MSGBOXPARAMS structure, the application passed to it, was never initialized and is not being interpreted as an atom, it takes this random pointer and tries to convert the string inside it to unicode - which might cause an exception. it solves a problem with winzip hardon discovered.
The bug also exists in wine but doesn't appear to arise.

svn path=/trunk/; revision=12056
2004-12-12 20:40:06 +00:00
Hartmut Birr
803a12e7fe - Split KdInitSystem in two phases, to enable debug prints (serial line and bochs)
in the very early boot stage (before the initialisation from hal).

svn path=/trunk/; revision=12055
2004-12-12 20:14:01 +00:00
Filip Navara
311bcaca5c *** empty log message ***
svn path=/trunk/; revision=12054
2004-12-12 18:14:22 +00:00
Steven Edwards
face862633 added .cvsignore
svn path=/trunk/; revision=12053
2004-12-12 18:07:44 +00:00
Filip Navara
db8aa43455 - Remove -DCOBJMACROS from oleaut32 makefile.
- Minor fixes to OLE interface prototypes.

svn path=/trunk/; revision=12052
2004-12-12 18:01:23 +00:00
Thomas Bluemel
0ced40be8e fixed problems with mouse cursor handling
svn path=/trunk/; revision=12051
2004-12-12 17:56:52 +00:00
Hartmut Birr
e3bd28c5ae - Fixed the definition of SYNCH_LEVEL.
svn path=/trunk/; revision=12050
2004-12-12 17:52:06 +00:00
Hartmut Birr
7e26d1bc15 - Used the lock prefix on smp builds.
svn path=/trunk/; revision=12049
2004-12-12 17:48:20 +00:00
Filip Navara
a714d73871 Hans Leidekker <hans@it.vu.nl>
Fix compilation with GCC 4.

svn path=/trunk/; revision=12048
2004-12-12 17:46:53 +00:00
Hartmut Birr
e2b1bfab2b - Improved KeBugCheckWithTf for smp machines.
svn path=/trunk/; revision=12047
2004-12-12 17:42:00 +00:00
Hartmut Birr
1fcc37658f - Redefined OldIrql. It was lost while my code cleanup.
svn path=/trunk/; revision=12046
2004-12-12 17:36:00 +00:00
Hartmut Birr
973ea3b0bc - Replaced PiThreadLock with the dispatcher databae lock.
- Fixed some problems while setting/changing the affinity of a thread.

svn path=/trunk/; revision=12045
2004-12-12 17:25:53 +00:00
Filip Navara
6d37ab99d0 - Reformulate comment.
svn path=/trunk/; revision=12044
2004-12-12 17:24:30 +00:00
Filip Navara
4bceb917d1 - Workaround infinite loop on loopback connect.
svn path=/trunk/; revision=12043
2004-12-12 17:03:01 +00:00
Filip Navara
7660dbd930 - Don't call IntReleaseWindowObject with handle.
svn path=/trunk/; revision=12042
2004-12-12 16:47:52 +00:00
Filip Navara
1d43b533ec - Fix compilation of non-DBG builds.
svn path=/trunk/; revision=12041
2004-12-12 15:57:15 +00:00
Eric Kohl
a643581101 - Remove Wine-isms from advapi32 because it's a ReactOS DLL!
- Enforce a consistent coding style.
- Remove -D__REACTOS__

svn path=/trunk/; revision=12040
2004-12-12 15:17:38 +00:00
Filip Navara
33c558065f - Fix receiving of loopback packets.
- Fix recursive spinlock acquire in NBQueuePacket.
- Don't pend connect requests if they're satisfied during the call.
- Basic implementation of listen.

svn path=/trunk/; revision=12039
2004-12-12 11:48:04 +00:00
Steven Edwards
3e1fe0ceaa Update the Wine porting documentation.
svn path=/trunk/; revision=12038
2004-12-12 04:43:36 +00:00
James Tabor
ef9b305cdf Need -D__REACTOS__ in makefile for porting from wine.
svn path=/trunk/; revision=12037
2004-12-12 04:34:23 +00:00
Thomas Bluemel
e9615cc222 accidently committed this file, revert changes
svn path=/trunk/; revision=12036
2004-12-12 02:15:23 +00:00
Thomas Bluemel
50b193239b 1. remove mouse cursor hacks from eng/mouse
2. implemented more win2k-like gdi handle table (handle entry lookup is not yet optimized/cached!)
3. moved cursoricon.c from objects to ntuser as it's part of the user api and not of the gdi
4. get rid of the eng handle table
5. minor fixes

svn path=/trunk/; revision=12035
2004-12-12 01:40:39 +00:00
Thomas Bluemel
f6de8b04ac don't leak resources
svn path=/trunk/; revision=12034
2004-12-11 22:39:38 +00:00
Thomas Bluemel
2e7cd83da3 silence some debug output
svn path=/trunk/; revision=12033
2004-12-11 21:19:41 +00:00
Art Yerkes
ab5972cd97 Fixed warnings of mismatched format and arg type.
svn path=/trunk/; revision=12032
2004-12-11 21:07:20 +00:00
Art Yerkes
2dc5f4df19 Added double complete protection so that we never call an upper-level
completion routine more than once for the same packet.  This alleviates
a bug i observe with the realtek 8139, as reported by gge.

Define BREAK_ON_DOUBLE_COMPLETE to get a bugcheck if a send completion
handler would be called more than once.  This define is intended to help
us determine if the actual bug is in our ndis.

svn path=/trunk/; revision=12031
2004-12-11 20:48:33 +00:00
Filip Navara
aeee5da01c - Minor fixes to MenuGetRosMenuItemInfo.
svn path=/trunk/; revision=12030
2004-12-11 20:18:06 +00:00
Steven Edwards
2298445fdd disable 2 environ tests that fail under ros.
svn path=/trunk/; revision=12029
2004-12-11 20:01:50 +00:00
Steven Edwards
686bc7deab Disable a cpp test. We need dbghelp support for name de-mangling.
svn path=/trunk/; revision=12028
2004-12-11 19:51:31 +00:00
Filip Navara
33f1fed6b5 - Fix yet another heap free error.
svn path=/trunk/; revision=12027
2004-12-11 19:45:10 +00:00
Thomas Bluemel
ed47eaa79a 1. don't dispatch sent messages to windows during destruction
2. fixed class lookup in a hacky way (get's rewritten soon anyway)

svn path=/trunk/; revision=12026
2004-12-11 19:39:18 +00:00
Steven Edwards
38520a606d Added Wine msvcrt regression tests.
I am working on making us pass all of them and disabling the ones that fail.

svn path=/trunk/; revision=12025
2004-12-11 19:31:46 +00:00
Steven Edwards
aac9c446c3 Wineism cleanup has started.
svn path=/trunk/; revision=12024
2004-12-11 19:21:35 +00:00
Steven Edwards
6581094403 Remove some of the unneeded internal headers in a further effort
to de-wineify my bad import of msvcrt last year.

svn path=/trunk/; revision=12023
2004-12-11 19:21:11 +00:00
Steven Edwards
46e27ab423 msvcrt lock functions have been dewine-ifyed.
svn path=/trunk/; revision=12022
2004-12-11 19:20:19 +00:00
Steven Edwards
d9b42ea553 de-wineifying parts of msvcrt.
svn path=/trunk/; revision=12021
2004-12-11 19:19:38 +00:00
Steven Edwards
dfe99f3cf7 add wrapper code for the VkKeyScan functions around
VkKeyScanExW and GetKeyboardLayout.
(Both still need to be implemented)

svn path=/trunk/; revision=12020
2004-12-11 18:43:06 +00:00
Gregor Anich
78f1b75052 Fix output of the build system for VERBOSE=yes, add output for "make install" in half-verbose mode.
svn path=/trunk/; revision=12019
2004-12-11 17:53:12 +00:00
Filip Navara
21fc8bafa5 - Manage TCP ports using port set and dynamically assign TCP port number if sin_port == 0.
svn path=/trunk/; revision=12018
2004-12-11 16:36:06 +00:00
Steven Edwards
84d1a39be9 remove accctrl.h from include. The w32api version works fine for us.
svn path=/trunk/; revision=12017
2004-12-11 16:02:22 +00:00
Gregor Anich
78c5a766c0 Add half-verbose output to build system and make it the default (the old output is available via setting VERBOSE=yes)
svn path=/trunk/; revision=12016
2004-12-11 16:02:22 +00:00
Thomas Bluemel
8a11bbf017 RtlLargeIntegerArithmeticShift() shouldn't return uninitialized data from the stack
svn path=/trunk/; revision=12015
2004-12-11 15:23:51 +00:00
Filip Navara
cfabacaaa5 - Implement WSPGetSockName.
- Minor AFD fixes.

svn path=/trunk/; revision=12014
2004-12-11 14:59:32 +00:00
Gé van Geldorp
57bdb75d51 - Detect HDTV output
- Increase scrolling speed
- Blacklist more PCI slots

svn path=/trunk/; revision=12013
2004-12-11 14:45:00 +00:00
Martin Fuchs
090e4f33b3 update Doxyfile format
svn path=/trunk/; revision=12012
2004-12-11 14:15:57 +00:00
Martin Fuchs
01c82c0b58 enable new Doxygen option SHOW_DIRECTORIES
svn path=/trunk/; revision=12011
2004-12-11 13:40:24 +00:00
Filip Navara
309075c9f8 - Don't try to free pointer from union that isn't used.
svn path=/trunk/; revision=12010
2004-12-11 00:33:13 +00:00
Filip Navara
bc537c1d3e - Use malloc/free in C++ new/delete operator implementation (resolves heap issues with Mozilla Firefox).
svn path=/trunk/; revision=12009
2004-12-11 00:24:03 +00:00
Thomas Bluemel
da5463c04a forgot this file
svn path=/trunk/; revision=12008
2004-12-11 00:22:25 +00:00
Thomas Bluemel
4173776e7b port crypt and trustee support from Wine. Patch by Steven Edwards.
svn path=/trunk/; revision=12007
2004-12-11 00:21:33 +00:00
Royce Mitchell III
2c781cf79e PagedPool improvements: differenciate between hiredzone and loredzone, added double-free detection including stack trace of free'er, keep track of Tags, two new utility functions for debugging ( VOID ExRosDumpPagedPoolByTag(ULONG) and ULONG ExRosQueryPoolTag(PVOID) ).
svn path=/trunk/; revision=12006
2004-12-11 00:13:37 +00:00
Thomas Bluemel
0bcccac59e fixed a bug that caused locking a not anymore existing message queue while dispatching a message. Thanks to Royce for helping me :)
svn path=/trunk/; revision=12005
2004-12-10 22:40:29 +00:00
Filip Navara
79ebef95eb - Update registry keys for sound blaster driver.
svn path=/trunk/; revision=12004
2004-12-10 19:09:02 +00:00
Filip Navara
40d1739c83 - Fix HalGetAdapter for ISA adapters.
- Fix layout of EISA_CONTROL structure.

svn path=/trunk/; revision=12003
2004-12-10 19:05:33 +00:00
Gregor Anich
821da7d6f9 Use static buffer for DbgPrint message queueing instead of ExAllocatePool.
svn path=/trunk/; revision=12002
2004-12-10 18:31:04 +00:00
Gé van Geldorp
5898f3701e Add video miniport driver for Xbox, to be used in conjunction with
framebuf.dll DDI

svn path=/trunk/; revision=12001
2004-12-10 17:11:35 +00:00
Filip Navara
7cde3a39e7 - Move desktop code from NtUserUpdatePerUserSystemParameters to IntDesktopUpdatePerUserSettings.
svn path=/trunk/; revision=12000
2004-12-10 16:52:04 +00:00
Filip Navara
c5adfe4512 - Fix definitions of SecurityAnonymous, SecurityIdentification, SecurityImpersonation, SecurityDelegation.
- Fix prototype of NtDuplicateToken and change DuplicateTokenEx accordingly.
- Implement NtOpenThreadToken[Ex] (complete rewrite), PsDisableImpersonation and PsRestoreImpersonation.

svn path=/trunk/; revision=11999
2004-12-10 16:50:38 +00:00
Gregor Anich
bc28145d48 Add an option to serialize DbgPrint - don't worry, it's disabled by default and meant only for those who are tired of reading mixed debug messages.
svn path=/trunk/; revision=11998
2004-12-10 14:58:26 +00:00
Thomas Bluemel
30fd9c8072 implemented GetThreadIOPendingFlag() (only kernel32 part)
svn path=/trunk/; revision=11996
2004-12-09 19:11:07 +00:00
Thomas Bluemel
865bf755ca implemented CheckRemoteDebuggerPresent() (only kernel32 part)
svn path=/trunk/; revision=11995
2004-12-09 19:03:33 +00:00
Thomas Bluemel
e6bc6ec79d implemented SetDllDirectory() and GetDllDirectory(). LoadLibrary(Ex)() should be extended to use the dll directory when present!
svn path=/trunk/; revision=11994
2004-12-09 17:28:10 +00:00
Royce Mitchell III
c29e190650 allow data from SYM files to be used in stack traces in DBG builds
svn path=/trunk/; revision=11993
2004-12-09 14:20:06 +00:00
Steven Edwards
ce5b02a4d0 Started cleaning up the mess from my old import of
Wine code in to msvcrt.

I will start looking at cleaning up the memory allocation problems soon.

svn path=/trunk/; revision=11992
2004-12-09 06:10:06 +00:00
Steven Edwards
48ec3578a0 add dsound to the top makefile.
svn path=/trunk/; revision=11991
2004-12-09 06:04:40 +00:00
Steven Edwards
46b1a8f34e Fix a compile error I was seeing due to lack of mbstowcs.
Please let me know if this breaks anything for anyone else.

svn path=/trunk/; revision=11990
2004-12-09 05:53:47 +00:00
Steven Edwards
f6e33ed19b Doing some work on the msvcrt Wine mess.
Added .cvsignore to make it less trouble to see whats going on.

svn path=/trunk/; revision=11989
2004-12-09 05:34:07 +00:00
Steven Edwards
698924b5ec Disregard that last change. The line endings were messed up.
svn path=/trunk/; revision=11988
2004-12-09 04:47:20 +00:00
Steven Edwards
79d7258886 remove C++ style comments.
svn path=/trunk/; revision=11987
2004-12-09 04:41:13 +00:00
Gé van Geldorp
e00f8cf1fd Don't write to blacklisted PCI functions either
svn path=/trunk/; revision=11984
2004-12-08 21:53:24 +00:00
Richard Campbell
de75857e68 - Add DSOUND.DLL to the bootcd
svn path=/trunk/; revision=11982
2004-12-08 16:49:38 +00:00
Gé van Geldorp
284d5b4b23 Disk partitioning handling
svn path=/trunk/; revision=11981
2004-12-08 11:42:28 +00:00
Gé van Geldorp
f4ad8be090 Sync to Wine-20041201
svn path=/trunk/; revision=11980
2004-12-07 23:08:34 +00:00
Gé van Geldorp
125d613073 Sync to Wine-20041201
svn path=/trunk/; revision=11979
2004-12-07 22:45:09 +00:00
Gé van Geldorp
223a2d7ff7 Sync to Wine-20041201
Alexandre Julliard <julliard@winehq.org>
- Avoid using gettimeofday.

svn path=/trunk/; revision=11978
2004-12-07 22:32:28 +00:00
Gé van Geldorp
d50ca5db0b Sync to Wine-20041201
svn path=/trunk/; revision=11977
2004-12-07 22:19:10 +00:00
Gé van Geldorp
c7a5d769f6 Sync to Wine-20041201
Filip Navara <xnavara@volny.cz>
- Check the return value from *_GETNUMDEVS message as per KB90562.
- Fix typo in MMDRV_InstallMap.
Eric Pouech <pouech-eric@wanadoo.fr>
- Const correctness fixes.
Robert Shearman <rob@codeweavers.com>
- Fix broken thread start routines.
Eric Pouech <pouech-eric@wanadoo.fr>
Filip Navara <xnavara@volny.cz>
32 bit low level drivers now use a Unicode interface (used to be ANSI):
- Send the *_GETDEVCAPS messages in unicode format from the
  *GetDevCapsW function and call the *GetDevCapsW from their respective
  Ansi versions.
- Modify all low level drivers to correctly process the *_GETDEVCAPS
  messages as unicode.
- *_GETDEVCAPS messages are now mapped from/to unicode for 16 bit code.
- Removed all SoundBlaster naming oldies.
- Better use of some unicode functions (instead of Ansi) in winmm.
Jeremy White <jwhite@codeweavers.com>
- The Sleep(0) in this loop is incorrect, and should be removed.  This
  fixes iTunes and a game reported by che.
Remi Assailly <remi.assailly@free.fr>
- Add some missing error values in WINMM_ErrorToString.

svn path=/trunk/; revision=11976
2004-12-07 21:41:02 +00:00
Royce Mitchell III
7a672d567c SetDllDirectoryA/W(): lie to caller and indicate that their request completed successfully
svn path=/trunk/; revision=11975
2004-12-07 20:18:49 +00:00
Royce Mitchell III
902d0f0826 removed an ASSERT that occured when system ran out of GDI handles, and added more correct error handling for the condition
svn path=/trunk/; revision=11974
2004-12-07 19:53:44 +00:00
Gé van Geldorp
4b3c9f12ad Sync to Wine-20041201
Eric Pouech <pouech-eric@wanadoo.fr>
- Const correctness fixes.

svn path=/trunk/; revision=11973
2004-12-07 19:35:19 +00:00
Gé van Geldorp
bc927431e4 Sync to Wine-20041201
Eric Pouech <pouech-eric@wanadoo.fr>
- Const correctness fixes.

svn path=/trunk/; revision=11972
2004-12-07 19:28:49 +00:00
James Tabor
2899606a4b Code cleanup and sink with WindHq CVS.
svn path=/trunk/; revision=11971
2004-12-07 08:13:01 +00:00
Gé van Geldorp
12c35f6b5a Sync to Wine-20041201
Eric Pouech <pouech-eric@wanadoo.fr>
- Const correctness fixes.
Juan Lang <juan_lang@yahoo.com>
- Fix CSIDL_CONTROLS and CSIDL_PRINTERS PIDL types, and update tests now
  that they pass.
Robert Shearman <rob@codeweavers.com>
- Use more specific error codes than E_FAIL, where possible.
- Move vtable to end, give it the const modifier, and remove unneeded
  function declarations.
Juan Lang <juan_lang@yahoo.com>
- the correct registry location to override is User Shell Folders, not
  Shell Folders
- if User Shell Folders doesn't exist in HKCU, HKLM should be tried
- SHGetSpecialFolderPath should call SHGetFolderPath, not vice-versa
- the default values should be localizable
- some of the parameter checking and returned LPITEMIDLISTs were a bit
  off
- _SHExpandEnvironmentStrings should return input string if no % found
to expand, and should call ExpandEnvironmentStringsW if it doesn't
handle an environment variable directly.  Based on a patch from Dan
Kegel.
- Avoid copying invalid data on error.
- Update shell32's version to WinXP level.
Aric Stewart <aric@codeweavers.com>
- Implementation of PathCleanupSpec.
Fabrice Menard <menard.fabrice@wanadoo.fr>
- Some French translations added.
- Check the type of error returned by SHCreateDirectoryExW.
Rolf Kalbermatter <rolf.kalbermatter@citeng.com>
- Use SHCreateDirectoryEx function instead of doing explicit recursive
  directory creation.
- Fix bad memory allocation for unicode buffer.
- SHCreateDirectory should create intermediate directories if
  necessary.
- Remove extra boolean parameter in SHNotifyMoveFile as it is not
  used.
- Use in SHFileOperation the function SHNotifyCreateDirectory instead
  of SHCreateDirectoryEx as it does not anymore what is needed here.
- Fix several unsigned/signed mismatch warnings.
Alexandre Julliard <julliard@winehq.org>
- Avoid copying invalid data on error.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Tom Wickline <twickline@sitestar.net>
- Version resources cleanup.

svn path=/trunk/; revision=11970
2004-12-06 23:55:46 +00:00
Gunnar Dalsnes
c1a2a1d3de corrected the last error to check for when determining if the file already exists (when using CreateFile with CREATE_NEW)
svn path=/trunk/; revision=11969
2004-12-06 14:45:47 +00:00
Gunnar Dalsnes
018e3f9601 -correct return value/last error
-make use of macros for stu conversion
-pass NULL timeout for INFINITE wait instead of waiting for 292000 years;-D

svn path=/trunk/; revision=11968
2004-12-06 14:37:11 +00:00
Gunnar Dalsnes
aab32a11b0 -add TYPE_ALIGNMENT macro
-add macros for easy conversion to system time units (100ns)
(dunno if this is the right place to put it)

svn path=/trunk/; revision=11967
2004-12-06 14:34:43 +00:00
Gunnar Dalsnes
7a214c6c4b set correct last error
svn path=/trunk/; revision=11966
2004-12-06 14:24:51 +00:00
Gunnar Dalsnes
dd196f60cb replace NtCreateFile with ZwCreateFile
svn path=/trunk/; revision=11965
2004-12-06 13:46:43 +00:00
Gé van Geldorp
e3b65070e7 Sync to Wine-20041201
Eric Pouech <pouech-eric@wanadoo.fr>
- Const correctness fixes.

svn path=/trunk/; revision=11964
2004-12-06 10:20:26 +00:00
Gé van Geldorp
4b2aba9a6f Sync to Wine-20041201
Eric Pouech <pouech-eric@wanadoo.fr>
- Const correctness fixes.

svn path=/trunk/; revision=11963
2004-12-06 10:15:04 +00:00
Gé van Geldorp
87ac9421e8 Sync to Wine-20041201
Robert Shearman <rob@codeweavers.com>
- Add some function declarations to objbase.h.
- Add stubs for server ref counting.
- Implement HRESULT marshaling.
- Implement OleDuplicateData.
Eric Pouech <pouech-eric@wanadoo.fr>
- Const correctness fixes.
Mike Hearn <mh@codeweavers.com>
- Improve OLE function documentation.
- Bail out with CO_E_NOTINITIALIZED when apt is null.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Remove bogus use of nStatCounter and hOleAut32 in CoSetState.
- Remove a comment about protecting per thread data by a critical section.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Mike Hearn <mh@codeweavers.com>
- Trace the OLE error info strings.

svn path=/trunk/; revision=11962
2004-12-06 10:07:19 +00:00
Gé van Geldorp
8679951253 Sync to Wine-20041201
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Ensure DllCanUnloadNow is a truly void function, and give it a unique
  name so it can be documented per-dll.
Tom Wickline <twickline@sitestar.net>
- Version resources cleanup.

svn path=/trunk/; revision=11961
2004-12-06 09:57:06 +00:00
Gé van Geldorp
cc46c6f887 Sync to Wine-20041201
Mike McCormack <mike@codeweavers.com>
- CFM_GETSPEC always returns a space-separated list.
- Fix ofn.nFileOffset when multiple files are selected.

svn path=/trunk/; revision=11960
2004-12-06 09:51:03 +00:00
Richard Campbell
1d2d1a4b45 commented out the progress page in setup because it doesn't currently do anything.
svn path=/trunk/; revision=11959
2004-12-06 09:13:28 +00:00
Alex Ionescu
de8be4fff6 Filip and Richard are both smoking something.
Replaced syntax error and incorrect inversion.

dwUnknown is a reserved parameter (dwReserved is more correct) that is never used, but it's still incorrect to pass 0 because we should respect what the user is sending us.

svn path=/trunk/; revision=11958
2004-12-06 08:41:38 +00:00
Richard Campbell
67c8670a31 - More fixes related to the removal of the 'lib' prefix on various libraries.
- BootCD is working again now.

svn path=/trunk/; revision=11957
2004-12-06 08:33:42 +00:00
Richard Campbell
c07d07cd1a Fixed a typo that prevented ROS from booting properly.
svn path=/trunk/; revision=11956
2004-12-06 08:01:57 +00:00
Richard Campbell
4e8102a8ec - Filip is smoking something :-)
- Replaced a syntax error with 0 for now, as we don't know anything about NtUserUpdatePerUserSystemParameters.

svn path=/trunk/; revision=11955
2004-12-06 07:14:47 +00:00
Filip Navara
fc08e5303b - Basic implementation of (NtUser)UpdatePerUserSystemParameters.
- Move code querying for "PaintDesktopVersion" to NtUserUpdatePerUserSystemParameters.

svn path=/trunk/; revision=11954
2004-12-06 02:23:05 +00:00
Gunnar Dalsnes
3bfcecdd7d fix broken ShareAccess set/update. makes 80+ wine regtests pass
svn path=/trunk/; revision=11953
2004-12-06 00:26:47 +00:00
Gé van Geldorp
88f1bf6c5c Sync to Wine-20041201
Ulrich Czekalla <ulrich@codeweavers.com>
- Prevent the animation thread from waiting on itself when it stops.
Robert Shearman <rob@codeweavers.com>
- Remove unnecessary WNDPROC casts.
Alexandre Julliard <julliard@winehq.org>
- Avoid using the MAKEPOINTS macro, it's broken on big endian.
- Use correct type instead of void* in item linked list.
Dimitrie O. Paun <dpaun@rogers.com>
- Minor cleanups.
- Implement proper GWL_STYLE handling, proper reaction to style changes.
- Merge {{Inc,Dec}rement,Reset{Up,Down}}Field into one method. Fix a
  bunch of bugs in the process.  Implement DTM_[GS]ETMCFONT. Indentation
  fixes, cleanups.
- Use typesafe signature where possible.
- Use Unicode functions where possible.
- Send notification messages in the format dictated by
  infoPtr->notifyFormat.
- Audit the month calendar.
- Rename STATUSWINDOWINFO to STATUS_INFO, for consistency with other
  controls. Fix some prototypes. Always pass infoPtr around.
- Use only Unicode functions, it makes it easier to see we are fully
  Unicode compliant.
Robert Shearman <rob@codeweavers.com>
- Always remove WS_BORDER style from ComboBoxEx control.
- Correct the date of the completeness audit.
- Store the new style before redrawing and repositioning the control.
- Set cache bitmap dimensions correctly when a 0x0 image list is used.
- Optimize WM_STYLECHANGED handler to only redraw when a CCS_* style
  is changed, like native.
- bNtfUnicode is a dup' of bUnicode so remove it and fix the few
  places where it was used.
- Remove a load of useless NULL infoPtr checks.
- Hardcode the default padding like native instead of using a wacky formula.
- Replace some tabs with spaces and remove NMHDR casts.
- Implement TBN_RESTORE notification.
- Don't fill in any more information than native does for notifications.
- Store hit code in a signed integer so that we can see whether it is
  less than zero.
- Draw with ILD_TRANSPARENT instead of ILD_NORMAL to draw bitmaps from
  the native shell image list properly (reported by Thorsten Kani).
- Rewrite TOOLBAR_NotifyFormat to avoid side-effects.
James Hawkins <truiken@gmail.com>
- Fixed a few memory leaks.
Zach Gorman <zach@archetypeauction.com>
- Add the DT_NOPREFIX flag when calling DrawText() for single-line
  listview controls.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Pass infoPtr around in month calendar control.
- Add support for WM_SETFONT and WM_GETFONT messages.
- Dimensions of month calendar control should not depend on the client
  window size.
- Convert NativeFont control to unicode, use hbrBackground as in native.
- Do not retrieve infoPtr twice in ToolbarWindowProc entry.
- do not move updown control and buddy if an alignment was not requested
- in UDM_SETACCEL handler do not forget to update number of accelerators
- update arrows info in WM_LBUTTONDOWN as well as in WM_MOUSEMOVE
- use accelerators in WM_LBUTTONDOWN handler
Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
- Monthcal_SetRange: Set proper value for min date.
Thorsten Kani <beebix@gmx.net>
- Use address of tab_item.extra when building drawitemstruct.
- Don't add extra OFFSET_X/Y to the calculation of rcBitmap.top/left,
  just use GetSystemMetrics.
Huw Davies <huw@codeweavers.com>
- The default font for the treeview should be the icon title font.

svn path=/trunk/; revision=11952
2004-12-05 23:09:27 +00:00
Gé van Geldorp
a0b99a485e Another lib prefix killed: libexpat.dll -> expat.dll
svn path=/trunk/; revision=11951
2004-12-05 23:07:22 +00:00
Gé van Geldorp
d753f25ac5 libwine_unicode.dll is better known as wine_unicode.dll these days
svn path=/trunk/; revision=11950
2004-12-05 23:03:22 +00:00
Filip Navara
9a8220ce63 - Fix RtlInitUnicodeStringEx for NULL case (spotted by Herv� Poussineau).
svn path=/trunk/; revision=11949
2004-12-05 21:42:54 +00:00
Gé van Geldorp
3d7ae60229 Sync to Wine-20041201
James Hawkins <truiken@gmail.com>
- Fix cabextract memory leak.

svn path=/trunk/; revision=11948
2004-12-05 21:30:16 +00:00
Filip Navara
03ac59451e - Implement RtlInitUnicodeStringEx.
svn path=/trunk/; revision=11947
2004-12-05 21:16:01 +00:00
Gé van Geldorp
44109026ba hpoussin <poussine@freesurf.fr>:
- Add full FATX support
- Add volume label setting to FAT volumes
- Change all ANSI_STRING to OEM_STRING (thanks Filip!)
- Correct one bug in VfatUpdateEntry
- Correct one bug in VfatShutdown
Fixes bugs 286, 434 and 442

svn path=/trunk/; revision=11946
2004-12-05 16:31:51 +00:00
Gé van Geldorp
cb48d72333 Copy "halup.dll" to bootcd as "hal.dll"
svn path=/trunk/; revision=11945
2004-12-05 16:27:45 +00:00
Thomas Bluemel
9221b12484 get rid of the "global" system process handle since handles are only vaild in the context of the process that they belong to
svn path=/trunk/; revision=11944
2004-12-05 15:42:42 +00:00
Art Yerkes
61a1526935 Removed my preprocessor hack. DBG appeared to be getting swallowed.
Needs some investigation.

svn path=/trunk/; revision=11943
2004-12-05 08:39:09 +00:00
Gunnar Dalsnes
5f6525bc2b KJK:Hyperion: new macro _SEH_STATIC_FILTER, some changes
svn path=/trunk/; revision=11942
2004-12-05 06:05:52 +00:00
Filip Navara
bddec4f91a - Allocate the MDI client context structure only once (and don't create a second one in WM_CREATE and leak the first one).
- Don't call SetScrollInfo with SB_BOTH.
- Don't add empty system icon to the client menu.

svn path=/trunk/; revision=11941
2004-12-05 03:50:47 +00:00
Filip Navara
abd0ead395 - Fix conversion of messages from Unicode to Ansi and back.
svn path=/trunk/; revision=11940
2004-12-05 03:50:33 +00:00
Filip Navara
20aebf67c0 - Don't delete the "first bitmap" of memory DC. It's done by DeleteDC.
svn path=/trunk/; revision=11939
2004-12-05 01:13:29 +00:00
Filip Navara
ace6b4cce4 - Rebar cursors must be destroyed with DestroyCursor and not with DeleteObject.
svn path=/trunk/; revision=11938
2004-12-05 01:12:56 +00:00
Filip Navara
245bf5efa5 - Update .cvsignore files.
- Remove makefile.ros files from CVS.

svn path=/trunk/; revision=11937
2004-12-05 00:40:28 +00:00
Filip Navara
a40265b10e - Correctly destroy tooltip icons.
- Don't use DrawEdge with NULL device context.

svn path=/trunk/; revision=11936
2004-12-05 00:22:03 +00:00
Filip Navara
326cdb4ba6 - Change DPRINT1 to DPRINT in NtUserCreateDesktop.
- Make the pattern brush bitmap objects global to prevent ownership problems.

svn path=/trunk/; revision=11935
2004-12-05 00:20:41 +00:00
Filip Navara
70a0c8d832 - Disable debugging messages.
svn path=/trunk/; revision=11934
2004-12-05 00:20:22 +00:00
Art Yerkes
e6c94e606c afd/connect.c:
- only pend the irp if we got a pending return from tcpip.
afd/info.c:
- info stub for blocking mode info.
afd/main.c:
- added disconnect plumbing.
- some reformatting, add break after each inactive case.
afd/read.c:
- early return for already closed socket.
- function to correctly complete pending recv irps on a closed socket.
- fixed read completion bug, content properly zeroed before buffer is
  replenished.
- only attempt to fulfill read irps if we got data back.
- call ProcessClose in the no data case.
- major changes to AfdConnectedSocketRead due to connection close.  we now
  recognize the case where the request to tcpip returns zero bytes immediately
  and take action, doing processclose.
afd/tdi.c:
- Added TdiDisconnect.
route.c:
- router: fixed routing bug.  we used to reject the default route if the
  address didn't match at least one bit of the target network, even if the
  netmask is zero.
if.c:
- change RouterGetRoute to RouteGetRouteToDestination
tcp.c:
- simplify TCPReceiveData by removing eof clause.  not needed.
- added SEL_FIN branch in signalling.
- added TCPTranslateError to TCPConnect
- added TCPDisconnect
dispatch.c:
- Implement disconnect
ip_output.c:
- Make a contiguous area from each output packet.  We need to streamline this.
msafd:
- Added MsafdReturnWithErrno
- streamlined function returns with standardize errno selection.

svn path=/trunk/; revision=11933
2004-12-04 23:29:56 +00:00
Gé van Geldorp
b0145a85fe Probing functions 1 and 2 of device 0 on bus 0 completely freezes the Xbox,
blacklist those functions

svn path=/trunk/; revision=11932
2004-12-04 22:52:59 +00:00
Filip Navara
b5cbaeae0c - Don't stop backtrace at the first address that can't be displayed with module name (ie. backtrace over syscalls).
svn path=/trunk/; revision=11931
2004-12-04 22:13:09 +00:00
Filip Navara
f8e3085f08 - Don't try to delete stock font.
svn path=/trunk/; revision=11930
2004-12-04 22:09:02 +00:00
Filip Navara
bf002ea532 - Correct freeing of heap memory.
svn path=/trunk/; revision=11929
2004-12-04 22:08:30 +00:00
Filip Navara
86d655cae7 - Set the ownership of NCUpdateRegion before returning the WM_NCPAINT message, so it's possible to delete it.
svn path=/trunk/; revision=11928
2004-12-04 22:07:24 +00:00
Gé van Geldorp
14db5c210e Forgot to remove the space reservation for hal_pagetable
svn path=/trunk/; revision=11927
2004-12-04 21:48:45 +00:00
Gé van Geldorp
6352c035d1 Add beginnings of HAL for Xbox
svn path=/trunk/; revision=11926
2004-12-04 21:43:37 +00:00
Gé van Geldorp
a0422cb524 Use MmMapIoSpace() instead of messing around with the page tables directly
when mapping the video frame buffer for HAL

svn path=/trunk/; revision=11925
2004-12-04 21:40:55 +00:00
Gé van Geldorp
eb23bc5111 Current versions of VMware provide a correct BIOS memory map
svn path=/trunk/; revision=11924
2004-12-04 20:58:13 +00:00
Filip Navara
5958bb419b - Implement SetMenuItemInfo[AW].
svn path=/trunk/; revision=11923
2004-12-04 19:53:55 +00:00
Filip Navara
495274f192 - Implement lstr[i]cmp[AW] using CompareString[AW] and properly handle NULL parameters.
svn path=/trunk/; revision=11922
2004-12-04 19:52:55 +00:00
Filip Navara
7b11cf526c - Implement QueueUserAPC.
svn path=/trunk/; revision=11921
2004-12-04 19:45:56 +00:00
Filip Navara
8ea045450c - Fix the return value of WaitForMultipleObjectsEx.
svn path=/trunk/; revision=11920
2004-12-04 19:31:26 +00:00
Filip Navara
2cb4c8a744 - Implement QueueUserAPC.
svn path=/trunk/; revision=11919
2004-12-04 19:30:09 +00:00
Thomas Bluemel
5070bf0c61 fixed some function prototypes
svn path=/trunk/; revision=11918
2004-12-04 19:28:47 +00:00
Gé van Geldorp
529f4da133 Let HAL handle its own mapping of the video frame buffer
svn path=/trunk/; revision=11917
2004-12-04 17:22:47 +00:00
Gregor Anich
0291044900 Remove some unused files, little cosmetic changes.
svn path=/trunk/; revision=11916
2004-12-04 17:10:52 +00:00
Gregor Anich
7acc56f32e Added InterlockedCompareExchangePointer macro and 64 bit versions for Interlocked[Compare]ExchangePointer macros for use in ntoskrnl.
svn path=/trunk/; revision=11915
2004-12-04 16:56:20 +00:00
Gregor Anich
666228254c Use InterlockedCompareExchange64 instead of InterlockedCompareExchange for 64bit builds.
svn path=/trunk/; revision=11914
2004-12-04 15:49:20 +00:00
Gregor Anich
0467e4ac56 Remove "lib" suffix from "libwine" because it's added by the build system automatically.
svn path=/trunk/; revision=11913
2004-12-04 15:45:38 +00:00
Hartmut Birr
88ab19cd71 - Split up the handling if the fsd returns STATUS_NOT_IMPLEMENTED in MoveFileWithProgressW.
- Converted the destination name before calling NtSetInformationFile in MoveFileWithProgressW.

svn path=/trunk/; revision=11912
2004-12-04 15:38:22 +00:00
Eric Kohl
98ac389c31 Implement GetSystemDefaultUILanguage() and IsValidLocale().
svn path=/trunk/; revision=11911
2004-12-04 13:59:41 +00:00
Gregor Anich
181afb23d6 Prefix libs in dk/w32 and dk/nkm with "lib" to make use of GCC -l switch possible.
svn path=/trunk/; revision=11910
2004-12-03 23:37:44 +00:00
Gé van Geldorp
92ed2da0da Reorganise HAL so multiple HAL versions can be built in parallel
svn path=/trunk/; revision=11909
2004-12-03 20:10:45 +00:00
James Tabor
bd2288fed5 Fix and add missing files, and will allow the use of bison as an option of choice.
svn path=/trunk/; revision=11907
2004-12-03 06:21:44 +00:00
Thomas Bluemel
67ca81e36d no need to copy the buffers to the stack
svn path=/trunk/; revision=11906
2004-12-02 21:22:36 +00:00
Thomas Bluemel
9786cae211 the time zone buffers need to be large enough, applications like firefox might attempt to write into it
svn path=/trunk/; revision=11905
2004-12-02 21:19:56 +00:00
Filip Navara
3c09abb096 - Remove duplicate definitions.
svn path=/trunk/; revision=11904
2004-12-02 21:01:11 +00:00
Filip Navara
44ed30d08a *** empty log message ***
svn path=/trunk/; revision=11903
2004-12-02 19:46:16 +00:00
Filip Navara
80686a352c - Update OLEAUT32 to Wine-20041202
svn path=/trunk/; revision=11902
2004-12-02 19:38:49 +00:00
Eric Kohl
ccfff75080 Use the GMT timezone by default.
svn path=/trunk/; revision=11901
2004-12-02 14:09:25 +00:00
Eric Kohl
9fbe02e539 - RegQueryValueExA: Return the correct data size for binary data types.
svn path=/trunk/; revision=11900
2004-12-02 14:08:27 +00:00
Gregor Anich
bfbb47d39e Fixed handling of exceptions in memory read/write functions, moved ASSERT(0) to the right place.
svn path=/trunk/; revision=11898
2004-12-02 01:33:02 +00:00
Emanuele Aliberti
78b654db33 I removed an old comment about replacing PAGESIZE with PAGE_SIZE, which somebody else already did.
svn path=/trunk/; revision=11897
2004-12-01 23:51:11 +00:00
Gregor Anich
383304c284 Catch hang-up regtests, added _DispatcherTimeout macros for tests to specify timeout (default is 5000ms)
svn path=/trunk/; revision=11896
2004-12-01 23:23:47 +00:00
Emanuele Aliberti
550e5093ca *** empty log message ***
svn path=/trunk/; revision=11895
2004-12-01 23:05:37 +00:00
Magnus Olsen
70f9a164de Thx filps
> This is wrong and this file should be autogenerated. Only the
> dinput.spec file should be in CVS!
>
> - Filip

svn path=/trunk/; revision=11894
2004-12-01 20:46:33 +00:00
Filip Navara
b1ac258a6d - Get full OLEAUT32 to compile.
svn path=/trunk/; revision=11893
2004-12-01 20:06:15 +00:00
Thomas Bluemel
18ef45edfe Always use the PSEH names for NLG to avoid conflicts when _SEH_NO_NATIVE_NLG is defined but <setjmp.h> is included nevertheless. This fixes the use of PSEH in win32k. Also declared the _SEHCompilerSpecificHandler as __inline so that GCC will ignore it when it's unused. This fixes the inclusion of <pseh.h> in a PCH
Patch by KJK

svn path=/trunk/; revision=11892
2004-12-01 19:20:53 +00:00
Thomas Bluemel
572a3a13c5 removed unused definitions
svn path=/trunk/; revision=11891
2004-12-01 18:38:04 +00:00
Magnus Olsen
a5e8dcaa7d add
opengl32.dll, glu32.dll, dinput.dll, dinput8.dll to reactos bootcd

svn path=/trunk/; revision=11890
2004-12-01 16:09:03 +00:00
Magnus Olsen
ed830f0425 Build
Dxguid, dinput and dinput8
from reactos make file

svn path=/trunk/; revision=11889
2004-12-01 16:07:57 +00:00
Magnus Olsen
3da7540959 forget add file dinput.spec.def
other wise dinput8 will not build

svn path=/trunk/; revision=11888
2004-12-01 16:05:39 +00:00
Magnus Olsen
d77247b55e forget add file dinput.spec.def
other wise dinput will not build

svn path=/trunk/; revision=11887
2004-12-01 15:58:32 +00:00
Magnus Olsen
3e1bd42330 forget add file dinput.spec.def
other wise dinput will not build

svn path=/trunk/; revision=11886
2004-12-01 15:20:13 +00:00
Eric Kohl
019c9076ee Set timezone without changing the local time.
svn path=/trunk/; revision=11885
2004-12-01 14:28:54 +00:00
Art Yerkes
ceeb351515 - sanity check: assert DISPATCH_LEVEL for the dpc.
- Added a DEBUG_LOCK that shows lock activity.
- Moved crummy externs from event.c to tcp.h
- Withdraw TCPCancelReceiveRequest: i didn't mean to commit that
- Added signalled sockets list to TCP so that we don't do reentrant stuff from
  inside oskit.  The signal list holds sockets that have been identified by
  oskit as needing service.
- After packet receive and on the timer we drain this list, designalling each
  socket and completing relevant irps.
- According to msdn, the io cancellation routine must release the cancel spin
  lock, but we're entered with it acquired.  Our implementation in ntoskrnl
  matches this so the tcpip implementation was wrong.  Removed acquire.
- DDKAPI on DispCancelRequest.  Avoid some stack corruption on DPCs that now
  shows up.
- Make sure to IpMarkIrpPending and not edit flags by hand on Irps in dispatch.

svn path=/trunk/; revision=11884
2004-12-01 08:14:15 +00:00
Art Yerkes
89dd06fa40 miniport:
Make sure MiniQueueDpc is not called from PASSIVE_LEVEL.
Moved NdisMQueryInformationComplete so that the function and not the macro
is called from the DPC.  This was breaking stuff severely.
The adapter lock needn't be held when doing MiniDequeueWorkItem because we're
at DISPATCH_LEVEL already by virtue of being in a DPC target.
protocol:
Make sure MiniQueueWorkItem is called at DISPATCH_LEVEL.

svn path=/trunk/; revision=11883
2004-12-01 08:02:28 +00:00
Richard Campbell
ad7e640f0c msiexec requires msi, so don't build that either, as it breaks the tree.
svn path=/trunk/; revision=11882
2004-12-01 05:49:23 +00:00
Magnus Olsen
c40648eb2d add mouse support to dinput
note the mouse buffer are bit broke. do not expect some games working with the mouse

I hope this will dispary when gdi hooks comes

svn path=/trunk/; revision=11881
2004-11-30 20:29:48 +00:00
Thomas Bluemel
6f1f653942 don't build msi for now as it uses a 3rd party build utility until situation is cleared
svn path=/trunk/; revision=11880
2004-11-30 20:21:33 +00:00
James Tabor
5679e292f7 Added msi.dll and msiexec to the build system.
svn path=/trunk/; revision=11879
2004-11-30 19:19:48 +00:00
James Tabor
a9a6f59924 Sync msiexec with winehq cvs
svn path=/trunk/; revision=11878
2004-11-30 19:16:37 +00:00
James Tabor
34151c8b26 First port of Wine projects msi.dll
svn path=/trunk/; revision=11877
2004-11-30 19:10:50 +00:00
Art Yerkes
6b4f09638b connect: Allow async connections, and assume that concurrent operations
(like write) can happen.
main: Allow empty EaInfo in open, re: async select and the special control
socket.
read + write: assertions
tdi: don't wait for connect to return, remove event.

svn path=/trunk/; revision=11876
2004-11-30 04:49:50 +00:00
Art Yerkes
38ac0afdbb Make packet printing obey debug bits.
svn path=/trunk/; revision=11875
2004-11-30 04:23:42 +00:00
Art Yerkes
3fcb2d5efc Turned off printing in oskittcp.
svn path=/trunk/; revision=11874
2004-11-30 04:17:34 +00:00
Gunnar Dalsnes
00641f6f5b can't free non-allocated memory
svn path=/trunk/; revision=11873
2004-11-30 02:28:00 +00:00
Gunnar Dalsnes
bcf7f5403f don't free non allocated memory
svn path=/trunk/; revision=11872
2004-11-30 02:26:25 +00:00
Art Yerkes
fa6c7ae193 - Defined __NTDRIVER__ to turn on some code that is meant only for kernel mode.
- Removed another address object (AddrBuildAddress)
- Removed ROUTE_CACHE_NODE everywhere and replaced it with NEIGHBOR_CACHE_ENTRY
  anywhere it was used, since NCE contains sufficient information.
  - We will need to reintroduce PathMTU (the only unique information) in RCN.
    I intend to do that by expanding the NCE to contain an entry for each
    remote contact (not only neighbors), and add an MTU field there.
- ICMP, TCP, UDP, RawIP, IPSendDatagram - Changed RCN to NCE
- Protect ip timer work item from being multiply queued under load.
- Router: Add RouteGetRouteToDestination (the only function preserved from
  route.c).  This function is cut down to only calling FindOnLinkInterface
  and RouterGetRoute.
- Added DefaultGateway handling (The default route is automatically added).
- Cleaning in CONNECTION_ENDPOINT (removed ReceivedSegments)
- iinfo: Return correct type number for loopback adapter.

svn path=/trunk/; revision=11871
2004-11-30 00:10:41 +00:00
Gunnar Dalsnes
1abe87090e make some wine reg. tests pass
svn path=/trunk/; revision=11870
2004-11-29 17:31:21 +00:00
Filip Navara
dc2d3110e4 Dmitry Timoshkov <dmitry@codeweavers.com>
DrawTextEx should allocate text buffer on stack for thread safeness.

svn path=/trunk/; revision=11869
2004-11-29 16:51:10 +00:00
Eric Kohl
17f1fe8577 - FileTimeToLocalFileTime() and LocalFileTimeToFileTime() take timezone bias into account.
svn path=/trunk/; revision=11868
2004-11-29 15:02:33 +00:00
Eric Kohl
df74513933 - Convert boot time and system time from local time to UTC as soon as the timezone information is available.
- ExLocalTimeToSystemTime() and ExSystemTimeToLocalTime() take timezone bias into account.

svn path=/trunk/; revision=11867
2004-11-29 15:00:46 +00:00
Steven Edwards
456c0f4377 Removed inclusion of stdio.h as it causes a build error under one of my gccs
svn path=/trunk/; revision=11866
2004-11-29 04:10:31 +00:00
Gunnar Dalsnes
0e4455e169 forgot to remove something
svn path=/trunk/; revision=11865
2004-11-29 01:42:03 +00:00
Magnus Olsen
aafa6f0a89 first port of wine directx support to reactos
add wine dinput and dinput8 it have been modify to working in windows and reactos.
when reactos got hooks implant remove all #ifdef __REACTOS__  and code that belong it compelete, then
remove all #ifndef __REACTOS__  to geting in working in reactos and windows.
dxguid comes from mingw with some modify

todo
rewrite dection code of keyboard, mouse, joystick to using windows registers to get what type of hardware.

Limit
Only keyboard are working in reactos for moment.

svn path=/trunk/; revision=11864
2004-11-29 00:15:23 +00:00
Magnus Olsen
7fed5c71ae remove it for wine dinput
svn path=/trunk/; revision=11863
2004-11-29 00:13:08 +00:00
Gunnar Dalsnes
e108cd331f "import" profiles.c from wine. all Wine's profile reg. tests now pass
svn path=/trunk/; revision=11862
2004-11-29 00:08:59 +00:00
Gunnar Dalsnes
c084bd7f6f add missing glue
svn path=/trunk/; revision=11861
2004-11-29 00:06:22 +00:00
Gunnar Dalsnes
1b870b2636 RtlDetermineDosPathNameType_U: give meaningfull names to constands (from wine)
svn path=/trunk/; revision=11860
2004-11-29 00:05:31 +00:00
Gé van Geldorp
6e001376f9 Add hardware detection stub for Xbox
svn path=/trunk/; revision=11859
2004-11-28 22:42:40 +00:00
Gregor Anich
7123f1d088 Cleaned config.h a bit...
svn path=/trunk/; revision=11858
2004-11-28 22:07:19 +00:00
Gregor Anich
7be720f8ec Move some ntoskrnl compiletime configuration defines into ntoskrnl/include/config.h (new file)
svn path=/trunk/; revision=11857
2004-11-28 22:06:25 +00:00
Gé van Geldorp
90a424deea Adjust screen width if HDTV cable in use
svn path=/trunk/; revision=11856
2004-11-28 21:54:11 +00:00
Gregor Anich
bbc25623e4 Add Mesa3D, FreeBSD and adns to the list of acknowledged projects.
svn path=/trunk/; revision=11855
2004-11-28 21:52:08 +00:00
Art Yerkes
6a56469c5a Turned off debug output in CVS (we need a better way to do this).
svn path=/trunk/; revision=11854
2004-11-28 21:21:11 +00:00
Gunnar Dalsnes
baad262a94 deny usage of too long strings in add/find atom. makes wine reg. tests happy.
svn path=/trunk/; revision=11853
2004-11-28 21:16:15 +00:00
Gregor Anich
e0f64b28d5 There's no reason to set TS in cr0 when returning from a w32 callback - either the thread will have used the FPU, in this case we don't do anything, or it has not used the FPU and we copy it's saved FPU state (if any) into the original's stack FPU area (in this case TS in cr0 will already be set and we don't need to set it)
svn path=/trunk/; revision=11852
2004-11-28 18:14:02 +00:00
Gé van Geldorp
947403dfc8 Fix vertical position of text in single-line edit controls.
svn path=/trunk/; revision=11851
2004-11-28 16:51:18 +00:00
Eric Kohl
d899ea5ca7 Set system time and update boot time and relative timers.
svn path=/trunk/; revision=11850
2004-11-28 12:59:33 +00:00
Hartmut Birr
e8e894de92 - Dipped the code between HalInitializeProcessor and HalStartNextProcessor. Used the functions according its names.
- Changed the init sequence in KeInit1 and KePrepareForApplicationProcessorInit.
- Fixed the pae mode initialisation for application processors.

svn path=/trunk/; revision=11849
2004-11-28 01:31:08 +00:00
Hartmut Birr
e67ae130d4 - Improved smp functions.
- Fixed the enabling/disabling of the higher irqs in Enable8259AIrq/Disable8259AIrq.
- Moved the local apic functions into its own file.
- Implemented the IpiInterrupt.
- Changed the destination of the startup ipis.
- Enabled interrupts on calls to KiDispatchInterrupt and KiDeliverApc.
- Delivered dpcs always on HalEndSystemInterrupt.
- Set the logical apic id according to the processor number from ntoskrnl.
- Dipped the code between HalInitializeProcessor and HalStartNextProcessor.
  Used the functions according its names.

svn path=/trunk/; revision=11848
2004-11-28 01:30:02 +00:00
Hartmut Birr
4ed81178eb - Canceled my last changes.
svn path=/trunk/; revision=11847
2004-11-27 23:50:27 +00:00
Hartmut Birr
7eacfe074f - Used a fast mutex for the client id structure.
svn path=/trunk/; revision=11846
2004-11-27 19:41:55 +00:00
Hartmut Birr
ae233008f1 - Enabled interrupts on page faults also for V86 mode.
svn path=/trunk/; revision=11845
2004-11-27 19:32:57 +00:00
Hartmut Birr
63e5456684 - Fixed a debug message.
svn path=/trunk/; revision=11844
2004-11-27 19:29:22 +00:00
Hartmut Birr
f3a288609e - Fixed the processor number at the call to KiIpiSendRequest.
svn path=/trunk/; revision=11843
2004-11-27 19:27:31 +00:00
Hartmut Birr
728ecbbafb - Simplified the irq lock table.
- Enabled interrupts while calling KiDeliverApc.

svn path=/trunk/; revision=11842
2004-11-27 19:24:15 +00:00
Hartmut Birr
e0b921f698 - Removed the timer value lock, because this lock isn't necessary.
- Update the kernel and user time from the kpcr.

svn path=/trunk/; revision=11841
2004-11-27 16:57:03 +00:00
Hartmut Birr
e64b5d5945 - Acquire the dispatcher database lock in PsBlockThread if the caller didn't
acquire this lock. This prevents from dead locks on smp machines.

svn path=/trunk/; revision=11840
2004-11-27 16:52:35 +00:00
Hartmut Birr
6c0c99c180 - Prevent from terminate a thread for twice.
- Don't call KeCancelTimer for the thread timer if the thread lock is held.

svn path=/trunk/; revision=11839
2004-11-27 16:47:05 +00:00
Hartmut Birr
be30cb2cf0 - Update the page directories for the stack outside of the code where the dispatcher database lock is held.
svn path=/trunk/; revision=11838
2004-11-27 16:42:50 +00:00
Eric Kohl
0a7852d87c - F4 key flips the listbox in default (not extended UI) mode.
svn path=/trunk/; revision=11837
2004-11-27 16:38:28 +00:00
Hartmut Birr
2c9eb4b5f2 - Made a tlb entry invalid on all processors if the mapping is deleted or changed.
svn path=/trunk/; revision=11836
2004-11-27 16:37:52 +00:00
Eric Kohl
460b7f79ca - User ASSERT instead of assert.
svn path=/trunk/; revision=11835
2004-11-27 16:36:01 +00:00
Eric Kohl
79f4538d98 - User ROUND_UP macros to calculate the ACL size.
- Fix potential 64 bit issues.

svn path=/trunk/; revision=11834
2004-11-27 16:33:21 +00:00
Hartmut Birr
79a75d3246 - Implemented KiIpiSendRequest for simple requests.
- Removed KeIpiCallForBootProcessor.
- Used the KPCR of the processors for storing the ipi data.

svn path=/trunk/; revision=11833
2004-11-27 16:32:10 +00:00
Hartmut Birr
b51c0305db - Saved the fpu state before the actual thread switching occurs (only for smp machines).
svn path=/trunk/; revision=11832
2004-11-27 16:19:22 +00:00
Hartmut Birr
2b6de7c143 - Saved the state of the fpu at a win32 call and restored the state
after the call to the previous state.

svn path=/trunk/; revision=11831
2004-11-27 16:12:26 +00:00
Eric Kohl
73c4349b14 Enlarge the timezone combobox so that more timezones are displayed.
svn path=/trunk/; revision=11830
2004-11-27 13:33:40 +00:00
Filip Navara
0548bf639e - Fix calling convention of IoReadPartitionTable, IoSetPartitionInformation and IoWritePartitionTable.
svn path=/trunk/; revision=11829
2004-11-27 13:04:06 +00:00
Eric Kohl
aeda3e3f55 Remove the DPRINT containing SharedData->DosDeviceMap entirely because it doesn't exist any more.
svn path=/trunk/; revision=11828
2004-11-27 11:42:56 +00:00
Casper Hornstrup
dd3ebaf245 2004-11-27 WaxDragon <waxdragon@gmail.com>
* bootdata/packages/reactos.dff: Add dnsapi.dll, iphlpapi.dll,
	rpcrt4.dll, and ole32.dll.

svn path=/trunk/; revision=11827
2004-11-27 00:56:28 +00:00
Casper Hornstrup
2e0a20f0c4 2004-11-27 Casper S. Hornstrup <chorns@users.sourceforge.net>
* apps/utils/driver/load/.cvsignore: Use native line-endings.
	* apps/utils/driver/load/makefile: Ditto.
	* apps/utils/driver/unload/.cvsignore: Ditto.
	* apps/utils/driver/unload/makefile: Ditto.
	* apps/utils/infinst/.cvsignore: Ditto.
	* drivers/fs/ntfs/notes.txt: Ditto.
	* drivers/lib/csq/MAKEFILE: Ditto.
	* drivers/test/csqtest/Makefile: Ditto.
	* drivers/test/csqtest/SOURCES: Ditto.
	* drivers/video/displays/vga/main/enable.c: Ditto.
	* drivers/video/displays/vga/objects/copybits.c: Ditto.
	* include/tgetopt.h: Ditto.
	* include/ntos/kdbgsyms.h: Ditto.
	* lib/freetype/i386/setjmplongjmp.s: Ditto.
	* lib/icmp/icmp.dsp: Ditto.
	* lib/msvcrt/setjmp/i386/setjmp.s: Ditto.
	* lib/string/strncpy.c: Ditto.
	* tools/rgenstat/web/.cvsignore: Ditto.
	* tools/wmc/y_tab.c: Ditto.

svn path=/trunk/; revision=11826
2004-11-27 00:46:25 +00:00
Art Yerkes
e0e18ffc09 Correct silly bugcheck when a packet will not be routed. Not exposed before
because of false positives on loopback adapter.
We need to expect NCE to be NULL.

svn path=/trunk/; revision=11825
2004-11-26 21:17:22 +00:00
Art Yerkes
80178bd318 Removed RouteFriendlyAddRoute. Not needed.
Router now chooses a route correctly:
- Only choose a route if the prefix length is greater than or equal to the
  netmask. for the target route.  (We still choose the most specific route).
- Changed NBAddNeighbor to NBFindOrCreateNeighbor in
  RouteAddRouteToDestination because it triggers an ARP probe.  Setting the
  ARP cache state initially to PROBE skips the first ARP query and runs a
  bit afoul of the cache entry state machine.

svn path=/trunk/; revision=11824
2004-11-26 20:32:54 +00:00
Aleksey Bragin
ca85c39272 Removed DPRINT containing SharedData->DosDeviceMap, since there is no DosDeviceMap in this struct.
If someone thinks this is wrong, please correct me (I asked in channel, but no reaction at all)

svn path=/trunk/; revision=11823
2004-11-26 17:36:18 +00:00
Thomas Bluemel
2a76e70cbe fixed line endings
svn path=/trunk/; revision=11822
2004-11-26 12:53:51 +00:00
Art Yerkes
fe500719a5 Moved pseh.h away from precomp.h to avoid 'defined but not used' warning.
svn path=/trunk/; revision=11821
2004-11-26 08:26:24 +00:00
Art Yerkes
01e1531802 Converted eols.
svn path=/trunk/; revision=11820
2004-11-26 07:41:25 +00:00
Art Yerkes
e593105229 Fixed ws2_32 for __USE_W32API and dnsapi.
svn path=/trunk/; revision=11819
2004-11-26 07:24:17 +00:00
Art Yerkes
b3c9021b8f - Added add and delete route primitives in tcpip/ninfo.c
- Changed signature of RouterRemoveRoute to better match the information
  provided at the time when we delete a route.
- Changed signature of RouterCreateRoute for consistency.
- Cleaned up ninfo, get route info a bit.  Removed 'bad' case, not needed.
  Made magic 2 into TDI_ADDRESS_TYPE_IP, shortened code.
- Added AddrWidenAddress to generate a network address from a target and
  netmask.
- Changed the main mib to contain the number of fib entries, not the number
  of route cache entries.

svn path=/trunk/; revision=11818
2004-11-26 06:55:17 +00:00
Art Yerkes
9eef3a6021 Used IP_FORWARD_ADD and IP_FORWARD_DEL constants instead of numbers.
svn path=/trunk/; revision=11817
2004-11-26 06:52:59 +00:00
Art Yerkes
5f4756c3f5 Added simple route utility that uses iphlpapi to change the route table.
svn path=/trunk/; revision=11816
2004-11-26 06:51:47 +00:00
Art Yerkes
9ee12f6e6e Forwarder for __USE_W32API.
svn path=/trunk/; revision=11815
2004-11-26 06:21:45 +00:00
Art Yerkes
f968d716fa Converted registry functions to unicode.
HeapFree -> RtlFreeHeap and similar.
Populated resinfo_reactos.  We will now pull the nameservers from the
primary list in Services\Tcpip\Parameters, as well as from per-adapter
lists.

svn path=/trunk/; revision=11814
2004-11-26 00:32:59 +00:00
Art Yerkes
d06ac05a3c Fixed dnsapi for use with w32api headers by adjusting a few names (mostly
DNS_RECORDA,W -> DNS_RECORD)
Fixed bug in DnsQuery, we weren't checking NULL on result->rrs.addr.

svn path=/trunk/; revision=11813
2004-11-26 00:12:57 +00:00
Art Yerkes
bcfb287416 - Removed prefix.c and the prefix list. Adapter and route netmasks are now
checked directly.
- Removed ADE lists on adapters and associated functions.  Adapters now have
  a set of address fields with well-known meanings.
- Removed functions that allocate IP_ADDRESS.  No IP_ADDRESS is ever allocated
  alone any longer.  This saves management overhead and heap traffic.
- Removed NET_TABLE_ENTRY and NTE list and associated functions.  Lookups are
  now done against the original information sources, the adapter list, the
  neighbor cache and the route table.
- Propogated NTE removal throughout, changing NTE to IP_INTERFACE in every
  case.
- When we have alias support, we'll create multiple interfaces referencing
  the same adapter.  This is consistent with the way BSDs do it and I feel
  it provides sufficient abstraction.
- Allow a zero-length buffer request in info to return the number of bytes
  needed for the request to succeed.

svn path=/trunk/; revision=11812
2004-11-25 23:56:59 +00:00
Art Yerkes
fd54d2585c Added Exclusive flag in afd, which is used by WSAAsyncSelect. Previous
exclusive selects should be completed with STATUS_CANCELLED when a new
exclusive one is posted.
Minor hack for the locked handle set.  Not dangerous but should be made
better.

svn path=/trunk/; revision=11811
2004-11-25 23:36:36 +00:00
Art Yerkes
c350a8df8c Added WSPEnumNetworkEvents, some reformatting.
Will be modified by alex_ionescu shortly.

svn path=/trunk/; revision=11810
2004-11-25 23:35:06 +00:00
Art Yerkes
773d644b11 Added gethostbyname implementation written by Adam Kelly (insulanus).
- Mostly complete, does not support multiple returned a records or hosts file
  though
- Relies on dnsapi
- Stores hostent struct in teb->Hostent

svn path=/trunk/; revision=11809
2004-11-25 23:32:54 +00:00
Filip Navara
077765450f - Send the WM_ACTIVATE message with WA_INACTIVE when deactivating window to the window being deactivated (ie. revert last w3seek's change).
- Send the deactivation messages *before* setting the active window for message queue.

svn path=/trunk/; revision=11808
2004-11-25 22:18:59 +00:00
Alex Ionescu
1623a0079f Fix IO completion APIs/Structures.
Implement WSPASyncSelect and friends. Event re-enabling functionality missing and will be added tonight.

svn path=/trunk/; revision=11807
2004-11-25 22:18:17 +00:00
Eric Kohl
3379855217 - Replace WIN32 types by corresponding native types.
- Replace debug macros and fix potential 64bit issues (pointers casted to DWORDs).

svn path=/trunk/; revision=11804
2004-11-25 19:25:06 +00:00
KJK::Hyperion
3bd2eb22b1 blight's elf.h
svn path=/trunk/; revision=11803
2004-11-25 18:24:08 +00:00
Gregor Anich
0662980bf4 Multiprocessor support for FPU/SSE state saving.
svn path=/trunk/; revision=11802
2004-11-25 13:22:54 +00:00
Eric Kohl
0229e6cb3a Preselect the timezone based on the current user language.
svn path=/trunk/; revision=11801
2004-11-24 23:09:46 +00:00
Eric Kohl
c5881e6a93 Add acknowledgement page and license dialog and update title strings.
svn path=/trunk/; revision=11800
2004-11-24 21:28:14 +00:00
Gé van Geldorp
1f759dcf55 If stub name is of the form function@0, output as function@0@0 in the .def
file because the last @0 will be stripped later on

svn path=/trunk/; revision=11799
2004-11-24 20:11:52 +00:00
Filip Navara
6e2b742680 - Fix pointer arithmetic on FileName variable in NtCreateProcess (spotted by Arty).
svn path=/trunk/; revision=11798
2004-11-24 18:13:18 +00:00
Filip Navara
eee803acf7 - Add PCNET driver to the boot CD.
svn path=/trunk/; revision=11797
2004-11-24 17:57:14 +00:00
Filip Navara
5a384bebca - Fix call to RtlInitializeBitMap (spotted and debugged by Arty).
svn path=/trunk/; revision=11796
2004-11-24 17:54:38 +00:00
Eric Kohl
11bc9ef5f4 Replace assert_irql by ASSERT_IRQL.
svn path=/trunk/; revision=11795
2004-11-24 11:12:19 +00:00
Eric Kohl
4605029c67 Don't use a hardcoded sector size of 512 bytes.
svn path=/trunk/; revision=11794
2004-11-24 11:09:49 +00:00
Eric Kohl
0b6ffe64b0 Replace assert by ASSERT.
svn path=/trunk/; revision=11793
2004-11-24 11:02:15 +00:00
Art Yerkes
d1ad9c04ee simple gethostbyname test case
svn path=/trunk/; revision=11792
2004-11-24 04:08:44 +00:00
Thomas Bluemel
a0811f8010 don't send WM_ACTIVATE messages to the previous active window which caused the infinite loop in regedit
svn path=/trunk/; revision=11791
2004-11-24 00:11:06 +00:00
Filip Navara
842b2d68dc Merge:
MiniLocateAdapter never zeroed Adapter if the adapter didn't match,
  and never actually ever matched a name.  It always returned the
  last adapter in the list.

svn path=/trunk/; revision=11790
2004-11-23 23:51:01 +00:00
Filip Navara
f8246d2f62 Merge from ndis_wip_22102004 branch:
- Compile with W32API headers.
- Remove obsolate and no more exported functions (as of NDIS 5.1).
- Shrink the LOGICAL_ADAPTER structure a bit and use NDIS_MINIPORT_BLOCK fields instead.
- Make the WrapperConfigurationHandle an opaque structure instead of registry key handle.
- Use PnP DMA interface instead of the HAL one (TODO: Add reference counting).
- Move Ethernet filter routines from 40gone.c/miniport.c to separate file (efilter.c).
- Add PnP IRP handler and move device intitialization to IRP_MN_START_DEVICE handler.
- Implement device shutdown in IRP_MN_STOP_DEVICE.
- Minor fix for sending packets with deserialized miniports.
- Read bus type, bus number and slot number from registry if the PnP manager doesn't supply them.
- NdisMFreeMapRegisters shouldn't crash if no map registers were allocated.
- Implement NdisMQueryAdapterResources, NdisMGetDmaAlignment and NdisMReadDmaCounter.
- Implement NdisMPciAssignResources (Eric Kohl).
- Fix Ndis[Read/Write]PciSlotInformation to work for non-primary PCI buses (Eric Kohl).

svn path=/trunk/; revision=11789
2004-11-23 18:58:47 +00:00
Gé van Geldorp
0b66faaabd Make transfer of control to kernel work on Xbox
svn path=/trunk/; revision=11787
2004-11-23 11:28:02 +00:00
Magnus Olsen
6de4a5c738 remove -werror to get it compile agein
svn path=/trunk/; revision=11786
2004-11-23 11:14:41 +00:00
Gé van Geldorp
bb446ae87d Change dialog sizes to fit into 640x480
svn path=/trunk/; revision=11783
2004-11-22 20:35:56 +00:00
Art Yerkes
ce8fea9728 Changed Context to PC(NdisPacket)->Context in DLComplete call in
LoopTransmit.  We were passing the wrong context (our own) when we
should have passed the client's context.  Silly bug made possible
by use of void *.

svn path=/trunk/; revision=11782
2004-11-22 17:08:33 +00:00
Eric Kohl
e4b1bafb21 RegQueryValueExA: Free ValueName Unicode string when it is no loger in use.
svn path=/trunk/; revision=11781
2004-11-22 16:11:25 +00:00
Thomas Bluemel
adb7404b3d install msimg32.dll which is required by explorer
svn path=/trunk/; revision=11780
2004-11-22 12:45:23 +00:00
Gé van Geldorp
a652e3b1ee - Add automatic dependency tracking
- Add acknowledgements/license page

svn path=/trunk/; revision=11779
2004-11-22 11:01:45 +00:00
Gé van Geldorp
b87b03682a Zach Gorman <zach@archetypeauction.com>
The initial dialog focus should be established by the default handler
for SetFocus(), not in the dialog creation code.

svn path=/trunk/; revision=11778
2004-11-22 10:59:01 +00:00
Casper Hornstrup
7982beed9e 2004-11-21 Casper S. Hornstrup <chorns@users.sourceforge.net>
* apps/utils/Makefile (UTIL_APPS): Remove regsvr32.

svn path=/trunk/; revision=11777
2004-11-21 23:00:18 +00:00
Casper Hornstrup
2f2747b9dd 2004-11-21 Casper S. Hornstrup <chorns@users.sourceforge.net>
* apps/utils/regsvr32: Move to subsys/system/regsvr32.

svn path=/trunk/; revision=11776
2004-11-21 22:45:51 +00:00
Martin Fuchs
178f3ae085 fix UTF8 conversion for the bookmarks list
svn path=/trunk/; revision=11775
2004-11-21 22:42:51 +00:00
Casper Hornstrup
dd1feec678 * Remove arp, finger, ipconfig, netstat, ping, telnet, and whois; Moved to reactos.
svn path=/trunk/; revision=11774
2004-11-21 22:33:50 +00:00
Casper Hornstrup
4a35f24013 2004-11-21 Casper S. Hornstrup <chorns@users.sourceforge.net>
* apps/utils/Makefile (UTIL_NET_APPS): Add arp, finger, ipconfig,
	netstat, ping, telnet, and whois.
	* bootdata/packages/reactos.dff: Add arp.exe, finger.exe, ipconfig.exe,
	netstat.exe, ping.exe, telnet.exe, and whois.exe.
	* apps\utils\net\arp: New directory; Move from rosapps.
	* apps\utils\net\finger: Ditto.
	* apps\utils\net\ipconfig: Ditto.
	* apps\utils\net\netstat: Ditto.
	* apps\utils\net\ping: Ditto.
	* apps\utils\net\telnet: Ditto.
	* apps\utils\net\whois: Ditto.

svn path=/trunk/; revision=11773
2004-11-21 22:27:01 +00:00
Alex Ionescu
58eb955e58 Put back 1.5 Revision. CVS messed up the update and kept the old mps.h when I comitted.
svn path=/trunk/; revision=11772
2004-11-21 22:01:11 +00:00
Alex Ionescu
1fe3441f75 Hal DMA Patch: Implemented correct AdapterObject, updated some AdapterFunctions, which are much more complete and correct now. Implemented EISA structure for port access instead of hard-coded offsets.
svn path=/trunk/; revision=11771
2004-11-21 21:53:07 +00:00
Gé van Geldorp
ac33643ce2 After creating the nice error message, actually pass it on to the error
reporting routine. Thanks Casper.

svn path=/trunk/; revision=11770
2004-11-21 21:33:04 +00:00
Thomas Bluemel
587b831bb2 don't use uninitialized variable
svn path=/trunk/; revision=11769
2004-11-21 21:23:24 +00:00
Thomas Bluemel
ad45691d40 1. don't allow the ProcessImageFileName information class for NtSetInformationProcess() anymore
2. implemented the ProcessImageFileName class for NtQueryInformationProcess
3. changed NtCreateProcess to obtain the file name of the loaded image

svn path=/trunk/; revision=11768
2004-11-21 21:09:43 +00:00
Casper Hornstrup
19f47c9b4f * Remove calc, regedt32, and regsvr32; Moved to reactos.
svn path=/trunk/; revision=11767
2004-11-21 21:07:33 +00:00
Casper Hornstrup
fd70584747 2004-11-21 Casper S. Hornstrup <chorns@users.sourceforge.net>
* Makefile (SYS_APPS): Add calc, regedt32, and regsvr32.
	* bootdata/packages/reactos.dff: Add calc.exe, regedt32.exe, and
	regsvr32.exe.
	* subsys/system/calc: New directory; Move here from rosapps.
	* subsys/system/regedt32: Ditto.
	* subsys/system/regsvr32: Ditto.

svn path=/trunk/; revision=11766
2004-11-21 21:02:04 +00:00
Art Yerkes
23398b098d - Improvements for select/implementation of event select.
- Added EventSelect PKEVENT, and other bits needed in AFD_FCB to implement
  event select.
- Select and event select are now properly notified on socket hangup.
- Added more places where state changes are needed.
- PollReeval now has the alternate goal of firing the event select event.
- Fixed crash with unsupported protocols, re: null device
- Set AFD_EVENT_SEND and AFD_EVENT_RECEIVE appropriately on connect complete.
- Fixed sending FIN from a dying socket and receiving SEL_FIN on one in tcpip,
  by adding an additional way to lookup sockets.
- Removed even more spew.
- Small speedup: don't need to redo checksum in tcp_input.  It's already done
  in our ip defrag code.

svn path=/trunk/; revision=11765
2004-11-21 20:54:52 +00:00
Gunnar Dalsnes
55ff4ad170 add stubs GetSecurityInfoExA/W
svn path=/trunk/; revision=11764
2004-11-21 20:14:36 +00:00
Casper Hornstrup
98e47a5b69 * Replace bzero with memset and bcopy with memcpy
svn path=/trunk/; revision=11763
2004-11-21 20:10:22 +00:00
Art Yerkes
3adacc20ec Correct uninitialized warnings for Status in two places.
svn path=/trunk/; revision=11762
2004-11-21 19:51:37 +00:00
Steven Edwards
27e4ae606f Most of what is needed is already in w32api/include.
svn path=/trunk/; revision=11761
2004-11-21 19:18:01 +00:00
Casper Hornstrup
9cfd7436ac 2004-11-21 Casper S. Hornstrup <chorns@users.sourceforge.net>
* bootdata/hivesys.inf: Remove kmregtests.

svn path=/trunk/; revision=11760
2004-11-21 19:11:31 +00:00
Gunnar Dalsnes
b424efdf6b kill.c: remove useless call to KeRemoveAllWaitsThread + misc
usecall.c: fix apc delivery
debug.c: add irql asserts

svn path=/trunk/; revision=11759
2004-11-21 18:42:58 +00:00
Casper Hornstrup
e4a0875a54 2004-11-21 Casper S. Hornstrup <chorns@users.sourceforge.net>
* Makefile (DLLS_KBD): Add kbdda.
	* bootdata/txtsetup.sif: Add Danish language 406.
	* bootdata/hivesys.inf: Add kbdda.dll for Danish language 406.
	* bootdata/packages/reactos.dff: Ditto.
	* lib/kbdda: New directory.
	* lib/kbdda/.cvsignore: New file.
	* lib/kbdda/kbdda.c: Ditto.
	* lib/kbdda/kbdda.def: Ditto.
	* lib/kbdda/kbdda.rc: Ditto.
	* lib/kbdda/makefile: Ditto.

svn path=/trunk/; revision=11758
2004-11-21 18:40:38 +00:00
Gunnar Dalsnes
eedd0d823f work.c: reimpl. using kernel queues
resource.c: add asserts

svn path=/trunk/; revision=11757
2004-11-21 18:38:51 +00:00
Gunnar Dalsnes
4635919140 call KiDeliverAPc at correct irql
svn path=/trunk/; revision=11756
2004-11-21 18:37:56 +00:00
Gunnar Dalsnes
24dc4f3595 add missing KeEnter/LeaveCriticalRegion before/after aquireing/releasing resource lock
svn path=/trunk/; revision=11755
2004-11-21 18:35:05 +00:00
Gunnar Dalsnes
0c5a9ba4f5 fix kernel queues + misc fixes/cleanups
svn path=/trunk/; revision=11754
2004-11-21 18:33:54 +00:00
Hartmut Birr
0f6f4de9e1 - Acquire always the dpc lock on smp systems.
- Set/reset DpcRoutineActive at HIGH_LEVEL (or if the dpc queue is locked).

svn path=/trunk/; revision=11753
2004-11-21 18:13:47 +00:00
Filip Navara
7af1a71e33 Revert:
- Fix prototype of FsRtlInitializeLargeMcb and FsRtlInitializeMcb.

svn path=/trunk/; revision=11752
2004-11-21 17:47:22 +00:00
Filip Navara
f2b2fe0a5d - Fix prototype of FsRtlInitializeLargeMcb and FsRtlInitializeMcb.
- Fix some FsRtl* exports.

svn path=/trunk/; revision=11751
2004-11-21 16:34:57 +00:00
Martin Fuchs
af60a0a9e2 cleanup resource script
svn path=/trunk/; revision=11750
2004-11-21 15:46:16 +00:00
Martin Fuchs
7ce0322c85 decode HTML-encoded bookmark names
svn path=/trunk/; revision=11749
2004-11-21 15:35:15 +00:00
Martin Fuchs
4e66d23d42 work around GCC's wide string constant bug when compiling inline functions
svn path=/trunk/; revision=11748
2004-11-21 14:26:14 +00:00
Gregor Anich
e1e1824939 Properly fix "Unused variable" warning.
svn path=/trunk/; revision=11747
2004-11-21 13:33:34 +00:00
Gé van Geldorp
ea32cbced0 Don't print "sector size" message, it is causing confusion
svn path=/trunk/; revision=11746
2004-11-21 13:30:44 +00:00
Thomas Bluemel
7f363e4ceb use ASSERT instead of assert
svn path=/trunk/; revision=11745
2004-11-21 13:18:19 +00:00
Thomas Bluemel
c116c5fefe fixed crash on shutdown
svn path=/trunk/; revision=11744
2004-11-21 13:02:02 +00:00
Thomas Bluemel
d23655f8c4 export AlphaBlend(), GradientFill() and TransparentBlt() as STDCALL
svn path=/trunk/; revision=11743
2004-11-21 12:55:05 +00:00
Gé van Geldorp
ad4cf3bf0b Report on which drive we couldn't find a partition table
svn path=/trunk/; revision=11742
2004-11-21 12:28:12 +00:00
Gé van Geldorp
4d111bdd6c Work around broken BIOSes which report random API subset support bitmaps
when checking for extended INT13 availability for CDROMs

svn path=/trunk/; revision=11741
2004-11-21 12:27:01 +00:00
Filip Navara
df6bd1fced - Use IntGdiSetRect instead of NtGdiSetRect.
svn path=/trunk/; revision=11740
2004-11-21 12:14:34 +00:00
Martin Fuchs
425c131de1 avoid "unused variable" warning
svn path=/trunk/; revision=11739
2004-11-21 11:58:55 +00:00
Hartmut Birr
5eb96dfc97 - Set also FS and GS on a debug service call.
svn path=/trunk/; revision=11738
2004-11-21 11:37:22 +00:00
Thomas Bluemel
afc7938b56 check the status code NtQueryInformationProcess returned
svn path=/trunk/; revision=11737
2004-11-21 11:03:17 +00:00
Thomas Bluemel
f290137ce4 properly copy the device map - it's still not initialized properly
svn path=/trunk/; revision=11736
2004-11-21 10:59:11 +00:00
Filip Navara
dcdb5fefb0 - Use absolute value of width in NtGdiCreateBitmap.
svn path=/trunk/; revision=11735
2004-11-21 10:55:29 +00:00
Martin Fuchs
375d7004a4 alpha-blend hidden notification icons
svn path=/trunk/; revision=11734
2004-11-21 10:53:55 +00:00
Hartmut Birr
d69a931982 - Fixed the check for the empty (or not empty) dpc queue in KeInsertQueueDpc.
svn path=/trunk/; revision=11733
2004-11-21 10:48:33 +00:00
Thomas Bluemel
dc61134cf1 fixed building problems
svn path=/trunk/; revision=11732
2004-11-21 10:39:12 +00:00
Alex Ionescu
2a42da87f2 1) Updated KUSER_SHARED_DATA to NT5+ exported documented defintiion, which meant the removal of DosDevices. Used proper NT _DEVICE_MAP Structure for this, but did it in a "hack" way, ie, not a fully implementation, but enough to keep the basic old functionality as before. This will need an review once the Ob Manager is overhaulted. Modified kernel32 to request the _DEVICE_MAP for the current process, implemented the query routine (but made it return the default systme device map intead of per process) and changed the kernel code to use the default device map instead.
2) Updated the HalDispatchTable to Version 3.0. Not a huge change, just added/updated some functions.
3) Rewrote most of the DPC Code to take advantage of the CPU/Importance "laws". Stress testing on my machine revealed no issues on CVS HEAD. Still needs some review to make it so that idle threads can call dpcs (so that low importance dpcs will be dispatched by the idle thread). I will modify this later.

svn path=/trunk/; revision=11731
2004-11-21 06:51:18 +00:00
Art Yerkes
5fea7dac8b Patch to correct multiple adapter bind from protocols. There were two
bugs here:
1) The loop in protocol.c was wrong and was rewritten by Andrew Munger
   with help from Thomas Weidenmueller
2) MiniLocateAdapter never zeroed Adapter if the adapter didn't match,
   and never actually ever matched a name.  It always returned the
   last adapter in the list (spotted and fixed after the above fixes).

svn path=/trunk/; revision=11730
2004-11-21 04:20:38 +00:00
Art Yerkes
30be599db3 Add a null check to prevent crashes during the vulnerable time when Filter
is not set.

svn path=/trunk/; revision=11729
2004-11-21 03:02:57 +00:00
Gregor Anich
8119f6f384 FPU/SSE state saving on taskswitching, FPU and SSE exception support.
svn path=/trunk/; revision=11728
2004-11-20 23:46:37 +00:00
Martin Fuchs
ede5e4a1f9 update doxygen script
svn path=/trunk/; revision=11727
2004-11-20 23:06:52 +00:00
Martin Fuchs
716bc3dbb3 notification area button to toggle hidden icons
svn path=/trunk/; revision=11726
2004-11-20 22:35:06 +00:00
Art Yerkes
110f1eeb5e Forgot to update a prototype in here. Also, a while ago, I stopped getting
the LDR_MODULE definition, so I fixed that.

svn path=/trunk/; revision=11725
2004-11-20 22:21:35 +00:00
Gé van Geldorp
25dc91ca69 Make it compile
svn path=/trunk/; revision=11724
2004-11-20 22:20:12 +00:00
Filip Navara
f5c76d2826 - Add IRQL assert to ExFreePagedPool.
svn path=/trunk/; revision=11723
2004-11-20 21:16:38 +00:00
Filip Navara
c7802eb216 - Allocate buffer for sub keys from NonPagedPool in order to prevent crashes in CmiAddKeyToList where the buffer is accessed at DISPATCH_LEVEL.
svn path=/trunk/; revision=11722
2004-11-20 21:14:16 +00:00
Martin Fuchs
a4efd45e84 display notification icon change times
svn path=/trunk/; revision=11721
2004-11-20 19:30:41 +00:00
Thomas Bluemel
ba5522cda3 silence debug message
svn path=/trunk/; revision=11720
2004-11-20 19:08:37 +00:00
Steven Edwards
9a2f072607 added riched20 to the build
svn path=/trunk/; revision=11719
2004-11-20 18:30:52 +00:00
Steven Edwards
984b8c4f6a Added dummy riched20.dll by Aric Stewart from CrossOver.
This is not a correct implementation, it is just enough to get some applications
to work. A fully working riched20 will be developed in winehq.

svn path=/trunk/; revision=11718
2004-11-20 18:26:16 +00:00
Casper Hornstrup
0315098375 2004-11-20 Casper S. Hornstrup <chorns@users.sourceforge.net>
* drivers/net/tcpip/tests/tests/ipreceive.c (RunTest): Switch parameters
	to _AssertEqualValue.
	* drivers/net/tcpip/tests/stubs.tst: Add missing stubs.
	* lib/ws2_32/tests/stubs.tst: Ditto.
	* ntoskrnl/tests/stubs.tst: Ditto.
	* regtests/shared/regtests.h: Use unsigned format specifiers.

svn path=/trunk/; revision=11717
2004-11-20 17:56:23 +00:00
Thomas Bluemel
74ce6443c2 added missing definitions
svn path=/trunk/; revision=11715
2004-11-20 17:55:41 +00:00
Casper Hornstrup
68e9370d78 2004-11-20 Casper S. Hornstrup <chorns@users.sourceforge.net>
* config (SEH): Remove.
	* regtests/shared/regtests.c (_alloca): Remove; Use from malloca.h
	instead.
	(PerformTest): Use PSEH to catch exceptions while running tests.
	* tools/config.mk (CONFIG): Don't add SEH.
	* tools/helper.mk: Link tests with pseh.a.

svn path=/trunk/; revision=11714
2004-11-20 17:48:38 +00:00
Art Yerkes
e2632afc71 Fixed continue in the GDB stub. Sorry for breaking it.
svn path=/trunk/; revision=11713
2004-11-20 17:45:15 +00:00
Thomas Bluemel
b7100ed2fc 1. removed window station/desktop hacks from ntoskrnl
2. implemented window station/desktop inheritance on thread/process startup
3. implemented process locking
4. fixed some fields in the EPROCESS structure

svn path=/trunk/; revision=11712
2004-11-20 16:46:06 +00:00
Martin Fuchs
76bd18b75f update change list
svn path=/trunk/; revision=11710
2004-11-20 16:23:35 +00:00
Eric Kohl
75d4557d4c Add UpdatePerUserSystemParameters stub and call it from winlogon.
svn path=/trunk/; revision=11709
2004-11-20 15:55:45 +00:00
Gé van Geldorp
65708377d8 Implement NtUserGetClipboardOwner
svn path=/trunk/; revision=11707
2004-11-20 09:34:43 +00:00
KJK::Hyperion
34149e19fc Use _alloca instead of stack variables, because the compiler feels too damn smart
svn path=/trunk/; revision=11706
2004-11-19 23:58:33 +00:00
Gé van Geldorp
c99ffa31ca At least show the window when wParam is TRUE and the window is currently
invisible

svn path=/trunk/; revision=11705
2004-11-19 23:07:09 +00:00
Gunnar Dalsnes
90125b20eb return correct ExitCode for non-terminated threads
svn path=/trunk/; revision=11704
2004-11-19 22:19:33 +00:00
Filip Navara
6699c721fc - Correctly calculate size of the CM_RESOURCE_LIST structure.
svn path=/trunk/; revision=11703
2004-11-19 21:31:02 +00:00
Thomas Bluemel
7857b6c7e9 report proper buffer sizes as documented
svn path=/trunk/; revision=11701
2004-11-19 20:02:47 +00:00
Thomas Bluemel
b260dfd4b0 buffers are calculated properly, no need to allocate more memory for safety anymore
svn path=/trunk/; revision=11700
2004-11-19 19:34:11 +00:00
Steven Edwards
35ab538802 Add more non-standard LANG_* ids.
svn path=/trunk/; revision=11699
2004-11-19 13:00:12 +00:00
Thomas Bluemel
cd57e3d41d 1. fixed definition of the DEBUG_MODULE_INFORMATION structure
2. implemented module and heap list enumeration for toolhelp

svn path=/trunk/; revision=11698
2004-11-19 01:30:35 +00:00
Filip Navara
c145b0b293 - Allocate the memory from paged pool instead of non-paged pool as almost all code (and none of the font code) in Win32k runs at IRQL < DISPATCH_LEVEL.
svn path=/trunk/; revision=11697
2004-11-18 22:22:46 +00:00
Eric Kohl
f5912089d2 Pass a fake translated resource list to a driver when a device is started.
svn path=/trunk/; revision=11695
2004-11-18 11:46:07 +00:00
Gé van Geldorp
583f2092ad Rollback identify code (Filip reluctantly agrees)
svn path=/trunk/; revision=11694
2004-11-18 08:32:32 +00:00
Art Yerkes
f404e670d5 Removed bad assertion. It's ok for TCPSendData to return immediately if the
data has been copied into the tcp buffer.  Requiring STATUS_PENDING here is
definately an error.

svn path=/trunk/; revision=11693
2004-11-18 05:02:10 +00:00
Art Yerkes
a2f6011b3d Changed kdbg a bit by adding some new flags (and a new command):
condition [all|umode|kmode]

condition all -> Handle all exceptions.  This is like the current kdbg
condition umode -> Handle unhandled usermode exceptions and all kmode
	exceptions.
condition kmode -> Handle only unhandled kernelmode exceptions (default)

svn path=/trunk/; revision=11692
2004-11-18 02:10:28 +00:00
Gunnar Dalsnes
4af944d53d revert incorrect fix
svn path=/trunk/; revision=11691
2004-11-17 23:55:36 +00:00
Gé van Geldorp
c9e0a17bab Get rid of global volume boot sector and store required info in separate
variables

svn path=/trunk/; revision=11690
2004-11-17 22:07:45 +00:00
Filip Navara
4d21897222 - Don't report CmResourceTypeNull resources for unused PCI descriptor resource entries.
svn path=/trunk/; revision=11688
2004-11-17 20:39:27 +00:00
Eric Kohl
9a7c335263 Implement NdisOverrideBusNumber.
svn path=/trunk/; revision=11686
2004-11-17 13:10:01 +00:00
Art Yerkes
ce37c3ed04 Member unknown renamed internaluse.
svn path=/trunk/; revision=11685
2004-11-17 07:12:27 +00:00
Art Yerkes
2c9bba03b5 tcpip: fix for udp socket close.
ws2_32: unstub WSAFDIsSet, small amount of work on select
msafd: select fixes
afd: major select overhaul
- 1 exit point for poll objects from the deviceext
- make sure to cancel the timer
- UpdatePollWithFCB now runs at DISPATCH_LEVEL in every case
- Added handle locks so we can signal and check handles properly

svn path=/trunk/; revision=11684
2004-11-17 05:17:22 +00:00
Martin Fuchs
4a7d199e30 make read_directory_unix() static
svn path=/trunk/; revision=11682
2004-11-16 19:42:08 +00:00
Martin Fuchs
36c518427e fix german menu text
svn path=/trunk/; revision=11681
2004-11-16 19:41:54 +00:00
Casper Hornstrup
59f81f9539 2004-11-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* drivers/lib/ip/network/arp.c: Assert certain conditions.
	* drivers/lib/ip/network/loopback.c: Ditto.
	* drivers/lib/ip/network/neighbor.c: Ditto.
	* drivers/lib/ip/transport/tcp/tcp.c: Ditto.
	* drivers/net/tcpip/datalink/lan.c: Ditto.
	* drivers/net/tcpip/datalink/loopback.c: Ditto.
	* drivers/net/tcpip/include/debug.h (ASSERT_KM_POINTER): Define.
	* drivers/lib/ip/transport/tcp/if.c: Remove disabled code.
	* drivers/net/afd/afd/main.c (AfdDispatch): Print known unimplemented
	IOCTLs.
	* drivers/net/tcpip/include/precomp.h: Include roscfg.h.
	* drivers/net/tcpip/tcpip/dispatch.c (DispTdiListen): Pass the right
	connection object to TCPListen.
	* drivers/net/tcpip/tcpip/mocklock.c: Fix some assertions.

svn path=/trunk/; revision=11680
2004-11-16 18:07:58 +00:00
Gregor Anich
845737a0c6 Simple implementation of some multi-monitor APIs (I hope this was the last one)
svn path=/trunk/; revision=11679
2004-11-16 17:36:37 +00:00
Gregor Anich
ad2c067338 Simple implementation of some multi-monitor APIs.
svn path=/trunk/; revision=11678
2004-11-16 17:25:47 +00:00
Gregor Anich
3de1bbc635 Simple implementation of some multi-monitor APIs.
svn path=/trunk/; revision=11677
2004-11-16 16:29:21 +00:00
Eric Kohl
43d65f019d - Make WrapperConfigurationContext a pointer to a WRAPPER_CONTEXT structure.
- Use correct bus number in NtImmediateReadPciSlotInformation, NdisImmediateWritePciSlotInformation, NdisReadPciSlotInformation and NdisWritePciSlotInformation.

svn path=/trunk/; revision=11676
2004-11-16 16:21:09 +00:00
Gunnar Dalsnes
1d44f8fade fix broken work item impl.
svn path=/trunk/; revision=11675
2004-11-15 23:14:36 +00:00
Gé van Geldorp
22e0d4d8eb Create Int versions of Rect functions
svn path=/trunk/; revision=11674
2004-11-15 23:10:42 +00:00
Art Yerkes
ccc0695954 Need AFD_IMMEDIATE.
svn path=/trunk/; revision=11673
2004-11-15 20:17:48 +00:00
Gunnar Dalsnes
d06c68bb99 add some error checking
svn path=/trunk/; revision=11672
2004-11-15 19:20:23 +00:00
Art Yerkes
28bfa5fcdd Implemented non-blocking recv and recvfrom.
Fixed address pass-through in afd.
Fixed some address cruft in udp and datagram regarding incoming
datagrams.

svn path=/trunk/; revision=11671
2004-11-15 18:24:57 +00:00
Eric Kohl
f44ad86cf8 Silence debug messages.
svn path=/trunk/; revision=11670
2004-11-15 16:36:28 +00:00
Eric Kohl
514e74cba8 Remove the default locale id.
svn path=/trunk/; revision=11669
2004-11-15 14:43:55 +00:00
Eric Kohl
42991379db Don't set the default locale id.
svn path=/trunk/; revision=11668
2004-11-15 14:41:25 +00:00
Eric Kohl
4d1046ee76 Don't retrieve the system locale id from the registry, use ZwQueryDefaultLocale instead.
svn path=/trunk/; revision=11667
2004-11-15 14:40:14 +00:00
Eric Kohl
f838190b50 NtSetDefaultLocale must only store the lanuage id (lower half) of the given system locale id.
svn path=/trunk/; revision=11666
2004-11-15 14:38:37 +00:00
Eric Kohl
0fafbcbcf4 Use autogenerated device names for PDOs on PCI buses.
svn path=/trunk/; revision=11665
2004-11-15 11:49:37 +00:00
Eric Kohl
d0da55a427 Add support for FILE_AUTOGENERATED_DEVICE_NAME to IoCreateDevice.
svn path=/trunk/; revision=11664
2004-11-15 11:41:33 +00:00
Eric Kohl
3b5c8f81f3 Register handler for PCI bus 2.
svn path=/trunk/; revision=11663
2004-11-15 09:18:19 +00:00
Gé van Geldorp
be441ae62f Don't need flashleds
svn path=/trunk/; revision=11662
2004-11-14 22:07:53 +00:00
Gé van Geldorp
4e5131fd86 Add UI support on the Xbox
svn path=/trunk/; revision=11661
2004-11-14 22:04:39 +00:00
Art Yerkes
b055a01bc8 Added port allocation.
Datagram: only match a sender if a sender match was specified.

svn path=/trunk/; revision=11660
2004-11-14 21:28:21 +00:00
Art Yerkes
e280e1272c Fixed UDP.
- Header size adjustments corrected.
- Added callback specified by caller.
- Port allocation added.

svn path=/trunk/; revision=11659
2004-11-14 21:27:15 +00:00
Hartmut Birr
9c5da940f0 - Started the implementation of the ipi calls.
svn path=/trunk/; revision=11658
2004-11-14 20:00:06 +00:00
Art Yerkes
323b7c4460 UDP working.
svn path=/trunk/; revision=11657
2004-11-14 19:45:16 +00:00
Hartmut Birr
1dcd7629c6 - Stored the apc/dpc requests in the KPCR.
svn path=/trunk/; revision=11656
2004-11-14 19:04:42 +00:00
Hartmut Birr
35636e998d - Used the time stamp counter from a pentium if it is available
(in KeStallExecutionProcessor/KeQueryPerformanceCounter).

svn path=/trunk/; revision=11655
2004-11-14 19:01:31 +00:00
Hartmut Birr
b39c7349f9 - Used the shared user data page instead of NtQuerySystemTime to get the time.
svn path=/trunk/; revision=11654
2004-11-14 18:53:11 +00:00
Hartmut Birr
349e167cae - Implemented waitable console handles.
- Removed a fake event after a input event to empty the queue in CsrReadInputEvent.

svn path=/trunk/; revision=11653
2004-11-14 18:47:10 +00:00
Gregor Anich
26b8d50a75 Fix handling of debug traps in GDB stub/KiDispatchException (This time for real I hope, sorry for the breakage)
svn path=/trunk/; revision=11652
2004-11-14 16:00:02 +00:00
Eric Kohl
e9d3254541 Set the current date/time and update the current time zone name on the date/time page.
svn path=/trunk/; revision=11651
2004-11-14 12:28:21 +00:00
Art Yerkes
11070b8093 Fixed bug in ne2000 driver, re: copying ethernet frame header when only
payload should be copied in MiniportTransferData.

Changed tcpip to not consider the ethernet header anywhere above
ProtocolReceive.

svn path=/trunk/; revision=11650
2004-11-14 10:13:17 +00:00
Steven Edwards
62e00f3e2f Enabled the ReactOS pcnet driver by default.
Added 1 line note about how to use the vendor driver rather than ours.

svn path=/trunk/; revision=11649
2004-11-14 03:51:26 +00:00
Hartmut Birr
ea6e7df66a - Stored the informations from the cpuid instruction within the KPCR of each processor.
svn path=/trunk/; revision=11648
2004-11-13 23:08:35 +00:00
Gregor Anich
59881376cd Fix handling of debug traps in GDB stub/KiDispatchException.
svn path=/trunk/; revision=11647
2004-11-13 23:00:15 +00:00
Hartmut Birr
60c952c6ce - Fixed the scanning for boot options.
svn path=/trunk/; revision=11646
2004-11-13 22:30:18 +00:00
Hartmut Birr
5260bf08c8 - Removed some unnecessary type casts.
svn path=/trunk/; revision=11645
2004-11-13 22:27:16 +00:00
Casper Hornstrup
9f05cd01e3 2004-11-13 Casper S. Hornstrup <chorns@users.sourceforge.net>
* apps/utils/net/roshttpd/include/list.h (CList<Item>::Get): Declare i
	before use.

svn path=/trunk/; revision=11644
2004-11-13 17:20:30 +00:00
Thomas Bluemel
3e0c6c7994 implemented MmGetSystemRoutineAddress()
svn path=/trunk/; revision=11643
2004-11-13 13:09:07 +00:00
Filip Navara
d0917c6faf - Add NdisCopyLookaheadData macro.
svn path=/trunk/; revision=11642
2004-11-13 12:28:08 +00:00
Richard Campbell
0c3b663f9c - removed a few more DPRINTs that make no sense.
svn path=/trunk/; revision=11641
2004-11-13 02:02:07 +00:00
Richard Campbell
7b3d7ecb51 - Removed more nonsense debug prints.
- btw these changes are based on behavior discovered, on Windows XP SP2.  Your mileage may vary.

svn path=/trunk/; revision=11640
2004-11-13 01:57:45 +00:00
Richard Campbell
ad0e8d471b - Check for a valid hwnd.
- passing Key Up messages  as a parameter always returns 0;
- WM_SYSCHAR IS used however.
- Get rid of an odd debug print message.
- Changed the Window parameter name to hWnd.

svn path=/trunk/; revision=11639
2004-11-13 01:52:56 +00:00
Richard Campbell
c29ce9bc5b - Fixed a typo
svn path=/trunk/; revision=11638
2004-11-13 01:14:42 +00:00
Eric Kohl
6c7ede35c0 Add remaining time zones.
svn path=/trunk/; revision=11637
2004-11-13 00:16:32 +00:00
Art Yerkes
9a7c38e472 lib/ip:
transport/tcp/* remove some spew, eliminate deadlock condition (calling afd
  with socket locked).
 network/router.c -- GvG noticed a wrong condition at line 153:
  This code used to stop when finding a matching bit, not a non-matching one.
net/tcpip:
 makefile: change order of .a files.  Could break compilation before under
  the right circumstances.
 turn off some spew
 datalink/lan.c:
  NdisTransferData does not count header size when figuring out how many bytes
  to copy.  Most of the tcpip code does, so we do something wierd here.  We
  must fix this later in a better way.

svn path=/trunk/; revision=11636
2004-11-13 00:06:33 +00:00
Steven Edwards
2b84842184 Added .cvsignore file.
svn path=/trunk/; revision=11635
2004-11-12 21:30:13 +00:00
Aleksey Bragin
32333d3280 Removed PriorityBoost from DPRINT at IoSecondStageCompletion, since there is no priority boost in this func
svn path=/trunk/; revision=11634
2004-11-12 18:50:53 +00:00
Aleksey Bragin
0745f5a9ae Remove a warning about incorrect types, after discussion in channel it was decided to do it as &Process->Pcb instead of (PKPROCESS)Process.
svn path=/trunk/; revision=11633
2004-11-12 18:42:25 +00:00
Gé van Geldorp
2e3419423b Since CreateProcessA() is called, also use the Ansi version of STARTUPINFO
svn path=/trunk/; revision=11632
2004-11-12 18:23:31 +00:00
Gé van Geldorp
b4ef4b5e8f Add FATX support
svn path=/trunk/; revision=11631
2004-11-12 17:17:08 +00:00
Eric Kohl
69b5fdb8f1 - Build UNICODE dll.
- Fix the crash when the customize input locale button is pressed.

svn path=/trunk/; revision=11630
2004-11-12 15:42:36 +00:00
Eric Kohl
83541672c0 Defedf is not needed any longer.
svn path=/trunk/; revision=11629
2004-11-12 12:07:51 +00:00
Eric Kohl
7cd6c44a8a - Move NtAllocateUuids from the Security Reference Monitor to the Executive.
- Update NtAllocateUuids to W2K signature.
- Add NtSetUuidSeed.

svn path=/trunk/; revision=11628
2004-11-12 12:06:54 +00:00
Eric Kohl
55b37c64ca - Move NtAllocateUuids from the Security Reference Monitor to the Executeive.
- Update NtAllocateUuids to W2K signature.
- Add NtSetUuidSeed.

svn path=/trunk/; revision=11627
2004-11-12 12:04:32 +00:00
Art Yerkes
1eb22067d1 Small DBG related patches.
svn path=/trunk/; revision=11626
2004-11-12 09:27:02 +00:00
Art Yerkes
dea7f87980 Prevent some deadlock scenarios by unlocking the FCB while calling into
tcpip.sys.

svn path=/trunk/; revision=11625
2004-11-12 07:34:56 +00:00
Steven Edwards
0af675ba07 Added new patch for Alex's BindImage, Map and Load and
friends to CVS for next merge. This patch applies clean to
Winehq tip.

svn path=/trunk/; revision=11624
2004-11-12 03:55:15 +00:00
Alex Ionescu
126f95c1ea Fix calls to KeAttachProcess
svn path=/trunk/; revision=11623
2004-11-11 22:40:30 +00:00
Alex Ionescu
a9c33470e5 Kernel:
- apc.c: Fixed some bugs and used Dispatcher Lock. Simplified some functions and renamed/inlined others.
- wait.c: Fixed some assumptions about Dispatcher Lock and Waiting/Alertability
- process.c: Fully implemented KeStackAttachProcess and KeStackDetachProcess. Made all functions use PKPROCESS and not PEPROCESS.
Memory Manager: Fixed calls to KeAttachProcess/DetachProcess to typecast PKPROCESS
Process Manager: Removed call to empty function in apc.c

svn path=/trunk/; revision=11622
2004-11-11 22:23:52 +00:00
Eric Kohl
0cc7d4d22d Fix typo: Call RegDeleteValue to delete a value.
svn path=/trunk/; revision=11621
2004-11-11 17:46:22 +00:00
Steven Edwards
301bbb3f0b grrr I forgot to do binary.....
svn path=/trunk/; revision=11620
2004-11-11 17:27:58 +00:00
Steven Edwards
1dc6cec99d grrr I forgot to do binary.....
svn path=/trunk/; revision=11619
2004-11-11 17:27:24 +00:00
Steven Edwards
fa83dde5e5 some simple sounds for ReactOS by Stefan Zehe.
svn path=/trunk/; revision=11618
2004-11-11 17:26:55 +00:00
Eric Kohl
816885ccb2 Clean-up.
svn path=/trunk/; revision=11617
2004-11-11 12:27:40 +00:00
Eric Kohl
ca9e2e3b6d Enable automatic adjustment of daylight savings changes.
svn path=/trunk/; revision=11616
2004-11-11 12:24:56 +00:00
Eric Kohl
2fcf84ea37 Add even more time zones.
svn path=/trunk/; revision=11615
2004-11-11 12:21:45 +00:00
Eric Kohl
7ac73dbbc4 RegSetValueExA: lpData can be NULL.
This fixes three failures of the WINE regression tests.

svn path=/trunk/; revision=11614
2004-11-11 11:21:30 +00:00
Gé van Geldorp
2fada79f2e Add partition handling for the Xbox
svn path=/trunk/; revision=11613
2004-11-10 23:45:37 +00:00
Gregor Anich
6f9d1917af Print exception names/strings when KDB is entered.
svn path=/trunk/; revision=11612
2004-11-10 23:16:16 +00:00
Eric Kohl
992f09bfbe Add more time zones.
svn path=/trunk/; revision=11611
2004-11-10 10:03:02 +00:00
Alex Ionescu
39a5847ee5 Rewrote APC Implementation.
TODO: KiSwapApcEnvironment, Honour SpecialApcDisable.
Special thanks to Thomas and Filip.

Fixed I/O Manager Bugs. APCs were not created with the right parameters in the right places, or had useless parameters being sent.

Added mmdrv and midimap to bootcd.

Fixed KTHREAD defintion.

Fixed some thread alertability issue in thread creation.

svn path=/trunk/; revision=11610
2004-11-10 02:51:00 +00:00
Gregor Anich
8b3a000e7b Fix RecursionTrap (RescursionTrap) in UnhandledExceptionFilter to allow more than 2 exceptions beeing handled by the toplevel filter.
svn path=/trunk/; revision=11609
2004-11-10 01:07:45 +00:00
Gé van Geldorp
2950511d3e Add disk I/O (well, input only, no output) for the Xbox
svn path=/trunk/; revision=11608
2004-11-09 23:36:20 +00:00
Gregor Anich
d5b047feae Fix _control87, the old implementation was terribly wrong and broken.
svn path=/trunk/; revision=11607
2004-11-09 23:15:17 +00:00
Alex Ionescu
9e12bbeae6 baseaddress.cfg - Add entry for midimap.dll. Fix msacm's base address. It was conflicting with iplhapi and generated an unncessary relocation and error message.
Makefile - Add entry for midimap.dll, Build mmdrv because it's trying to get loaded at system startup and that caused an error
bootdata/hivedef.inf - Create PaintDesktopVersion key and set it to 0. Win32k was trying to read this value and gave an error message because it did not exist.
lib/samlib/samlib.c - Silence samlib for informational messages that aren't errors.(if NDEBUG is on)
lib/userenv/directory.c -Silence for informational messages that aren't errors (if NDEBUG is on)
lib/setupapi/devinst.c - Turn SetupDiInstallClassW blank debug message into something a little more informational.
lib/syssetup/install.c - Make syssetup check if samlib returned ERROR_USER_EXISTS, in which case instead of pointlessly rebooting (which probably never allowed the user to actually setup ros...if error_user_Exists is returned it means  that setup was abandonned for some reason, so we would want to restart it instead of giving up), it will  restart setup.

svn path=/trunk/; revision=11606
2004-11-09 15:02:35 +00:00
Eric Kohl
f167a592d3 Use BF_SOFT style to draw pushbutton edges.
svn path=/trunk/; revision=11605
2004-11-09 14:59:37 +00:00
Eric Kohl
3b4262a4c2 Add more time zones.
svn path=/trunk/; revision=11604
2004-11-09 14:56:05 +00:00
Alex Ionescu
ab31ca4db5 Move midimap.drv (a 9x component) to midimap.dll (an NT component), make it build with baseaddress.cfg.
svn path=/trunk/; revision=11603
2004-11-09 14:52:52 +00:00
Art Yerkes
60a319ecaa Cleaing in receive: fixed one bugcheck.
Removed much small allocation cruft (20 byte or less objects)

svn path=/trunk/; revision=11602
2004-11-09 09:39:38 +00:00
Steven Edwards
bdaa32578b One of the buggy versions of Mingw I have fails to compile this if I dont
include stdio.h.

svn path=/trunk/; revision=11601
2004-11-09 03:22:17 +00:00
Alex Ionescu
885ff857c4 Silence informational messages.
svn path=/trunk/; revision=11600
2004-11-09 00:38:37 +00:00
Gé van Geldorp
5882e75d37 Support video and memory detection on the Xbox
svn path=/trunk/; revision=11599
2004-11-08 22:02:48 +00:00
Thomas Bluemel
cfde60c60d 1. fixed GetProfilesDirectoryW(). the lpcchSize parameter takes the size of the buffer in characters, not bytes.
2. LoadUserProfileW() should pass the buffer size to GetProfilesDirectoryW()

svn path=/trunk/; revision=11598
2004-11-08 21:23:34 +00:00
Eric Kohl
2f3caac348 Select current time zone on the time zone property page.
svn path=/trunk/; revision=11597
2004-11-08 10:33:08 +00:00
Eric Kohl
d63d756d2c Add some more time zones.
svn path=/trunk/; revision=11596
2004-11-08 10:31:52 +00:00
Thomas Bluemel
dbd1890dee make better use of precompiled headers
svn path=/trunk/; revision=11595
2004-11-08 02:16:06 +00:00
Thomas Bluemel
3e1e519f2e don't return uninitialized variable. thx to Alex.
svn path=/trunk/; revision=11594
2004-11-08 01:46:12 +00:00
Thomas Bluemel
3e2287907c forgot this file
svn path=/trunk/; revision=11593
2004-11-08 00:37:19 +00:00
Gregor Anich
1664862298 Check for installed exception handlers if the kernel debugger returns not kdDoNotHandleException, and not not kdHandleException.
svn path=/trunk/; revision=11592
2004-11-08 00:36:41 +00:00
Thomas Bluemel
762aaad968 separate epsapi as per kjk's request again, sorry for that.
svn path=/trunk/; revision=11591
2004-11-08 00:34:46 +00:00
Filip Navara
93c256ba7e - Fix prototype for KeConnectInterrupt.
svn path=/trunk/; revision=11590
2004-11-07 23:22:39 +00:00
Gregor Anich
2a5fa312ec Add SSE detection.
svn path=/trunk/; revision=11589
2004-11-07 23:03:43 +00:00
Filip Navara
5879eeb98a - Export the InitSafeBootMode variable as per KB83764.
- Remove KeRescheduleThread (it's not present neither on WinNT4 nor on WinXP SP2).
- Fix IoOpenDeviceRegistryKey for PLUGPLAY_REGKEY_DRIVER case. (Oops)
- Move IoConnectInterrupt and IoDisconnectInterrupt outside from Ke.

svn path=/trunk/; revision=11588
2004-11-07 22:55:38 +00:00
Art Yerkes
da8cb9fe17 Preliminary stub generator ported from my shell script.
svn path=/trunk/; revision=11587
2004-11-07 22:54:04 +00:00
Gregor Anich
a6fdf80a8b Fix FORCE_INLINE for GNUC.
svn path=/trunk/; revision=11586
2004-11-07 22:20:50 +00:00
Steven Edwards
609b0c5307 Added Wine ole32 tests.
As of 2004-10-7 we pass all of the tests except the one marked todo
in Wine. It has been disabled.

svn path=/trunk/; revision=11585
2004-11-07 22:19:07 +00:00
Filip Navara
96c1aa383f - Initialize DriverObject->HardwareDatabase for newly created device objects.
svn path=/trunk/; revision=11584
2004-11-07 21:20:51 +00:00
Filip Navara
22d4c31e4c - New and complete implementation of IoOpenDeviceRegistryKey.
svn path=/trunk/; revision=11583
2004-11-07 21:18:33 +00:00
Art Yerkes
8a640a70d2 Removed remaining kernel imports from ip lib.
Removed unneeded precomp.h from drivers/lib/ip.
Removed some memtrack and other spew.
Removed datagram send pipe part, and accompanying address file queue.
Simplified send pipe (major changes):
- Neighbor is solely responsible for firing normal ip datagrams to the peer.
- Transmit is the only place normal ip datagrams are passed to neighbor from.
- Simplified fragmentation code.
- Made callbacks explicit and always called in neighbor and transmit.
- Clarified ownership of transmitted NdisPacket.
- Ditto IPPackets here and in icmp.
- PC(Packet)->DLComplete is *only* used by lan.c and loopback.c
- Simplified loopback send mechanism
Added the beginnings of a test suite

svn path=/trunk/; revision=11582
2004-11-07 20:37:21 +00:00
Steven Edwards
da9108e6ff Added Wine psapi tests.
As of 2004-10-7 we pass 17 out of 20 tests.
I have disabled the three we fail.

svn path=/trunk/; revision=11581
2004-11-07 20:05:22 +00:00
KJK::Hyperion
626b0a1f74 Moved VerSetConditionMask in RTL so it can be exported from ntoskrnl too
svn path=/trunk/; revision=11580
2004-11-07 18:45:52 +00:00
Thomas Bluemel
11aba14d5f fixed typo
svn path=/trunk/; revision=11579
2004-11-07 18:43:33 +00:00
Thomas Bluemel
5a1d86c75b corrected image base address
svn path=/trunk/; revision=11578
2004-11-07 18:41:19 +00:00
Eric Kohl
3c3bf1e647 Fill the time zone list.
svn path=/trunk/; revision=11577
2004-11-07 16:03:51 +00:00
Gregor Anich
5a1530f454 Translate EXCEPTION_XXX defines into EXCEPTION_DISPOSITION enum values.
svn path=/trunk/; revision=11576
2004-11-07 15:58:41 +00:00
Filip Navara
31e89ab427 - Define RTL_REGISTRY_HANDLE and RTL_REGISTRY_OPTIONAL.
svn path=/trunk/; revision=11575
2004-11-07 15:40:31 +00:00
Thomas Bluemel
4cebb355ef ignore .gch files
svn path=/trunk/; revision=11574
2004-11-07 15:39:22 +00:00
Thomas Bluemel
6414f19557 added stubs for winscard.dll
svn path=/trunk/; revision=11573
2004-11-07 15:37:41 +00:00
Steven Edwards
af0423f839 Added Wine Common Control Regression tests.
As of 2004-10-7 we pass all of these tests.

svn path=/trunk/; revision=11572
2004-11-07 14:36:23 +00:00
KJK::Hyperion
515d472b0f Implemented VerSetConditionMask.
[HEADER HELL] VER_XXX macros defined inside the source file. Sorry

svn path=/trunk/; revision=11571
2004-11-07 13:08:24 +00:00
Eric Kohl
aba2c302f3 Add more time zones.
svn path=/trunk/; revision=11570
2004-11-07 11:49:55 +00:00
Steven Edwards
edcdbd6b73 Cleanup the warnings.
Patch by Vandread this closes bug 306.

svn path=/trunk/; revision=11569
2004-11-07 03:22:50 +00:00
Gé van Geldorp
473854d2fd Use correct context.
Patch by Theodor Willax <theodor_willax@hotmail.com>

svn path=/trunk/; revision=11568
2004-11-06 22:28:11 +00:00
Filip Navara
d00861b8e8 - Fix ACL size calculation in SepInitDACLs.
- Fix size check in RtlpAddKnownAce.

svn path=/trunk/; revision=11567
2004-11-06 21:32:16 +00:00
Steven Edwards
6b9538eb54 include stdlib.h, string.h and ctype.h to fix a build problem I am seeing.
svn path=/trunk/; revision=11566
2004-11-06 21:06:52 +00:00
Eric Kohl
f7f3b5cbfe Add some more timezones.
svn path=/trunk/; revision=11565
2004-11-06 19:41:44 +00:00
Gregor Anich
fc99b33d66 Add ExtendedRegisters to CONTEXT_X86, CONTEXT_EXTENDED_REGISTERS and MAXIMUM_SUPPORTED_EXTENSIONS defines.
I just hope I don't break anything!

svn path=/trunk/; revision=11564
2004-11-06 19:15:15 +00:00
Thomas Bluemel
068b78cfc6 silence debug output
svn path=/trunk/; revision=11559
2004-11-06 18:17:32 +00:00
Art Yerkes
03c08fd7b9 Changes:
- Turn two instances of stricmp(...,".[Cc]") into one of strcaseccmp(...,".c")
  in filename parsing.
- Streamline line parsing a bit:
  - Scan the line only once, looking for any line terminator
  - Ignore leading and trailing blanks
  - Handle comments properly

svn path=/trunk/; revision=11557
2004-11-06 17:37:29 +00:00
Eric Kohl
de2ab6cf8b - Make TIME_ZONE_ID_XXX constants available from kernel mode.
- Fix definition of KSYSTEM_TIME.
- Set default time zone bias and id in the shared user page.

svn path=/trunk/; revision=11556
2004-11-06 16:05:49 +00:00
Eric Kohl
a7ffdcff0e - Replace TIME type by LARGE_INTEGER in FILE_*_INFORMATION structures.
- Make sure that filesystem-specific data and time are converted to/from system time.
- Replace assert() by ASSERT().

svn path=/trunk/; revision=11555
2004-11-06 13:44:57 +00:00
Eric Kohl
0a4eb63a58 - Replace TIME type by LARGE_INTEGER in FILE_*_INFORMATION structures.
- Make sure that filesystem-specific data and time are converted to/from system time.

svn path=/trunk/; revision=11554
2004-11-06 13:38:45 +00:00
Thomas Bluemel
2ec823a6b0 1. implemented GetPerformanceInfo()
2. fixed definition of SYSTEM_HANDLE_INFORMATION and SYSTEM_HANDLE_TABLE_ENTRY_INFO

svn path=/trunk/; revision=11553
2004-11-06 11:45:47 +00:00
Thomas Bluemel
112d5270ee removed obsolete forward declaration
svn path=/trunk/; revision=11551
2004-11-06 10:10:02 +00:00
Alex Ionescu
8cb1d77efd Reimplimented IO Timers correctly.
svn path=/trunk/; revision=11550
2004-11-06 04:12:59 +00:00
Thomas Bluemel
caa0346413 fixed return value of GetProcessImageFileNameA/W()
svn path=/trunk/; revision=11549
2004-11-06 01:43:59 +00:00
Thomas Bluemel
3b90d19697 1. fixed field names of the SYSTEM_PAGEFILE_INFORMATION structure
2. implemented EnumPageFilesA/W()

svn path=/trunk/; revision=11548
2004-11-06 01:42:04 +00:00
Thomas Bluemel
6903fc73af implemented GetProcessImageFileNameA/W()
svn path=/trunk/; revision=11547
2004-11-05 23:53:06 +00:00
Thomas Bluemel
2b4a515e61 fixed typo
svn path=/trunk/; revision=11546
2004-11-05 22:47:02 +00:00
Thomas Bluemel
2296e99d56 1. export all psapi stubs
2. added missing psapi declarations to w32api

svn path=/trunk/; revision=11545
2004-11-05 22:36:36 +00:00
Eric Kohl
e339d82c69 Read time zone information from registry at startup.
svn path=/trunk/; revision=11544
2004-11-05 17:42:20 +00:00
Thomas Bluemel
8655dad649 no need to reference the job object pointer in NtIsProcessInJob()
svn path=/trunk/; revision=11543
2004-11-05 13:30:18 +00:00
Eric Kohl
8ee82ee7cc Use ASSERT() instead of assert().
svn path=/trunk/; revision=11542
2004-11-05 12:28:19 +00:00
Thomas Bluemel
2d115eb645 pass lstrcpynW() the maximum number of characters, not bytes
svn path=/trunk/; revision=11541
2004-11-05 11:51:18 +00:00
Eric Kohl
6388bdc46c - Time zone combobox must have CBS_DROPDOWNLIST style.
- Select and install time zone information.

svn path=/trunk/; revision=11540
2004-11-05 11:48:45 +00:00
Eric Kohl
e24dc12954 Make sure that NtSetSystemTime won't crash if the new systen time is NULL.
svn path=/trunk/; revision=11539
2004-11-05 11:46:02 +00:00
Eric Kohl
c37b036361 Add some timezone information.
svn path=/trunk/; revision=11538
2004-11-05 11:44:38 +00:00
Thomas Bluemel
7ae4dcc791 epsapi.a doesn't exist anymore...
svn path=/trunk/; revision=11537
2004-11-04 22:14:41 +00:00
Gé van Geldorp
e838464040 TimeOut < 0 means not set yet, so we need a signed type to store that
svn path=/trunk/; revision=11536
2004-11-04 13:44:18 +00:00
Thomas Bluemel
1fe7b789a1 merged epsapi into psapi and reformatted some code to make it readable
svn path=/trunk/; revision=11535
2004-11-03 22:43:00 +00:00
Gé van Geldorp
65184e9a08 bootcd and livecd want cards.dll, so build it by default
svn path=/trunk/; revision=11534
2004-11-03 20:12:59 +00:00
Thomas Bluemel
a3901ae581 1. reformatted the code so human beings can read it
2. enabled precompiled headers

svn path=/trunk/; revision=11533
2004-11-02 23:42:49 +00:00
Martin Fuchs
f99b2df6d1 Design Shell About dialog more Windows-like (Klemens Friedl <frik85@hotmail.com>)
svn path=/trunk/; revision=11532
2004-11-02 23:11:37 +00:00
Thomas Bluemel
de6c4c8cb3 1. get rid of InternalGetProcessId()
2. Implemented GetProcessIdOfThread() and GetThreadId()

svn path=/trunk/; revision=11531
2004-11-02 21:51:25 +00:00
Thomas Bluemel
91ae432126 use ReadConsoleInputW() for unicode builds
svn path=/trunk/; revision=11530
2004-11-02 20:47:05 +00:00
Thomas Bluemel
c524730883 1. Implemented WriteConsoleW(), ReadConsoleW(), FillConsoleOutputCharacterW(), WriteConsoleInputW(), ReadConsoleOutputCharacterW(), ScrollConsoleScreenBufferW()
2. added stub for SetThreadUILanguage()
This get's XP's cmd.exe to start (unfortunately it exits for some reason after one hits the enter key).

svn path=/trunk/; revision=11529
2004-11-02 20:42:06 +00:00
Gé van Geldorp
f9029e5cd8 Generate stub functions from .spec file
svn path=/trunk/; revision=11528
2004-11-02 19:47:18 +00:00
Gé van Geldorp
5e46da95f8 windres 2.15.90 20040222 doesn't like the empty string on COMBOBOXes
svn path=/trunk/; revision=11527
2004-11-02 19:28:17 +00:00
Eric Kohl
983347820f Add the 'Date and Time' page.
Selecting a timezone does not work yet.

svn path=/trunk/; revision=11526
2004-11-02 15:42:09 +00:00
Alex Ionescu
7d6071de5d Fix Mailslot and Named Pipe Drivers
svn path=/trunk/; revision=11525
2004-11-01 22:54:24 +00:00
Gé van Geldorp
a10211cdc2 Add ability to be loaded as "multiboot kernel" from other multiboot loaders
svn path=/trunk/; revision=11524
2004-11-01 20:49:32 +00:00
Hartmut Birr
3ec6acd622 - Fixed KeGetCurrentThread for mp machines.
- Initialized the idle thread for application processors earlier.

svn path=/trunk/; revision=11523
2004-11-01 19:10:07 +00:00
Hartmut Birr
128ff94899 - Initialized the fpu of an application processor.
svn path=/trunk/; revision=11522
2004-11-01 19:03:26 +00:00
Hartmut Birr
f23530ddc9 - Changed/rewrote parts of the mp code to get my ASUS p2b-ds motherboard to working.
svn path=/trunk/; revision=11521
2004-11-01 19:01:25 +00:00
Hartmut Birr
3edce321a2 - Share the irq/irql/vector definitions between ntoskrnl and hal.
- Changed the handling of interrupts for uniprocessor machines from irqs to interrupt vectors.

svn path=/trunk/; revision=11520
2004-11-01 14:37:19 +00:00
Filip Navara
c8583d9809 - Use common KiInterruptDispatch2 function for both UP and MP kernels.
svn path=/trunk/; revision=11519
2004-10-31 23:57:15 +00:00
Alex Ionescu
a30fcc1117 Fix deleted line.
svn path=/trunk/; revision=11518
2004-10-31 23:49:33 +00:00
Alex Ionescu
7cc191567e Mailslot/Named Pipe structures.
svn path=/trunk/; revision=11517
2004-10-31 23:40:10 +00:00
Alex Ionescu
e24de43a0b cleanup.c: Fix typo
Fix Named Pipe and Mailslot Creation Implementation.

svn path=/trunk/; revision=11516
2004-10-31 23:00:41 +00:00
Alex Ionescu
47cef79cec Use proper IRP structure
svn path=/trunk/; revision=11515
2004-10-31 22:21:41 +00:00
Filip Navara
129c75c64d - Call KiDispatchInterrupt only if DPC software interrupt was requested. (TODO: The same should be done for APCs.)
- Request DPC/APC software interrupts where we should.
- Fix condition in KeUpdateRunTime to allow switching thread early in the boot.
- Set default thread quantum for system process.

svn path=/trunk/; revision=11514
2004-10-31 21:22:06 +00:00
Emanuele Aliberti
1ffec948ad Guarded mutex (no code and off makefile).
svn path=/trunk/; revision=11513
2004-10-31 21:21:14 +00:00
Emanuele Aliberti
5f451aa443 Normalize private symbols in LPC, plus minor changes/adds.
svn path=/trunk/; revision=11512
2004-10-31 20:27:08 +00:00
Emanuele Aliberti
430b802b99 Modular resource script for POSIX+ terminal emulator in W32.
svn path=/trunk/; revision=11511
2004-10-31 20:11:09 +00:00
Eric Kohl
8c1d092798 Code clean-up.
svn path=/trunk/; revision=11510
2004-10-31 19:46:10 +00:00
Thomas Bluemel
9bb9d462ba fixed typo
svn path=/trunk/; revision=11509
2004-10-31 19:24:31 +00:00
Hartmut Birr
0e80529be4 - Fixed the definition of KeGetCurrentKPCR.
svn path=/trunk/; revision=11508
2004-10-31 17:05:50 +00:00
Hartmut Birr
cb919902cb - Implemented KeSetTargetProcessorDpc.
- Fixed KeInsertQueueDpc and KeRemoveQueueDpc for mp machines.

svn path=/trunk/; revision=11507
2004-10-31 17:02:31 +00:00
Thomas Bluemel
0a216b2be5 German RC-File for sysdm and timedate and a few change in the Englich RC-File. Patch by Michael Fritscher
svn path=/trunk/; revision=11506
2004-10-31 16:24:31 +00:00
Filip Navara
9b10ed5a9a - Synchronize HalDisplayString using spinlocks at HIGH_LEVEL.
svn path=/trunk/; revision=11505
2004-10-31 15:56:20 +00:00
Hartmut Birr
a3278967c6 - Dpc's must be always deliver before a thread switch can start.
svn path=/trunk/; revision=11504
2004-10-31 15:31:40 +00:00
Hartmut Birr
7287eafc08 - The quantum of the idle thread must also end.
svn path=/trunk/; revision=11503
2004-10-31 15:24:06 +00:00
Hartmut Birr
914140ad22 - Queried some values from pcr at DISPATCH_LEVEL to prevent from changing the processor after a thread switch.
- Changed from bx to dx within inline assembler, because the ebx register must be saved.

svn path=/trunk/; revision=11502
2004-10-31 14:02:20 +00:00
Hartmut Birr
0ca2950639 - Initialize the pcr for an application processor before it is booted.
- Initialize the dpc implementation for the boot processor earlier.

svn path=/trunk/; revision=11501
2004-10-31 13:20:58 +00:00
Hartmut Birr
780bd8e919 - Removed PiApcLock, because apc's are thread local and not global.
svn path=/trunk/; revision=11500
2004-10-31 13:01:04 +00:00
Hartmut Birr
67b8ce4f3b - Save/initialize/restore the gs register on interrupt begin/return.
svn path=/trunk/; revision=11499
2004-10-31 12:49:37 +00:00
Eric Kohl
d81bcce9de Install new inf files and control panel applications.
svn path=/trunk/; revision=11498
2004-10-31 11:56:26 +00:00
Eric Kohl
e90523893c - Define a unique base address for each control panel application.
- Use the W32API.

svn path=/trunk/; revision=11497
2004-10-31 11:54:58 +00:00
Eric Kohl
39a395e1f1 Define a unique base address for each control panel application.
svn path=/trunk/; revision=11496
2004-10-31 11:54:22 +00:00
Eric Kohl
ee001b7a4d Add SCSI device class installer inf file and global layout file.
svn path=/trunk/; revision=11495
2004-10-31 11:49:33 +00:00
James Tabor
2b7e477fd0 Added missing header info for helping to compile msi.dll
svn path=/trunk/; revision=11494
2004-10-31 02:19:52 +00:00
Thomas Bluemel
8301eaaa24 fixed memory leak in CheckNameLegalDOS8Dot3A() (free the allocated unicode string)
svn path=/trunk/; revision=11493
2004-10-31 01:36:37 +00:00
Thomas Bluemel
f33c6e48c8 implemented InitializeProcessForWsWatch() and GetWsChanges()
svn path=/trunk/; revision=11492
2004-10-31 01:23:05 +00:00
Thomas Bluemel
0e568c5b9f fixed a comment
svn path=/trunk/; revision=11491
2004-10-31 00:14:18 +00:00
Thomas Bluemel
b298e3ec15 removed obsolete debug output
svn path=/trunk/; revision=11490
2004-10-31 00:09:12 +00:00
Thomas Bluemel
0a1dce4016 implemented Heap32ListFirst(), Heap32ListNext(), Module32First(), Module32FirstW(), Module32Next(), Module32NextW(), Process32First(), Process32FirstW(), Process32Next(), Process32NextW(), Thread32First(), Thread32Next(), Toolhelp32ReadProcessMemory() and CreateToolhelp32Snapshot().
Currently only the flags TH32CS_SNAPPROCESS, TH32CS_SNAPTHREAD and TH32CS_INHERIT are supported, snapshots of heaps and modules are not fully implemented yet.

svn path=/trunk/; revision=11489
2004-10-31 00:04:19 +00:00
Filip Navara
095f2900e8 - Change ULONG to ULONG_PTR for StackLimit.
- Move code from KiUpdateSystemTime to KeUpdateSystemTime.
- Move code from KiUpdateProcessThreadTime to KeUpdateRunTime.
- Honour thread quantums while scheduling.

svn path=/trunk/; revision=11488
2004-10-30 23:48:57 +00:00
Thomas Bluemel
75d9d45c27 avoid overlaps of kernel32 and ntdll when kernel32 gets too big. Thanks to Filip for pointing this out.
svn path=/trunk/; revision=11487
2004-10-30 22:57:05 +00:00
Thomas Bluemel
1c2597f8e9 added a few missing structures and some janitory work
svn path=/trunk/; revision=11486
2004-10-30 22:18:17 +00:00
Martin Fuchs
53f429e243 adjust WINE specific texts for ReactOS (Klemens Friedl <frik85@hotmail.com>)
svn path=/trunk/; revision=11485
2004-10-30 21:28:19 +00:00
Martin Fuchs
0775105df6 adjust about dialog to ROS font sizes (Klemens Friedl <frik85@hotmail.com>)
svn path=/trunk/; revision=11484
2004-10-30 20:23:59 +00:00
Filip Navara
12143ef1ae - Allow 0x80 to be a BIOS assigned drive number for CD-ROM.
svn path=/trunk/; revision=11483
2004-10-30 19:32:29 +00:00
Eric Kohl
6f9c0194f4 Add Date/Time control panel application.
svn path=/trunk/; revision=11482
2004-10-30 19:16:20 +00:00
Eric Kohl
10e480947b Use W32API.
svn path=/trunk/; revision=11481
2004-10-30 19:14:22 +00:00
Casper Hornstrup
d0c462bb30 - Print stack frames on crashes.
- Users should report errors to ros-dev@reactos.com.

svn path=/trunk/; revision=11480
2004-10-30 17:25:38 +00:00
Alex Ionescu
1acbbc2ca0 Fix some values.
svn path=/trunk/; revision=11479
2004-10-30 16:07:46 +00:00
Filip Navara
0ca74773d6 - Make InitializeListHead, InsertHeadList, InsertTailList and
RemoveEntryList an inline functions instead of macros to match DDK.
  It's important because using macros can lead to variable name
  conflicts.
- Make PopEntryList, PushEntryList a macro instead of inline function
  (to match DDK).
- RemoveEntryList, RemoveHeadList and RemoveTailList shouldn't zero
  Blink and Flink of the removed entry. The MS documentation is wrong
  and there has been already submitted an official bug report for that.

svn path=/trunk/; revision=11478
2004-10-30 14:02:04 +00:00
Filip Navara
f9f887791c - Use KfAcquireSpinLock/KfReleaseSpinLock instead of KiAcquireSpinLock/KiReleaseSpinLock.
svn path=/trunk/; revision=11477
2004-10-30 13:30:03 +00:00
Eric Kohl
26be094c41 Add ability to start individual control panel applications.
svn path=/trunk/; revision=11476
2004-10-30 12:38:52 +00:00
Eric Kohl
7b61512539 Build new control panel applications.
svn path=/trunk/; revision=11475
2004-10-30 12:37:02 +00:00
Eric Kohl
92ac842d73 Add Keyboard and Mouse (Main) control panel application.
svn path=/trunk/; revision=11474
2004-10-30 12:36:14 +00:00
Eric Kohl
b2a213a80c Add Regional Options (Intl) control panel application.
svn path=/trunk/; revision=11473
2004-10-30 12:33:51 +00:00
Casper Hornstrup
ab2c6fba8b - Support FULL_MAP command line option.
- Allow DEBUG to be set on command line.

svn path=/trunk/; revision=11472
2004-10-30 11:19:45 +00:00
Eric Kohl
b0a01fd7b7 Sort control panels by name.
svn path=/trunk/; revision=11471
2004-10-29 16:59:16 +00:00
Casper Hornstrup
7c19997893 2004-10-29 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/include/internal/test.h (NtLockVirtualMemoryInternal): Rename
	to MiLockVirtualMemory.
	* ntoskrnl/include/internal/test.h: Update.
	* ntoskrnl/tests/tests/VirtualMemory.c: Update.

svn path=/trunk/; revision=11470
2004-10-29 16:48:10 +00:00
Eric Kohl
f776678f2d - Support control panel applications that provide more than one control panel.
- Clean-up to improve readability.

svn path=/trunk/; revision=11468
2004-10-29 12:27:58 +00:00
Filip Navara
d338969f54 - Remove duplicate definition of RTL_RANGE_LIST_SHARED_OK and
RTL_RANGE_LIST_NULL_CONFLICT_OK.
- Fix declaration of PRTL_CONFLICT_RANGE_CALLBACK.

svn path=/trunk/; revision=11467
2004-10-28 21:41:58 +00:00
Casper Hornstrup
e89808b094 2004-10-28 Casper S. Hornstrup <chorns@users.sourceforge.net>
* drivers/net/tcpip/tests/setup.c: Include windows.h.
	* lib/gdiplus/tests/setup.c: Ditto.
	* lib/kernel32/tests/setup.c: Ditto.
	* lib/ws2_32/tests/setup.c: Ditto.
	* subsys/win32k/tests/setup.c: Ditto.
	* ntoskrnl/tests/setup.c: Ditto.
	* ntoskrnl/include/ntoskrnl.h: Include test.h.
	* ntoskrnl/mm/virtual.c (NtLockVirtualMemoryInternal): New function.
	(NtLockVirtualMemory): Use NtLockVirtualMemoryInternal.
	* ntoskrnl/tests/Makefile (TARGET_CFLAGS): Add -I../include.
	* ntoskrnl/tests/stubs.tst: Remove stubs for functions in libgcc.
	* regtests/shared/regtests.h: Make independent of windows.h.
	* tools/helper.mk (run): Link with libgcc.
	* tools/regtests.c (EXESTUB): Include windows.h.
	* ntoskrnl/include/internal/test.h: New file.
	* ntoskrnl/tests/tests/VirtualMemory.c: Ditto.

svn path=/trunk/; revision=11466
2004-10-28 19:01:59 +00:00
Filip Navara
497ef5e058 - Define IoReleaseRemoveLock.
- Fix definiton of IoReleaseRemoveLockAndWait.

svn path=/trunk/; revision=11465
2004-10-27 21:36:19 +00:00
Gregor Anich
8c57ab6af9 Added KdbpSafeRead/WriteMemory macros (translated into MmSafeCopyFrom/ToUser) and made KDB use them for accessing unsafe memory - should prevent it from crashing.
svn path=/trunk/; revision=11464
2004-10-27 13:33:59 +00:00
Eric Kohl
9accaf0d0e DrawStatusText() must not process prefix characters.
svn path=/trunk/; revision=11463
2004-10-26 13:15:06 +00:00
Eric Kohl
2e1e51f902 Pressing ENTER when a value is selected in the listview will open the edit dialog.
svn path=/trunk/; revision=11462
2004-10-26 11:05:49 +00:00
Eric Kohl
4daf602867 Use FileHeader->SizeOfOptionalHeader instead of sizeof(IMAGE_OPTIONAL_HEADER) as the real size of the optional header.
svn path=/trunk/; revision=11461
2004-10-26 10:56:38 +00:00
Gregor Anich
d85e7ec614 Fixed debug build
svn path=/trunk/; revision=11457
2004-10-25 14:22:21 +00:00
Thomas Bluemel
0402fbbd25 more prototype fixes
svn path=/trunk/; revision=11422
2004-10-24 20:37:27 +00:00
Casper Hornstrup
b69a77aa97 2004-10-24 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/Makefile (TARGET_REGTESTS): Define to yes.
	* regtests/regtests/regtests.c (_ExitProcess): Declare.
	* regtests/regtests/regtests.def (_ExitProcess@4): Ditto.
	* regtests/shared/regtests.h (_ExitProcess): Ditto.
	* tools/regtests.c: Exit process using _ExitProcess();
	Properly support fastcall symbols.
	* ntoskrnl/tests: New directory.
	* ntoskrnl/tests/tests: Ditto.
	* ntoskrnl/tests/.cvsignore: New file.
	* ntoskrnl/tests/Makefile: Ditto.
	* ntoskrnl/tests/setup.c: Ditto.
	* ntoskrnl/tests/stubs.tst: Ditto.
	* ntoskrnl/tests/tests/.cvsignore: Ditto.

svn path=/trunk/; revision=11420
2004-10-24 17:51:29 +00:00
Thomas Bluemel
1dbfd30e1e fixed prototypes of NtCreateProfile() and NtQueryIntervalProfile()
svn path=/trunk/; revision=11419
2004-10-24 17:14:27 +00:00
Thomas Bluemel
b4e530e530 fixed prototypes of NtCreateMutant(), NtQueryMutant(), NtQuerySemaphore(), NtQueryTimer(), NtReleaseMutant(), NtReleaseSemaphore(), NtSetTimerResolution() and NtSetTimer()
svn path=/trunk/; revision=11418
2004-10-24 16:49:49 +00:00
Thomas Bluemel
4a6dd7de44 fixed prototypes of NtSetEvent(), NtResetEvent(), NtQueryEvent(), NtPulseEvent(), NtOpenEvent() and NtCreateEvent()
svn path=/trunk/; revision=11417
2004-10-24 15:26:14 +00:00
Thomas Bluemel
4bd798e343 added some base addresses to the list
svn path=/trunk/; revision=11416
2004-10-24 13:05:53 +00:00
Thomas Bluemel
cb1bf2ae32 minor fixes
svn path=/trunk/; revision=11415
2004-10-24 12:55:19 +00:00
Casper Hornstrup
6003c5cb06 2004-10-24 Casper S. Hornstrup <chorns@users.sourceforge.net>
* config (REGRESSIONTESTS): Remove.
	* tools/config.mk: Update.
	* lib/kernel32/misc/dllmain.c: Update.
	* drivers/net/tcpip/tests/Makefile (TARGET_OBJECTS): Add setup.o.
	* lib/gdiplus/tests/Makefile (TARGET_OBJECTS): Ditto.
	* lib/kernel32/tests/Makefile (TARGET_OBJECTS): Ditto.
	* lib/ws2_32/tests/Makefile (TARGET_OBJECTS): Ditto.
	* subsys/win32k/tests/makefile (TARGET_OBJECTS): Ditto.
	* regtests/shared/regtests.h (SetupOnce, _SetupOnce): Declare.
	(DISPATCHER): Rename to _Dispatcher.
	* lib/gdiplus/tests/tests/test-1.c: Update.
	* lib/kernel32/tests/tests/CreateFile.c: Ditto.
	* lib/ws2_32/tests/tests/WinsockEvent.c: Ditto.
	* subsys/win32k/tests/tests/eng-mem-1.c: Ditto.
	* tools/helper.mk: Be quiet when building tests.
	* tools/regtests.c: Remove unused code.
	* drivers/net/tcpip/tests/setup.c: New file.
	* lib/gdiplus/tests/setup.c: Ditto.
	* lib/kernel32/tests/setup.c: Ditto.
	* lib/ws2_32/tests/setup.c: Ditto.
	* subsys/win32k/tests/setup.c: Ditto.

svn path=/trunk/; revision=11414
2004-10-24 12:39:54 +00:00
Thomas Bluemel
40851010a8 minor fixes
svn path=/trunk/; revision=11413
2004-10-24 12:36:12 +00:00
Thomas Bluemel
565f4d669b minor fixes
svn path=/trunk/; revision=11412
2004-10-24 12:26:27 +00:00
Thomas Bluemel
0dd86887a1 minor fixes
svn path=/trunk/; revision=11411
2004-10-24 12:16:54 +00:00
Eric Kohl
f443b5edcf Set processor features in the shared user page.
This fixes bug #387.

svn path=/trunk/; revision=11410
2004-10-24 12:00:01 +00:00
Filip Navara
baac7ae72e - Return STATUS_SUCCESS for PCI bus PDO PnP IRPs so that function drivers can process them.
svn path=/trunk/; revision=11409
2004-10-24 09:14:03 +00:00
Filip Navara
b02b780b4a - Return STATUS_SUCCESS for root bus PDO PnP IRPs so that function drivers can process them.
svn path=/trunk/; revision=11408
2004-10-24 09:13:18 +00:00
Alex Ionescu
cad7a781f2 Fixed up some HAL prototypes and fixed some header problems in regards to upcoming DMA patch I will commit tomorrow.
svn path=/trunk/; revision=11407
2004-10-23 23:43:23 +00:00
Casper Hornstrup
eae828b789 2004-10-23 Casper S. Hornstrup <chorns@users.sourceforge.net>
* Makefile: Support regtests_implib.
	* rules.mak (REGTESTS_PATH): Define.
	* drivers/net/tcpip/makefile (TARGET_BUILDENV_TEST): Remove.
	* drivers/net/tcpip/tests/Makefile: Update.
	* lib/gdiplus/tests/.cvsignore: Ditto.
	* lib/gdiplus/tests/Makefile: Ditto.
	* lib/kernel32/tests/Makefile: Ditto.
	* lib/kernel32/tests/stubs.tst (HeapAlloc, HeapFree): Add.
	* lib/ws2_32/makefile (TARGET_REGTESTS): Define to yes.
	* regtests/Makefile: Update.
 	* regtests/shared/regtests.c (_alloca): Define.
	(FrameworkGetHook): Move to here.
 	* regtests/shared/regtests.h (_AssertTrue, _AssertFalse): Define.
 	(_GetModuleHandleA, _GetProcAddress, _LoadLibraryA): Define.
 	(FrameworkGetExportedFunctionNameInternal): Define.
 	* subsys/win32k/tests/makefile: Update.
 	* tools/helper.mk: Create dependencies.
 	* tools/regtests.c: Move FrameworkGetHook; Support forwarded exports.
	* lib/ws2_32/tests: New directory.
	* lib/ws2_32/tests/.cvsignore: New file.
	* lib/ws2_32/tests/Makefile: Ditto.
	* lib/ws2_32/tests/stubs.tst: Ditto.
	* lib/ws2_32/tests/tests: New directory.
	* lib/ws2_32/tests/tests/.cvsignore: New file.
	* lib/ws2_32/tests/tests/WinsockEvent.c: New file.
	* regtests/regtests: New directory.
	* regtests/regtests/.cvsignore: New file.
	* regtests/regtests/Makefile: Ditto.
	* regtests/regtests/regtests.c: Ditto.
	* regtests/regtests/regtests.def: Ditto.

svn path=/trunk/; revision=11406
2004-10-23 21:05:12 +00:00
Gé van Geldorp
825e1dc162 Take DC origin into account
svn path=/trunk/; revision=11405
2004-10-23 19:17:54 +00:00
Filip Navara
985184b134 - Add _hooks.c and _stubs.S to list of ignore files.
svn path=/trunk/; revision=11404
2004-10-23 17:39:51 +00:00
Filip Navara
1b13f5b90b - Minor device node fixes.
svn path=/trunk/; revision=11402
2004-10-23 17:32:51 +00:00
Thomas Bluemel
9c06590d72 finally get rid of loadros
svn path=/trunk/; revision=11401
2004-10-23 17:07:07 +00:00
Gregor Anich
7e179dae1f Fixed debug build
svn path=/trunk/; revision=11400
2004-10-23 15:17:35 +00:00
Gregor Anich
fcfc4f85d1 Fixed debug build, uncommented NDEBUG in io/pnpmgr.c
svn path=/trunk/; revision=11399
2004-10-23 14:52:51 +00:00
Eric Kohl
dbc9b1b7dd Update DEVICE_NODE structure but some ReactOS specific components still remain.
svn path=/trunk/; revision=11398
2004-10-23 14:48:16 +00:00
Gé van Geldorp
f0497fdefd InProcServer32 entries only take a DLL name, no resource identifier
svn path=/trunk/; revision=11397
2004-10-23 13:10:57 +00:00
Filip Navara
b5e5b4f012 - Add declarations for the PnP arbiter and resource translation interfaces (ARBITER_REQUEST_SOURCE, ARBITER_RESULT, ARBITER_ACTION, ARBITER_CONFLICT_INFO, ARBITER_PARAMETERS, ARBITER_LIST_ENTRY, PARBITER_HANDLER, ARBITER_INTERFACE, RESOURCE_TRANSLATION_DIRECTION, PTRANSLATE_RESOURCE_HANDLER, PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER, TRANSLATOR_INTERFACE).
svn path=/trunk/; revision=11396
2004-10-23 08:10:57 +00:00
Thomas Bluemel
75009fd35f hopefully a better implementation of rundown protections, thanks also to Alex.
svn path=/trunk/; revision=11395
2004-10-22 22:49:00 +00:00
Thomas Bluemel
1270089c9f fixed redefinition of ASSERT
svn path=/trunk/; revision=11394
2004-10-22 21:21:52 +00:00
Eric Kohl
2a175cb990 Use upper-case ASSERT macros.
svn path=/trunk/; revision=11393
2004-10-22 20:57:39 +00:00
Eric Kohl
92239abf04 IoAdjustPagingPathCount is a macro.
svn path=/trunk/; revision=11392
2004-10-22 20:54:57 +00:00
Filip Navara
9fb531fab6 - Check for DeviceNode->CapabilityFlags being NULL before trying to access it.
svn path=/trunk/; revision=11391
2004-10-22 20:44:48 +00:00
Eric Kohl
b1a58d7d7e Use upper-case ASSERT macros.
svn path=/trunk/; revision=11390
2004-10-22 20:43:58 +00:00
Eric Kohl
9e01875f9c Use upper-case ASSERT macros.
svn path=/trunk/; revision=11389
2004-10-22 20:19:58 +00:00
Eric Kohl
8c62a8159a Use ASSERT macro instead of assert macro.
svn path=/trunk/; revision=11388
2004-10-22 20:08:22 +00:00
Filip Navara
e49ebc81df - Fix uninitialized variable warning in KeFlushEntireTb.
svn path=/trunk/; revision=11387
2004-10-22 20:07:13 +00:00
Eric Kohl
1e9ad342c8 Define ASSERT macro.
svn path=/trunk/; revision=11386
2004-10-22 20:04:05 +00:00
Eric Kohl
72aae9d8ca Define ASSERT and ASSERTMSG macros.
svn path=/trunk/; revision=11385
2004-10-22 20:02:32 +00:00
Filip Navara
ce60fe1bee - Add the afiler.h (ARC MAC filter) and wdmguid.h (GUIDs for buses, device events, ...) headers.
svn path=/trunk/; revision=11383
2004-10-22 19:35:19 +00:00
Filip Navara
3d8c71fce1 - Define the PLUGPLAY_REGKEY_* flags.
svn path=/trunk/; revision=11382
2004-10-22 19:29:44 +00:00
Filip Navara
6b8a09e4a4 - Support the BINARY_COMPATIBLE compile definition.
- Declare NDIS_PROCESSOR_TYPE and NDIS_ENVIRONMENT_TYPE.

svn path=/trunk/; revision=11381
2004-10-22 19:29:28 +00:00
Eric Kohl
ca8388ad0c Fix a debug message
svn path=/trunk/; revision=11380
2004-10-22 18:34:11 +00:00
Filip Navara
0214f20262 - Fix RtlIsRangeAvailable for boundary addresses and honour the RTL_RANGE_SHARED flag.
svn path=/trunk/; revision=11379
2004-10-22 16:30:58 +00:00
Filip Navara
ec9c488f06 - Fix a case when a device with same IDs is located on two or more buses in the same slot (honour bus number in FdoLocateChildDevice).
- Read only the common PCI header and not private device data while enumerating.

svn path=/trunk/; revision=11378
2004-10-22 16:30:46 +00:00
Eric Kohl
c647cbd575 - Remove obsolete variables from the DEVICE_NODE structure and store it in the registry instead.
- IoGetDeviceProperty() supports more properties (untested).

svn path=/trunk/; revision=11377
2004-10-22 11:00:41 +00:00
Eric Kohl
2461583881 - Remove obsolete variables from the DEVICE_NODE structure and store it in the registry instead.
- IoGetDeviceProperty() supports more properties (untested).

svn path=/trunk/; revision=11376
2004-10-22 10:55:35 +00:00
Gé van Geldorp
b3e27217fd - Don't double-quote an already double-quoted argument
- Properly increment the fmt pointer

svn path=/trunk/; revision=11375
2004-10-21 18:30:36 +00:00
Thomas Bluemel
69b98bb582 fixed a comment
svn path=/trunk/; revision=11374
2004-10-21 18:28:05 +00:00
Art Yerkes
8238df107b Corrected build problem: hal.a was not placed in the ddk implib
directory.

svn path=/trunk/; revision=11373
2004-10-21 18:04:48 +00:00
Steven Edwards
4cd92d7bd7 Thats it. the tests are now in rosapps.
svn path=/trunk/; revision=11372
2004-10-21 12:05:13 +00:00
Gé van Geldorp
2ecd28627f Put back -D__REACTOS__ for now
svn path=/trunk/; revision=11371
2004-10-21 12:02:18 +00:00
Steven Edwards
24617fc41e Almost done removing old tests
svn path=/trunk/; revision=11370
2004-10-21 11:58:12 +00:00
Gé van Geldorp
d8a803d10b Better drawing of +/- boxes at smaller icon sizes
svn path=/trunk/; revision=11369
2004-10-21 08:38:36 +00:00
Steven Edwards
2d23921220 I'll finish in the morning......
svn path=/trunk/; revision=11368
2004-10-21 05:30:46 +00:00
Steven Edwards
2b58d249c6 Started removing tests
svn path=/trunk/; revision=11367
2004-10-21 05:27:50 +00:00
Steven Edwards
75fbd2832d Added regexpl and tests to the makefile.
Let me know if something is broken on linux.

svn path=/trunk/; revision=11366
2004-10-21 05:20:52 +00:00
Steven Edwards
005fb790e6 Re-enable almost all tests.
svn path=/trunk/; revision=11365
2004-10-21 05:20:21 +00:00
Steven Edwards
10a923d083 Moving tests....Almost done.
svn path=/trunk/; revision=11364
2004-10-21 05:12:02 +00:00
Steven Edwards
4ed7672428 Remove tests from the Main Makefile.
svn path=/trunk/; revision=11363
2004-10-21 05:08:32 +00:00
Steven Edwards
5368a4c682 Moving the tests.....still more....
svn path=/trunk/; revision=11362
2004-10-21 04:59:01 +00:00
Steven Edwards
e1c8dd64af Moving the tests.....more
svn path=/trunk/; revision=11361
2004-10-21 04:53:21 +00:00
Steven Edwards
dbf0e6e889 Moving the tests
svn path=/trunk/; revision=11360
2004-10-21 04:48:46 +00:00
Art Yerkes
68d63b431f Added null check for CapabilityFlags.
svn path=/trunk/; revision=11359
2004-10-21 03:39:37 +00:00
Thomas Bluemel
48008b5f19 fixed language code
svn path=/trunk/; revision=11358
2004-10-20 22:41:16 +00:00
Thomas Bluemel
85de1b945e forgot to add these files
svn path=/trunk/; revision=11357
2004-10-20 22:31:05 +00:00
Casper Hornstrup
e1a7bb0d2f 2004-10-20 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/gdiplus/makefile (TARGET_BUILDENV_TEST): Remove.
	(TARGET_TYPE): Set to test.
	* lib/kernel32/makefile: Ditto.
	* subsys/win32k/makefile: Ditto.
	* tools/helper.mk (TARGET_BUILDENV_TEST): Remove.
	(TARGET_TYPE): New value test.
	* regtests/shared/regtests.c (_Result, _Buffer): Add.
	* regtests/shared/regtests.h (_Result, _Buffer): Declare extern.
	(TestRoutine): Make void return type and remove Buffer parameter.
	(FAIL*): Remove.

svn path=/trunk/; revision=11356
2004-10-20 20:51:21 +00:00
Gé van Geldorp
8139ac2333 Sync to Wine-20041019
svn path=/trunk/; revision=11355
2004-10-20 20:35:58 +00:00
Gé van Geldorp
ef42acd73f Remove global -DCOBJMACROS for winedll's since they #define it themselves
now when needed

svn path=/trunk/; revision=11354
2004-10-20 20:31:36 +00:00
Thomas Bluemel
5df79e4eec disabled mouse tracking should just supress MSG_MOUSE_MOVED - all other mouse messages are supposed to be dispatched.
svn path=/trunk/; revision=11353
2004-10-20 19:19:12 +00:00
Gé van Geldorp
ab895b1d38 Update status
svn path=/trunk/; revision=11352
2004-10-20 18:33:05 +00:00
Gé van Geldorp
b16df368f7 Sync to Wine-20041019
svn path=/trunk/; revision=11350
2004-10-20 18:30:39 +00:00
Gé van Geldorp
1b613704b0 Sync to Wine-20041019:
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Fix various function prototypes.
Jeremy White <jwhite@codeweavers.com>
- Revise winmm/time.c to fix timer resolution at 1 ms. This then allows
a much more efficient implementation of timer events and timeGetTime,
and callers that used sub 10 ms resolution will now get correct
results.
Hans Leidekker <hans@it.vu.nl>
- Fix signed/unsigned comparison warnings.
Eric Pouech <pouech-eric@wanadoo.fr>
- bring the multimedia doc up-to-date
- moved the TODO from the doc into the code

svn path=/trunk/; revision=11349
2004-10-20 17:42:11 +00:00
Gé van Geldorp
c333fa4ed1 Sync to Wine-20041019:
Francois Gouget <fgouget@free.fr>
- Don't define COBJMACROS in objbase.h.
- Update the Wine sources accordingly.
Robert Shearman <rob@codeweavers.com>
- Don't define GWL_USERDATA, GWL_ID, GWL_HWNDPARENT, GWL_HINSTANCE and
GWL_WNDPROC when compiling the Wine source.
Mike McCormack <mike@codeweavers.com>
- Fix some -Wsigned-compare warnings.
Huw Davies <huw@codeweavers.com>
- Rewrite PathCreateFromUrl.
- Implement PathSearchAndQualify.
- Fix UrlUnescapeW.
- PathIsURL should return TRUE even if a scheme is unknown.
- UrlEscape has different rules depending on the protocol.
- Added a load of tests.
- ParseURL is now documented, so move it into shlwapi.h.
Bill Medland <billmedland@mercuryspeed.com>
- Fix SHDeleteKey so that it will handle deleting a key with more than
one subkey.  Also includes test.
Steven Edwards <steven_ed4153@yahoo.com>
- Move URL_SCHEME typedef to match PSDK.

svn path=/trunk/; revision=11348
2004-10-20 16:49:27 +00:00
Gé van Geldorp
4667670c9e Simplify wine/shlwapi.h
svn path=/trunk/; revision=11347
2004-10-20 16:20:22 +00:00
Gé van Geldorp
dc9f9834d9 Sync to Wine-20041019:
Mike McCormack <mike@codeweavers.com>
- Add stub implementation for CreateProxyFromTypeInfo.
Francois Gouget <fgouget@free.fr>
- Don't define COBJMACROS in objbase.h.
- Update the Wine sources accordingly.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Fix various function prototypes.
Hans Leidekker <hans@it.vu.nl>
- Fix signed/unsigned comparison warnings.

svn path=/trunk/; revision=11346
2004-10-20 09:38:15 +00:00
Gé van Geldorp
65e1445718 Hans Leidekker <hans@it.vu.nl>
- Fix signed/unsigned comparison warnings.

svn path=/trunk/; revision=11345
2004-10-20 09:32:11 +00:00
Gé van Geldorp
bf5400ab2a Sync to Wine-20041019:
Alexandre Julliard <julliard@winehq.org>
- Build the .h files from their idl source at compile time, and remove
them from CVS.
- Build idl files as part of the normal build process.
- Avoid depending on the non-standard IUnknown_METHODS macro in Wine
internal headers.
Francois Gouget <fgouget@free.fr>
- Don't define COBJMACROS in objbase.h.
- Update the Wine sources accordingly.
- Assorted spelling fixes.
Joris Huizer <jorishuizer@planet.nl>
- Ref count increment/decrement cleanup.
Robert Shearman <rob@codeweavers.com>
- Improve proxy destruction comment.
Mike McCormack <mike@codeweavers.com>
- CoSuspendClassObjects stub implementation.
Vincent Beron <vberon@mecano.gme.usherb.ca
- Fix some types problems.
Hans Leidekker <hans@it.vu.nl>
- Fix signed/unsigned comparison warnings.

svn path=/trunk/; revision=11344
2004-10-20 09:27:43 +00:00
Gé van Geldorp
b48649a01d Jacek Caban <jack@itma.pwr.wroc.pl>
- Added/updated Polish translations.
Robert Shearman <rob@codeweavers.com>
- GetWindowLong -> GetWindowLongPtr.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Fix various function prototypes.
- Better document some apis in commdlg and mscms.
Francois Gouget <fgouget@free.fr>
- Don't define COBJMACROS in objbase.h.
- Update the Wine sources accordingly.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Constify some statics and make them smaller.
Steven Edwards <steven_ed4153@yahoo.com>
- Remove unneeded include statements.
Dimitrie O. Paun <dpaun@rogers.com>
- Avoid W->A transitions.

svn path=/trunk/; revision=11343
2004-10-20 08:53:06 +00:00
Gé van Geldorp
695f33412e Sync to Wine-20041019:
Dmitry Timoshkov <dmitry@codeweavers.com>
- If an animation is already playing do not restart it.
- Remove WM_CLOSE handler, it leads to a memory corruption later on.
- Do not use GlobalFree for a memory returned by LoadResource.
Robert Shearman <rob@codeweavers.com>
- Implement SetPathWordBreakProc and MirrorIcon.
- Implement ImageList_SetColorTable.
- Implement WS_DISABLED style.
- Issue EN_CHANGE notification.
- Make the control look more like native by using the right font and
  spacing.
- Use TextOutW rather than DrawTextW as we don't use any features of
  DrawTextW.
- Fix caret size and position.
- Implement WM_CHAR and WM_SYSCHAR messages.
- Status update.
- Should create HOTKEY_INFO storage in WM_NCCREATE rather than in
  WM_CREATE so that we can also add the WS_EX_CLIENTEDGE style.
- Remove code that draws the client edge; it is already drawn by
  DefWindowProc.
- Document status of control against v6.0 of native version.
- Don't use TrackMouseEvents/WM_MOUSELEAVE API for handling the hot
  button; use plain mouse capture instead like native.
- Return only HTTRANSPARENT/HTCLIENT from WM_NCHITTEST and remove
  associated hacks of WM_SETCURSOR, WM_NCLBUTTONDOWN and
  WM_NCLBUTTONUP.
- Refactor state change code so that state changes don't happen as
  side effects from messages such as WM_NCCALCSIZE, instead only from
  user input messages like WM_MOUSEMOVE.
- Rebar completeness audit.
- TBN_DELETINGBUTTON sends the command ID, not the index.
- Fill in tbButton structure for TBN_DELETINGBUTTON notification.
- Document TBN_QUERY* sending indices.
- Fix some TRACEs
- More A->W conversions missed by previous patch.
- Fix off-by-one error in validating drag-n-drop from available
  buttons list box to actual buttons list box.
- Unicode flag should be based on the notification window.
- Use Unicode window messages.
- Determine whether to do label edit before sending NM_CLICK.
Francois Gouget <fgouget@free.fr>
- Don't define COBJMACROS in objbase.h.
- Update the Wine sources accordingly.
- Assorted spelling fixes.
Filip Navara <xnavara@volny.cz>
- Implement PSM_INDEXTOID, PSM_INDEXTOPAGE and PSM_PAGETOINDEX messages.
- Partially implement the PSH_WIZARDCONTEXTHELP and PSH_NOCONTEXTHELP
  styles.
- Add note about unimplemented TB_SAVERESTORE message.
- Fix obviously wrong condition in an "if" statement.
Dimitrie O. Paun <dpaun@rogers.com>
- We now have ICC_LINK_CLASS.
- Cleanup W->A transition.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- ImageList_Merge should not fail if indices are bad.
- Add tests for this case, a visible test mode and fix DrawIndirect test
under some native comctl32.dll's.
- Items are variable sized, use an accessor to get at them.
- Combine A/W calls together to remove duplication.
- Don't leak text when removing/changing items.
- Turn off hot tracking when we delete the last item.
- Use the 'delete 1 item' logic when deleting all items.
- Draw +/- correctly for large icon sizes.
- Item height/expand button width must be >= than imagelist size.
- Avoid a magic number, add FIXME for incorrect +/- drawing.
Michael Stefaniuc <mstefani@redhat.com>
- native ImageList_Remove dosn't spit out an error message when
  deleting an index out of range so don't do that either
- add 2 ImageList_Remove tests
Aric Stewart <aric@codeweavers.com>
- Check to make sure PropSheetInfo* is not null before dereferencing it
for some windows messages.
Vitaliy Margolen <wine-patch@kievinfo.com>
- Don't loose last band on insert.
Ge van Geldorp <gvg@reactos.com>
- Pass correct uiParam for SPI_GETNONCLIENTMETRICS.

svn path=/trunk/; revision=11342
2004-10-20 08:36:55 +00:00
Gé van Geldorp
177b871326 Vincent B�ron <vberon@mecano.gme.usherb.ca>
Fix various function prototypes.

svn path=/trunk/; revision=11341
2004-10-20 07:47:39 +00:00
James Tabor
2b473d593e Ported Wine CompareStringA.
svn path=/trunk/; revision=11340
2004-10-20 03:46:27 +00:00
Hartmut Birr
5b5e2d9b00 - Fixed the size calculation of the resource list in IopSetDeviceInstanceData.
svn path=/trunk/; revision=11339
2004-10-19 23:23:04 +00:00
Eric Kohl
91ff1098cb Cosmetical fixes.
svn path=/trunk/; revision=11338
2004-10-19 22:47:38 +00:00
Emanuele Aliberti
8bf1b284bf cvs-ignore compiled resources
svn path=/trunk/; revision=11337
2004-10-19 21:12:42 +00:00
Filip Navara
dc5c114cdd - Fix the values of KeepObject, DeallocateObject and DeallocateObjectKeepRegisters.
svn path=/trunk/; revision=11336
2004-10-19 20:36:52 +00:00
Filip Navara
0d7040d3bb - Successfully complete IRP_MN_START_DEVICE and IRP_MN_STOP_DEVICE so that the drivers lower in the device stack can work.
svn path=/trunk/; revision=11335
2004-10-19 19:39:23 +00:00
Filip Navara
953b49dd54 - Fix various bugs in IoGetDmaAdapter.
- Fill the IoStatus values in the Irp I/O status block in IopInitiatePnpIrp.

svn path=/trunk/; revision=11334
2004-10-19 19:37:45 +00:00
Eric Kohl
cbc7c9eac2 Install class installers.
svn path=/trunk/; revision=11333
2004-10-19 14:33:07 +00:00
Eric Kohl
fe3da89e8e Disable debug messages.
svn path=/trunk/; revision=11332
2004-10-19 14:32:13 +00:00
Eric Kohl
9058842f67 Implement
- SetupDiBuildClassInfoList(ExW)
 - SetupDiClassGuidsFromName(W/ExW),
 - SetupDiClassNameFromGuid(W/ExW)
 - SetupDiGetActualSectionToInstallW
 - SetupDiGetClassDescription(W/ExW)
 - SetupDiInstallClassW partially
 - SetupDiOpenClassRegKey(ExW)
 - SetupOpenMasterInf

Fix compiler warnings.

svn path=/trunk/; revision=11331
2004-10-19 11:19:16 +00:00
Eric Kohl
f8eb27af13 Implement
-  SetupDiBuildClassInfoList(ExW), SetupDiClassGuidsFromName(W/ExW),
 - SetupDiClassNameFromGuid(W/ExW)
 - SetupDiGetActualSectionToInstallW
 - SetupDiGetClassDescription(W/ExW)
 - SetupDiInstallClassW partially
 - SetupDiOpenClassRegKey(ExW)

svn path=/trunk/; revision=11330
2004-10-19 11:13:11 +00:00
Thomas Bluemel
2bcdc488b3 the last parameter of NtQueryInformationProcess() is optional, don't use it when not needed.
svn path=/trunk/; revision=11329
2004-10-19 10:27:11 +00:00
Gé van Geldorp
b35df7844e Rolf Kalbermatter <rolf.kalbermatter@citeng.com>
- Added SHFreeNameMappings implementation.
- Modify ANSI functions to allocate intermediate Unicode strings on the
heap instead of stack.
Mike McCormack <mike@codeweavers.com>
- Convert the shellmenu code to use unicode.

svn path=/trunk/; revision=11328
2004-10-19 10:17:53 +00:00
Gé van Geldorp
b373e014a9 Simplify wine/shellapi.h
svn path=/trunk/; revision=11327
2004-10-19 10:17:05 +00:00
Gé van Geldorp
9f29b6e41d Windows doesn't check uiParam for SPI_GETNONCLIENTMETRICS
svn path=/trunk/; revision=11326
2004-10-19 08:25:25 +00:00
Gé van Geldorp
5d5362aca5 Don't free subclass stack while it's still in use
svn path=/trunk/; revision=11325
2004-10-18 21:31:41 +00:00
Filip Navara
bd1f1924a0 - Change _NDIS_ define to NDIS_WRAPPER.
svn path=/trunk/; revision=11324
2004-10-18 21:08:20 +00:00
Filip Navara
83c1f21479 - Fix a typo.
svn path=/trunk/; revision=11323
2004-10-18 21:07:42 +00:00
Filip Navara
dbcfba9bdb - Fix calling convention of ExInterlockedPushEntrySList and ExInterlockedPopEntrySList.
svn path=/trunk/; revision=11322
2004-10-18 20:56:22 +00:00
Casper Hornstrup
9af4f499f3 2004-10-18 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/kernel32/makefile (TARGET_BUILDENV_TEST): Set to yes.
	* lib/kernel32/tests/Makefile: New target run.
	* lib/kernel32/tests/tests/file-1.c: Remove.
	* lib/kernel32/tests/tests/CreateFile.c: New file.
	* lib/kernel32/tests/stubs.tst: New file.
	* lib/gdiplus/tests/tests/test-1.c: Update.
	* lib/gdiplus/tests/stubs.tst: Update.
	* lib/gdiplus/tests/Makefile: Update.
	* lib/tools/helper.mk: Better support for TARGET_BUILDENV_TEST.
	* tools/regtests.c: Terminate process after running tests.
	* regtests/shared/regtests.c (PerformTest): Increase buffer sizes.
	* regtests/Makefile: Update.
	* regtests/kmregtests/*: Remove.
	* regtests/kmrtint/*: Remove.
	* regtests/regtests/*: Remove.
	* regtests/win32base/*: Remove.
	* subsys/win32k/tests/tests/eng-mem-1.c: Update.
	* subsys/win32k/tests/stubs.tst: New file.
	* drivers/net/tcpip/tests/Makefile: Update.
	* drivers/net/tcpip/makefile: Update.
	* drivers/net/tcpip/stubs.tst: New file.
	* drivers/net/tcpip/tests/Makefile: Update.

svn path=/trunk/; revision=11321
2004-10-18 19:11:09 +00:00
Gé van Geldorp
41fed98970 Sort by address to make searching easier
svn path=/trunk/; revision=11320
2004-10-17 21:25:43 +00:00
Richard Campbell
1dcf1a09de commented out an assert(0); that was causing crashes in windows.
svn path=/trunk/; revision=11319
2004-10-17 20:41:16 +00:00
Gé van Geldorp
9f4291ecfc Move resource constant to local header file
svn path=/trunk/; revision=11318
2004-10-17 18:51:09 +00:00
Hartmut Birr
f7f880f8e9 - Fixed the changing of the PGE bit in cr4.
- Check if the cpu supports global pages.

svn path=/trunk/; revision=11317
2004-10-17 17:28:45 +00:00
Hartmut Birr
53a23c65e8 - Used variables from the KPCR for the current irql, for dpc's, for time counters and for the idle thread.
svn path=/trunk/; revision=11316
2004-10-17 15:39:30 +00:00
Hartmut Birr
70919642d8 - Simplified the definition of KeGetCurrentKPCR for the UP target.
svn path=/trunk/; revision=11315
2004-10-17 13:26:48 +00:00
Filip Navara
108bfdf09f - Fix calling convention of ExInterlocked* functions.
svn path=/trunk/; revision=11314
2004-10-17 13:08:26 +00:00
Hartmut Birr
7090b2771a - Fixed the definition KPCR_SELF and KeGetCurrentKPCR.
svn path=/trunk/; revision=11313
2004-10-17 10:53:05 +00:00
Hartmut Birr
6fe0a87268 - Fixed the dependency check for ntoskrnl.
svn path=/trunk/; revision=11312
2004-10-17 10:43:57 +00:00
Filip Navara
fdfdfbe2d2 - Fix NdisMSynchronizeWithInterrupt.
svn path=/trunk/; revision=11310
2004-10-17 10:15:07 +00:00
Filip Navara
6815a62066 - Fix cut & paste mistake (s/NdisDprAcquireSpinLock/NdisDprReleaseSpinLock/).
- Fix values passed to NdisMRegisterInterrupt.

svn path=/trunk/; revision=11309
2004-10-17 10:15:02 +00:00
Gé van Geldorp
b91c380949 More shutdown messages
svn path=/trunk/; revision=11308
2004-10-17 09:36:08 +00:00
Alex Ionescu
020a7e0b2d Fixed definition of KPCR_TIB to match W32API/NT5 defintion. Fixed bug in Makefile (fixed by Filip)
svn path=/trunk/; revision=11307
2004-10-17 05:20:29 +00:00
Alex Ionescu
a5262fdf54 Fix accidental change.
svn path=/trunk/; revision=11306
2004-10-17 03:55:05 +00:00
Alex Ionescu
b3f049be4f KeStackAttach: Acquire lock before getting thread
svn path=/trunk/; revision=11305
2004-10-17 03:43:26 +00:00
Filip Navara
1f59f1138b - Fix the CFLAGS handling to avoid duplicating flags on command line.
svn path=/trunk/; revision=11304
2004-10-17 02:51:39 +00:00
Filip Navara
33a12b714a - Fix IRQL restrictions.
svn path=/trunk/; revision=11303
2004-10-17 01:59:36 +00:00
Filip Navara
921ff5c94d - Add comment to NdisMRegisterIoPortRange about the meaning of InitialPort parameter and pass the bus number to HalTranslateBusAddress.
svn path=/trunk/; revision=11302
2004-10-17 01:59:18 +00:00
Filip Navara
d788739c0e - Compile with W32API headers.
- Add multicast support.
- Add media state detection support.
- Protect the adapter context with spinlock and move code talking to card to inside NdisMSynchronizeWithInterrupt calls where necessary.

svn path=/trunk/; revision=11301
2004-10-17 01:55:54 +00:00
Filip Navara
3d1e209ba7 - Cleanup handling of NDISxx definitions.
- Define NDIS_MINIPORT_MAJOR_VERSION, NDIS_MINIPORT_MINOR_VERSION, NDIS_PROTOCOL_MAJOR_VERSION and NDIS_PROTOCOL_MINOR_VERSION when necessary.
- Fix definition of NdisMIndicateStatus macro.
- Add prototypes for NdisMSetTimer, NdisMInitializeTimer, NdisMSetPeriodicTimer, NdisMCancelTimer.

svn path=/trunk/; revision=11300
2004-10-17 01:55:33 +00:00
Gé van Geldorp
712015d695 Centralize definition of version resource
svn path=/trunk/; revision=11299
2004-10-16 22:30:19 +00:00
Gé van Geldorp
600222621e Undo change to DBG
svn path=/trunk/; revision=11298
2004-10-16 20:29:32 +00:00
Gé van Geldorp
4221b60000 - Centralize definition of version resource
- Give DLLs a high version number, so installers won't overwrite them

svn path=/trunk/; revision=11297
2004-10-16 20:27:43 +00:00
Alex Ionescu
f5d1a75a57 Fix Typo
svn path=/trunk/; revision=11296
2004-10-16 18:56:54 +00:00
Alex Ionescu
10d4df0a8b Fixed ExGetCurrentProcessorUsage (thanks to Mike)
svn path=/trunk/; revision=11295
2004-10-16 18:45:03 +00:00
Gé van Geldorp
597aeb8577 Fix legacy detection of AGP cards
svn path=/trunk/; revision=11294
2004-10-15 22:48:43 +00:00
Thomas Bluemel
8d81aae9b5 some german translations and fixes by Michael Wirth
svn path=/trunk/; revision=11293
2004-10-15 14:07:42 +00:00
Filip Navara
ca8df5d139 - Update prototype of NdisMAllocateMapRegisters.
- Fix declaration of NDIS_MINIPORT_CHARACTERISTICS, NDIS_PROTOCOL_CHARACTERISTICS and NDIS_MAC_CHARACTERISTICS.

svn path=/trunk/; revision=11292
2004-10-14 18:46:57 +00:00
Eric Kohl
23d3eee3ec Silence debug message.
svn path=/trunk/; revision=11291
2004-10-14 11:49:55 +00:00
Alex Ionescu
44c0fd942d Implemented KeSetEventBoostPriority, KeFindConfigurationEntry, KeDeregisterBugCheckCallback, KeIsAttachedProcess, KeQueryActiveProcessors, KeSetDmaIoCoherency, KeSetTimeIncrement, KeQueryRuntimeThread, KeUpdateRunTime, KeUpdateSystemTime. Made KeRegisterBugCheckCallback check if Callback isn't already registered.
svn path=/trunk/; revision=11290
2004-10-13 22:27:03 +00:00
Gé van Geldorp
196a075d05 Pass win.ini as filename to *PrivateProfile* functions instead of NULL
svn path=/trunk/; revision=11289
2004-10-13 19:52:09 +00:00
Filip Navara
2cc81267e3 - Handle all required OID requests.
- Fix handling of OID_GEN_MAXIMUM_FRAME_SIZE and OID_GEN_DRIVER_VERSION.
- Generate error statistics.

svn path=/trunk/; revision=11288
2004-10-13 18:50:09 +00:00
Gé van Geldorp
e2e8956ca7 Create "Program Files" directory and store its location in the registry.
Not sure if this is the correct place to implement it, feel free to move
around.

svn path=/trunk/; revision=11287
2004-10-13 18:14:07 +00:00
Eric Kohl
218066682a Use the W32API headers.
Clean-up the indentation.

svn path=/trunk/; revision=11286
2004-10-13 10:17:41 +00:00
Alex Ionescu
b0f334f36a Sorry, forgot to add this.
svn path=/trunk/; revision=11285
2004-10-13 02:58:59 +00:00
Alex Ionescu
c30ca53066 Implemented KeAreApcsDisabled, KeFlushEntireTb, KeIsExecutingDpc, KeSetKernelStackSwapEnable, KeQueryPriorityThread, KeRevertToUserAffinityThread, KeSetIdealProcessorThread, KeSetSystemAffinityThread, KeTerminateThread, KeStackAttachProcess, KeUnstackDetachProcess
svn path=/trunk/; revision=11284
2004-10-13 01:42:14 +00:00
Gé van Geldorp
83a232d3a2 LastError needs to be set always if disposition is CREATE_ALWAYS or OPEN_ALWAYS
svn path=/trunk/; revision=11283
2004-10-12 22:04:51 +00:00
Filip Navara
56531ca70d - Fix logic error in PsDeleteCidHandle.
svn path=/trunk/; revision=11282
2004-10-12 20:00:40 +00:00
Eric Kohl
9b57fe0ffa Add default hardware profile settings.
svn path=/trunk/; revision=11281
2004-10-12 12:00:29 +00:00
Eric Kohl
58ae572645 Implement GetCurrentHwProfileA/W.
svn path=/trunk/; revision=11280
2004-10-12 11:56:04 +00:00
Alex Ionescu
973021673c Implemented ExVerifySuite, ExInterlockedFlushSList, ExSystemExceptionFilter, ExRaiseException, ExGetCurrentProcessorCpuUsage, ExGetCurrentProcessorCounts
svn path=/trunk/; revision=11279
2004-10-12 00:56:46 +00:00
Alex Ionescu
9623e3cbe8 Added complete defintion of FX_SAVE_AREA and moved it to fpu.h instead of ps.h.
svn path=/trunk/; revision=11278
2004-10-12 00:33:30 +00:00
Thomas Bluemel
fb49f8ddd7 removed obsolete typecasts
svn path=/trunk/; revision=11277
2004-10-11 21:27:22 +00:00
Thomas Bluemel
fe8243b96a use INT_PTR as return type for dialog callbacks as documented in favor of portability
svn path=/trunk/; revision=11276
2004-10-11 21:08:06 +00:00
Eric Kohl
c104ab305d Store device instance data in the registry.
svn path=/trunk/; revision=11275
2004-10-11 19:07:25 +00:00
Filip Navara
4107035c78 - Change Start value for PCnet to demand load. (Now really!)
svn path=/trunk/; revision=11274
2004-10-11 18:42:49 +00:00
Filip Navara
2683ce6f26 - Allow querying information for root enumerated devices using IoGetDeviceProperty.
svn path=/trunk/; revision=11273
2004-10-11 18:36:20 +00:00
Filip Navara
df95ba950b - Add root bus enumeration registry for NE2000 driver.
- Change Start value for PCnet to demand load.

svn path=/trunk/; revision=11272
2004-10-11 18:36:17 +00:00
Filip Navara
095f953de7 - Return correct error value from WSPSocket.
svn path=/trunk/; revision=11271
2004-10-11 17:26:50 +00:00
Filip Navara
f321359e16 - Fix receive to work on VMware emulated adapters. We need to set busmaster bit on PCI command register in order to get packets. Otherwise we just get "missing frame" error and the ring buffer remains empty.
- Indicate receive completition.
- Implement basic packet transmitting.
- Don't read slot number from registry and report itself as NDIS 5.0 miniport.
- Fix nasty bugs in halt code path (incorrect assignment and wrong parameters to NdisMFreeSharedMemory calls).

svn path=/trunk/; revision=11270
2004-10-11 15:03:13 +00:00
Eric Kohl
2dea5c279b Minor simplifications.
svn path=/trunk/; revision=11269
2004-10-11 12:37:04 +00:00
Steven Edwards
e9542274b4 Make regexpl build again. (I know I really should fix this to be unicode)
BTW this is a kick ass tool that does work over the network. I just tested it
editing the registry on the wifes box.

svn path=/trunk/; revision=11268
2004-10-11 01:24:22 +00:00
Steven Edwards
ee08f03b99 Make regexpl build again. This has been bitrotting for a while.
svn path=/trunk/; revision=11267
2004-10-11 01:20:13 +00:00
Filip Navara
0f86ec1497 Don't use NdisTransferData if the whole packet is contained in the header+lookup buffer.
svn path=/trunk/; revision=11266
2004-10-10 22:38:22 +00:00
Filip Navara
02b3928237 Fix printing of packet contents to really print the contents instead of destroying them.
svn path=/trunk/; revision=11265
2004-10-10 21:06:13 +00:00
Filip Navara
f39899be58 Update registry entries for NE2000 driver to match the new layout.
svn path=/trunk/; revision=11264
2004-10-10 21:03:23 +00:00
Filip Navara
87079b419a Ignore registry reading errors while building services database.
svn path=/trunk/; revision=11263
2004-10-10 21:00:59 +00:00
Eric Kohl
e8fa5a048e Remove obsolete comments.
svn path=/trunk/; revision=11262
2004-10-10 18:28:05 +00:00
Eric Kohl
29240c3d8b Silence a debug message.
svn path=/trunk/; revision=11261
2004-10-10 18:26:33 +00:00
Eric Kohl
50fcbd0ea9 NtReadFile(): Take FILE_USE_FILE_POINTER_POSITION into account.
svn path=/trunk/; revision=11260
2004-10-10 18:23:09 +00:00
Filip Navara
1d16f49bbf - Fix debug message.
svn path=/trunk/; revision=11259
2004-10-10 17:23:13 +00:00
Filip Navara
33b2ec789a - Fix the NdisMEthIndicateReceive macro and ETH_RCV_INDICATE_HANDLER prototype to be binary compatible with Windows (R).
- Modify NDIS accordingly.

svn path=/trunk/; revision=11258
2004-10-10 17:16:42 +00:00
Gregor Anich
1ad4234f07 Fixed compiler warning ('RegistryPropertyName' might be used uninitialized in this function)
svn path=/trunk/; revision=11257
2004-10-10 15:51:52 +00:00
Eric Kohl
cd9eae5e7a NtDeviceIoControlFile() and NtFsControlFile():
Check granted access rights against access rights from IoControlCode.

svn path=/trunk/; revision=11256
2004-10-10 14:01:50 +00:00
Art Yerkes
fc10d9f802 Change flags of some network-related registry values. They were wrong.
svn path=/trunk/; revision=11255
2004-10-10 10:46:02 +00:00
Eric Kohl
009d1a6a71 Implement RegQueryMultipleValuesA().
svn path=/trunk/; revision=11254
2004-10-10 10:43:23 +00:00
Hartmut Birr
6fada73411 - Fixed some size calculations according to the last changes in cm/ntfunc.c.
svn path=/trunk/; revision=11253
2004-10-10 10:10:52 +00:00
Gé van Geldorp
7600e9b587 - Implement GetPrivateProfileSectionA/W()
- Handle value-less keys
- Handle comments

svn path=/trunk/; revision=11252
2004-10-09 18:46:41 +00:00
Filip Navara
0a6aa71bb4 - Attach NDIS miniport devices to the device stack.
- Gain the bus type and slot number using IoGetDeviceProperty from the PnP stack.
- Read the registry values for NDIS miniports from the correct place. See www.plasmic.com/~vizzini/ntnetarch.html for details.
- Update NdisReadPciSlotInformation/NdisWritePciSlotInformation to use the adapter slot information.

svn path=/trunk/; revision=11251
2004-10-09 18:17:08 +00:00
Filip Navara
1e6e22e32e - Implement IoOpenDeviceRegistryKey for PLUGPLAY_REGKEY_DRIVER case.
- Implement IoGetDeviceProperty for DevicePropertyClassName, DevicePropertyClassGuid, DevicePropertyDriverKeyName, DevicePropertyManufacturer, DevicePropertyFriendlyName cases.

svn path=/trunk/; revision=11250
2004-10-09 18:16:58 +00:00
Filip Navara
dd7fed7f38 - Delete all build files on "make clean".
svn path=/trunk/; revision=11249
2004-10-09 17:14:11 +00:00
Martin Fuchs
fbd3aee44b correct array size
svn path=/trunk/; revision=11248
2004-10-09 14:07:13 +00:00
Gé van Geldorp
85ec38bb53 Pass requested base address to MmAllocateSection()
svn path=/trunk/; revision=11247
2004-10-09 12:17:54 +00:00
Martin Fuchs
05cc213374 add splitpath.c
svn path=/trunk/; revision=11246
2004-10-09 11:42:39 +00:00
Martin Fuchs
7715f83501 unixcalls.c
svn path=/trunk/; revision=11245
2004-10-09 11:40:44 +00:00
Martin Fuchs
08faa2ac23 Update French translation.
svn path=/trunk/; revision=11244
2004-10-09 11:40:08 +00:00
Thomas Bluemel
6712cd665f Create named pipes with security information if argument is present
svn path=/trunk/; revision=11243
2004-10-08 23:24:01 +00:00
Thomas Bluemel
d0953a3d80 Create mail slots with security information if argument is present
svn path=/trunk/; revision=11242
2004-10-08 23:20:57 +00:00
Thomas Bluemel
a30f6d7c94 little simplification
svn path=/trunk/; revision=11241
2004-10-08 23:12:29 +00:00
Thomas Bluemel
6961ff9728 atomically increment the pipe id to be thread-safe. Thanks to Mark Grosberg for reporting it.
svn path=/trunk/; revision=11240
2004-10-08 21:48:46 +00:00
Thomas Bluemel
d02f400b31 little simplification
svn path=/trunk/; revision=11239
2004-10-08 21:37:16 +00:00
Thomas Bluemel
82a44258db fixed return value of FindCloseChangeNotification()
svn path=/trunk/; revision=11238
2004-10-08 21:29:40 +00:00
Thomas Bluemel
db533baf58 implemented GetNamedPipeHandleStateA() and a few fixes for GetNamedPipeHandleStateW()
svn path=/trunk/; revision=11237
2004-10-08 21:25:18 +00:00
Filip Navara
4664a1f6ed - Fix one error case to prevent crashes when registry enumeration fails.
svn path=/trunk/; revision=11236
2004-10-08 21:20:35 +00:00
Filip Navara
1e09759df9 Correctly handle small buffers in NtEnumerate[Value]Key and NtQuery[Value]Key registry routines:
- If buffer is too small to contain even fixed size information for specified type return STATUS_BUFFER_TOO_SMALL.
- If buffer is large enough to contain some information, but not all information requested, fill as much as we can and return STATUS_BUFFER_OVERFLOW.
- If we fill the entire buffer return STATUS_SUCCESS.

svn path=/trunk/; revision=11235
2004-10-08 21:19:12 +00:00
Gé van Geldorp
ef253bf9d3 Add SYSTEM_REGISTRY_QUOTA_INFORMATION
svn path=/trunk/; revision=11234
2004-10-08 21:14:21 +00:00
Martin Fuchs
b0468e7ffa call vswprintf@msvcrt in Wine's UNICODE version
svn path=/trunk/; revision=11233
2004-10-08 20:20:15 +00:00
Gé van Geldorp
8d52d923ed - Return some values for NtQuerySystemInformation(SystemRegistryQuotaInformation)
- Print messages for not implemented system information classes
- Silence some debug messages

svn path=/trunk/; revision=11232
2004-10-08 20:02:30 +00:00
Martin Fuchs
d5c0bee9ae resource files
svn path=/trunk/; revision=11231
2004-10-08 19:30:45 +00:00
Martin Fuchs
41c01ba24e tchar.h
svn path=/trunk/; revision=11230
2004-10-08 19:30:30 +00:00
Martin Fuchs
8fa949ca79 call Unix functions in separate module read_unix.c
svn path=/trunk/; revision=11229
2004-10-08 18:19:53 +00:00
Eric Kohl
4d19c5066a - User resource strings instead of constant strings for folder names.
- Add english and german resource strings.

svn path=/trunk/; revision=11228
2004-10-08 11:52:30 +00:00
Martin Fuchs
475d618db9 UNICODE for WINE version
svn path=/trunk/; revision=11227
2004-10-08 09:53:37 +00:00
Martin Fuchs
26a5b94393 german resource strings
svn path=/trunk/; revision=11226
2004-10-08 08:35:02 +00:00
Martin Fuchs
4e85d9668a convert string constants into string resources and character arrays
svn path=/trunk/; revision=11225
2004-10-08 08:18:42 +00:00
Steven Edwards
9117b8fb51 Remove the GNU from the name as its not a GNU program.
svn path=/trunk/; revision=11224
2004-10-08 04:09:51 +00:00
Steven Edwards
ba571f2170 Sync notepad with Winehq. It looks more like Windows notepad.
svn path=/trunk/; revision=11223
2004-10-08 04:05:11 +00:00
Art Yerkes
068cb50dec Added makefile dependency in both dirs, and proper relinking rule for
oskittcp and ip.

svn path=/trunk/; revision=11222
2004-10-08 01:28:32 +00:00
Gé van Geldorp
f9bf3651a1 Remove forgotten breakpoint
svn path=/trunk/; revision=11221
2004-10-07 21:05:36 +00:00
Gé van Geldorp
8438655244 Fix GetFullPathNameA/W() return value
svn path=/trunk/; revision=11220
2004-10-07 20:39:04 +00:00
Gé van Geldorp
ed6cee0a13 Undo last change, since GetFullPathName is supposed to return the length
including terminating nul char when the buffer is too small

svn path=/trunk/; revision=11219
2004-10-07 19:24:26 +00:00
Gé van Geldorp
e961e71fec Don't rely on UNICODE being #define'ed
svn path=/trunk/; revision=11218
2004-10-07 19:20:57 +00:00
Gé van Geldorp
1541b702fa Don't corrupt the registry when deleting a REG_DWORD value
svn path=/trunk/; revision=11217
2004-10-07 18:00:10 +00:00
Art Yerkes
5be7877f22 some formatting and prototype changes
memtrack on
moved timer dpc out of libip
added work item for ip timer callback to work at passive level

svn path=/trunk/; revision=11216
2004-10-07 15:04:45 +00:00
Gé van Geldorp
7e61a0ac6d Francois Gouget <fgouget@free.fr>
-Don't define COBJMACROS in objbase.h.
Update the Wine sources accordingly.

svn path=/trunk/; revision=11215
2004-10-07 09:13:56 +00:00
Martin Fuchs
82ccd0b94c use TREE_LINE_DX for better look of the tree with big fonts
svn path=/trunk/; revision=11214
2004-10-07 08:43:34 +00:00
Steven Edwards
42906c61fc Allow NtGdiCreateScaleableFontResource to keep going.
(This allows OpenOffice 1.1.1 to load)

svn path=/trunk/; revision=11213
2004-10-07 05:26:54 +00:00
Art Yerkes
7c750ecdd6 Sorry jimtabor and rcampbell, it turns out that ip.a was not getting cleaned
and you guys were using an old one.  sedwards helped me figure that out.
I've been cleaning these dirs explicitly since i'm working in them.

This should fix the clean for those.

svn path=/trunk/; revision=11212
2004-10-07 04:47:42 +00:00
Gé van Geldorp
d24addb280 GetFullPathName returns length without nul byte
svn path=/trunk/; revision=11211
2004-10-06 23:46:09 +00:00
Martin Fuchs
85f0c7023d update item height after changing the font
svn path=/trunk/; revision=11210
2004-10-06 09:08:50 +00:00
Martin Fuchs
1011770d88 ID_FILE_MOVE resources
svn path=/trunk/; revision=11209
2004-10-06 09:08:16 +00:00
Gé van Geldorp
1eb248c43e Rolf Kalbermatter <rolf.kalbermatter@citeng.com>
- Fix bug found by Piotr Caban, where our function tried to delete a
directory eventhough the user canceled the operation.

svn path=/trunk/; revision=11208
2004-10-06 07:29:58 +00:00
Art Yerkes
4368f11574 More stuff moved out of ip lib.
svn path=/trunk/; revision=11207
2004-10-06 04:40:34 +00:00
Gé van Geldorp
91447e78e2 Do some simple error checking on .cur and .ico file structure
svn path=/trunk/; revision=11206
2004-10-05 22:08:56 +00:00
Gé van Geldorp
cdefabd236 Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.

svn path=/trunk/; revision=11205
2004-10-05 20:58:38 +00:00
Hartmut Birr
fc5e4daca1 - Bugcheck on a page fault, if the reason was code executing in a non executable area (only available on a AMD64).
svn path=/trunk/; revision=11204
2004-10-05 19:11:17 +00:00
Hartmut Birr
fa64b48be5 - Changed some functions from Nt to Zw in RtlFormatCurrentUserKeyPath to bypass the buffer checks.
svn path=/trunk/; revision=11203
2004-10-05 19:04:09 +00:00
Hartmut Birr
3fdd7a717c - Removed some hard coded values, which depend on a kernel base of 0xc0000000.
svn path=/trunk/; revision=11202
2004-10-05 18:53:28 +00:00
Gregor Anich
306d451c3b Mesa version 6.2 import (also removed _MSC_VER define for building with mingw) - look at http://www.mesa3d.org/ for changelogs.
svn path=/trunk/; revision=11201
2004-10-05 14:19:13 +00:00
Steven Edwards
c383ed94fd Silence a few warnings and bring the source (mostly) back in line
with the source drop from embedded.cl

svn path=/trunk/; revision=11200
2004-10-05 13:57:29 +00:00
Eric Kohl
e48441fd2e Remove outdated profile path postfix.
svn path=/trunk/; revision=11199
2004-10-05 13:39:42 +00:00
Steven Edwards
528acaf7b3 Added a simple embedded GPL dhcp server for ReactOS by
Carlos Manuel Duclos Vergara

TODO:
Make it a real Window Service
Make it use the registry rather than dhcpd.conf
.......

svn path=/trunk/; revision=11198
2004-10-05 13:09:46 +00:00
Eric Kohl
e345820c8e Remove fixed heap base address (HEAP_BASE) to enable bottom-up heap allocation.
svn path=/trunk/; revision=11197
2004-10-05 10:40:13 +00:00
Gé van Geldorp
baf11aeb1c Recognize our CD-Rom drives
svn path=/trunk/; revision=11196
2004-10-05 07:51:11 +00:00
Gé van Geldorp
7f50dbe3fe Alexandre Julliard <julliard@winehq.org>
- Fixed typo in ProgramsW.
- Changed the case of windows and system directories to match the
  directories we create by default.
- Avoid depending on the non-standard IUnknown_METHODS macro in Wine
  internal headers.

svn path=/trunk/; revision=11195
2004-10-05 07:43:19 +00:00
Alex Ionescu
dc70244c68 Un-hardcoded the 0xC0000000 value, and stuck the define in one single place both for ASM and C code. This define is 0x80000000 by default, but automatically sets itself to 0xC0000000 if 3GB is set to 1 in reactos/config. This option is turned on by default for now, because the Default heap is at 0xA0000000, which doesn't work on a non 3GB system. Lower values seem to crash Win32K but I fill figure out a solution.
svn path=/trunk/; revision=11193
2004-10-04 21:38:49 +00:00
Casper Hornstrup
8646668c58 2004-10-04 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/helper.mk: Support for kernel TARGET_TYPE.
	* ntoskrnl/Makefile: Simplified makefile.

svn path=/trunk/; revision=11192
2004-10-04 20:04:49 +00:00
Gé van Geldorp
841c394e6f Piotr Caban <pio13@poczta.onet.pl>
- Added Polish translation.

svn path=/trunk/; revision=11191
2004-10-04 19:44:11 +00:00
Gé van Geldorp
aec725dce4 Reapply winehq change:
Robert Shearman <rob@codeweavers.com>
- Simplify getting custom icons for a folder by utilising the new
  SHELL32_GetCustomFolderAttribute function.
- Add support for custom shell folders, such as the History folder.
- Always try to initialize folder using IPersistFolder3 interface and
  then fall back on IPersistFolder if not supported.
Ge van Geldorp <gvg@reactos.com>
- Can't pass NULL as default value to GetPrivateProfileString.

svn path=/trunk/; revision=11190
2004-10-04 19:41:31 +00:00
Casper Hornstrup
67a41ff238 2004-10-04 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/helper.mk: Clean autogenerated files.
	* tools/regtests.c: Remove newlines.

svn path=/trunk/; revision=11189
2004-10-04 19:41:28 +00:00
Jens Collin
f539cfcea7 return hardcoded value (1) for SM_CMONITORS.
svn path=/trunk/; revision=11188
2004-10-04 19:23:31 +00:00
Gé van Geldorp
aa496615df Use GetStringTypeW() for implementation of IsCharAlphaNumericW(),
IsCharAlphaW(), IsCharLowerW() and IsCharUpperW()

svn path=/trunk/; revision=11187
2004-10-04 19:22:16 +00:00
Jens Collin
7e15de6d4a defined SM_CMONITORS (80)
svn path=/trunk/; revision=11186
2004-10-04 19:22:02 +00:00
Gé van Geldorp
1736e3772b Implement GetStringTypeA/W() and GetStringTypeExA/W()
svn path=/trunk/; revision=11185
2004-10-04 19:17:58 +00:00
Art Yerkes
2638336b0e Fixed IPStartup prototype and moved DisplayIPPacket out of ifdef.
svn path=/trunk/; revision=11184
2004-10-04 18:32:30 +00:00
Art Yerkes
706ff78e48 Removed unneeded DriverObject parameter to IPStartup.
svn path=/trunk/; revision=11183
2004-10-04 18:31:40 +00:00
Hartmut Birr
49871ae71b - Fixed the setting of the page protection for ntoskrnl.
The image is loaded without the size of the bss section.
  Pages after the bss section may not be changed.

svn path=/trunk/; revision=11182
2004-10-04 17:27:13 +00:00
Martin Fuchs
a573c6ea80 sync with WINE source
svn path=/trunk/; revision=11181
2004-10-04 17:13:03 +00:00
Casper Hornstrup
8ec117a236 Revert:
2004-10-02  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* ntoskrnl/Makefile: Fix dependencies when PCH is enabled.

2004-10-02  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* tools/helper.mk: Support for kernel TARGET_TYPE.
	* ntoskrnl/Makefile: Simplified makefile.

svn path=/trunk/; revision=11180
2004-10-04 10:16:59 +00:00
Martin Fuchs
83de11e97e merged corrected version of the Wine commit http://cvs.winehq.org/patch.py?id=13936:
- added choosing fonts
- added file moving

svn path=/trunk/; revision=11179
2004-10-04 09:31:10 +00:00
Art Yerkes
184c8d80f1 First shot at ip lib test app.
svn path=/trunk/; revision=11178
2004-10-04 04:26:00 +00:00
Alex Ionescu
4e21459b33 DBG should be 0 by default. Also, DBG = 1 seems to break ROS (it hangs before ntoskrnl is even loaded.)
svn path=/trunk/; revision=11177
2004-10-04 03:19:07 +00:00
Art Yerkes
3b2388081c Added new targets. ip and oskittcp should now clean with the rest of the
tree.

svn path=/trunk/; revision=11176
2004-10-03 22:55:45 +00:00
Art Yerkes
8eb5ca6ffa Final propogation of TDI_CONNECTION_INFORMATION/TRANSPORT_ADDRESS changes.
svn path=/trunk/; revision=11175
2004-10-03 21:44:43 +00:00
Art Yerkes
bab3b21d32 Propogating TDI address changes.
svn path=/trunk/; revision=11174
2004-10-03 21:16:31 +00:00
Gé van Geldorp
7eb30acddb Rollback last change since it was incorrect.
See http://www.reactos.com/bugzilla/show_bug.cgi?id=36

svn path=/trunk/; revision=11173
2004-10-03 21:03:06 +00:00
Art Yerkes
fc4b179d93 New file buffer.c which contains NDIS_BUFFER and NDIS_PACKET routines.
svn path=/trunk/; revision=11172
2004-10-03 20:39:19 +00:00
Art Yerkes
5394560307 Fixed UDP protocol.
Leaned interface between tcpip and ip lib to not include ndis buffers and
such, as well as datagram request structs.  This both eliminates code
setting up these structs as well as making use of ip lib easier from userland.
Moved ndis buffer routines to tcpip/buffer.c.  They are a bit separate from
the neutral routines functions.

svn path=/trunk/; revision=11171
2004-10-03 20:38:48 +00:00
Art Yerkes
a52618ca99 Fixed use of TA_ADDRESS in favor of TRANSPORT_ADDRESS. This still confuses
me.
write, read: Handle errors correctly.

svn path=/trunk/; revision=11170
2004-10-03 20:36:46 +00:00
Gé van Geldorp
81e60d8ded Move final user stack cleanup to kernelmode
svn path=/trunk/; revision=11169
2004-10-03 18:53:05 +00:00
Gé van Geldorp
9584768301 CVS maintenance
svn path=/trunk/; revision=11168
2004-10-03 18:46:07 +00:00
Gé van Geldorp
91083c72fd Remove faulty debug statement
svn path=/trunk/; revision=11167
2004-10-03 18:22:33 +00:00
Thomas Bluemel
737ea5b737 don't let dlltool mess up c++ mangled exports for crtdll and msvcrt
svn path=/trunk/; revision=11166
2004-10-03 14:24:43 +00:00
Thomas Bluemel
c0f9c7505c fixed GetHandleInformation(), SetHandleInformation() and minor fixes to CloseHandle() and DuplicateHandle()
svn path=/trunk/; revision=11165
2004-10-03 10:05:56 +00:00
Eric Kohl
d8ea61531d Update a new users private shell folder paths when a new user profile is created.
svn path=/trunk/; revision=11164
2004-10-03 09:27:22 +00:00
Alex Ionescu
772a37758e Sorry, forgot these updates for WIN32K to build with new KPCR.
svn path=/trunk/; revision=11163
2004-10-03 03:07:18 +00:00
Alex Ionescu
4d9e3a1cae Corrected KPCR structure, removed IKPCR, set up CurrentThread in proper structure (implemented KPRCB), added some types needed by KPRCB.
svn path=/trunk/; revision=11162
2004-10-03 03:03:54 +00:00
Thomas Bluemel
b26683b0b3 fixed ProcessIdToSessionId()
svn path=/trunk/; revision=11161
2004-10-02 21:14:08 +00:00
Thomas Bluemel
3f75c451d1 don't duplicate tons of code for error handling
svn path=/trunk/; revision=11160
2004-10-02 20:56:54 +00:00
Thomas Bluemel
86b4ec40d4 INF Helper tool for installation of .inf files, by Michael Biggins
svn path=/trunk/; revision=11159
2004-10-02 18:33:12 +00:00
Filip Navara
a73f47bd18 Allocate memory for the handle table from paged pool!
svn path=/trunk/; revision=11158
2004-10-02 16:48:12 +00:00
Filip Navara
8e9f6624d1 Change the ASSERT_IRQL in ExAllocatePagedPoolWithTag from PASSIVE_LEVEL to APC_LEVEL.
svn path=/trunk/; revision=11157
2004-10-02 16:48:05 +00:00
Thomas Bluemel
190c655d90 added stubs for winfax.dll
svn path=/trunk/; revision=11156
2004-10-02 16:43:05 +00:00
Casper Hornstrup
05ee9bbcc3 2004-10-02 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/Makefile: Fix dependencies when PCH is enabled.

svn path=/trunk/; revision=11155
2004-10-02 14:38:37 +00:00
Casper Hornstrup
cf4df378aa 2004-10-02 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/helper.mk: Support for kernel TARGET_TYPE.
	* ntoskrnl/Makefile: Simplified makefile.

svn path=/trunk/; revision=11154
2004-10-02 14:03:51 +00:00
Eric Kohl
b8e59707a9 Add common user shell folder key.
svn path=/trunk/; revision=11153
2004-10-02 12:35:12 +00:00
Eric Kohl
d2e9fecf72 Remove default users shell folder paths.
svn path=/trunk/; revision=11152
2004-10-02 12:33:20 +00:00
Eric Kohl
19c3f3e06e Improve creation of shell folder settings.
Todo:
 - Store folder names in resource strings.
 - Update current users shell folder paths when a new profile is created.

svn path=/trunk/; revision=11151
2004-10-02 12:31:28 +00:00
Hartmut Birr
acb1dd91c6 - Made cmt unicode compatible.
- Enabled time counting.
- Improved the waiting of key input events.

svn path=/trunk/; revision=11150
2004-10-02 10:26:48 +00:00
Hartmut Birr
d2a8a1bc51 - Terminate the wait thread if the handle was from a console.
svn path=/trunk/; revision=11149
2004-10-02 10:19:38 +00:00
Hartmut Birr
c8641fc2a3 - Updated the workingset size in the rmap functions.
svn path=/trunk/; revision=11148
2004-10-02 10:16:10 +00:00
Casper Hornstrup
9495493fde 2004-10-02 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/gdiplus/tests/.cvsignore: Ignore _hooks.c and _stubs.S.
	* lib/gdiplus/tests/Makefile (TARGET_OBJECTS): Remove passthrough.o and
	add _hooks.o and _stubs.o.
	* lib/gdiplus/tests/tests/test-1.c: Test API hooking.
	* regtests/shared/regtests.h: Add support for API hooking.
	* tools/helper.mk: Generate stubs.
	* tools/regtests.c: Add support for generating stubs and hooks.
	* lib/gdiplus/tests/passthrough.c: Remove.
	* lib/gdiplus/tests/stubs.tst: New file.

svn path=/trunk/; revision=11147
2004-10-02 08:44:54 +00:00
Hartmut Birr
d12bb0393c - Fixed the definition of SNMP_FUNC_TYPE.
svn path=/trunk/; revision=11146
2004-10-02 08:28:34 +00:00
Art Yerkes
0b03f1a2a9 Sorry i didn't have all the assertions correct in ntoskrnl/mm/pool.c
Now i've moved them to npool.c and ppool.c, where they are shorter.

svn path=/trunk/; revision=11145
2004-10-01 20:51:29 +00:00
Gé van Geldorp
adeb131ada Don't use more than a single page for a TEB (forgotten file)
svn path=/trunk/; revision=11144
2004-10-01 20:29:58 +00:00
Gé van Geldorp
228cddee4a Don't use more than a single page for a TEB
svn path=/trunk/; revision=11143
2004-10-01 20:26:05 +00:00
Hartmut Birr
f6fb22a9ef - Rewrote parts of the Process & Thread time count functions.
svn path=/trunk/; revision=11142
2004-10-01 20:09:57 +00:00
Gé van Geldorp
96bb83f2a9 Handle mapping a view of a section at non-zero file offset
svn path=/trunk/; revision=11141
2004-10-01 20:06:43 +00:00
Art Yerkes
a07571a47c pool.c: assert irql and pool type for PASSIVE_LEVEL and above.
ntoskrnl/ob/security.c:
This function did not either identify the new descriptor as self relative
nor honor the case where self-relative was not set.  Now fixed.
Bug identified by WaxDragon (while loading a cygwin app)

svn path=/trunk/; revision=11140
2004-10-01 04:00:11 +00:00
Art Yerkes
2c3fecda88 Added needed rc file.
svn path=/trunk/; revision=11139
2004-10-01 02:31:05 +00:00
Art Yerkes
9fd341c9ae Zero the new descriptor so that the Dacl, Sacl etc pointers will be zeroed
if not initialized.  cygwin was exercising this.

svn path=/trunk/; revision=11138
2004-10-01 01:28:56 +00:00
Art Yerkes
f45c8f618d It seems there's a subtle difference between mingw32 on windows and on
unixen.  Apparently, include_next does not count repeated include
directories on unixen but does on windows, thus windows users of mingw
saw the build of the ip lib break for not having included
w32api/include/basetsd.h through the include/basetsd.h.  It would
include include/basetsd.h again and (since the include guard in that
file surrounds the include_next), would do nothing the second time.  I guess
I'm the only person who got bit by this difference.

svn path=/trunk/; revision=11137
2004-09-30 22:04:13 +00:00
Emanuele Aliberti
c7eba737e2 Correct spelling errors in some remarks.
svn path=/trunk/; revision=11136
2004-09-30 21:14:24 +00:00
Eric Kohl
639754c6b8 Remove common shell folder settings.
svn path=/trunk/; revision=11135
2004-09-30 20:24:51 +00:00
Eric Kohl
3036e1670c - Add proper file header.
- Create common shell folder registry values in InitializeProfiles().

svn path=/trunk/; revision=11134
2004-09-30 20:23:00 +00:00
Richard Campbell
1de98ec592 rollback change for now
svn path=/trunk/; revision=11133
2004-09-30 16:47:49 +00:00
Art Yerkes
7b91f0c3fb Fixed makefile. Wrong name for ip.a
svn path=/trunk/; revision=11132
2004-09-30 16:30:43 +00:00
Richard Campbell
c831dac0e0 - For now, hardcode the all users profile path until we get better user management code in place
- removed the %USERPROFILE% prefix, this will go in combination with my other fix to hopefully get things working right again.

svn path=/trunk/; revision=11131
2004-09-30 15:39:48 +00:00
Royce Mitchell III
2ab40c2827 You're such a trooper, Marvin
svn path=/trunk/; revision=11130
2004-09-30 13:44:48 +00:00
Gé van Geldorp
e167d42360 You can tune a file system, but you can't tunafish
svn path=/trunk/; revision=11129
2004-09-30 10:07:00 +00:00
Gé van Geldorp
ae3fd2574d Rollback winehq merge since it breaks Explorer
svn path=/trunk/; revision=11128
2004-09-30 06:49:06 +00:00
Art Yerkes
0bccb9dbb0 Most files moved to linkable library drivers/lib/ip, which can be linked
from kernel land, or from userland with the help of drivers/lib/undis.
Hopefully, I'll be able to simulate a sufficient environment with undis
that we'll be able to test most problems with the ip system in userland.
This follows my general priniciple of getting most interesting code into
a place where we can really examine it and work with it.  The interface
to the ip library is still a bit raw.  I was hoping to do a better job
of isolating it and especially digging nt kernel dependencies out into
the remaining framework files (tcpip/dispatch.c, tcpip/fileobjs.c), but
it was taking too long.  Hopefully I can return to that later.

svn path=/trunk/; revision=11127
2004-09-30 06:00:42 +00:00
Art Yerkes
4ec1a851b9 Changes to the interface to componentized ip library. This commit is where
the ambiguously linked library starts being used in km.  There are further
cleanups i need to do, but hopefully having this checked in will help others
who are eager to help work on it.

svn path=/trunk/; revision=11126
2004-09-30 05:44:10 +00:00
Art Yerkes
03a9fe5219 Fixes to interface. Prototypes which were being stubborn. I will have to
figure out how to use these headers better.

svn path=/trunk/; revision=11125
2004-09-30 05:41:09 +00:00
Art Yerkes
e60bec5f2c Undis now builds a dll, carefully skirting the linkage problem i was facing.
I also add more and more correct functions.

svn path=/trunk/; revision=11124
2004-09-30 05:40:15 +00:00
Thomas Bluemel
c8de36191c use ULONG_PTR to calculate pointers
svn path=/trunk/; revision=11122
2004-09-29 08:41:39 +00:00
Gé van Geldorp
b8e45d0e41 Robert Shearman <rob@codeweavers.com>
- Simplify getting custom icons for a folder by utilising the new
  SHELL32_GetCustomFolderAttribute function.
- Add support for custom shell folders, such as the History folder.
- Always try to initialize folder using IPersistFolder3 interface and
  then fall back on IPersistFolder if not supported.

svn path=/trunk/; revision=11121
2004-09-29 07:01:37 +00:00
Art Yerkes
a6797af759 Getting there. Smoothing out the public interface and eliminating useless
types.

svn path=/trunk/; revision=11120
2004-09-29 06:11:27 +00:00
Art Yerkes
4c30d6be10 IP library. These files were moved from tcpip.sys and can be linked with
apps/tests/iptest using the undis library.  We need to make a change to
the way this is built so that we end up with ip.a (userland) and
ipkernel.a.  I'm still deciding how i want to do that.  For our purposes
now, it'll be fine to have it userland only as long as we still have the
option to build it for kernel use by hand to try out.

svn path=/trunk/; revision=11119
2004-09-29 05:10:48 +00:00
Art Yerkes
0f5152aa1c Added a header to lie between undis and net/ndis.h. This header will be used
to wrap and modify ndis definitions if necessary.

svn path=/trunk/; revision=11118
2004-09-29 04:57:26 +00:00
Art Yerkes
107ff56d07 Simple library which captures the remaining link-time dependencies for ip.a
Incomplete as yet.

Open question: how to make ip.a ambiguously linkable without building it
twice in it's present form.  Oskit was relatively simple because the
system dependencies were already isolated.  We need to capture and isolate
system dependencies in ip.a as well.

svn path=/trunk/; revision=11117
2004-09-29 04:54:26 +00:00
Art Yerkes
91a2bfd277 These calls to ExAllocatePool are done at != PASSIVE_LEVEL. Allocate
non-paged-pool.

svn path=/trunk/; revision=11116
2004-09-29 03:36:52 +00:00
Richard Campbell
1fea21808f - Changed a few REG_EXPAND_SZ to REG_SZs as per Windows
svn path=/trunk/; revision=11115
2004-09-29 01:26:35 +00:00
Royce Mitchell III
af06b2d654 sprintf bad
svn path=/trunk/; revision=11114
2004-09-29 00:47:42 +00:00
Gé van Geldorp
79d6604660 NtAllocateVirtualMemory() should return 64k aligned areas (forgotten file)
svn path=/trunk/; revision=11113
2004-09-28 20:58:29 +00:00
Gé van Geldorp
8e7f16e570 Don't return data length if not requested
svn path=/trunk/; revision=11112
2004-09-28 20:40:15 +00:00
Hartmut Birr
8ceb672cc0 - Fixed LdrLookupPageProtection.
svn path=/trunk/; revision=11111
2004-09-28 20:16:24 +00:00
James Tabor
e3bfa4f45a Add advpack.
svn path=/trunk/; revision=11110
2004-09-28 19:49:27 +00:00
Gé van Geldorp
d243b55958 NtAllocateVirtualMemory() should return 64k aligned areas
svn path=/trunk/; revision=11109
2004-09-28 19:49:21 +00:00
Steven Edwards
43787ecece Ported icmp.dll from wine.
svn path=/trunk/; revision=11108
2004-09-28 19:07:56 +00:00
Thomas Bluemel
3ef6e3494f relicense to LGPL
svn path=/trunk/; revision=11107
2004-09-28 16:05:24 +00:00
Thomas Bluemel
fdde8be2a7 avoid compiler warning
svn path=/trunk/; revision=11106
2004-09-28 15:14:04 +00:00
Thomas Bluemel
2d01207958 1. get rid of the global thread list and group threads in processes instead
2. get rid of all reactos-specific fields in the E/KTHREAD structure and make them match the 2k layout
3. identify threads (and later processes) using a client id table (which should propably be replaced by a global handle table instead)
4. disabled thread event pair functions by default (NT4 only) as they require a field in the ETHREAD structure that is not present in later versions

svn path=/trunk/; revision=11105
2004-09-28 15:02:31 +00:00
Eric Kohl
c0e4836b17 - Implement IoFreeErrorLogEntry().
- Fix log size calculation in IopLogWorker().

svn path=/trunk/; revision=11104
2004-09-28 12:51:14 +00:00
Eric Kohl
f665fe8a22 Use FILE_APPEND_DATA access right to write log entries.
svn path=/trunk/; revision=11103
2004-09-28 12:50:23 +00:00
Eric Kohl
f15ffecda4 Support special FILE_WRITE_TO_END_OF_FILE byte offset to append data to a file.
svn path=/trunk/; revision=11102
2004-09-28 10:52:55 +00:00
Eric Kohl
d394870def NtWriteFile must append to file if it was opened with the FILE_APPEND_DATA access.
FILE_WRITE_DATA take precedence over FILE_APPEND_DATA.

svn path=/trunk/; revision=11101
2004-09-28 10:51:05 +00:00
Gé van Geldorp
3d82d976d3 NtSetInformationThread() expects a pointer, not the handle itself
svn path=/trunk/; revision=11100
2004-09-27 20:04:53 +00:00
Eric Kohl
db47f999dd Define FILE_WRITE_TO_END_OF_FILE.
svn path=/trunk/; revision=11094
2004-09-27 11:32:31 +00:00
Gé van Geldorp
46dbd3190e Sylvain Petreolle <spetreolle@yahoo.fr>
- rules.mak is included too late in tools/winebuild/Makefile, which makes
  TARGET, "all:", CLEAN_FILES and HOST_CFLAGS wrong.

svn path=/trunk/; revision=11093
2004-09-27 08:15:07 +00:00
Steven Edwards
73a66a9cc9 Some fixes for MS_VC.
svn path=/trunk/; revision=11092
2004-09-27 04:32:52 +00:00
Steven Edwards
6a64eeeb08 Add a shutdown message.
svn path=/trunk/; revision=11091
2004-09-27 04:12:40 +00:00
Steven Edwards
21d354a1c1 Slightly new and improved stub for GetUserNameA based on the Winehq
code and hacked by Royce and Me.

svn path=/trunk/; revision=11082
2004-09-26 21:15:51 +00:00
Gé van Geldorp
05848ce54b Scream when an unimplemented function is called
svn path=/trunk/; revision=11081
2004-09-26 20:28:22 +00:00
Gé van Geldorp
f427428df7 Stub LookupAccountNameA/W
svn path=/trunk/; revision=11080
2004-09-26 20:26:13 +00:00
Gé van Geldorp
409e2330e1 Call GetProcessHeap() instead of passing it's address
svn path=/trunk/; revision=11079
2004-09-26 19:17:21 +00:00
Hartmut Birr
6375fca5be - Added a little sample which tests the noexecute protection.
svn path=/trunk/; revision=11077
2004-09-26 17:00:15 +00:00
Royce Mitchell III
9d63d77c6e add a little more debug output in case of unhandled exceptions
svn path=/trunk/; revision=11076
2004-09-26 16:54:53 +00:00
Hartmut Birr
1b03d41981 - Detect more cpu features.
- Implemented the noexecute protection for the AMD64 cpu.

svn path=/trunk/; revision=11075
2004-09-26 16:32:18 +00:00
Thomas Bluemel
455470d018 minor fix
svn path=/trunk/; revision=11074
2004-09-26 16:14:05 +00:00
Thomas Bluemel
cc0fabacd1 use Get/SetWindowLongPtr() where appropriate in favor of 64bit compatibility
svn path=/trunk/; revision=11073
2004-09-26 15:55:53 +00:00
Martin Fuchs
d3f70f50f0 introduce XPath syntax to make handling configuration a bit easier
svn path=/trunk/; revision=11071
2004-09-26 15:13:16 +00:00
Hartmut Birr
c8e0c372d9 - Rewrote (copied from ntdll) parts of the relocation and import fixup code.
- Don't load no-load sections at the end of the  driver.
- Don't relocate the relocation section itself.
- Set the correct page protection for section which are executable.
- Added a (dirty) fix for the fireport driver.
- Fixed the detection of the noguiboot option.

svn path=/trunk/; revision=11070
2004-09-26 15:07:44 +00:00
Filip Navara
a2446b3408 - Move shldisp.h to the right place.
- Get rid of the ICOM crap.

svn path=/trunk/; revision=11069
2004-09-26 14:34:23 +00:00
Thomas Bluemel
c28cd9af2c minor fix
svn path=/trunk/; revision=11068
2004-09-26 13:25:42 +00:00
Thomas Bluemel
5ee10c6024 add hid.dll to the build system
svn path=/trunk/; revision=11067
2004-09-26 12:39:30 +00:00
Eric Kohl
a1463efaf0 Delete a boot log from the registry after it was written to the boot log file.
svn path=/trunk/; revision=11066
2004-09-26 11:29:50 +00:00
Thomas Bluemel
1a541c9ebb enable PCH
svn path=/trunk/; revision=11065
2004-09-26 10:43:00 +00:00
Thomas Bluemel
dae8e69f8c fixed typo
svn path=/trunk/; revision=11064
2004-09-26 10:01:09 +00:00
Thomas Bluemel
06fc0007ce added shell extension that enables the user to change compatibility modes for .exe files in the file properties.
svn path=/trunk/; revision=11063
2004-09-26 09:56:23 +00:00
Hartmut Birr
82f36a4a4e - Reselected the drive (master/slave) after a soft reset.
svn path=/trunk/; revision=11062
2004-09-26 09:14:20 +00:00
Art Yerkes
a3091079d6 Fixed each call to use a unique event. This is needed because send, recv,
connect, etc can complete independently even on the same socket.
Fixed connect to pass the status from afd back correctly.  Connect now
fails as expected when we couldn't make a connection.

svn path=/trunk/; revision=11061
2004-09-26 07:55:32 +00:00
Royce Mitchell III
97fcd66fc7 more sayings
svn path=/trunk/; revision=11060
2004-09-26 02:33:31 +00:00
Filip Navara
93f1330753 - Fix RtlFindClearBits to correctly treat the hint.
svn path=/trunk/; revision=11059
2004-09-25 22:59:17 +00:00
Gé van Geldorp
200da8e7da Don't abandon file creation if hTemplateFile is INVALID_HANDLE_VALUE
svn path=/trunk/; revision=11058
2004-09-25 21:44:02 +00:00
Art Yerkes
e1741d6626 Use the recursive mutex to lock the TCP.
svn path=/trunk/; revision=11057
2004-09-25 21:32:56 +00:00
Art Yerkes
1eb1e27110 Added simple recursive mutex adapted from my afd one. Works both above
and below DISPATCH_LEVEL.

svn path=/trunk/; revision=11056
2004-09-25 21:32:18 +00:00
Art Yerkes
3a4c09d746 More experimental detritus. Sorry about that.
svn path=/trunk/; revision=11055
2004-09-25 21:08:53 +00:00
Filip Navara
630b1b2eb3 - Fix usage of RtlFindSetBits and loops in CmiStartLogUpdate and CmiStartHiveUpdate.
svn path=/trunk/; revision=11054
2004-09-25 20:53:29 +00:00
Filip Navara
3823d945f5 - Fix implementation of RtlFindSetBits to be able to return bits that are at lower location than the supplied hint.
svn path=/trunk/; revision=11053
2004-09-25 20:49:57 +00:00
Art Yerkes
91fea9194d Previously checked in with some detritus from some experimental rtl stuff.
Fixed.

svn path=/trunk/; revision=11052
2004-09-25 20:38:46 +00:00
Art Yerkes
3725308f3e Fixed connection locking in tcp.c
Added a work item in lan.c re: dpc callback from the adapter.  This keeps
us from needing mdl functions at dpc level.
Track IRPs to be completed with memtrack.

svn path=/trunk/; revision=11051
2004-09-25 20:24:00 +00:00
Filip Navara
ee0f0ee26f - Remove the incorrect ALIGN macro (missing "* (align)") and replace it with ROUND_UP.
svn path=/trunk/; revision=11050
2004-09-25 19:39:57 +00:00
Gé van Geldorp
fceb614b2b Make some installers happy (well, happier at least)
svn path=/trunk/; revision=11049
2004-09-25 18:22:33 +00:00
Emanuele Aliberti
0f2014b8bb Fixed spelling error.
svn path=/trunk/; revision=11048
2004-09-25 15:46:52 +00:00
Eric Kohl
23a709ca5f - CmiAddValueToKey(): Double the size of the value list cell when it is completely filled. This prevents fragmentation if a key got lots of values.
- CmiDeleteValueFromKey(): Fix corruption of the value list cell when a value is removed from the list.
- Rename the variable VBOffset to ValueCellOffset.

svn path=/trunk/; revision=11047
2004-09-25 15:25:28 +00:00
Eric Kohl
1f82196fd5 - Use ROUND_UP macro instead of explicit calculation.
- Replace fixed values by appropriate constants.
- Replace STATUS_UNSUCCESSFUL by better status codes.

svn path=/trunk/; revision=11046
2004-09-25 12:11:13 +00:00
Gé van Geldorp
95210d36ee - Round up requested amount of memory instead of down
- Simplify space check, old version didn't work because of signed/unsigned issues

svn path=/trunk/; revision=11045
2004-09-25 08:58:44 +00:00
Gé van Geldorp
79c3ba475a SeAccessCheck() returns TRUE on success
svn path=/trunk/; revision=11044
2004-09-25 08:49:06 +00:00
Filip Navara
ee3726520d - Remove duplicate SPI_* definitions.
svn path=/trunk/; revision=11043
2004-09-25 08:21:12 +00:00
Filip Navara
d8db49d056 - Remove duplicate definitions and redundant header file.
svn path=/trunk/; revision=11042
2004-09-25 08:20:16 +00:00
Martin Fuchs
5ee46f4794 compareType refactoring
svn path=/trunk/; revision=11041
2004-09-25 07:55:31 +00:00
Art Yerkes
0089446cc6 cm/regfile.c, ldr/init.c, ldr/loader.c: OBJ_CASE_INSENSITIVE patch I proposed
on the list.  This makes the registry, and dll loading case insensitive when
we are on a case preserving filesystem.

ntoskrnl/ex/power.c: My own contributions to the poweroff message list.

ntoskrnl/mm/npool.c: Fixed bit-rot in whole page alloc.  That's how i found
the bug below.

se/semgr.c, lib/rtl/sd.c:
semgr, when creating a SECURITY_DESCRIPTOR, anded the PRESENT and DEFAULT
flags rather than oring them for group, dacl, and sacl, leading to
RtlLengthSecurityDescriptor giving the wrong length to sdcache.  When
sdcache would copy the security descriptor, it would be too short, and
the bound check from the whole-page allocator would go off.  I fixed this
and made rtl/sd.c use the ROUND_UP macro and RtlLengthSid.  This is cleaner.
It may not be completely correct yet but it no-longer truncates security
descriptors into the cache, which means that the Owner, Group and etc
SIDs should now actually work right when coming from the cache, no matter
what happens in the heap.  They probably seemed to work before simply
because they trashed the ends of their blocks and never moved in the
cache.

svn path=/trunk/; revision=11040
2004-09-25 06:41:16 +00:00
Art Yerkes
906e734ab4 Changed functions RtlClearAllBits and RtlSetAllBits to use SizeOfBitMap
as the number of bits, not the number of bytes in the bitmap.  This was
making the whole page allocator in ntoskrnl/mm/npool.c crash early in
the boot process with whole page allocations on.  This may affect other
things adversely as well.

The documentation for RtlInitializeBitMap is here:
http://www.osronline.com/ddkx/kmarch/k109_5sfm.htm

svn path=/trunk/; revision=11039
2004-09-25 03:20:16 +00:00
Thomas Bluemel
9e91360716 1. implemented GetThreadSelectorEntry()
2. added missing DESCRIPTOR_TABLE_ENTRY structure

svn path=/trunk/; revision=11037
2004-09-24 20:55:58 +00:00
Gé van Geldorp
29df1f045e You can't wait for 0 objects
svn path=/trunk/; revision=11036
2004-09-24 20:26:43 +00:00
Thomas Bluemel
4d0a1d7cea don't skip the detection code
svn path=/trunk/; revision=11035
2004-09-24 20:20:46 +00:00
Thomas Bluemel
9dfe6f1d9c enabled the Wizard97 style
svn path=/trunk/; revision=11034
2004-09-24 20:18:16 +00:00
Eric Kohl
01aff80376 Enable wizard 97 style and add a dummy progress page.
svn path=/trunk/; revision=11033
2004-09-24 18:52:29 +00:00
Thomas Bluemel
109dc19c13 added stub for ObFindHandleForObject() and export it
svn path=/trunk/; revision=11031
2004-09-24 16:18:28 +00:00
Filip Navara
ec73e88d5f - Remove duplicate definitions.
svn path=/trunk/; revision=11030
2004-09-24 16:13:21 +00:00
Gé van Geldorp
df80dc6da3 Implement PathIsCharValidA/W
svn path=/trunk/; revision=11029
2004-09-24 15:17:20 +00:00
Filip Navara
c9da2445aa - Don't validate parents after sending the WM_ERASEBKGND message.
- Fix support for SWP_NOREDRAW flag in SetWindowPos.

svn path=/trunk/; revision=11028
2004-09-24 15:07:38 +00:00
Eric Kohl
78e1dba27f Close the bootlog key if value enumeration or writing to the log file fails.
svn path=/trunk/; revision=11027
2004-09-24 15:00:34 +00:00
Gé van Geldorp
361d78ab88 Merge back commit from winehq
svn path=/trunk/; revision=11026
2004-09-24 12:13:54 +00:00
Gé van Geldorp
b92ba82e5f - SHGetAppCompatFlags() takes 4 bytes of parameters
- QueryInterface will return NULL for the new pointer if it fails

svn path=/trunk/; revision=11025
2004-09-24 11:12:44 +00:00
Eric Kohl
97037edf6b - Print correct ReactOS version in the boot log header.
- Add ntoskrnl.exe and hal.dll to the boot log.

svn path=/trunk/; revision=11024
2004-09-24 10:51:35 +00:00
Art Yerkes
102c8c9a78 Initialize ext so that MCLFREE will be called appropriately.
This macro was freeing (m)->m_data, but m was not a macro parameter.
It compiled because virtually every mbuf * is named m.  Fixed.

svn path=/trunk/; revision=11023
2004-09-24 04:58:17 +00:00
Art Yerkes
d7a6bf353f Also wait in the success, no data case in socket state change.
svn path=/trunk/; revision=11022
2004-09-24 00:56:39 +00:00
Art Yerkes
2c75d67c33 Fix send function as well to properly deallocate the irp on failure on
MmProbeAndLockPages.

svn path=/trunk/; revision=11021
2004-09-24 00:51:31 +00:00
Thomas Bluemel
2eb5ead6ed implemented GetUserDefaultUILanguage()
svn path=/trunk/; revision=11020
2004-09-24 00:36:14 +00:00
Thomas Bluemel
5b552386bc don't attempt to reference NULL objects in NtIsProcessInJob()
svn path=/trunk/; revision=11019
2004-09-23 22:02:39 +00:00
Thomas Bluemel
b50f152bc1 implemented NtIsProcessInJob()
svn path=/trunk/; revision=11018
2004-09-23 21:23:34 +00:00
Emanuele Aliberti
bf3b5cc677 Emanuele Aliberti <ea@reactos.com>
- Some stubs for ts moved in process/session.c.
- Implemented ProcessIdToSessionId.

svn path=/trunk/; revision=11017
2004-09-23 21:01:23 +00:00
Art Yerkes
b0f758cf33 tcp: print error when we can't allocate a bucket.
event: Don't report eof if we have bytes to deliver still.
       Made a mistake moving statuses around.  Requeue the request on
       STATUS_PENDING.

svn path=/trunk/; revision=11016
2004-09-23 20:51:46 +00:00
Art Yerkes
e91d1416ab Write: print bytes returned so we can see it.
Read : notify ourselves that the buffer is empty and reset the pointers.
Tdi  : since the handler part is an inner function, don't return from it
       but instead set Status and return afterward.

svn path=/trunk/; revision=11015
2004-09-23 20:48:40 +00:00
Gé van Geldorp
0a185bdb18 Sync to Wine:
Alexandre Julliard <julliard@winehq.org>
- Store all information about the current dll in a structure instead of
  using global variables to make it easier to reuse the parsing
  routines.
- Added native mode dll support (based on a patch by Marcus Meissner).
- Added support for building a dll from a .def file for cases where we
  don't want to write a full .spec.
- Renamed --spec option to --dll for consistency.
- Removed the Unicode exe modes, and instead detect automatically which
  mode to use based on the existence of main or wmain.
- Automatically detect whether the entry point is main or WinMain
  instead of depending on the subsystem type.
- Do not strip stdcall decoration in spec files.
- Print a warning when DllRegisterServer and similar functions are not
  marked private.
- Fill in the proper offsets in the resource directory instead of
  relying on the compiler to do it.
Jukka Heinonen <jhei@iki.fi>
- Remove support for generating interrupt handlers.
- DPMI programs now handle pending events.
Robert Shearman <R.J.Shearman@warwick.ac.uk>
- Fix proc name reported in delay load failure.
Richard Cohen <richard@daijobu.co.uk>
- Remove . from default library search path.
Eric Pouech <pouech-eric@wanadoo.fr>
- added size information about most of the generated thunks (import,
  16/32 relay...)
- marked the wine thunks by inserting specific symbols (to be managed
  by wine's dbghelp)
- removed the stabs generation:
  + mostly used by winedbg, and the previous item will replace it for
    dbghelp
  + still broken for gdb anyway
- enhanced const correctness
Pierre d'Herbemont <stegefin@free.fr>
- Detection of .size instruction.
- Detection of the assembler name prefix.
- Delayed import fix for Darwin and PowerPC Host.
- Be more accurate on Darwin stack size.
- Delay import fix on PowerPC hosts.
Marcus Meissner <meissner@suse.de>
- Use "LD" instead of "ld" in winebuild to be able to use a different ld
  or ld options.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Add a few missing __ASM_NAME macros.

svn path=/trunk/; revision=11014
2004-09-23 20:27:30 +00:00
Casper Hornstrup
219e1cea20 2004-09-23 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/msafd/makefile (TARGET_CFLAGS): Don't define DBG.
	* lib/msafd/include/debug.h: Redefine ASSERT.

svn path=/trunk/; revision=11013
2004-09-23 20:05:32 +00:00
Thomas Bluemel
f9de66edba remove implemented stubs
svn path=/trunk/; revision=11011
2004-09-23 19:03:26 +00:00
Thomas Bluemel
8fd7d74051 fixed returning a wrong handle count in GetProcessHandleCount()
svn path=/trunk/; revision=11010
2004-09-23 19:01:38 +00:00
Thomas Bluemel
3d915100ab fixed initialization of the object attributes in CreateJobObjectW()
svn path=/trunk/; revision=11009
2004-09-23 18:55:18 +00:00
Thomas Bluemel
808e28016e implemented OpenJobObjectA/W() - untested though
svn path=/trunk/; revision=11008
2004-09-23 18:46:10 +00:00
Martin Fuchs
c39da650dd work around GCC's wide string constant bug
svn path=/trunk/; revision=11007
2004-09-23 18:37:57 +00:00
Thomas Bluemel
51c36121e9 implemented CreateJobObjectA/W() - untested though
svn path=/trunk/; revision=11006
2004-09-23 18:31:51 +00:00
Thomas Bluemel
b85ef6c64a implemented IsProcessInJob(), AssignProcessToJobObject(), QueryInformationJobObject(), SetInformationJobObject() and TerminateJobObject(), all untested though
svn path=/trunk/; revision=11005
2004-09-23 18:02:19 +00:00
Royce Mitchell III
04c8adbef9 add some debug output
svn path=/trunk/; revision=11004
2004-09-23 18:00:29 +00:00
Thomas Bluemel
1c5a999278 export job functions
svn path=/trunk/; revision=11003
2004-09-23 17:03:59 +00:00
Thomas Bluemel
08dea69da5 forgot to add job access rights
svn path=/trunk/; revision=11002
2004-09-23 16:53:25 +00:00
Thomas Bluemel
dcea0ecb49 proper job access mapping
svn path=/trunk/; revision=11001
2004-09-23 16:31:21 +00:00
Martin Fuchs
62c06f1198 encode &quot; and &apos;
svn path=/trunk/; revision=11000
2004-09-23 16:09:15 +00:00
Art Yerkes
d774499bf8 event.c: Don't infinite loop while completing a zero-length read.
tcp.c: Correctly pass on length in recv.

svn path=/trunk/; revision=10999
2004-09-23 14:16:27 +00:00
Royce Mitchell III
0dbb29fa23 small fix to OskitDumpBuffer() - each line should display the address of it's first byte, not the address of the beginning of the dump...
svn path=/trunk/; revision=10998
2004-09-23 12:43:49 +00:00
Royce Mitchell III
2c63cbebbc new version of OskitDumpBuffer() that shows ascii characters, too, for easier debugging
svn path=/trunk/; revision=10997
2004-09-23 12:36:19 +00:00
Eric Kohl
6e00d9b507 Implement boot logging. Add /BOOTLOG to the command line to enable boot logging.
svn path=/trunk/; revision=10996
2004-09-23 11:27:58 +00:00
Art Yerkes
d0135b1184 Fixed the way send and recv are called and return errors.
added some printing.
dllmains: adjusted printing.

svn path=/trunk/; revision=10995
2004-09-23 08:16:16 +00:00
Gé van Geldorp
18318e6e17 Steven Edwards <steven_ed4153@yahoo.com>
- Remove some unneeded include statements.

svn path=/trunk/; revision=10994
2004-09-23 06:48:09 +00:00
Art Yerkes
51580f3182 Fixes: Lock does not need to acquire a spinlock in the non-passive-level
case because we can't contend with outselves in passive level.
Realized subtle bug in select.

Select needs a referenced file object rather than a handle.  Will change
this when i get time.

svn path=/trunk/; revision=10993
2004-09-23 06:42:16 +00:00
Art Yerkes
36cc9bb181 Main changes: reimported uipc_socket.c which had lots of differences with
freebsd.
Fixed: OskitTCPReceive.  Now rely exclusively on uio as suggested.

svn path=/trunk/; revision=10992
2004-09-23 06:39:16 +00:00
Royce Mitchell III
bb9e009623 forgot to save workspace before commiting. removed directory from include path that was only meant to be temporary
svn path=/trunk/; revision=10991
2004-09-23 03:13:35 +00:00
Royce Mitchell III
438e4eae22 oskittcp can now be built with vs6
svn path=/trunk/; revision=10990
2004-09-23 03:02:29 +00:00
Martin Fuchs
696d3bd2b6 remove wStringTableOffset
svn path=/trunk/; revision=10989
2004-09-22 23:00:24 +00:00
Martin Fuchs
8e81012956 configuration dialog to choose between MDI and SDI mode with persistent storage
svn path=/trunk/; revision=10988
2004-09-22 22:57:00 +00:00
Thomas Bluemel
40637ed24b initialize the job management and export PsJobType
svn path=/trunk/; revision=10987
2004-09-22 22:31:46 +00:00
Steven Edwards
ba27e813a3 Fix building mdi test on MS_VC and Mingw
svn path=/trunk/; revision=10986
2004-09-22 22:25:13 +00:00
Steven Edwards
3cf59b7b6c Fix building dnsquery test on MS_VC and Mingw
svn path=/trunk/; revision=10985
2004-09-22 22:13:56 +00:00
Gé van Geldorp
4170c2ae26 Henning Gerhardt <henning.gerhardt@web.de>
- Minor fixes and updates to the German resource files.
Marcelo Duarte <wine-devel@bol.com.br>
- French translation and other adjustments.
- Update localization for Portuguese language.
Ivan Leo Puoti <puoti@inwind.it>
- Changed my name, so update copyright info.
- Added Italian resources.
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Updated the Spanish shell32 translation and made some corrections to
  other language files.

svn path=/trunk/; revision=10984
2004-09-22 20:50:30 +00:00
Thomas Bluemel
594cfc6a04 1. fixed RtlValidSecurityDescriptor() that attempted to validate nonexisting owner/group SID
2. implemented RtlValidRelativeSecurityDescriptor()

svn path=/trunk/; revision=10983
2004-09-22 20:16:02 +00:00
Steven Edwards
c92d7b8a36 Fix building for building on both Mingw and MS_VC.
svn path=/trunk/; revision=10982
2004-09-22 19:53:14 +00:00
Gé van Geldorp
dab159a4de Robert Shearman <rob@codeweavers.com>
- GetWindowLong -> GetWindowLongPtr.

svn path=/trunk/; revision=10981
2004-09-22 19:46:52 +00:00
Gé van Geldorp
5a585fd014 Ulrich Czekalla <ulrich@codeweavers.com>
- When we send out a notification to a registered window with
  SHCNRF_NewDelivery, we should send a LPNOTIFICATIONLIST and the
  process id of the caller.

svn path=/trunk/; revision=10980
2004-09-22 19:38:54 +00:00
Gé van Geldorp
c2678bf64e Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.

svn path=/trunk/; revision=10979
2004-09-22 19:24:14 +00:00
Gé van Geldorp
b49b939efd Stefan Leichter <Stefan.Leichter@camLine.com>
- Moved stub of Control_FillCache_RunDLL from ascii to unicode.

svn path=/trunk/; revision=10978
2004-09-22 19:13:36 +00:00
Gé van Geldorp
f505dd6839 Merge back commit from winehq.
Mike McCormack <mike@codeweavers.com>
- Use Heap function in preference to malloc/free.

svn path=/trunk/; revision=10977
2004-09-22 18:47:39 +00:00
Gé van Geldorp
2e87325d12 Huw Davies <huw@codeweavers.com>
- Change dialogs to use MS Shell Dlg rather than Helv or MS Sans Serif.

svn path=/trunk/; revision=10976
2004-09-22 18:10:57 +00:00
Royce Mitchell III
b608a8ac83 don't zero out OtcpEvent structure from InitOskitTCP(), because it has already been initialized at this point. Also added a check for null to avoid crash in ifa_ifwithnet()
svn path=/trunk/; revision=10975
2004-09-22 17:41:52 +00:00
Thomas Bluemel
bebf5b5e5e 1. added EJOB structure
2. implemented PsGetProcessJob(), PsGetJobLock(), PsGetJobSessionId() and PsGetJobUIRestrictionsClass()

svn path=/trunk/; revision=10974
2004-09-22 14:53:26 +00:00
Royce Mitchell III
cd3894b51d clean up/simplify 'type' command some more and don't append command-terminating carriage-return to the output buffer.
svn path=/trunk/; revision=10973
2004-09-22 13:55:07 +00:00
Royce Mitchell III
540291d651 replace problematic stack variable in OskitTCPSend() with properly allocated mbuf, and get rid of a redundant memcpy() in OskitTCPReceiveDatagram().
svn path=/trunk/; revision=10972
2004-09-22 13:35:11 +00:00
Thomas Bluemel
3c9fc0f8ce accidently changed the @unimplemented marks
svn path=/trunk/; revision=10971
2004-09-22 10:58:06 +00:00
Thomas Bluemel
c436cba1b9 don't be silent when calling unimplemented functions
svn path=/trunk/; revision=10970
2004-09-22 10:49:07 +00:00
Thomas Bluemel
6c07abd294 implemented CheckNameLegalDOS8Dot3A/W()
svn path=/trunk/; revision=10969
2004-09-22 09:31:01 +00:00
Gé van Geldorp
2b9416f467 Robert Shearman <rob@codeweavers.com>
- Share version information between DllGetVersion and resource file.

svn path=/trunk/; revision=10968
2004-09-22 05:08:04 +00:00
Gé van Geldorp
9fcfe5a590 Juan Lang <juan_lang@yahoo.com>
- If a folder contains a desktop.ini, check it for the icon location
  before using the default folder icon.

svn path=/trunk/; revision=10967
2004-09-21 22:14:38 +00:00
Thomas Bluemel
cbfc9645ec implemented GetSystemRegistryQuota()
svn path=/trunk/; revision=10966
2004-09-21 22:08:18 +00:00
Thomas Bluemel
5f701004c0 fixed definition of the SYSTEM_REGISTRY_QUOTA_INFORMATION structure
svn path=/trunk/; revision=10965
2004-09-21 22:07:38 +00:00
Thomas Bluemel
1f2ec88e90 implemented GetProcessHandleCount()
svn path=/trunk/; revision=10964
2004-09-21 21:53:45 +00:00
Gé van Geldorp
63b36d9681 Francois Gouget <fgouget@codeweavers.com>
- Fix CSIDL_COMMON_{STARTMENU,PROGRAMS,DESKTOPDIRECTORY} so they all use
  paths in 'All Users' like CSIDL_COMMON_STARTUP.
  The CSIDL_COMMON_PROGRAMS fix solves many menu creation problems.

svn path=/trunk/; revision=10963
2004-09-21 21:13:49 +00:00
Gé van Geldorp
664942baf9 Eric Pouech <pouech-eric@wanadoo.fr>
- GetModuleFileName[AW] doesn't terminate the string if the buffer is
  too small.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Don't leak cache imagelists on exit.

svn path=/trunk/; revision=10962
2004-09-21 20:48:02 +00:00
Gé van Geldorp
ffa3b3d7fd Match whitespace to winehq
svn path=/trunk/; revision=10961
2004-09-21 19:44:19 +00:00
Gé van Geldorp
2ff29d7662 Juan Lang <juan_lang@yahoo.com>
- Correct return value in a couple of error cases.
Marcus Meissner <marcus@jet.franken.de>
- Marked some functions in debughlp as static.
- Do not use REFIID as return, but IID*.

svn path=/trunk/; revision=10960
2004-09-21 19:38:17 +00:00
Gé van Geldorp
a867629b4f Juan Lang <juan_lang@yahoo.com>
- Correct some PIDL types and eliminate some magic numbers in PIDL
  allocation; correct a copy-pasto from a previous patch.

svn path=/trunk/; revision=10959
2004-09-21 19:34:21 +00:00
Thomas Bluemel
e831b21339 implemented CreateMemoryResourceNotification() and QueryMemoryResourceNotification(), but only the kernel32 part
svn path=/trunk/; revision=10958
2004-09-21 19:17:26 +00:00
Gé van Geldorp
d0fa47278d Sync to winehq
svn path=/trunk/; revision=10957
2004-09-21 19:11:35 +00:00
Gé van Geldorp
e74c23bc36 We have our own tray code
svn path=/trunk/; revision=10956
2004-09-21 19:02:01 +00:00
Gé van Geldorp
af135d8b9b Juan Lang <juan_lang@yahoo.com>
- Add stub for ShellDDEInit to let Windows explorer.exe get past the
  beginning.
Francois Gouget <fgouget@free.fr>
- Make Unicode strings static const.
Eric Pouech <pouech-eric@wanadoo.fr>
- GetModuleFileName[AW] doesn't terminate the string if the buffer is
  too small.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Delete the about dialog font when the dialog is closed.
Juan Lang <juan_lang@yahoo.com>
- Added support for DLLVERSIONINFO2 in DllGetVersion.

svn path=/trunk/; revision=10955
2004-09-21 18:55:53 +00:00
Gé van Geldorp
4ac1e6a310 Mike McCormack <mike@codeweavers.com>
- Update path from relative path on loading.

svn path=/trunk/; revision=10954
2004-09-21 18:14:15 +00:00
Thomas Bluemel
bd7af734b8 implemented IsDBCSLeadByte() and IsDBCSLeadByteEx()
svn path=/trunk/; revision=10953
2004-09-21 17:41:24 +00:00
Art Yerkes
fa965094ed Fixed tcptest to not do send recv or close on a socket that's not connected.
This keeps the user from doing something inappropriate.
makefile: add -g back in

svn path=/trunk/; revision=10952
2004-09-21 04:06:15 +00:00
Royce Mitchell III
6f6e411eef bcopy()'s arguments are different order than memcpy()
svn path=/trunk/; revision=10951
2004-09-21 04:00:14 +00:00
Gé van Geldorp
822b8e1a47 Francois Gouget <fgouget@free.fr>
- Make Unicode const strings static so they are not copied to the stack
  each time we enter the function.
Aric Stewart <aric@codeweavers.com>
- In IPersistFile_Save if the exe file is not found, trust the path we
  are given and allow creation of the link.
- Make sure exePath contains the path since it is used later in the
  function as well.
Ge van Geldorp <gvg@reactos.com>
- Match whitespace to winehq

svn path=/trunk/; revision=10950
2004-09-20 21:39:04 +00:00
Hartmut Birr
093f4a09c5 - Implemented the loading of drivers according to the order
of the tag entries in the GroupOrderList key.

svn path=/trunk/; revision=10949
2004-09-20 19:47:25 +00:00
Gé van Geldorp
c9ece8cfa5 Maxime Belleng� <maxime.bellenge@laposte.net>
- Add the IAutoComplete and IAutoComplete2 implementation (but methods
  stubbed for now).

svn path=/trunk/; revision=10948
2004-09-20 19:47:14 +00:00
Gé van Geldorp
6eb55219c8 Merge back commits from winehq
Maxime Bellenge <maxime.bellenge@laposte.net>
- Add the IAutoComplete and IAutoComplete2 implementation (but methods
  stubbed for now).

svn path=/trunk/; revision=10947
2004-09-20 18:55:21 +00:00
Gé van Geldorp
dfd4f0156b Francois Gouget <fgouget@free.fr>
- Fix some field names in CSFV and QCMINFO.
Patrik Stridvall <ps@leissner.se>
- Fixed some issues found by winapi_check.

svn path=/trunk/; revision=10946
2004-09-20 18:45:00 +00:00
Gé van Geldorp
5a384553bd Robert Shearman <rob@codeweavers.com>
- Add exports for missing ordinals 191-194.
- Stub for SHUpdateImageW.

svn path=/trunk/; revision=10945
2004-09-20 18:32:33 +00:00
Gé van Geldorp
6382d705ab Francois Gouget <fgouget@free.fr>
- Don't export the shell32 SHAllocShared functions by name.
  Implement them by calling out their shlwapi equivalent (which had a
  much more complete implementation anyway).
- Fix the prototype of shlwapi's SHAllocShared().
- Don't crash if lpvData is NULL in SHAllocShared().
- Add a conformance test to shlwapi.

svn path=/trunk/; revision=10944
2004-09-20 18:29:10 +00:00
Gé van Geldorp
cccdc00157 Fork a small change which has little change of being accepted by winehq
svn path=/trunk/; revision=10943
2004-09-20 18:08:37 +00:00
Gé van Geldorp
322da3c44c Vincent Beron <vberon@mecano.gme.usherb.ca>
- Don't hardcode c:\windows paths in msi.dll.
Huw Davies <huw@codeweavers.com>
- Unicodify a load of strings.

svn path=/trunk/; revision=10942
2004-09-20 18:07:54 +00:00
Hartmut Birr
553993dcd2 - Implemented the driver loading by the sequence of tag entries in the GroupOrderList key.
svn path=/trunk/; revision=10941
2004-09-20 18:02:36 +00:00
Hartmut Birr
b23fa198a6 - Added the 'GroupOrderList' key.
- Added entries for some scsi port drivers.
- Added the tag key for the atapi driver.

svn path=/trunk/; revision=10940
2004-09-20 17:57:46 +00:00
Gé van Geldorp
f634e3c46c Return status code
svn path=/trunk/; revision=10939
2004-09-20 17:55:16 +00:00
Gé van Geldorp
67f1b8f671 Martin Fuchs <martin-fuchs@gmx.net>
- make drive letters in PIDLs always uppercase to enable PIDL
  comparison
- Unicodify _ILCreateDrive()

svn path=/trunk/; revision=10938
2004-09-20 17:47:49 +00:00
Gé van Geldorp
e4f5d86770 Martin Fuchs <martin-fuchs@gmx.net>
Return "file not found" error values instead of E_INVALIDARG if
_ILCreateFromPathA() failed to find files.

svn path=/trunk/; revision=10936
2004-09-20 17:42:57 +00:00
Royce Mitchell III
cd1222eced initialize fields that sosend() expects to have valid values
svn path=/trunk/; revision=10935
2004-09-20 15:47:03 +00:00
Gé van Geldorp
db2f0db5f7 Martin Fuchs <martin-fuchs@gmx.net>
- make drive letters in PIDLs always uppercase to enable PIDL
  comparison
- Unicodify _ILCreateDrive()

svn path=/trunk/; revision=10934
2004-09-20 15:36:07 +00:00
Gé van Geldorp
56dec0d9ee Merge back commit from winehq
svn path=/trunk/; revision=10933
2004-09-20 15:07:21 +00:00
Gé van Geldorp
91923bdc1d Mike McCormack <mike@codeweavers.com>
- Clean up messy comment in SHFileOperation.
- Reduce the number of goto labels in SHFileOperation by one.

svn path=/trunk/; revision=10932
2004-09-20 14:52:47 +00:00
Gé van Geldorp
88a015f877 Vitaliy Margolen <wine-patch@kievinfo.com>
- IShellFolder::CompareIDs - return only -1/0/1 in lower 16 bit.

svn path=/trunk/; revision=10931
2004-09-20 14:45:07 +00:00
Gé van Geldorp
8985a9b088 Alexandre Julliard <julliard@winehq.org>
- Don't define BEGIN_INTERFACE in unknwn.h.
Francois Gouget <fgouget@free.fr>
- Add #define COBJMACROS where needed in Wine.
Juan Lang <juan_lang@yahoo.com>
- IShellView seems reasonably complete, change a FIXME to a TRACE to
  speed up open/save dialogs.

Merge back commits from winehq

svn path=/trunk/; revision=10930
2004-09-20 14:38:30 +00:00
Gé van Geldorp
0785062c81 Alexandre Julliard <julliard@winehq.org>
- Get rid of the non-standard ICOM_DEFINE macro.
- Get rid of the non-standard ICOM_VFIELD macro.
- Get rid of the non-standard ICOM_VTABLE macro.
- Get rid of the no longer used ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
  macro.
- Removed some more uses of the non-standard ICOM_THIS macro.

svn path=/trunk/; revision=10929
2004-09-20 09:18:52 +00:00
Gé van Geldorp
f7f21544a4 Remove incorrect assert. An APC can be queued to the attached environment,
as long as it is delivered before KeDetachProcess() is called.

svn path=/trunk/; revision=10928
2004-09-20 08:17:44 +00:00
Art Yerkes
2d1b661aa1 Implemented MCLGET for reactos, not dependent on either bsd or oskit
facilities.

svn path=/trunk/; revision=10927
2004-09-20 05:03:28 +00:00
Art Yerkes
03fea0db7d Royce Mitchell pointed out that we could eliminate these ifdefs if we don't
use a uio, and that the uio is not needed because an mbuf can't be partially
accepted.

svn path=/trunk/; revision=10926
2004-09-20 04:18:45 +00:00
Royce Mitchell III
10adf2be06 sosend( ) will not process mbuf if you pass it a uio (according to arty)
svn path=/trunk/; revision=10925
2004-09-20 04:13:46 +00:00
Gé van Geldorp
5124ae5f88 Fix copy/paste error
svn path=/trunk/; revision=10924
2004-09-19 22:07:40 +00:00
Gé van Geldorp
b22290537c Francois Gouget <fgouget@free.fr>
- Moved declarations from undocshell.h to shlobj.h to match the latest
  platform SDK.

svn path=/trunk/; revision=10923
2004-09-19 22:02:28 +00:00
Royce Mitchell III
2613fbbeb9 added 'type' command
svn path=/trunk/; revision=10922
2004-09-19 15:55:35 +00:00
Thomas Bluemel
17cd1043bb 1. implemented SetProcessWorkingSetSize()
2. fixed Set/GetPriorityClass() not to call csrss and use NtSet/QueryInformationProcess() instead

svn path=/trunk/; revision=10921
2004-09-19 14:36:47 +00:00
Thomas Bluemel
b912ada645 don't memcpy TIME structures to FILETIME structures
svn path=/trunk/; revision=10920
2004-09-19 12:45:55 +00:00
Martin Fuchs
fb19ab485e remove explorer references
svn path=/trunk/; revision=10919
2004-09-19 12:33:17 +00:00
Martin Fuchs
00bbf934b7 added Wine translations for winefile:
es.rc, fr.rc, hu.rc, it.rc, nl.rc, pt.rc, ru.rc, si.rc, zh.rc
Thanks to Sylvain Petreolle <spetreolle@yahoo.fr>

svn path=/trunk/; revision=10918
2004-09-19 12:23:31 +00:00
Hartmut Birr
035b22b542 - Call MmFreeSectionSegments if the Bcb reference count is zero (in CcRosReleaseFileCache).
svn path=/trunk/; revision=10917
2004-09-19 12:11:44 +00:00
Gé van Geldorp
06bac7f0b9 Avoid crash
svn path=/trunk/; revision=10916
2004-09-19 11:25:43 +00:00
Gé van Geldorp
510df619d2 Sync to Wine-20040914
svn path=/trunk/; revision=10915
2004-09-19 11:15:58 +00:00
Gé van Geldorp
0645493981 Sync to Wine-20040914:
Robert Reif <reif@earthlink.net>
- Don't try to find alternate formats for non PCM formats.

svn path=/trunk/; revision=10913
2004-09-19 11:13:17 +00:00
Gé van Geldorp
601c767280 Sync to Wine-20040914:
David Kredba <kredba@ibot.cas.cz>
- Added Czech resources.
Robert Reif <reif@earthlink.net>
- Remove wine specific DRV_QUERYDSOUNDGUID message and calculate it in
  dsound.dll (like in 2k/xp).
Dmitry Timoshkov <dmitry@codeweavers.com>
- Fix an obvious typo leading to a crash.
Alexandre Julliard
- Function parameters don't need WINE_UNUSED.
Eric Pouech <pouech-eric@wanadoo.fr>
- Implemented the mmTask* functions.

svn path=/trunk/; revision=10912
2004-09-19 11:07:39 +00:00
Emanuele Aliberti
976020b12d .cvsignore updated.
svn path=/trunk/; revision=10911
2004-09-19 10:48:43 +00:00
Gé van Geldorp
7a8404b20f Sync to Wine-20040914:
Hans Leidekker <hans@it.vu.nl>
- Dutch resource translation.
Alexandre Julliard
- Removed some uses of the non-standard ICOM_THIS macro.
- Get rid of the no longer used ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
  macro.
Mike McCormack <mike@codeweavers.com>
- Fix some -Wsigned-compare warnings.
- Don't read past end of table in PathFileExistsDefExtW.
- Use the ACP define in MB/WC conversion functions.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Implement SHSimulateDrop, MIME_GetExtensionA/W, StrCpyNXA/W,
  SHAnsiToAnsi, SHUnicodeToUnicode.
Francois Gouget <fgouget@free.fr>
- Don't export the shell32 SHAllocShared functions by name.
- Implement them by calling out their shlwapi equivalent (which had a
  much more complete implementation anyway).
- Fix the prototype of shlwapi's SHAllocShared().
- Don't crash if lpvData is NULL in SHAllocShared().
- Add a conformance test to shlwapi.
- Assorted spelling fixes.
Diego Petten= <dgp85@users.sourceforge.net>
- Add support for file:/// urls in PathCreateFromUrl.
- Add support in UrlIs() for URLIS_DIRECTORY and URLIS_FILEURL flags.
James Hawkins <truiken@gmail.com>
- Fix buffer overflow in PathSetDlgItemPathW that led to a trashed
  stack.

svn path=/trunk/; revision=10910
2004-09-19 10:46:48 +00:00
Gé van Geldorp
77b4d47ea6 Sync to Wine-20040914:
Mike McCormack <mike@codeweavers.com>
- Avoid non-standard types in rpcdcep.h.
Alexandre Julliard:
- Get rid of the no longer used ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
  macro.
- Removed some uses of the non-standard ICOM_THIS macro.
Francois Gouget <fgouget@free.fr>
- Fix and unify parsing of calling conventions.
- Hack handling of 'struct { } *NDR_SCONTEXT;' so we don't cause a parse
  error as this is a valid C construct.
- Generate type tests for rpcrt4.
- Remove PRPC_BINDING_VECTOR and PUUID_VECTOR, they don't exist on
  Windows.
- Fix the MIDL_STUB_MESSAGE, MIDL_SERVER_INFO and
  MIDL_STUBLESS_PROXY_INFO structs.
- Add NDR_ALLOC_ALL_NODES_CONTEXT, NDR_POINTER_QUEUE_STATE and
  CS_STUB_INFO.

svn path=/trunk/; revision=10909
2004-09-19 10:35:24 +00:00
Gé van Geldorp
414bb6e2c0 Sync to Wine-20040914:
Mike McCormack <mike@codeweavers.com>
- Use buffers rather than linked lists for input and out buffers.
- Stop reading input at a nul byte.
Evan Deaubl <wine@warpedview.com>
- Stop processing input stream when the outermost RTF group is closed.

svn path=/trunk/; revision=10908
2004-09-19 10:28:59 +00:00
Gé van Geldorp
95fadd5bb4 Sync to Wine-20040914:
Huw Davies <huw@codeweavers.com>
- Change dialogs to use MS Shell Dlg rather than Helv or MS Sans Serif.
David Kredba <kredba@ibot.cas.cz>
- Added Czech resources.

svn path=/trunk/; revision=10907
2004-09-19 10:24:48 +00:00
Gé van Geldorp
5693a82971 Sync to Wine-20040914:
Alexandre Julliard:
- Added recursive idl target to allow updating idl files private to a
  dll.
- Get rid of the non-standard ICOM_THIS macro.
- Get rid of the no longer used ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
  macro.
- Inline functions don't need WINE_UNUSED.
- Don't define BEGIN_INTERFACE in unknwn.h.
Mike McCormack <mike@codeweavers.com>
- Fix some warnings found with -Wsign-compare.
Francois Gouget <fgouget@free.fr>
- Move the PROPVARIANT declaration from objidl.idl to propidl.idl.
- Move related API declarations from individual C files to propidl.idl.
- Remove uneeded include of propidl.h in the propvariant.c test.
Robert Shearman <rob@codeweavers.com>
- Fix PropVariantCopy for VT_LPSTR and VT_LPWSTR.
- Test case VT_BSTR, VT_LPSTR and VT_LPWSTR.
- Fix PropVariantClear to reject invalid types.
- Don't crash on NULL pointers.
- Add test case.

svn path=/trunk/; revision=10906
2004-09-19 10:20:48 +00:00
Gé van Geldorp
07a136b6e9 Sync to Wine-20040914:
Hans Leidekker <hans@it.vu.nl>
- Dutch resource translation.

svn path=/trunk/; revision=10905
2004-09-19 10:08:06 +00:00
Gé van Geldorp
6a086fc044 Sync to Wine-20040914:
Hans Leidekker <hans@it.vu.nl>
- Dutch resource translation.
David Kredba <kredba@ibot.cas.cz>
- Added Czech resources.

svn path=/trunk/; revision=10904
2004-09-19 10:07:26 +00:00
Gé van Geldorp
6dfffdb082 Sync to Wine-20040913:
Huw Davies <huw@codeweavers.com>
- Change dialogs to use MS Shell Dlg rather than Helv or MS Sans Serif.
- Fix printer selection in PD_PRINTSETUP type dialogs.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Use "MS Shell Dlg" in the Open File dialog templates as in Windows
- Resize child dialog when its controls are moved relatively stc32
  "magic" control.
- Y coordinate of the "magic" static control should be treated
  inclusively.
Jacek Caban <jack@itma.pwr.wroc.pl>
- Polish translation update.
Rein Klazes <rklazes@xs4all.nl>
- Fix a crash saving a file without file name extension and without
  extension filter.
Hans Leidekker <hans@it.vu.nl>
- Fix signed/unsigned comparison warnings.
Alexandre Julliard
- Removed some uses of the non-standard ICOM_THIS macro.
- Get rid of the no longer used ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
  macro.
- Get rid of the non-standard CONV_POINT and CONV_RECT functions.

svn path=/trunk/; revision=10903
2004-09-19 10:03:26 +00:00
Gé van Geldorp
a795a4185c Sync to Wine-20040913:
Robert Shearman <rob@codeweavers.com>
- Add 16x16 error, info and warning icons.
- Replace GetWindowLong by GetWindowLongPtr.
- Implement insert marks.
- Rearrange TOOLBAR_INFO.
- Clear data structure after dragging.
- WM_SETCURSOR does not need to be handled as it is not sent whilst
  the window is captured.
- Make uDragListMessage non-static so that we can re-use it
  elsewhere.
- Set class hbrBackground and style to the same as native.
- Set hbrBackground class property to same value as native.
- Use Unicode window functions instead of ANSI.
- Always redraw dialog on changing between pages.
- Set hbrBackground class property to same value as native.
- Remove no longer needed WM_ERASEBKGND handler.
- Use Unicode window functions instead of ANSI.
- Make customization list boxes into drag list boxes.
- Order available buttons in the same way as the native version.
- Obey TBCDRF_NOOFFSET for the button text.
- Make anchor highlighting behave more like native version.
- Don't recalculate toolbar in TOOLBAR_Unkwn460.
- Obey WM_SETREDRAW for the WM_ERASEBKGND message as well as
  WM_PAINT.
- TB_MARKITEM should redraw button.
- Send NM_LDOWN notification.
- NM_RDBLCLK only needs to send a NMHDR structure.
- On mouse notifications returning 0 DefWndProc should be called.
- Fix regression with IE's Menu Bar.
- Implement insert marks.
- Rearrange TOOLBAR_INFO.
- Fix anchor highlighting.
- Remove redundant test in TOOLBAR_DrawButton.
- Status update.
- Remove no longer valid comment.
- Minor coding style cleanups.
- Implement titles.
Hans Leidekker <hans@it.vu.nl>
- Fix signed/unsigned comparison warnings.
Ulrich Czekalla <ulrich@codeweavers.com>
- Forward focus to combobox, otherwise edit control won't get focus.
- The rectangle passed in DRAWITEMSTRUCT is slightly too large as
  compared with Windows.
- Clear tooltip when text is set to NULL.
- Repaint tooltip when item info changes.
Kevin Koltzau <kevin@plop.org>
- Fix bug with chained messages.
- Make SetWindowSubclass behave with SetWindowLong subclasses.
- Allow unlimited number of subclasses.
- Correct issue when SendMessage is called from within a subclass proc.
- Add regression test.
Huw Davies <huw@codeweavers.com>
- Change dialogs to use MS Shell Dlg rather than Helv or MS Sans Serif.
David Kredba <kredba@ibot.cas.cz>
- Added Czech resources.
Vitaliy Margolen <wine-patch@kievinfo.com>
- Send correct tracing notification messages.
Michael Stefaniuc <mstefani@redhat.de>
- Fix hotspot handling
- Remove unused flag from the InternalDrag struct.
Filip Navara <xnavara@volny.cz>
- Status update.
- Fix resizing of wizards.
- Fill the area next to watermark bitmap with window color and subclass
  exterior wizard pages to suppress drawing background.
- Correct displaying of wizard subtitle.
- Do not distinguish exterior wizard pages by their position, but
  instead expect that every page in wizard that doesn't have header is
  exterior.
- Move the property sheet resizing code from PROPSHEET_CreatePage to
  PROPSHEET_SetCurSel. It needs to be executed on every page change
  because the application can modify it during the notifications.
- Draw the Wizard97 header bitmaps before drawing the header strings.
- Center the header bitmap of the new Wizard97 correctly.
- Display the correct wizard title for any wizard type and do not
  change it for reqular property sheets.
- Fix loading wizard title and subtitle from resources.
Mike McCormack <mike@codeweavers.com>
- Calculate the correct size of dialog templates in the propsheet
  control.
Zach Gorman <zach@archetypeauction.com>
- OK button should be default in non-wizard property sheets.
- Propsheet pages need WS_EX_CONTROLPARENT style.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- CreateDCA -> CreateDCW
Vitaliy Margolen <wine-patch@kievinfo.com>
- Make sure TreeView gets redrawn after calling EnsureVisible.

svn path=/trunk/; revision=10902
2004-09-19 09:50:06 +00:00
Gé van Geldorp
4319f1c249 Sync to Wine-20040914:
Hans Leidekker <hans@it.vu.nl>
- Fix signed/unsigned comparison warnings.

svn path=/trunk/; revision=10901
2004-09-19 09:18:36 +00:00
Gé van Geldorp
5d5247de81 Prepare for syncing to Wine-20040914
svn path=/trunk/; revision=10900
2004-09-19 09:11:12 +00:00
Gé van Geldorp
ac1e392aec Fix insertion of APCs where the target thread is attached to another process
svn path=/trunk/; revision=10899
2004-09-18 19:43:00 +00:00
Magnus Olsen
767ca4f4ac fix some compilings warings when you using some optimze settings in gcc compiler
env.c: In function `RtlDestroyEnvironment':
env.c:108: warning: dereferencing type-punned pointer will break strict-aliasing rules
env.c: In function `RtlSetEnvironmentVariable':
env.c:347: warning: dereferencing type-punned pointer will break strict-aliasing rules
env.c:393: warning: dereferencing type-punned pointer will break strict-aliasing rules

svn path=/trunk/; revision=10898
2004-09-18 09:31:53 +00:00
Magnus Olsen
c98cf6b15e fix some compilings warings
svn path=/trunk/; revision=10897
2004-09-18 07:25:53 +00:00
Magnus Olsen
e1dbb4b414 fix last compilings warings from this file.
svn path=/trunk/; revision=10896
2004-09-18 07:10:14 +00:00
Magnus Olsen
b743a5f954 fix last compilings warings from this file.
svn path=/trunk/; revision=10895
2004-09-17 18:37:37 +00:00
Magnus Olsen
5a3f530e45 fix last compilings warings from this file.
svn path=/trunk/; revision=10894
2004-09-17 18:19:52 +00:00
Magnus Olsen
9a099491c4 fix last compilings warings from this file.
svn path=/trunk/; revision=10893
2004-09-17 18:12:17 +00:00
Magnus Olsen
94bcb6fe25 fix last compilings warings from this file.
svn path=/trunk/; revision=10892
2004-09-17 17:54:46 +00:00
Magnus Olsen
a99b01ff0c fix some compings warings not all yet
svn path=/trunk/; revision=10891
2004-09-17 17:47:14 +00:00
Magnus Olsen
7a1f8074b5 fix some compings warings not all yet
svn path=/trunk/; revision=10890
2004-09-17 17:31:08 +00:00
Martin Fuchs
25547e2d8c Handle "." and ".." as special direcory names and move them at the very first beginning of directory listings
svn path=/trunk/; revision=10888
2004-09-17 16:56:46 +00:00
Art Yerkes
1c08e25544 Userland test for lan.sys
svn path=/trunk/; revision=10887
2004-09-17 16:07:41 +00:00
Art Yerkes
77700375d6 Interface for lan.sys
svn path=/trunk/; revision=10886
2004-09-17 15:51:52 +00:00
Art Yerkes
83fc2a9406 Removed arp.h until the arp part is finished.
svn path=/trunk/; revision=10885
2004-09-17 15:51:07 +00:00
Art Yerkes
885107a541 lan.sys is a simple driver providing access to ndis. This stuff is
ripped from tcpip.sys in preparation for a big breakup.

svn path=/trunk/; revision=10884
2004-09-17 15:50:16 +00:00
Gé van Geldorp
865a63875c Restore old DBG and KDBG defaults
svn path=/trunk/; revision=10883
2004-09-17 14:48:20 +00:00
Magnus Olsen
74d54596e4 fix small spelling fault
svn path=/trunk/; revision=10882
2004-09-17 09:25:10 +00:00
Gé van Geldorp
6c4737effa Get rid of .edf files
svn path=/trunk/; revision=10881
2004-09-16 21:31:50 +00:00
Magnus Olsen
01926b2642 my small change to config to add optimze build for a cpu
did break build for shm
it  did need small change in makefile for lpc  now it works agein

sorry all

svn path=/trunk/; revision=10880
2004-09-16 19:22:12 +00:00
Magnus Olsen
f9b6a686e0 my small change to config to add optimze build for a cpu
did break build for nptest
it  did need small change in makefile for lpc  now it works agein

sorry all

svn path=/trunk/; revision=10879
2004-09-16 19:20:57 +00:00
Magnus Olsen
475dcac67e my small change to config to add optimze build for a cpu
did break build for mstest
it  did need small change in makefile for lpc  now it works agein

sorry all

svn path=/trunk/; revision=10878
2004-09-16 19:19:34 +00:00
Magnus Olsen
1106a16497 my small change to config to add optimze build for a cpu
did break build for lpc
it  did need small change in makefile for lpc  now it works agein

sorry all

svn path=/trunk/; revision=10877
2004-09-16 18:47:20 +00:00
Magnus Olsen
e75c574ed1 In config add switch OARCH for optimze build for the cpu you want
for rule.mak
remove hardcoding of optimze build for cpu.
-march=i486 to -march=$(OARCH)

svn path=/trunk/; revision=10876
2004-09-16 17:35:33 +00:00
Gé van Geldorp
8523764fef Add forceifhung flag
svn path=/trunk/; revision=10875
2004-09-16 12:46:43 +00:00
Martin Fuchs
21784c13af add shell32.a
svn path=/trunk/; revision=10874
2004-09-16 12:02:49 +00:00
Eric Kohl
9f8dc789cf Implement NtQueryDefaultUILanguage, NtQueryInstallUILanguage and NtSetDefaultUILanguage.
svn path=/trunk/; revision=10873
2004-09-16 11:47:18 +00:00
Eric Kohl
1672f6069e Sort entries and remove duplicates.
svn path=/trunk/; revision=10872
2004-09-16 11:46:17 +00:00
Gé van Geldorp
d3275bbd8b Get rid of .edf files
svn path=/trunk/; revision=10871
2004-09-16 10:25:18 +00:00
Martin Fuchs
0f892545b8 PaintDesktop(): print system version on desktop background
svn path=/trunk/; revision=10870
2004-09-15 20:53:43 +00:00
Thomas Bluemel
e740fd1758 add function to the header file
svn path=/trunk/; revision=10869
2004-09-15 19:01:23 +00:00
Thomas Bluemel
1388215acb added a few usermode helper functions to work with sparse files
svn path=/trunk/; revision=10868
2004-09-15 18:57:02 +00:00
Thomas Bluemel
bc5e02eafd forgot to commit this file
svn path=/trunk/; revision=10867
2004-09-15 17:06:34 +00:00
Aleksey Bragin
380da77736 Make icon drawing mode corresponding to the current display settings (4,8,16,24,32 bit colors)
By Semyon "Tappak" Novikov.

svn path=/trunk/; revision=10866
2004-09-15 16:03:09 +00:00
Martin Fuchs
57dbd89701 fix RegSetValueEx() call
svn path=/trunk/; revision=10865
2004-09-15 14:25:46 +00:00
Thomas Bluemel
650bd77805 implemented EnableVolumeCompression()
svn path=/trunk/; revision=10864
2004-09-15 13:32:27 +00:00
Martin Fuchs
919419da33 remove direct version output from desktop; instead store the activation flag into the registry
svn path=/trunk/; revision=10863
2004-09-15 10:55:02 +00:00
Martin Fuchs
83a9ed824f add winefile
svn path=/trunk/; revision=10862
2004-09-15 10:16:05 +00:00
Martin Fuchs
384543f280 move winefile into subsys/system
svn path=/trunk/; revision=10861
2004-09-15 10:08:34 +00:00
Hartmut Birr
e3c3fe8e95 - Fixed the length calculation in WriteConsoleOutputAttribute.
svn path=/trunk/; revision=10860
2004-09-14 22:30:56 +00:00
Hartmut Birr
581f980ede - Execute the reset command previous the present test for each unit (master/slave).
svn path=/trunk/; revision=10859
2004-09-14 22:09:06 +00:00
Eric Kohl
5ad00f54e3 - Use Unicode strings instead of WCHAR strings.
- Use FsRtl functions to handle wildcards.

svn path=/trunk/; revision=10858
2004-09-14 21:46:39 +00:00
Gé van Geldorp
5a97f250e7 Check if attached when terminating thread. Suggested by tamlin.
svn path=/trunk/; revision=10857
2004-09-14 18:37:40 +00:00
Thomas Bluemel
7678fed2ef do something in wcsnlen() - but it should be (as strnlen() in this file) not implemented there, just so IsBadStringPtrW() works even though it lacks SEH protection at the moment
svn path=/trunk/; revision=10856
2004-09-14 14:01:25 +00:00
Eric Kohl
4a4dcb92cf Implement SeLockSubjectContext and SeUnlockSubjectContext.
svn path=/trunk/; revision=10855
2004-09-14 11:04:48 +00:00
Thomas Bluemel
2da90fee73 little fix
svn path=/trunk/; revision=10854
2004-09-14 01:30:02 +00:00
Art Yerkes
dff481387d Added WSAStartup.
svn path=/trunk/; revision=10852
2004-09-13 22:59:22 +00:00
Thomas Bluemel
c7f278a12e silence debug message
svn path=/trunk/; revision=10850
2004-09-13 21:37:32 +00:00
Thomas Bluemel
09afb31c28 implemented RtlIpv4AddressToStringA/W and made ntdll export them.
svn path=/trunk/; revision=10848
2004-09-13 20:25:26 +00:00
Gé van Geldorp
2161bebe79 Fix closing of LPC ports
svn path=/trunk/; revision=10847
2004-09-13 19:10:45 +00:00
Jens Collin
32bd722bb4 Fixed small mistake in string handling in my last commit.
svn path=/trunk/; revision=10846
2004-09-13 18:04:09 +00:00
Thomas Bluemel
89c8c187f3 adapted RtlInt64ToUnicodeString() from RtlIntegerToUnicodeString()
svn path=/trunk/; revision=10845
2004-09-13 17:27:23 +00:00
Gé van Geldorp
40016817aa Log error code when freetype fails to initialize
svn path=/trunk/; revision=10844
2004-09-13 17:17:17 +00:00
Thomas Bluemel
30c43d3c95 adapted RtlIntegerToUnicode() from RtlIntegerToChar()
svn path=/trunk/; revision=10843
2004-09-13 16:58:58 +00:00
Eric Kohl
7347219eb4 Rename HANDLE_REP to HANDLE_ENTRY.
svn path=/trunk/; revision=10842
2004-09-13 14:43:50 +00:00
Eric Kohl
b6a00f0a9a RegQueryInfoKeyW returns correct security descriptor size.
svn path=/trunk/; revision=10841
2004-09-13 14:42:37 +00:00
Eric Kohl
44e5201910 - Implement AddAccessAllowedAceEx, AddAccessDeniedAceEx and AddAuditAccessAceEx.
- Add GetCurrentHwProfileW stub.

svn path=/trunk/; revision=10840
2004-09-13 12:14:55 +00:00
Eric Kohl
00443884ee - Return a default security descriptor when someone wants to retrieve the key security.
- Disable debug messages.

svn path=/trunk/; revision=10839
2004-09-13 11:46:07 +00:00
Eric Kohl
f34a907c7a - Fix a typo in RegGetKeySecurity().
- Set missing error values.

svn path=/trunk/; revision=10838
2004-09-13 11:41:26 +00:00
Eric Kohl
14f00f3aeb Implement RegGetKeySecurity.
svn path=/trunk/; revision=10837
2004-09-13 08:51:40 +00:00
Royce Mitchell III
b1958574f7 fix -lstdc++
svn path=/trunk/; revision=10836
2004-09-13 03:14:35 +00:00
Art Yerkes
baa35b140c Fixed -lstdc++.
svn path=/trunk/; revision=10835
2004-09-13 03:12:11 +00:00
Gé van Geldorp
556c9464b6 Make the end a little bit more interesting
svn path=/trunk/; revision=10834
2004-09-12 21:58:01 +00:00
Thomas Bluemel
ba5fcd9590 revert the changes i accidently committed to HEAD
svn path=/trunk/; revision=10831
2004-09-12 19:47:49 +00:00
Gé van Geldorp
d77482d763 Fix external termination of thread while thread is waiting in GetMessage()
svn path=/trunk/; revision=10830
2004-09-12 19:29:23 +00:00
Thomas Bluemel
eed6b713aa rewrote the gdi handle table that behaves similar 2k/XP and works without global locks
svn path=/trunk/; revision=10829
2004-09-12 19:21:08 +00:00
Thomas Bluemel
04ccf93084 reduce debug output
svn path=/trunk/; revision=10828
2004-09-12 18:50:03 +00:00
Jens Collin
5a1180477c Merged with wine. (Fixed const string handling)
svn path=/trunk/; revision=10827
2004-09-12 11:21:30 +00:00
Filip Navara
b7cf80521b - Fix MS2PS rule to work on Windows.
- Include PSEH header in the MS2PS generated files.

svn path=/trunk/; revision=10826
2004-09-12 10:22:31 +00:00
Gé van Geldorp
5334c75998 Add french language to syssetup. Fixes part 2 of bug 401.
Patch by Herv� Poussineau <poussine@freesurf.fr>

svn path=/trunk/; revision=10825
2004-09-12 09:52:48 +00:00
Gé van Geldorp
44d3d874aa Use Wine's language matching algorithm when searching for resources.
Fixes bug 261.

svn path=/trunk/; revision=10823
2004-09-11 17:06:33 +00:00
Eric Kohl
14399d738b - Implement FsRtlLegalAnsiCharacterArray.
- Fix FsRtlDissectDbcs and FsRtlDoesDbcsContainWildCards prototypes.

svn path=/trunk/; revision=10822
2004-09-11 14:49:41 +00:00
Eric Kohl
44c503e1d4 Define LOCALE_SYEARMONTH, DATE_YEARMONTH, DATE_LTRREADING and DATE_RTLREADING.
svn path=/trunk/; revision=10821
2004-09-11 08:48:27 +00:00
Filip Navara
37734f772d - Define NOTHING.
svn path=/trunk/; revision=10820
2004-09-11 03:54:42 +00:00
Filip Navara
6244c47ebf - Define FILE_USE_FILE_POINTER_POSITION and FILE_WRITE_TO_END_OF_FILE.
- Correct prototype of PFAST_IO_UNLOCK_ALL_BY_KEY.

svn path=/trunk/; revision=10819
2004-09-11 03:52:18 +00:00
Filip Navara
4ed49e10fb - Add declaration of FsRtlDissectName.
svn path=/trunk/; revision=10818
2004-09-11 03:51:13 +00:00
Steven Edwards
3585f39f48 We need to import ntdll for DbgPrint
svn path=/trunk/; revision=10817
2004-09-10 23:30:45 +00:00
Steven Edwards
c8686d8770 Added Filips patch allowing for Wine testing output to go to DbgPrint as well as stdout.
svn path=/trunk/; revision=10816
2004-09-10 23:30:23 +00:00
Steven Edwards
bd82ff9f5e Moved interlocked function to rosrtl rather than exporting them from ntdll as windows does not export them from there.
svn path=/trunk/; revision=10815
2004-09-10 23:29:28 +00:00
Steven Edwards
d0cbef2f9f minor bug fix for building with other headers.
svn path=/trunk/; revision=10814
2004-09-10 23:22:22 +00:00
Filip Navara
9a4721af9c Fix the reset sequence in AtapiFindDevices to work correctly in VMware.
svn path=/trunk/; revision=10813
2004-09-10 23:17:45 +00:00
Gé van Geldorp
fb16e656c4 Send CTRL_CLOSE_EVENT to processes attached to a console when that console
is closed. Default handle the event by terminating the process.

svn path=/trunk/; revision=10812
2004-09-10 22:14:52 +00:00
Steven Edwards
5f870e152c removed tests until a proper fix is found.
Sorry about the breakage.

svn path=/trunk/; revision=10811
2004-09-10 15:49:54 +00:00
Steven Edwards
1c6eb466cb Removed the user32 test pending a understanding of how to make our system and Wines play together. It needed to be moved to the user32 module as per Caspers recommendation.
svn path=/trunk/; revision=10810
2004-09-09 23:49:49 +00:00
Steven Edwards
099b821285 These tests pass under ReactOS with curret CVS. Trying to figure out how to make Caspers regression system and Wines system to play nice.
svn path=/trunk/; revision=10809
2004-09-09 23:48:36 +00:00
Hartmut Birr
faaad49380 - Implemented PAE (physical address extension) mapping.
- Added the command line switches /pae and /noexecute for enabling the PAE mapping.

svn path=/trunk/; revision=10808
2004-09-09 20:42:33 +00:00
Hartmut Birr
176e26ac5d - Implemented ExfInterlockedCompareExchange64 and ExfpInterlockedExchange64
svn path=/trunk/; revision=10807
2004-09-09 18:51:17 +00:00
Eric Kohl
a3105b78bf - Use SeQuerySecurityDescriptorInfo() to retrieve an objects security descriptor.
- Disable debug messages.

svn path=/trunk/; revision=10806
2004-09-09 12:20:48 +00:00
Steven Edwards
9071fcfe51 Added user32 regression tests that we pass to the regtests system. Working on reviewing all of the Wine tests we pass and then figuring out a way to merge them in with our testing framework.
svn path=/trunk/; revision=10805
2004-09-09 04:18:30 +00:00
Eric Kohl
b451846efb Add support for setting a security descriptor for a file. Send an
IRP_MJ_SET_SECURITY to the filesystem driver and return
STATUS_SUCCESS if the filesystem driver does not support
this IRP.

svn path=/trunk/; revision=10804
2004-09-08 11:42:56 +00:00
Eric Kohl
539582375e - Fix a typo in NtSetSecurityObject().
svn path=/trunk/; revision=10803
2004-09-08 11:39:59 +00:00
Eric Kohl
1b398faac1 Implement SetFileSecurityA/W.
svn path=/trunk/; revision=10802
2004-09-08 11:36:24 +00:00
Steven Edwards
a19098ac83 Add some resources from Winehq CVS.
svn path=/trunk/; revision=10801
2004-09-07 23:09:54 +00:00
Gé van Geldorp
b1c0463316 Fix compile-time warning, spotted by Sylvain Petreolle <spetreolle@yahoo.fr>
svn path=/trunk/; revision=10800
2004-09-07 14:27:04 +00:00
Eric Kohl
144119a87d Return a security descriptor that grants full access to everyone if a filesystem
driver does not handle IRP_MJ_QUERY_SECURITY.

svn path=/trunk/; revision=10799
2004-09-07 11:51:13 +00:00
Eric Kohl
67e0d5082e IopInvalidDeviceRequest must return STATUS_INVALID_DEVICE_REQUEST.
svn path=/trunk/; revision=10798
2004-09-07 11:48:16 +00:00
Hartmut Birr
d4595781ee - Removed most of the calls to KeAttachProcess/KeDetachProcess.
- Used the kernel map to map page tables from other process's.
  In the future this should be replaced by a per process kernel map (hyperspace map).

svn path=/trunk/; revision=10797
2004-09-07 11:08:16 +00:00
Hartmut Birr
a3d5d79146 - Added the dependency checking for precompiled headers.
svn path=/trunk/; revision=10796
2004-09-07 08:20:06 +00:00
Hartmut Birr
ff08835fad - Replaced the target extension with '.h.gch' if the source extension was '.h'
svn path=/trunk/; revision=10795
2004-09-07 08:14:30 +00:00
Eric Kohl
78d5c83574 Implement GetFileSecurityA/W.
svn path=/trunk/; revision=10794
2004-09-06 22:12:25 +00:00
Thomas Bluemel
ccbc81e0fa 1. make use of precompiled headers everywhere
2. moved some unicode stubs out of the ansi stub file

svn path=/trunk/; revision=10793
2004-09-06 21:15:46 +00:00
Thomas Bluemel
a961785e1d don't copy LARGE_INTEGER structs to FILETIME structs with memcpy, it works but it's confusing as they're different structures that happen to be identical.
svn path=/trunk/; revision=10792
2004-09-06 15:56:25 +00:00
Steven Edwards
b1d9a8f8ff We are not using wpp at this time. We can always add a
more recent copy if we ever need it.

svn path=/trunk/; revision=10791
2004-09-06 15:04:16 +00:00
Eric Kohl
23e7f4df4f Implement ANSI group and item functions.
svn path=/trunk/; revision=10790
2004-09-06 12:00:40 +00:00
Hartmut Birr
873819daac - Check first for an existing directory object in NtCreateDirectoryObject.
svn path=/trunk/; revision=10789
2004-09-05 22:26:17 +00:00
Hartmut Birr
5fa2297ffd - Returned STATUS_OBJECT_NAME_NOT_FOUND if no directory was found in ObReferenceObjectByName.
svn path=/trunk/; revision=10788
2004-09-05 22:25:36 +00:00
Emanuele Aliberti
ad39a9fec5 .cvsignore updated.
svn path=/trunk/; revision=10787
2004-09-05 12:34:25 +00:00
Emanuele Aliberti
55003962a3 Version information added.
.cvsignore updated.

svn path=/trunk/; revision=10786
2004-09-05 12:27:36 +00:00
Art Yerkes
703e2aa5f9 Fixes:
Socket destruction is correct.  When IRPs are left to cancel, the socket
will remain until all pending irps complete.  The DestroySocket function
does this.  It is always safe to call DestroySocket at any time after the
FsContext member of the FileObject has been nulled.

Fixed UDP data delivery in.  UDP send still has a problem but it seems to
be in tcpip.sys more than likely.  I've sliced another 6000 lines out of
tcpip.sys that i will debug as a userspace library and link to tcpip.

Fixed poll reeval (old reported bug fix I hadn't committed yet).

Miscellaneously better sanity in a few rough spots.

svn path=/trunk/; revision=10785
2004-09-05 04:26:30 +00:00
Steven Edwards
2c8687b1a2 disable typedef for socklen_t for the moment.
svn path=/trunk/; revision=10784
2004-09-04 21:44:30 +00:00
Filip Navara
f0120ac1d7 Handle matching of "f0_*.*" expression to "f0_000" file name in FsRtlIsNameInExpression and add relevant regression test.
svn path=/trunk/; revision=10783
2004-09-04 15:02:00 +00:00
Magnus Olsen
67a29489d2 fix compings warings
not all waring have been fix

svn path=/trunk/; revision=10782
2004-09-04 10:51:20 +00:00
Steven Edwards
4074dc813b Added check for socklen_t
svn path=/trunk/; revision=10781
2004-09-03 21:34:48 +00:00
Magnus Olsen
d2e1a6010a fix compings warings
src/types.c: In function `pap_qstring':
src/types.c:99: warning: passing arg 2 of `adns__alloc_interim' as unsigned due to prototype
src/types.c:103: warning: passing arg 3 of `memcpy' as unsigned due to prototype
src/types.c: In function `pap_domain':
src/types.c:352: warning: passing arg 2 of `adns__alloc_interim' as unsigned due to prototype
src/types.c:356: warning: passing arg 3 of `memcpy' as unsigned due to prototype
src/types.c: In function `pap_findaddrs':
src/types.c:422: warning: passing arg 2 of `adns__vbuf_ensure' as signed due to prototype
src/types.c: In function `csp_hostaddr':
src/types.c:573: warning: passing arg 3 of `csp_qstring' as signed due to prototype
src/types.c: In function `icb_ptr':
src/types.c:705: warning: passing arg 3 of `memcmp' as unsigned due to prototype
src/types.c: In function `pa_ptr':
src/types.c:747: warning: passing arg 3 of `memcpy' as unsigned due to prototype
src/types.c:755: warning: passing arg 3 of `memcmp' as unsigned due to prototype
src/types.c:765: warning: passing arg 1 of `htonl' as unsigned due to prototype
src/types.c: In function `pap_mailbox822':
src/types.c:880: warning: passing arg 2 of `adns__alloc_interim' as unsigned due to prototype
src/types.c:881: warning: passing arg 3 of `memcpy' as unsigned due to prototype

svn path=/trunk/; revision=10780
2004-09-03 17:47:29 +00:00
Magnus Olsen
c203723e4f compings warings. and some did have wrong protypes.
0. fix warning: passing arg 1 of `send' as unsigned due to prototype
1. fix warning: passing arg 3 of `memcpy' as unsigned due to prototype
2. fix warning: passing arg 3 of `send' as signed due to prototype
3. fix warning: unused variable `bytes_written'
4. fix warning: dereferencing type-punned
    pointer will break strict-aliasing rules

5. fix warning: dereferencing type-punned
   pointer will break strict-aliasing rules

svn path=/trunk/; revision=10779
2004-09-03 16:49:18 +00:00
Filip Navara
d6740a2c10 - Disable debugging messages.
svn path=/trunk/; revision=10778
2004-09-03 04:44:45 +00:00
Filip Navara
87204d5906 - Revert the I/O port change from my previous patch. I didn't notice we're doing "+ 2" there.
svn path=/trunk/; revision=10777
2004-09-03 04:19:12 +00:00
Filip Navara
2d99115181 Issue soft reset command for identification and not ATAPI reset command which works only for packet based devices like CD-ROM drives and it's use on ATA devices is prohibited by the standard. If an ATAPI device is detected then and only then issue the ATAPI reset command. Also fix the addresses in AtapiClaimHwResources. This might fix bug #406.
svn path=/trunk/; revision=10776
2004-09-03 02:55:50 +00:00
Magnus Olsen
46256f9c81 fix lite more waring when it compiling
svn path=/trunk/; revision=10775
2004-09-03 00:15:04 +00:00
Magnus Olsen
88adadd6c6 fix follow warings msg
Warning: resolving  x by linking to
                DrvCopyContext@12
	DrvCreateContext@4
	DrvCreateLayerContext@8
	DrvDeleteContext@4
	DrvDescribeLayerPlane@20
	DrvDescribePixelFormat@16
	DrvGetLayerPaletteEntries@20
	DrvGetProcAddress@4
	DrvReleaseContext@4
	DrvRealizeLayerPalette@12
	DrvSetContext@12
	DrvSetLayerPaletteEntries@20
	DrvSetPixelFormat@8
	DrvShareLists@8
	DrvSwapBuffers@4
	DrvSwapLayerBuffers@8
	DrvValidateVersion@4

svn path=/trunk/; revision=10774
2004-09-02 23:51:07 +00:00
Magnus Olsen
a40f706f8e change ccflags = -O march=i386 to march=i486
All asm code are writen for i486. so why did we compile it for i386 when it does not work on i386.

svn path=/trunk/; revision=10773
2004-09-02 19:49:44 +00:00
Art Yerkes
198d9eefbc ADNS lib afer eol conversion. Greatlord pointed out that the DOS eols
checked in double when checked out in a certain way on windows.

svn path=/trunk/; revision=10772
2004-09-02 19:03:45 +00:00
Art Yerkes
b880d380cc Added python command app to oskit test.
svn path=/trunk/; revision=10771
2004-09-02 02:33:11 +00:00
Art Yerkes
05cf09a12d Activate dnsapi and adns.
svn path=/trunk/; revision=10770
2004-09-01 23:49:39 +00:00
Filip Navara
0f860fb51e - Disable debugging messages.
svn path=/trunk/; revision=10768
2004-09-01 20:41:07 +00:00
Art Yerkes
8e1426d027 Implement WSHGetWildcardAddress
svn path=/trunk/; revision=10766
2004-09-01 03:39:29 +00:00
Art Yerkes
500044ccc8 Corrected compile error due to different enum used in prototype.
svn path=/trunk/; revision=10765
2004-09-01 02:33:50 +00:00
Art Yerkes
f8b9ad2133 EXT2 should now be allowed in arcnames, etc.
svn path=/trunk/; revision=10764
2004-09-01 00:37:29 +00:00
Filip Navara
d9002d2afe - Allow shared read access to the debug.log file.
svn path=/trunk/; revision=10763
2004-09-01 00:15:08 +00:00
Filip Navara
03d477407b - Don't use ULONG for storing pointers.
svn path=/trunk/; revision=10762
2004-08-31 23:53:40 +00:00
Filip Navara
92b839476c - Don't use ULONG for storing pointers.
svn path=/trunk/; revision=10761
2004-08-31 23:48:02 +00:00
Gé van Geldorp
1d76d6dd93 - Return value of WM_GETTEXTLENGTH is in TCHARs, not in bytes, so there is
no need to convert between Ansi and Unicode (number of characters remains
  the same)
- Allocate Ansi buffer for WM_GETTEXT since MultiByteToWideChar can't handle
  overlapping buffers

svn path=/trunk/; revision=10760
2004-08-31 23:32:01 +00:00
Hartmut Birr
a9bae8fa65 - Removed the member OldProcess from the ETHREAD structure.
svn path=/trunk/; revision=10759
2004-08-31 20:17:18 +00:00
Hartmut Birr
2d0d1ee993 - Allow always shared read for a file which is opened for read only.
svn path=/trunk/; revision=10758
2004-08-31 20:07:06 +00:00
Hartmut Birr
4f6383edcb - Store always offsets on cluster boundaries in FCB->LastOffset.
svn path=/trunk/; revision=10757
2004-08-31 20:02:24 +00:00
Filip Navara
0ebfc36a78 - Fix converting of UTF8 sequences in IntMultiByteToWideCharUTF8.
svn path=/trunk/; revision=10755
2004-08-31 19:54:14 +00:00
Filip Navara
3db1c05c05 - Restoring of character size in VBEResetHw. Patch by Herv� Poussineau.
svn path=/trunk/; revision=10754
2004-08-31 18:28:50 +00:00
Filip Navara
9cc8b8a571 - Use FsRtl routines for wildcard handling.
svn path=/trunk/; revision=10753
2004-08-31 16:08:38 +00:00
Hartmut Birr
b50ad1e5ec - Fixed some wchar to char translations.
svn path=/trunk/; revision=10751
2004-08-31 14:40:50 +00:00
Filip Navara
d4aa975e56 Implement IntWideCharToMultiByteUTF8 since it's needed for saving Explorer configuration. (This change should be ported to the release branch.)
svn path=/trunk/; revision=10748
2004-08-31 07:01:43 +00:00
Filip Navara
67d68774ab - Revise order of PsInitializeThread to insert the thread to the lists after *all* the fields are initialized and while holding the PiThreadListLock lock acquired.
svn path=/trunk/; revision=10747
2004-08-31 06:08:38 +00:00
Steven Edwards
51bdcda011 Removed SeaShell from the tip.
Its in the attic if anyone needs to look at it.

svn path=/trunk/; revision=10746
2004-08-31 02:38:41 +00:00
Filip Navara
37aba5c9fc - Add NET_NIC.inf and syssetup.inf files to bootcd.
svn path=/trunk/; revision=10745
2004-08-30 20:33:36 +00:00
Filip Navara
e78e4ea757 - Close the registry hive file object in CmiInitNonVolatileRegistryHive.
svn path=/trunk/; revision=10744
2004-08-30 19:28:59 +00:00
Art Yerkes
9980d7cf9c Since system services are now provided by the client, we need the
callback struct first.

svn path=/trunk/; revision=10743
2004-08-30 18:12:30 +00:00
Eric Kohl
6277a93862 - Fixed some compiler warnings.
- Detect and report PCI-BIOS.

svn path=/trunk/; revision=10742
2004-08-30 10:53:38 +00:00
Martin Fuchs
3dd13e9ba0 fix tab order
svn path=/trunk/; revision=10741
2004-08-30 06:29:46 +00:00
Martin Fuchs
626e081cd1 Display "ReactOS" instead of "Microsoft Windows NT" for the ROS builded version
svn path=/trunk/; revision=10740
2004-08-30 06:28:54 +00:00
Emanuele Aliberti
d43c07d508 .cvsignore added.
svn path=/trunk/; revision=10739
2004-08-30 05:40:13 +00:00
James Tabor
2173fff654 Added Advpack to build process.
svn path=/trunk/; revision=10738
2004-08-30 04:59:40 +00:00
James Tabor
9f62d71a84 First implementation of advpack.dll.
svn path=/trunk/; revision=10737
2004-08-30 04:49:03 +00:00
Art Yerkes
5f189314eb Test app for oskittcp. Takes datagrams by UDP and send any replies to the
last host/port that contacted it.  I intend to use it to finish isolating
bugs in the main body of tcpip.sys and oskittcp interface.

svn path=/trunk/; revision=10736
2004-08-30 04:47:34 +00:00
Aleksey Bragin
e43bc9a08b Added WintrustAddActionID stub.
Added CRYPT_REGISTER_ACTIONID struct
Added CRYPT_TRUST_REG_ENTRY struct.z ` By Semyon "Tappak" Novikov.

svn path=/trunk/; revision=10735
2004-08-29 20:47:18 +00:00
Art Yerkes
aa3eb8fc7c Oskit can now be linked from userland. This is part one of my plan.
tcpip: provide malloc + free, sleep + wakeup functions
oskittcp: remove functions and headers that imply km and supply them from the
user.
tcp_usrreq: i was printing a possibly free mbuf here.

svn path=/trunk/; revision=10734
2004-08-29 20:04:42 +00:00
Art Yerkes
e78fa73912 This patch adds actually informative messages about what went wrong loading
the registry entries for NLS files, etc.

svn path=/trunk/; revision=10733
2004-08-29 18:29:48 +00:00
Thomas Bluemel
cb968187d0 silence debug messages
svn path=/trunk/; revision=10732
2004-08-29 15:50:53 +00:00
Thomas Bluemel
bc95cf8c84 implemented SetProcessPriorityBoost() and GetProcessPriorityBoost() (only the kernel32 part)
svn path=/trunk/; revision=10731
2004-08-29 14:46:02 +00:00
Thomas Bluemel
001b020926 mark GetSystemWindowsDirectory() as implemented as it does exactly the same as GetWindowsDirectory()
svn path=/trunk/; revision=10730
2004-08-29 12:12:34 +00:00
Filip Navara
a48983fc6d - Use ULONG_PTR instead of ULONG for integer arithmetics on pointers.
svn path=/trunk/; revision=10729
2004-08-28 22:22:39 +00:00
Filip Navara
28c8c91905 - Implement file sharing checks.
svn path=/trunk/; revision=10728
2004-08-28 22:19:12 +00:00
Filip Navara
3a31604b7d - Mapping zero-sized files is prohibited.
svn path=/trunk/; revision=10727
2004-08-28 22:18:24 +00:00
Filip Navara
f81fb98e23 - Simplify CreateFileMapping[AW].
- Fix return value of GlobalReAlloc and GlobalUnlock.

svn path=/trunk/; revision=10726
2004-08-28 22:16:27 +00:00
Filip Navara
b1f6932d44 - RtlReAllocateHeap shouldn't allocate memory if ptr == NULL.
svn path=/trunk/; revision=10725
2004-08-28 22:14:08 +00:00
Filip Navara
034e605634 - Change GlobalDiscard and LocalDiscard to macros.
svn path=/trunk/; revision=10724
2004-08-28 22:09:53 +00:00
Filip Navara
e97f806718 - Simplified version of _lcreat.
svn path=/trunk/; revision=10723
2004-08-28 22:08:54 +00:00
Filip Navara
9008b900fe - Fix handling of INVALID_HANDLE_VALUE case in FindNextFile.
svn path=/trunk/; revision=10722
2004-08-28 22:07:51 +00:00
Filip Navara
20ab7d6b27 - Remove invalid code from CreateToolhelp32Snapshot.
svn path=/trunk/; revision=10721
2004-08-28 22:06:02 +00:00
Gé van Geldorp
16034df8e6 Prevent crash when a thread is terminated while sending a cross-thread
message

svn path=/trunk/; revision=10719
2004-08-28 15:01:46 +00:00
Eric Kohl
5dda152b8d Use '$Windows NT$' signature because setupapi doesn't accept '$ReactOS$' yet.
svn path=/trunk/; revision=10718
2004-08-28 12:42:19 +00:00
Eric Kohl
0251ddf48c - Add preliminary wizard page title and subtitle string resources.
- Use setupapi functions to process syssetup.inf.

svn path=/trunk/; revision=10717
2004-08-28 11:08:50 +00:00
Gé van Geldorp
0d89489d43 Remove NASM_CMD definition since it is already correctly defined in the
top level rules.mak

svn path=/trunk/; revision=10716
2004-08-28 07:27:22 +00:00
James Tabor
1f00798a4b Cvs ingnore file added.
svn path=/trunk/; revision=10715
2004-08-27 23:10:13 +00:00
James Tabor
7f32d07583 Port of Msiexec from Wine.
svn path=/trunk/; revision=10714
2004-08-27 23:08:00 +00:00
James Tabor
e51ac8f476 Port Wine Msiexec to ROS.
svn path=/trunk/; revision=10713
2004-08-27 22:54:29 +00:00
Gé van Geldorp
1f0d87df05 Change nasm to nasmw (to match what's used in the reactos module)
svn path=/trunk/; revision=10712
2004-08-27 20:38:24 +00:00
Art Yerkes
ad74693225 This adds a rule which will trigger automatic conversion between msvc
style and pseh syntactically.  Name any file that should be converted
as foo_msvc.c and put foo.o in TARGET_OBJECTS and the file will be
preprocessed.

I asked some opinions about the naming and everyone seems ok with it.

svn path=/trunk/; revision=10711
2004-08-27 18:24:28 +00:00
Aleksey Bragin
fbd1a52cdf Wintrust lib stub (not imported from Wine). By Semyon "Tappak" Novikov.
svn path=/trunk/; revision=10709
2004-08-27 12:10:27 +00:00
Aleksey Bragin
d4c39be9ba Header file for wintrust lib. By Semyon "Tappak" Novikov.
svn path=/trunk/; revision=10708
2004-08-27 12:06:29 +00:00
Hartmut Birr
1a80e84bb2 - Establish the pde's for the callback stack if the stack was recycled from the list.
svn path=/trunk/; revision=10705
2004-08-27 10:25:46 +00:00
Hartmut Birr
16a24538c2 - Establish the pde for the thread structure within the process
before a switch to the process occurs.

svn path=/trunk/; revision=10704
2004-08-27 10:24:04 +00:00
Filip Navara
aa00673d45 - Complete rewrite of environment variable handling to get rid of memory leaks, heap corruption and spurious pointers.
- Remove some ancient Wine stuff that either wasn't used or didn't work.
- Fix realloc to not call HeapReAlloc for allocating new memory.

svn path=/trunk/; revision=10703
2004-08-27 03:08:23 +00:00
Gregor Anich
0f59361d11 Do not call HalReleaseDisplayOwnership when KDB is entered and screen debugging is not enabled. After an exception the screen will not turn blue but will freeze and be un-frozen when KDB is left (cont) I hope this can not damage old monitors if the card starts producing garbage signals when the driver is suspended - in VMWare it works well.
svn path=/trunk/; revision=10702
2004-08-27 00:14:01 +00:00
Magnus Olsen
2d8bef8799 fix
some waring msg  when it being compile

svn path=/trunk/; revision=10701
2004-08-26 21:08:06 +00:00
Gé van Geldorp
7f48b18098 Bump version number to 0.2.5
svn path=/trunk/; revision=10700
2004-08-26 21:05:42 +00:00
Robert Kopferl
509a299316 changed back to CVS, false br
svn path=/trunk/; revision=10698
2004-08-26 20:36:11 +00:00
Robert Kopferl
9e24ae99ae changed to RC1
svn path=/trunk/; revision=10697
2004-08-26 20:24:40 +00:00
Hartmut Birr
df72452da1 - Changed -Wno-strict-aliasing to -fno-strict-aliasing.
- Reduced optimisation from -O6 to -O3.

svn path=/trunk/; revision=10696
2004-08-26 19:55:20 +00:00
Magnus Olsen
5b63ba578e fix
some waring msg  when it being compile

svn path=/trunk/; revision=10695
2004-08-26 19:53:37 +00:00
Magnus Olsen
7eaa01f5e9 fix
some waring msg  when it being compile
type
redefinition of `LPCOLESTR16'
redefinition of `OLECHAR16'
redefinition of `LPOLESTR16'

svn path=/trunk/; revision=10693
2004-08-26 16:48:46 +00:00
Gregor Anich
87bdedbed2 Change stabs handling of KDB - does no longer allocate a block of memory for each stub entry, instead each .sym file is loaded completely into (non-paged) memory.
svn path=/trunk/; revision=10692
2004-08-26 16:04:50 +00:00
Hartmut Birr
66ff876aa8 - Implemented GetACP() and GetOEMCP().
svn path=/trunk/; revision=10691
2004-08-26 16:03:09 +00:00
Hartmut Birr
3b571ec48d - Added more nls files.
svn path=/trunk/; revision=10690
2004-08-26 16:01:26 +00:00
Magnus Olsen
41b885d24d fix
waring msg  when it being compile

svn path=/trunk/; revision=10689
2004-08-26 15:11:50 +00:00
Gé van Geldorp
9dc1445d4c If SendMessageTimeout() times out, GetLastError() should return 0
svn path=/trunk/; revision=10688
2004-08-26 12:29:37 +00:00
Magnus Olsen
e90a1b168c fix
ntoskrnl so it can be compile with optimze -O2 or higher

svn path=/trunk/; revision=10687
2004-08-26 11:58:33 +00:00
Gé van Geldorp
5b3ce7b494 Fix MSVCRT compile-time error due to duplicate symbol definition
svn path=/trunk/; revision=10686
2004-08-26 07:54:47 +00:00
Gregor Anich
e9706d1315 Change <GL\\gl.h> to "GL/gl.h" include.
svn path=/trunk/; revision=10685
2004-08-26 02:04:48 +00:00
Gregor Anich
94ec82db25 Fix GL/glu.h include...
svn path=/trunk/; revision=10684
2004-08-26 01:54:03 +00:00
Gregor Anich
94d6abb6d2 Fix GL/gl.h include for cross-compiling from linux.
svn path=/trunk/; revision=10683
2004-08-26 01:52:06 +00:00
Gé van Geldorp
93b57832ce Avoid arithmetic overflow
svn path=/trunk/; revision=10682
2004-08-25 22:31:01 +00:00
Casper Hornstrup
6fa3492ab7 2004-08-25 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/cdmake/cdmake.c: Error out if extension is too long.

svn path=/trunk/; revision=10681
2004-08-25 20:47:22 +00:00
Gregor Anich
a8e8bea6fa Disable SSE - When Mesa with SSE enabled is ran in ReactOS/VMWare it crashes with SIGILL.
svn path=/trunk/; revision=10680
2004-08-25 20:20:09 +00:00
Gregor Anich
ca451d1442 Add OpenGL to the user libraries (glu32, mesa32, opengl32)
svn path=/trunk/; revision=10679
2004-08-25 15:58:12 +00:00
Filip Navara
1e7841a2e8 - Implement CcRepinBcb and CcGetFileObjectFromBcb.
- Partially implement CcUnpinRepinnedBcb, CcPinMappedData,
  CcPinRead, CcPreparePinWrite, CcInitializeCacheMap (Art Yerkes)
  and CcUninitializeCacheMap.
- Fix ReadCacheSegmentChain to handle correctly big request and
  check for MDL request memory overflow.
- Allow passing NULL BCB to CcSetFileSizes.
- Ensure that registry files are opened using lowercase file names.

svn path=/trunk/; revision=10678
2004-08-25 15:08:29 +00:00
Filip Navara
b8648c7bf4 - Do not depend on paths returned by FileNameInformation requests to be NULL terminated.
svn path=/trunk/; revision=10677
2004-08-25 15:04:19 +00:00
Filip Navara
e877ccfb63 - Fix masking out the write flags in IoCheckShareAccess and IoSetShareAccess.
svn path=/trunk/; revision=10676
2004-08-25 15:01:48 +00:00
Gregor Anich
cfc4008f6b Mesa version 6.1 import - Forgot the new Makefile/def file
svn path=/trunk/; revision=10675
2004-08-25 12:43:28 +00:00
Gregor Anich
d0f74a3f67 Mesa version 6.1 import.
svn path=/trunk/; revision=10674
2004-08-25 12:35:24 +00:00
Hartmut Birr
c56daa8b92 - Fixed the back-space-handling in ConioWriteConsole.
svn path=/trunk/; revision=10673
2004-08-25 10:37:14 +00:00
Filip Navara
2f4838080b Fix compilation with GCC 3.4.x
svn path=/trunk/; revision=10672
2004-08-24 18:27:53 +00:00
Filip Navara
0e272062f2 - Add definition of LOCALE_IDEFAULTMACCODEPAGE.
svn path=/trunk/; revision=10671
2004-08-24 17:36:15 +00:00
Filip Navara
489265e774 - Load also the last font file in the font directory.
svn path=/trunk/; revision=10670
2004-08-24 17:29:00 +00:00
Filip Navara
df072d8e25 - Always use non-antialiased font for consoles.
- Minor correction to multibyte character conversion for GUI consoles.
- Support for non-ENABLE_PROCESSED_OUTPUT and non-ENABLE_WRAP_AT_EOL_OUTPUT modes in ConioWriteConsole.
- Other minor fixes to get Wine Kernel32 Console test working.

svn path=/trunk/; revision=10669
2004-08-24 17:25:17 +00:00
Filip Navara
5e458f6f4e - Implementation of GetCPFileNameFromRegistry, GetNlsSectionName and IsValidCodePage.
- Partial implementation of MultiByteToWideChar and WideCharToMultiByte.
- Cleanup buffer allocation in some console functions.

svn path=/trunk/; revision=10668
2004-08-24 17:21:12 +00:00
Filip Navara
29fc781674 - Fix Get[System/Window]Directory[AW] for Buffer == NULL case.
- Fix return value of GetDriveType[AW].

svn path=/trunk/; revision=10667
2004-08-24 17:15:42 +00:00
Filip Navara
ccec5bfedd - Remove dereferencing non-referenced FileObject in error cases.
svn path=/trunk/; revision=10666
2004-08-24 17:08:18 +00:00
Filip Navara
aaa5aaec7e - Fix NtQueryDirectoryObject for empty directories.
svn path=/trunk/; revision=10665
2004-08-24 17:07:27 +00:00
Gé van Geldorp
1230297d02 Add shutdown registry entries
svn path=/trunk/; revision=10664
2004-08-24 09:43:33 +00:00
Hartmut Birr
b78c2817c4 - Check if the given address points into a valid section (in MmUnmapViewOfSection).
- Check if the section isn't deleted straight (in MmUnmapViewOfSection).

svn path=/trunk/; revision=10663
2004-08-23 22:29:43 +00:00
Gé van Geldorp
e208613f37 Implement ConvertSidToStringSidA/w
svn path=/trunk/; revision=10662
2004-08-23 21:16:26 +00:00
James Tabor
a380ffb184 Fixed import unicode names from remote processes.
svn path=/trunk/; revision=10661
2004-08-23 14:28:29 +00:00
Hartmut Birr
34e45ee1c2 - Enabled the declaration of DbgPrint because they is used in DPRINT and CHECKPOINT macros.
svn path=/trunk/; revision=10660
2004-08-22 21:06:36 +00:00
Hartmut Birr
868756af46 - Fixed the compilation as unicode.
- Search only for the file name directly if the name contains a known extension.
- Don't add an extension if the file name contains a known extension.

svn path=/trunk/; revision=10659
2004-08-22 20:55:15 +00:00
Filip Navara
4af77c2b3c - Implement ReadConsoleInputW, PeekConsoleInputW, ReadConsoleOutputW, WriteConsoleOutputW, SetConsoleIcon and GetConsoleWindow.
- Fix input peeking in CSRSS to not return fake events.

svn path=/trunk/; revision=10658
2004-08-22 20:52:28 +00:00
Filip Navara
cce0fb451f - More complete implementation of CharUpperA.
svn path=/trunk/; revision=10657
2004-08-22 20:51:57 +00:00
Filip Navara
270129d009 - Implement NtNotifyChangeDirectoryFile.
- Honour ApcRoutine and ApcContext parameters of NtQueryDirectoryFile.

svn path=/trunk/; revision=10656
2004-08-22 20:51:43 +00:00
Hartmut Birr
1b391b9333 - Fixed the compilation as unicode.
svn path=/trunk/; revision=10655
2004-08-22 20:47:20 +00:00
Hartmut Birr
2f1ea7feae - Added '-Werror' to the compiler options.
svn path=/trunk/; revision=10654
2004-08-22 20:37:05 +00:00
Hartmut Birr
df7a301805 - Fixed some 'dereferencing type-punned pointer will break strict-aliasing rules'
warnings on higher optimisation levels.

svn path=/trunk/; revision=10653
2004-08-22 20:32:32 +00:00
Hartmut Birr
adc7fbb548 - Fixed some pointer increments/decrements.
svn path=/trunk/; revision=10652
2004-08-22 20:13:44 +00:00
Mike Nordell
15ffb673df Safety added to trace output.
svn path=/trunk/; revision=10651
2004-08-22 18:49:11 +00:00
Art Yerkes
c24ef8433f AFD: Fixed handling of cancelling in flight requests when closing the socket.
Closing a socket doesn't crash but still hangs.  Needs work.
oskittcp: corrected problem with send data, trying out slightly different
scheme of dealing with closed socket.
tcpip: added support for SEL_FIN in socket state callback and corrected
support for returning error in TCPReceiveData.

svn path=/trunk/; revision=10650
2004-08-22 18:42:42 +00:00
Art Yerkes
36d2e136c7 Fixed missing unlock in write.
svn path=/trunk/; revision=10649
2004-08-22 02:15:57 +00:00
Mike Nordell
2496ef39ee Fix misplaced STDCALL
svn path=/trunk/; revision=10648
2004-08-21 21:20:08 +00:00
Mike Nordell
c373c9ebb1 Make inline assembler compilable using VC
svn path=/trunk/; revision=10647
2004-08-21 21:14:59 +00:00
Mike Nordell
96b46798d8 Wrong path in comment.
svn path=/trunk/; revision=10646
2004-08-21 21:13:45 +00:00
Mike Nordell
0d5eda7a62 Fix misplaced STDCALL
svn path=/trunk/; revision=10645
2004-08-21 21:09:39 +00:00
Mike Nordell
7095fe07cd Fix misplaced STDCALL
svn path=/trunk/; revision=10644
2004-08-21 20:55:41 +00:00
Mike Nordell
b7e51fe08f Fix arithmetics on void.
svn path=/trunk/; revision=10643
2004-08-21 20:47:28 +00:00
Mike Nordell
cb6798f145 Fix arithmetics on void.
svn path=/trunk/; revision=10642
2004-08-21 20:42:10 +00:00
Mike Nordell
03e25a0998 Fix misplaced STDCALL calling convention specifiers.
svn path=/trunk/; revision=10641
2004-08-21 20:40:27 +00:00
Mike Nordell
1c43621083 Fix import/export linkage mismatches.
svn path=/trunk/; revision=10640
2004-08-21 20:18:07 +00:00
Mike Nordell
f04772cf3e Make code portable to compilers with SEH.
svn path=/trunk/; revision=10639
2004-08-21 20:05:35 +00:00
Art Yerkes
8da48834d5 Fixed eols for pp directives, honor original eols.
svn path=/trunk/; revision=10638
2004-08-21 19:59:52 +00:00
Gé van Geldorp
7f5aece68d Implement EnumDesktopsA/W and EnumWindowStationsA, rewrite of
EnumWindowStationsW

svn path=/trunk/; revision=10637
2004-08-21 19:50:39 +00:00
Art Yerkes
a48867230f Respect line breaks in the original code, making it easier to compare.
svn path=/trunk/; revision=10636
2004-08-21 19:49:22 +00:00
Hartmut Birr
9995491445 - Made the partition list movable if it is necessary.
svn path=/trunk/; revision=10635
2004-08-21 19:30:12 +00:00
Hartmut Birr
0ebfb773cb - Check for a valid layout buffer entry in xHalIoAssignDriveLetters.
svn path=/trunk/; revision=10634
2004-08-21 19:13:22 +00:00
Mike Nordell
fca2504ae6 Linkage specification correctly placed.
svn path=/trunk/; revision=10633
2004-08-21 19:04:47 +00:00
Mike Nordell
dc4796ce53 Make the code legal C (89)
svn path=/trunk/; revision=10632
2004-08-21 19:03:04 +00:00
Mike Nordell
e5c5aaadd2 fix import/export linkage for declaration of MmSystemRangeStart
svn path=/trunk/; revision=10631
2004-08-21 18:45:01 +00:00
Mike Nordell
0804fde9a5 fix misplaced STDCALL
svn path=/trunk/; revision=10630
2004-08-21 15:34:32 +00:00
Mike Nordell
818dcf2277 stop wasting power at shutdown
svn path=/trunk/; revision=10629
2004-08-21 15:29:08 +00:00
Mike Nordell
0f057d10d9 make code C89-compilable again
svn path=/trunk/; revision=10628
2004-08-21 13:21:44 +00:00
Mike Nordell
7ab9404fc9 fix definition of EVENT_TRACE_HEADER
svn path=/trunk/; revision=10627
2004-08-21 13:20:25 +00:00
Mike Nordell
65c3f8c5a6 fix placement of STDCALL for function declarations
svn path=/trunk/; revision=10626
2004-08-21 12:34:58 +00:00
Mike Nordell
51b6704c3b fix placement of STDCALL for function declarations
svn path=/trunk/; revision=10625
2004-08-21 12:12:35 +00:00
Filip Navara
3d98b86904 - Maintain higher internal precision during font rendering.
- Honour bitmap->bitmap_left while rendering.

svn path=/trunk/; revision=10624
2004-08-21 02:22:45 +00:00
Filip Navara
d76b781f65 Minor optimalization to handle allocation algorithm.
svn path=/trunk/; revision=10623
2004-08-20 23:46:21 +00:00
Gé van Geldorp
261286187f Implement NtUserBuildNamesList()
svn path=/trunk/; revision=10622
2004-08-20 22:38:49 +00:00
Gé van Geldorp
847119b3cd Use MmCopyFrom/ToCaller to transfer data in NtQueryDirectoryObject, also
lock list when traversing it

svn path=/trunk/; revision=10621
2004-08-20 22:38:10 +00:00
Filip Navara
b71178e84e - NtQuerySection should check for SECTION_QUERY access right and not SECTION_MAP_READ.
- Fix prototype of NtExtendSection.

svn path=/trunk/; revision=10620
2004-08-20 21:23:49 +00:00
Art Yerkes
5eef6d16e3 Removed ASSERT_KM macro. It's not used any longer.
svn path=/trunk/; revision=10619
2004-08-20 16:26:10 +00:00
Filip Navara
3f9427ed02 Fix few compiler/linker warnings.
svn path=/trunk/; revision=10618
2004-08-20 15:19:38 +00:00
Eric Kohl
26981b72cf - Provide better PCI device descriptions.
- Use public macros to analyze the PCI configuration space.

svn path=/trunk/; revision=10617
2004-08-20 13:33:51 +00:00
Eric Kohl
a5e0bea967 Define more PCI device subclasses.
svn path=/trunk/; revision=10616
2004-08-20 13:29:14 +00:00
Magnus Olsen
ee97250d94 fix
gcc 3.3.x stop comiling and give a error msg
network/icmp.c: In function `SendICMPComplete':
network/icmp.c:28: warning: unused variable `IPPacket'
make[1]: *** [network/icmp.o] Error 1
make: *** [tcpip] Error 2

svn path=/trunk/; revision=10615
2004-08-20 09:44:20 +00:00
Gé van Geldorp
d204e60565 Don't export all make variables by default
Based on work by Hartmut Birr

svn path=/trunk/; revision=10614
2004-08-20 07:02:09 +00:00
Gé van Geldorp
e8936ed5d6 Older binutils don't like the -noname attribute
on forwarded exports

svn path=/trunk/; revision=10613
2004-08-20 06:58:58 +00:00
Filip Navara
57bca780f3 Fix compiler warnings.
svn path=/trunk/; revision=10612
2004-08-20 00:57:55 +00:00
Filip Navara
ed43fa6083 Remove definitions already present in W32API.
svn path=/trunk/; revision=10611
2004-08-20 00:57:42 +00:00
Filip Navara
0d5febe573 Fix syntax errors in .edf file.
svn path=/trunk/; revision=10610
2004-08-20 00:57:41 +00:00
Casper Hornstrup
28a9052b11 2004-08-20 Casper S. Hornstrup <chorns@users.sourceforge.net>
* Makefile: Fix ntoskrnl dependency problem.

svn path=/trunk/; revision=10609
2004-08-19 23:11:41 +00:00
Hartmut Birr
147f2a9166 - Changed the sequence of some memory initialisation functions.
svn path=/trunk/; revision=10608
2004-08-19 22:17:47 +00:00
Hartmut Birr
a9797a23d6 - Rewrote MmInitializePageList. It isn't necessary to setup the pde's
for the largest memory configuration at boot time.
- Made the parts of the page directory map inaccessible from user mode
  which are setup at boot time.

svn path=/trunk/; revision=10607
2004-08-19 22:14:31 +00:00
Hartmut Birr
9112fef190 - Fixed a crash which occurs on thread switching if the pde's for the new
process structure are not established within the address space of the old thread.

svn path=/trunk/; revision=10606
2004-08-19 21:56:17 +00:00
Art Yerkes
67781c7635 More notes on oskit. braindumping.
svn path=/trunk/; revision=10605
2004-08-19 21:53:43 +00:00
Hartmut Birr
020f18ca0b - Set the pde's for the kernel stack at thread creation time and not at any task switch.
svn path=/trunk/; revision=10604
2004-08-19 21:51:06 +00:00
Hartmut Birr
30188f2c6c - Replaced MmUpdateStackPageDir by MmUpdatePageDir which can establish
the pde's of a process for any address range within the kernel address range.

svn path=/trunk/; revision=10603
2004-08-19 21:47:51 +00:00
Eric Kohl
7314aec7ff Define PCI subclasses and macros.
svn path=/trunk/; revision=10602
2004-08-19 21:42:44 +00:00
Art Yerkes
9d7db6ee1c oskittcp: new import. less diff output versus pure sources.
no deleted code this time around.  all properly ifdef'd
more use of bsd style adapter structs and adapter queries with provided
support by tcpip.sys.
correct prototypes
some diff output is reformatting

tcpip: some bug fixes, -Wall -Werror on, all prototypes in
remove the need for MaxLLHeaderSize anywhere except lan.c
unify meaning of Header and Data members of IP_PACKET
unify PCHAR types in routines.c
move one more address into the struct, eliminating management and extra
poll alloc in NCE
eliminate wrong use of PIP_INTERFACE as NTE pointer in dispatch functions
other fixes

svn path=/trunk/; revision=10601
2004-08-19 21:39:00 +00:00
Filip Navara
4376799eac - Move out LPCGUID from scsiwmi.h to basetyps.h where it belongs.
- Fix initguid.h to eliminate warnings when compiling C programs.

svn path=/trunk/; revision=10600
2004-08-19 18:16:39 +00:00
Filip Navara
d2f7f5c128 Remove some unused headers or parts of headers.
svn path=/trunk/; revision=10599
2004-08-19 18:12:29 +00:00
Filip Navara
a7693505df Fix syntax error in .def file.
svn path=/trunk/; revision=10598
2004-08-19 18:08:47 +00:00
Casper Hornstrup
4989d6438f 2004-08-19 Casper S. Hornstrup <chorns@users.sourceforge.net>
* regtests/shared/regtests.c: Mark test name with |.

svn path=/trunk/; revision=10597
2004-08-19 00:48:18 +00:00
Casper Hornstrup
ab33683488 2004-08-19 Casper S. Hornstrup <chorns@users.sourceforge.net>
* Makefile: Depend on roscfg.h.

svn path=/trunk/; revision=10596
2004-08-19 00:39:59 +00:00
Casper Hornstrup
d291ec0ebe 2004-08-19 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/regtests2xml: New directory.
	* tools/regtests2xml/.cvsignore: New file.
	* tools/regtests2xml/Makefile: Ditto.
	* tools/regtests2xml/regtests2xml.c: Ditto.

svn path=/trunk/; revision=10595
2004-08-19 00:35:15 +00:00
Eric Kohl
87c899380d Report the correct resource flags.
svn path=/trunk/; revision=10594
2004-08-18 22:11:15 +00:00
Eric Kohl
9acd2c65c2 Update resource-related defines.
svn path=/trunk/; revision=10593
2004-08-18 22:06:55 +00:00
Filip Navara
2004f45dcd Replace 0x7ffeffff by MmHighestUserAddress.
svn path=/trunk/; revision=10592
2004-08-18 20:41:03 +00:00
Gé van Geldorp
2db705b1c2 Update to FreeType 2.1.9
svn path=/trunk/; revision=10591
2004-08-18 20:25:11 +00:00
Filip Navara
96bdafef41 - Copy over device object SectorSize and AlignmentRequirement in IoAttachDeviceToDeviceStack.
svn path=/trunk/; revision=10590
2004-08-18 15:09:02 +00:00
Eric Kohl
c9f2fda0b2 Don't retrieve a resource list when a device gets started, use the device nodes resource list.
svn path=/trunk/; revision=10589
2004-08-18 08:33:25 +00:00
Eric Kohl
b299113f7b Fix IRP_MN_QUERY_RESOURCES and implement IRP_MN_QUERY_RESOURCE_REQUIREMENTS.
svn path=/trunk/; revision=10588
2004-08-18 08:25:58 +00:00
Filip Navara
543091ce46 - Fix FsRtlDoesNameContainWildCards loop to take into account the first and lst letter of the expression.
- Dumb implementation of FsRtlIsNameInExpression.

svn path=/trunk/; revision=10587
2004-08-18 02:32:00 +00:00
Filip Navara
f43bd6e656 - Move SectionPageProtection checks from helper routines to NtCreateSection.
- Remove dependency on ReactOS specific FO_FCB_IS_VALID magic and don't access FCB directly, use NtQueryInformationFile instead.
- Fix deleting of section if an early failure during section creation happens and not all structures are initialized yet.

svn path=/trunk/; revision=10586
2004-08-18 02:29:37 +00:00
Filip Navara
04e70454de - Don't increase Irp->AssociatedIrp.IrpCount in IoMakeAssociatedIrp. The caller is responsible for doing it.
- Don't unlock MDLs of associated Irps.

svn path=/trunk/; revision=10585
2004-08-18 02:24:02 +00:00
Filip Navara
5ce987d59f - Set StackPtr->Parameters.Read.Length in IoPageRead.
- Set StackPtr->Parameters.Write.Length in Io[Synchronous]PageWrite.

svn path=/trunk/; revision=10584
2004-08-18 02:21:53 +00:00
Filip Navara
b7ca7786e4 Print in the debug traces if a partition is recognized or not.
svn path=/trunk/; revision=10583
2004-08-18 02:20:00 +00:00
Filip Navara
13fc2fb445 Link to our SDK libraries instead of using the W32API ones.
svn path=/trunk/; revision=10582
2004-08-18 02:16:00 +00:00
Filip Navara
bf2c0b0d8b Fix declaration of FILE_DISPOSITION_INFORMATION.
svn path=/trunk/; revision=10581
2004-08-18 02:13:27 +00:00
Thomas Bluemel
0e686e8470 remove debug output
svn path=/trunk/; revision=10580
2004-08-17 21:52:17 +00:00
Thomas Bluemel
90e663c1bf load the wallpaper on startup and set it
svn path=/trunk/; revision=10579
2004-08-17 21:49:51 +00:00
Thomas Bluemel
c6a9402e60 added very basic support for desktop wallpapers
svn path=/trunk/; revision=10578
2004-08-17 21:47:36 +00:00
Thomas Bluemel
2ac9e121e9 use WM_NOTIFY messages to communicate with the desktop window thread as they can't be sent from processes other than csrss
svn path=/trunk/; revision=10577
2004-08-17 14:57:52 +00:00
Casper Hornstrup
a7f4ff2664 2004-08-17 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/depend.mk: Don't generate dependencies for implib target.

svn path=/trunk/; revision=10576
2004-08-17 13:53:05 +00:00
Casper Hornstrup
f55fbceea5 2004-08-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* Makefile: Correct dependencies.
	* tools/Makefile: Silence some annoying messages.
	* tools/config.mk: Ditto.
	* rules.mak (MINIMALDEPENDENCIES): New option; minimal dependencies
	(yes/no). If yes, then components do not depend on all import libraries.
	If no, then they do. Defaults to yes.

svn path=/trunk/; revision=10575
2004-08-16 22:31:05 +00:00
Gé van Geldorp
b236b6a240 Avoid collision with MinGW wctype_t
svn path=/trunk/; revision=10574
2004-08-16 20:02:23 +00:00
Martin Fuchs
7566350740 display version information in about dialog and on the desktop
svn path=/trunk/; revision=10572
2004-08-16 18:49:58 +00:00
Casper Hornstrup
5b9f8a442b 2004-08-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/user32/include/debug.h (ASSERT): Don't call KeBugCheck.
	* lib/user32/misc/dllmain.c (KeBugCheck): Remove declaration.

svn path=/trunk/; revision=10571
2004-08-16 17:28:46 +00:00
Eric Kohl
3a5f687b18 Implement:
- IRP_MN_READ_CONFIG
  - IRP_MN_WRITE_CONFIG
  - IRP_MN_QUERY_RESOURCES
  - IRP_MN_QUREY_DEVICE_TEXT

Implement (disabled):
  - IRP_MN_QUERY_ID.BusQueryInstanceID

svn path=/trunk/; revision=10570
2004-08-16 09:13:00 +00:00
Casper Hornstrup
ad002d5bd9 2004-08-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* drivers/net/tcpip/include/.cvsignore: New file.
	* drivers/net/tcpip/include/precomp.h: New file.
	* drivers/net/tcpip/Makefile (TARGET_PCH): Set to include/precomp.h.
	* drivers/net/tcpip/tests/Makefile (TARGET_PCH): Reset.
	* drivers/net/tcpip/*/*.c: Use pre-compiled header.

svn path=/trunk/; revision=10569
2004-08-15 23:41:26 +00:00
Casper Hornstrup
455ea22b67 2004-08-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* drivers/net/ndis/include/.cvsignore: New file.
	* drivers/net/ndis/.cvsignore: Add *.d.
	* drivers/net/ndis/Makefile (TARGET_PCH): Set to include/ndissys.h.
	* drivers/net/ndis/*.c: Use pre-compiled header.

svn path=/trunk/; revision=10568
2004-08-15 23:12:33 +00:00
Casper Hornstrup
7ffd28c060 2004-08-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* drivers/net/afd/include/.cvsignore: New file.
	* drivers/net/afd/include/tdiconn.h: Don't include <afd.h>.
	* drivers/net/afd/.cvsignore: Add *.d.
	* drivers/net/afd/makefile (TARGET_PCH): Set to include/afd.h.

svn path=/trunk/; revision=10567
2004-08-15 22:51:57 +00:00
Casper Hornstrup
c78a7ee5ec 2004-08-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* subsys/system/taskmgr/.cvsignore: Add *.gch.
	* subsys/system/taskmgr/precomp.h: New file.
	* subsys/system/taskmgr/makefile (TARGET_PCH): Set to precomp.h.
	* subsys/system/taskmgr/*.c: Use pre-compiled header.

svn path=/trunk/; revision=10566
2004-08-15 22:40:34 +00:00
Casper Hornstrup
ed1baab85f 2004-08-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* subsys/system/usetup/.cvsignore: Add *.gch.
	* subsys/system/usetup/precomp.h: New file.
	* subsys/system/usetup/makefile (TARGET_PCH): Set to precomp.h.
	* subsys/system/usetup/*.c: Use pre-compiled header.

svn path=/trunk/; revision=10565
2004-08-15 22:29:50 +00:00
Casper Hornstrup
74ad04945e 2004-08-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* subsys/system/cmd/.cvsignore: Add *.gch.
	* subsys/system/cmd/precomp.h: New file.
	* subsys/system/cmd/Makefile (TARGET_PCH): Set to precomp.h.
	* subsys/system/cmd/*.c: Use pre-compiled header.

svn path=/trunk/; revision=10564
2004-08-15 22:15:23 +00:00
Casper Hornstrup
0ded881f1f Simplify precomp.h.
svn path=/trunk/; revision=10563
2004-08-15 21:39:59 +00:00
Casper Hornstrup
e14ef8a1c4 2004-08-15 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/user32/include/.cvsignore: New file.
	* lib/user32/Makefile (TARGET_PCH): Set to include/user32.h.
	* lib/user32/*/*.c: Use pre-compiled header.
	* include/wine/debug.h (FIXME): Override previous declaration is needed.

svn path=/trunk/; revision=10562
2004-08-15 21:36:30 +00:00
Gé van Geldorp
a6fc248d31 Handle shell link files contained in double quotes
svn path=/trunk/; revision=10561
2004-08-15 21:01:14 +00:00
Thomas Bluemel
fdf4e54dc9 added missing file
svn path=/trunk/; revision=10560
2004-08-15 20:24:43 +00:00
Casper Hornstrup
231eeedea1 2004-08-15 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/userenv/.cvsignore: Add *.gch.
	* lib/userenv/makefile (TARGET_PCH): Set to precomp.h.
	* lib/userenv/*.c: Use pre-compiled header.

svn path=/trunk/; revision=10559
2004-08-15 19:02:40 +00:00
Casper Hornstrup
5d7f1d7e68 2004-08-15 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/ws2_32/include/.cvsignore: New file.
	* lib/ws2_32/makefile (TARGET_PCH): Set to include/ws2_32.h.
	* lib/ws2_32/include/[catalog.h, handle.h]: Don't include ws2_32.h.

svn path=/trunk/; revision=10558
2004-08-15 18:53:07 +00:00
Casper Hornstrup
07ceadec8e 2004-08-15 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/gdi32/include/.cvsignore: New file.
	* lib/gdi32/.cvsignore: Remove *.gch.

svn path=/trunk/; revision=10557
2004-08-15 18:42:57 +00:00
Casper Hornstrup
a3a8b50447 2004-08-15 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/gdi32/.cvsignore: Ignore *.gch.
	* lib/gdi32/include/precomp.h: New file.
	* lib/gdi32/Makefile (TARGET_PCH): Set to include/precomp.h.
	* lib/gdi32/*/*.c: Use pre-compiled header.

svn path=/trunk/; revision=10556
2004-08-15 18:40:07 +00:00
Casper Hornstrup
84385f6e26 2004-08-15 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/msvcrt/.cvsignore: Ignore *.gch.
	* lib/msvcrt/precomp.h: New file.
	* lib/msvcrt/Makefile (TARGET_PCH): Set to precomp.h.
	* lib/msvcrt/*/*.c: Use pre-compiled header.

svn path=/trunk/; revision=10555
2004-08-15 18:16:39 +00:00
Casper Hornstrup
aa7fdaac83 2004-08-15 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/crtdll/.cvsignore: Ignore *.gch.
	* lib/crtdll/precomp.h: New file.
	* lib/crtdll/Makefile (TARGET_PCH): Set to precomp.h.
	* lib/crtdll/*/*.c: Use pre-compiled header.

svn path=/trunk/; revision=10554
2004-08-15 17:34:28 +00:00
Casper Hornstrup
03664157d6 2004-08-15 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/advapi32/.cvsignore: Ignore *.gch.
	* lib/advapi32/advapi32.h: New file.
	* lib/advapi32/*/*.c: Use pre-compiled header.

svn path=/trunk/; revision=10553
2004-08-15 17:03:15 +00:00
Art Yerkes
0d69d982e0 More info about naming.
svn path=/trunk/; revision=10552
2004-08-15 16:52:13 +00:00
Gero Kuehn
e16725fbe4 improved network control panel
more registry keys for the network configuration
preliminary TCPIP property sheet

svn path=/trunk/; revision=10551
2004-08-15 16:50:30 +00:00
Casper Hornstrup
1bf0775833 2004-08-15 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/include/.cvsignore: New file.
	* ntoskrnl/include/ntoskrnl.h: Ditto.
	* ntoskrnl/*/*.c: Use pre-compiled header.
	* ntoskrnl/Makefile: Support pre-compiled header.
	* tools/helper.mk: .pch files are now .gch files.

svn path=/trunk/; revision=10550
2004-08-15 16:39:12 +00:00
Filip Navara
41ca6025bd - Revert to old dependency system.
svn path=/trunk/; revision=10549
2004-08-15 01:44:31 +00:00
Filip Navara
0a2918d47b - Revert to old dependency system.
svn path=/trunk/; revision=10548
2004-08-15 01:23:19 +00:00
Filip Navara
f530a33909 - Minor correction to shut up compiler warning.
svn path=/trunk/; revision=10547
2004-08-15 00:51:51 +00:00
Filip Navara
e2635a47ed - Don't append to existing files.
svn path=/trunk/; revision=10546
2004-08-15 00:51:01 +00:00
Eric Kohl
525f112e0c Try to retrieve the resource list before starting a pnp device.
svn path=/trunk/; revision=10545
2004-08-14 22:47:08 +00:00
Gé van Geldorp
4bf8b7d19b Avoid crash
svn path=/trunk/; revision=10544
2004-08-14 22:36:38 +00:00
Gé van Geldorp
fe0c27e5c2 Sync to Wine-20040813: update status
svn path=/trunk/; revision=10543
2004-08-14 21:02:42 +00:00
Filip Navara
45e78bd69f - Fix dependency tracking for relative paths.
svn path=/trunk/; revision=10542
2004-08-14 20:51:46 +00:00
Steven Edwards
99ef31f67f Get it building. Linking is next
svn path=/trunk/; revision=10541
2004-08-14 20:43:40 +00:00
Gé van Geldorp
d0307c2139 Sync to Wine-20040813:
Alexandre Julliard
- Avoid some non-portable makefile constructs, and get rid of the
  ALTNAMES variable.
Robert Reif <reif@earthlink.net>
- Change MIXER_GetDev to take pointer to returned address pointer and
  return one of 3 possible return values rather than an address or
  NULL.
- Adds *GetDevCapsW bad pointer check.
- Adds waveOutGetDevCapsW test.
Filip Navara <xnavara@volny.cz>
- Implementation of mmTaskCreate. Based on patch by Eric Pouech.
- Fallback implementation in waveOut[Un]PrepareHeader.
Marcelo Duarte <wine-devel@bol.com.br>
- Localization of devenum to Portuguese and minor corrections.

svn path=/trunk/; revision=10539
2004-08-14 20:36:35 +00:00
Gé van Geldorp
82663d1e65 Sync to Wine-20040813:
Ivan Leo Puoti <puoti@inwind.it>
- Added Italian resources.
Marcelo Duarte <wine-devel@bol.com.br>
- Update localization for Portuguese language.
Alexandre Julliard
- Get rid of the non-standard ICOM_VTABLE macro.
- Get rid of the non-standard ICOM_VFIELD macro.
- Fixed flags handling in StrIsIntlEqualA/W (spotted by James Hawkins).
Jacek Caban <jack@itma.pwr.wroc.pl>
- Implemented IsOS function.
Francois Gouget <fgouget@free.fr>
- Modify widl to put the C COM macros inside an #ifdef COBJMACROS block
  as is done in the Windows headers.
- Add #define COBJMACROS where needed in Wine.
- Fixes the compilation of the oleaut32/tests/olefont.c and
  urlmon/tests/url.c conformance tests with the Windows headers.
Stefan Leichter <Stefan.Leichter@camLine.com>
- Forward shlwapi.459/460 (SHExpandEnvironmentStringsA/W) to
  kernel32.ExpandEnvironmentStringsA/W.

svn path=/trunk/; revision=10538
2004-08-14 20:24:42 +00:00
Gé van Geldorp
86eb12c5fc Sync to Wine-20040813:
Alexandre Julliard
- Moved ICOM_THIS_MULTI definition out of objbase.h and into the files
  that use it.
- Get rid of the non-standard ICOM_VTABLE macro.
- Get rid of the non-standard ICOM_VFIELD macro.

svn path=/trunk/; revision=10537
2004-08-14 20:09:12 +00:00
Gé van Geldorp
40d3ca1e0b Sync to Wine-20040813:
Mike McCormack <mike@codeweavers.com>
- Remove dead code.
Jacek Caban<jack@itma.pwr.wroc.pl>
- Added EM_SCROLLCARET definition in include/richedit.h and handling in
  WindowProc.

svn path=/trunk/; revision=10536
2004-08-14 20:05:16 +00:00
Gé van Geldorp
73d3df3e28 Sync to Wine-20040813:
Alexandre Julliard
- Avoid some non-portable makefile constructs, and get rid of the
  ALTNAMES variable.
- Get rid of the non-standard ICOM_VTABLE macro.
- Get rid of the non-standard ICOM_VFIELD macro.
- Get rid of the non-standard ICOM_DEFINE macro.
- Moved ICOM_THIS_MULTI definition out of objbase.h and into the files
  that use it.
Mike McCormack <mike@codeweavers.com>
- Added a test for stat'ing a memory based storage file.
- stat on memory storage should return a NULL name, not "".
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
- Modify widl to put the C COM macros inside an #ifdef COBJMACROS block
  as is done in the Windows headers.
- Add #define COBJMACROS where needed in Wine.
- Fixes the compilation of the oleaut32/tests/olefont.c and
  urlmon/tests/url.c conformance tests with the Windows headers.
Mike Hearn <mh@codeweavers.com>
- Implement disconnect for proxies so that stubs are properly
  destroyed.
- Disconnect proxies at COM shutdown to release the corresponding
  stubs.
- Don't marshal IClassFactory into the local server pipe until we have
  connected, otherwise we might end up with stubs that are never used.
- Pass -Embedding switch to EXE servers, more tracing.
- Fix misleading warning ole CoGetClassObject.
- Fix ref counting in StdMarshalImpl_MarshalInterface for case where the
  stub already exists.
- Implement StdMarshal::ReleaseMarshalData.
- Fix infinite loops by checking the return value of _invoke_onereq and
  bailing appropriately.
- Add a comment on the SendReceive behaviour. Improve two others.
- Unref stub after invoking on it.
Robert Shearman <rob@codeweavers.com>
- Remove unneeded STUBMGR_Start call.
- Cleanup compobj_private.h.
- Fix some inaccuracies in a comment and reformat.
- Add static to non-exported marshal functions.
- Remove unused marshal functions.
- Rename several RPC functions.
- Emit fixme for known local wrong behaviour.
- Implement StdMarshal::ReleaseMarshalData.
- Document wrong behaviour for IRunningObjectTable.
- Fix infinite loops by checking the return value of _invoke_onereq and
  bailing appropriately.
- Add a comment on the SendReceive behaviour. Improve two others.
- Set RPC data representation.
Jeroen Janssen <japj@xs4all.nl>
- Updated some MSDN links in the code.

svn path=/trunk/; revision=10535
2004-08-14 20:00:59 +00:00
Gé van Geldorp
0f2899c24b Sync to Wine-20040813:
Ivan Leo Puoti <puoti@inwind.it>
- Added Italian resources.
Marcelo Duarte <wine-devel@bol.com.br>
- Update localization for Portuguese language.

svn path=/trunk/; revision=10534
2004-08-14 19:25:03 +00:00
Gé van Geldorp
5dd30e3526 Sync to Wine-20040813:
Alexandre Julliard
- Avoid some non-portable makefile constructs, and get rid of the
  ALTNAMES variable.
- Get rid of the non-standard ICOM_VTABLE macro.
Henning Gerhardt <henning.gerhardt@web.de>
- Minor fixes and updates to the German resource files.
Jacek Caban <jack@itma.pwr.wroc.pl>
- Translation update.
Mike McCormack <mike@codeweavers.com>
- Unicode file dialogs send and receive unicode messages.
Jacek Caban <jack@itma.pwr.wroc.pl>
- Fix a bug in passing parameters to CFn_WMInitDialog and CFn_WMCommand
  in FormatCharDlgProcW.
James Hawkins <truiken@gmail.com>
- Cleanup A->W cross calls.
- Better fix for collate icon behavior.

svn path=/trunk/; revision=10533
2004-08-14 19:21:01 +00:00
Gé van Geldorp
6d0e0e250c Sync to Wine-20040813:
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Make pattern brush data const.
Mike McCormack <mike@codeweavers.com>
- Prevent listview from crashing when a null sort function is passed to
  LVM_SORTITEMS.
Filip Navara <xnavara@volny.cz>
- Don't update infoPtr->dwStyle in LISTVIEW_WindowProc. It's already
  handled in LISTVIEW_StyleChanged and LISTVIEW_Create processing.
- Ignore WS_VSCROLL/WS_HSCROLL flags in infoPtr->dwStyle because they're
  not always up-to-date.
- Use correct dialog title for Wizard 97 and correctly display header
  bitmap for old-style Wizard 97.
- Fix TOOLBAR_DrawMasked to correctly use image list mask.
Eric Kohl <eric.kohl@t-online.de>
- Move watermark and header bitmap loading code from
  PROPSHEET_CreatePage into its own function PROPSHEET_LoadWizardBitmaps
  and call this function from property sheet's dialog procedure.
Thomas Weidenmueller <w3seek@reactos.com>
- Correct tooltips behavior.

svn path=/trunk/; revision=10532
2004-08-14 19:12:35 +00:00
Steven Edwards
0b6388b665 Update the README.WINE. It now contains a list of almost
everything we share with Wine. Needs updates and
corrections.

svn path=/trunk/; revision=10531
2004-08-14 16:00:23 +00:00
Hartmut Birr
6657310a77 - Fixed the definition of X86_CR4_PGE.
svn path=/trunk/; revision=10530
2004-08-14 15:17:09 +00:00
Thomas Bluemel
e3e1c39945 a few fixes.
I'm not going to continue working on this due to a lack of knowledge of the security api, so someone else who knows a bit more about them should step in...

svn path=/trunk/; revision=10529
2004-08-14 11:50:25 +00:00
Thomas Bluemel
d07b810759 implemented GI_EnableMouseTracking()
svn path=/trunk/; revision=10528
2004-08-14 10:47:19 +00:00
Filip Navara
108e98c65d - Remove the now unused .edf file.
svn path=/trunk/; revision=10527
2004-08-14 10:23:11 +00:00
Filip Navara
51f265db45 - Forward everything everything we can to MSVCRT and WS2_32.
svn path=/trunk/; revision=10526
2004-08-14 10:22:10 +00:00
Hartmut Birr
ba5235cc90 - Enabled global pages if it is possible.
- Put the kernel map onto a fixed location and establish a page table
  for the first 4MB in the very early boot process.
- Disable the mapping for the page table pages within the bss section.

svn path=/trunk/; revision=10525
2004-08-14 09:17:05 +00:00
Filip Navara
ca1a1af64c - Implementation of GI_message_box.
svn path=/trunk/; revision=10524
2004-08-14 07:15:05 +00:00
Thomas Bluemel
9bab45b05a fixed a few parameters
svn path=/trunk/; revision=10523
2004-08-14 01:03:38 +00:00
Thomas Bluemel
62e97aca3c convert license to LGPL
svn path=/trunk/; revision=10522
2004-08-14 00:50:27 +00:00
Alex Ionescu
1301082015 *CORRECT* version of Defintion file.
svn path=/trunk/; revision=10521
2004-08-14 00:47:33 +00:00
Thomas Bluemel
c90dfac1f8 implementation of __libc_init_memory()
svn path=/trunk/; revision=10520
2004-08-14 00:39:19 +00:00
Alex Ionescu
067e284424 Removed duplicate entries.
svn path=/trunk/; revision=10519
2004-08-14 00:35:09 +00:00
Steven Edwards
e2ebe8412b build with w32api
svn path=/trunk/; revision=10518
2004-08-13 23:31:36 +00:00
Filip Navara
b5ba0a23cf - SkyOS menu functions implementation.
svn path=/trunk/; revision=10517
2004-08-13 20:14:40 +00:00
Filip Navara
74718af76f - Fix GC_destroy for window DCs.
svn path=/trunk/; revision=10516
2004-08-13 17:10:22 +00:00
Thomas Bluemel
0d2d58122c implemented a few window placement functions and more checks for NULL-pointers
svn path=/trunk/; revision=10515
2004-08-13 12:29:19 +00:00
Thomas Bluemel
4d50bed0ad Patch by Filip: Implemented some graphics functions and bugfixes to the windowing functions.
svn path=/trunk/; revision=10514
2004-08-13 11:24:07 +00:00
Richard Campbell
6b30f2a9ed added urlmon to the source tree, doesn't compile due to COM interface issues that i'm not quite interesting in trying to solve at the moment...if someone feels like taking a crack at it, go ahead, firefox needs this dll to be functional. This is from the latest wine CVS.
svn path=/trunk/; revision=10513
2004-08-13 06:14:48 +00:00
Richard Campbell
8063cf6601 added a few stubs to help get urlmon from the wine source tree to compile, there are still a few things left to do before i can bring in URLMon however.
svn path=/trunk/; revision=10512
2004-08-13 05:44:55 +00:00
Alex Ionescu
08fcd22543 Updated EDF file with new stubs in alphabetical order and synched EDF and DEF file.
svn path=/trunk/; revision=10511
2004-08-13 05:06:18 +00:00
Alex Ionescu
760cc9dbc7 Added Dbg Stubs and moved old ones to correct header and files.
svn path=/trunk/; revision=10510
2004-08-13 05:00:35 +00:00
Thomas Bluemel
cd550a1f78 dispatch MSG_QUIT and MSG_GUI_REDRAW messages. Thanks also to Filip.
svn path=/trunk/; revision=10509
2004-08-12 23:38:17 +00:00
Thomas Bluemel
a7d6dcd7c1 started an interface to emulate the skygi windowing but actually use win32 apis
svn path=/trunk/; revision=10508
2004-08-12 19:27:12 +00:00
Alex Ionescu
81ace77431 Added two stubs.
svn path=/trunk/; revision=10507
2004-08-12 16:43:37 +00:00
Alex Ionescu
28ad49e6f7 I/O Manager fixes. Patch by Filip Navara.
svn path=/trunk/; revision=10506
2004-08-12 16:43:12 +00:00
Thomas Bluemel
78f66ec97c an attempt to partially implement ctor_dtor_initialize() and a few more libskygi stubs
svn path=/trunk/; revision=10505
2004-08-12 15:41:36 +00:00
Alex Ionescu
7cf25ed92f Set the thread to the Allocated IRPs created by Io/Nt Query functions that didn't do this. This can cause problems if the thread is ever read on a completed request.
svn path=/trunk/; revision=10504
2004-08-12 06:15:50 +00:00
Alex Ionescu
359fe88806 Fixed/Added Stubs.
Implemented PsRevertThreadToSelf

svn path=/trunk/; revision=10503
2004-08-12 06:04:21 +00:00
Art Yerkes
e9fc7ea7df According to alex_ionescu, callers of IoAllocateIrp should set the
Tail.Overlay.Thread member themselves in the new Irp.  These calls
to IoAllocateIrp were not followed by setting the thread.

svn path=/trunk/; revision=10502
2004-08-12 05:59:25 +00:00
Thomas Bluemel
7dd153e40e Steven Edwards wanted me to commit this.
This adds a vew basic stubs of the SkyOS libraries libsky and libskygi. This actually was an experiment if SkyOS apps run in ReactOS/Win/WINE. It gets a slightly patched (only the optional PE header needs to be set to the right subsys code) version of TicTacToe released in the SkyOS forums. It doesn't crash but also doesn't work yet of course, but it successfully launches and calls the functions as you can see in the debug output.

svn path=/trunk/; revision=10501
2004-08-12 02:50:35 +00:00
James Tabor
cb9fb81c44 Added Lock and Heap Info struc's.
svn path=/trunk/; revision=10500
2004-08-11 21:03:11 +00:00
James Tabor
4e8265f044 Module Library supported now. There is a bug with scanning winlogon that causes a exception. The version.dll data is worng.
svn path=/trunk/; revision=10499
2004-08-11 21:02:12 +00:00
Thomas Bluemel
5d4aa40ac6 Krishna Murthy <Krishna.Murthy@guptaworldwide.com>
Replaced LISTBOX_SetCaretIndex() with LISTBOX_MoveCaret() in
LB_SELECTSTRING handler so that the caret moves to the index and item
is highlighted.

svn path=/trunk/; revision=10498
2004-08-11 10:37:06 +00:00
Eric Kohl
6f267c1f3c Add RtlFormatMessage stub.
svn path=/trunk/; revision=10497
2004-08-11 09:30:23 +00:00
Thomas Bluemel
86f612b5f1 pass LUIDs to RosEnableThreadPrivileges()
svn path=/trunk/; revision=10496
2004-08-11 08:48:20 +00:00
Thomas Bluemel
2f6a9da97d little fix
svn path=/trunk/; revision=10495
2004-08-11 08:32:48 +00:00
Thomas Bluemel
05d68bd490 added RosEnableThreadPrivileges() and RosResetThreadPrivileges() helper functions for easier thread privilege management
svn path=/trunk/; revision=10494
2004-08-11 08:28:13 +00:00
James Tabor
486bb2502f Replaced RtlAllocateHeap with NtAllocateVirtualMemory.
svn path=/trunk/; revision=10493
2004-08-11 03:48:31 +00:00
Thomas Bluemel
ca0c109cec Implemented CreateSecurityPage() to create an empty property sheet.
svn path=/trunk/; revision=10492
2004-08-11 01:21:53 +00:00
Gé van Geldorp
446f5adc02 Fix RtlEqualLuid()
svn path=/trunk/; revision=10491
2004-08-10 23:26:39 +00:00
Gé van Geldorp
794fe5ff6a Allocate new LUID for each logon session
svn path=/trunk/; revision=10490
2004-08-10 21:18:16 +00:00
Gé van Geldorp
78a5367c1d Copy AuthenticationId from existing token when duplicating a token
svn path=/trunk/; revision=10489
2004-08-10 21:11:20 +00:00
Gé van Geldorp
39bfabb1d4 Change debugging statement
svn path=/trunk/; revision=10488
2004-08-10 20:30:35 +00:00
Gé van Geldorp
a696f85479 Implement TokenOrigin class for GetTokenInformation
svn path=/trunk/; revision=10487
2004-08-10 20:13:42 +00:00
Hartmut Birr
03d66eb75a - Fixed the calculation of used non paged pool pages in grow_block.
svn path=/trunk/; revision=10486
2004-08-10 20:00:49 +00:00
Hartmut Birr
2a373c783c - Returned more of the protection bits in MmGetPageProtect.
- Ignore the PAGE_SYSTEM attribute and set the user bit according to the
  given address in MmSetPageProtect and MmCreateVirtualMappingUnsafe.
- Don't change the accessed and dirty bit in MmSetPageProtect.

svn path=/trunk/; revision=10485
2004-08-10 19:57:58 +00:00
Hartmut Birr
a91173016c - Replaced MmGetPageEntry with MmGetPageProtect/MmSetPageProtect in KdbOverwriteInst.
svn path=/trunk/; revision=10484
2004-08-10 19:49:25 +00:00
Eric Kohl
bc751c87d7 Minor fix
svn path=/trunk/; revision=10483
2004-08-10 19:12:40 +00:00
Thomas Bluemel
ffdafcd0c4 Dmitry Timoshkov <dmitry@codeweavers.com>
Fix button behaviour on WM_SETFOCUS/WM_KILLFOCUS with a test case.

svn path=/trunk/; revision=10482
2004-08-10 19:09:37 +00:00
Thomas Bluemel
d0d5ed5109 added aclui.dll to the bootcd
svn path=/trunk/; revision=10481
2004-08-10 17:10:57 +00:00
Thomas Bluemel
8dac27ed6f fixed typo spotted by Royce.
svn path=/trunk/; revision=10480
2004-08-10 16:21:27 +00:00
Thomas Bluemel
7c8662b9af added aclui.dll to the automatic build
svn path=/trunk/; revision=10479
2004-08-10 15:49:55 +00:00
Thomas Bluemel
8fa77f76c9 implemented EditSecurity()
svn path=/trunk/; revision=10478
2004-08-10 15:47:54 +00:00
Thomas Bluemel
87a27e883c little fix
svn path=/trunk/; revision=10477
2004-08-10 15:21:27 +00:00
Filip Navara
29d654749b - Remove forgotten temporary debug message.
svn path=/trunk/; revision=10476
2004-08-10 15:09:14 +00:00
Thomas Bluemel
7a93d2f239 stop animation timer after completion
svn path=/trunk/; revision=10475
2004-08-10 15:08:05 +00:00
Thomas Bluemel
e1c935fafd improved the installation process
svn path=/trunk/; revision=10474
2004-08-10 15:00:22 +00:00
Eric Kohl
e9533d09c4 Sort Rtl* functions.
svn path=/trunk/; revision=10473
2004-08-10 12:07:11 +00:00
Eric Kohl
8f674bc02f Move bitmap functions to the shared rtl library.
svn path=/trunk/; revision=10472
2004-08-10 12:05:20 +00:00
Thomas Bluemel
bfa54c3f9a include the right files
svn path=/trunk/; revision=10471
2004-08-10 12:00:55 +00:00
Eric Kohl
f3320ad230 Move bitmap functions to the shared rtl library.
Implement RtlClearBit, RtlSetBit and RtlTestBit.

svn path=/trunk/; revision=10470
2004-08-10 12:00:09 +00:00
Thomas Bluemel
c4b330cce6 split up headers
svn path=/trunk/; revision=10469
2004-08-10 11:54:43 +00:00
Thomas Bluemel
3a88fe367b Added a few helper functions for easier usage of strings in resources
svn path=/trunk/; revision=10468
2004-08-10 10:57:54 +00:00
Filip Navara
5775259453 - Fixed lots of bugs in NTFS code and added correct update sequence
fixups handling and untested NTFS 3+ sparse file support.

svn path=/trunk/; revision=10467
2004-08-10 09:28:56 +00:00
Emanuele Aliberti
99e5dd3e01 Fixed typographical error.
svn path=/trunk/; revision=10466
2004-08-10 07:25:49 +00:00
Alex Ionescu
5317d303e8 Small fixes to I/O Manager and Implemented IoMakeAssociatedIrp. Parts by Filip Navara.
svn path=/trunk/; revision=10465
2004-08-10 06:26:42 +00:00
Filip Navara
2199f89e4d Fix compiler warnings.
svn path=/trunk/; revision=10464
2004-08-10 01:49:37 +00:00
Thomas Bluemel
757eac9cfb fixed file headers
svn path=/trunk/; revision=10463
2004-08-10 00:12:31 +00:00
Thomas Bluemel
a201e6c460 added stubs for aclui.dll
svn path=/trunk/; revision=10462
2004-08-10 00:09:40 +00:00
Thomas Bluemel
692929e156 added header for aclui.dll
svn path=/trunk/; revision=10461
2004-08-09 23:29:06 +00:00
Gé van Geldorp
0f07e3b53f NtOpenThread should look at the CIDs UniqueThread member only, not at
UniqueProcess. Makes OpenThread() work.

svn path=/trunk/; revision=10460
2004-08-09 22:15:01 +00:00
James Tabor
d81fcdb79e Mostly implemented, Listdlls half way works now.
svn path=/trunk/; revision=10459
2004-08-09 19:55:33 +00:00
James Tabor
082128c460 Adding missing structures for Debug information.
svn path=/trunk/; revision=10458
2004-08-09 19:41:13 +00:00
Gé van Geldorp
354bc795aa Undo test change
svn path=/trunk/; revision=10457
2004-08-09 18:28:28 +00:00
Gé van Geldorp
6e83a89501 Test log_accum.pl
svn path=/trunk/; revision=10456
2004-08-09 18:26:26 +00:00
James Tabor
0b8a58aaa9 Added Debug Buffer Information. Testing with SysInternals.com listdlls.exe.
svn path=/trunk/; revision=10455
2004-08-09 18:17:23 +00:00
Gé van Geldorp
08707afede Add internal flags for ExitWindowsEx()
svn path=/trunk/; revision=10454
2004-08-09 17:54:56 +00:00
Thomas Bluemel
94efe6c3c1 implemented a couple of Hid device functions
svn path=/trunk/; revision=10453
2004-08-09 16:02:43 +00:00
Filip Navara
a17d473fa8 Update porting status for COMCTL32.
svn path=/trunk/; revision=10452
2004-08-09 15:42:04 +00:00
Filip Navara
7949648a6f Thomas Weidenm�ller <w3seek@reactos.org>
Implemented syslink control.

svn path=/trunk/; revision=10451
2004-08-09 15:35:58 +00:00
Filip Navara
1a31bc2b07 Definitions for SysLink control.
svn path=/trunk/; revision=10450
2004-08-09 15:34:50 +00:00
Filip Navara
8aa4fdb954 Marcus Meissner <marcus@jet.franken.de>
Implemented PSM_INDEXTOHWND.

svn path=/trunk/; revision=10449
2004-08-09 15:22:28 +00:00
Filip Navara
87c79ea203 Filip Navara <xnavara@volny.cz>
- Properly calculate caption length when converting multi-byte string
  to wide character one.
- Wizard contents shouldn't be moved by the size of watermark bitmap.
- Fix PSH_WIZARD97_[NEW/OLD] checks.
- Blit the watermark even if PSH_USEHBMWATERMARK flag isn't set and
  blit only the part that fits into the dialog.

svn path=/trunk/; revision=10448
2004-08-09 15:21:57 +00:00
Filip Navara
85be46acc4 Define PBS_MARQUEE and PBM_SETMARQUEE.
svn path=/trunk/; revision=10447
2004-08-09 15:15:20 +00:00
Filip Navara
0b219a650f Filip Navara <xnavara@volny.cz>
Use system metrics values in TOOLBAR_DrawPattern instead of hardcoded
values.

svn path=/trunk/; revision=10446
2004-08-09 15:12:24 +00:00
Filip Navara
a8f3fd698d Thomas Weidenmueller <wine-patches@reactsoft.com>
Added support for PBS_MARQUEE style.

svn path=/trunk/; revision=10445
2004-08-09 15:09:17 +00:00
Filip Navara
4b8b200e80 Dmitry Timoshkov <dmitry@codeweavers.com>
Create toolbar with a not zero default size, it allows applications
which check toolbar size before adding buttons to it work.

svn path=/trunk/; revision=10444
2004-08-09 15:08:23 +00:00
Filip Navara
5152995d4e Filip Navara <xnavara@volny.cz>
Fix CreateMappedBitmap for palette-less bitmaps.

svn path=/trunk/; revision=10443
2004-08-09 15:08:00 +00:00
Filip Navara
d6e606d1b2 Henning Gerhardt <henning.gerhardt@web.de>
Minor fixes and updates to the German resource files.

svn path=/trunk/; revision=10442
2004-08-09 15:07:37 +00:00
Eric Kohl
7bd374681e Sort Zw* functions
svn path=/trunk/; revision=10441
2004-08-09 11:18:08 +00:00
Alex Ionescu
52279b1490 Rundown Protection Implementation. Implemented ExAcquireRundownProtection, ExAcquireRundownProtectionEx, ExInitializeRundownProtection, ExReInitializeRundownProtection, ExReleaseRundownProtection, ExReleaseRundownProtectionEx, ExRundownCompleted, ExWaitForRundownProtectionRelease
svn path=/trunk/; revision=10440
2004-08-09 01:26:10 +00:00
Art Yerkes
846acbcf70 Added a (C) notice.
svn path=/trunk/; revision=10439
2004-08-08 22:07:06 +00:00
Gé van Geldorp
30417399c0 Sync to Wine-20040716
svn path=/trunk/; revision=10438
2004-08-08 21:50:40 +00:00
Art Yerkes
3ffa79d49a Simple preprocessor for converting try ... except to our pseh-style exception
handling.  Should allow us to use source files from open source drivers that
compile with msvc given some care.  Not a complete solution but it eliminates
the most tedious part of the job.

svn path=/trunk/; revision=10437
2004-08-08 21:40:09 +00:00
Gé van Geldorp
c953f01971 Sync to Wine-20040716:
Henning Gerhardt <henning.gerhardt@web.de>
- More German translations.
Hajime Segawa <winetips@sidenet.ddo.jp>
- Added some Japanese translations.
Dimitrie O. Paun <dpaun@rogers.com>
- Lookup driver information in registry and system.ini.
- Make the code inspect the registry/system.ini at call time, rather
  then initialization time.
- Code cleanups.

svn path=/trunk/; revision=10435
2004-08-08 21:36:20 +00:00
Gé van Geldorp
760a5fbb46 Sync to Wine-20040716:
Mike McCormack <mike@codeweavers.com>
- Fix memory allocation problems.
Marcus Meissner <marcus@jet.franken.de>
- Do not assign to casted values.
Alexandre Julliard
- Implemented GetUIVersion (based on a patch by Stefan Leichter).
Stefan Leichter <Stefan.Leichter@camLine.com>
- Removed the crosscalls (unicode to ascii) from GetAcceptLanguagesW.
- Removed todo_wine from GetAcceptLanguagesA tests.
- Added tests for GetAcceptLanguagesA.
Henning Gerhardt <henning.gerhardt@web.de>
- Translated some English resource files into German.
Hajime Segawa <winetips@sidenet.ddo.jp>
- Added some Japanese translations.

svn path=/trunk/; revision=10434
2004-08-08 21:15:48 +00:00
Gé van Geldorp
9811098a69 Sync to Wine-20040716:
Mike Hearn <mh@codeweavers.com>
- Don't ERR on a used connection being destroyed.
- Don't print an extra newline in the olerelay code.
- Remove the RPC connection cache as Windows does not allow multiple
  binds on the same connection.
- Correct connection releases on error path in RPCRT4_OpenBinding.

svn path=/trunk/; revision=10433
2004-08-08 21:07:12 +00:00
Gé van Geldorp
0bc264aea8 Sync to Wine-20040716:
Henning Gerhardt <henning.gerhardt@web.de>
- Translated some English resource files into German.
- More German translations.
Hajime Segawa <winetips@sidenet.ddo.jp>
- Added some Japanese translations.

svn path=/trunk/; revision=10432
2004-08-08 20:49:55 +00:00
Gé van Geldorp
d0bf3394ea Sync to Wine-20040716:
Mike McCormack <mike@codeweavers.com>
- Fix a few serious race conditions in the OLE object pipe server.
- Add some explanations to compobj.c, implement flushing message queue
  on shutdown.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Marcus Meissner <marcus@jet.franken.de>
- IMalloc vtables are static.
- IID_IObjectWithSite is already in libuuid, no need to declare here.
Aric Stewart <aric@codeweavers.com>
- Return an error in CoMarshalInterface if the IUnknown pointer is NULL
  and don't crash.
Ivan Leo Puoti <puoti@inwind.it>
- Removed the winedefault.reg message.
Robert Shearman <rob@codeweavers.com>
- Add static to non-exported marshal functions.
- Remove unused marshal functions.
- Rename several RPC functions.

svn path=/trunk/; revision=10431
2004-08-08 20:42:47 +00:00
Gé van Geldorp
66219a7d31 Sync to Wine-20040716:
Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
- HeapAlloc for WSTR must allocate len* sizeof(WCHARS).
Henning Gerhardt <henning.gerhardt@web.de>
- Translated some English resource files into German.
JosT Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Added Spanish translation.
Hajime Segawa <winetips@sidenet.ddo.jp>
- Added some Japanese translations.

svn path=/trunk/; revision=10430
2004-08-08 20:33:39 +00:00
Alex Ionescu
9fa7984747 Initial Support for Quota Pool Allocations.
Implemented ExAllocatePoolWithQuota, ExAllocatePoolWithQuotaTag, PsChargePoolQuota, PsChargeProcessNonPagedPoolQuota, PsChargeProcessPagedPoolQuota, PsChargeProcessPoolQuota.
Also implemented a basic ExAllocatePoolWithTagPriority, but needs Special Pool support for Driver Verifier functionality. The allocation works however.

svn path=/trunk/; revision=10429
2004-08-08 20:33:17 +00:00
Gé van Geldorp
823ef8a298 Set explicit base address for notifyhook.dll so it won't get relocated
svn path=/trunk/; revision=10428
2004-08-08 20:26:43 +00:00
Gé van Geldorp
28676c56c8 Sync to Wine-20040716:
Krishna Murthy <Krishna.Murthy@guptaworldwide.com>
- Add the selected extension from file type filter if file name does not
  contain the file extension.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Fix control coordinates in German and French versions of open file
  dialog.
- Remove duplicate control ids in Catalan, Russian and Ukrainian
  dialogs.
James Hawkins <truiken@gmail.com>
- Fixed collate icon behavior.
- Check for empty PrinterName in PRINTDLG_WMCommandW.

svn path=/trunk/; revision=10427
2004-08-08 20:15:06 +00:00
Gé van Geldorp
1c0c11dcb3 Sync to Wine-20040716:
Mike McCormack <mike@codeweavers.com>
- Create a tooltip on demand in the Listview.
Robert Shearman <rob@codeweavers.com>
- Implemented PSM_HWNDTOINDEX.
- Add stubs for some new property sheet messages.
- Clean up the mask drawing code.
- Improve bitmap not found message.
- Start of balloon tip support.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Don't crash on NULL tab text.
Filip Navara <xnavara@volny.cz>
- Make the pattern drawing in TOOLBAR_DrawPattern look better.

svn path=/trunk/; revision=10425
2004-08-08 20:04:00 +00:00
Gé van Geldorp
a4617084d5 Add some property sheet messages
svn path=/trunk/; revision=10424
2004-08-08 20:02:57 +00:00
Martin Fuchs
09528fb211 german translation of task manager by Klemens Friedl <frik85@hotmail.com>
svn path=/trunk/; revision=10423
2004-08-08 19:16:10 +00:00
Martin Fuchs
4e20a1b256 german translation of welcome.exe by Klemens Friedl <frik85@hotmail.com>
svn path=/trunk/; revision=10422
2004-08-08 19:15:57 +00:00
James Tabor
3c977fea43 Fixed warning messages ans set -Werror in make file.
svn path=/trunk/; revision=10421
2004-08-08 18:46:25 +00:00
Alex Ionescu
32b533c632 Allow alternate SEH construct. Patch by Art Yerkes.
svn path=/trunk/; revision=10420
2004-08-08 18:26:47 +00:00
Thomas Bluemel
a2b32fbcd6 serialize gui switching and switching the focus message queue
svn path=/trunk/; revision=10419
2004-08-08 17:57:34 +00:00
Jens Collin
35b0435a15 Partial merge with wine-code. Solves BZ#230. Executing text-doc from start-Run. Same change sent to wine-patches
svn path=/trunk/; revision=10418
2004-08-08 16:04:00 +00:00
Jens Collin
82cdbd3a97 notepad takes input filename as parameter %1.
svn path=/trunk/; revision=10417
2004-08-08 16:01:07 +00:00
Filip Navara
287525992a - Fix section object dereferencing in NtCreateSection.
svn path=/trunk/; revision=10416
2004-08-08 10:46:20 +00:00
Steven Edwards
6ba86d77fa Added advapi32 test for the registry.
svn path=/trunk/; revision=10415
2004-08-07 22:51:27 +00:00
Steven Edwards
a730cae54d Added vmwinst and imagehlp to the bootcd
(imagehlp allows openoffice setup to work)

svn path=/trunk/; revision=10414
2004-08-07 22:26:00 +00:00
Steven Edwards
7fe2c42738 When doing a debug boot pass /NOGUIBOOT to disable the
splash screen so we can see the /DEBUGPORT=SCREEN
output.

svn path=/trunk/; revision=10413
2004-08-07 20:26:41 +00:00
Filip Navara
e0449489e5 - Faster dependency system.
svn path=/trunk/; revision=10412
2004-08-07 20:23:33 +00:00
Alex Ionescu
cd351f4dc9 Tagged certain functions that were exported both under NT and ROS, but not marked as un/implemented.
svn path=/trunk/; revision=10411
2004-08-07 19:13:27 +00:00
Alex Ionescu
730a1f48e2 Added shared RTL functions to appear in ntoskrnl exports (Since they are in fact exported by ntoskrnl)
svn path=/trunk/; revision=10410
2004-08-07 06:48:49 +00:00
Steven Edwards
592b1ab19b Renamed /DEBUGPORT=FILELOG to
/DEBUGPORT=BOOTLOG to be compatbile with Windows.

svn path=/trunk/; revision=10409
2004-08-07 03:41:31 +00:00
Filip Navara
312d818b93 - Correctly handle ClipCursor(NULL) case.
svn path=/trunk/; revision=10408
2004-08-07 00:25:10 +00:00
Gero Kuehn
17fbcf5e93 added display properties skeleton
svn path=/trunk/; revision=10407
2004-08-07 00:05:23 +00:00
Filip Navara
956358275c - Move code from NtCreateSection to MmCreateSection and adjust it.
- Use MmCreateSection instead of NtCreateSection where possible.

svn path=/trunk/; revision=10406
2004-08-05 19:59:13 +00:00
Alex Ionescu
054fcf9a85 Fixed Names.
svn path=/trunk/; revision=10405
2004-08-05 19:03:24 +00:00
Alex Ionescu
3c1d312107 Added RTL Stubs, Prototypes and Exports.
svn path=/trunk/; revision=10404
2004-08-05 18:17:37 +00:00
Emanuele Aliberti
172a11d61b Report "access denied" errors.
svn path=/trunk/; revision=10403
2004-08-05 12:11:49 +00:00
James Tabor
b1a51402e2 Update query thread times.
svn path=/trunk/; revision=10402
2004-08-05 11:38:01 +00:00
Filip Navara
68a3b15468 - Separate out cluster chain extending functionality from GetNextCluster to GetNextClusterExtend.
- Fix a typo in VfatHasFileSystem.

svn path=/trunk/; revision=10401
2004-08-05 02:48:18 +00:00
Thomas Bluemel
0004f90a07 Reverted my changes to timers
svn path=/trunk/; revision=10400
2004-08-04 22:31:17 +00:00
Martin Fuchs
f34c1d586a fix clean target for new standard makefiles
svn path=/trunk/; revision=10399
2004-08-04 21:42:33 +00:00
Magnus Olsen
f3f6e3172f notifyhook.dll are not in subsys/system/explore mapp it is in subsys/system/explore/notifyhook/ mapp
I did only corrrect the path so make bootcd works agein

svn path=/trunk/; revision=10397
2004-08-04 21:36:28 +00:00
Magnus Olsen
bfa88618a8 Thx to Herv� Poussineau the gcc 3.3.x are working agein
poussine@freesurf.fr

svn path=/trunk/; revision=10396
2004-08-04 19:53:27 +00:00
Filip Navara
f167814f32 - Remove completion routine for VfatReadDisk. IRPs build with IoBuildSynchronousFsdRequest mustn't be freed by IoFreeIrp, because they're still associated with a thread.
- Don't call IoBuildAsynchronousFsdRequest with NULL buffer for read/write requests. It's explicitly prohibited per DDK documentation and causes crashes on Windows (R) NT systems.

svn path=/trunk/; revision=10395
2004-08-04 19:40:45 +00:00
Filip Navara
8db63af2d6 - Correct a comment.
svn path=/trunk/; revision=10394
2004-08-04 18:27:21 +00:00
Filip Navara
0bde909135 - Fix compiling Explorer with precompiled headers.
svn path=/trunk/; revision=10393
2004-08-04 18:22:41 +00:00
Filip Navara
c4811617d1 - Don't allow selecting separators in start menu and avoid nasty refreshing when moving mouse above the left ReactOS Logo bar.
svn path=/trunk/; revision=10392
2004-08-04 18:19:01 +00:00
Emanuele Aliberti
bde15621e5 Register the LPC Port object object in the system name space.
svn path=/trunk/; revision=10390
2004-08-04 12:50:42 +00:00
Eric Kohl
3faddac950 Add missing functions to the .def and .edf files and sort existing entries.
svn path=/trunk/; revision=10389
2004-08-04 12:11:45 +00:00
Alex Ionescu
c23f194bf6 Fix Compiler warning with -O2
svn path=/trunk/; revision=10388
2004-08-04 02:36:53 +00:00
Filip Navara
08f1890738 - Change -fno-strict-aliasing to -Wno-strict-aliasing for optimized builds.
svn path=/trunk/; revision=10387
2004-08-04 02:27:07 +00:00
Filip Navara
f9ee38ed2b - Fix setting of GDT and IDT pointers in KPCR.
svn path=/trunk/; revision=10386
2004-08-04 02:24:40 +00:00
Alex Ionescu
47b5abbd99 Fix Compiler warning with -O2
svn path=/trunk/; revision=10385
2004-08-04 00:45:36 +00:00
Filip Navara
1740e56356 - Destroy associated listview when IShellView is destroyed.
svn path=/trunk/; revision=10384
2004-08-04 00:23:28 +00:00
Filip Navara
a5154371b4 - Use NDIS_DbgPrint instead of DbgPrint for NDIS buffer messages.
svn path=/trunk/; revision=10383
2004-08-04 00:19:11 +00:00
Alex Ionescu
2aa9311ef8 Fix Compiler warning with -O2
svn path=/trunk/; revision=10382
2004-08-04 00:18:01 +00:00
Filip Navara
0cff98313c - Disable debug messages of floppy driver.
svn path=/trunk/; revision=10381
2004-08-04 00:17:49 +00:00
Filip Navara
ba0ae4ebaf - Don't print stack frames in NtContinue if NDEBUG is defined.
svn path=/trunk/; revision=10380
2004-08-04 00:17:14 +00:00
Martin Fuchs
d9f7a83889 move doxygen targets into separate scripts
svn path=/trunk/; revision=10379
2004-08-03 20:05:02 +00:00
Martin Fuchs
49c4d2b4f2 move doxygen targets to separate scripts
svn path=/trunk/; revision=10378
2004-08-03 20:04:49 +00:00
Gregor Anich
57da2ced76 Implement NtUserEnumDisplaySettings/IntEnumDisplaySettings.
svn path=/trunk/; revision=10377
2004-08-03 19:55:58 +00:00
Martin Fuchs
16904f000e readd additional non-standard Makefile targets
svn path=/trunk/; revision=10376
2004-08-03 19:53:03 +00:00
Martin Fuchs
e092a67cea add .cvsignore files for *.o and *.d
svn path=/trunk/; revision=10375
2004-08-03 19:48:00 +00:00
Martin Fuchs
08cf5682c3 get version number to display from RES_STR_PRODUCT_VERSION
svn path=/trunk/; revision=10374
2004-08-03 19:43:45 +00:00
Martin Fuchs
22147c5757 get version number to display from RES_STR_PRODUCT_VERSION
svn path=/trunk/; revision=10372
2004-08-03 19:43:45 +00:00
Alex Ionescu
c5a9f20753 Added Se Stubs, Prototypes and Exports.
svn path=/trunk/; revision=10370
2004-08-03 19:20:39 +00:00
Filip Navara
01767fb5d8 - Execute the implib rule for system applications.
svn path=/trunk/; revision=10369
2004-08-03 14:50:56 +00:00
Eric Kohl
48ff8c0e48 Add wizard watermark and header bitmaps.
svn path=/trunk/; revision=10368
2004-08-03 14:10:49 +00:00
Eric Kohl
f0d259c7bc SeAssignSecurity():
- Inherit SACL.
- Make sure SIDs and ACLs are 4 byte aligned.

svn path=/trunk/; revision=10367
2004-08-03 13:58:56 +00:00
Eric Kohl
437de0500e - Use 'MS Shell Dlg' font in all dialogs.
- Fix some typos in german dialogs.
- Add locale page dialog.
- Store owner name, owner organization and computer name in the registry.

svn path=/trunk/; revision=10366
2004-08-03 13:43:00 +00:00
Martin Fuchs
62d46e8d85 correct TARGET_PCH to 'precomp.h'
svn path=/trunk/; revision=10365
2004-08-02 20:55:26 +00:00
Martin Fuchs
932a73bfc2 context menus for start menus
svn path=/trunk/; revision=10364
2004-08-02 20:00:56 +00:00
Martin Fuchs
62f1a2a671 context menus for qick launch bar
svn path=/trunk/; revision=10363
2004-08-02 19:16:18 +00:00
Filip Navara
efb2135435 - Add TARGET_PCH to Explorer makefile.
- Delete only the one used .pch file and not *.pch in helper.mk.

svn path=/trunk/; revision=10362
2004-08-02 15:51:23 +00:00
Filip Navara
3639da0250 - Use __KeStallExecutionProcessor instead of plain loop in HalCalibratePerformanceCounter since __KeStallExecutionProcessor is safe even for optimized builds.
svn path=/trunk/; revision=10361
2004-08-02 15:09:22 +00:00
Gregor Anich
64a312d97d If initializing the desktop implementation fails, print "Failed to initialize desktop implementation!", not "Failed to initialize window station implementation!"
svn path=/trunk/; revision=10360
2004-08-02 15:07:26 +00:00
Filip Navara
0eb15adf43 - Ignore msacm32.spec.def and Makefile.ros.
svn path=/trunk/; revision=10359
2004-08-02 15:07:09 +00:00
Filip Navara
7193e1d360 - Delete ntoskrnl/ps/i386/*.o on "make clean".
- Standardize Explorer makefile.
- Remove obsolete WINE_MODE and WINE_RC handling from helper.mk.

svn path=/trunk/; revision=10358
2004-08-02 15:04:24 +00:00
Filip Navara
16ac657bde - Fix building of MidiMap and WaveMap audio drivers.
svn path=/trunk/; revision=10357
2004-08-02 14:58:59 +00:00
Martin Fuchs
da6bb56348 update binres tools and fix renaming bug
svn path=/trunk/; revision=10356
2004-08-02 07:59:38 +00:00
Filip Navara
5efcf7ad5c - Remove build generated files from CVS.
svn path=/trunk/; revision=10355
2004-08-02 03:12:04 +00:00
Filip Navara
d6ee3ac209 - Use #include <xxx> for system include files instead of #include "xxx".
svn path=/trunk/; revision=10354
2004-08-02 03:07:36 +00:00
Filip Navara
c7dda4d8da - Remove msvfw32.spec.def as *.spec.def files are generated during the build.
svn path=/trunk/; revision=10353
2004-08-02 03:04:40 +00:00
Filip Navara
aa682a95e1 - Remove #include directives surrounded by #ifndef __REACTOS__.
svn path=/trunk/; revision=10352
2004-08-02 03:03:10 +00:00
Filip Navara
b80f0e34e1 - Remove unused makefiles.
svn path=/trunk/; revision=10351
2004-08-02 03:01:50 +00:00
Filip Navara
cb394360c0 - Get rid of WINE_MODE and WINE_RC usage in makefiles.
svn path=/trunk/; revision=10350
2004-08-02 02:55:08 +00:00
Filip Navara
3c76881837 - Add definition of _tmakepath.
svn path=/trunk/; revision=10349
2004-08-02 02:52:31 +00:00
Filip Navara
39799e45c9 - Make sure all build files and directories are properly deleted on "make clean".
svn path=/trunk/; revision=10348
2004-08-01 23:27:56 +00:00
Filip Navara
03578741a9 - Add *.pch to list of ignored files.
svn path=/trunk/; revision=10347
2004-08-01 22:02:30 +00:00
Filip Navara
a0198bed0d - Ignore all .ico files.
svn path=/trunk/; revision=10346
2004-08-01 22:00:33 +00:00
Filip Navara
4b0c6682d0 - Replace some usages of KEBUGCHECK(0) with correct bug check codes.
svn path=/trunk/; revision=10345
2004-08-01 21:57:35 +00:00
Filip Navara
a9f6cf2b6c - Change all FAT*FindAvailableCluster functions to new functions
FAT*FindAndMarkAvailableCluster which have incorporated the setting of
  EOF marker in the File Allocation Table for the returned cluster.

- Rewritten FAT32CountAvailableClusters, FAT32FindAndMarkAvailableCluster,
  FAT16CountAvailableClusters and FAT16FindAndMarkAvailableCluster for
  better performance. These functions were using one big loop for traversing
  the FAT and had a block of code in the loop for requesting cache manger
  for next chunk of FAT *if necessary* (which commonly wasn't the case).
  Now it's changed to request always a whole FAT chunk and process it at once
  in a nested loop.

- Cache last offset + cluster pair while reading/writing from/to file. This
  ensures almost linear times when doing sequential reads/writes, because the
  whole FAT traversing for the file is not done again for every request.
  Previously there was code for this, but it was neither correctly used
  nor working. It stored the last offset + cluster pair in file CCB structure
  (that is unique for each opened file handle) and not FCB structure (which
  is shared among all instances of the same file). This resulted in
  inconsistent cluster + offset number when the file allocation chain was
  changed (eg. by enlarging/shrinking the file), but since the cached offsets
  weren't actully used it went unnoticed.

- Remove old hack from NextCluster and fix the call to it in VfatAddEntry.
  Not much to say about it, there was an temporary hack in NextCluster and
  with fixed VfatAddEntry it's now no longer needed.

- Add pointers to WriteCluster, FindAndMarkAvailableCluster and
  GetNextCluster functions to device extension (set during mount) and use
  them at appropriate locations. This avoids some nasty if's in the code
  and causes some unnoticable performance improvment in the low-level
  FAT code.

- Lock the directory FCB in VfatAddEntry while modifying it. This should
  propably be done on more places, but it needs more investigations.

- Increase the file cache allocation size in VfatRead/VfatWrite. It boosts
  the overall speed of the driver a lot.

svn path=/trunk/; revision=10344
2004-08-01 21:57:18 +00:00
Martin Fuchs
0f48b872aa correct icon image order
svn path=/trunk/; revision=10343
2004-08-01 21:23:21 +00:00
Martin Fuchs
009b55a91e insert new ramdisk icon from Klemens Friedl
svn path=/trunk/; revision=10342
2004-08-01 20:56:59 +00:00
Thomas Bluemel
f258f3380a fixed popup menu for edit controls
svn path=/trunk/; revision=10341
2004-08-01 19:49:21 +00:00
Jens Collin
ace328553a corrected build error.
svn path=/trunk/; revision=10340
2004-08-01 15:56:15 +00:00
Jens Collin
9bedba895d merged with wine-version of dialogs.c and replaced CreateProcess-call with ShellExecute to be able to launch any file from start-menu
svn path=/trunk/; revision=10339
2004-08-01 15:37:06 +00:00
Thomas Bluemel
f9d899b01f fixed KDBG:=1 builds. Patch by blight
svn path=/trunk/; revision=10338
2004-08-01 11:40:37 +00:00
Martin Fuchs
d0f962adaf display different drive icons depending on the drive type
svn path=/trunk/; revision=10337
2004-08-01 11:26:13 +00:00
Martin Fuchs
09124408c9 integrate new drive icons of Klemens Friedl <frik85@hotmail.com>
(see http://reactosde.funpic.de/mediadetail.php?sec=Graphic%20arts&cat=icons&mdnr=8)

svn path=/trunk/; revision=10336
2004-08-01 11:24:43 +00:00
Martin Fuchs
79e842231c implement IServiceprovider interface
svn path=/trunk/; revision=10334
2004-08-01 09:26:27 +00:00
Hartmut Birr
06b9a76a1b - Stopped the printing of frames after the nice value 'deadbeef' in KeRosDumpStackFrames.
svn path=/trunk/; revision=10333
2004-08-01 07:28:43 +00:00
Hartmut Birr
b36f5c8459 - Changed all internal memory functions to use the page frame number instead of the physical address.
- Allowed MmCreateVirtualMapping to create mappings for more than one page.
- Used invplg to invalidate a single tlb entry.
- Simplified the access to the page tables/directories.

svn path=/trunk/; revision=10332
2004-08-01 07:27:25 +00:00
Hartmut Birr
fd411381da - Changed all internal memory functions to use the page frame number instead of the physical address.
- Allowed MmCreateVirtualMapping to create mappings for more than one page.

svn path=/trunk/; revision=10331
2004-08-01 07:24:59 +00:00
Magnus Olsen
5f1aa6ff61 change back after filps advace
svn path=/trunk/; revision=10330
2004-07-31 15:09:59 +00:00
Magnus Olsen
abcc1f252b DUMMYSTRUCTNAME1, DUMMYSTRUCTNAME1 s1, DUMMYUNIONNAME u1 where missing
did forget change DUMMYUNIONNAME u1 to DUMMYUNIONNAME1 u1

svn path=/trunk/; revision=10329
2004-07-31 14:47:09 +00:00
Eric Kohl
fa3393af0c Implement SeQuerySecurityDescriptorInfo().
svn path=/trunk/; revision=10328
2004-07-31 12:21:19 +00:00
Magnus Olsen
be56bd2bbd DUMMYSTRUCTNAME1, DUMMYSTRUCTNAME1 s1, DUMMYUNIONNAME u1 where missing
svn path=/trunk/; revision=10327
2004-07-31 12:10:32 +00:00
Magnus Olsen
f5848006c0 DUMMYSTRUCTNAME1, DUMMYSTRUCTNAME1 s1, DUMMYSTRUCTNAME1 u1 where missing
svn path=/trunk/; revision=10326
2004-07-31 12:04:23 +00:00
Hartmut Birr
ae9493fada - Used MmStats.NrFreePages instead of MiNrAvailablePages.
svn path=/trunk/; revision=10325
2004-07-31 09:44:36 +00:00
Hartmut Birr
b67cc5006c - Update the page counters in MmGetContinuousPages.
- Add a flag to PHYSICAL_PAGE, to detect if a free page is on the zeroed or on the unzeroed list.

svn path=/trunk/; revision=10324
2004-07-31 09:43:54 +00:00
James Tabor
f811b0ed5c Fix up SystemPageFileInfo and SystemCacheInfo. May not have all the right data.
svn path=/trunk/; revision=10322
2004-07-31 00:14:39 +00:00
James Tabor
1cac450d4c Moved KiTimerSystemAuditing flag to main.c.
svn path=/trunk/; revision=10321
2004-07-30 19:29:18 +00:00
James Tabor
3ba2c74617 Moved KiTimerSystemAuditing flag to main.c so it can set when everything is up and running. Also, turn the time auditing back on.
svn path=/trunk/; revision=10320
2004-07-30 19:28:49 +00:00
James Tabor
b31a0f3811 Implemented OpenThread and GetSystemTimes.
svn path=/trunk/; revision=10319
2004-07-30 19:18:39 +00:00
Thomas Bluemel
26ecba1c13 added "hide on minimize" feature and added context menu to the tray icon
svn path=/trunk/; revision=10318
2004-07-30 13:39:56 +00:00
Thomas Bluemel
61430b7b65 Patch by Filip Navaraf: Removed the mouse class gdi callback
svn path=/trunk/; revision=10317
2004-07-30 09:42:11 +00:00
Thomas Bluemel
6a79a66086 attempt to fix a few message queue and timer bugs
svn path=/trunk/; revision=10316
2004-07-30 09:16:06 +00:00
James Tabor
acb7361211 New Process & Thread time locking and experimental DPC accounting support.
svn path=/trunk/; revision=10315
2004-07-29 23:28:48 +00:00
James Tabor
a769548161 Add ps to system build.
svn path=/trunk/; revision=10314
2004-07-29 22:32:37 +00:00
James Tabor
cd7d90c696 New process listing command.
svn path=/trunk/; revision=10313
2004-07-29 22:31:56 +00:00
James Tabor
a514022aea Fixing Taskmgr and GlobalMemoryStatusEx return numbers.
svn path=/trunk/; revision=10312
2004-07-29 20:37:02 +00:00
Thomas Bluemel
7d74fb9d99 fixed compiling errors with gcc 3.4.x
svn path=/trunk/; revision=10311
2004-07-29 16:46:22 +00:00
Thomas Bluemel
a8c60b138d don't change selection if not capturing the console window
svn path=/trunk/; revision=10310
2004-07-29 13:54:45 +00:00
Thomas Bluemel
310098e324 fixed calculation of selected cells
svn path=/trunk/; revision=10309
2004-07-29 13:43:38 +00:00
Thomas Bluemel
1ee783cd7d fix assertion statement
svn path=/trunk/; revision=10308
2004-07-29 12:03:47 +00:00
Art Yerkes
bc0ec8c03d Fixed includes so that DBG keys on roscfg.h
Fixed subtle bug in miniport.c: if exactly one protocol is registered we
would skip it in MiniIndicateData because we took the .Flink value from the
list head, then compared CurrentEntry->Flink to the list head address.

svn path=/trunk/; revision=10307
2004-07-29 05:00:43 +00:00
Art Yerkes
c14c59021f Accidentally missed one breakpoint from the previous debugging session.
svn path=/trunk/; revision=10306
2004-07-29 04:10:53 +00:00
Art Yerkes
c0dd64494d Fixed memory overwrite due to too-small allocation.
svn path=/trunk/; revision=10305
2004-07-29 04:09:06 +00:00
Thomas Bluemel
b6a9c73c88 allow selecting text with the mouse in gui consoles
svn path=/trunk/; revision=10304
2004-07-28 22:28:50 +00:00
Steven Edwards
c9f548f45a Add all the new fonts to the bootcd.
svn path=/trunk/; revision=10303
2004-07-28 04:20:44 +00:00
Steven Edwards
7c8435a226 patch by Arty to fix casting issue.
I lost the old patch by Filip.

svn path=/trunk/; revision=10302
2004-07-28 04:20:12 +00:00
Steven Edwards
b4cbfd1d28 C++ flags not C Flags
svn path=/trunk/; revision=10301
2004-07-28 04:02:47 +00:00
Magnus Olsen
303ce93000 remove struct _DDSCAPSEX
it are allread in ddraw.h

svn path=/trunk/; revision=10298
2004-07-27 11:47:10 +00:00
Magnus Olsen
1e873b4f31 From wine include files for preption for directx support in reactos
no changes have been made on this file
to sync with wine only copy thuse file from wine when it need.

svn path=/trunk/; revision=10297
2004-07-27 10:46:27 +00:00
Magnus Olsen
c0779f51d4 From wine include files for preption for directx support in reactos
no changes have been made on this file
to sync with wine only copy thuse file from wine when it need.

svn path=/trunk/; revision=10296
2004-07-27 10:30:11 +00:00
Filip Navara
a646b85ed6 * dlls/shell32/shellpath.c: Aric Stewart <aric@codeweavers.com>
Make sure that the size of the buffer passed to RegSetValueExW is in
bytes not WCHARs.

svn path=/trunk/; revision=10291
2004-07-26 17:02:30 +00:00
James Tabor
2fe9583bc7 Patch for fixing EnumThreadWindows.
svn path=/trunk/; revision=10290
2004-07-26 14:58:35 +00:00
Eric Kohl
6b53247ee6 Remove dead code.
svn path=/trunk/; revision=10289
2004-07-26 13:19:34 +00:00
Eric Kohl
9528bf078e Implement SeValidSecurityDescriptor().
svn path=/trunk/; revision=10288
2004-07-26 12:44:40 +00:00
Eric Kohl
66a51a8a25 Implement NtSetSecurityObject().
svn path=/trunk/; revision=10287
2004-07-25 17:06:37 +00:00
Steven Edwards
6e3095a9e1 Cleaned up Taskmgr resources to break each language in
to its own resource file.

Spanish translation by Carlos Garcia Gomez.

svn path=/trunk/; revision=10286
2004-07-25 16:02:48 +00:00
Thomas Bluemel
9953b620f8 fixed compiling
svn path=/trunk/; revision=10285
2004-07-25 15:11:24 +00:00
Eric Kohl
f4fe39f27b Implement NtQuerySecurityObject() for objects that keep the security in the object header.
svn path=/trunk/; revision=10284
2004-07-25 12:39:28 +00:00
Eric Kohl
7d6581aebc Move generic access rights to a common header file and add missing access rights.
svn path=/trunk/; revision=10283
2004-07-25 12:36:45 +00:00
Martin Fuchs
8fb1163c02 recalculate start menu root position for any call
svn path=/trunk/; revision=10281
2004-07-24 20:09:45 +00:00
Thomas Bluemel
ce336586ba implementation of TouchFileTimes(), Thanks to Florian Stinglmayr for submitting a rough draft ;)
svn path=/trunk/; revision=10279
2004-07-24 10:42:55 +00:00
Thomas Bluemel
d7c54ad860 Krishna Murthy <Krishna.Murthy@guptaworldwide.com>
Modified EDIT_WM_Char() to restrict keying in of letters other than
	numbers when ES_NUMBER style is set.

svn path=/trunk/; revision=10278
2004-07-24 09:43:09 +00:00
Art Yerkes
5fd1995681 Parallel commit: See this osr page:
http://www.osr.com/ddk/network/103ndisx_51pu.htm
Fixes problem with reactos ne2000 driver and ndis resulting in random
heap corruption.  The NdisMEthIndicateReceive macro passes the
MiniportAdapterHandle, not the ETH_FILTER from inside it.

svn path=/trunk/; revision=10277
2004-07-24 04:49:33 +00:00
Art Yerkes
a85dce53e9 According to this osr page:
http://www.osr.com/ddk/network/103ndisx_51pu.htm

NdisMEthIndicateReceive passes an NDIS_HANDLE (Specifically,
MiniportAdapterHandle), rather than the ETH_FILTER structure.  God knows why
this wasn't caught before but it did awfully strange stuff including the
occasional crash, and more importantly, seemingly randomly corrupting the
LAN_ADAPTER and IP_INTERFACE structures in tcpip.sys when we landed in
packet receiving in datalink/lan.c.  Fixed now.

svn path=/trunk/; revision=10276
2004-07-24 04:48:01 +00:00
Thomas Bluemel
b477fd3439 ignore dependency files
svn path=/trunk/; revision=10275
2004-07-24 01:37:43 +00:00
Thomas Bluemel
b4c02404fd Sync with wine-20040724
svn path=/trunk/; revision=10274
2004-07-24 01:32:58 +00:00
Filip Navara
96364f9b04 - Fix WS_CAPTION style handling.
svn path=/trunk/; revision=10273
2004-07-24 01:28:15 +00:00
Filip Navara
5ada12c0d9 - Associate Irp with thread in NtSetInformationFile.
svn path=/trunk/; revision=10272
2004-07-24 01:28:04 +00:00
Filip Navara
e99d2b956a - Replace incorrect casts and comparsions by using the HIWORD macro so we get the correct debug info.
svn path=/trunk/; revision=10271
2004-07-24 01:28:01 +00:00
Filip Navara
05f0512081 - Fix OpenFile for OF_CREATE case.
svn path=/trunk/; revision=10270
2004-07-24 01:27:54 +00:00
Thomas Bluemel
8033e5b560 Sync with wine-20040724
svn path=/trunk/; revision=10269
2004-07-24 01:21:34 +00:00
Thomas Bluemel
bfcd174365 Sync with wine-20040724
svn path=/trunk/; revision=10268
2004-07-24 00:55:39 +00:00
Thomas Bluemel
c7c06a5864 Sync with wine-20040724
svn path=/trunk/; revision=10267
2004-07-24 00:45:31 +00:00
Thomas Bluemel
2effacb2e6 Sync with wine-20040724
svn path=/trunk/; revision=10266
2004-07-24 00:40:01 +00:00
Casper Hornstrup
abc9d6261c 2004-07-24 Casper S. Hornstrup <chorns@users.sourceforge.net>
* Makefile (DLLS): Add gdiplus.
	* apistatus.lst: Add gdiplus.dll.
	* baseaddress.cfg (TARGET_BASE_LIB_GDIPLUS): Declare.
	* bootdata/packages/reactos.dff: Add gdiplus.dll.
	* include/ntos/rtl.h (InsertTailList): Remove dependency on RtlAssert.
	* lib/gdiplus/(gdiplus, include, tests, tests/tests): New directories.
	* lib/gdiplus/(.cvsignore, gdiplus.def, gdiplus.edf, gdiplus.rc,
	makefile): New files.
	* lib/gdiplus/gdiplus/(.cvsignore, *.c): Ditto.
	* lib/gdiplus/include/(debug.h, GdiPlusPrivate.h): Ditto.
	* lib/gdiplus/tests/(.cvsignore, Makefile, passthrough.c): Ditto.
	* lib/gdiplus/tests/tests/(.cvsignore, test-1.c): Ditto.

svn path=/trunk/; revision=10265
2004-07-23 21:54:55 +00:00
Eric Kohl
013e3c728c Implement ObGetObjectSecurity() and ObReleaseObjectSecurity().
svn path=/trunk/; revision=10264
2004-07-23 21:44:10 +00:00
Jason Filby
23cd7fb231 Set TMPF_TRUETYPE flag for TEXTMETRICW variable in NtGdiGetTextMetrics if dealing with a TrueType font
svn path=/trunk/; revision=10263
2004-07-23 20:46:20 +00:00
Jason Filby
6c4e90a9ab Port GetCharacterPlacementW from WINE; copy lpString to lpResults->lpGlyphs if it (destination string) is not null
svn path=/trunk/; revision=10262
2004-07-23 20:41:09 +00:00
Casper Hornstrup
3d3df3bc4e 2004-07-23 Casper S. Hornstrup <chorns@users.sourceforge.net>
* Makefile, drivers/video/makefile, lib/cpl/Makefile, ntoskrnl/Makefile,
	tools/helper.mk: Add test target.
	* include/ntos/types.h (UINT16, PUINT16): Declare.
	* regtests/kmregtests/tests/mdl-1.c, regtests/kmregtests/tests/mdl-2.c,
	regtests/kmregtests/tests/mm-1.c, subsys/win32k/tests/tests/eng-mem-1.c:
	Simplify tests.
	* regtests/shared/regtests.c: Include <ctype.h> and <stdlib.h>.
	* regtests/shared/regtests.h (DISPATCHER): Declare the whole function.
	* tools/regtests.c: Refactor part of register_test into get_test_name();
	Stub for running tests in the build environment.
	* w32api/include/basetsd.h (INT16, PINT16, UINT16, PUINT16): Declare.
	* lib/user32/misc/exticon.c (UINT16): Remove declaration.

svn path=/trunk/; revision=10261
2004-07-23 20:03:26 +00:00
Casper Hornstrup
ba42192c97 2004-07-23 Casper S. Hornstrup <chorns@users.sourceforge.net>
* rules.mak: Be silent only if VERBOSE=no.

svn path=/trunk/; revision=10260
2004-07-23 19:07:44 +00:00
Casper Hornstrup
6dbdb2b832 2004-07-23 Casper S. Hornstrup <chorns@users.sourceforge.net>
* rules.mak: Do not print "'target' is up to date." messages.

svn path=/trunk/; revision=10259
2004-07-23 17:48:10 +00:00
Eric Kohl
38d792196e Move security information constants.
svn path=/trunk/; revision=10258
2004-07-23 09:26:29 +00:00
James Tabor
b2f73e07c8 Added thread counting with PsEnumThreadsByProcess and thread support in SystemProcessInformation.
svn path=/trunk/; revision=10257
2004-07-23 07:44:26 +00:00
Filip Navara
651d364842 - Fix handling of METHOD_IN_DIRECT IRPs.
svn path=/trunk/; revision=10256
2004-07-22 20:40:17 +00:00
Filip Navara
bdedaa4fe0 - Support for deserialized miniports (experimental).
svn path=/trunk/; revision=10255
2004-07-22 18:54:36 +00:00
Filip Navara
6e64d6266e - Implementation of HalReadDmaCounter.
- Cleaned up implementation of HalGetAdapter. Moved the initialization
  stuff from there to HalpInitDma that is called by HalInitSystem.
- Let HalAllocateCommonBuffer allocated 64K aligned memory.
- Change IoMapTransfer to support auto initialize and single transfer mode,
  16-bit DMA and common buffers.
- Stop DMA transfer in IoFlushAdapterBuffers.

svn path=/trunk/; revision=10254
2004-07-22 18:49:18 +00:00
Eric Kohl
ec5f846d4c - Add security function for file and registry key objects.
- Implement ObAssignSecurity().

svn path=/trunk/; revision=10253
2004-07-22 18:38:08 +00:00
James Tabor
b6e1dfaded Fixing time accounting errors when mult & div into LARGE_INTEGER.
svn path=/trunk/; revision=10252
2004-07-22 17:22:38 +00:00
Filip Navara
46e6b49f21 - Fix handling of METHOD_IN_DIRECT IRPs.
svn path=/trunk/; revision=10251
2004-07-22 16:21:39 +00:00
James Tabor
0b05c8aa29 Fix DosDateTimeToFileTime too.
svn path=/trunk/; revision=10248
2004-07-22 06:28:52 +00:00
James Tabor
b95aac5417 You can not stuff 60 seconds in 5 bits.
svn path=/trunk/; revision=10247
2004-07-22 06:07:02 +00:00
Filip Navara
58adcd8099 - Fix initialization order.
svn path=/trunk/; revision=10246
2004-07-22 02:36:43 +00:00
Filip Navara
c846dde012 - Fix heap corruption on converting ANSI -> UNICODE strings.
svn path=/trunk/; revision=10245
2004-07-22 02:32:53 +00:00
Filip Navara
b4b6a5f134 - Map the GENERIC_* flags depending of the object type in IoCreateFile.
svn path=/trunk/; revision=10244
2004-07-22 02:32:43 +00:00
Filip Navara
d17f542edd Revert this patch:
- Convert the user mode dwDesiredAccess flags in CreateFile to the kernel mode ones that are used by NtCreateFile.

svn path=/trunk/; revision=10243
2004-07-22 02:32:40 +00:00
Eric Kohl
5d44bfe942 Implement simple DACL inheritance.
svn path=/trunk/; revision=10242
2004-07-21 23:38:15 +00:00
Casper Hornstrup
88662ac62e 2004-07-21 Casper S. Hornstrup <chorns@users.sourceforge.net>
* w32api/include/(GdiPlus.h, GdiPlusBase.h, GdiPlusBrush.h, GdiPlusColor.h,
	GdiPlusColorMatrix.h, GdiPlusEffects.h, GdiPlusEnums.h, GdiPlusFlat.h,
	GdiPlusGpStubs.h, GdiPlusGraphics.h, GdiPlusHeaders.h,
	GdiPlusImageAttributes.h, GdiPlusImaging.h GdiPlusInit.h,
	GdiPlusLineCaps.h, GdiPlusMatrix.h, GdiPlusMem.h, GdiPlusMetaFile.h,
	GdiPlusMetaHeader.h, GdiPlusPath.h, GdiPlusPen.h, GdiPlusPixelFormats.h,
	GdiPlusStringFormat.h, GdiPlusTypes.h): New files.

svn path=/trunk/; revision=10241
2004-07-21 20:10:05 +00:00
Martin Fuchs
6dc20a8084 use same startmenu entries height as MS explorer
svn path=/trunk/; revision=10240
2004-07-21 19:05:19 +00:00
Casper Hornstrup
4175709d6c 2004-07-21 Casper S. Hornstrup <chorns@users.sourceforge.net>
* rules.mak, iface/addsys/makefile, iface/native/makefile,
	tools/Makefile: Be quiet if VERBOSE=no.
	* tools/helper.mk: Print module name if it was successfully built.
	* tools/regtests.c, tools/wine2ros/wine2ros.c: Be quiet.

svn path=/trunk/; revision=10239
2004-07-21 18:17:50 +00:00
Alex Ionescu
0b9e69fecf Implemented PsGetThreadFreezeCount, PsGetThreadHardErrorsAreDisabled, PsGetThreadId, PsGetThreadProcess, PsGetThreadProcessId, PsGetThreadSessionId, PsGetThreadTeb, PsGetThreadWin32Thread, PsGetCurrentThreadPreviousMode, PsGetCurrentThreadStackBase, PsGetCurrentThreadStackLimit, PsSetThreadHardErrorsAreDisabled, PsSetThreadWin32Thread
svn path=/trunk/; revision=10238
2004-07-21 01:05:26 +00:00
Alex Ionescu
2afa5d7040 Implemented PsGetProcessCreateTimeQuadPart, PsGetProcessDebugPort, PsGetProcessExitProcessCalled, PsGetProcessExitStatus, PsGetProcessId, PsGetProcessImageFileName, PsGetProcessInheritedFromUniqueProcessId, PsGetProcessPeb,
PsGetProcessPriorityClass, PsGetProcessSectionBaseAddress,
PsGetProcessSecurityPort, PsGetProcessWin32Process,
PsGetProcessWin32WindowStation, PsIsProcessBeingDebugged,
PsGetCurrentProcessSessionId, PsGetProcessSessionId, PsSetProcessPriorityClass, PsSetProcessSecurityPort, PsSetProcessWin32Process, PsSetProcessWin32WindowStation

svn path=/trunk/; revision=10237
2004-07-20 23:58:35 +00:00
Hartmut Birr
f8db6a5d2a - Replaced all single pushf/popf inline assembler instructions with a macro
which doesn't change the stack layout.

svn path=/trunk/; revision=10236
2004-07-20 21:25:36 +00:00
Steven Edwards
54ed416bfe added msacm32.dll to the build. This gets Winamp loading.
Cleaned up the list of libs a bit.

svn path=/trunk/; revision=10235
2004-07-20 19:24:39 +00:00
Steven Edwards
55a9f27fef These files are auto-generated.
svn path=/trunk/; revision=10234
2004-07-20 19:14:48 +00:00
Alex Ionescu
27a729d88d Implemented ImageLoad, MapAndLoad, ImageRvaToVa, ImageRvaToSection, ImageDirectoryEntryToData, GetImageUnusedHeaderBytes and BindImageEx
svn path=/trunk/; revision=10233
2004-07-20 16:48:18 +00:00
Eric Kohl
c5ad1ab780 SeAssignSecurity:
- Build a self-relative security descriptor.
- Inherit owner and group SIDs or assign useful default SIDs.
- Copy DACL from explicit secuity descriptor.

svn path=/trunk/; revision=10232
2004-07-20 12:08:04 +00:00
Filip Navara
ce98b463a5 - Fix handling of METHOD_IN_DIRECT IRPs.
svn path=/trunk/; revision=10231
2004-07-20 11:06:47 +00:00
Steven Edwards
3a9f5e2f86 the resources are still in upper case. Adjust the RC to match this to fix the linux build
svn path=/trunk/; revision=10230
2004-07-19 21:51:49 +00:00
Gregor Anich
10b4b57ad4 Don't interpret \\r\\n as 2 newlines.
svn path=/trunk/; revision=10229
2004-07-19 19:40:01 +00:00
Thomas Bluemel
7497d9c86e fixed calculation of memory address
svn path=/trunk/; revision=10228
2004-07-19 17:55:33 +00:00
Eric Kohl
de32ec78dc - Add @implemented tag to NtMakePermanentObject().
- Capture the security context before calling SeAsignSecurity() and release it later.

svn path=/trunk/; revision=10227
2004-07-19 12:48:59 +00:00
Eric Kohl
ae95148c4b SeCaptureSubjectContext() must not crash if no current thread exists.
svn path=/trunk/; revision=10226
2004-07-19 12:45:56 +00:00
Thomas Bluemel
06272913f0 added missing colors
svn path=/trunk/; revision=10225
2004-07-19 12:13:45 +00:00
Thomas Bluemel
ae734f5bd5 fixed file names
svn path=/trunk/; revision=10224
2004-07-19 09:55:26 +00:00
Thomas Bluemel
f1075c6387 fixed file names
svn path=/trunk/; revision=10223
2004-07-19 09:54:46 +00:00
Alex Ionescu
87ea80f6b7 Added Ps Stubs and Prototypes.
svn path=/trunk/; revision=10222
2004-07-19 06:08:21 +00:00
Alex Ionescu
8aab59acbf Added OPTIMIZED Flag to config file to build optimized versions of NTOSKRNL and WIN32K. Disabled by default.
svn path=/trunk/; revision=10221
2004-07-19 04:52:24 +00:00
Art Yerkes
659a6041bc Forgot to add file tilists.h
svn path=/trunk/; revision=10220
2004-07-19 04:30:04 +00:00
Gero Kuehn
42d52c68a5 added preparations for installing .INF files (for class installers) during setup, added Reactos\Inf
svn path=/trunk/; revision=10219
2004-07-19 01:33:48 +00:00
Filip Navara
48316edcd9 - Change IoReportResourceUsage from using UNIMPLEMENTED macro to just print an message that the function is unimplemented.
svn path=/trunk/; revision=10218
2004-07-18 23:52:50 +00:00
Filip Navara
f810ae11e4 - Change length checking semantics of NtEnumerateKey for KeyBasicInformation.
- Correct buffer size calculations.

svn path=/trunk/; revision=10217
2004-07-18 23:52:38 +00:00
Filip Navara
579f24da75 - Properly set last error in WaitForSingleObjectEx.
svn path=/trunk/; revision=10216
2004-07-18 23:52:31 +00:00
Filip Navara
9ec9ff807a - RegEnumValueW should fill in *lpcbData if lpData == NULL.
svn path=/trunk/; revision=10215
2004-07-18 23:52:30 +00:00
Art Yerkes
6a793b2703 Fixed after prototype change.
svn path=/trunk/; revision=10212
2004-07-18 22:53:59 +00:00
Art Yerkes
a01c282993 Changed include for afd.
svn path=/trunk/; revision=10211
2004-07-18 22:50:52 +00:00
Art Yerkes
0f1eb55991 First commit of afd and msafd onto head.
tcpip: Turned off debug info in CVS.

svn path=/trunk/; revision=10210
2004-07-18 22:49:18 +00:00
Gero Kuehn
cd35daab59 added initial version of the network cpl
svn path=/trunk/; revision=10209
2004-07-18 22:37:08 +00:00
Gero Kuehn
5633682080 added registry entries for the network configuration
svn path=/trunk/; revision=10208
2004-07-18 22:25:05 +00:00
Art Yerkes
6ac4bce416 msafd + afd: Changed type of PVOID args to PAFD_WSABUF, avoiding some casts.
Added some tracing.
Converted afd.sys to use METHOD_NEITHER in the correct places.
oskittcp: Added some tracking in tcp_input and tcp_output to help look for
the ack bug.
tcpip: some cleaning.  Realized that an NTE was getting sent to IPReceive as
the Context parameter, but was later treated as IP_INTERFACE.  Changed
prototypes to keep this from happening again.

svn path=/trunk/; revision=10207
2004-07-18 22:03:49 +00:00
Thomas Bluemel
430efd137f don't create read-only files
svn path=/trunk/; revision=10206
2004-07-18 21:39:55 +00:00
Gregor Anich
06dd253e6e Delete read-only files too.
svn path=/trunk/; revision=10205
2004-07-18 21:15:47 +00:00
Alex Ionescu
c49a1aa591 Fixed broken build. Added functions were already defined in /lib/rtl and unecessary in ntoskrnl.
svn path=/trunk/; revision=10204
2004-07-18 17:45:28 +00:00
Magnus Olsen
288862f4dc *** empty log message ***
svn path=/trunk/; revision=10202
2004-07-18 17:38:17 +00:00
Filip Navara
5586cebc70 - Since DirecrSound is not implemented at all we should return error in DirectSoundCreate.
svn path=/trunk/; revision=10201
2004-07-18 17:16:57 +00:00
Filip Navara
cf649ce107 - Convert the user mode dwDesiredAccess flags in CreateFile to the kernel mode ones that are used by NtCreateFile.
svn path=/trunk/; revision=10200
2004-07-18 17:08:29 +00:00
Filip Navara
6a7a2b5854 - Fallback implementation in waveOut[Un]PrepareHeader.
svn path=/trunk/; revision=10199
2004-07-18 17:06:03 +00:00
Thomas Bluemel
a8da150d8b Added and updated some German translations. Patch by Michael Fritscher.
svn path=/trunk/; revision=10198
2004-07-18 16:07:58 +00:00
Thomas Bluemel
e88c525321 cvs maintainance
svn path=/trunk/; revision=10197
2004-07-18 16:00:05 +00:00
Eric Kohl
4962573e85 Use SeAssignSecurity() to build a security descriptor for a new object.
svn path=/trunk/; revision=10196
2004-07-18 13:03:43 +00:00
9858 changed files with 3121742 additions and 2698 deletions

View File

@@ -0,0 +1,510 @@
// irc_test.cpp
#ifdef _MSC_VER
#pragma warning ( disable : 4786 )
#endif//_MSC_VER
#include <time.h>
#include <stdio.h>
#include "File.h"
#include "ssprintf.h"
#include "trim.h"
#include "IRCClient.h"
using std::string;
using std::vector;
#if defined(_DEBUG) && 0
const char* BOTNAME = "RoyBot";
const char* CHANNEL = "#RoyBotTest";
#else
const char* BOTNAME = "ArchBlackmann";
const char* CHANNEL = "#ReactOS";
#endif
//vector<string> tech, module, dev, stru, period, status, type, func, irql, curse, cursecop;
class List
{
public:
string name;
bool macro;
std::vector<std::string> list;
string tag;
int last;
List() { last = -1; }
List ( const char* _name, bool _macro ) : name(_name), macro(_macro)
{
tag = ssprintf("%%%s%%",_name);
last = -1;
}
};
vector<List> lists;
vector<string> ops;
void ImportList ( const char* listname, bool macro )
{
lists.push_back ( List ( listname, macro ) );
List& list = lists.back();
File f ( ssprintf("%s.txt",listname).c_str(), "r" );
string line;
while ( f.next_line ( line, true ) )
list.list.push_back ( line );
}
const char* ListRand ( List& list )
{
vector<string>& l = list.list;
if ( !l.size() )
{
static string nothing;
nothing = ssprintf ( "<list '%s' empty>", list.name.c_str() );
return nothing.c_str();
}
else if ( l.size() == 1 )
return l[0].c_str();
int sel = list.last;
while ( sel == list.last )
sel = rand()%l.size();
list.last = sel;
return l[sel].c_str();
}
const char* ListRand ( int i )
{
return ListRand ( lists[i] );
}
int GetListIndex ( const char* listname )
{
for ( int i = 0; i < lists.size(); i++ )
{
if ( !stricmp ( lists[i].name.c_str(), listname ) )
return i;
}
return -1;
}
List& GetList ( const char* listname )
{
return lists[GetListIndex(listname)];
}
const char* ListRand ( const char* list )
{
int i = GetListIndex ( list );
if ( i < 0 )
return NULL;
return ListRand(i);
}
string TaggedReply ( const char* listname )
{
string t = ListRand(listname);
string out;
const char* p = t.c_str();
while ( *p )
{
if ( *p == '%' )
{
bool found = false;
for ( int i = 0; i < lists.size() && !found; i++ )
{
if ( lists[i].macro && !strnicmp ( p, lists[i].tag.c_str(), lists[i].tag.size() ) )
{
out += ListRand(i);
p += lists[i].tag.size();
found = true;
}
}
if ( !found )
out += *p++;
}
const char* p2 = strchr ( p, '%' );
if ( !p2 )
p2 = p + strlen(p);
if ( p2 > p )
{
out += string ( p, p2-p );
p = p2;
}
}
return out;
}
string gobble ( string& s, const char* delim )
{
const char* p = s.c_str();
p += strspn ( p, delim );
const char* p2 = strpbrk ( p, delim );
if ( !p2 ) p2 = p + strlen(p);
string out ( p, p2-p );
p2 += strspn ( p2, delim );
s = string ( p2 );
return out;
}
bool isop ( const string& who )
{
for ( int i = 0; i < ops.size(); i++ )
{
if ( ops[i] == who )
return true;
}
return false;
}
// do custom stuff with the IRCClient from your subclass via the provided callbacks...
class MyIRCClient : public IRCClient
{
File flog;
public:
MyIRCClient()
{
flog.open ( "arch.log", "w+" );
}
// see IRCClient.h for documentation on these callbacks...
bool OnConnected()
{
return true;
}
bool OnJoin ( const string& user, const string& channel )
{
printf ( "user '%s' joined channel '%s'\n", user.c_str(), channel.c_str() );
return true;
}
bool OnPart ( const std::string& user, const std::string& channel )
{
for ( int i = 0; i < ops.size(); i++ )
{
if ( ops[i] == user )
{
printf ( "remove '%s' to ops list\n", user.c_str() );
ops.erase ( &ops[i] );
}
}
return true;
}
bool OnNick ( const std::string& oldNick, const std::string& newNick )
{
for ( int i = 0; i < ops.size(); i++ )
{
if ( ops[i] == oldNick )
{
printf ( "op '%s' changed nick to '%s'\n", oldNick.c_str(), newNick.c_str() );
ops[i] = newNick;
return true;
}
}
return true;
}
bool OnEndChannelUsers ( const string& channel )
{
return true;
}
bool OnPrivMsg ( const string& from, const string& text )
{
printf ( "<%s> %s\n", from.c_str(), text.c_str() );
flog.printf ( "<%s> %s\n", from.c_str(), text.c_str() );
if ( strnicmp ( text.c_str(), "!say ", 5 ) || !isop(from) )
return PrivMsg ( from, "hey, your tongue doesn't belong there!" );
string say = trim(&text[5]);
if ( !strnicmp ( say.c_str(), "/me ", 4 ) )
return Action ( CHANNEL, trim(&say[4]) );
else
return PrivMsg ( CHANNEL, trim(say) );
}
bool OnChannelMsg ( const string& channel, const string& from, const string& text )
{
printf ( "%s <%s> %s\n", channel.c_str(), from.c_str(), text.c_str() );
flog.printf ( "%s <%s> %s\n", channel.c_str(), from.c_str(), text.c_str() );
bool found_name = false;
string text2 ( text );
strlwr ( &text2[0] );
if ( !strnicmp ( text.c_str(), BOTNAME, strlen(BOTNAME) ) )
found_name = true;
else if ( !strnicmp ( text.c_str(), "arch ", 5 ) )
found_name = true;
if ( found_name )
{
string s ( text );
gobble ( s, " \t" ); // remove bot name
found_name = true;
if ( s[0] == '!' )
{
bool from_op = isop(from);
string cmd = gobble ( s, " \t" );
if ( !from_op )
{
if ( cmd == "!grovel" )
{
string out = ssprintf(TaggedReply("nogrovel").c_str(),from.c_str());
if ( !strnicmp ( out.c_str(), "/me ", 4 ) )
return Action ( channel, &out[4] );
else
return PrivMsg ( channel, out );
}
return PrivMsg ( channel, ssprintf("%s: I don't take commands from non-ops",from.c_str()) );
}
if ( cmd == "!add" )
{
string listname = gobble ( s, " \t" );
int i = GetListIndex ( listname.c_str() );
if ( i == -1 )
return PrivMsg ( channel, ssprintf("%s: I don't have a list named '%s'",from.c_str(),listname.c_str()) );
List& list = lists[i];
if ( s[0] == '\"' || s[0] == '\'' )
{
char delim = s[0];
const char* p = &s[1];
const char* p2 = strchr ( p, delim );
if ( !p2 )
return PrivMsg ( channel, ssprintf("%s: Couldn't add, unmatched quotes",from.c_str()) );
s = string ( p, p2-p );
}
for ( i = 0; i < list.list.size(); i++ )
{
if ( list.list[i] == s )
return PrivMsg ( channel, ssprintf("%s: entry already exists in list '%s'",from.c_str(),listname.c_str()) );
}
if ( !stricmp ( listname.c_str(), "curse" ) )
strlwr ( &s[0] );
list.list.push_back ( s );
{
File f ( ssprintf("%s.txt",list.name.c_str()), "w" );
for ( i = 0; i < list.list.size(); i++ )
f.printf ( "%s\n", list.list[i].c_str() );
}
return PrivMsg ( channel, ssprintf("%s: entry added to list '%s'",from.c_str(),listname.c_str()) );
}
else if ( cmd == "!remove" )
{
string listname = gobble ( s, " \t" );
int i = GetListIndex ( listname.c_str() );
if ( i == -1 )
return PrivMsg ( channel, ssprintf("%s: I don't have a list named '%s'",from.c_str(),listname.c_str()) );
List& list = lists[i];
if ( s[0] == '\"' || s[0] == '\'' )
{
char delim = s[0];
const char* p = &s[1];
const char* p2 = strchr ( p, delim );
if ( !p2 )
return PrivMsg ( channel, ssprintf("%s: Couldn't add, unmatched quotes",from.c_str()) );
s = string ( p, p2-p );
}
for ( i = 0; i < list.list.size(); i++ )
{
if ( list.list[i] == s )
{
list.list.erase ( &list.list[i] );
{
File f ( ssprintf("%s.txt",list.name.c_str()), "w" );
for ( i = 0; i < list.list.size(); i++ )
f.printf ( "%s\n", list.list[i].c_str() );
}
return PrivMsg ( channel, ssprintf("%s: entry removed from list '%s'",from.c_str(),listname.c_str()) );
}
}
return PrivMsg ( channel, ssprintf("%s: entry doesn't exist in list '%s'",from.c_str(),listname.c_str()) );
}
else if ( cmd == "!grovel" )
{
string out = ssprintf(TaggedReply("grovel").c_str(),from.c_str());
if ( !strnicmp ( out.c_str(), "/me ", 4 ) )
return Action ( channel, &out[4] );
else
return PrivMsg ( channel, out );
}
else if ( cmd == "!kiss" )
{
if ( s.size() )
return Action ( channel, ssprintf("kisses %s",s.c_str()) );
else
return PrivMsg ( channel, ssprintf("%s: huh?",from.c_str()) );
}
else if ( cmd == "!hug" )
{
if ( s.size() )
return Action ( channel, ssprintf("hugs %s",s.c_str()) );
else
return PrivMsg ( channel, ssprintf("%s: huh?",from.c_str()) );
}
else if ( cmd == "!give" )
{
string who = gobble(s," \t");
if ( who.size() && s.size() )
return Action ( channel, ssprintf("gives %s a %s",who.c_str(),s.c_str()) );
else
return PrivMsg ( channel, ssprintf("%s: huh?",from.c_str()) );
}
else
{
return PrivMsg ( channel, ssprintf("%s: huh?",from.c_str()) );
}
}
}
bool found_curse = false;
static vector<string>& curse = GetList("curse").list;
text2 = ssprintf(" %s ",text2.c_str());
for ( int i = 0; i < curse.size() && !found_curse; i++ )
{
if ( strstr ( text2.c_str(), curse[i].c_str() ) )
found_curse = true;
}
if ( found_curse )
{
static List& cursecop = GetList("cursecop");
return PrivMsg ( channel, ssprintf("%s: %s", from.c_str(), ListRand(cursecop)) );
}
else if ( found_name )
{
string out = ssprintf("%s: %s", from.c_str(), TaggedReply("tech").c_str());
flog.printf ( "TECH-REPLY: %s\n", out.c_str() );
if ( !strnicmp ( out.c_str(), "/me ", 4 ) )
return Action ( channel, &out[4] );
else
return PrivMsg ( channel, out );
}
return true;
}
bool OnChannelMode ( const string& channel, const string& mode )
{
//printf ( "OnChannelMode(%s,%s)\n", channel.c_str(), mode.c_str() );
return true;
}
bool OnUserModeInChannel ( const string& src, const string& channel, const string& mode, const string& target )
{
printf ( "OnUserModeInChannel(%s,%s,%s,%s)\n", src.c_str(), channel.c_str(), mode.c_str(), target.c_str() );
const char* p = mode.c_str();
if ( !p )
return true;
while ( *p )
{
switch ( *p++ )
{
case '+':
while ( *p != 0 && *p != ' ' )
{
if ( *p == 'o' )
{
printf ( "adding '%s' to ops list\n", target.c_str() );
ops.push_back ( target );
}
break;
}
break;
case '-':
while ( *p != 0 && *p != ' ' )
{
if ( *p == 'o' )
{
for ( int i = 0; i < ops.size(); i++ )
{
if ( ops[i] == target )
{
printf ( "remove '%s' to ops list\n", target.c_str() );
ops.erase ( &ops[i] );
}
}
break;
}
}
}
}
return true;
}
bool OnMode ( const string& user, const string& mode )
{
//printf ( "OnMode(%s,%s)\n", user.c_str(), mode.c_str() );
return true;
}
bool OnChannelUsers ( const string& channel, const vector<string>& users )
{
//printf ( "[%s has %i users]: ", channel.c_str(), users.size() );
for ( int i = 0; i < users.size(); i++ )
{
if ( users[i][0] == '@' )
ops.push_back ( &users[i][1] );
/*if ( i )
printf ( ", " );
printf ( "%s", users[i].c_str() );*/
}
//printf ( "\n" );
return true;
}
};
int main ( int argc, char** argv )
{
srand ( time(NULL) );
ImportList ( "dev", true );
ImportList ( "func", true );
ImportList ( "dev", true );
ImportList ( "func", true );
ImportList ( "irql", true );
ImportList ( "module", true );
ImportList ( "period", true );
ImportList ( "status", true );
ImportList ( "stru", true );
ImportList ( "type", true );
ImportList ( "tech", false );
ImportList ( "curse", false );
ImportList ( "cursecop", false );
ImportList ( "grovel", false );
ImportList ( "nogrovel", false );
#ifdef _DEBUG
printf ( "initializing IRCClient debugging\n" );
IRCClient::SetDebug ( true );
#endif//_DEBUG
printf ( "calling suStartup()\n" );
suStartup();
printf ( "creating IRCClient object\n" );
MyIRCClient irc;
printf ( "connecting to freenode\n" );
//const char* server = "212.204.214.114";
const char* server = "irc.freenode.net";
if ( !irc.Connect ( server ) ) // irc.freenode.net
{
printf ( "couldn't connect to server\n" );
return -1;
}
printf ( "sending user command\n" );
if ( !irc.User ( BOTNAME, "", "irc.freenode.net", BOTNAME ) )
{
printf ( "USER command failed\n" );
return -1;
}
printf ( "sending nick\n" );
if ( !irc.Nick ( BOTNAME ) )
{
printf ( "NICK command failed\n" );
return -1;
}
printf ( "setting mode\n" );
if ( !irc.Mode ( "+i" ) )
{
printf ( "MODE command failed\n" );
return -1;
}
printf ( "joining channel\n" );
if ( !irc.Join ( CHANNEL ) )
{
printf ( "JOIN command failed\n" );
return -1;
}
printf ( "entering irc client processor\n" );
irc.Run ( false ); // do the processing in this thread...
return 0;
}

View File

@@ -0,0 +1,212 @@
# Microsoft Developer Studio Project File - Name="ArchBlackmann" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=ArchBlackmann - 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 "ArchBlackmann.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 "ArchBlackmann.mak" CFG="ArchBlackmann - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "ArchBlackmann - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "ArchBlackmann - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "ArchBlackmann - 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 Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "ArchBlackmann - 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 Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
!ENDIF
# Begin Target
# Name "ArchBlackmann - Win32 Release"
# Name "ArchBlackmann - Win32 Debug"
# Begin Source File
SOURCE=.\ArchBlackmann.cpp
# End Source File
# Begin Source File
SOURCE=.\auto_ptr.h
# End Source File
# Begin Source File
SOURCE=.\auto_vector.h
# End Source File
# Begin Source File
SOURCE=.\base64.cpp
# End Source File
# Begin Source File
SOURCE=.\base64.h
# End Source File
# Begin Source File
SOURCE=.\chomp.cpp
# End Source File
# Begin Source File
SOURCE=.\chomp.h
# End Source File
# Begin Source File
SOURCE=.\cram_md5.cpp
# End Source File
# Begin Source File
SOURCE=.\cram_md5.h
# End Source File
# Begin Source File
SOURCE=.\File.cpp
# End Source File
# Begin Source File
SOURCE=.\File.h
# End Source File
# Begin Source File
SOURCE=.\IRCClient.cpp
# End Source File
# Begin Source File
SOURCE=.\IRCClient.h
# End Source File
# Begin Source File
SOURCE=.\MD5.cpp
# End Source File
# Begin Source File
SOURCE=.\MD5.h
# End Source File
# Begin Source File
SOURCE=.\panic.cpp
# End Source File
# Begin Source File
SOURCE=.\panic.h
# End Source File
# Begin Source File
SOURCE=.\QueueT.h
# End Source File
# Begin Source File
SOURCE=.\Reli.h
# End Source File
# Begin Source File
SOURCE=.\ReliMT.cpp
# End Source File
# Begin Source File
SOURCE=.\ReliMT.h
# End Source File
# Begin Source File
SOURCE=.\SockUtils.cpp
# End Source File
# Begin Source File
SOURCE=.\SockUtils.h
# End Source File
# Begin Source File
SOURCE=.\SplitJoin.cpp
# End Source File
# Begin Source File
SOURCE=.\SplitJoin.h
# End Source File
# Begin Source File
SOURCE=.\ssprintf.cpp
# End Source File
# Begin Source File
SOURCE=.\ssprintf.h
# End Source File
# Begin Source File
SOURCE=.\ThreadPool.cpp
# End Source File
# Begin Source File
SOURCE=.\ThreadPool.h
# End Source File
# Begin Source File
SOURCE=.\trim.cpp
# End Source File
# Begin Source File
SOURCE=.\trim.h
# End Source File
# Begin Source File
SOURCE=.\verify.h
# End Source File
# End Target
# End Project

View File

@@ -0,0 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "ArchBlackmann"=.\ArchBlackmann.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

265
irc/ArchBlackmann/File.cpp Normal file
View File

@@ -0,0 +1,265 @@
// File.cpp
// (C) 2002-2004 Royce Mitchell III
// Dually licensed under BSD & LGPL
#ifdef _MSC_VER
#pragma warning ( disable : 4786 )
#endif//_MSC_VER
#include <stdio.h>
#include <stdarg.h>
#include "File.h"
#ifndef nelem
#define nelem(x) ( sizeof(x) / sizeof(x[0]) )
#endif//nelem
using File::filesize_t;
using File::fileoff_t;
fileoff_t File::seek ( fileoff_t offset )
{
#ifdef WIN32
if ( _f->_flag & _IOWRT ) // is there pending output?
fflush ( _f );
// reset "buffered input" variables
_f->_cnt = 0;
_f->_ptr = _f->_base;
// make sure we're going forward
if ( _f->_flag & _IORW )
_f->_flag &= ~(_IOREAD|_IOWRT);
return _lseeki64 ( _fileno(_f), offset, SEEK_SET );
#else//UNIX
return lseek64 ( fileno(_f), offset, SEEK_SET );
#endif
}
std::string File::getline ( bool strip_crlf /*= false*/ )
{
std::string s = "";
char buf[256];
for ( ;; )
{
*buf = 0;
fgets ( buf, nelem(buf)-1, _f );
if ( !*buf )
break;
s += buf;
if ( strchr ( "\r\n", buf[strlen(buf)-1] ) )
break;
}
if ( strip_crlf && s.size() )
{
char* p = strpbrk ( &s[0], "\r\n" );
if ( p )
{
*p = '\0';
s.resize ( p-&s[0] );
}
}
return s;
}
std::wstring File::wgetline ( bool strip_crlf /*= false*/ )
{
std::wstring s = L"";
wchar_t buf[256];
for ( ;; )
{
*buf = 0;
fgetws ( buf, nelem(buf)-1, _f );
if ( !*buf )
break;
s += buf;
if ( wcschr ( L"\r\n", buf[wcslen(buf)-1] ) )
break;
}
if ( strip_crlf && s.size() )
{
wchar_t* p = wcspbrk ( &s[0], L"\r\n" );
if ( p )
{
*p = L'\0';
s.resize ( (p-&s[0])/sizeof(wchar_t) );
}
}
return s;
}
// this function searches for the next end-of-line and puts all data it
// finds until then in the 'line' parameter.
//
// call continuously until the function returns false ( no more data )
bool File::next_line ( std::string& line, bool strip_crlf )
{
line = getline(strip_crlf);
// indicate that we're done *if*:
// 1) there's no more data, *and*
// 2) we're at the end of the file
return line.size()>0 || !eof();
}
bool File::next_line ( std::wstring& line, bool strip_crlf )
{
line = wgetline ( strip_crlf );
return line.size()>0 || !eof();
}
/*
example usage:
bool mycallback ( const std::string& line, int line_number, long lparam )
{
std::cout << line << std::endl;
return true; // continue enumeration
}
File f ( "file.txt", "rb" ); // open file for binary read-only ( i.e. "rb" )
f.enum_lines ( mycallback, 0, true );
*/
/*bool File::enum_lines ( bool (*callback)(const std::string& line, int line_number, long lparam), long lparam, bool strip_crlf )
{
int line_number = 0;
for ( ;; )
{
std::string s = getline(strip_crlf);
line_number++;
if ( !s.size() )
{
if ( eof() )
return true;
else
continue;
}
if ( !(*callback) ( s, line_number, lparam ) )
return false;
}
}*/
filesize_t File::length() const
{
#ifdef WIN32
return _filelengthi64 ( _fileno(_f) );
#elif defined(UNIX)
struct stat64 file_stat;
verify(fstat64(fileno(_f), &file_stat) == 0);
return file_stat.st_size;
#endif
}
void File::close()
{
if ( _f )
{
fclose(_f);
_f = 0;
}
}
void File::printf ( const char* fmt, ... )
{
va_list arg;
int done;
va_start(arg, fmt);
assert(_f);
done = vfprintf ( _f, fmt, arg );
va_end(arg);
}
/*static*/ bool File::LoadIntoString ( std::string& s, const std::string& filename )
{
File in ( filename, "rb" );
if ( !in.isopened() )
return false;
filesize_t flen = in.length();
size_t len = size_t(flen);
if ( len != flen )
return false; // file too big...
s.resize ( len + 1 );
if ( !in.read ( &s[0], len ) )
return false;
s[len] = '\0';
s.resize ( len );
return true;
}
/*static*/ bool File::LoadIntoString ( std::string& s, const std::wstring& filename )
{
File in ( filename, L"rb" );
if ( !in.isopened() )
return false;
filesize_t flen = in.length();
size_t len = size_t(flen);
if ( len != flen )
return false; // file too big...
s.resize ( len + 1 );
if ( !in.read ( &s[0], len ) )
return false;
s[len] = '\0';
s.resize ( len );
return true;
}
/*static*/ bool File::SaveFromString ( const std::string& filename, const std::string& s, bool binary )
{
File out ( filename, binary ? "wb" : "w" );
if ( !out.isopened() )
return false;
out.write ( s.c_str(), s.size() );
return true;
}
/*static*/ bool File::SaveFromString ( const std::wstring& filename, const std::string& s, bool binary )
{
File out ( filename, binary ? L"wb" : L"w" );
if ( !out.isopened() )
return false;
out.write ( s.c_str(), s.size() );
return true;
}
/*static*/ bool File::SaveFromBuffer ( const std::string& filename, const char* buf, size_t buflen, bool binary )
{
File out ( filename, binary ? "wb" : "w" );
if ( !out.isopened() )
return false;
out.write ( buf, buflen );
return true;
}
/*static*/ bool File::SaveFromBuffer ( const std::wstring& filename, const char* buf, size_t buflen, bool binary )
{
File out ( filename, binary ? L"wb" : L"w" );
if ( !out.isopened() )
return false;
out.write ( buf, buflen );
return true;
}
/*static*/ std::string File::TempFileName ( const std::string& prefix )
{
#ifdef WIN32
std::string s ( _tempnam ( ".", prefix.c_str() ) );
return s;
#else
// FIXME
return string("");
#endif
}
/*static*/ std::wstring File::TempFileName ( const std::wstring& prefix )
{
#ifdef WIN32
std::wstring s ( _wtempnam ( L".", prefix.c_str() ) );
return s;
#else
// FIXME
return std::wstring(L"");
#endif
}

173
irc/ArchBlackmann/File.h Normal file
View File

@@ -0,0 +1,173 @@
// File.h
// (C) 2002-2004 Royce Mitchell III
// Dually licensed under BSD & LGPL
#ifndef FILE_H
#define FILE_H
#ifdef WIN32
# include <stdio.h> // fgetc
# include <io.h>
#elif defined(UNIX)
# include <sys/stat.h>
# include <unistd.h>
#endif
#include <assert.h>
#include <string>
class File
{
public:
#ifdef _MSC_VER
typedef __int64 fileoff_t;
typedef unsigned __int64 filesize_t;
#else//_MSC_VER
typedef __off64_t fileoff_t;
typedef __size64_t filesize_t;
#endif//_MSC_VER
File() : _f(0)
{
}
File ( const std::string& filename, const char* mode ) : _f(0)
{
open ( filename, mode );
}
File ( const std::wstring& filename, const wchar_t* mode ) : _f(0)
{
open ( filename, mode );
}
File ( const char* filename, const char* mode ) : _f(0)
{
open ( filename, mode );
}
File ( const wchar_t* filename, const wchar_t* mode ) : _f(0)
{
open ( filename, mode );
}
~File()
{
close();
}
bool open ( const std::string& filename, const char* mode )
{
assert ( !_f );
return ( _f = fopen ( filename.c_str(), mode ) ) != 0;
}
bool open ( const std::wstring& filename, const wchar_t* mode )
{
assert ( !_f );
return ( _f = _wfopen ( filename.c_str(), mode ) ) != 0;
}
bool open ( const char* filename, const char* mode )
{
assert ( !_f );
return ( _f = fopen ( filename, mode ) ) != 0;
}
bool open ( const wchar_t* filename, const wchar_t* mode )
{
assert ( !_f );
return ( _f = _wfopen ( filename, mode ) ) != 0;
}
fileoff_t seek ( fileoff_t offset );
int get()
{
return fgetc ( _f );
}
bool put ( int c )
{
return fputc ( c, _f ) != EOF;
}
std::string getline ( bool strip_crlf = false );
std::wstring wgetline ( bool strip_crlf = false );
// this function searches for the next end-of-line and puts all data it
// finds until then in the 'line' parameter.
//
// call continuously until the function returns false ( no more data )
bool next_line ( std::string& line, bool strip_crlf );
bool next_line ( std::wstring& line, bool strip_crlf );
bool read ( void* data, unsigned len )
{
return len == fread ( data, 1, len, _f );
}
bool write ( const void* data, unsigned len )
{
return len == fwrite ( data, 1, len, _f );
}
bool write ( const std::string& data )
{
return data.length() == fwrite ( data.c_str(), 1, data.length(), _f );
}
bool write ( const std::wstring& data )
{
return data.length() == fwrite ( data.c_str(), sizeof(data[0]), data.length(), _f );
}
filesize_t length() const;
void close();
bool isopened() const
{
return _f != 0;
}
bool is_open() const
{
return _f != 0;
}
bool eof() const
{
return feof(_f) ? true : false;
}
FILE* operator * ()
{
return _f;
}
operator FILE*()
{
return _f;
}
void printf ( const char* fmt, ... );
void printf ( const wchar_t* fmt, ... );
static bool LoadIntoString ( std::string& s, const std::string& filename );
static bool LoadIntoString ( std::string& s, const std::wstring& filename );
static bool SaveFromString ( const std::string& filename, const std::string& s, bool binary );
static bool SaveFromString ( const std::wstring& filename, const std::string& s, bool binary );
static bool SaveFromBuffer ( const std::string& filename, const char* buf, size_t buflen, bool binary );
static bool SaveFromBuffer ( const std::wstring& filename, const char* buf, size_t buflen, bool binary );
static std::string TempFileName ( const std::string& prefix );
static std::wstring TempFileName ( const std::wstring& prefix );
private:
File(const File&) {}
const File& operator = ( const File& ) { return *this; }
FILE * _f;
};
#endif//FILE_H

View File

@@ -0,0 +1,373 @@
// IRCClient.cpp
// This file is (C) 2004 Royce Mitchell III
// and released under the BSD & LGPL licenses
#ifdef _MSC_VER
#pragma warning ( disable : 4786 )
#endif//_MSC_VER
#include <vector>
#include <sstream>
#include "IRCClient.h"
#include "md5.h"
#include "cram_md5.h"
#include "trim.h"
#include "chomp.h"
#include "SplitJoin.h"
#include "base64.h"
using std::string;
using std::stringstream;
using std::vector;
bool IRCClient::_debug = true;
IRCClient::IRCClient()
: _timeout(10*60*1000), _inRun(false)
{
}
bool IRCClient::Connect ( const string& server, short port )
{
string buf;
Close();
Attach ( suTcpSocket() );
if ( !suConnect ( *this, server.c_str(), port ) )
return false;
return true;
}
bool
IRCClient::User ( const string& user, const string& mode,
const string& network, const string& realname )
{
string buf;
buf = "USER " + user + " \"" + mode + "\" \"" + network + "\" :" + realname + "\n";
return Send ( buf );
}
bool
IRCClient::Nick ( const string& nick )
{
_nick = nick;
return Send ( "NICK " + _nick + "\n" );
}
bool
IRCClient::Mode ( const string& mode )
{
return Send ( "MODE " + _nick + " " + mode + "\n" );
}
bool
IRCClient::Names ( const string& channel )
{
return Send ( "NAMES " + channel + "\n" );
}
bool
IRCClient::Mode ( const string& channel, const string& mode, const string& target )
{
return Send ( "MODE " + channel + " " + mode + " " + target + "\n" );
}
bool
IRCClient::Join ( const string& channel )
{
return Send ( "JOIN " + channel + "\n" );
}
bool
IRCClient::PrivMsg ( const string& to, const string& text )
{
return Send ( "PRIVMSG " + to + " :" + text + '\n' );
}
bool
IRCClient::Action ( const string& to, const string& text )
{
return Send ( "PRIVMSG " + to + " :" + (char)1 + "ACTION " + text + (char)1 + '\n' );
}
bool
IRCClient::Part ( const string& channel, const string& text )
{
return Send ( "PART " + channel + " :" + text + "\n" );
}
bool
IRCClient::Quit ( const string& text )
{
return Send( "QUIT :" + text + "\n");
}
bool IRCClient::_Recv ( string& buf )
{
bool b = (recvUntil ( buf, '\n', _timeout ) > 0);
if ( b && _debug )
{
printf ( ">> %s", buf.c_str() );
if ( buf[buf.length()-1] != '\n' )
printf ( "\n" );
}
return b;
}
bool IRCClient::Send ( const string& buf )
{
if ( _debug )
{
printf ( "<< %s", buf.c_str() );
if ( buf[buf.length()-1] != '\n' )
printf ( "\n" );
}
return ( buf.length() == (size_t)send ( *this, buf.c_str(), buf.length(), 0 ) );
}
bool IRCClient::OnPing( const string& text )
{
return Send( "PONG " + text + "\n" );
}
int THREADAPI IRCClient::Callback ( IRCClient* irc )
{
return irc->Run ( false );
}
int IRCClient::Run ( bool launch_thread )
{
if ( (SOCKET)*this == INVALID_SOCKET )
return 0;
if ( _inRun ) return 1;
if ( launch_thread )
{
ThreadPool::Instance().Launch ( (ThreadPoolFunc*)IRCClient::Callback, this );
return 1;
}
_inRun = true;
if ( _debug ) printf ( "IRCClient::Run() - waiting for responses\n" );
string buf;
while ( _Recv(buf) )
{
if ( !strnicmp ( buf.c_str(), "NOTICE ", 7 ) )
{
//printf ( "recv'd NOTICE msg...\n" );
// TODO...
//OnAuth (
}
else if ( !strnicmp ( buf.c_str(), "PING ", 5 ) )
{
const char* p = &buf[5]; // point to first char after "PING "
while ( *p == ':' ) // then read past the colons
p++;
const char* p2 = strpbrk ( p, "\r\n" ); // find the end of line
string text ( p, p2-p ); // and set the text
OnPing( text );
}
else if ( buf[0] == ':' )
{
const char* p = &buf[1]; // skip first colon...
const char* p2 = strpbrk ( p, " !" );
if ( !p2 )
{
printf ( "!!!:OnRecv failure 0: ", buf.c_str() );
continue;
}
string src ( p, p2-p );
if ( !src.length() )
{
printf ( "!!!:OnRecv failure 0.5: %s", buf.c_str() );
continue;
}
p = p2 + 1;
if ( *p2 == '!' )
{
p2 = strchr ( p, ' ' );
if ( !p2 )
{
printf ( "!!!:OnRecv failure 1: %s", buf.c_str() );
continue;
}
//string srchost ( p, p2-p );
p = p2 + 1;
}
p2 = strchr ( p, ' ' );
if ( !p2 )
{
printf ( "!!!:OnRecv failure 2: %s", buf.c_str() );
continue;
}
string cmd ( p, p2-p );
p = p2 + 1;
p2 = strpbrk ( p, " :" );
if ( !p2 )
{
printf ( "!!!:OnRecv failure 3: %s", buf.c_str() );
continue;
}
string tgt ( p, p2-p );
p = p2 + 1;
p += strspn ( p, " " );
if ( *p == '=' )
{
p++;
p += strspn ( p, " " );
}
if ( *p == ':' )
p++;
p2 = strpbrk ( p, "\r\n" );
if ( !p2 )
{
printf ( "!!!:OnRecv failure 4: %s", buf.c_str() );
continue;
}
string text ( p, p2-p );
strlwr ( &cmd[0] );
if ( cmd == "privmsg" )
{
if ( !tgt.length() )
{
printf ( "!!!:OnRecv failure 5 (PRIVMSG w/o target): %s", buf.c_str() );
continue;
}
if ( *p == 1 )
{
p++;
p2 = strchr ( p, ' ' );
if ( !p2 ) p2 = p + strlen(p);
cmd = string ( p, p2-p );
strlwr ( &cmd[0] );
p = p2 + 1;
p2 = strchr ( p, 1 );
if ( !p2 )
{
printf ( "!!!:OnRecv failure 6 (no terminating \x01 for initial \x01 found: %s", buf.c_str() );
continue;
}
text = string ( p, p2-p );
if ( cmd == "action" )
{
if ( tgt[0] == '#' )
OnChannelAction ( tgt, src, text );
else
OnPrivAction ( src, text );
}
else
{
printf ( "!!!:OnRecv failure 7 (unrecognized \x01 command '%s': %s", cmd.c_str(), buf.c_str() );
continue;
}
}
else
{
if ( tgt[0] == '#' )
OnChannelMsg ( tgt, src, text );
else
OnPrivMsg ( src, text );
}
}
else if ( cmd == "mode" )
{
// two diff. kinds of mode notifications...
//printf ( "[MODE] src='%s' cmd='%s' tgt='%s' text='%s'", src.c_str(), cmd.c_str(), tgt.c_str(), text.c_str() );
//OnMode (
// self mode change:
// [MODE] src=Nick cmd=mode tgt=Nick text=+i
// channel mode change:
// [MODE] src=Nick cmd=mode tgt=#Channel text=+o Nick
if ( tgt[0] == '#' )
{
p = text.c_str();
p2 = strchr ( p, ' ' );
if ( p2 && *p2 )
{
string mode ( p, p2-p );
p = p2 + 1;
p += strspn ( p, " " );
OnUserModeInChannel ( src, tgt, mode, trim(p) );
}
else
OnChannelMode ( tgt, text );
}
else
OnMode ( tgt, text );
}
else if ( cmd == "join" )
{
OnJoin ( src, text );
}
else if ( cmd == "part" )
{
OnPart ( src, text );
}
else if ( cmd == "nick" )
{
OnNick ( src, text );
}
else if ( isdigit(cmd[0]) )
{
int i = atoi(cmd.c_str());
switch ( i )
{
case 1: // "Welcome!" - i.e. it's okay to issue commands now...
OnConnected();
break;
case 353: // user list for channel....
{
p = text.c_str();
p2 = strpbrk ( p, " :" );
if ( !p2 ) continue;
string channel ( p, p2-p );
p = strchr ( p2, ':' );
if ( !p ) continue;
p++;
vector<string> users;
while ( *p )
{
p2 = strchr ( p, ' ' );
if ( !p2 )
p2 = p + strlen(p);
users.push_back ( string ( p, p2-p ) );
p = p2+1;
p += strspn ( p, " " );
}
OnChannelUsers ( channel, users );
}
break;
case 366: // END of user list for channel
{
p = text.c_str();
p2 = strpbrk ( p, " :" );
if ( !p2 ) continue;
string channel ( p, p2-p );
OnEndChannelUsers ( channel );
}
break;
default:
if ( _debug ) printf ( "unknown command %i: %s", i, buf.c_str() );
break;
}
}
else
{
if ( strstr ( buf.c_str(), "ACTION" ) )
{
printf ( "ACTION: " );
for ( int i = 0; i < buf.size(); i++ )
printf ( "%c(%xh)", buf[i], (unsigned)(unsigned char)buf[i] );
}
else if ( _debug ) printf ( "unrecognized ':' response: %s", buf.c_str() );
}
}
else
{
if ( _debug ) printf ( "unrecognized irc msg: %s", buf.c_str() );
}
//OnRecv ( buf );
}
if ( _debug ) printf ( "IRCClient::Run() - exiting\n" );
_inRun = false;
return 0;
}

View File

@@ -0,0 +1,140 @@
// IRCClient.h
// This file is (C) 2004 Royce Mitchell III
// and released under the BSD & LGPL licenses
#ifndef IRCCLIENT_H
#define IRCCLIENT_H
#include <string>
#include <vector>
#include "SockUtils.h"
#include "ThreadPool.h"
class IRCClient : public suBufferedRecvSocket
{
public:
IRCClient();
static bool GetDebug() { return _debug; }
static bool SetDebug ( bool debug ) { bool old = _debug; _debug = debug; return old; }
// connect to server ( record greeting for apop if it exists )
bool Connect ( const std::string& server, short port = 6667 );
bool Running() { return _inRun; }
////////////////////////// IRC Client Protocol commands ///////////////////////
// first thing you must call... mode can be ""
// network can be same as name of server used in Connect() above
bool User ( const std::string& user, const std::string& mode,
const std::string& network, const std::string& realname );
// change nick...
bool Nick ( const std::string& nick );
// change mode for self...
bool Mode ( const std::string& mode );
// set someone's mode in channel ( like oping someone )
bool Mode ( const std::string& channel, const std::string& mode, const std::string& target );
// request a list of names of clients in a channel
bool Names ( const std::string& channel );
// join a channel...
bool Join ( const std::string& channel );
// send message to someone or some channel
bool PrivMsg ( const std::string& to, const std::string& text );
// send /me to someone or some channel
bool Action ( const std::string& to, const std::string& text );
// leave a channel
bool Part ( const std::string& channel, const std::string& text );
// log off
bool Quit ( const std::string& text );
////////////////////// callback functions ////////////////////////////
// OnConnected: you just successfully logged into irc server
virtual bool OnConnected() = 0;
virtual bool OnNick ( const std::string& oldNick, const std::string& newNick ) { return true; }
// OnJoin: someone just successfully joined a channel you are in ( also sent when you successfully join a channel )
virtual bool OnJoin ( const std::string& user, const std::string& channel ) { return true; }
// OnPart: someone just left a channel you are in
virtual bool OnPart ( const std::string& user, const std::string& channel ) { return true; }
// OnPrivMsg: you just received a private message from a user
virtual bool OnPrivMsg ( const std::string& from, const std::string& text ) { return true; }
virtual bool OnPrivAction ( const std::string& from, const std::string& text ) { return true; }
// OnChannelMsg: you just received a chat line in a channel
virtual bool OnChannelMsg ( const std::string& channel, const std::string& from,
const std::string& text ) { return true; }
// OnChannelAction: you just received a "/me" line in a channel
virtual bool OnChannelAction ( const std::string& channel, const std::string& from,
const std::string& text ) { return true; }
// OnChannelMode: notification of a change of a channel's mode
virtual bool OnChannelMode ( const std::string& channel, const std::string& mode )
{ return true; }
// OnUserModeInChannel: notification of a mode change of a user with respect to a channel.
// f.ex.: this will be called when someone is oped in a channel.
virtual bool OnUserModeInChannel ( const std::string& src, const std::string& channel,
const std::string& mode, const std::string& target ) { return true; }
// OnMode: you will receive this when you change your own mode, at least...
virtual bool OnMode ( const std::string& user, const std::string& mode ) { return true; }
// notification of what users are in a channel ( you may get multiple of these... )
virtual bool OnChannelUsers ( const std::string& channel, const std::vector<std::string>& users )
{ return true; }
// notification that you have received the entire list of users for a channel
virtual bool OnEndChannelUsers ( const std::string& channel ) { return true; }
// OnPing - default implementation replies to PING with a valid PONG. required on some systems to
// log in. Most systems require a response in order to stay connected, used to verify a client hasn't
// dropped.
virtual bool OnPing ( const std::string& text );
////////////////////// other functions ////////////////////////////
// this is for sending data to irc server. it's public in case you need to send some
// command not supported by this base class...
bool Send ( const std::string& buf );
// if launch_thread is true, this function will spawn a thread that will process
// incoming packets until the socket dies.
// otherwise ( launch_thread is false ) this function will do that processing
// in *this* thread, and not return until the socket dies.
int Run ( bool launch_thread );
////////////////////// private stuff ////////////////////////////
private:
bool _Recv ( std::string& buf );
static int THREADAPI Callback ( IRCClient* irc );
static bool _debug;
std::string _nick;
int _timeout;
std::string _apop_challenge;
volatile bool _inRun;
// disable copy semantics
IRCClient ( const IRCClient& );
IRCClient& operator = ( const IRCClient& );
};
#endif//IRCCLIENT_H

418
irc/ArchBlackmann/MD5.cpp Normal file
View File

@@ -0,0 +1,418 @@
// MD5.CPP - RSA Data Security, Inc., MD5 message-digest algorithm
/*
Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
rights reserved.
License to copy and use this software is granted provided that it
is identified as the "RSA Data Security, Inc. MD5 Message-Digest
Algorithm" in all material mentioning or referencing this software
or this function.
License is also granted to make and use derivative works provided
that such works are identified as "derived from the RSA Data
Security, Inc. MD5 Message-Digest Algorithm" in all material
mentioning or referencing the derived work.
RSA Data Security, Inc. makes no representations concerning either
the merchantability of this software or the suitability of this
software for any particular purpose. It is provided "as is"
without express or implied warranty of any kind.
These notices must be retained in any copies of any part of this
documentation and/or software.
*/
//#include <assert.h>
#include <memory.h>
#include <ctype.h>
#include <vector>
#include "MD5.h"
using std::string;
using std::vector;
// Constants for MD5Transform routine.
#define S11 7
#define S12 12
#define S13 17
#define S14 22
#define S21 5
#define S22 9
#define S23 14
#define S24 20
#define S31 4
#define S32 11
#define S33 16
#define S34 23
#define S41 6
#define S42 10
#define S43 15
#define S44 21
static void MD5Transform ( UINT4 [4], const uchar [64] );
static void Encode ( unsigned char *, UINT4 *, unsigned int );
static void Decode ( UINT4 *, const uchar *, unsigned int );
static unsigned char PADDING[64] =
{
0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
// F, G, H and I are basic MD5 functions.
#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
#define H(x, y, z) ((x) ^ (y) ^ (z))
#define I(x, y, z) ((y) ^ ((x) | (~z)))
// ROTATE_LEFT rotates x left n bits.
#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))
// FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
// Rotation is separate from addition to prevent recomputation.
#define FF(a, b, c, d, x, s, ac) { \
(a) += F ((b), (c), (d)) + (x) + (UINT4)(ac); \
(a) = ROTATE_LEFT ((a), (s)); \
(a) += (b); \
}
#define GG(a, b, c, d, x, s, ac) { \
(a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); \
(a) = ROTATE_LEFT ((a), (s)); \
(a) += (b); \
}
#define HH(a, b, c, d, x, s, ac) { \
(a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); \
(a) = ROTATE_LEFT ((a), (s)); \
(a) += (b); \
}
#define II(a, b, c, d, x, s, ac) { \
(a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); \
(a) = ROTATE_LEFT ((a), (s)); \
(a) += (b); \
}
// MD5 initialization. Begins an MD5 operation, writing a new context.
void MD5Init (
MD5_CTX *context ) // context
{
context->count[0] = context->count[1] = 0;
// Load magic initialization constants.
context->state[0] = 0x67452301;
context->state[1] = 0xefcdab89;
context->state[2] = 0x98badcfe;
context->state[3] = 0x10325476;
}
// MD5 block update operation. Continues an MD5 message-digest
// operation, processing another message block, and updating the
// context.
void MD5Update (
MD5_CTX *context, // context
const char *input_, // input block
unsigned int inputLen ) // length of input block
{
unsigned int i, index, partLen;
const uchar* input = (const uchar*)input_;
// Compute number of bytes mod 64
index = (unsigned int)((context->count[0] >> 3) & 0x3F);
// Update number of bits
if ((context->count[0] += ((UINT4)inputLen << 3))
< ((UINT4)inputLen << 3))
context->count[1]++;
context->count[1] += ((UINT4)inputLen >> 29);
partLen = 64 - index;
// Transform as many times as possible.
if (inputLen >= partLen)
{
memcpy
((POINTER)&context->buffer[index], (POINTER)input, partLen);
MD5Transform (context->state, context->buffer);
for (i = partLen; i + 63 < inputLen; i += 64)
MD5Transform (context->state, &input[i]);
index = 0;
}
else
i = 0;
// Buffer remaining input
memcpy
((POINTER)&context->buffer[index], (POINTER)&input[i],
inputLen-i);
}
// MD5 finalization. Ends an MD5 message-digest operation, writing the
// the message digest and zeroizing the context.
void MD5Final (
unsigned char digest[16], // message digest
MD5_CTX *context ) // context
{
uchar bits[8];
unsigned int index, padLen;
// Save number of bits
Encode (bits, context->count, 8);
// Pad out to 56 mod 64.
index = (unsigned int)((context->count[0] >> 3) & 0x3f);
padLen = (index < 56) ? (56 - index) : (120 - index);
MD5Update (context, (const char*)PADDING, padLen);
// Append length (before padding)
MD5Update (context, (const char*)bits, 8);
// Store state in digest
Encode (digest, context->state, 16);
// Zeroize sensitive information.
memset ((POINTER)context, 0, sizeof (*context));
}
// MD5 basic transformation. Transforms state based on block.
static void MD5Transform (
UINT4 state[4],
const uchar block[64] )
{
UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16];
Decode (x, block, 64);
// Round 1
FF (a, b, c, d, x[ 0], S11, 0xd76aa478); // 1
FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); // 2
FF (c, d, a, b, x[ 2], S13, 0x242070db); // 3
FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); // 4
FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); // 5
FF (d, a, b, c, x[ 5], S12, 0x4787c62a); // 6
FF (c, d, a, b, x[ 6], S13, 0xa8304613); // 7
FF (b, c, d, a, x[ 7], S14, 0xfd469501); // 8
FF (a, b, c, d, x[ 8], S11, 0x698098d8); // 9
FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); // 10
FF (c, d, a, b, x[10], S13, 0xffff5bb1); // 11
FF (b, c, d, a, x[11], S14, 0x895cd7be); // 12
FF (a, b, c, d, x[12], S11, 0x6b901122); // 13
FF (d, a, b, c, x[13], S12, 0xfd987193); // 14
FF (c, d, a, b, x[14], S13, 0xa679438e); // 15
FF (b, c, d, a, x[15], S14, 0x49b40821); // 16
// Round 2
GG (a, b, c, d, x[ 1], S21, 0xf61e2562); // 17
GG (d, a, b, c, x[ 6], S22, 0xc040b340); // 18
GG (c, d, a, b, x[11], S23, 0x265e5a51); // 19
GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); // 20
GG (a, b, c, d, x[ 5], S21, 0xd62f105d); // 21
GG (d, a, b, c, x[10], S22, 0x2441453); // 22
GG (c, d, a, b, x[15], S23, 0xd8a1e681); // 23
GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); // 24
GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); // 25
GG (d, a, b, c, x[14], S22, 0xc33707d6); // 26
GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); // 27
GG (b, c, d, a, x[ 8], S24, 0x455a14ed); // 28
GG (a, b, c, d, x[13], S21, 0xa9e3e905); // 29
GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); // 30
GG (c, d, a, b, x[ 7], S23, 0x676f02d9); // 31
GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); // 32
// Round 3
HH (a, b, c, d, x[ 5], S31, 0xfffa3942); // 33
HH (d, a, b, c, x[ 8], S32, 0x8771f681); // 34
HH (c, d, a, b, x[11], S33, 0x6d9d6122); // 35
HH (b, c, d, a, x[14], S34, 0xfde5380c); // 36
HH (a, b, c, d, x[ 1], S31, 0xa4beea44); // 37
HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); // 38
HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); // 39
HH (b, c, d, a, x[10], S34, 0xbebfbc70); // 40
HH (a, b, c, d, x[13], S31, 0x289b7ec6); // 41
HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); // 42
HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); // 43
HH (b, c, d, a, x[ 6], S34, 0x4881d05); // 44
HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); // 45
HH (d, a, b, c, x[12], S32, 0xe6db99e5); // 46
HH (c, d, a, b, x[15], S33, 0x1fa27cf8); // 47
HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); // 48
// Round 4
II (a, b, c, d, x[ 0], S41, 0xf4292244); // 49
II (d, a, b, c, x[ 7], S42, 0x432aff97); // 50
II (c, d, a, b, x[14], S43, 0xab9423a7); // 51
II (b, c, d, a, x[ 5], S44, 0xfc93a039); // 52
II (a, b, c, d, x[12], S41, 0x655b59c3); // 53
II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); // 54
II (c, d, a, b, x[10], S43, 0xffeff47d); // 55
II (b, c, d, a, x[ 1], S44, 0x85845dd1); // 56
II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); // 57
II (d, a, b, c, x[15], S42, 0xfe2ce6e0); // 58
II (c, d, a, b, x[ 6], S43, 0xa3014314); // 59
II (b, c, d, a, x[13], S44, 0x4e0811a1); // 60
II (a, b, c, d, x[ 4], S41, 0xf7537e82); // 61
II (d, a, b, c, x[11], S42, 0xbd3af235); // 62
II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); // 63
II (b, c, d, a, x[ 9], S44, 0xeb86d391); // 64
state[0] += a;
state[1] += b;
state[2] += c;
state[3] += d;
// Zeroize sensitive information.
memset ((POINTER)x, 0, sizeof (x));
}
// Encodes input (UINT4) into output (unsigned char). Assumes len is
// a multiple of 4.
static void Encode (
unsigned char *output,
UINT4 *input,
unsigned int len )
{
unsigned int i, j;
for (i = 0, j = 0; j < len; i++, j += 4) {
output[j] = (unsigned char)(input[i] & 0xff);
output[j+1] = (unsigned char)((input[i] >> 8) & 0xff);
output[j+2] = (unsigned char)((input[i] >> 16) & 0xff);
output[j+3] = (unsigned char)((input[i] >> 24) & 0xff);
}
}
// Decodes input (unsigned char) into output (UINT4). Assumes len is
// a multiple of 4.
static void Decode (
UINT4 *output,
const uchar *input,
unsigned int len )
{
unsigned int i, j;
for (i = 0, j = 0; j < len; i++, j += 4)
output[i] = ((UINT4)input[j]) | (((UINT4)input[j+1]) << 8) |
(((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24);
}
void digest2ascii ( char *ascii, const unsigned char *digest )
{
int i;
static char* table = "0123456789abcdef";
for ( i = 0; i < 16; i++ )
{
*ascii++ = table[(*digest)>>4];
*ascii++ = table[(*digest++)%16];
}
*ascii++ = 0;
}
void ascii2digest ( unsigned char *digest, const char *ascii )
{
int i;
#define CONV(c) (unsigned char)( (toupper(c)>='A') ? (toupper(c)+10-'A') : ((c)-'0') )
#define MAKECHAR(a,b) ((CONV(a)%16)<<4)|(CONV(b)%16)
for ( i = 0; i < 16; i++ )
{
*digest++ = MAKECHAR(ascii[0],ascii[1]);
ascii += 2;
}
}
#ifdef __cplusplus
MD5::MD5()
{
Init();
}
void MD5::Init()
{
MD5Init(&_ctx);
}
void MD5::Update ( const string& s )
{
MD5Update ( &_ctx, s.c_str(), s.size() );
}
string MD5::Final ( char* digest )
{
vector<uchar> v;
v.resize(16);
MD5Final ( &v[0], &_ctx );
if ( digest )
memmove ( digest, &v[0], 16 );
string s;
static char* tohex = "0123456789abcdef";
for ( int i = 0; i < 16; i++ )
{
uchar c = v[i];
s += tohex[ (c>>4) & 0xF ];
s += tohex[ c & 0xF ];
}
return s;
}
string MD5Hex ( const string& s )
{
MD5 md5;
md5.Update ( s );
return md5.Final();
}
string MD5Bin ( const string& s )
{
MD5 md5;
md5.Update ( s );
char digest[16];
md5.Final ( digest );
return string ( digest, 16 );
}
string HMAC_MD5 ( const string& key, const string& text, char* out_bin )
{
MD5 md5;
char k_ipad[65]; // inner padding - key XORd with ipad
char k_opad[65]; // outer padding - key XORd with opad
string tmp;
char digest[16];
int i;
// if key is longer than 64 bytes reset it to key=MD5(key)
if ( key.length() > 64 )
{
md5.Init();
md5.Update ( key );
md5.Final ( digest );
tmp = string ( digest, 16 );
}
else
tmp = key;
// start out by storing key in pads
memset ( k_ipad, 0, sizeof(k_ipad) );
memset ( k_opad, 0, sizeof(k_opad) );
memcpy ( k_ipad, tmp.c_str(), tmp.length() );
memcpy ( k_opad, tmp.c_str(), tmp.length() );
// XOR key with ipad and opad values
for ( i=0; i<64; i++ )
{
k_ipad[i] ^= 0x36;
k_opad[i] ^= 0x5c;
}
// "inner" MD5
md5.Init();
md5.Update(k_ipad);
md5.Update(text);
md5.Final ( digest );
// "outer" MD5
md5.Init();
md5.Update(k_opad);
md5.Update(string(digest,16));
return md5.Final(out_bin);
}
#endif//__cplusplus

95
irc/ArchBlackmann/MD5.h Normal file
View File

@@ -0,0 +1,95 @@
// MD5.H - header file for MD5.CPP
/*
Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
rights reserved.
License to copy and use this software is granted provided that it
is identified as the "RSA Data Security, Inc. MD5 Message-Digest
Algorithm" in all material mentioning or referencing this software
or this function.
License is also granted to make and use derivative works provided
that such works are identified as "derived from the RSA Data
Security, Inc. MD5 Message-Digest Algorithm" in all material
mentioning or referencing the derived work.
RSA Data Security, Inc. makes no representations concerning either
the merchantability of this software or the suitability of this
software for any particular purpose. It is provided "as is"
without express or implied warranty of any kind.
These notices must be retained in any copies of any part of this
documentation and/or software.
*/
#ifndef __MD5_H
#define __MD5_H
#ifdef __cplusplus
#include <string>
#endif//__cplusplus
#ifndef uchar
#define uchar unsigned char
#endif//uchar
#ifndef ushort
#define ushort unsigned short
#endif//ushort
#ifndef ulong
#define ulong unsigned long
#endif//ulong
#ifdef __cplusplus
extern "C" {
#endif//__cplusplus
typedef uchar *POINTER; // POINTER defines a generic pointer type
typedef ushort UINT2; // UINT2 defines a two byte word
typedef ulong UINT4; // UINT4 defines a four byte word
// MD5 context.
typedef struct
{
UINT4 state[4]; // state (ABCD)
UINT4 count[2]; // number of bits, modulo 2^64 (lsb first)
unsigned char buffer[64]; // input buffer
} MD5_CTX;
void MD5Init ( MD5_CTX * );
void MD5Update ( MD5_CTX *, const char *, unsigned int );
void MD5Final ( uchar [16], MD5_CTX * );
void digest2ascii ( char *ascii, const uchar *digest );
void ascii2digest ( uchar *digest, const char *ascii );
#ifdef __cplusplus
} // extern "C"
class MD5
{
public:
MD5();
void Init();
void Update ( const std::string& s );
std::string Final ( char* digest = 0 );
private:
MD5_CTX _ctx;
};
std::string MD5Hex ( const std::string& s );
std::string MD5Bin ( const std::string& s );
std::string HMAC_MD5 (
const std::string& key,
const std::string& text,
char* out_bin = NULL );
#endif//__cplusplus
#endif//__MD5_H

315
irc/ArchBlackmann/QueueT.h Normal file
View File

@@ -0,0 +1,315 @@
/*
** Author: Samuel R. Blackburn
** Internet: wfc@pobox.com
**
** You can use it any way you like as long as you don't try to sell it.
**
** Any attempt to sell WFC in source code form must have the permission
** of the original author. You can produce commercial executables with
** WFC but you can't sell WFC.
**
** Copyright, 2000, Samuel R. Blackburn
**
** NOTE: I modified the info block below so it hopefully wouldn't conflict
** with the original file. Royce Mitchell III
*/
#ifndef QUEUET_CLASS_HEADER
#define QUEUET_CLASS_HEADER
#include "ReliMT.h"
#ifdef WIN32
#include <sys/types.h> // off_t
#define HEAPCREATE(size) m_Heap = ::HeapCreate ( HEAP_NO_SERIALIZE, size, 0 )
#define HEAPALLOC(size) ::HeapAlloc ( m_Heap, HEAP_NO_SERIALIZE, size )
#define HEAPREALLOC(p,size) ::HeapReAlloc( m_Heap, HEAP_NO_SERIALIZE, p, size )
#define HEAPFREE(p) ::HeapFree ( m_Heap, HEAP_NO_SERIALIZE, p )
#define HEAPDESTROY() ::HeapDestroy ( m_Heap ); m_Heap = 0;
#else
#define HEAPCREATE(size)
#define HEAPALLOC(size) malloc(size)
#define HEAPREALLOC(p,size) realloc(p,size);
#define HEAPFREE(p) free(p)
#define HEAPDESTROY()
#endif
template <class T>
class CQueueT : public Uncopyable
{
protected:
// What we want to protect
Mutex m_AddMutex;
Mutex m_GetMutex;
T* m_Items;
off_t m_AddIndex;
off_t m_GetIndex;
size_t m_Size;
#ifdef WIN32
HANDLE m_Heap;
#endif//WIN32
inline void m_GrowBy ( size_t number_of_new_items );
public:
inline CQueueT ( size_t initial_size = 1024 );
inline ~CQueueT();
inline bool Add( const T& new_item );
inline void Empty() { m_AddIndex = 0; m_GetIndex = 0; };
inline bool Get( T& item );
inline size_t GetLength() const;
inline size_t GetMaximumLength() const { return( m_Size ); };
inline bool AddArray ( const T* new_items, int item_count );
inline int GetArray ( T* items, const int maxget, const T& tEnd );
inline bool Contains ( const T& t );
};
template <class T>
inline CQueueT<T>::CQueueT ( size_t initial_size )
{
m_AddIndex = 0;
m_GetIndex = 0;
m_Items = NULL;
if ( initial_size == 0 )
initial_size = 1;
/*
** 1999-11-05
** We create our own heap because all of the pointers used are allocated
** and freed be us. We don't have to worry about a non-serialized thread
** accessing something we allocated. Because of this, we can perform our
** memory allocations in a heap dedicated to queueing. This means when we
** have to allocate more memory, we don't have to wait for all other threads
** to pause while we allocate from the shared heap (like the C Runtime heap)
*/
HEAPCREATE( ( ( ( 2 * initial_size * sizeof(T) ) < 65536 ) ? 65536 : (2 * initial_size * sizeof(T) ) ) );
m_Items = (T*)HEAPALLOC ( initial_size * sizeof(T) );
m_Size = ( m_Items == NULL ) ? 0 : initial_size;
}
template <class T>
inline CQueueT<T>::~CQueueT()
{
m_AddIndex = 0;
m_GetIndex = 0;
m_Size = 0;
if ( m_Items != NULL )
{
HEAPFREE(m_Items);
m_Items = NULL;
}
HEAPDESTROY();
}
template <class T>
inline bool CQueueT<T>::Add ( const T& item )
{
// Block other threads from entering Add();
Mutex::Lock addlock ( m_AddMutex );
// Add the item
m_Items[ m_AddIndex ] = item;
// 1999-12-08
// Many many thanks go to Lou Franco (lfranco@spheresoft.com)
// for finding an bug here. It rare but recreatable situations,
// m_AddIndex could be in an invalid state.
// Make sure m_AddIndex is never invalid
off_t new_add_index = ( ( m_AddIndex + 1 ) >= (off_t)m_Size ) ? 0 : m_AddIndex + 1;
if ( new_add_index == m_GetIndex )
{
// The queue is full. We need to grow.
// Stop anyone from getting from the queue
Mutex::Lock getlock ( m_GetMutex );
m_AddIndex = new_add_index;
// One last double-check.
if ( m_AddIndex == m_GetIndex )
{
m_GrowBy ( m_Size );
}
}
else
{
m_AddIndex = new_add_index;
}
return true;
}
template <class T>
inline bool CQueueT<T>::Get( T& item )
{
// Prevent other threads from entering Get()
Mutex::Lock getlock ( m_GetMutex );
if ( m_GetIndex == m_AddIndex )
{
// Let's check to see if our queue has grown too big
// If it has, then shrink it
if ( m_Size > 1024 )
{
// Yup, we're too big for our britches
Mutex::TryLock addlock ( m_AddMutex );
if ( addlock )
{
// Now, no one can add to the queue
if ( m_GetIndex == m_AddIndex ) // is queue empty?
{
// See if we can just shrink it...
T* return_value = (T*)HEAPREALLOC(m_Items,1024 * sizeof(T));
if ( return_value != NULL )
{
m_Items = (T*) return_value;
}
else
{
// Looks like we'll have to do it the hard way
HEAPFREE ( m_Items );
m_Items = (T*) HEAPALLOC ( 1024 * sizeof(T) );
}
m_Size = ( m_Items == NULL ) ? 0 : 1024;
m_AddIndex = 0;
m_GetIndex = 0;
}
else
{
// m_GetIndex != m_AddIndex, this means that someone added
// to the queue between the time we checked m_Size for being
// too big and the time we entered the add critical section.
// If this happened then we are too busy to shrink
}
}
}
return false;
}
item = m_Items[ m_GetIndex ];
// Make sure m_GetIndex is never invalid
m_GetIndex = ( ( m_GetIndex + 1 ) >= (off_t)m_Size ) ? 0 : m_GetIndex + 1;
return true;
}
template <class T>
inline int CQueueT<T>::GetArray ( T* items, const int maxget, const T& tEnd )
{
// TODO - oooh baby does this need to be optimized
// Prevent other threads from entering Get()
Mutex::Lock getlock ( m_GetMutex ); //::EnterCriticalSection( &m_GetCriticalSection );
int iResult = 0;
for ( int i = 0; i < maxget; i++ )
{
if ( !Get(items[i]) )
break;
iResult++;
if ( items[i] == tEnd )
break;
}
// Let other threads call Get() now
//::LeaveCriticalSection( &m_GetCriticalSection );
return iResult;
}
template <class T>
inline size_t CQueueT<T>::GetLength() const
{
// This is a very expensive process!
// No one can call Add() or Get() while we're computing this
size_t number_of_items_in_the_queue = 0;
Mutex::Lock addlock ( m_AddMutex );
Mutex::Lock getlock ( m_GetMutex );
number_of_items_in_the_queue = ( m_AddIndex >= m_GetIndex ) ?
( m_AddIndex - m_GetIndex ) :
( ( m_AddIndex + m_Size ) - m_GetIndex );
return number_of_items_in_the_queue;
}
template <class T>
inline void CQueueT<T>::m_GrowBy ( size_t number_of_new_items )
{
// Prevent other threads from calling Get().
// We don't need to enter the AddCriticalSection because
// m_GrowBy() is only called from Add();
T* new_array = NULL;
T* pointer_to_free = NULL;
size_t new_size = m_Size + number_of_new_items;
{ // Prevent other threads from getting
Mutex::Lock getlock ( m_GetMutex );
// 2000-05-16
// Thanks go to Royce Mitchell III (royce3@aim-controls.com) for finding
// a HUGE bug here. I was using HeapReAlloc as a short cut but my logic
// was flawed. In certain circumstances, queue items were being dropped.
new_array = (T*)HEAPALLOC ( new_size * sizeof(T) );
// Now copy all of the old items from the old queue to the new one.
// Get the entries from the get-index to the end of the array
memcpy ( new_array, &m_Items[m_GetIndex], ( m_Size - m_GetIndex ) * sizeof(T) );
// Get the entries from the beginning of the array to the add-index
memcpy ( &new_array[m_Size-m_GetIndex], m_Items, m_AddIndex * sizeof(T) );
m_AddIndex = (off_t)m_Size;
m_GetIndex = 0;
m_Size = new_size;
pointer_to_free = m_Items;
m_Items = new_array;
} // Mutex::Lock
HEAPFREE ( pointer_to_free );
}
template <class T>
inline bool CQueueT<T>::Contains ( const T& t )
{
Mutex::Lock addlock ( m_AddMutex );
Mutex::Lock getlock ( m_GetMutex );
for ( int i = m_GetIndex; i != m_AddIndex; i++ )
{
if ( i == m_Size )
i = 0;
if ( m_Items[i] == t )
return true;
}
return m_Items[m_AddIndex] == t;
}
typedef CQueueT<char> CCharQueue;
#endif // QUEUE_CLASS_HEADER

143
irc/ArchBlackmann/Reli.h Normal file
View File

@@ -0,0 +1,143 @@
// Reli.h
// lots of code here is (c) Bartosz Milewski, 1996, www.relisoft.com
// The rest is (C) 2002-2004 Royce Mitchell III
// and released under the LGPL & BSD licenses
#ifndef __RELI_H
#define __RELI_H
////////////////////////////////////////////////////////////////////////////////
// Assert
#undef Assert
#ifdef NDEBUG
#define Assert(exp) ((void)0)
#else
void _wassert (char* szExpr, char* szFile, int line);
#define Assert(exp) (void)( (exp) || (_wassert(#exp, __FILE__, __LINE__), 0) )
#endif /* NDEBUG */
////////////////////////////////////////////////////////////////////////////////
// Swap
template <class T>
void Swap(T a,T b)
{
T t = a;
a = b;
b = t;
}
////////////////////////////////////////////////////////////////////////////////
// Uncopyable - base class disabling copy ctors
class Uncopyable
{
public:
Uncopyable(){} // need a default ctor
private:
Uncopyable ( const Uncopyable& );
const Uncopyable& operator = ( const Uncopyable& );
};
////////////////////////////////////////////////////////////////////////////////
// SPtr - Smart Pointer's must be passed by reference or const reference
template <class T>
class SPtr : public Uncopyable
{
public:
virtual ~SPtr () { Destroy(); }
T * operator->() { return _p; }
T const * operator->() const { return _p; }
operator T&() { Assert(_p); return *_p; }
operator const T&() const { Assert(_p); return *_p; }
void Acquire ( SPtr<T>& t ) { Destroy(); Swap(_p,t._p); }
void Destroy() { if ( _p ) { delete _p; _p = 0; } }
protected:
SPtr (): _p (0) {}
explicit SPtr (T* p): _p (p) {}
T * _p;
private:
operator T* () { return _p; }
};
#define DECLARE_SPTR(cls,init,init2) \
class S##cls : public SPtr<cls> \
{ \
public: \
S##cls ( cls* p ) : SPtr<cls>(p) {} \
explicit S##cls init : SPtr<cls> (new cls init2) {} \
};
/* Example Usage of DECLARE_SPTR:
class MyClass
{
public: // can be protected
MyClass ( int i )
{
...
}
...
}; DECLARE_SPTR(MyClass,(int i),(i))
SMyClass ptr(i);
*/
#define DECLARE_SPTRV(cls) typedef SPtr<cls> S##cls;
/* Example Usage of DECLARE_SPTRV:
class MyAbstractClass
{
public: // can be protected
MyAbstractClass ( int i )
{
...
}
void MyPureVirtFunc() = 0;
...
}; DECLARE_SPTRV(MyAbstractClass)
SMyAbstractClass ptr ( new MySubClass(i) );
*/
#define DECLARE_PTR(cls,init,init2) \
class Ptr : public SPtr<cls> \
{ \
Ptr(cls* p) : SPtr<cls> ( p ) \
{ \
} \
Ptr init : SPtr<cls> ( new cls init2 ) {} \
};
/* Example Usage of DECLARE_PTR:
class MyClass
{
DECLARE_PTR(MyClass,(int i),(i))
public: // can be protected
MyClass ( int i )
{
...
}
void MyPureVirtFunc() = 0;
...
};
MyClass::Ptr ptr ( i );
*/
#define DECLARE_PTRV(cls) \
class Ptr : public SPtr<cls> \
{ \
Ptr(cls* p) : SPtr<cls> ( p ) \
{ \
} \
};
/* Example Usage of DECLARE_PTRV:
class MyAbstractClass
{
DECLARE_PTRV(MyAbstractClass)
public: // can be protected
MyAbstractClass ( int i )
{
...
}
void MyPureVirtFunc() = 0;
...
};
MyAbstractClass::Ptr ptr ( new MySubClass(i) );
*/
#endif//__RELI_H

View File

@@ -0,0 +1,331 @@
// ReliMT.cpp
// lots of code here is (c) Bartosz Milewski, 1996, www.relisoft.com
// The rest is (C) 2002-2004 Royce Mitchell III
// and released under the LGPL & BSD licenses
#include <stdlib.h>
#include <stdio.h>
#ifdef WIN32
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
# define snprintf _snprintf
#elif defined(UNIX)
# include <errno.h>
# include <sys/sem.h>
#else
# error unrecognized target
#endif//WIN32|UNIX
#include "verify.h"
#include "ReliMT.h"
////////////////////////////////////////////////////////////////////////////////
// Assert
void _wassert ( char* szExpr, char* szFile, int line )
{
fprintf ( stderr, "Assertion Failure: \"%s\" in file %s, line %d", szExpr, szFile, line );
exit (-1);
}
////////////////////////////////////////////////////////////////////////////////
// Thread
Thread::Thread ( long (THREADAPI * pFun) (void* arg), void* pArg )
{
#ifdef WIN32
verify ( _handle = CreateThread (
0, // Security attributes
0, // Stack size
(DWORD (WINAPI*)(void*))pFun,
pArg,
0, // don't create suspended.
&_tid ));
#elif defined(UNIX)
// set up the thread attribute: right now, we do nothing with it.
pthread_attr_t attr;
pthread_attr_init(&attr);
// this will make the threads created by this process really concurrent
verify ( !pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM) );
// create the new OS thread object
verify ( !pthread_create ( &_threadId, &attr, (void* (*) (void*))pFun, pArg ) );
verify ( !pthread_attr_destroy(&attr) );
#else
# error unrecognized target
#endif//WIN32|UNIX
}
Thread::~Thread()
{
#ifdef WIN32
verify ( CloseHandle ( _handle ) );
#elif defined(UNIX)
verify ( !pthread_cancel ( _threadId ) );
#else
# error unrecognized target
#endif//WIN32|UNIX
}
/*void Thread::Resume()
{
#ifdef WIN32
ResumeThread (_handle);
#elif defined(UNIX)
# error how to resume thread in unix?
#else
# error unrecognized target
#endif//WIN32|UNIX
}*/
void Thread::WaitForDeath()
{
#ifdef WIN32
DWORD dw = WaitForSingleObject ( _handle, 2000 );
ASSERT ( dw != WAIT_FAILED );
#elif defined(UNIX)
verify ( !pthread_join ( _threadId, (void**)NULL ) );
#else
# error unrecognized target
#endif//WIN32|UNIX
}
////////////////////////////////////////////////////////////////////////////////
// ActiveObject
// The constructor of the derived class
// should call
// _thread.Resume();
// at the end of construction
ActiveObject::ActiveObject() : _isDying (0), _thread (0)
{
}
ActiveObject::~ActiveObject()
{
ASSERT ( !_thread ); // call Kill() from subclass's dtor
// Kill() - // You can't call a virtual function from a dtor, EVEN INDIRECTLY
// so, you must call Kill() in the subclass's dtor
}
// FlushThread must reset all the events on which the thread might be waiting.
void ActiveObject::Kill()
{
if ( _thread )
{
_isDying++;
FlushThread();
// Let's make sure it's gone
_thread->WaitForDeath();
delete _thread;
_thread = 0;
}
}
void ActiveObject::Start()
{
ASSERT ( !_thread );
_thread = new Thread ( ThreadEntry, this );
}
long THREADAPI ActiveObject::ThreadEntry ( void* pArg )
{
ActiveObject * pActive = (ActiveObject*)pArg;
pActive->InitThread();
pActive->Run();
pActive->Kill();
return 0;
}
///////////////////////////////////////////////////////////////////////////////
// Mutex
Mutex::Mutex()
{
#ifdef WIN32
verify ( _h = CreateMutex ( NULL, FALSE, NULL ) );
#elif defined(UNIX)
pthread_mutexattr_t attrib;
verify ( !pthread_mutexattr_init( &attrib ) );
// allow recursive locks
verify ( !pthread_mutexattr_settype( &attrib, PTHREAD_MUTEX_RECURSIVE ) );
verify ( !pthread_mutex_init ( &_mutex, &attrib ) );
#else
# error unrecognized target
#endif
}
Mutex::~Mutex()
{
#ifdef WIN32
verify ( CloseHandle ( _h ) );
#elif defined(UNIX)
verify ( !pthread_mutex_destroy(&_mutex) );
#else
# error unrecognized target
#endif
}
void Mutex::Acquire()
{
#ifdef WIN32
DWORD dw = WaitForSingleObject ( _h, INFINITE );
ASSERT ( dw == WAIT_OBJECT_0 || dw == WAIT_ABANDONED );
#elif defined(UNIX)
verify ( !pthread_mutex_lock(&_mutex) );
#else
# error unrecognized target
#endif
}
bool Mutex::TryAcquire()
{
#ifdef WIN32
DWORD dw = WaitForSingleObject ( _h, 1 );
ASSERT ( dw == WAIT_OBJECT_0 || dw == WAIT_TIMEOUT || dw == WAIT_ABANDONED );
return (dw != WAIT_TIMEOUT);
#elif defined(UNIX)
int err = pthread_mutex_trylock(&_mutex);
ASSERT ( err == EBUSY || err == 0 );
return (err == 0);
#else
# error unrecognized target
#endif
}
void Mutex::Release()
{
#ifdef WIN32
verify ( ReleaseMutex ( _h ) );
#elif defined(UNIX)
verify ( !pthread_mutex_unlock(&_mutex) );
// we could allow EPERM return value too, but we are forcing user into RIIA
#else
# error unrecognized target
#endif
}
Mutex::Lock::Lock ( Mutex& m ) : _m(m)
{
_m.Acquire();
}
Mutex::Lock::~Lock()
{
_m.Release();
}
Mutex::TryLock::TryLock ( Mutex& m ) : _m(m)
{
_bLocked = _m.TryAcquire();
}
Mutex::TryLock::~TryLock()
{
if ( _bLocked )
_m.Release();
}
///////////////////////////////////////////////////////////////////////////////
// Event
Event::Event()
{
#ifdef WIN32
// start in non-signaled state (red light)
// auto reset after every Wait
verify ( _handle = CreateEvent ( 0, FALSE, FALSE, 0 ) );
#elif defined(UNIX)
//verify ( !pthread_cond_init ( &_cond, NULL /* default attributes */) );
sem_init();
//verify(sem_init());
#else
# error unrecognized target
#endif
}
Event::~Event()
{
#ifdef WIN32
verify ( CloseHandle ( _handle ) );
#elif defined(UNIX)
//verify ( !pthread_cond_destroy ( &_cond ) );
sem_destroy();
#else
# error unrecognized target
#endif
}
void Event::Release() // put into signaled state
{
#ifdef WIN32
verify ( SetEvent ( _handle ) );
#elif defined(UNIX)
//verify ( !pthread_cond_signal ( &_cond ) );
verify(!sem_V());
#else
# error unrecognized target
#endif
}
void Event::Wait()
{
#ifdef WIN32
// Wait until event is in signaled (green) state
DWORD dw = WaitForSingleObject ( _handle, INFINITE );
ASSERT ( dw == WAIT_OBJECT_0 || dw == WAIT_ABANDONED );
#elif defined(UNIX)
// According to docs: The pthread_cond_wait() and pthread_cond_timedwait()
// functions are used to block on a condition variable. They are called
// with mutex locked by the calling thread or undefined behaviour will
// result.
//Mutex::Lock lock ( _mutex );
//verify ( !pthread_cond_wait ( &_cond, _mutex ) );
verify(!sem_P());
#else
# error unrecognized target
#endif
}
#ifdef UNIX
void Event::sem_init()
{
sem_id = semget(IPC_PRIVATE, 1, 0666 | IPC_CREAT);
ASSERT(sem_id != -1);
}
int Event::sem_P()
{
struct sembuf sb;
sb.sem_num = 0;
sb.sem_op = -1;
sb.sem_flg = 0;
return semop(sem_id, &sb, 1);
}
int Event::sem_V()
{
struct sembuf sb;
sb.sem_num = 0;
sb.sem_op = 1;
sb.sem_flg = 0;
return semop(sem_id, &sb, 1);
}
void Event::sem_destroy()
{
#ifdef MACOSX
semun mactmp;
mactmp.val = 0;
semctl(sem_id, 0, IPC_RMID, mactmp);
#else
semctl(sem_id, 0, IPC_RMID, 0);
#endif
}
#endif

229
irc/ArchBlackmann/ReliMT.h Normal file
View File

@@ -0,0 +1,229 @@
// ReliMT.h
// lots of code here is (c) Bartosz Milewski, 1996, www.relisoft.com
// The rest is (C) 2003-2004 Royce Mitchell III
// and released under the LGPL & BSD licenses
#ifndef __RELIMT_H
#define __RELIMT_H
#include "Reli.h"
#ifdef WIN32
# ifndef _WINDOWS_
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
# endif
# define THREADAPI WINAPI
#elif defined(UNIX)
# include <pthread.h>
# include <stdlib.h>
# include "string.h"
# include <sys/types.h> //Semaphore
# include <sys/ipc.h> //Semaphore
# include <sys/sem.h> //Semaphore
# define THREADAPI
#else
# error unrecognized target
#endif
////////////////////////////////////////////////////////////////////////////////
// Thread
class Thread : public Uncopyable
{
public:
Thread ( long (THREADAPI * pFun) (void* arg), void* pArg );
~Thread();
//void Resume();
void WaitForDeath();
// platform-specific stuff:
private:
#ifdef WIN32
HANDLE _handle;
DWORD _tid; // thread id
#elif defined(UNIX)
pthread_t _threadId; // id of the thread
#else
# error unrecognized target
#endif
//DECLARE_PTR(Thread,(long (THREADAPI * pFun) (void* arg), void* pArg),(pFun,pArg));
}; //DECLARE_SPTR(Thread,(long (THREADAPI * pFun) (void* arg), void* pArg),(pFun,pArg));
////////////////////////////////////////////////////////////////////////////////
// ActiveObject
class ActiveObject : public Uncopyable
{
public:
ActiveObject();
virtual ~ActiveObject();
void Kill();
void Start();
protected:
virtual void InitThread() = 0;
virtual void Run() = 0;
virtual void FlushThread() = 0;
int _isDying;
static long THREADAPI ThreadEntry ( void *pArg );
Thread *_thread;
//DECLARE_PTRV(ActiveObject);
}; //DECLARE_SPTRV(ActiveObject);
// Last thing in the constructor of a class derived from
// ActiveObject you must call
// Start();
// Inside the loop the Run method you must keep checking _isDying
// if (_isDying)
// return;
// FlushThread must reset all the events on which the thread might be waiting.
// Example:
#if 0
// MyAsyncOutputter - class that outputs strings to a file asynchronously
class MyAsyncOutputter : public ActiveObject
{
public:
MyAsyncOutputter ( const string& filename ) : _filename(filename), _currentBuf(0)
{
Start(); // start thread
}
void InitThread()
{
_f.open ( _filename, "wb" );
}
void Output ( const string& s )
{
{
// acquire lock long enough to add the string to the active buffer
Mutex::Lock lock ( _mutex );
_buf[_currentBuf].push_back ( s );
}
_event.Release(); // don't need the lock fire the event
}
void Run()
{
while ( !_isDying )
{
// wait for signal from Output() or FlushThread()
_event.Wait();
{
// acquire lock long enough to switch active buffers
Mutex::Lock lock ( _mutex );
_currentBuf = 1-_currentBuf;
ASSERT ( !_buf[_currentBuf].size() );
}
// get a reference to the old buffer
vector<string>& buf = _buf[1-_currentBuf];
// write each string out to file and then empty the buffer
for ( int i = 0; i < buf.size(); i++ )
_f.write ( buf[i].c_str(), buf[i].size() );
buf.resize(0);
}
}
void FlushThread()
{
// _isDying is already set: signal thread so it can see that too
_event.Release();
}
private:
string _filename;
File _f;
int _currentBuf;
vector<string> _buf[2];
Event _event;
Mutex _mutex;
};
#endif
////////////////////////////////////////////////////////////////////////////////
// Mutex
class Mutex : public Uncopyable
{
public:
Mutex();
~Mutex();
private:
void Acquire();
bool TryAcquire();
void Release();
public:
// sub-class used to lock the Mutex
class Lock : public Uncopyable
{
public:
Lock ( Mutex& m );
~Lock();
private:
// private data
Mutex& _m;
};
friend class Mutex::Lock;
// sub-class used to attempt to lock the mutex. Use operator bool()
// to test if the lock was successful
class TryLock : public Uncopyable
{
public:
TryLock ( Mutex& m );
~TryLock();
operator bool () { return _bLocked; }
private:
// private data
bool _bLocked;
Mutex& _m;
};
friend class Mutex::TryLock;
private:
// platform-specific stuff:
#ifdef WIN32
HANDLE _h;
#elif defined(UNIX)
pthread_mutex_t _mutex;
public: operator pthread_mutex_t* () { return &_mutex; }
#else
# error unrecognized target
#endif
};
////////////////////////////////////////////////////////////////////////////////
// Event
class Event : public Uncopyable
{
public:
Event();
~Event();
void Release(); // put into signaled state
void Wait();
private:
#ifdef WIN32
HANDLE _handle;
#elif defined(UNIX)
//Sem util functions
void sem_init();
int sem_P();
int sem_V();
void sem_destroy();
int sem_id;
//pthread_cond_t _cond;
//Mutex _mutex;
#else
# error unrecognized target
#endif
//DECLARE_PTR(Event,(),());
}; //DECLARE_SPTR(Event,(),());
#endif//__RELIWIN32_H

View File

@@ -0,0 +1,504 @@
// SockUtils.cpp - Some basic socket utility functions.
// (C) 2002-2004 Royce Mitchell III
// This file is under the BSD & LGPL licenses
#include <stdio.h>
#include "SockUtils.h"
#ifdef WIN32
# ifndef SD_SEND // defined in winsock2.h, but not winsock.h
# define SD_SEND 1
# endif
# define snprintf _snprintf
# ifdef _MSC_VER
# pragma comment ( lib, "ws2_32.lib" )
# endif//_MSC_VER
#elif defined(UNIX)
# include <errno.h>
# include "string.h" // memset
# include <netdb.h> // hostent
# include <arpa/inet.h> //inet_addr
# include <sys/time.h>
# define SD_SEND SHUT_WR //bah thou shalt name thy defines the same
#else
# error unrecognized target
#endif
//// Constants /////////////////////////////////////////////////////////
const int kBufferSize = 1024;
// creates broadcast address
SockAddrIn::SockAddrIn()
{
memset ( this, 0, sizeof(sockaddr_in) );
sin_family = AF_INET;
}
SockAddrIn::SockAddrIn ( const char* szAddr, u_short iPort )
{
memset ( this, 0, sizeof(sockaddr_in) );
sin_family = AF_INET;
sin_addr.s_addr = suLookupAddress(szAddr);
sin_port = htons(iPort);
}
SockAddrIn::SockAddrIn ( in_addr_t iAddr, u_short iPort )
{
memset ( this, 0, sizeof(sockaddr_in) );
sin_family = AF_INET;
sin_addr.s_addr = iAddr;
sin_port = htons(iPort);
}
bool suStartup()
{
#ifdef WIN32
WSADATA wsaData;
if ( WSAStartup ( MAKEWORD(2,0), &wsaData ) )
return false;
if ( wsaData.wVersion != MAKEWORD(2,0) )
{
WSACleanup();
return false;
}
return true;
#elif defined(UNIX)
// nothing special required here
return true;
#else
# error unrecognized target
#endif
}
//// suTcpSocket ////////////////////////////////////////////////
// Creates a TCP socket.
SOCKET suTcpSocket()
{
SOCKET so = socket ( AF_INET, SOCK_STREAM, 0 );
#if defined(_DEBUG) && defined(WIN32)
if ( so == INVALID_SOCKET && WSANOTINITIALISED == WSAGetLastError() )
MessageBox ( NULL, "You forgot to call suStartup()!", "SockUtils", MB_OK|MB_ICONEXCLAMATION );
#endif
return so;
}
//// suUdpSocket ////////////////////////////////////////////////
// Creates a UDP socket. Compensates for new "functionality" introduced
// in Win2K with regards to select() calls
// MS Transport Provider IOCTL to control
// reporting PORT_UNREACHABLE messages
// on UDP sockets via recv/WSARecv/etc.
// Path TRUE in input buffer to enable (default if supported),
// FALSE to disable.
#ifndef SIO_UDP_CONNRESET
#define SIO_UDP_CONNRESET _WSAIOW(IOC_VENDOR,12)
#endif//SIO_UDP_CONNRESET
SOCKET suUdpSocket()
{
SOCKET so = socket ( AF_INET, SOCK_DGRAM, 0 );
#if defined(_DEBUG) && defined(WIN32)
if ( so == INVALID_SOCKET && WSANOTINITIALISED == WSAGetLastError() )
MessageBox ( NULL, "You forgot to call suStartup()!", "SockUtils", MB_OK|MB_ICONEXCLAMATION );
#endif
#ifdef WIN32
// for Windows 2000, disable new behavior...
// see: http://www-pc.uni-regensburg.de/systemsw/W2KPRO/UPDATE/POSTSP1/Q263823.htm
// this code is innocuous on other win32 platforms
DWORD dwBytesReturned = 0;
BOOL bNewBehavior = FALSE;
// disable new Win2K behavior using
// IOCTL: SIO_UDP_CONNRESET
// we don't care about return value :)
WSAIoctl(so, SIO_UDP_CONNRESET,
&bNewBehavior, sizeof(bNewBehavior),
NULL, 0, &dwBytesReturned,
NULL, NULL);
#endif
return so;
}
//// suShutdownConnection ////////////////////////////////////////////////
// Gracefully shuts the connection sd down. Returns true if it was able
// to shut it down nicely, false if we had to "slam" it shut.
// (either way, the socket does get closed)
bool suShutdownConnection(SOCKET sd)
{
if ( sd == INVALID_SOCKET )
return true;
// Disallow any further data sends. This will tell the other side
// that we want to go away now. If we skip this step, we don't
// shut the connection down nicely.
if (shutdown(sd, SD_SEND) == SOCKET_ERROR)
{
closesocket(sd);
return false;
}
// Receive any extra data still sitting on the socket. After all
// data is received, this call will block until the remote host
// acknowledges the TCP control packet sent by the shutdown above.
// Then we'll get a 0 back from recv, signalling that the remote
// host has closed its side of the connection.
char acReadBuffer[kBufferSize];
for ( ;; )
{
int nNewBytes = recv(sd, acReadBuffer, kBufferSize, 0);
if (nNewBytes == SOCKET_ERROR)
{
closesocket(sd);
return false;
}
else if (nNewBytes != 0)
{
// FYI, received (nNewBytes) unexpected bytes during shutdown.
}
else
{
// Okay, we're done!
break;
}
}
// Close the socket.
if (closesocket(sd) == SOCKET_ERROR)
{
return false;
}
return true;
}
//// suLookupAddress ////////////////////////////////////////////////
// Basically converts a name address to an ip address
in_addr_t suLookupAddress ( const char* pcHost )
{
in_addr_t nRemoteAddr = inet_addr(pcHost);
if ( nRemoteAddr == INADDR_NONE )
{
// pcHost isn't a dotted IP, so resolve it through DNS
hostent* pHE = gethostbyname(pcHost);
if ( pHE == 0 )
{
#if defined(_DEBUG) && defined(WIN32)
if ( WSANOTINITIALISED == WSAGetLastError() )
MessageBox ( NULL, "You forgot to call suStartup()!", "SockUtils", MB_OK|MB_ICONEXCLAMATION );
#endif
return INADDR_NONE;
}
nRemoteAddr = *((in_addr_t*)pHE->h_addr_list[0]);
}
return nRemoteAddr;
}
bool suConnect ( SOCKET so, in_addr_t iAddress, u_short iPort )
{
SockAddrIn sinRemote ( iAddress, iPort );
if ( SOCKET_ERROR == connect(so,sinRemote,sizeof(sinRemote)) )
{
#if defined(_DEBUG) && defined(WIN32)
if ( WSANOTINITIALISED == WSAGetLastError() )
MessageBox ( NULL, "You forgot to call suStartup()!", "SockUtils", MB_OK|MB_ICONEXCLAMATION );
#endif
return false;
}
return true;
}
bool suConnect ( SOCKET so, const char* szAddress, u_short iPort )
{
return suConnect ( so, suLookupAddress(szAddress), iPort );
}
//// suEstablishConnection ////////////////////////////////////////////////
// creates a socket of the specified type, connects to the ip address/port
// requested, and returns the SOCKET created
SOCKET suEstablishConnection ( in_addr_t iAddress, u_short iPort, int type )
{
// Create a socket
if ( type != SOCK_STREAM && type != SOCK_DGRAM )
return INVALID_SOCKET;
SOCKET so = socket(AF_INET, type, 0);
if ( so == INVALID_SOCKET )
return so;
if ( !suConnect(so, iAddress, iPort) )
{
closesocket(so);
return INVALID_SOCKET;
}
return so;
}
//// suEstablishConnection ////////////////////////////////////////////////
// creates a socket of the specified type, connects to the address/port
// requested, and returns the SOCKET created
SOCKET suEstablishConnection ( const char* szAddress, u_short iPort, int type )
{
return suEstablishConnection ( suLookupAddress ( szAddress ), iPort, type );
}
//// suBroadcast ////////////////////////////////////////////////
// takes a previously created broadcast-enabled UDP socket, and broadcasts
// a message on the local network
bool suBroadcast ( SOCKET so, u_short port, const char* buf, int len /* = -1 */ )
{
if ( len == -1 )
len = (int)strlen(buf);
#if 1
SockAddrIn to ( INADDR_BROADCAST, port );
#else // some strange MS OS's don't broadcast to localhost...
SockAddrIn to ( "127.0.0.1", port );
if ( SOCKET_ERROR == sendto ( so, buf, len, 0, to, sizeof(to) ) )
return false;
to.sin_addr.s_addr = INADDR_BROADCAST;
#endif
if ( SOCKET_ERROR == sendto ( so, buf, len, 0, to, sizeof(to) ) )
return false;
return true;
}
//// suRecv ////////////////////////////////////////////////
// retrieves data sent to our TCP socket. If no data, waits for
// a period of timeout ms.
// returns bytes received
// -1 == SOCKET_ERROR
// -2 == timed out waiting for data
int suRecv ( SOCKET so, char* buf, int buflen, int timeout )
{
struct timeval to;
fd_set rread;
int res;
FD_ZERO(&rread); // clear the fd_set
FD_SET(so,&rread); // indicate which socket(s) we want to check
memset((char *)&to,0,sizeof(to)); // clear the timeval struct
to.tv_sec = timeout; // timeout select after (timeout) seconds
// select returns > 0 if there is an event on the socket
res = select((int)so+1, &rread, (fd_set *)0, (fd_set *)0, &to );
if (res < 0)
return -1; // socket error
// there was an event on the socket
if ( (res>0) && (FD_ISSET(so,&rread)) )
return recv ( so, buf, buflen, 0 );
return -2;
}
//// suRecvFrom ////////////////////////////////////////////////
// retrieves data sent to our UDP socket. If no data, waits for
// a period of timeout ms.
// returns bytes received
// returns bytes received
// -1 == SOCKET_ERROR
// -2 == timed out waiting for data
int suRecvFrom ( SOCKET so, char* buf, int buflen, int timeout, sockaddr_in* from, socklen_t* fromlen )
{
struct timeval to;
fd_set rread;
int res;
FD_ZERO(&rread); // clear the fd_set
FD_SET(so,&rread); // indicate which socket(s) we want to check
memset((char *)&to,0,sizeof(to)); // clear the timeval struct
to.tv_sec = timeout; // timeout select after (timeout) seconds
// select returns > 0 if there is an event on the socket
res = select((int)so+1, &rread, (fd_set *)0, (fd_set *)0, &to );
if (res < 0)
return -1; // socket error
// there was an event on the socket
if ( (res>0) && (FD_ISSET(so,&rread)) )
return recvfrom ( so, buf, buflen, 0, (sockaddr*)from, fromlen );
return -2; // timeout
}
//// suBind ////////////////////////////////////////////////
// binds a UDP socket to an interface & port to receive
// data on that port
bool suBind ( SOCKET so, in_addr_t iInterfaceAddress, u_short iListenPort, bool bReuseAddr /* = false */ )
{
SockAddrIn sinInterface ( iInterfaceAddress, iListenPort );
if ( bReuseAddr )
{
int optval = -1; // true
if ( SOCKET_ERROR == setsockopt ( so, SOL_SOCKET, SO_REUSEADDR, (const char*)&optval, sizeof(optval) ) )
{
#if defined(_DEBUG) && defined(WIN32)
if ( WSANOTINITIALISED == WSAGetLastError() )
MessageBox ( NULL, "You forgot to call suStartup()!", "SockUtils", MB_OK|MB_ICONEXCLAMATION );
#endif
return false;
}
}
if ( SOCKET_ERROR == bind(so, sinInterface, sizeof(sinInterface)) )
{
int err = SUERRNO;
if ( err != EADDRINUSE )
return false;
#if defined(_DEBUG) && defined(WIN32)
if ( WSANOTINITIALISED == WSAGetLastError() )
MessageBox ( NULL, "You forgot to call suStartup()!", "SockUtils", MB_OK|MB_ICONEXCLAMATION );
#endif
}
return true;
}
//// suBind ////////////////////////////////////////////////
// binds a UDP socket to an interface & port to receive
// data on that port
bool suBind ( SOCKET so, const char* szInterfaceAddress, u_short iListenPort, bool bReuseAddr /* = false */ )
{
in_addr_t iInterfaceAddr = inet_addr(szInterfaceAddress);
if ( iInterfaceAddr == INADDR_NONE )
return false;
return suBind ( so, iInterfaceAddr, iListenPort, bReuseAddr );
}
//// suEnableBroadcast ////////////////////////////////////////////////
// in order to send broadcast messages on a UDP socket, this function
// must be called first
bool suEnableBroadcast ( SOCKET so, bool bEnable /* = true */ )
{
int optval = bEnable ? -1 : 0;
if ( SOCKET_ERROR == setsockopt ( so, SOL_SOCKET, SO_BROADCAST, (const char*)&optval, sizeof(optval) ) )
return false;
return true;
}
//// suErrDesc ////////////////////////////////////////////////
// returns text description of error code
const char* suErrDesc ( int err )
{
static char errbuf[256];
#ifdef WIN32
switch ( err )
{
#define X(E) case E: return #E;
X(WSAEINTR) X(WSAEBADF)
X(WSAEACCES) X(WSAEFAULT)
X(WSAEINVAL) X(WSAEMFILE)
X(WSAEWOULDBLOCK) X(WSAEINPROGRESS)
X(WSAEALREADY) X(WSAENOTSOCK)
X(WSAEDESTADDRREQ) X(WSAEMSGSIZE)
X(WSAEPROTOTYPE) X(WSAENOPROTOOPT)
X(WSAEPROTONOSUPPORT) X(WSAESOCKTNOSUPPORT)
X(WSAEOPNOTSUPP) X(WSAEPFNOSUPPORT)
X(WSAEAFNOSUPPORT) X(WSAEADDRINUSE)
X(WSAEADDRNOTAVAIL) X(WSAENETDOWN)
X(WSAENETUNREACH) X(WSAENETRESET)
X(WSAECONNABORTED) X(WSAECONNRESET)
X(WSAENOBUFS) X(WSAEISCONN)
X(WSAENOTCONN) X(WSAESHUTDOWN)
X(WSAETOOMANYREFS) X(WSAETIMEDOUT)
X(WSAECONNREFUSED) X(WSAELOOP)
X(WSAENAMETOOLONG) X(WSAEHOSTDOWN)
X(WSAEHOSTUNREACH) X(WSAENOTEMPTY)
X(WSAEPROCLIM) X(WSAEUSERS)
X(WSAEDQUOT) X(WSAESTALE)
X(WSAEREMOTE) X(WSASYSNOTREADY)
X(WSAVERNOTSUPPORTED) X(WSANOTINITIALISED)
X(WSAEDISCON) X(WSAENOMORE)
X(WSAECANCELLED) X(WSAEINVALIDPROCTABLE)
X(WSAEINVALIDPROVIDER) X(WSAEPROVIDERFAILEDINIT)
X(WSASYSCALLFAILURE) X(WSASERVICE_NOT_FOUND)
X(WSATYPE_NOT_FOUND) X(WSA_E_NO_MORE)
X(WSA_E_CANCELLED) X(WSAEREFUSED)
#undef X
}
snprintf ( errbuf, sizeof(errbuf), "Unknown socket error (%lu)", err );
errbuf[sizeof(errbuf)-1] = '\0';
return errbuf;
#elif defined(UNIX)
perror(errbuf);
return errbuf;
#else
# error unrecognized target
#endif
}
#if defined(UNICODE) || defined(_UNICODE)
in_addr_t suLookupAddress ( const wchar_t* pcHost )
{
int len = wcslen(pcHost);
char* p = new char[len+1];
wcstombs ( p, pcHost, len );
p[len] = 0;
in_addr_t rc = suLookupAddress ( p );
delete[] p;
return rc;
}
bool suBroadcast ( SOCKET so, u_short port, const wchar_t* buf, int len /* = -1 */ )
{
char* p = new char[len+1];
wcstombs ( p, buf, len );
p[len] = 0;
bool rc = suBroadcast ( so, port, p, len );
delete[] p;
return rc;
}
int suRecv ( SOCKET so, wchar_t* buf, int buflen, int timeout )
{
char* p = new char[buflen+1];
int rc = suRecv ( so, p, buflen, timeout );
p[buflen] = 0;
mbstowcs ( buf, p, buflen );
delete[] p;
return rc;
}
int suRecvFrom ( SOCKET so, wchar_t* buf, int buflen, int timeout, sockaddr_in* from, int* fromlen )
{
char* p = new char[buflen+1];
int rc = suRecvFrom ( so, p, buflen, timeout, from, fromlen );
p[buflen] = 0;
mbs2wcs ( buf, p, buflen );
delete[] p;
return rc;
}
bool suBind ( SOCKET so, const wchar_t* szInterfaceAddress, u_short iListenPort, bool bReuseAddr /* = false */ )
{
int len = wcslen(szInterfaceAddress);
char* p = new char[len+1];
wcstombs ( p, szInterfaceAddress, len );
p[len] = 0;
bool rc = suBind ( so, p, iListenPort, bReuseAddr );
delete[] p;
return rc;
}
#endif//UNICODE
suBufferedRecvSocket::suBufferedRecvSocket ( SOCKET so )
: suSocket ( so ), _off(0), _len(0)
{
}
int suBufferedRecvSocket::recvUntil ( std::string& buf, char until, int timeout )
{
if ( !_len )
_off = 0;
else if ( _off > (sizeof(_buf)>>1) )
{
memmove ( _buf, &_buf[_off], _len );
_off = 0;
}
char* poff = &_buf[_off];
for ( ;; )
{
char* p = (char*)memchr ( poff, until, _len );
if ( p /*&& p < &poff[_len]*/ )
{
int ret_len = p-poff+1;
buf.resize ( ret_len );
memmove ( &buf[0], poff, ret_len );
_off += ret_len;
_len -= ret_len;
return ret_len;
}
int rc = suRecv ( *this, &poff[_len], sizeof(_buf)-_len-_off, timeout );
if ( rc < 0 )
{
if ( _len )
{
rc = _len;
buf.resize ( rc );
memmove ( &buf[0], &_buf[_off], rc );
_len = 0;
}
return rc;
}
_len += rc;
}
}
void suBufferedRecvSocket::recvPending()
{
if ( !_len )
_off = 0;
else if ( _off > (sizeof(_buf)>>1) )
{
memmove ( _buf, &_buf[_off], _len );
_off = 0;
}
char* poff = &_buf[_off];
while ( sizeof(_buf)-_len-_off )
{
int rc = suRecv ( *this, &poff[_len], sizeof(_buf)-_len-_off, 1 );
if ( rc <= 0 )
break;
_len += rc;
}
}
bool suBufferedRecvSocket::recvInStr ( char c )
{
return NULL != memchr ( &_buf[_off], c, _len );
}

View File

@@ -0,0 +1,132 @@
// SockUtils.h - Declarations for the Winsock utility functions module.
// (C) 2002-2004 Royce Mitchell III
// This file is under the BSD & LGPL licenses
#ifndef __SOCKUTILS_H
#define __SOCKUTILS_H
#include <string>
#ifdef WIN32
# include <winsock2.h>
# define in_addr_t u_long
# define SUERRNO WSAGetLastError()
# define EADDRINUSE WSAEADDRINUSE
# define ENOTSOCK WSAENOTSOCK
# define socklen_t int
#elif defined(UNIX)
# include <sys/types.h>
# include <sys/socket.h>
# include <netinet/in.h>
# include <unistd.h>
# include <errno.h>
# define closesocket(so) close(so)
# define SOCKET int
# define INVALID_SOCKET -1
# define SOCKET_ERROR -1
# define SUERRNO errno
# ifdef MACOSX
# define socklen_t int //Stupid mac
# endif
#else
# error unrecognized target
#endif
#include <assert.h>
extern bool suStartup();
extern SOCKET suTcpSocket();
extern SOCKET suUdpSocket();
extern bool suShutdownConnection(SOCKET sd);
extern in_addr_t suLookupAddress ( const char* pcHost );
extern bool suConnect ( SOCKET so, in_addr_t iAddress, u_short iPort );
extern bool suConnect ( SOCKET so, const char* szAddress, u_short iPort );
extern SOCKET suEstablishConnection ( in_addr_t iAddress, u_short iPort, int type );
extern SOCKET suEstablishConnection ( const char* szAddress, u_short iPort, int type );
extern bool suBroadcast ( SOCKET so, u_short port, const char* buf, int len = -1 );
extern int suRecv ( SOCKET so, char* buf, int buflen, int timeout );
extern int suRecvFrom ( SOCKET so, char* buf, int buflen, int timeout, sockaddr_in* from, socklen_t* fromlen );
extern bool suBind ( SOCKET so, in_addr_t iInterfaceAddress, u_short iListenPort, bool bReuseAddr = false );
extern bool suBind ( SOCKET so, const char* szInterfaceAddress, u_short iListenPort, bool bReuseAddr = false );
extern bool suEnableBroadcast ( SOCKET so, bool bEnable = true );
extern const char* suErrDesc ( int err );
#if defined(UNICODE) || defined(_UNICODE)
extern in_addr_t suLookupAddress ( const wchar_t* pcHost );
extern bool suBroadcast ( SOCKET so, u_short port, const wchar_t* buf, int len = -1 );
extern int suRecv ( SOCKET so, wchar_t* buf, int buflen, int timeout );
extern int suRecvFrom ( SOCKET so, wchar_t* buf, int buflen, int timeout, sockaddr_in* from, int* fromlen );
extern bool suBind ( SOCKET so, const wchar_t* szInterfaceAddress, u_short iListenPort, bool bReuseAddr = false );
#endif//UNICODE
class suSocket
{
SOCKET _so;
public:
suSocket ( SOCKET so = INVALID_SOCKET ) : _so(so)
{
}
const suSocket& operator = ( SOCKET so )
{
assert ( _so == INVALID_SOCKET ); // must Detach() or Close() existing socket first
_so = so;
return *this;
}
virtual ~suSocket()
{
Close();
}
void Close()
{
if ( _so != INVALID_SOCKET )
{
//suShutdownConnection ( _so ); // TODO - only valid on TCP sockets
closesocket ( _so );
_so = INVALID_SOCKET;
}
}
operator SOCKET() const
{
return _so;
}
SOCKET Attach ( SOCKET so )
{
SOCKET old = Detach();
_so = so;
return old;
}
SOCKET Detach()
{
SOCKET so = _so;
_so = INVALID_SOCKET;
return so;
}
private:
// disable copy semantics
suSocket ( const suSocket& );
const suSocket& operator = ( const suSocket& );
};
class suBufferedRecvSocket : public suSocket
{
char _buf[2048];
int _off;
int _len;
public:
suBufferedRecvSocket ( SOCKET so = INVALID_SOCKET );
int recvUntil ( std::string& buf, char until, int timeout );
void recvPending();
bool recvInStr ( char c );
};
class SockAddrIn : public sockaddr_in
{
public:
SockAddrIn(); // creates broadcast address
SockAddrIn ( const char* szAddr, u_short iPort );
SockAddrIn ( in_addr_t iAddr, u_short iPort );
operator sockaddr* () { return (sockaddr*)this; }
operator sockaddr_in* () { return (sockaddr_in*)this; }
};
#endif//__SOCKUTILS_H

View File

@@ -0,0 +1,96 @@
// SplitJoin.cpp
//
// This code is copyright 2003-2004 Royce Mitchell III
// and released under the BSD & LGPL licenses
#ifdef _MSC_VER
#pragma warning ( disable : 4786 ) // MSVC6 can't handle too-long template names
#endif//_MSC_VER
//#include <sstream>
#include "SplitJoin.h"
#include <string.h>
using std::string;
using std::vector;
//using std::stringstream;
static const char* quotes = "\"\'";
bool Split ( vector<string>& vec, const char* csv, char sep, bool merge )
{
string scsv ( csv );
char* col = &scsv[0];
vec.resize ( 0 );
for ( ;; )
{
char* p = col;
while ( isspace(*p) && *p != sep )
p++;
char quote = 0;
if ( strchr ( quotes, *p ) )
quote = *p++;
while ( *p && (*p != sep || quote) )
{
if ( *p++ == quote )
break;
}
while ( isspace(*p) && *p != sep )
p++;
if ( *p && *p != sep )
return false;
string scol ( col, p-col );
//quote = scol[0];
if ( quote )
{
if ( scol[scol.size()-1] == quote )
scol = string ( &scol[1], scol.size()-2 );
}
if ( scol.length() || !merge )
vec.push_back ( scol );
if ( !*p )
break;
col = p + 1;
}
return true;
}
bool Join ( string& csv, vector<string>& vec, char sep )
{
csv.resize(0);
for ( int i = 0; i < vec.size(); i++ )
{
if ( i )
csv += sep;
string& s = vec[i];
if ( strchr ( s.c_str(), sep ) )
{
if ( strchr ( s.c_str(), '\"' ) )
{
if ( strchr ( s.c_str(), '\'' ) )
return false; // the sep, " and ' are all in the string, can't build valid output
csv += '\'';
csv += s;
csv += '\'';
}
else
{
csv += '\"';
csv += s;
csv += '\"';
}
}
else
csv += s;
}
return true;
}

View File

@@ -0,0 +1,32 @@
// SplitJoin.h
//
// This code is copyright 2003-2004 Royce Mitchell III
// and released under the BSD & LGPL licenses
#ifndef SPLITJOIN_H
#define SPLITJOIN_H
#include <vector>
#include <string>
bool Split (
std::vector<std::string>& vec,
const char* csv,
char sep=',',
bool merge=false );
bool Join (
std::string& csv,
std::vector<std::string>& vec,
char sep=',' );
inline bool Split (
std::vector<std::string>& vec,
const std::string& csv,
char sep=',',
bool merge=false )
{
return Split ( vec, csv.c_str(), sep, merge );
}
#endif//SPLIT_H

View File

@@ -0,0 +1,240 @@
// ThreadPool.cpp
// This file is (C) 2003-2004 Royce Mitchell III
// and released under the LGPL & BSD licenses
#include <vector>
using std::vector;
#include "ThreadPool.h"
#include "QueueT.h"
#include "auto_vector.h"
#include "verify.h"
#include "ReliMT.h"
class PoolableThread : public ActiveObject
{
public:
PoolableThread ( ThreadPoolImpl& );
~PoolableThread()
{
Kill();
}
void InitThread();
void Run();
void FlushThread();
ThreadPoolImpl& _pool;
};
class ThreadPoolLaunchData
{
public:
ThreadPoolFunc* pFun;
void* pArg;
};
template <class T>
class AtomicCounter : public Uncopyable
{
Mutex _m;
T _t;
public:
AtomicCounter ( T init = 0 ) : _t(init)
{
}
AtomicCounter ( const AtomicCounter<T>& t )
{
//Mutex::Lock l ( _m ); // don't need to lock since this is a ctor
Mutex::Lock l2 ( t._m );
_t = t._t;
}
const AtomicCounter<T>& operator = ( const AtomicCounter<T>& t )
{
Mutex::Lock l ( _m );
Mutex::Lock l2 ( t._m );
_t = t._t;
return *this;
}
T operator ++ ()
{
Mutex::Lock l ( _m );
T t = _t++;
return t;
}
const AtomicCounter<T>& operator ++ ( int )
{
Mutex::Lock l ( _m );
++_t;
return *this;
}
T operator -- ()
{
Mutex::Lock l ( _m );
T t = _t--;
return t;
}
const AtomicCounter<T>& operator -- ( int )
{
Mutex::Lock l ( _m );
--_t;
return *this;
}
const AtomicCounter<T>& operator += ( T t )
{
Mutex::Lock l ( _m );
return _t += t;
return *this;
}
const AtomicCounter<T>& operator -= ( T t )
{
Mutex::Lock l ( _m );
return _t -= t;
return *this;
}
operator const T& () const
{
//Mutex::Lock l ( _m );
return _t;
}
T operator !() const
{
//Mutex::Lock l ( _m );
return !_t;
}
};
class ThreadPoolImpl : public Uncopyable
{
public:
ThreadPoolImpl() : _isDying(false), _idleThreads(0)
{
}
~ThreadPoolImpl()
{
}
void Shutdown()
{
_isDying = true;
while ( _idleThreads )
{
_threadWaitEvent.Release();
_threadStartEvent.Wait(); // let thread actually get a grip
}
}
void Launch ( ThreadPoolFunc* pFun, void* pArg )
{
// this mutex is necessary to make sure we never have a conflict
// between checking !_idleThreads and the call to _threadStartEvent.Wait()
// basically if 2 threads call Launch() simultaneously, and there is only
// 1 idle thread, it's possible that a new thread won't be created to
// satisfy the 2nd request until an existing thread finishes.
Mutex::Lock launchlock ( _launchMutex );
ASSERT ( pFun );
ThreadPoolLaunchData* data;
{
Mutex::Lock lock ( _vectorMutex );
if ( !_spareData.size() )
_spareData.push_back ( new ThreadPoolLaunchData() );
data = _spareData.pop_back().release();
if ( !_idleThreads )
_threads.push_back ( new PoolableThread(*this) );
}
data->pFun = pFun;
data->pArg = pArg;
verify ( _pendingData.Add ( data ) );
_threadWaitEvent.Release(); // tell a thread to do it's thing...
_threadStartEvent.Wait(); // wait on a thread to pick up the request
}
// functions for threads to call...
ThreadPoolLaunchData* GetPendingData()
{
ThreadPoolLaunchData* data = NULL;
++_idleThreads;
_threadWaitEvent.Wait(); // waits until there's a request
--_idleThreads;
_threadStartEvent.Release(); // tell requester we got it
if ( _isDying )
return NULL;
_pendingData.Get ( data );
ASSERT ( data );
return data;
}
void RecycleData ( ThreadPoolLaunchData* data )
{
Mutex::Lock lock ( _vectorMutex );
_spareData.push_back ( data );
}
bool _isDying;
Mutex _vectorMutex, _launchMutex;
auto_vector<PoolableThread> _threads;
auto_vector<ThreadPoolLaunchData> _spareData;
CQueueT<ThreadPoolLaunchData*> _pendingData;
Event _threadWaitEvent, _threadStartEvent;
AtomicCounter<int> _idleThreads;
};
///////////////////////////////////////////////////////////////////////////////
// ThreadPool
/*static*/ ThreadPool& ThreadPool::Instance()
{
static ThreadPool tp;
return tp;
}
ThreadPool::ThreadPool() : _pimpl ( new ThreadPoolImpl )
{
};
ThreadPool::~ThreadPool()
{
_pimpl->Shutdown();
delete _pimpl;
_pimpl = 0;
}
void ThreadPool::Launch ( ThreadPoolFunc* pFun, void* pArg )
{
_pimpl->Launch ( pFun, pArg );
}
int ThreadPool::IdleThreads()
{
return _pimpl->_idleThreads;
}
///////////////////////////////////////////////////////////////////////////////
// PoolableThread
PoolableThread::PoolableThread ( ThreadPoolImpl& pool ) : _pool(pool)
{
Start();
}
void PoolableThread::InitThread()
{
}
void PoolableThread::Run()
{
ThreadPoolLaunchData* data;
while ( !_isDying )
{
data = _pool.GetPendingData(); // enter wait state if none...
if ( !data ) // NULL data means kill thread
break;
(*data->pFun) ( data->pArg ); // call the function
_pool.RecycleData ( data );
}
}
void PoolableThread::FlushThread()
{
}

View File

@@ -0,0 +1,28 @@
// ThreadPool.h
// This file is (C) 2003-2004 Royce Mitchell III
// and released under the LGPL & BSD licenses
#ifndef THREADPOOL_H
#define THREADPOOL_H
#include "ReliMT.h"
typedef void THREADAPI ThreadPoolFunc ( void* );
class ThreadPoolImpl;
class ThreadPool : public Uncopyable
{
public:
static ThreadPool& Instance();
~ThreadPool();
void Launch ( ThreadPoolFunc* pFun, void* pArg );
int IdleThreads();
private:
ThreadPool();
ThreadPoolImpl *_pimpl;
};
#endif// THREADPOOL_H

View File

@@ -0,0 +1,87 @@
// auto_ptr.h
// This file is (C) 2002-2003 Royce Mitchell III
// and released under the LGPL & BSD licenses
#ifndef AUTO_PTR_H
#define AUTO_PTR_H
template<class T>
class auto_ptr
{
public:
typedef T element_type;
explicit auto_ptr(T *p = 0) : _p(p)
{
}
auto_ptr(auto_ptr<T>& rhs) : _p(rhs.release())
{
}
auto_ptr<T>& operator=(auto_ptr<T>& rhs)
{
if ( &rhs != this )
{
dispose();
_p = rhs.release();
}
return *this;
}
auto_ptr<T>& set ( auto_ptr<T>& rhs )
{
if ( &rhs != this )
{
dispose();
_p = rhs.release();
}
return *this;
}
~auto_ptr()
{
dispose();
}
void dispose()
{
if ( _p )
{
delete _p;
_p = 0;
}
}
T& operator[] ( int i )
{
return _p[i];
}
T& operator*() const
{
return *_p;
}
T* operator->() const
{
return _p;
}
T* get() const
{
return _p;
}
T* release()
{
T* p = _p;
_p = 0;
return p;
}
private:
T* _p;
};
#endif//AUTO_PTR_H

View File

@@ -0,0 +1,141 @@
// auto_vector.h
// This file is (C) 2002-2004 Royce Mitchell III
// and released under the LGPL & BSD licenses
#ifndef AUTO_VECTOR_H
#define AUTO_VECTOR_H
#include <sys/types.h>
#include "verify.h"
#include "auto_ptr.h"
template<class T>
class auto_vector
{
public:
explicit auto_vector ( size_t capacity = 0 )
: _arr(0), _capacity(0), _end(0)
{
if ( capacity != 0 )
_arr = new auto_ptr<T>[capacity];
_capacity = capacity;
}
~auto_vector()
{
delete []_arr;
}
size_t size() const
{
return _end;
}
const auto_ptr<T>& operator [] ( size_t i ) const
{
ASSERT ( i < _end );
return _arr[i];
}
auto_ptr<T>& operator [] ( size_t i )
{
ASSERT ( i < _end );
return _arr[i];
}
void assign ( size_t i, auto_ptr<T>& p )
{
ASSERT ( i < _end );
_arr[i] = p;
}
void assign_direct ( size_t i, T * p )
{
ASSERT ( i < _end );
reserve ( i + 1 );
_arr[i].reset ( ptr );
}
void push_back ( auto_ptr<T>& p )
{
reserve ( _end + 1 );
_arr[_end++] = p;
}
auto_ptr<T>& back()
{
ASSERT ( _end != 0 );
return _arr[_end-1];
}
void push_back ( T * p )
{
reserve ( _end + 1 );
auto_ptr<T> tmp(p);
_arr[_end++] = tmp;
//GCC is pedantic, this is an error.
//_arr[_end++] = auto_ptr<T>(p);
}
auto_ptr<T> pop_back()
{
ASSERT ( _end != 0 );
if ( !_end )
{
auto_ptr<T> tmp((T*)0);
return tmp;
//GCC, this is an error.
//return auto_ptr<T>(NULL);
}
return _arr[--_end];
}
void resize ( size_t newSize )
{
ASSERT ( newSize >= 0 );
reserve ( newSize ); // make sure we have at least this much room
_end = newSize;
}
void reserve ( size_t reqCapacity )
{
if ( reqCapacity <= _capacity )
return;
size_t newCapacity = 2 * _capacity;
if ( reqCapacity > newCapacity )
newCapacity = reqCapacity;
// allocate new array
auto_ptr<T> * arrNew = new auto_ptr<T> [newCapacity];
// transfer all entries
for ( size_t i = 0; i < _capacity; ++i )
arrNew[i] = _arr[i];
_capacity = newCapacity;
// free old memory
delete[] _arr;
// substitute new array for old array
_arr = arrNew;
}
void remove ( size_t off )
{
size_t last = _end-1;
if ( off == last )
resize ( last );
else if ( off < last )
{
auto_ptr<T> tmp ( pop_back().release() );
_arr[off] = tmp;
}
}
//typedef const_auto_iterator<T> const_iterator;
//const_iterator begin () const { return _arr; }
//const_iterator end () const { return _arr + _end; }
private:
auto_ptr<T> *_arr;
size_t _capacity;
size_t _end;
};
#endif//AUTO_VECTOR_H

View File

@@ -0,0 +1,58 @@
// base64.cpp
#include "base64.h"
using std::string;
static const char* alfabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
string base64_encode ( const string& sInput )
{
unsigned char x=0, topbit=0;
int v=0;
string sOutput;
do
{
if ( topbit < 6 )
{
x++;
v <<= 8;
if ( x <= sInput.length() ) v += sInput[x-1];
topbit += 8;
}
topbit -= 6;
if ( x > sInput.length() && !v )
break;
sOutput += alfabet[(v >> topbit) & 63];
v &= (1 << topbit) - 1;
} while ( x < sInput.length() || v );
int eq = (8 - (sOutput.length() % 4)) % 4;
while ( eq-- )
sOutput += '=';
return sOutput;
}
string base64_decode ( const string& sInput )
{
unsigned char x=0, topbit=0;
int v=0, inlen = sInput.length();
string sOutput;
while ( inlen && sInput[inlen-1] == '=' )
inlen--;
do
{
while ( topbit < 8 )
{
x++;
v <<= 6;
if ( x <= inlen ) v += (strchr(alfabet, sInput[x-1]) - alfabet);
topbit += 6;
}
topbit -= 8;
if ( x > inlen && !v )
break;
sOutput += (char)((v >> topbit) & 255);
v &= ((1 << topbit) - 1);
} while ( x <= inlen || v );
return sOutput;
}

View File

@@ -0,0 +1,12 @@
// base64.h
#ifndef BASE64_H
#define BASE64_H
#include <string>
std::string base64_encode ( const std::string& s );
std::string base64_decode ( const std::string& s );
#endif//BASE64_H

View File

@@ -0,0 +1,15 @@
// chomp.cpp
// This file is (C) 2004 Royce Mitchell III
// and released under the BSD & LGPL licenses
#include "chomp.h"
std::string chomp ( const std::string& s )
{
const char* p = &s[0];
const char* p2 = &s[0] + s.size();
while ( p2 > p && strchr("\r\n", p2[-1]) )
p2--;
return std::string ( p, p2-p );
}

13
irc/ArchBlackmann/chomp.h Normal file
View File

@@ -0,0 +1,13 @@
// chomp.h
// This file is (C) 2004 Royce Mitchell III
// and released under the BSD & LGPL licenses
#ifndef CHOMP_H
#define CHOMP_H
#include <string>
std::string chomp ( const std::string& s );
#endif//TRIM_H

View File

@@ -0,0 +1,23 @@
// cram_md5.cpp
// This file is (C) 2004 Royce Mitchell III
// and released under the BSD & LGPL licenses
#include "md5.h"
#include "cram_md5.h"
#include "base64.h"
using std::string;
string cram_md5 ( const string& username, const string& password, const string& greeting )
{
string challenge = base64_decode ( greeting );
string hmac = HMAC_MD5 ( password, challenge );
//printf ( "(cram_md5): hmac = %s\n", hmac.c_str() );
string raw_response = username;
raw_response += " ";
raw_response += hmac;
//printf ( "(cram_md5): raw_response = %s\n", raw_response.c_str() );
return base64_encode ( raw_response );
}

View File

@@ -0,0 +1,15 @@
// cram_md5.h
// This file is (C) 2004 Royce Mitchell III
// and released under the BSD & LGPL licenses
#ifndef CRAM_MD5_H
#define CRAM_MD5_H
#include <string>
std::string cram_md5 (
const std::string& username,
const std::string& password,
const std::string& greeting );
#endif//CRAM_MD5_H

View File

@@ -0,0 +1,26 @@
shit
fuck
pussy
ass
ass-
-ass
dumbass
jackass
fatass
asshole
smartass
cunt
fucker
bitch
dick
penile
stfu
omfg
lmao
ass.
-ass.
semprini
goat.cx
ekush
akshor
poop

View File

@@ -0,0 +1,10 @@
You should have your mouth washed out with soap!
This is a clean channel... please watch your language
Please try to keep it clean
Hey, there's children present ( I'm not even a year old yet! )
Could you find a less-offensive way to express yourself, please?
Such language :(
Those aren't nice words to use
Oh, my poor innocent ears :(
Help! My mind is being corrupted!
filthy mouths are not appreciated here

15
irc/ArchBlackmann/dev.txt Normal file
View File

@@ -0,0 +1,15 @@
Royce3
kjk_hyperion
tamlin
GvG
filip2307
hardon
w3seek
arty
sedwards
Exception
blight_
jimtabor
mtempel
Gge
Alex_Ionescu

581
irc/ArchBlackmann/func.txt Normal file
View File

@@ -0,0 +1,581 @@
BOOLEAN
CcCanIWrite
CcCopyRead
CcCopyWrite
CcDeferWrite
CcFastCopyRead
CcFastCopyWrite
CcFlushCache
CcGetDirtyPages
CcGetFileObjectFromBcb
CcGetFileObjectFromSectionPtrs
CcGetFlushedValidData
CcGetLsnForFileObject
CcInitializeCacheMap
CcIsThereDirtyData
CcMapData
CcMdlRead
CcMdlReadComplete
CcMdlWriteAbort
CcMdlWriteComplete
CcPinMappedData
CcPinRead
CcPrepareMdlWrite
CcPreparePinWrite
CcPurgeCacheSection
CcRemapBcb
CcRepinBcb
CcScheduleReadAhead
CcSetAdditionalCacheAttributes
CcSetBcbOwnerPointer
CcSetDirtyPageThreshold
CcSetDirtyPinnedData
CcSetFileSizes
CcSetLogHandleForFile
CcSetReadAheadGranularity
CcUninitializeCacheMap
CcUnpinData
CcUnpinDataForThread
CcUnpinRepinnedBcb
CcWaitForCurrentLazyWriterActivity
CcZeroData
DbgLoadImageSymbols
DbgQueryDebugFilterState
DbgSetDebugFilterState
EVENT_TYPE
ExAcquireResourceExclusive
ExAcquireResourceExclusiveLite
ExAcquireResourceSharedLite
ExAcquireSharedStarveExclusive
ExAcquireSharedWaitForExclusive
ExAllocateFromZone
ExAllocatePool
ExAllocatePoolWithQuota
ExAllocatePoolWithQuotaTag
ExAllocatePoolWithTag
ExConvertExclusiveToSharedLite
ExCreateCallback
ExDeleteNPagedLookasideList
ExDeletePagedLookasideList
ExDeleteResource
ExDeleteResourceLite
ExDisableResourceBoostLite
ExEnumHandleTable
ExExtendZone
ExFreePool
ExGetCurrentProcessorCounts
ExGetCurrentProcessorCpuUsage
ExGetExclusiveWaiterCount
ExGetPreviousMode
ExGetSharedWaiterCount
ExInitializeNPagedLookasideList
ExInitializePagedLookasideList
ExInitializeResource
ExInitializeResourceLite
ExInitializeZone
ExInterlockedAddLargeInteger
ExInterlockedAddUlong
ExInterlockedDecrementLong
ExInterlockedExchangeUlong
ExInterlockedExtendZone
ExInterlockedIncrementLong
ExInterlockedInsertHeadList
ExInterlockedInsertTailList
ExInterlockedPopEntryList
ExInterlockedPushEntryList
ExInterlockedRemoveHeadList
ExIsProcessorFeaturePresent
ExIsResourceAcquiredExclusiveLite
ExIsResourceAcquiredSharedLite
ExLocalTimeToSystemTime
ExNotifyCallback
ExPostSystemEvent
ExQueryPoolBlockSize
ExQueueWorkItem
ExRaiseAccessViolation
ExRaiseDatatypeMisalignment
ExRaiseException
ExRaiseHardError
ExRaiseStatus
ExRegisterCallback
ExReinitializeResourceLite
ExReleaseResource
ExReleaseResourceForThread
ExReleaseResourceForThreadLite
ExRosDumpPagedPoolByTag
ExRosQueryPoolTag
ExSetResourceOwnerPointer
ExSetTimerResolution
ExSystemExceptionFilter
ExSystemTimeToLocalTime
ExTryToAcquireResourceExclusiveLite
ExUnregisterCallback
ExUuidCreate
ExVerifySuite
FsRtlAcquireFileExclusive
FsRtlAddMcbEntry
FsRtlAddToTunnelCache
FsRtlAllocateFileLock
FsRtlAllocatePool
FsRtlAllocatePoolWithQuota
FsRtlAllocatePoolWithQuotaTag
FsRtlAllocatePoolWithTag
FsRtlAllocateResource
FsRtlAreNamesEqual
FsRtlBalanceReads
FsRtlCheckLockForReadAccess
FsRtlCheckLockForWriteAccess
FsRtlCopyRead
FsRtlCopyWrite
FsRtlFastCheckLockForRead
FsRtlFastCheckLockForWrite
FsRtlFastUnlockAll
FsRtlFastUnlockAllByKey
FsRtlFastUnlockSingle
FsRtlFindInTunnelCache
FsRtlFreeFileLock
FsRtlGetFileSize
FsRtlGetNextFileLock
FsRtlGetNextMcbEntry
FsRtlIncrementCcFastReadNoWait
FsRtlIncrementCcFastReadNotPossible
FsRtlIncrementCcFastReadResourceMiss
FsRtlIncrementCcFastReadWait
FsRtlInitializeFileLock
FsRtlInitializeMcb
FsRtlInitializeTunnelCache
FsRtlInsertPerFileObjectContext
FsRtlInsertPerStreamContext
FsRtlIsDbcsInExpression
FsRtlIsFatDbcsLegal
FsRtlIsHpfsDbcsLegal
FsRtlIsNameInExpression
FsRtlLookupLastLargeMcbEntryAndIndex
FsRtlLookupLastMcbEntry
FsRtlLookupMcbEntry
FsRtlLookupPerFileObjectContext
FsRtlLookupPerStreamContextInternal
FsRtlMdlRead
FsRtlMdlReadComplete
FsRtlMdlReadCompleteDev
FsRtlMdlReadDev
FsRtlMdlWriteComplete
FsRtlMdlWriteCompleteDev
FsRtlNotifyChangeDirectory
FsRtlNotifyCleanup
FsRtlNotifyFilterChangeDirectory
FsRtlNotifyFilterReportChange
FsRtlNotifyFullChangeDirectory
FsRtlNotifyFullReportChange
FsRtlNotifyReportChange
FsRtlNotifyUninitializeSync
FsRtlNumberOfRunsInMcb
FsRtlPostPagingFileStackOverflow
FsRtlPostStackOverflow
FsRtlPrepareMdlWrite
FsRtlPrepareMdlWriteDev
FsRtlPrivateLock
FsRtlProcessFileLock
FsRtlRegisterFileSystemFilterCallbacks
FsRtlReleaseFile
FsRtlRemoveMcbEntry
FsRtlRemovePerFileObjectContext
FsRtlRemovePerStreamContext
FsRtlResetLargeMcb
FsRtlSyncVolumes
FsRtlTeardownPerStreamContexts
FsRtlTruncateMcb
FsRtlUninitializeFileLock
FsRtlUninitializeMcb
HalAdjustResourceList
HalAllocateCommonBuffer
HalAssignSlotResources
HalCalibratePerformanceCounter
HalFlushCommonBuffer
HalFreeCommonBuffer
HalGetAdapter
HalGetBusData
HalGetBusDataByOffset
HalGetDmaAlignmentRequirement
HalMakeBeep
HalQueryDisplayParameters
HalQueryRealTimeClock
HalReadDmaCounter
HalRequestIpi
HalSetBusData
HalSetBusDataByOffset
HalSetDisplayParameters
HalSetRealTimeClock
HalStartNextProcessor
IoAcquireCancelSpinLock
IoAcquireRemoveLockEx
IoAcquireVpbSpinLock
IoAllocateAdapterChannel
IoAllocateController
IoAllocateDriverObjectExtension
IoAllocateErrorLogEntry
IoAllocateIrp
IoAllocateMdl
IoAllocateWorkItem
IoAssignResources
IoAttachDevice
IoAttachDeviceByPointer
IoAttachDeviceToDeviceStack
IoAttachDeviceToDeviceStackSafe
IoBuildAsynchronousFsdRequest
IoBuildDeviceIoControlRequest
IoBuildPartialMdl
IoBuildSynchronousFsdRequest
IoCallDriver
IoCancelFileOpen
IoCancelIrp
IoCheckQuerySetFileInformation
IoCheckQuerySetVolumeInformation
IoCheckQuotaBufferValidity
IoCheckShareAccess
IoCompleteRequest
IoConnectInterrupt
IoCreateController
IoCreateDevice
IoCreateDisk
IoCreateDriver
IoCreateFile
IoCreateFileSpecifyDeviceObjectHint
IoCreateNotificationEvent
IoCreateStreamFileObject
IoCreateStreamFileObjectEx
IoCreateStreamFileObjectLite
IoCreateSymbolicLink
IoCreateSynchronizationEvent
IoCreateUnprotectedSymbolicLink
IoDeleteController
IoDeleteDevice
IoDeleteDriver
IoDeleteSymbolicLink
IoDetachDevice
IoDisconnectInterrupt
IoEnqueueIrp
IoEnumerateDeviceObjectList
IoFlushAdapterBuffers
IoForwardIrpSynchronously
IoFreeAdapterChannel
IoFreeController
IoFreeErrorLogEntry
IoFreeIrp
IoFreeMapRegisters
IoFreeMdl
IoFreeWorkItem
IoGetAttachedDevice
IoGetAttachedDeviceReference
IoGetBaseFileSystemDeviceObject
IoGetBootDiskInformation
IoGetConfigurationInformation
IoGetCurrentProcess
IoGetDeviceAttachmentBaseRef
IoGetDeviceInterfaceAlias
IoGetDeviceInterfaces
IoGetDeviceObjectPointer
IoGetDeviceProperty
IoGetDeviceToVerify
IoGetDiskDeviceObject
IoGetDriverObjectExtension
IoGetFileObjectGenericMapping
IoGetInitialStack
IoGetLowerDeviceObject
IoGetRelatedDeviceObject
IoGetRequestorProcess
IoGetRequestorProcessId
IoGetRequestorSessionId
IoGetStackLimits
IoGetTopLevelIrp
IoInitializeIrp
IoInitializeRemoveLockEx
IoInitializeTimer
IoInvalidateDeviceRelations
IoInvalidateDeviceState
IoIsFileOriginRemote
IoIsOperationSynchronous
IoIsSystemThread
IoIsValidNameGraftingBuffer
IoMakeAssociatedIrp
IoMapTransfer
IoOpenDeviceInstanceKey
IoOpenDeviceInterfaceRegistryKey
IoOpenDeviceRegistryKey
IoPageRead
IoPnPDeliverServicePowerNotification
IoQueryDeviceDescription
IoQueryDeviceEnumInfo
IoQueryFileDosDeviceName
IoQueryFileInformation
IoQueryVolumeInformation
IoQueueThreadIrp
IoQueueWorkItem
IoRaiseHardError
IoRaiseInformationalHardError
IoReadDiskSignature
IoReadPartitionTableEx
IoRegisterBootDriverReinitialization
IoRegisterDeviceInterface
IoRegisterDriverReinitialization
IoRegisterFileSystem
IoRegisterFsRegistrationChange
IoRegisterLastChanceShutdownNotification
IoRegisterPlugPlayNotification
IoRegisterShutdownNotification
IoReleaseCancelSpinLock
IoReleaseRemoveLockAndWaitEx
IoReleaseRemoveLockEx
IoReleaseVpbSpinLock
IoRemoveShareAccess
IoReportDetectedDevice
IoReportHalResourceUsage
IoReportResourceForDetection
IoReportResourceUsage
IoReportTargetDeviceChange
IoReportTargetDeviceChangeAsynchronous
IoRequestDeviceEject
IoReuseIrp
IoSetCompletionRoutineEx
IoSetDeviceInterfaceState
IoSetDeviceToVerify
IoSetFileOrigin
IoSetHardErrorOrVerifyDevice
IoSetInformation
IoSetIoCompletion
IoSetPartitionInformationEx
IoSetShareAccess
IoSetStartIoAttributes
IoSetSystemPartition
IoSetThreadHardErrorMode
IoSetTopLevelIrp
IoStartNextPacket
IoStartNextPacketByKey
IoStartPacket
IoStartTimer
IoStopTimer
IoSynchronousInvalidateDeviceRelations
IoSynchronousPageWrite
IoUnregisterFileSystem
IoUnregisterFsRegistrationChange
IoUnregisterPlugPlayNotification
IoUnregisterShutdownNotification
IoUpdateShareAccess
IoValidateDeviceIoControlAccess
IoVerifyPartitionTable
IoVerifyVolume
IoVolumeDeviceToDosName
IoWMIAllocateInstanceIds
IoWMIDeviceObjectToInstanceName
IoWMIExecuteMethod
IoWMIHandleToInstanceName
IoWMIOpenBlock
IoWMIQueryAllData
IoWMIQueryAllDataMultiple
IoWMIQuerySingleInstance
IoWMIQuerySingleInstanceMultiple
IoWMIRegistrationControl
IoWMISetNotificationCallback
IoWMISetSingleInstance
IoWMISetSingleItem
IoWMISuggestInstanceName
IoWMIWriteEvent
IoWriteErrorLogEntry
IoWritePartitionTableEx
KPRIORITY
KdPortGetByte
KdPortPollByte
KdPortPutByte
Ke386QueryIoAccessMap
Ke386SetIoAccessMap
KeAcquireInterruptSpinLock
KeAreApcsDisabled
KeCapturePersistentThreadState
KeDeregisterBugCheckReasonCallback
KeFindConfigurationEntry
KeFindConfigurationNextEntry
KeFlushEntireTb
KeFlushQueuedDpcs
KeGetRecommendedSharedDataAlignment
KeIsExecutingDpc
KeQueryActiveProcessors
KeQueryPerformanceCounter
KeQueryPriorityThread
KeQueryRuntimeThread
KeQuerySystemTime
KeQueryTickCount
KeQueryTimeIncrement
KeRaiseIrql
KeRaiseIrqlToDpcLevel
KeRaiseUserException
KeReadStateEvent
KeRegisterBugCheckCallback
KeRegisterBugCheckReasonCallback
KeReleaseInterruptSpinLock
KeReleaseMutant
KeReleaseMutex
KeReleaseSemaphore
KeReleaseSpinLock
KeReleaseSpinLockFromDpcLevel
KeReleaseSpinLockFromDpcLevel
KeRemoveByKeyDeviceQueue
KeRemoveByKeyDeviceQueueIfBusy
KeRemoveDeviceQueue
KeRemoveEntryDeviceQueue
KeRemoveSystemServiceTable
KeRestoreFloatingPointState
KeRevertToUserAffinityThread
KeRosDumpStackFrames
KeRosGetStackFrames
KeRosPrintAddress
KeSaveFloatingPointState
KeSetDmaIoCoherency
KeSetEvent
KeSetEventBoostPriority
KeSetIdealProcessorThread
KeSetKernelStackSwapEnable
KeSetProfileIrql
KeSetSystemAffinityThread
KeSetTimeIncrement
KeTerminateThread
KeUserModeCallback
KeWaitForMutexObject
KeWaitForSingleObject
KiCoprocessorError
KiUnexpectedInterrupt
LONG
LdrFindResourceDirectory_U
MmAddPhysicalMemory
MmAddVerifierThunks
MmAdjustWorkingSetSize
MmAdvanceMdl
MmAllocateContiguousMemory
MmAllocateContiguousMemorySpecifyCache
MmAllocateMappingAddress
MmAllocateNonCachedMemory
MmBuildMdlForNonPagedPool
MmCanFileBeTruncated
MmCreateMdl
MmCreateSection
MmDbgTranslatePhysicalAddress
MmDisableModifiedWriteOfSection
MmFlushImageSection
MmForceSectionClosed
MmFreeContiguousMemory
MmFreeMappingAddress
MmFreeNonCachedMemory
MmGetPhysicalAddress
MmGetPhysicalMemoryRanges
MmGetSystemRoutineAddress
MmGetVirtualForPhysical
MmGrowKernelStack
MmIsAddressValid
MmIsDriverVerifying
MmIsNonPagedSystemAddressValid
MmIsRecursiveIoFault
MmIsThisAnNtAsSystem
MmIsVerifierEnabled
MmLockPagableDataSection
MmLockPagableImageSection
MmLockPagableSectionByHandle
MmMapIoSpace
MmMapLockedPages
MmMapLockedPagesWithReservedMapping
MmMapMemoryDumpMdl
MmMapUserAddressesToPage
MmMapVideoDisplay
MmMapViewInSessionSpace
MmMapViewInSystemSpace
MmMapViewOfSection
MmMarkPhysicalMemoryAsBad
MmMarkPhysicalMemoryAsGood
MmPageEntireDriver
MmPrefetchPages
MmProbeAndLockPages
MmProbeAndLockProcessPages
MmProbeAndLockSelectedPages
MmProtectMdlSystemAddress
MmQuerySystemSize
MmRemovePhysicalMemory
MmResetDriverPaging
MmSecureVirtualMemory
MmSetAddressRangeModified
MmSetBankedSection
MmSizeOfMdl
MmTrimAllSystemPagableMemory
MmUnlockPagableImageSection
MmUnlockPages
MmUnmapIoSpace
MmUnmapLockedPages
MmUnmapReservedMapping
MmUnmapVideoDisplay
MmUnmapViewInSessionSpace
MmUnmapViewInSystemSpace
MmUnmapViewOfSection
MmUnsecureVirtualMemory
OUT
ObCreateObject
PEJOB
PEPROCESS
PKBUGCHECK_CALLBACK_RECORD
PKDEVICE_QUEUE_ENTRY
PKIRQL
PULONG
PVOID
PW32_THREAD_CALLBACK
PoCallDriver
PoRegisterDeviceForIdleDetection
PoRegisterSystemState
PoRequestPowerIrp
PoSetDeviceBusy
PoSetPowerState
PoSetSystemState
PoStartNextPowerIrp
PoUnregisterSystemState
ProbeForRead
ProbeForWrite
PsAssignImpersonationToken
PsCreateSystemProcess
PsCreateSystemThread
PsGetCurrentProcessId
PsGetCurrentThreadId
PsImpersonateClient
PsReferenceImpersonationToken
PsReferencePrimaryToken
PsRevertThreadToSelf
PsRevertToSelf
PsTerminateSystemThread
READ_PORT_BUFFER_UCHAR
READ_PORT_BUFFER_ULONG
READ_PORT_BUFFER_USHORT
READ_PORT_UCHAR
READ_PORT_ULONG
READ_PORT_USHORT
SeAssignSecurityEx
SeAuditHardLinkCreation
SeAuditingFileEvents
SeAuditingFileEventsWithContext
SeAuditingFileOrGlobalEvents
SeAuditingHardLinkEvents
SeAuditingHardLinkEventsWithContext
SeCaptureSecurityDescriptor
SeCaptureSubjectContext
SeCloseObjectAuditAlarm
SeCreateAccessState
SeCreateClientSecurityFromSubjectContext
SeFilterToken
SeImpersonateClientEx
SePrivilegeObjectAuditAlarm
SeQueryInformationToken
SeQuerySessionIdToken
SeReleaseSecurityDescriptor
SeSetSecurityDescriptorInfoEx
SeTokenIsAdmin
SeTokenIsRestricted
SeTokenIsWriteRestricted
WRITE_PORT_BUFFER_UCHAR
WRITE_PORT_BUFFER_ULONG
WRITE_PORT_BUFFER_USHORT
WRITE_PORT_UCHAR
WRITE_PORT_ULONG
WRITE_PORT_USHORT

View File

@@ -0,0 +1,10 @@
/me bows humbly and begs %s's forgiveness
%s is soo cool... I hope to be like him some day
/me hides in a corner and hopes %s doesn't beat him with the whipping noodle again
/me prostrates at %s's feet and begs his majesty's forgiveness
%s: please don't hurt me!
I'm not worthy... I'm not worthy...
/me sings %s's praises to the world!
/me thinks %s is smarter than %dev%
%s: oh please may I defrag your sock drawer?
/me gives %s a cookie, hoping it will make up for breaking %func% the other day...

View File

@@ -0,0 +1,9 @@
PASSIVE_LEVEL
APC_LEVEL
DISPATCH_LEVEL
PROFILE_LEVEL
CLOCK1_LEVEL
IPI_LEVEL
POWER_LEVEL
HIGH_LEVEL
SYNCH_LEVEL

View File

@@ -0,0 +1,13 @@
the kernel
ntoskrnl
win32k
msafd
ws2_32
user32
shell32
the cache manager
tdi
the scheduler
the thread queue
the message queue
atapi

View File

@@ -0,0 +1,5 @@
/me slaps %s with a large trout
recycle(%s)
Did I hear something? Musta been a %s-fly... Where's that fly-swatter?
%s: go away son, you bother me....
/me beats %s with the whipping noodle

View File

@@ -0,0 +1,34 @@
// panic.cpp
// This file is (C) 2003-2004 Royce Mitchell III
// and released under the BSD & LGPL licenses
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#ifdef WIN32
#include <conio.h>
#include <windows.h>
#endif//WIN32
#include "panic.h"
void panic ( const char* format, ... )
{
va_list arg;
int done;
va_start(arg, format);
#if defined(WIN32) && !defined(_CONSOLE)
char buf[4096];
_vsnprintf ( buf, sizeof(buf)-1, format, arg );
MessageBox ( NULL, buf, "Panic!", MB_OK|MB_ICONEXCLAMATION );
#else
done = vprintf(format, arg);
printf ( "\n" );
#endif
va_end(arg);
#if defined(WIN32) && defined(_CONSOLE)
printf ( "Press any key to exit\n" );
(void)getch();
#endif//WIN32 && _CONSOLE
exit ( -1 );
}

18
irc/ArchBlackmann/panic.h Normal file
View File

@@ -0,0 +1,18 @@
// panic.h
// This file is (C) 2003-2004 Royce Mitchell III
// and released under the BSD & LGPL licenses
#ifndef PANIC_H
#define PANIC_H
void panic ( const char* format, ... );
#define suAssert(expr) if ( !(expr) ) panic ( "%s(%lu): SOCKET ERROR %s\nExpression: %s\n", __FILE__, __LINE__, suErrDesc(SUERRNO), #expr )
#if defined(DEBUG) || defined(_DEBUG)
# define suVerify(expr) suAssert(expr)
#else
# define suVerify(expr) expr
#endif
#endif//PANIC_H

View File

@@ -0,0 +1,11 @@
minute
hour
day
week
fortnight
month
year
decade
century
millenium
eon

View File

@@ -0,0 +1,998 @@
// ssprintf.cpp
#include <malloc.h>
#include <math.h>
#include <float.h>
#include <assert.h>
#include "ssprintf.h"
#ifdef _MSC_VER
#define alloca _alloca
#endif//_MSC_VER
typedef __int64 LONGLONG;
typedef unsigned __int64 ULONGLONG;
typedef struct {
unsigned int mantissa:23;
unsigned int exponent:8;
unsigned int sign:1;
} ieee_float_t;
typedef struct {
unsigned int mantissal:32;
unsigned int mantissah:20;
unsigned int exponent:11;
unsigned int sign:1;
} ieee_double_t;
typedef struct {
unsigned int mantissal:32;
unsigned int mantissah:32;
unsigned int exponent:15;
unsigned int sign:1;
unsigned int empty:16;
} ieee_long_double_t;
std::string ssprintf ( const char* fmt, ... )
{
va_list arg;
va_start(arg, fmt);
std::string f = ssvprintf ( fmt, arg );
va_end(arg);
return f;
}
#define ZEROPAD 1 /* pad with zero */
#define SIGN 2 /* unsigned/signed long */
#define PLUS 4 /* show plus */
#define SPACE 8 /* space if plus */
#define LEFT 16 /* left justified */
#define SPECIAL 32 /* 0x */
#define LARGE 64 /* use 'ABCDEF' instead of 'abcdef' */
#define ZEROTRUNC 128 /* truncate zero 's */
static int skip_atoi(const char **s)
{
int i=0;
while (isdigit(**s))
i = i*10 + *((*s)++) - '0';
return i;
}
static int do_div(LONGLONG *n,int base)
{
int __res = ((ULONGLONG) *n) % (unsigned) base;
*n = ((ULONGLONG) *n) / (unsigned) base;
return __res;
}
static bool number(std::string& f, LONGLONG num, int base, int size, int precision ,int type)
{
char c,sign,tmp[66];
const char *digits="0123456789abcdefghijklmnopqrstuvwxyz";
int i;
if (type & LARGE)
digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if (type & LEFT)
type &= ~ZEROPAD;
if (base < 2 || base > 36)
return 0;
c = (type & ZEROPAD) ? '0' : ' ';
sign = 0;
if (type & SIGN) {
if (num < 0) {
sign = '-';
num = -num;
size--;
} else if (type & PLUS) {
sign = '+';
size--;
} else if (type & SPACE) {
sign = ' ';
size--;
}
}
if (type & SPECIAL) {
if (base == 16)
size -= 2;
else if (base == 8)
size--;
}
i = 0;
if (num == 0)
tmp[i++]='0';
else while (num != 0)
tmp[i++] = digits[do_div(&num,base)];
if (i > precision)
precision = i;
size -= precision;
if (!(type&(ZEROPAD+LEFT)))
while(size-->0)
f += ' ';
if (sign)
f += sign;
if (type & SPECIAL)
{
if (base==8)
f += '0';
else if (base==16)
{
f += '0';
f += digits[33];
}
}
if (!(type & LEFT))
{
while (size-- > 0)
f += c;
}
while (i < precision--)
{
f += '0';
}
while (i-- > 0)
{
f += tmp[i];
}
while (size-- > 0)
{
f += ' ';
}
return true;
}
static bool numberf(std::string& f, double __n, char exp_sign, int size, int precision, int type)
{
double exponent = 0.0;
double e;
long ie;
//int x;
char *buf, *tmp;
int i = 0;
int j = 0;
//int k = 0;
double frac, intr;
double p;
char sign;
char c;
char ro = 0;
int result;
union
{
double* __n;
ieee_double_t* n;
} n;
n.__n = &__n;
if ( exp_sign == 'g' || exp_sign == 'G' || exp_sign == 'e' || exp_sign == 'E' ) {
ie = ((unsigned int)n.n->exponent - (unsigned int)0x3ff);
exponent = ie/3.321928;
}
if ( exp_sign == 'g' || exp_sign == 'G' ) {
type |= ZEROTRUNC;
if ( exponent < -4 || fabs(exponent) >= precision )
exp_sign -= 2; // g -> e and G -> E
}
if ( exp_sign == 'e' || exp_sign == 'E' ) {
frac = modf(exponent,&e);
if ( frac > 0.5 )
e++;
else if ( frac < -0.5 )
e--;
result = numberf(f,__n/pow(10.0L,e),'f',size-4, precision, type);
if (result < 0)
return false;
f += exp_sign;
size--;
ie = (long)e;
type = LEFT | PLUS;
if ( ie < 0 )
type |= SIGN;
result = number(f,ie, 10,2, 2,type );
if (result < 0)
return false;
return true;
}
if ( exp_sign == 'f' ) {
buf = (char*)alloca(4096);
if (type & LEFT) {
type &= ~ZEROPAD;
}
c = (type & ZEROPAD) ? '0' : ' ';
sign = 0;
if (type & SIGN) {
if (__n < 0) {
sign = '-';
__n = fabs(__n);
size--;
} else if (type & PLUS) {
sign = '+';
size--;
} else if (type & SPACE) {
sign = ' ';
size--;
}
}
frac = modf(__n,&intr);
// # flags forces a . and prevents trucation of trailing zero's
if ( precision > 0 ) {
//frac = modfl(__n,&intr);
i = precision-1;
while ( i >= 0 ) {
frac*=10.0L;
frac = modf(frac, &p);
buf[i] = (int)p + '0';
i--;
}
i = precision;
size -= precision;
ro = 0;
if ( frac > 0.5 ) {
ro = 1;
}
if ( precision >= 1 || type & SPECIAL) {
buf[i++] = '.';
size--;
}
}
if ( intr == 0.0 ) {
buf[i++] = '0';
size--;
}
else {
while ( intr > 0.0 ) {
p = intr;
intr/=10.0L;
modf(intr, &intr);
p -= 10.0*intr;
buf[i++] = (int)p + '0';
size--;
}
}
j = 0;
while ( j < i && ro == 1) {
if ( buf[j] >= '0' && buf[j] <= '8' ) {
buf[j]++;
ro = 0;
}
else if ( buf[j] == '9' ) {
buf[j] = '0';
}
j++;
}
if ( ro == 1 )
buf[i++] = '1';
buf[i] = 0;
size -= precision;
if (!(type&(ZEROPAD+LEFT)))
{
while(size-->0)
f += ' ';
}
if (sign)
{
f += sign;
}
if (!(type&(ZEROPAD+LEFT)))
while(size-->0)
{
f += ' ';
}
if (type & SPECIAL) {
}
if (!(type & LEFT))
while (size-- > 0)
{
f += c;
}
tmp = buf;
if ( type & ZEROTRUNC && ((type & SPECIAL) != SPECIAL) )
{
j = 0;
while ( j < i && ( *tmp == '0' || *tmp == '.' ))
{
tmp++;
i--;
}
}
// else
// while (i < precision--)
// putc('0', f);
while (i-- > 0)
{
f += tmp[i];
}
while (size-- > 0)
{
f += ' ';
}
}
return true;
}
static bool numberfl(std::string& f, long double __n, char exp_sign, int size, int precision, int type)
{
long double exponent = 0.0;
long double e;
long ie;
//int x;
char *buf, *tmp;
int i = 0;
int j = 0;
//int k = 0;
long double frac, intr;
long double p;
char sign;
char c;
char ro = 0;
int result;
union
{
long double* __n;
ieee_long_double_t* n;
} n;
n.__n = &__n;
if ( exp_sign == 'g' || exp_sign == 'G' || exp_sign == 'e' || exp_sign == 'E' ) {
ie = ((unsigned int)n.n->exponent - (unsigned int)0x3fff);
exponent = ie/3.321928;
}
if ( exp_sign == 'g' || exp_sign == 'G' ) {
type |= ZEROTRUNC;
if ( exponent < -4 || fabs(exponent) >= precision )
exp_sign -= 2; // g -> e and G -> E
}
if ( exp_sign == 'e' || exp_sign == 'E' ) {
frac = modfl(exponent,&e);
if ( frac > 0.5 )
e++;
else if ( frac < -0.5 )
e--;
result = numberf(f,__n/powl(10.0L,e),'f',size-4, precision, type);
if (result < 0)
return false;
f += exp_sign;
size--;
ie = (long)e;
type = LEFT | PLUS;
if ( ie < 0 )
type |= SIGN;
result = number(f,ie, 10,2, 2,type );
if (result < 0)
return false;
return true;
}
if ( exp_sign == 'f' )
{
buf = (char*)alloca(4096);
if (type & LEFT)
{
type &= ~ZEROPAD;
}
c = (type & ZEROPAD) ? '0' : ' ';
sign = 0;
if (type & SIGN)
{
if (__n < 0)
{
sign = '-';
__n = fabs(__n);
size--;
} else if (type & PLUS)
{
sign = '+';
size--;
} else if (type & SPACE)
{
sign = ' ';
size--;
}
}
frac = modfl(__n,&intr);
// # flags forces a . and prevents trucation of trailing zero's
if ( precision > 0 )
{
//frac = modfl(__n,&intr);
i = precision-1;
while ( i >= 0 )
{
frac*=10.0L;
frac = modfl((long double)frac, &p);
buf[i] = (int)p + '0';
i--;
}
i = precision;
size -= precision;
ro = 0;
if ( frac > 0.5 )
{
ro = 1;
}
if ( precision >= 1 || type & SPECIAL)
{
buf[i++] = '.';
size--;
}
}
if ( intr == 0.0 )
{
buf[i++] = '0';
size--;
}
else
{
while ( intr > 0.0 )
{
p=intr;
intr/=10.0L;
modfl(intr, &intr);
p -= 10.0L*intr;
buf[i++] = (int)p + '0';
size--;
}
}
j = 0;
while ( j < i && ro == 1) {
if ( buf[j] >= '0' && buf[j] <= '8' )
{
buf[j]++;
ro = 0;
}
else if ( buf[j] == '9' )
{
buf[j] = '0';
}
j++;
}
if ( ro == 1 )
buf[i++] = '1';
buf[i] = 0;
size -= precision;
if (!(type&(ZEROPAD+LEFT)))
{
while(size-->0)
f += ' ';
}
if (sign)
{
f += sign;
}
if (!(type&(ZEROPAD+LEFT)))
{
while(size-->0)
f += ' ';
}
if (type & SPECIAL) {
}
if (!(type & LEFT))
while (size-- > 0)
{
f += c;
}
tmp = buf;
if ( type & ZEROTRUNC && ((type & SPECIAL) != SPECIAL) )
{
j = 0;
while ( j < i && ( *tmp == '0' || *tmp == '.' ))
{
tmp++;
i--;
}
}
// else
// while (i < precision--)
// putc( '0', f);
while (i-- > 0)
{
f += tmp[i];
}
while (size-- > 0)
{
f += ' ';
}
}
return true;
}
static int string(std::string& f, const char* s, int len, int field_width, int precision, int flags)
{
int i, done = 0;
if (s == NULL)
{
s = "<NULL>";
len = 6;
}
else
{
if (len == -1)
{
len = 0;
while ((unsigned int)len < (unsigned int)precision && s[len])
len++;
}
else
{
if ((unsigned int)len > (unsigned int)precision)
len = precision;
}
}
if (!(flags & LEFT))
while (len < field_width--)
{
f += ' ';
done++;
}
for (i = 0; i < len; ++i)
{
f += *s++;
done++;
}
while (len < field_width--)
{
f += ' ';
done++;
}
return done;
}
static int stringw(std::string& f, const wchar_t* sw, int len, int field_width, int precision, int flags)
{
int i, done = 0;
if (sw == NULL)
{
sw = L"<NULL>";
len = 6;
}
else
{
if (len == -1)
{
len = 0;
while ((unsigned int)len < (unsigned int)precision && sw[len])
len++;
}
else
{
if ((unsigned int)len > (unsigned int)precision)
len = precision;
}
}
if (!(flags & LEFT))
while (len < field_width--)
{
f += ' ';
done++;
}
for (i = 0; i < len; ++i)
{
#define MY_MB_CUR_MAX 1
char mb[MY_MB_CUR_MAX];
int mbcount, j;
mbcount = wctomb(mb, *sw++);
if (mbcount <= 0)
{
break;
}
for (j = 0; j < mbcount; j++)
{
f += mb[j];
done++;
}
}
while (len < field_width--)
{
f += ' ';
done++;
}
return done;
}
#define _isnanl _isnan
#define _finitel _finite
std::string ssvprintf ( const char *fmt, va_list args )
{
ULONGLONG num;
int base;
long double _ldouble;
double _double;
const char *s;
const unsigned short* sw;
int result;
std::string f;
int flags; /* flags to number() */
int field_width; /* width of output field */
int precision; /* min. # of digits for integers; max
number of chars for from string */
int qualifier = 0; /* 'h', 'l', 'L' or 'I64' for integer fields */
for (; *fmt ; ++fmt)
{
if (*fmt != '%')
{
f += *fmt;
continue;
}
/* process flags */
flags = 0;
repeat:
++fmt; /* this also skips first '%' */
switch (*fmt) {
case '-': flags |= LEFT; goto repeat;
case '+': flags |= PLUS; goto repeat;
case ' ': flags |= SPACE; goto repeat;
case '#': flags |= SPECIAL; goto repeat;
case '0': flags |= ZEROPAD; goto repeat;
}
/* get field width */
field_width = -1;
if (isdigit(*fmt))
field_width = skip_atoi(&fmt);
else if (*fmt == '*') {
++fmt;
/* it's the next argument */
field_width = va_arg(args, int);
if (field_width < 0) {
field_width = -field_width;
flags |= LEFT;
}
}
/* get the precision */
precision = -1;
if (*fmt == '.') {
++fmt;
if (isdigit(*fmt))
precision = skip_atoi(&fmt);
else if (*fmt == '*') {
++fmt;
/* it's the next argument */
precision = va_arg(args, int);
}
if (precision < 0)
precision = 0;
}
/* get the conversion qualifier */
qualifier = 0;
// %Z can be just stand alone or as size_t qualifier
if ( *fmt == 'Z' ) {
qualifier = *fmt;
switch ( *(fmt+1)) {
case 'o':
case 'b':
case 'X':
case 'x':
case 'd':
case 'i':
case 'u':
++fmt;
break;
default:
break;
}
} else if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L' || *fmt == 'w') {
qualifier = *fmt;
++fmt;
} else if (*fmt == 'I' && *(fmt+1) == '6' && *(fmt+2) == '4') {
qualifier = *fmt;
fmt += 3;
}
// go fine with ll instead of L
if ( *fmt == 'l' ) {
++fmt;
qualifier = 'L';
}
/* default base */
base = 10;
switch (*fmt) {
case 'c':
if (!(flags & LEFT))
while (--field_width > 0)
{
f += ' ';
}
if (qualifier == 'l' || qualifier == 'w')
{
f += (char)(unsigned char)(wchar_t) va_arg(args,int);
}
else
{
f += (char)(unsigned char) va_arg(args,int);
}
while (--field_width > 0)
{
f += ' ';
}
continue;
case 'C':
if (!(flags & LEFT))
while (--field_width > 0)
{
f += ' ';
}
if (qualifier == 'h')
{
f += (char)(unsigned char) va_arg(args,int);
}
else
{
f += (char)(unsigned char)(wchar_t) va_arg(args,int);
}
while (--field_width > 0)
{
f += ' ';
}
continue;
case 's':
if (qualifier == 'l' || qualifier == 'w') {
/* print unicode string */
sw = va_arg(args, wchar_t *);
result = stringw(f, sw, -1, field_width, precision, flags);
} else {
/* print ascii string */
s = va_arg(args, char *);
result = string(f, s, -1, field_width, precision, flags);
}
if (result < 0)
{
assert(!"TODO FIXME handle error better");
return f;
}
continue;
case 'S':
if (qualifier == 'h') {
/* print ascii string */
s = va_arg(args, char *);
result = string(f, s, -1, field_width, precision, flags);
} else {
/* print unicode string */
sw = va_arg(args, wchar_t *);
result = stringw(f, sw, -1, field_width, precision, flags);
}
if (result < 0)
{
assert(!"TODO FIXME handle error better");
return f;
}
continue;
/*case 'Z':
if (qualifier == 'w') {
// print counted unicode string
PUNICODE_STRING pus = va_arg(args, PUNICODE_STRING);
if ((pus == NULL) || (pus->Buffer == NULL)) {
sw = NULL;
len = -1;
} else {
sw = pus->Buffer;
len = pus->Length / sizeof(WCHAR);
}
result = stringw(f, sw, len, field_width, precision, flags);
} else {
// print counted ascii string
PANSI_STRING pas = va_arg(args, PANSI_STRING);
if ((pas == NULL) || (pas->Buffer == NULL)) {
s = NULL;
len = -1;
} else {
s = pas->Buffer;
len = pas->Length;
}
result = string(f, s, -1, field_width, precision, flags);
}
if (result < 0)
return -1;
continue;*/
case 'e':
case 'E':
case 'f':
case 'g':
case 'G':
if (qualifier == 'l' || qualifier == 'L' ) {
_ldouble = va_arg(args, long double);
if ( _isnanl(_ldouble) )
{
f += "Nan";
}
else if ( !_finitel(_ldouble) )
{
if ( _ldouble < 0 )
f += "-Inf";
else
f += "+Inf";
} else {
if ( precision == -1 )
precision = 6;
result = numberfl(f,_ldouble,*fmt,field_width,precision,flags);
if (result < 0)
{
assert(!"TODO FIXME handle error better");
return f;
}
}
} else {
_double = (double)va_arg(args, double);
if ( _isnan(_double) )
{
f += "Nan";
}
else if ( !_finite(_double) )
{
if ( _double < 0 )
f += "-Inf";
else
f += "+Inf";
}
else
{
if ( precision == -1 )
precision = 6;
result = numberf(f,_double,*fmt,field_width,precision,flags);
if (result < 0)
{
assert(!"TODO FIXME handle error better");
return f;
}
}
}
continue;
case 'p':
if (field_width == -1) {
field_width = 2*sizeof(void *);
flags |= ZEROPAD;
}
result = number(f,
(unsigned long) va_arg(args, void *), 16,
field_width, precision, flags);
if (result < 0)
{
assert(!"TODO FIXME handle error better");
return f;
}
continue;
case 'n':
if (qualifier == 'l') {
long * ip = va_arg(args, long *);
*ip = 0;
} else {
int * ip = va_arg(args, int *);
*ip = 0;
}
continue;
/* integer number formats - set up the flags and "break" */
case 'o':
base = 8;
break;
case 'b':
base = 2;
break;
case 'X':
flags |= LARGE;
case 'x':
base = 16;
break;
case 'd':
case 'i':
flags |= SIGN;
case 'u':
break;
default:
if (*fmt != '%')
{
f += '%';
}
if (*fmt)
{
f += *fmt;
}
else
--fmt;
continue;
}
if (qualifier == 'I')
num = va_arg(args, ULONGLONG);
else if (qualifier == 'l') {
if (flags & SIGN)
num = va_arg(args, long);
else
num = va_arg(args, unsigned long);
}
else if (qualifier == 'h') {
if (flags & SIGN)
num = va_arg(args, int);
else
num = va_arg(args, unsigned int);
}
else if (flags & SIGN)
num = va_arg(args, int);
else
num = va_arg(args, unsigned int);
result = number(f, num, base, field_width, precision, flags);
if (result < 0)
{
assert(!"TODO FIXME handle error better");
return f;
}
}
//putc('\0',f);
return f;
}

View File

@@ -0,0 +1,12 @@
// ssprintf.h
#ifndef SSPRINTF_H
#define SSPRINTF_H
#include <string>
#include <stdarg.h>
std::string ssprintf ( const char* fmt, ... );
std::string ssvprintf ( const char* fmt, va_list args );
#endif//SSPRINTF_H

View File

@@ -0,0 +1,654 @@
RPC_NT_ALREADY_LISTENING
RPC_NT_ALREADY_REGISTERED
RPC_NT_CALL_FAILED
RPC_NT_CALL_FAILED_DNE
RPC_NT_CANT_CREATE_ENDPOINT
RPC_NT_INVALID_BINDING
RPC_NT_INVALID_ENDPOINT_FORMAT
RPC_NT_INVALID_NETWORK_OPTIONS
RPC_NT_INVALID_NET_ADDR
RPC_NT_INVALID_RPC_PROTSEQ
RPC_NT_INVALID_STRING_BINDING
RPC_NT_INVALID_STRING_UUID
RPC_NT_INVALID_TIMEOUT
RPC_NT_NOT_LISTENING
RPC_NT_NO_BINDINGS
RPC_NT_NO_CALL_ACTIVE
RPC_NT_NO_ENDPOINT_FOUND
RPC_NT_NO_PROTSEQS
RPC_NT_NO_PROTSEQS_REGISTERED
RPC_NT_OBJECT_NOT_FOUND
RPC_NT_OUT_OF_RESOURCES
RPC_NT_PROTOCOL_ERROR
RPC_NT_PROTSEQ_NOT_SUPPORTED
RPC_NT_SERVER_TOO_BUSY
RPC_NT_SERVER_UNAVAILABLE
RPC_NT_SS_IN_NULL_CONTEXT
RPC_NT_TYPE_ALREADY_REGISTERED
RPC_NT_UNKNOWN_IF
RPC_NT_UNKNOWN_MGR_TYPE
RPC_NT_WRONG_KIND_OF_BINDING
STATUS_ABANDONED
STATUS_ABANDONED_WAIT_0
STATUS_ABANDONED_WAIT_63
STATUS_ABIOS_INVALID_COMMAND
STATUS_ABIOS_INVALID_LID
STATUS_ABIOS_INVALID_SELECTOR
STATUS_ABIOS_LID_ALREADY_OWNED
STATUS_ABIOS_LID_NOT_EXIST
STATUS_ABIOS_NOT_LID_OWNER
STATUS_ABIOS_NOT_PRESENT
STATUS_ABIOS_SELECTOR_NOT_AVAILABLE
STATUS_ACCESS_DENIED
STATUS_ACCESS_VIOLATION
STATUS_ACCOUNT_DISABLED
STATUS_ACCOUNT_EXPIRED
STATUS_ACCOUNT_LOCKED_OUT
STATUS_ACCOUNT_RESTRICTION
STATUS_ADAPTER_HARDWARE_ERROR
STATUS_ADDRESS_ALREADY_ASSOCIATED
STATUS_ADDRESS_ALREADY_EXISTS
STATUS_ADDRESS_CLOSED
STATUS_ADDRESS_NOT_ASSOCIATED
STATUS_AGENTS_EXHAUSTED
STATUS_ALERTED
STATUS_ALIAS_EXISTS
STATUS_ALLOCATE_BUCKET
STATUS_ALLOTTED_SPACE_EXCEEDED
STATUS_ALREADY_COMMITTED
STATUS_ALREADY_DISCONNECTED
STATUS_ALREADY_WIN32
STATUS_APP_INIT_FAILURE
STATUS_ARBITRATION_UNHANDLED
STATUS_ARRAY_BOUNDS_EXCEEDED
STATUS_AUDIT_FAILED
STATUS_BACKUP_CONTROLLER
STATUS_BAD_COMPRESSION_BUFFER
STATUS_BAD_CURRENT_DIRECTORY
STATUS_BAD_DESCRIPTOR_FORMAT
STATUS_BAD_DEVICE_TYPE
STATUS_BAD_DLL_ENTRYPOINT
STATUS_BAD_FUNCTION_TABLE
STATUS_BAD_IMPERSONATION_LEVEL
STATUS_BAD_INHERITANCE_ACL
STATUS_BAD_INITIAL_PC
STATUS_BAD_INITIAL_STACK
STATUS_BAD_LOGON_SESSION_STATE
STATUS_BAD_MASTER_BOOT_RECORD
STATUS_BAD_NETWORK_NAME
STATUS_BAD_NETWORK_PATH
STATUS_BAD_REMOTE_ADAPTER
STATUS_BAD_SERVICE_ENTRYPOINT
STATUS_BAD_STACK
STATUS_BAD_TOKEN_TYPE
STATUS_BAD_VALIDATION_CLASS
STATUS_BAD_WORKING_SET_LIMIT
STATUS_BEGINNING_OF_MEDIA
STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT
STATUS_BREAKPOINT
STATUS_BUFFER_OVERFLOW
STATUS_BUFFER_TOO_SMALL
STATUS_BUS_RESET
STATUS_CANCELLED
STATUS_CANNOT_DELETE
STATUS_CANNOT_IMPERSONATE
STATUS_CANNOT_LOAD_REGISTRY_FILE
STATUS_CANT_ACCESS_DOMAIN_INFO
STATUS_CANT_DISABLE_MANDATORY
STATUS_CANT_OPEN_ANONYMOUS
STATUS_CANT_TERMINATE_SELF
STATUS_CANT_WAIT
STATUS_CARDBUS_NOT_SUPPORTED
STATUS_CHECKING_FILE_SYSTEM
STATUS_CHILD_MUST_BE_VOLATILE
STATUS_CLIENT_SERVER_PARAMETERS_INVALID
STATUS_COMMITMENT_LIMIT
STATUS_CONFLICTING_ADDRESSES
STATUS_CONNECTION_ABORTED
STATUS_CONNECTION_ACTIVE
STATUS_CONNECTION_COUNT_LIMIT
STATUS_CONNECTION_DISCONNECTED
STATUS_CONNECTION_INVALID
STATUS_CONNECTION_IN_USE
STATUS_CONNECTION_REFUSED
STATUS_CONNECTION_RESET
STATUS_CONTROL_C_EXIT
STATUS_CONVERT_TO_LARGE
STATUS_COULD_NOT_INTERPRET
STATUS_CRC_ERROR
STATUS_CTL_FILE_NOT_SUPPORTED
STATUS_DATATYPE_MISALIGNMENT
STATUS_DATA_ERROR
STATUS_DATA_LATE_ERROR
STATUS_DATA_NOT_ACCEPTED
STATUS_DATA_OVERRUN
STATUS_DEBUG_ATTACH_FAILED
STATUS_DELETE_PENDING
STATUS_DEVICE_ALREADY_ATTACHED
STATUS_DEVICE_BUSY
STATUS_DEVICE_CONFIGURATION_ERROR
STATUS_DEVICE_DATA_ERROR
STATUS_DEVICE_DOES_NOT_EXIST
STATUS_DEVICE_NOT_CONNECTED
STATUS_DEVICE_NOT_PARTITIONED
STATUS_DEVICE_NOT_READY
STATUS_DEVICE_OFF_LINE
STATUS_DEVICE_PAPER_EMPTY
STATUS_DEVICE_POWERED_OFF
STATUS_DEVICE_POWER_FAILURE
STATUS_DEVICE_PROTOCOL_ERROR
STATUS_DFS_EXIT_PATH_FOUND
STATUS_DFS_UNAVAILABLE
STATUS_DIRECTORY_NOT_EMPTY
STATUS_DISK_CORRUPT_ERROR
STATUS_DISK_FULL
STATUS_DISK_OPERATION_FAILED
STATUS_DISK_RECALIBRATE_FAILED
STATUS_DISK_RESET_FAILED
STATUS_DLL_INIT_FAILED
STATUS_DLL_INIT_FAILED_LOGOFF
STATUS_DLL_NOT_FOUND
STATUS_DOMAIN_CONTROLLER_NOT_FOUND
STATUS_DOMAIN_CTRLR_CONFIG_ERROR
STATUS_DOMAIN_EXISTS
STATUS_DOMAIN_LIMIT_EXCEEDED
STATUS_DOMAIN_TRUST_INCONSISTENT
STATUS_DRIVER_CANCEL_TIMEOUT
STATUS_DRIVER_ENTRYPOINT_NOT_FOUND
STATUS_DRIVER_INTERNAL_ERROR
STATUS_DRIVER_ORDINAL_NOT_FOUND
STATUS_DRIVER_UNABLE_TO_LOAD
STATUS_DUPLICATE_NAME
STATUS_DUPLICATE_OBJECTID
STATUS_EAS_NOT_SUPPORTED
STATUS_EA_CORRUPT_ERROR
STATUS_EA_LIST_INCONSISTENT
STATUS_EA_TOO_LARGE
STATUS_END_OF_FILE
STATUS_END_OF_MEDIA
STATUS_ENTRYPOINT_NOT_FOUND
STATUS_EOM_OVERFLOW
STATUS_EVALUATION_EXPIRATION
STATUS_EVENTLOG_CANT_START
STATUS_EVENTLOG_FILE_CHANGED
STATUS_EVENTLOG_FILE_CORRUPT
STATUS_EVENT_DONE
STATUS_EVENT_PENDING
STATUS_EXTRANEOUS_INFORMATION
STATUS_FAIL_CHECK
STATUS_FATAL_APP_EXIT
STATUS_FILEMARK_DETECTED
STATUS_FILES_OPEN
STATUS_FILE_CLOSED
STATUS_FILE_CORRUPT_ERROR
STATUS_FILE_DELETED
STATUS_FILE_FORCED_CLOSED
STATUS_FILE_INVALID
STATUS_FILE_IS_A_DIRECTORY
STATUS_FILE_IS_OFFLINE
STATUS_FILE_LOCK_CONFLICT
STATUS_FILE_RENAMED
STATUS_FLOAT_DENORMAL_OPERAND
STATUS_FLOAT_DIVIDE_BY_ZERO
STATUS_FLOAT_INEXACT_RESULT
STATUS_FLOAT_INVALID_OPERATION
STATUS_FLOAT_OVERFLOW
STATUS_FLOAT_STACK_CHECK
STATUS_FLOAT_UNDERFLOW
STATUS_FLOPPY_BAD_REGISTERS
STATUS_FLOPPY_ID_MARK_NOT_FOUND
STATUS_FLOPPY_UNKNOWN_ERROR
STATUS_FLOPPY_VOLUME
STATUS_FLOPPY_WRONG_CYLINDER
STATUS_FOUND_OUT_OF_SCOPE
STATUS_FREE_VM_NOT_AT_BASE
STATUS_FS_DRIVER_REQUIRED
STATUS_FT_MISSING_MEMBER
STATUS_FT_ORPHANING
STATUS_FT_READ_RECOVERING_FROM_BACKUP
STATUS_FT_WRITE_RECOVERY
STATUS_FULLSCREEN_MODE
STATUS_GENERIC_NOT_MAPPED
STATUS_GRACEFUL_DISCONNECT
STATUS_GROUP_EXISTS
STATUS_GUARD_PAGE_VIOLATION
STATUS_GUIDS_EXHAUSTED
STATUS_GUID_SUBSTITUTION_MADE
STATUS_HANDLES_CLOSED
STATUS_HANDLE_NOT_CLOSABLE
STATUS_HOST_UNREACHABLE
STATUS_ILLEGAL_CHARACTER
STATUS_ILLEGAL_DLL_RELOCATION
STATUS_ILLEGAL_FLOAT_CONTEXT
STATUS_ILLEGAL_FUNCTION
STATUS_ILLEGAL_INSTRUCTION
STATUS_ILL_FORMED_PASSWORD
STATUS_ILL_FORMED_SERVICE_ENTRY
STATUS_IMAGE_ALREADY_LOADED
STATUS_IMAGE_CHECKSUM_MISMATCH
STATUS_IMAGE_MACHINE_TYPE_MISMATCH
STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE
STATUS_IMAGE_MP_UP_MISMATCH
STATUS_IMAGE_NOT_AT_BASE
STATUS_INCOMPATIBLE_FILE_MAP
STATUS_INFO_LENGTH_MISMATCH
STATUS_INSTANCE_NOT_AVAILABLE
STATUS_INSTRUCTION_MISALIGNMENT
STATUS_INSUFFICIENT_LOGON_INFO
STATUS_INSUFFICIENT_RESOURCES
STATUS_INSUFF_SERVER_RESOURCES
STATUS_INTEGER_DIVIDE_BY_ZERO
STATUS_INTEGER_OVERFLOW
STATUS_INTERNAL_DB_CORRUPTION
STATUS_INTERNAL_DB_ERROR
STATUS_INTERNAL_ERROR
STATUS_INVALID_ACCOUNT_NAME
STATUS_INVALID_ACL
STATUS_INVALID_ADDRESS
STATUS_INVALID_ADDRESS_COMPONENT
STATUS_INVALID_ADDRESS_WILDCARD
STATUS_INVALID_BLOCK_LENGTH
STATUS_INVALID_BUFFER_SIZE
STATUS_INVALID_CID
STATUS_INVALID_COMPUTER_NAME
STATUS_INVALID_CONNECTION
STATUS_INVALID_DEVICE_REQUEST
STATUS_INVALID_DEVICE_STATE
STATUS_INVALID_DISPOSITION
STATUS_INVALID_DOMAIN_ROLE
STATUS_INVALID_DOMAIN_STATE
STATUS_INVALID_EA_FLAG
STATUS_INVALID_EA_NAME
STATUS_INVALID_FILE_FOR_SECTION
STATUS_INVALID_GROUP_ATTRIBUTES
STATUS_INVALID_HANDLE
STATUS_INVALID_HW_PROFILE
STATUS_INVALID_ID_AUTHORITY
STATUS_INVALID_IMAGE_FORMAT
STATUS_INVALID_IMAGE_LE_FORMAT
STATUS_INVALID_IMAGE_NE_FORMAT
STATUS_INVALID_IMAGE_NOT_MZ
STATUS_INVALID_IMAGE_PROTECT
STATUS_INVALID_IMAGE_WIN_16
STATUS_INVALID_INFO_CLASS
STATUS_INVALID_LDT_DESCRIPTOR
STATUS_INVALID_LDT_OFFSET
STATUS_INVALID_LDT_SIZE
STATUS_INVALID_LEVEL
STATUS_INVALID_LOCK_SEQUENCE
STATUS_INVALID_LOGON_HOURS
STATUS_INVALID_LOGON_TYPE
STATUS_INVALID_MEMBER
STATUS_INVALID_NETWORK_RESPONSE
STATUS_INVALID_OPLOCK_PROTOCOL
STATUS_INVALID_OWNER
STATUS_INVALID_PAGE_PROTECTION
STATUS_INVALID_PARAMETER
STATUS_INVALID_PARAMETER_1
STATUS_INVALID_PARAMETER_10
STATUS_INVALID_PARAMETER_11
STATUS_INVALID_PARAMETER_12
STATUS_INVALID_PARAMETER_2
STATUS_INVALID_PARAMETER_3
STATUS_INVALID_PARAMETER_4
STATUS_INVALID_PARAMETER_5
STATUS_INVALID_PARAMETER_6
STATUS_INVALID_PARAMETER_7
STATUS_INVALID_PARAMETER_8
STATUS_INVALID_PARAMETER_9
STATUS_INVALID_PARAMETER_MIX
STATUS_INVALID_PIPE_STATE
STATUS_INVALID_PLUGPLAY_DEVICE_PATH
STATUS_INVALID_PORT_ATTRIBUTES
STATUS_INVALID_PORT_HANDLE
STATUS_INVALID_PRIMARY_GROUP
STATUS_INVALID_QUOTA_LOWER
STATUS_INVALID_READ_MODE
STATUS_INVALID_SECURITY_DESCR
STATUS_INVALID_SERVER_STATE
STATUS_INVALID_SID
STATUS_INVALID_SUB_AUTHORITY
STATUS_INVALID_SYSTEM_SERVICE
STATUS_INVALID_UNWIND_TARGET
STATUS_INVALID_USER_BUFFER
STATUS_INVALID_VARIANT
STATUS_INVALID_VIEW_SIZE
STATUS_INVALID_VLM_OPERATION
STATUS_INVALID_VOLUME_LABEL
STATUS_INVALID_WORKSTATION
STATUS_IN_PAGE_ERROR
STATUS_IO_DEVICE_ERROR
STATUS_IO_PRIVILEGE_FAILED
STATUS_IO_REPARSE_DATA_INVALID
STATUS_IO_REPARSE_TAG_INVALID
STATUS_IO_REPARSE_TAG_MISMATCH
STATUS_IO_REPARSE_TAG_NOT_HANDLED
STATUS_IO_TIMEOUT
STATUS_IP_ADDRESS_CONFLICT1
STATUS_IP_ADDRESS_CONFLICT2
STATUS_KERNEL_APC
STATUS_KEY_DELETED
STATUS_KEY_HAS_CHILDREN
STATUS_LAST_ADMIN
STATUS_LICENSE_QUOTA_EXCEEDED
STATUS_LICENSE_VIOLATION
STATUS_LINK_FAILED
STATUS_LINK_TIMEOUT
STATUS_LM_CROSS_ENCRYPTION_REQUIRED
STATUS_LOCAL_DISCONNECT
STATUS_LOCAL_USER_SESSION_KEY
STATUS_LOCK_NOT_GRANTED
STATUS_LOGIN_TIME_RESTRICTION
STATUS_LOGIN_WKSTA_RESTRICTION
STATUS_LOGON_FAILURE
STATUS_LOGON_NOT_GRANTED
STATUS_LOGON_SERVER_CONFLICT
STATUS_LOGON_SESSION_COLLISION
STATUS_LOGON_SESSION_EXISTS
STATUS_LOGON_TYPE_NOT_GRANTED
STATUS_LOG_FILE_FULL
STATUS_LOG_HARD_ERROR
STATUS_LONGJUMP
STATUS_LOST_WRITEBEHIND_DATA
STATUS_LPC_REPLY_LOST
STATUS_LUIDS_EXHAUSTED
STATUS_MAPPED_ALIGNMENT
STATUS_MAPPED_FILE_SIZE_ZERO
STATUS_MARSHALL_OVERFLOW
STATUS_MEDIA_CHANGED
STATUS_MEDIA_CHECK
STATUS_MEDIA_WRITE_PROTECTED
STATUS_MEMBERS_PRIMARY_GROUP
STATUS_MEMBER_IN_ALIAS
STATUS_MEMBER_IN_GROUP
STATUS_MEMBER_NOT_IN_ALIAS
STATUS_MEMBER_NOT_IN_GROUP
STATUS_MEMORY_NOT_ALLOCATED
STATUS_MESSAGE_NOT_FOUND
STATUS_MISSING_SYSTEMFILE
STATUS_MORE_ENTRIES
STATUS_MORE_PROCESSING_REQUIRED
STATUS_MUTANT_LIMIT_EXCEEDED
STATUS_MUTANT_NOT_OWNED
STATUS_NAME_TOO_LONG
STATUS_NETLOGON_NOT_STARTED
STATUS_NETWORK_ACCESS_DENIED
STATUS_NETWORK_BUSY
STATUS_NETWORK_CREDENTIAL_CONFLICT
STATUS_NETWORK_NAME_DELETED
STATUS_NETWORK_UNREACHABLE
STATUS_NET_WRITE_FAULT
STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT
STATUS_NOLOGON_SERVER_TRUST_ACCOUNT
STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT
STATUS_NONCONTINUABLE_EXCEPTION
STATUS_NONEXISTENT_EA_ENTRY
STATUS_NONEXISTENT_SECTOR
STATUS_NONE_MAPPED
STATUS_NOTIFY_CLEANUP
STATUS_NOTIFY_ENUM_DIR
STATUS_NOT_ALL_ASSIGNED
STATUS_NOT_A_DIRECTORY
STATUS_NOT_A_REPARSE_POINT
STATUS_NOT_CLIENT_SESSION
STATUS_NOT_COMMITTED
STATUS_NOT_FOUND
STATUS_NOT_IMPLEMENTED
STATUS_NOT_LOCKED
STATUS_NOT_LOGON_PROCESS
STATUS_NOT_MAPPED_DATA
STATUS_NOT_MAPPED_VIEW
STATUS_NOT_REGISTRY_FILE
STATUS_NOT_SAME_DEVICE
STATUS_NOT_SERVER_SESSION
STATUS_NOT_SUPPORTED
STATUS_NOT_TINY_STREAM
STATUS_NO_BROWSER_SERVERS_FOUND
STATUS_NO_CALLBACK_ACTIVE
STATUS_NO_DATA_DETECTED
STATUS_NO_EAS_ON_FILE
STATUS_NO_EVENT_PAIR
STATUS_NO_GUID_TRANSLATION
STATUS_NO_IMPERSONATION_TOKEN
STATUS_NO_INHERITANCE
STATUS_NO_LDT
STATUS_NO_LOGON_SERVERS
STATUS_NO_LOG_SPACE
STATUS_NO_MATCH
STATUS_NO_MEDIA
STATUS_NO_MEDIA_IN_DEVICE
STATUS_NO_MEMORY
STATUS_NO_MORE_EAS
STATUS_NO_MORE_ENTRIES
STATUS_NO_MORE_FILES
STATUS_NO_MORE_MATCHES
STATUS_NO_PAGEFILE
STATUS_NO_QUOTAS_NO_ACCOUNT
STATUS_NO_SECURITY_ON_OBJECT
STATUS_NO_SPOOL_SPACE
STATUS_NO_SUCH_ALIAS
STATUS_NO_SUCH_DEVICE
STATUS_NO_SUCH_DOMAIN
STATUS_NO_SUCH_FILE
STATUS_NO_SUCH_GROUP
STATUS_NO_SUCH_LOGON_SESSION
STATUS_NO_SUCH_MEMBER
STATUS_NO_SUCH_PACKAGE
STATUS_NO_SUCH_PRIVILEGE
STATUS_NO_SUCH_USER
STATUS_NO_TOKEN
STATUS_NO_TRUST_LSA_SECRET
STATUS_NO_TRUST_SAM_ACCOUNT
STATUS_NO_USER_SESSION_KEY
STATUS_NO_YIELD_PERFORMED
STATUS_NT_CROSS_ENCRYPTION_REQUIRED
STATUS_NULL_LM_PASSWORD
STATUS_OBJECTID_EXISTS
STATUS_OBJECT_EXISTS
STATUS_OBJECT_NAME_COLLISION
STATUS_OBJECT_NAME_EXISTS
STATUS_OBJECT_NAME_INVALID
STATUS_OBJECT_NAME_NOT_FOUND
STATUS_OBJECT_PATH_INVALID
STATUS_OBJECT_PATH_NOT_FOUND
STATUS_OBJECT_PATH_SYNTAX_BAD
STATUS_OBJECT_TYPE_MISMATCH
STATUS_OPEN_FAILED
STATUS_OPLOCK_BREAK_IN_PROCESS
STATUS_OPLOCK_NOT_GRANTED
STATUS_ORDINAL_NOT_FOUND
STATUS_PAGEFILE_CREATE_FAILED
STATUS_PAGEFILE_QUOTA
STATUS_PAGEFILE_QUOTA_EXCEEDED
STATUS_PARITY_ERROR
STATUS_PARTIAL_COPY
STATUS_PARTITION_FAILURE
STATUS_PASSWORD_EXPIRED
STATUS_PASSWORD_MUST_CHANGE
STATUS_PASSWORD_RESTRICTION
STATUS_PATH_NOT_COVERED
STATUS_PENDING
STATUS_PIPE_BROKEN
STATUS_PIPE_BUSY
STATUS_PIPE_CLOSING
STATUS_PIPE_CONNECTED
STATUS_PIPE_DISCONNECTED
STATUS_PIPE_EMPTY
STATUS_PIPE_LISTENING
STATUS_PIPE_NOT_AVAILABLE
STATUS_PLUGPLAY_NO_DEVICE
STATUS_PORT_ALREADY_SET
STATUS_PORT_CONNECTION_REFUSED
STATUS_PORT_DISCONNECTED
STATUS_PORT_MESSAGE_TOO_LONG
STATUS_PORT_UNREACHABLE
STATUS_POSSIBLE_DEADLOCK
STATUS_PREDEFINED_HANDLE
STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED
STATUS_PRINT_CANCELLED
STATUS_PRINT_QUEUE_FULL
STATUS_PRIVILEGED_INSTRUCTION
STATUS_PRIVILEGE_NOT_HELD
STATUS_PROCEDURE_NOT_FOUND
STATUS_PROCESS_IN_JOB
STATUS_PROCESS_IS_TERMINATING
STATUS_PROCESS_NOT_IN_JOB
STATUS_PROFILING_AT_LIMIT
STATUS_PROFILING_NOT_STARTED
STATUS_PROFILING_NOT_STOPPED
STATUS_PROPSET_NOT_FOUND
STATUS_PROTOCOL_UNREACHABLE
STATUS_PWD_HISTORY_CONFLICT
STATUS_PWD_TOO_RECENT
STATUS_PWD_TOO_SHORT
STATUS_QUOTA_EXCEEDED
STATUS_QUOTA_LIST_INCONSISTENT
STATUS_RANGE_LIST_CONFLICT
STATUS_RANGE_NOT_FOUND
STATUS_RANGE_NOT_LOCKED
STATUS_RECEIVE_EXPEDITED
STATUS_RECEIVE_PARTIAL
STATUS_RECEIVE_PARTIAL_EXPEDITED
STATUS_RECOVERY_FAILURE
STATUS_REDIRECTOR_HAS_OPEN_HANDLES
STATUS_REDIRECTOR_NOT_STARTED
STATUS_REDIRECTOR_PAUSED
STATUS_REDIRECTOR_STARTED
STATUS_REGISTRY_CORRUPT
STATUS_REGISTRY_IO_FAILED
STATUS_REGISTRY_QUOTA_LIMIT
STATUS_REGISTRY_RECOVERED
STATUS_REMOTE_DISCONNECT
STATUS_REMOTE_NOT_LISTENING
STATUS_REMOTE_RESOURCES
STATUS_REMOTE_SESSION_LIMIT
STATUS_REPARSE
STATUS_REPLY_MESSAGE_MISMATCH
STATUS_REQUEST_ABORTED
STATUS_REQUEST_NOT_ACCEPTED
STATUS_RESOURCE_DATA_NOT_FOUND
STATUS_RESOURCE_LANG_NOT_FOUND
STATUS_RESOURCE_NAME_NOT_FOUND
STATUS_RESOURCE_NOT_OWNED
STATUS_RESOURCE_TYPE_NOT_FOUND
STATUS_RETRY
STATUS_REVISION_MISMATCH
STATUS_RXACT_COMMITTED
STATUS_RXACT_COMMIT_FAILURE
STATUS_RXACT_COMMIT_NECESSARY
STATUS_RXACT_INVALID_STATE
STATUS_RXACT_STATE_CREATED
STATUS_SAM_INIT_FAILURE
STATUS_SECRET_TOO_LONG
STATUS_SECTION_NOT_EXTENDED
STATUS_SECTION_NOT_IMAGE
STATUS_SECTION_PROTECTION
STATUS_SECTION_TOO_BIG
STATUS_SEGMENT_NOTIFICATION
STATUS_SEMAPHORE_LIMIT_EXCEEDED
STATUS_SERIAL_COUNTER_TIMEOUT
STATUS_SERIAL_MORE_WRITES
STATUS_SERIAL_NO_DEVICE_INITED
STATUS_SERVER_DISABLED
STATUS_SERVER_HAS_OPEN_HANDLES
STATUS_SERVER_NOT_DISABLED
STATUS_SERVICE_NOTIFICATION
STATUS_SETMARK_DETECTED
STATUS_SHARED_IRQ_BUSY
STATUS_SHARING_PAUSED
STATUS_SHARING_VIOLATION
STATUS_SINGLE_STEP
STATUS_SOME_NOT_MAPPED
STATUS_SPECIAL_ACCOUNT
STATUS_SPECIAL_GROUP
STATUS_SPECIAL_USER
STATUS_STACK_OVERFLOW
STATUS_STACK_OVERFLOW_READ
STATUS_SUCCESS
STATUS_SUSPEND_COUNT_EXCEEDED
STATUS_SYNCHRONIZATION_REQUIRED
STATUS_SYSTEM_PROCESS_TERMINATED
STATUS_THREAD_IS_TERMINATING
STATUS_THREAD_NOT_IN_PROCESS
STATUS_THREAD_WAS_SUSPENDED
STATUS_TIMEOUT
STATUS_TIMER_NOT_CANCELED
STATUS_TIMER_RESOLUTION_NOT_SET
STATUS_TIMER_RESUME_IGNORED
STATUS_TIME_DIFFERENCE_AT_DC
STATUS_TOKEN_ALREADY_IN_USE
STATUS_TOO_LATE
STATUS_TOO_MANY_ADDRESSES
STATUS_TOO_MANY_COMMANDS
STATUS_TOO_MANY_CONTEXT_IDS
STATUS_TOO_MANY_GUIDS_REQUESTED
STATUS_TOO_MANY_LINKS
STATUS_TOO_MANY_LUIDS_REQUESTED
STATUS_TOO_MANY_NAMES
STATUS_TOO_MANY_NODES
STATUS_TOO_MANY_OPENED_FILES
STATUS_TOO_MANY_PAGING_FILES
STATUS_TOO_MANY_SECRETS
STATUS_TOO_MANY_SESSIONS
STATUS_TOO_MANY_SIDS
STATUS_TOO_MANY_THREADS
STATUS_TRANSACTION_ABORTED
STATUS_TRANSACTION_INVALID_ID
STATUS_TRANSACTION_INVALID_TYPE
STATUS_TRANSACTION_NO_MATCH
STATUS_TRANSACTION_NO_RELEASE
STATUS_TRANSACTION_RESPONDED
STATUS_TRANSACTION_TIMED_OUT
STATUS_TRUSTED_DOMAIN_FAILURE
STATUS_TRUSTED_RELATIONSHIP_FAILURE
STATUS_TRUST_FAILURE
STATUS_UNABLE_TO_DECOMMIT_VM
STATUS_UNABLE_TO_DELETE_SECTION
STATUS_UNABLE_TO_FREE_VM
STATUS_UNABLE_TO_LOCK_MEDIA
STATUS_UNABLE_TO_UNLOAD_MEDIA
STATUS_UNDEFINED_CHARACTER
STATUS_UNEXPECTED_IO_ERROR
STATUS_UNEXPECTED_MM_CREATE_ERR
STATUS_UNEXPECTED_MM_EXTEND_ERR
STATUS_UNEXPECTED_MM_MAP_ERROR
STATUS_UNEXPECTED_NETWORK_ERROR
STATUS_UNHANDLED_EXCEPTION
STATUS_UNKNOWN_REVISION
STATUS_UNMAPPABLE_CHARACTER
STATUS_UNRECOGNIZED_MEDIA
STATUS_UNRECOGNIZED_VOLUME
STATUS_UNSUCCESSFUL
STATUS_UNSUPPORTED_COMPRESSION
STATUS_UNWIND
STATUS_USER_APC
STATUS_USER_EXISTS
STATUS_USER_MAPPED_FILE
STATUS_USER_SESSION_DELETED
STATUS_VALIDATE_CONTINUE
STATUS_VARIABLE_NOT_FOUND
STATUS_VDM_HARD_ERROR
STATUS_VERIFY_REQUIRED
STATUS_VIRTUAL_CIRCUIT_CLOSED
STATUS_VOLUME_DISMOUNTED
STATUS_VOLUME_MOUNTED
STATUS_WAIT_0
STATUS_WAIT_63
STATUS_WAKE_SYSTEM_DEBUGGER
STATUS_WAS_LOCKED
STATUS_WAS_UNLOCKED
STATUS_WORKING_SET_LIMIT_RANGE
STATUS_WORKING_SET_QUOTA
STATUS_WRONG_PASSWORD
STATUS_WRONG_PASSWORD_CORE
STATUS_WRONG_VOLUME
STATUS_WX86_BREAKPOINT
STATUS_WX86_CONTINUE
STATUS_WX86_CREATEWX86TIB
STATUS_WX86_EXCEPTION_CHAIN
STATUS_WX86_EXCEPTION_CONTINUE
STATUS_WX86_EXCEPTION_LASTCHANCE
STATUS_WX86_FLOAT_STACK_CHECK
STATUS_WX86_INTERNAL_ERROR
STATUS_WX86_SINGLE_STEP
STATUS_WX86_UNSIMULATE

View File

@@ -0,0 +1,7 @@
FAST_MUTEX
KPCR
PEB
TEB
SPINLOCK
APC
DPC

View File

@@ -0,0 +1,73 @@
What do you think I am, your personal tech support?
You *know* a %stru% is non-re-entrant, right?
The answer to that is so simple, I'm not going to waste my time telling you.
Well, of course... if you're not below DISPATCH_LEVEL, ros is gonna explode on ya when you try to do that ( duh! ).
I don't think that functionality has been implemented, yet.
What do you mean it crashed? It can't crash there!
Wow. That's a new one.
Ask %dev%, I bet he knows.. he knows everything...
When's the last time you rebuilt?
Have you tried a make clean?
Is it plugged in?
Well it works on *my* system :P
Well don't do that, and you won't have that problem.
Didn't we already fix that?
Well... I don't know.. I just have that code disabled in my tree.
Try surrounding it with parenthesis.
Don't you know going around dereferncing null pointers all day can be hazardous to your health?
Well, duh!
There's a bit in cr3 for problems like that.
Just add a field to the %stru% to keep track of it!
Don't worry about it... the garbage collector in %module% will clean it up for you.
Did I do that?
Didn't %dev% fix that already?
Yes, I think I've seen that bug before... no... that was another program.
I could tell you, but then I'd have to unlink() you.
Well if you'd get some sleep, maybe you'd figure it out... not all of us can keep the hours %dev% can...
You did what? Uh oh... that can't be good.
Well... I could tell you, but the answer's pretty complicated. Why don't you wait to read about it in the book I'm writing.
Yeah, that's happened to me, before, too. All you have to do is wrap it in an SEH block and forget about it.
Just put a NULL dereference in there and commit it. It helps get bugs fixed fast! (Not that I would know)
ASSERT is your friend!
I dunno.. but I bet %dev% could find it for you.
I hereby declare that code is perfect. Your problem must be elsewhere.
I wrote that code... it must be perfect.
$#@!$ One of these days I'm gonna throw %module% out the window!!! Sorry, what were you saying?
maybe I broke it in my last commit. Maybe I did it on purpose...
Have you tried debugging it? I got a can of Raid...
Just delete it, it can't be that important ( You should see all the useless cruft I got rid of in %module% )
Try queueing a work item...
My %stru% fell in love with some %stru% in %module%, and %module% has been hell since...
Maybe the PEB is getting corrupted. Try allocating a new PEB and overwriting the old one. That's what I did last time I had a bug like that.
Hmm.. that seems to have been introduced by my last commit... I bet CVS mixed up the bits during the commit.
It can't possibly be my fault, so I don't care.
I'm not experiencing that problem, perhaps it's all in your mind.
Well... like a good friend of mine said... "Don't Panic!"
It just shows you how far ReactOS has come along! A %period% ago a bug like that wouldn't have even been possible!
Just surround the code with an #if 0/#endif block, it solves all my problems!
You know.. if %dev% would just finish %module% for us, we wouldn't be having this problem.
I say we move on to the next function, since we can't seem to figure this one out.
Well, sure, that would have been my first guess, too.... TEN YEARS AGO :p
yup, that sounds like a problem.
If I wanted to talk about VB, I'd go bug Alex...
ask %dev%
Thank you for that amazingly keen insight, Commander Obvious.
Sorry, can't help you right now, trying to track down this bug %dev% caused in %module%
I dont know about that, but I just fixed a problem in %module% for %dev%
How should I know? I'm still trying to figure out this main() thing... ooh! wanna see what I did in %module%?
lol!
*wink*
;)
42
It's gonna take me over %period% to fix all %dev%'s bugs in %module% :(
How could %func% return %status%!? It bet %dev% broke it! I didn't touch it... honest! no.. really! (me hides)
It's fine if you get %status% there ... just ignore the destruction, and call %func% instead.
%dev% said %status% isn't really an error in this context because we expect %module% to be toast by now
heh, I'm still trying to figure out why %func% is returning %status% when I call it from %module%...
%dev% said it's okay to ignore that as long as you're below %irql%
erm, what do you mean?
damn, I do that all the time
if you want a reply that sounds right, I'd say that %func% support for that is vital to the future of %module%
Sounds like you're having a problem with %func%. I hate that thing... don't talk to me about it.
Just return %status% and forget about it. Someone else will fix it, later.
Blah blah blah... sheesh... can't you figure out *anything*?

View File

@@ -0,0 +1,17 @@
// trim.cpp
// This file is (C) 2004 Royce Mitchell III
// and released under the BSD & LGPL licenses
#include "trim.h"
std::string trim ( const std::string& s )
{
const char* p = &s[0];
const char* p2 = p + s.size();
while ( *p == ' ' )
p++;
while ( p2 > p && p2[-1] == ' ' )
p2--;
return std::string ( p, p2-p );
}

13
irc/ArchBlackmann/trim.h Normal file
View File

@@ -0,0 +1,13 @@
// trim.h
// This file is (C) 2004 Royce Mitchell III
// and released under the BSD & LGPL licenses
#ifndef TRIM_H
#define TRIM_H
#include <string>
std::string trim ( const std::string& s );
#endif//TRIM_H

1000
irc/ArchBlackmann/type.txt Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,37 @@
// verify.h
// This code is (C) 2003-2004 Royce Mitchell III
// and released under the LGPL & BSD licenses
#ifndef VERIFY_H
#define VERIFY_H
//#include <assert.h>
#ifdef ASSERT
#undef ASSERT
#endif//ASSERT
#include "panic.h"
#if defined(DEBUG) || defined(_DEBUG)
inline void AssertHandler ( bool b, const char* str )
{
if ( !b )
panic ( str );
}
# define ASSERT(x) AssertHandler((x) ? true : false, #x )
#else
# define ASSERT(x)
#endif
#ifdef verify
#undef verify
#endif//verify
#if defined(DEBUG) || defined(_DEBUG)
# define verify(x) ASSERT(x)
#else
# define verify(x) x
#endif
#endif//VERIFY_H

View File

@@ -0,0 +1,32 @@
using System.Reflection;
using System.Runtime.CompilerServices;
// Information about this assembly is defined by the following
// attributes.
//
// change them to the information which is associated with the assembly
// you compile.
[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// The assembly version has following format :
//
// Major.Minor.Build.Revision
//
// You can specify all values by your own or you can build default build and revision
// numbers with the '*' character (the default):
[assembly: AssemblyVersion("1.0.*")]
// The following attributes specify the key for the sign of your assembly. See the
// .NET Framework documentation for more information about signing.
// This is not required, if you don't want signing let these attributes like they're.
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]

View File

@@ -0,0 +1,274 @@
using System;
using System.Collections;
using System.IO;
using System.Text;
using System.Globalization;
namespace HtmlHelp.ChmDecoding
{
/// <summary>
/// The class <c>BinaryReaderHelp</c> implements static helper methods for extracting binary data
/// from a binary reader object.
/// </summary>
internal class BinaryReaderHelp
{
/// <summary>
/// Internal helper method to extract null-terminated strings from a binary reader
/// </summary>
/// <param name="binReader">reference to the binary reader</param>
/// <param name="offset">offset in the stream</param>
/// <param name="noOffset">true if the offset value should be used</param>
/// <param name="encoder">encoder used for text encoding</param>
/// <returns>An extracted string value</returns>
internal static string ExtractString(ref BinaryReader binReader, int offset, bool noOffset, Encoding encoder)
{
string strReturn = "";
if(encoder == null)
encoder = Encoding.ASCII;
ArrayList nameBytes = new ArrayList();
byte curByte;
if(!noOffset)
binReader.BaseStream.Seek(offset, SeekOrigin.Begin);
if(binReader.BaseStream.Position >= binReader.BaseStream.Length)
return "";
curByte = binReader.ReadByte();
while( (curByte != (byte)0) && (binReader.BaseStream.Position < binReader.BaseStream.Length) )
{
nameBytes.Add( curByte );
curByte = binReader.ReadByte();
}
byte[] name = (byte[]) (nameBytes.ToArray(System.Type.GetType("System.Byte")));
strReturn = encoder.GetString(name,0,name.Length);
return strReturn;
}
/// <summary>
/// Internal helper method to extract a string with a specific length from the binary reader
/// </summary>
/// <param name="binReader">reference to the binary reader</param>
/// <param name="length">length of the string (number of bytes)</param>
/// <param name="offset">offset in the stream</param>
/// <param name="noOffset">true if the offset value should be used</param>
/// <param name="encoder">encoder used for text encoding</param>
/// <returns>An extracted string value</returns>
internal static string ExtractString(ref BinaryReader binReader, int length, int offset, bool noOffset, Encoding encoder)
{
string strReturn = "";
if(length == 0)
return "";
if(encoder == null)
encoder = Encoding.ASCII;
ArrayList nameBytes = new ArrayList();
byte curByte;
if(!noOffset)
binReader.BaseStream.Seek(offset, SeekOrigin.Begin);
if(binReader.BaseStream.Position >= binReader.BaseStream.Length)
return "";
curByte = binReader.ReadByte();
while( (curByte != (byte)0) && (nameBytes.Count < length) && (binReader.BaseStream.Position < binReader.BaseStream.Length) )
{
nameBytes.Add( curByte );
if(nameBytes.Count < length)
curByte = binReader.ReadByte();
}
byte[] name = (byte[]) (nameBytes.ToArray(System.Type.GetType("System.Byte")));
strReturn = encoder.GetString(name,0,name.Length);
return strReturn;
}
/// <summary>
/// Internal helper method to extract a string with a specific length from the binary reader
/// </summary>
/// <param name="binReader">reference to the binary reader</param>
/// <param name="bFoundTerminator">reference to a bool vairable which will receive true if the
/// string terminator \0 was found. false indicates that the end of the stream was reached.</param>
/// <param name="offset">offset in the stream</param>
/// <param name="noOffset">true if the offset value should be used</param>
/// <param name="encoder">encoder used for text encoding</param>
/// <returns>An extracted string value</returns>
internal static string ExtractString(ref BinaryReader binReader, ref bool bFoundTerminator, int offset, bool noOffset, Encoding encoder)
{
string strReturn = "";
ArrayList nameBytes = new ArrayList();
byte curByte;
if(encoder == null)
encoder = Encoding.ASCII;
if(!noOffset)
binReader.BaseStream.Seek(offset, SeekOrigin.Begin);
if(binReader.BaseStream.Position >= binReader.BaseStream.Length)
return "";
curByte = binReader.ReadByte();
while( (curByte != (byte)0) && (binReader.BaseStream.Position < binReader.BaseStream.Length) )
{
nameBytes.Add( curByte );
curByte = binReader.ReadByte();
if( curByte == (byte)0 )
{
bFoundTerminator = true;
}
}
byte[] name = (byte[]) (nameBytes.ToArray(System.Type.GetType("System.Byte")));
strReturn = encoder.GetString(name,0,name.Length);
return strReturn;
}
/// <summary>
/// Internal helper method to extract a null-terminated UTF-16/UCS-2 strings from a binary reader
/// </summary>
/// <param name="binReader">reference to the binary reader</param>
/// <param name="offset">offset in the stream</param>
/// <param name="noOffset">true if the offset value should be used</param>
/// <param name="encoder">encoder used for text encoding</param>
/// <returns>An extracted string value</returns>
internal static string ExtractUTF16String(ref BinaryReader binReader, int offset, bool noOffset, Encoding encoder)
{
string strReturn = "";
ArrayList nameBytes = new ArrayList();
byte curByte;
int lastByte=-1;
if(!noOffset)
binReader.BaseStream.Seek(offset, SeekOrigin.Begin);
if(binReader.BaseStream.Position >= binReader.BaseStream.Length)
return "";
if(encoder == null)
encoder = Encoding.Unicode;
curByte = binReader.ReadByte();
int nCnt = 0;
while( ((curByte != (byte)0) || (lastByte != 0) ) && (binReader.BaseStream.Position < binReader.BaseStream.Length) )
{
nameBytes.Add( curByte );
if(nCnt%2 == 0)
lastByte = (int)curByte;
curByte = binReader.ReadByte();
nCnt++;
}
byte[] name = (byte[]) (nameBytes.ToArray(System.Type.GetType("System.Byte")));
strReturn = Encoding.Unicode.GetString(name,0,name.Length);
// apply text encoding
name = Encoding.Default.GetBytes(strReturn);
strReturn = encoder.GetString(name,0,name.Length);
return strReturn;
}
/// <summary>
/// Internal helper for reading ENCINT encoded integer values
/// </summary>
/// <param name="binReader">reference to the reader</param>
/// <returns>a long value</returns>
internal static long ReadENCINT(ref BinaryReader binReader)
{
long nRet = 0;
byte buffer = 0;
int shift = 0;
if(binReader.BaseStream.Position >= binReader.BaseStream.Length)
return nRet;
do
{
buffer = binReader.ReadByte();
nRet |= ((long)((buffer & (byte)0x7F))) << shift;
shift += 7;
}while ( (buffer & (byte)0x80) != 0);
return nRet;
}
/// <summary>
/// Reads an s/r encoded value from the byte array and decodes it into an integer
/// </summary>
/// <param name="wclBits">a byte array containing all bits (contains only 0 or 1 elements)</param>
/// <param name="s">scale param for encoding</param>
/// <param name="r">root param for encoding</param>
/// <param name="nBitIndex">current index in the wclBits array</param>
/// <returns>Returns an decoded integer value.</returns>
internal static int ReadSRItem(byte[] wclBits, int s, int r, ref int nBitIndex)
{
int nRet = 0;
int q = r;
int nPref1Cnt = 0;
while( wclBits[nBitIndex++] == 1)
{
nPref1Cnt++;
}
if(nPref1Cnt == 0)
{
int nMask = 0;
for(int nbits=0; nbits<q;nbits++)
{
nMask |= ( 0x01 & (int)wclBits[nBitIndex]) << (q-nbits-1);
nBitIndex++;
}
nRet = nMask;
}
else
{
q += (nPref1Cnt-1);
int nMask = 0;
int nRMaxValue = 0;
for(int nbits=0; nbits<q;nbits++)
{
nMask |= ( 0x01 & (int)wclBits[nBitIndex]) << (q-nbits-1);
nBitIndex++;
}
for(int nsv=0; nsv<r; nsv++)
{
nRMaxValue = nRMaxValue << 1;
nRMaxValue |= 0x1;
}
nRMaxValue++; // startvalue of s/r encoding with 1 prefixing '1'
nRMaxValue *= (int) Math.Pow((double)2, (double)(nPref1Cnt-1));
nRet = nRMaxValue + nMask;
}
return nRet;
}
}
}

View File

@@ -0,0 +1,325 @@
using System;
using System.IO;
using System.Collections;
using System.Collections.Specialized;
namespace HtmlHelp.ChmDecoding
{
/// <summary>
/// The class <c>CHMBtree</c> implements methods/properties to decode the binary help index.
/// This class automatically creates an index arraylist for the current CHMFile instance.
/// It does not store the index internally !
/// </summary>
/// <remarks>The binary index can be found in the storage file $WWKeywordLinks/BTree</remarks>
internal sealed class CHMBtree : IDisposable
{
/// <summary>
/// Constant specifying the size of the string blocks
/// </summary>
private const int BLOCK_SIZE = 2048;
/// <summary>
/// Internal flag specifying if the object is going to be disposed
/// </summary>
private bool disposed = false;
/// <summary>
/// Internal member storing the binary file data
/// </summary>
private byte[] _binaryFileData = null;
/// <summary>
/// Internal member storing flags
/// </summary>
private int _flags = 0;
/// <summary>
/// Internal member storing the data format
/// </summary>
private byte[] _dataFormat = new byte[16];
/// <summary>
/// Internal member storing the index of the last listing block
/// </summary>
private int _indexOfLastListingBlock = 0;
/// <summary>
/// Internal member storing the index of the root block
/// </summary>
private int _indexOfRootBlock = 0;
/// <summary>
/// Internal member storing the number of blocks
/// </summary>
private int _numberOfBlocks = 0;
/// <summary>
/// Internal member storing the tree depth.
/// (1 if no index blocks, 2 one level of index blocks, ...)
/// </summary>
private int _treeDepth = 0;
/// <summary>
/// Internal member storing the number of keywords in the file
/// </summary>
private int _numberOfKeywords = 0;
/// <summary>
/// Internal member storing the codepage
/// </summary>
private int _codePage = 0;
/// <summary>
/// true if the index is from a CHI or CHM file, else CHW
/// </summary>
private bool _isCHI_CHM = true;
/// <summary>
/// Internal member storing the associated chmfile object
/// </summary>
private CHMFile _associatedFile = null;
/// <summary>
/// Internal flag specifying if we have to read listing or index blocks
/// </summary>
private bool _readListingBlocks = true;
/// <summary>
/// Internal member storing an indexlist of the current file.
/// </summary>
private ArrayList _indexList = new ArrayList();
/// <summary>
/// Constructor of the class
/// </summary>
/// <param name="binaryFileData">binary file data of the $WWKeywordLinks/BTree file</param>
/// <param name="associatedFile">associated chm file</param>
public CHMBtree(byte[] binaryFileData, CHMFile associatedFile)
{
if( associatedFile == null)
{
throw new ArgumentException("CHMBtree.ctor() - Associated CHMFile must not be null !", "associatedFile");
}
_binaryFileData = binaryFileData;
_associatedFile = associatedFile;
DecodeData();
// clear internal binary data after extraction
_binaryFileData = null;
}
/// <summary>
/// Decodes the binary file data and fills the internal properties
/// </summary>
/// <returns>true if succeeded</returns>
private bool DecodeData()
{
bool bRet = true;
MemoryStream memStream = new MemoryStream(_binaryFileData);
BinaryReader binReader = new BinaryReader(memStream);
int nCurOffset = 0;
int nTemp = 0;
// decode header
binReader.ReadChars(2); // 2chars signature (not important)
_flags = (int)binReader.ReadInt16(); // WORD flags
binReader.ReadInt16(); // size of blocks (always 2048)
_dataFormat = binReader.ReadBytes(16);
binReader.ReadInt32(); // unknown DWORD
_indexOfLastListingBlock = binReader.ReadInt32();
_indexOfRootBlock = binReader.ReadInt32();
binReader.ReadInt32(); // unknown DWORD
_numberOfBlocks = binReader.ReadInt32();
_treeDepth = binReader.ReadInt16();
_numberOfKeywords = binReader.ReadInt32();
_codePage = binReader.ReadInt32();
binReader.ReadInt32(); // lcid DWORD
nTemp = binReader.ReadInt32();
_isCHI_CHM = (nTemp==1);
binReader.ReadInt32(); // unknown DWORD
binReader.ReadInt32(); // unknown DWORD
binReader.ReadInt32(); // unknown DWORD
binReader.ReadInt32(); // unknown DWORD
// end of header decode
while( (memStream.Position < memStream.Length) && (bRet) )
{
nCurOffset = (int)memStream.Position;
byte [] dataBlock = binReader.ReadBytes(BLOCK_SIZE);
bRet &= DecodeBlock(dataBlock, ref nCurOffset, _treeDepth-1);
}
return bRet;
}
/// <summary>
/// Decodes a block of url-string data
/// </summary>
/// <param name="dataBlock">block of data</param>
/// <param name="nOffset">current file offset</param>
/// <param name="indexBlocks">number of index blocks</param>
/// <returns>true if succeeded</returns>
private bool DecodeBlock( byte[] dataBlock, ref int nOffset, int indexBlocks )
{
bool bRet = true;
int nblockOffset = nOffset;
MemoryStream memStream = new MemoryStream(dataBlock);
BinaryReader binReader = new BinaryReader(memStream);
int freeSpace = binReader.ReadInt16(); // length of freespace
int nrOfEntries = binReader.ReadInt16(); // number of entries
bool bListingEndReached = false;
//while( (memStream.Position < (memStream.Length-freeSpace)) && (bRet) )
//{
int nIndexOfPrevBlock = -1;
int nIndexOfNextBlock = -1;
int nIndexOfChildBlock = 0;
if(_readListingBlocks)
{
nIndexOfPrevBlock = binReader.ReadInt32(); // -1 if this is the header
nIndexOfNextBlock = binReader.ReadInt32(); // -1 if this is the last block
}
else
{
nIndexOfChildBlock = binReader.ReadInt32();
}
for(int nE = 0; nE < nrOfEntries; nE++)
{
if(_readListingBlocks)
{
bListingEndReached = (nIndexOfNextBlock==-1);
string keyWord = BinaryReaderHelp.ExtractUTF16String(ref binReader, 0, true, _associatedFile.TextEncoding);
bool isSeeAlsoKeyword = (binReader.ReadInt16()!=0);
int indent = binReader.ReadInt16(); // indent of entry
int nCharIndex = binReader.ReadInt32();
binReader.ReadInt32();
int numberOfPairs = binReader.ReadInt32();
int[] nTopics = new int[numberOfPairs];
string[] seeAlso = new string[numberOfPairs];
for(int i=0; i < numberOfPairs; i++)
{
if(isSeeAlsoKeyword)
{
seeAlso[i] = BinaryReaderHelp.ExtractUTF16String(ref binReader, 0, true, _associatedFile.TextEncoding);
}
else
{
nTopics[i] = binReader.ReadInt32();
}
}
binReader.ReadInt32(); // unknown
int nIndexOfThisEntry = binReader.ReadInt32();
IndexItem newItem = new IndexItem(_associatedFile, keyWord, isSeeAlsoKeyword, indent, nCharIndex, nIndexOfThisEntry, seeAlso, nTopics);
_indexList.Add(newItem);
}
else
{
string keyWord = BinaryReaderHelp.ExtractUTF16String(ref binReader, 0, true, _associatedFile.TextEncoding);
bool isSeeAlsoKeyword = (binReader.ReadInt16()!=0);
int indent = binReader.ReadInt16(); // indent of entry
int nCharIndex = binReader.ReadInt32();
binReader.ReadInt32();
int numberOfPairs = binReader.ReadInt32();
int[] nTopics = new int[numberOfPairs];
string[] seeAlso = new string[numberOfPairs];
for(int i=0; i < numberOfPairs; i++)
{
if(isSeeAlsoKeyword)
{
seeAlso[i] = BinaryReaderHelp.ExtractUTF16String(ref binReader, 0, true, _associatedFile.TextEncoding);
}
else
{
nTopics[i] = binReader.ReadInt32();
}
}
int nIndexChild = binReader.ReadInt32();
int nIndexOfThisEntry=-1;
IndexItem newItem = new IndexItem(_associatedFile, keyWord, isSeeAlsoKeyword, indent, nCharIndex, nIndexOfThisEntry, seeAlso, nTopics);
_indexList.Add(newItem);
}
}
//}
binReader.ReadBytes(freeSpace);
if( bListingEndReached )
_readListingBlocks = false;
return bRet;
}
/// <summary>
/// Gets the internal generated index list
/// </summary>
internal ArrayList IndexList
{
get { return _indexList; }
}
/// <summary>
/// Implement IDisposable.
/// </summary>
public void Dispose()
{
Dispose(true);
// This object will be cleaned up by the Dispose method.
// Therefore, you should call GC.SupressFinalize to
// take this object off the finalization queue
// and prevent finalization code for this object
// from executing a second time.
GC.SuppressFinalize(this);
}
/// <summary>
/// Dispose(bool disposing) executes in two distinct scenarios.
/// If disposing equals true, the method has been called directly
/// or indirectly by a user's code. Managed and unmanaged resources
/// can be disposed.
/// If disposing equals false, the method has been called by the
/// runtime from inside the finalizer and you should not reference
/// other objects. Only unmanaged resources can be disposed.
/// </summary>
/// <param name="disposing">disposing flag</param>
private void Dispose(bool disposing)
{
// Check to see if Dispose has already been called.
if(!this.disposed)
{
// If disposing equals true, dispose all managed
// and unmanaged resources.
if(disposing)
{
// Dispose managed resources.
_binaryFileData = null;
}
}
disposed = true;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,286 @@
using System;
using System.Collections;
using System.IO;
namespace HtmlHelp.ChmDecoding
{
/// <summary>
/// The class <c>CHMIdxhdr</c> implements t properties which have been read from the #IDXHDR file.
/// </summary>
internal sealed class CHMIdxhdr : IDisposable
{
/// <summary>
/// Internal flag specifying if the object is going to be disposed
/// </summary>
private bool disposed = false;
/// <summary>
/// Internal member storing the binary file data
/// </summary>
private byte[] _binaryFileData = null;
/// <summary>
/// Internal member storing the number of topic nodes including the contents and index files
/// </summary>
private int _numberOfTopicNodes = 0;
/// <summary>
/// Internal member storing the offset in the #STRINGS file of the ImageList param of the "text/site properties" object of the sitemap contents
/// </summary>
private int _imageListOffset = 0;
/// <summary>
/// True if the value of the ImageType param of the "text/site properties" object of the sitemap contents is "Folder".
/// </summary>
private bool _imageTypeFolder = false;
/// <summary>
/// Internal member storing the background value
/// </summary>
private int _background = 0;
/// <summary>
/// Internal member storing the foreground value
/// </summary>
private int _foreground = 0;
/// <summary>
/// Internal member storing the offset in the #STRINGS file of the Font param of the "text/site properties" object of the sitemap contents
/// </summary>
private int _fontOffset = 0;
/// <summary>
/// Internal member storing the offset in the #STRINGS file of the FrameName param of the "text/site properties" object of the sitemap contents
/// </summary>
private int _frameNameOffset = 0;
/// <summary>
/// Internal member storing the offset in the #STRINGS file of the WindowName param of the "text/site properties" object of the sitemap contents
/// </summary>
private int _windowNameOffset = 0;
/// <summary>
/// Internal member storing the number of merged files
/// </summary>
private int _numberOfMergedFiles = 0;
/// <summary>
/// Internal member storing the offset in the #STRINGS file of the merged file names
/// </summary>
private ArrayList _mergedFileOffsets = new ArrayList();
/// <summary>
/// Internal member storing the associated chmfile object
/// </summary>
private CHMFile _associatedFile = null;
/// <summary>
/// Constructor of the class
/// </summary>
/// <param name="binaryFileData">binary file data of the #IDXHDR file</param>
/// <param name="associatedFile">associated CHMFile instance</param>
public CHMIdxhdr(byte[] binaryFileData, CHMFile associatedFile)
{
_binaryFileData = binaryFileData;
_associatedFile = associatedFile;
DecodeData();
}
/// <summary>
/// Decodes the binary file data and fills the internal properties
/// </summary>
/// <returns>true if succeeded</returns>
private bool DecodeData()
{
bool bRet = true;
MemoryStream memStream = new MemoryStream(_binaryFileData);
BinaryReader binReader = new BinaryReader(memStream);
int nTemp = 0;
// 4 character T#SM
binReader.ReadBytes(4);
// unknown timestamp DWORD
nTemp = binReader.ReadInt32();
// unknown 1
nTemp = binReader.ReadInt32();
// number of topic nodes including the contents & index files
_numberOfTopicNodes = binReader.ReadInt32();
// unknown DWORD
nTemp = binReader.ReadInt32();
// offset in the strings file
_imageListOffset = binReader.ReadInt32();
if( _imageListOffset == 0)
_imageListOffset = -1; // 0/-1 = none
// unknown DWORD
nTemp = binReader.ReadInt32();
// 1 if the value of the ImageType param of the "text/site properties" object of the sitemap contents is "Folder".
nTemp = binReader.ReadInt32();
_imageTypeFolder = (nTemp == 1);
// offset in the strings file
_background = binReader.ReadInt32();
// offset in the strings file
_foreground = binReader.ReadInt32();
// offset in the strings file
_fontOffset = binReader.ReadInt32();
// window styles DWORD
nTemp = binReader.ReadInt32();
// window styles DWORD
nTemp = binReader.ReadInt32();
// unknown DWORD
nTemp = binReader.ReadInt32();
// offset in the strings file
_frameNameOffset = binReader.ReadInt32();
if( _frameNameOffset == 0)
_frameNameOffset = -1; // 0/-1 = none
// offset in the strings file
_windowNameOffset = binReader.ReadInt32();
if( _windowNameOffset == 0)
_windowNameOffset = -1; // 0/-1 = none
// informations types DWORD
nTemp = binReader.ReadInt32();
// unknown DWORD
nTemp = binReader.ReadInt32();
// number of merged files in the merged file list DWORD
_numberOfMergedFiles = binReader.ReadInt32();
nTemp = binReader.ReadInt32();
for(int i = 0; i < _numberOfMergedFiles; i++)
{
// DWORD offset value of merged file
nTemp = binReader.ReadInt32();
if(nTemp > 0)
_mergedFileOffsets.Add(nTemp);
}
return bRet;
}
/// <summary>
/// Gets the number of topic nodes including the contents and index files
/// </summary>
public int NumberOfTopicNodes
{
get { return _numberOfTopicNodes; }
}
/// <summary>
/// Gets the offset in the #STRINGS file of the ImageList
/// param of the "text/site properties" object of the sitemap contents
/// </summary>
public int ImageListOffset
{
get { return _imageListOffset; }
}
/// <summary>
/// True if the value of the ImageType param of the
/// "text/site properties" object of the sitemap contents is "Folder".
/// </summary>
/// <remarks>If this is set to true, the help will display folders instead of books</remarks>
public bool ImageTypeFolder
{
get { return _imageTypeFolder; }
}
/// <summary>
/// Gets the background setting
/// </summary>
public int Background
{
get { return _background; }
}
/// <summary>
/// Gets the foreground setting
/// </summary>
public int Foreground
{
get { return _foreground; }
}
/// <summary>
/// Gets the offset in the #STRINGS file of the Font
/// param of the "text/site properties" object of the sitemap contents
/// </summary>
public int WindowNameOffset
{
get { return _fontOffset; }
}
/// <summary>
/// Gets the offset in the #STRINGS file of the FrameName
/// param of the "text/site properties" object of the sitemap contents
/// </summary>
public int FrameNameOffset
{
get { return _frameNameOffset; }
}
/// <summary>
/// Gets the offset in the #STRINGS file of the WindowName
/// param of the "text/site properties" object of the sitemap contents
/// </summary>
public int FontOffset
{
get { return _windowNameOffset; }
}
/// <summary>
/// Gets an array list of offset numbers in the #STRINGS file of the
/// merged file names.
/// </summary>
public ArrayList MergedFileOffsets
{
get { return _mergedFileOffsets; }
}
/// <summary>
/// Implement IDisposable.
/// </summary>
public void Dispose()
{
Dispose(true);
// This object will be cleaned up by the Dispose method.
// Therefore, you should call GC.SupressFinalize to
// take this object off the finalization queue
// and prevent finalization code for this object
// from executing a second time.
GC.SuppressFinalize(this);
}
/// <summary>
/// Dispose(bool disposing) executes in two distinct scenarios.
/// If disposing equals true, the method has been called directly
/// or indirectly by a user's code. Managed and unmanaged resources
/// can be disposed.
/// If disposing equals false, the method has been called by the
/// runtime from inside the finalizer and you should not reference
/// other objects. Only unmanaged resources can be disposed.
/// </summary>
/// <param name="disposing">disposing flag</param>
private void Dispose(bool disposing)
{
// Check to see if Dispose has already been called.
if(!this.disposed)
{
// If disposing equals true, dispose all managed
// and unmanaged resources.
if(disposing)
{
// Dispose managed resources.
_binaryFileData = null;
_mergedFileOffsets = null;
}
}
disposed = true;
}
}
}

View File

@@ -0,0 +1,256 @@
using System;
using System.IO;
using System.Collections;
using System.Collections.Specialized;
namespace HtmlHelp.ChmDecoding
{
/// <summary>
/// The class <c>CHMStrings</c> implements a string collection read from the #STRINGS file
/// </summary>
internal sealed class CHMStrings : IDisposable
{
/// <summary>
/// Constant specifying the size of the string blocks
/// </summary>
private const int STRING_BLOCK_SIZE = 4096;
/// <summary>
/// Internal flag specifying if the object is going to be disposed
/// </summary>
private bool disposed = false;
/// <summary>
/// Internal member storing the binary file data
/// </summary>
private byte[] _binaryFileData = null;
/// <summary>
/// Internal member storing the string dictionary
/// </summary>
private Hashtable _stringDictionary = new Hashtable();
/// <summary>
/// Internal member storing the associated chmfile object
/// </summary>
private CHMFile _associatedFile = null;
/// <summary>
/// Constructor of the class
/// </summary>
/// <param name="binaryFileData">binary file data of the #STRINGS file</param>
/// <param name="associatedFile">associated chm file</param>
public CHMStrings(byte[] binaryFileData, CHMFile associatedFile)
{
_binaryFileData = binaryFileData;
_associatedFile = associatedFile;
DecodeData();
}
/// <summary>
/// Standard constructor
/// </summary>
internal CHMStrings()
{
}
#region Data dumping
/// <summary>
/// Dump the class data to a binary writer
/// </summary>
/// <param name="writer">writer to write the data</param>
internal void Dump(ref BinaryWriter writer)
{
writer.Write( _stringDictionary.Count );
if (_stringDictionary.Count != 0)
{
IDictionaryEnumerator iDictionaryEnumerator = _stringDictionary.GetEnumerator();
while (iDictionaryEnumerator.MoveNext())
{
DictionaryEntry dictionaryEntry = (DictionaryEntry)iDictionaryEnumerator.Current;
writer.Write( Int32.Parse(dictionaryEntry.Key.ToString()) );
writer.Write( dictionaryEntry.Value.ToString() );
}
}
}
/// <summary>
/// Reads the object data from a dump store
/// </summary>
/// <param name="reader">reader to read the data</param>
internal void ReadDump(ref BinaryReader reader)
{
int nCnt = reader.ReadInt32();
for(int i=0; i<nCnt;i++)
{
int nKey = reader.ReadInt32();
string sValue = reader.ReadString();
_stringDictionary[nKey.ToString()] = sValue;
}
}
/// <summary>
/// Sets the associated CHMFile instance
/// </summary>
/// <param name="associatedFile">instance to set</param>
internal void SetCHMFile(CHMFile associatedFile)
{
_associatedFile = associatedFile;
}
#endregion
/// <summary>
/// Decodes the binary file data and fills the internal properties
/// </summary>
/// <returns>true if succeeded</returns>
private bool DecodeData()
{
bool bRet = true;
MemoryStream memStream = new MemoryStream(_binaryFileData);
BinaryReader binReader = new BinaryReader(memStream);
//binReader.ReadByte(); // file starts with a NULL character for 0-based offset indexing
int nStringOffset = 0;
int nSubsetOffset = 0;
while( (memStream.Position < memStream.Length) && (bRet) )
{
nStringOffset = (int)memStream.Position;
byte [] stringBlock = binReader.ReadBytes(STRING_BLOCK_SIZE);
bRet &= DecodeBlock(stringBlock, ref nStringOffset, ref nSubsetOffset);
}
return bRet;
}
/// <summary>
/// Decodes a string block
/// </summary>
/// <param name="stringBlock">byte array which represents the string block</param>
/// <param name="nStringOffset">current string offset number</param>
/// <param name="nSubsetOffset">reference to a subset variable</param>
/// <returns>true if succeeded</returns>
/// <remarks>If a string crosses the end of a block then it will be cut off
/// without a NT and repeated in full, with a NT, at the start of the next block.
/// For eg "To customize the appearance of a contents file" might become
/// "To customize the (block ending)To customize the appearance of a contents file"
/// when there are 17 bytes left at the end of the block. </remarks>
private bool DecodeBlock( byte[] stringBlock, ref int nStringOffset, ref int nSubsetOffset)
{
bool bRet = true;
MemoryStream memStream = new MemoryStream(stringBlock);
BinaryReader binReader = new BinaryReader(memStream);
while( (memStream.Position < memStream.Length) && (bRet) )
{
bool bFoundTerminator = false;
int nCurOffset = nStringOffset + (int)memStream.Position;
string sTemp = BinaryReaderHelp.ExtractString(ref binReader, ref bFoundTerminator, 0, true, _associatedFile.TextEncoding);
if(nSubsetOffset != 0)
{
_stringDictionary[nSubsetOffset.ToString()] = sTemp.ToString();
}
else
{
_stringDictionary[nCurOffset.ToString()] = sTemp.ToString();
}
if( bFoundTerminator )
{
nSubsetOffset = 0;
}
else
{
nSubsetOffset = nCurOffset;
}
}
return bRet;
}
/// <summary>
/// Indexer which returns the string at a given offset
/// </summary>
public string this[int offset]
{
get
{
if(offset == -1)
return String.Empty;
string sTemp = (string)_stringDictionary[ offset.ToString() ];
if(sTemp == null)
return String.Empty;
return sTemp;
}
}
/// <summary>
/// Indexer which returns the string at a given offset
/// </summary>
public string this[string offset]
{
get
{
if(offset == "-1")
return String.Empty;
string sTemp = (string)_stringDictionary[ offset ];
if(sTemp == null)
return String.Empty;
return sTemp;
}
}
/// <summary>
/// Implement IDisposable.
/// </summary>
public void Dispose()
{
Dispose(true);
// This object will be cleaned up by the Dispose method.
// Therefore, you should call GC.SupressFinalize to
// take this object off the finalization queue
// and prevent finalization code for this object
// from executing a second time.
GC.SuppressFinalize(this);
}
/// <summary>
/// Dispose(bool disposing) executes in two distinct scenarios.
/// If disposing equals true, the method has been called directly
/// or indirectly by a user's code. Managed and unmanaged resources
/// can be disposed.
/// If disposing equals false, the method has been called by the
/// runtime from inside the finalizer and you should not reference
/// other objects. Only unmanaged resources can be disposed.
/// </summary>
/// <param name="disposing">disposing flag</param>
private void Dispose(bool disposing)
{
// Check to see if Dispose has already been called.
if(!this.disposed)
{
// If disposing equals true, dispose all managed
// and unmanaged resources.
if(disposing)
{
// Dispose managed resources.
_binaryFileData = null;
_stringDictionary = null;
}
}
disposed = true;
}
}
}

View File

@@ -0,0 +1,821 @@
using System;
using System.Collections;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Globalization;
namespace HtmlHelp.ChmDecoding
{
/// <summary>
/// The class <c>CHMSystem</c> reads the #SYSTEM file of the chm and stores its settings
/// </summary>
internal sealed class CHMSystem : IDisposable
{
/// <summary>
/// Internal flag specifying if the object is going to be disposed
/// </summary>
private bool disposed = false;
/// <summary>
/// Internal member storing the binary file data
/// </summary>
private byte[] _binaryFileData = null;
/// <summary>
/// Internal member storing the file version
/// </summary>
private int _fileVersion = 0;
/// <summary>
/// Internal member storing the contents file path
/// </summary>
private string _contentsFile = "";
/// <summary>
/// Internal member storing the index file path
/// </summary>
private string _indexFile = "";
/// <summary>
/// Internal member storing the default help topic
/// </summary>
private string _defaultTopic = "";
/// <summary>
/// Internal member storing the help-window title
/// </summary>
private string _title = "";
/// <summary>
/// Internal flag if dbcs is on
/// </summary>
private bool _dbcs = false;
/// <summary>
/// Internal flag if fulltext search is enabled
/// </summary>
private bool _fullTextSearch = false;
/// <summary>
/// Internal flag if KLinks are in the file
/// </summary>
private bool _hasKLinks = false;
/// <summary>
/// Internal flag if ALinks are in the file
/// </summary>
private bool _hasALinks = false;
/// <summary>
/// Internal member storing the name of the default window
/// </summary>
private string _defaultWindow = "";
/// <summary>
/// Internal member storing the filename of the compiled file
/// </summary>
private string _compileFile = "";
/// <summary>
/// Internal flag storing the offset value of the binary index
/// </summary>
private uint _binaryIndexURLTableID = 0;
/// <summary>
/// Inernal member storing the compiler version this file was compiled
/// </summary>
private string _compilerVersion = "";
/// <summary>
/// Internal flag storing the offset value of the binary TOC
/// </summary>
private uint _binaryTOCURLTableID = 0;
/// <summary>
/// Internal member storing the associated chmfile object
/// </summary>
private CHMFile _associatedFile = null;
/// <summary>
/// Internal member storing the default fontface, size, charset
/// </summary>
private string _defaultFont = "";
/// <summary>
/// Internal member storing the culture info of the file
/// </summary>
private CultureInfo _culture;
/// <summary>
/// Constructor of the class
/// </summary>
/// <param name="binaryFileData">binary file data of the #SYSTEM file</param>
/// <param name="associatedFile">associated chm file</param>
public CHMSystem(byte[] binaryFileData, CHMFile associatedFile)
{
_binaryFileData = binaryFileData;
_associatedFile = associatedFile;
DecodeData();
if(_culture == null)
{
// Set the text encoder of the chm file to the read charset/codepage
_associatedFile.TextEncoding = Encoding.GetEncoding( this.CodePage );
}
}
/// <summary>
/// Decodes the binary file data and fills the internal properties
/// </summary>
/// <returns>true if succeeded</returns>
private bool DecodeData()
{
bool bRet = true;
MemoryStream memStream = new MemoryStream(_binaryFileData);
BinaryReader binReader = new BinaryReader(memStream);
// First entry = DWORD for version number
_fileVersion = (int) binReader.ReadInt32();
while( (memStream.Position < memStream.Length) && (bRet) )
{
bRet &= DecodeEntry(ref binReader);
}
return bRet;
}
/// <summary>
/// Decodes an #system file entry
/// </summary>
/// <param name="binReader">binary reader reference</param>
/// <returns>true if succeeded</returns>
private bool DecodeEntry(ref BinaryReader binReader)
{
bool bRet = true;
int code = (int) binReader.ReadInt16(); // entry code, WORD
int length = (int) binReader.ReadInt16(); // length of entry
switch(code)
{
case 0:
{
_contentsFile = BinaryReaderHelp.ExtractString(ref binReader,length, 0, true, _associatedFile.TextEncoding);
};break;
case 1:
{
_indexFile = BinaryReaderHelp.ExtractString(ref binReader,length, 0, true, _associatedFile.TextEncoding);
};break;
case 2:
{
_defaultTopic = BinaryReaderHelp.ExtractString(ref binReader,length, 0, true, _associatedFile.TextEncoding);
};break;
case 3:
{
_title = BinaryReaderHelp.ExtractString(ref binReader,length, 0, true, _associatedFile.TextEncoding);
};break;
case 4:
{
int nTemp = 0;
nTemp = binReader.ReadInt32(); // read DWORD LCID
_culture = new CultureInfo(nTemp);
if(_culture != null)
_associatedFile.TextEncoding = Encoding.GetEncoding(_culture.TextInfo.ANSICodePage);
nTemp = binReader.ReadInt32(); // read DWORD DBCS
_dbcs = (nTemp == 1);
nTemp = binReader.ReadInt32(); // read DWORD Fulltext search
_fullTextSearch = (nTemp == 1);
nTemp = binReader.ReadInt32(); // read DWORD has klinks
_hasKLinks = (nTemp != 0);
nTemp = binReader.ReadInt32(); // read DWORD has alinks
_hasALinks = (nTemp != 0);
// read the rest of code 4 (not important for us)
byte[] temp = new byte[length-(5*4)];
temp = binReader.ReadBytes(length-(5*4));
};break;
case 5:
{
_defaultWindow = BinaryReaderHelp.ExtractString(ref binReader,length, 0, true, _associatedFile.TextEncoding);
};break;
case 6:
{
_compileFile = BinaryReaderHelp.ExtractString(ref binReader,length, 0, true, _associatedFile.TextEncoding);
};break;
case 7:
{
if(_fileVersion > 2)
{
_binaryIndexURLTableID = (uint) binReader.ReadInt32();
}
else
{
byte[] read = binReader.ReadBytes(length);
int i=read.Length;
}
};break;
case 8:
{
// abbreviation (not interresting for us)
byte[] read = binReader.ReadBytes(length);
int i=read.Length;
};break;
case 9:
{
_compilerVersion = BinaryReaderHelp.ExtractString(ref binReader,length, 0, true, _associatedFile.TextEncoding);
};break;
case 10:
{
// timestamp of the file (not interresting for us)
byte[] read = binReader.ReadBytes(length);
int i=read.Length;
};break;
case 11:
{
if(_fileVersion > 2)
{
_binaryTOCURLTableID = (uint) binReader.ReadInt32();
}
else
{
byte[] read = binReader.ReadBytes(length);
int i=read.Length;
}
};break;
case 12:
{
// number of information bytes
byte[] read = binReader.ReadBytes(length);
int i=read.Length;
};break;
case 13:
{
// copy of file #idxhdr
byte[] read = binReader.ReadBytes(length);
int i=read.Length;
};break;
case 14:
{
// custom tabs for HH viewer
byte[] read = binReader.ReadBytes(length);
int i=read.Length;
};break;
case 15:
{
// a checksum
byte[] read = binReader.ReadBytes(length);
int i=read.Length;
};break;
case 16:
{
// Default Font=string,number,number
// The string is the name of the font, the first number is the
// point size & the last number is the character set used by the font.
// For acceptable values see *_CHARSET defines in wingdi.h from the
// Windows SDK or the same file in MinGW or Wine.
// Most of the time you will only want to use 0, which is the value for ANSI,
// which is the subset of ASCII used by Windows.
_defaultFont = BinaryReaderHelp.ExtractString(ref binReader,length, 0, true, _associatedFile.TextEncoding);
};break;
default:
{
byte[] temp = new byte[length];
temp = binReader.ReadBytes(length);
//bRet = false;
int i=temp.Length;
};break;
}
return bRet;
}
/// <summary>
/// Reads all HHC files and checks which one has the global object tag.
/// This hhc file will be returned as master hhc
/// </summary>
/// <param name="hhcTopics">list of topics containing the extension hhc</param>
/// <param name="TopicItemArrayList">true if the arraylist contains topic items</param>
/// <returns>the filename of the found master toc</returns>
private string GetMasterHHC(ArrayList hhcTopics, bool TopicItemArrayList)
{
string sRet = "";
if( (hhcTopics!=null) && (hhcTopics.Count > 0) )
{
if( TopicItemArrayList )
{
if(hhcTopics.Count == 1)
{
sRet = ((TopicEntry)hhcTopics[0]).Locale;
}
else
{
foreach(TopicEntry curEntry in hhcTopics)
{
CHMStream.CHMStream iw=null;
MemoryStream fileObject=null;
if( _associatedFile.CurrentStorageWrapper == null)
{
iw=new CHMStream.CHMStream();
iw.OpenCHM(_associatedFile.ChmFilePath);
}
else
{
iw = _associatedFile.CurrentStorageWrapper;
}
fileObject = iw.OpenStream(curEntry.Locale);
if( fileObject != null)
{
string fileString =_associatedFile.TextEncoding.GetString(fileObject.ToArray(),0,(int)fileObject.Length);
fileObject.Close();
if( HHCParser.HasGlobalObjectTag(fileString, _associatedFile) )
{
sRet = curEntry.Locale;
break;
}
}
}
}
}
else
{
if(hhcTopics.Count == 1)
{
sRet = ((string)hhcTopics[0]);
}
else
{
foreach(string curEntry in hhcTopics)
{
CHMStream.CHMStream iw=null;
MemoryStream fileObject=null;
if( _associatedFile.CurrentStorageWrapper == null)
{
iw=new CHMStream.CHMStream();
iw.OpenCHM(_associatedFile.ChmFilePath);
}
else
{
iw = _associatedFile.CurrentStorageWrapper;
}
fileObject = iw.OpenStream(curEntry);
if( fileObject != null)
{
string fileString =_associatedFile.TextEncoding.GetString(fileObject.ToArray(),0,(int)fileObject.Length);
fileObject.Close();
if( HHCParser.HasGlobalObjectTag(fileString, _associatedFile) )
{
sRet = curEntry;
break;
}
}
}
}
}
}
return sRet;
}
/// <summary>
/// Gets the file version of the chm file.
/// 2 for Compatibility=1.0, 3 for Compatibility=1.1
/// </summary>
public int FileVersion
{
get { return _fileVersion; }
}
/// <summary>
/// Gets the contents file name
/// </summary>
public string ContentsFile
{
get
{
if( BinaryTOC ) // if the file contains a binary TOC
{
// make sure the CHMFile instance exists and has loaded the file #URLTBL
if( (_associatedFile != null) && (_associatedFile.UrltblFile != null ) )
{
// Get an url-table entry by its unique id
UrlTableEntry entry = _associatedFile.UrltblFile.GetByUniqueID( this.BinaryTOCURLTableID );
if(entry != null)
{
// entry found, return the url ( = filename )
return entry.URL;
}
}
}
else
{
if(_contentsFile.Length <= 0)
{
string sCheck = "Table of Contents.hhc"; // default HHP contents filename
if( (_associatedFile != null) && (_associatedFile.TopicsFile != null ) )
{
TopicEntry te = _associatedFile.TopicsFile.GetByLocale( sCheck );
if( te == null)
{
sCheck = "toc.hhc"; // default HHP contents filename
te = _associatedFile.TopicsFile.GetByLocale( sCheck );
if( te == null)
{
sCheck = CompileFile + ".hhc";
te = _associatedFile.TopicsFile.GetByLocale( sCheck );
if( te == null)
{
ArrayList arrExt = _associatedFile.TopicsFile.GetByExtension("hhc");
if( arrExt == null )
{
arrExt = _associatedFile.EnumFilesByExtension("hhc");
if( arrExt == null )
{
Debug.WriteLine("CHMSystem.ContentsFile - Failed, contents file not found !");
}
else
{
if(arrExt.Count > 1)
{
sCheck = GetMasterHHC(arrExt, false);
_contentsFile = sCheck;
}
else
{
_contentsFile = ((string)arrExt[0]);
sCheck = _contentsFile;
}
}
}
else
{
if(arrExt.Count > 1)
{
sCheck = GetMasterHHC(arrExt, true);
_contentsFile = sCheck;
}
else
{
_contentsFile = ((TopicEntry)arrExt[0]).Locale;
sCheck = _contentsFile;
}
}
}
else
{
_contentsFile = sCheck;
}
}
else
{
_contentsFile = sCheck;
}
}
else
{
_contentsFile = sCheck;
}
}
return sCheck;
}
}
return _contentsFile;
}
}
/// <summary>
/// Gets the index file name
/// </summary>
public string IndexFile
{
get
{
if( BinaryIndex ) // if the file contains a binary index
{
// make sure the CHMFile instance exists and has loaded the file #URLTBL
if( (_associatedFile != null) && (_associatedFile.UrltblFile != null ) )
{
// Get an url-table entry by its unique id
UrlTableEntry entry = _associatedFile.UrltblFile.GetByUniqueID( this.BinaryIndexURLTableID );
if(entry != null)
{
// entry found, return the url ( = filename )
return entry.URL;
}
}
}
else
{
if(_indexFile.Length <= 0)
{
string sCheck = "Index.hhk"; // default HHP index filename
if( (_associatedFile != null) && (_associatedFile.TopicsFile != null ) )
{
TopicEntry te = _associatedFile.TopicsFile.GetByLocale( sCheck );
if( te == null)
{
sCheck = CompileFile + ".hhk";
te = _associatedFile.TopicsFile.GetByLocale( sCheck );
if( te == null)
{
ArrayList arrExt = _associatedFile.TopicsFile.GetByExtension("hhk");
if( arrExt == null )
{
Debug.WriteLine("CHMSystem.IndexFile - Failed, index file not found !");
}
else
{
_indexFile = ((TopicEntry)arrExt[0]).Locale;
sCheck = _indexFile;
}
}
else
{
_indexFile = sCheck;
}
}
else
{
_indexFile = sCheck;
}
}
return sCheck;
}
}
return _indexFile;
}
}
/// <summary>
/// Sets the default topic of this file
/// </summary>
/// <param name="local">new local value of the topic</param>
internal void SetDefaultTopic(string local)
{
_defaultTopic = local;
}
/// <summary>
/// Gets the default help topic
/// </summary>
public string DefaultTopic
{
get { return _defaultTopic; }
}
/// <summary>
/// Gets the title of the help window
/// </summary>
public string Title
{
get { return _title; }
}
/// <summary>
/// Gets the flag if DBCS is in use
/// </summary>
public bool DBCS
{
get { return _dbcs; }
}
/// <summary>
/// Gets the flag if full-text-search is available
/// </summary>
public bool FullTextSearch
{
get { return _fullTextSearch; }
}
/// <summary>
/// Gets the flag if the file has ALinks
/// </summary>
public bool HasALinks
{
get { return _hasALinks; }
}
/// <summary>
/// Gets the flag if the file has KLinks
/// </summary>
public bool HasKLinks
{
get { return _hasKLinks; }
}
/// <summary>
/// Gets the default window name
/// </summary>
public string DefaultWindow
{
get { return _defaultWindow; }
}
/// <summary>
/// Gets the file name of the compile file
/// </summary>
public string CompileFile
{
get { return _compileFile; }
}
/// <summary>
/// Gets the id of the binary index in the url table
/// </summary>
public uint BinaryIndexURLTableID
{
get { return _binaryIndexURLTableID; }
}
/// <summary>
/// Gets the flag if the chm has a binary index file
/// </summary>
public bool BinaryIndex
{
get { return (_binaryIndexURLTableID>0); }
}
/// <summary>
/// Gets the flag if the chm has a binary index file
/// </summary>
public string CompilerVersion
{
get { return _compilerVersion; }
}
/// <summary>
/// Gets the id of the binary toc in the url table
/// </summary>
public uint BinaryTOCURLTableID
{
get { return _binaryTOCURLTableID; }
}
/// <summary>
/// Gets the flag if the chm has a binary toc file
/// </summary>
public bool BinaryTOC
{
get { return (_binaryTOCURLTableID>0); }
}
/// <summary>
/// Gets the font face of the read font property.
/// Empty string for default font.
/// </summary>
public string FontFace
{
get
{
if( _defaultFont.Length > 0)
{
string [] fontSplit = _defaultFont.Split( new char[]{','});
if(fontSplit.Length > 0)
return fontSplit[0].Trim();
}
return "";
}
}
/// <summary>
/// Gets the font size of the read font property.
/// 0 for default font size
/// </summary>
public double FontSize
{
get
{
if( _defaultFont.Length > 0)
{
string [] fontSplit = _defaultFont.Split( new char[]{','});
if(fontSplit.Length > 1)
return double.Parse(fontSplit[1].Trim());
}
return 0.0;
}
}
/// <summary>
/// Gets the character set of the read font property
/// 1 for default
/// </summary>
public int CharacterSet
{
get
{
if( _defaultFont.Length > 0)
{
string [] fontSplit = _defaultFont.Split( new char[]{','});
if(fontSplit.Length > 2)
return Int32.Parse(fontSplit[2].Trim());
}
return 0;
}
}
/// <summary>
/// Gets the codepage depending on the read font property
/// </summary>
public int CodePage
{
get
{
// if we've read a LCID from the system file
// ignore the font-property settings and return
// the codepage generated from the culture info
if(_culture != null)
{
return _culture.TextInfo.ANSICodePage;
}
int nRet = 1252; // default codepage windows-1252
int nCSet = CharacterSet;
switch(nCSet)
{
case 0x00: nRet = 1252;break; // ANSI_CHARSET
case 0xCC: nRet = 1251;break; // RUSSIAN_CHARSET
case 0xEE: nRet = 1250;break; // EE_CHARSET
case 0xA1: nRet = 1253;break; // GREEK_CHARSET
case 0xA2: nRet = 1254;break; // TURKISH_CHARSET
case 0xBA: nRet = 1257;break; // BALTIC_CHARSET
case 0xB1: nRet = 1255;break; // HEBREW_CHARSET
case 0xB2: nRet = 1256;break; // ARABIC_CHARSET
case 0x80: nRet = 932;break; // SHIFTJIS_CHARSET
case 0x81: nRet = 949;break; // HANGEUL_CHARSET
case 0x86: nRet = 936;break; // GB2313_CHARSET
case 0x88: nRet = 950;break; // CHINESEBIG5_CHARSET
}
return nRet;
}
}
/// <summary>
/// Gets the assiciated culture info
/// </summary>
public CultureInfo Culture
{
get { return _culture; }
}
/// <summary>
/// Implement IDisposable.
/// </summary>
public void Dispose()
{
Dispose(true);
// This object will be cleaned up by the Dispose method.
// Therefore, you should call GC.SupressFinalize to
// take this object off the finalization queue
// and prevent finalization code for this object
// from executing a second time.
GC.SuppressFinalize(this);
}
/// <summary>
/// Dispose(bool disposing) executes in two distinct scenarios.
/// If disposing equals true, the method has been called directly
/// or indirectly by a user's code. Managed and unmanaged resources
/// can be disposed.
/// If disposing equals false, the method has been called by the
/// runtime from inside the finalizer and you should not reference
/// other objects. Only unmanaged resources can be disposed.
/// </summary>
/// <param name="disposing">disposing flag</param>
private void Dispose(bool disposing)
{
// Check to see if Dispose has already been called.
if(!this.disposed)
{
// If disposing equals true, dispose all managed
// and unmanaged resources.
if(disposing)
{
// Dispose managed resources.
_binaryFileData = null;
}
}
disposed = true;
}
}
}

View File

@@ -0,0 +1,288 @@
using System;
using System.IO;
using System.Collections;
namespace HtmlHelp.ChmDecoding
{
/// <summary>
/// The class <c>CHMTocidx</c> implements functions to decode the #TOCIDX internal file.
/// </summary>
internal sealed class CHMTocidx : IDisposable
{
/// <summary>
/// Constant specifying the size of the data blocks
/// </summary>
private const int BLOCK_SIZE = 0x1000;
/// <summary>
/// Internal flag specifying if the object is going to be disposed
/// </summary>
private bool disposed = false;
/// <summary>
/// Internal member storing the binary file data
/// </summary>
private byte[] _binaryFileData = null;
/// <summary>
/// Internal memebr storing the offset to the 20/28 byte structs
/// </summary>
private int _offset2028 = 0;
/// <summary>
/// Internal member storing the offset to the 16 byte structs
/// </summary>
private int _offset16structs = 0;
/// <summary>
/// Internal member storing the number of 16 byte structs
/// </summary>
private int _numberOf16structs = 0;
/// <summary>
/// Internal member storing the offset to the topic list
/// </summary>
private int _offsetOftopics = 0;
/// <summary>
/// Internal member storing the toc
/// </summary>
private ArrayList _toc = new ArrayList();
/// <summary>
/// Internal member for offset seeking
/// </summary>
private Hashtable _offsetTable = new Hashtable();
/// <summary>
/// Internal member storing the associated chmfile object
/// </summary>
private CHMFile _associatedFile = null;
/// <summary>
/// Constructor of the class
/// </summary>
/// <param name="binaryFileData">binary file data of the #TOCIDX file</param>
/// <param name="associatedFile">associated chm file</param>
public CHMTocidx(byte[] binaryFileData, CHMFile associatedFile)
{
_binaryFileData = binaryFileData;
_associatedFile = associatedFile;
DecodeData();
// clear internal binary data after extraction
_binaryFileData = null;
}
/// <summary>
/// Decodes the binary file data and fills the internal properties
/// </summary>
/// <returns>true if succeeded</returns>
private bool DecodeData()
{
_toc = new ArrayList();
_offsetTable = new Hashtable();
bool bRet = true;
MemoryStream memStream = new MemoryStream(_binaryFileData);
BinaryReader binReader = new BinaryReader(memStream);
int nCurOffset = 0;
_offset2028 = binReader.ReadInt32();
_offset16structs = binReader.ReadInt32();
_numberOf16structs = binReader.ReadInt32();
_offsetOftopics = binReader.ReadInt32();
binReader.BaseStream.Seek( _offset2028, SeekOrigin.Begin );
if( RecursivelyBuildTree(ref binReader, _offset2028, _toc, null) )
{
binReader.BaseStream.Seek( _offset16structs, SeekOrigin.Begin );
nCurOffset = (int)binReader.BaseStream.Position;
for(int i=0; i < _numberOf16structs; i++)
{
int tocOffset = binReader.ReadInt32();
int sqNr = binReader.ReadInt32();
int topOffset = binReader.ReadInt32();
int hhctopicIdx = binReader.ReadInt32();
nCurOffset = (int)binReader.BaseStream.Position;
int topicIdx = -1;
// if the topic offset is within the range of the stream
// and is >= the offset of the first topic dword
if((topOffset < (binReader.BaseStream.Length - 4)) && (topOffset >= _offsetOftopics))
{
// read the index of the topic for this item
binReader.BaseStream.Seek( topOffset, SeekOrigin.Begin);
topicIdx = binReader.ReadInt32();
binReader.BaseStream.Seek( nCurOffset, SeekOrigin.Begin);
TOCItem item = (TOCItem)_offsetTable[tocOffset.ToString()];
if( item != null)
{
if(( topicIdx < _associatedFile.TopicsFile.TopicTable.Count)&&(topicIdx>=0))
{
TopicEntry te = (TopicEntry) (_associatedFile.TopicsFile.TopicTable[topicIdx]);
if( (te != null) && (item.TopicOffset < 0) )
{
item.TopicOffset = te.EntryOffset;
}
}
}
}
}
}
return bRet;
}
/// <summary>
/// Recursively reads the binary toc tree from the file
/// </summary>
/// <param name="binReader">reference to binary reader</param>
/// <param name="NodeOffset">offset of the first node in the current level</param>
/// <param name="level">arraylist of TOCItems for the current level</param>
/// <param name="parentItem">parent item for the item</param>
/// <returns>Returns true if succeeded</returns>
private bool RecursivelyBuildTree(ref BinaryReader binReader, int NodeOffset, ArrayList level, TOCItem parentItem)
{
bool bRet = true;
int nextOffset=0;
int nReadOffset = (int)binReader.BaseStream.Position;
binReader.BaseStream.Seek(NodeOffset, SeekOrigin.Begin);
do
{
int nCurOffset = (int)binReader.BaseStream.Position;
int unkn1 = binReader.ReadInt16(); // unknown
int unkn2 = binReader.ReadInt16(); // unknown
int flag = binReader.ReadInt32();
int nFolderAdd = 0;
if((_associatedFile != null) && (_associatedFile.ImageTypeFolder))
{
// get the value which should be added, to display folders instead of books
if(HtmlHelpSystem.UseHH2TreePics)
nFolderAdd = 8;
else
nFolderAdd = 4;
}
int nFolderImgIdx = (HtmlHelpSystem.UseHH2TreePics ? (TOCItem.STD_FOLDER_HH2+nFolderAdd) : (TOCItem.STD_FOLDER_HH1+nFolderAdd));
int nFileImgIdx = (HtmlHelpSystem.UseHH2TreePics ? TOCItem.STD_FILE_HH2 : TOCItem.STD_FILE_HH1);
int stdImage = ((flag & 0x4)!=0) ? nFolderImgIdx : nFileImgIdx;
int stringOffset = binReader.ReadInt32();
int ParentOffset = binReader.ReadInt32();
nextOffset = binReader.ReadInt32();
int firstChildOffset = 0;
int unkn3=0;
if( (flag&0x4)!=0 )
{
firstChildOffset = binReader.ReadInt32();
unkn3 = binReader.ReadInt32(); // unknown
}
TOCItem newItem = new TOCItem();
newItem.ImageIndex = stdImage;
newItem.Offset = nCurOffset;
newItem.OffsetNext = nextOffset;
newItem.AssociatedFile = _associatedFile;
newItem.TocMode = DataMode.Binary;
newItem.Parent = parentItem;
if( (flag&0x08) == 0)
{
// toc item doesn't have a local value (=> stringOffset = offset of strings file)
newItem.Name = _associatedFile.StringsFile[stringOffset];
}
else
{
// this item has a topic entry (=> stringOffset = index of topic entry)
if((stringOffset < _associatedFile.TopicsFile.TopicTable.Count) && (stringOffset >= 0))
{
TopicEntry te = (TopicEntry) (_associatedFile.TopicsFile.TopicTable[stringOffset]);
if(te != null)
{
newItem.TopicOffset = te.EntryOffset;
}
}
}
_offsetTable[nCurOffset.ToString()] = newItem;
// if this item has children (firstChildOffset > 0)
if( firstChildOffset > 0)
{
bRet &= RecursivelyBuildTree(ref binReader, firstChildOffset, newItem.Children, newItem);
}
level.Add( newItem );
if(nCurOffset != nextOffset)
binReader.BaseStream.Seek(nextOffset, SeekOrigin.Begin);
}while(nextOffset != 0);
binReader.BaseStream.Seek(nReadOffset, SeekOrigin.Begin);
return bRet;
}
/// <summary>
/// Gets the internal read toc
/// </summary>
internal ArrayList TOC
{
get { return _toc; }
}
/// <summary>
/// Implement IDisposable.
/// </summary>
public void Dispose()
{
Dispose(true);
// This object will be cleaned up by the Dispose method.
// Therefore, you should call GC.SupressFinalize to
// take this object off the finalization queue
// and prevent finalization code for this object
// from executing a second time.
GC.SuppressFinalize(this);
}
/// <summary>
/// Dispose(bool disposing) executes in two distinct scenarios.
/// If disposing equals true, the method has been called directly
/// or indirectly by a user's code. Managed and unmanaged resources
/// can be disposed.
/// If disposing equals false, the method has been called by the
/// runtime from inside the finalizer and you should not reference
/// other objects. Only unmanaged resources can be disposed.
/// </summary>
/// <param name="disposing">disposing flag</param>
private void Dispose(bool disposing)
{
// Check to see if Dispose has already been called.
if(!this.disposed)
{
// If disposing equals true, dispose all managed
// and unmanaged resources.
if(disposing)
{
// Dispose managed resources.
_binaryFileData = null;
_toc = null;
_offsetTable = null;
}
}
disposed = true;
}
}
}

View File

@@ -0,0 +1,235 @@
using System;
using System.IO;
using System.Collections;
using System.Collections.Specialized;
namespace HtmlHelp.ChmDecoding
{
/// <summary>
/// The class <c>CHMTopics</c> implements functionality to decode the #TOPICS internal file
/// </summary>
internal sealed class CHMTopics : IDisposable
{
/// <summary>
/// Internal flag specifying if the object is going to be disposed
/// </summary>
private bool disposed = false;
/// <summary>
/// Internal member storing the binary file data
/// </summary>
private byte[] _binaryFileData = null;
/// <summary>
/// Internal member storing the associated chmfile object
/// </summary>
private CHMFile _associatedFile = null;
/// <summary>
/// Internal member storing the topic list
/// </summary>
private ArrayList _topicTable = new ArrayList();
/// <summary>
/// Constructor of the class
/// </summary>
/// <param name="binaryFileData">binary file data of the #TOPICS file</param>
/// <param name="associatedFile">associated chm file</param>
public CHMTopics(byte[] binaryFileData, CHMFile associatedFile)
{
_binaryFileData = binaryFileData;
_associatedFile = associatedFile;
DecodeData();
// clear internal binary data after extraction
_binaryFileData = null;
}
/// <summary>
/// Standard constructor
/// </summary>
internal CHMTopics()
{
}
#region Data dumping
/// <summary>
/// Dump the class data to a binary writer
/// </summary>
/// <param name="writer">writer to write the data</param>
internal void Dump(ref BinaryWriter writer)
{
writer.Write( _topicTable.Count );
foreach(TopicEntry curItem in _topicTable)
{
curItem.Dump(ref writer);
}
}
/// <summary>
/// Reads the object data from a dump store
/// </summary>
/// <param name="reader">reader to read the data</param>
internal void ReadDump(ref BinaryReader reader)
{
int i=0;
int nCnt = reader.ReadInt32();
for(i=0; i<nCnt;i++)
{
TopicEntry newItem = new TopicEntry();
newItem.SetCHMFile(_associatedFile);
newItem.ReadDump(ref reader);
_topicTable.Add(newItem);
}
}
/// <summary>
/// Sets the associated CHMFile instance
/// </summary>
/// <param name="associatedFile">instance to set</param>
internal void SetCHMFile(CHMFile associatedFile)
{
_associatedFile = associatedFile;
foreach(TopicEntry curEntry in _topicTable)
{
curEntry.SetCHMFile(associatedFile);
}
}
#endregion
/// <summary>
/// Decodes the binary file data and fills the internal properties
/// </summary>
/// <returns>true if succeeded</returns>
private bool DecodeData()
{
bool bRet = true;
MemoryStream memStream = new MemoryStream(_binaryFileData);
BinaryReader binReader = new BinaryReader(memStream);
int nCurOffset = 0;
while( (memStream.Position < memStream.Length) && (bRet) )
{
int entryOffset = nCurOffset;
int tocIdx = binReader.ReadInt32();
int titleOffset = binReader.ReadInt32();
int urltablOffset = binReader.ReadInt32();
int visibilityMode = binReader.ReadInt16();
int unknownMode = binReader.ReadInt16();
TopicEntry newEntry = new TopicEntry(entryOffset, tocIdx, titleOffset, urltablOffset, visibilityMode, unknownMode, _associatedFile);
_topicTable.Add( newEntry );
nCurOffset = (int)memStream.Position;
}
return bRet;
}
/// <summary>
/// Gets the arraylist containing all topic entries.
/// </summary>
public ArrayList TopicTable
{
get
{
return _topicTable;
}
}
/// <summary>
/// Gets the topic entry of a given offset
/// </summary>
public TopicEntry this[int offset]
{
get
{
foreach(TopicEntry curEntry in _topicTable)
if(curEntry.EntryOffset == offset)
return curEntry;
return null;
}
}
/// <summary>
/// Searches a topic by the locale name
/// </summary>
/// <param name="locale">locale name to search</param>
/// <returns>The topicentry instance if found, otherwise null</returns>
public TopicEntry GetByLocale(string locale)
{
foreach(TopicEntry curEntry in TopicTable)
{
if(curEntry.Locale.ToLower() == locale.ToLower())
return curEntry;
}
return null;
}
/// <summary>
/// Searches the topics for all files with a given file extension
/// </summary>
/// <param name="fileExtension">extension to search</param>
/// <returns>An arraylist of TopicEntry instances or null if no topic was found</returns>
public ArrayList GetByExtension(string fileExtension)
{
ArrayList arrRet = new ArrayList();
foreach(TopicEntry curEntry in TopicTable)
{
if(curEntry.Locale.ToLower().EndsWith(fileExtension.ToLower()))
arrRet.Add(curEntry);
}
if(arrRet.Count > 0)
return arrRet;
return null;
}
/// <summary>
/// Implement IDisposable.
/// </summary>
public void Dispose()
{
Dispose(true);
// This object will be cleaned up by the Dispose method.
// Therefore, you should call GC.SupressFinalize to
// take this object off the finalization queue
// and prevent finalization code for this object
// from executing a second time.
GC.SuppressFinalize(this);
}
/// <summary>
/// Dispose(bool disposing) executes in two distinct scenarios.
/// If disposing equals true, the method has been called directly
/// or indirectly by a user's code. Managed and unmanaged resources
/// can be disposed.
/// If disposing equals false, the method has been called by the
/// runtime from inside the finalizer and you should not reference
/// other objects. Only unmanaged resources can be disposed.
/// </summary>
/// <param name="disposing">disposing flag</param>
private void Dispose(bool disposing)
{
// Check to see if Dispose has already been called.
if(!this.disposed)
{
// If disposing equals true, dispose all managed
// and unmanaged resources.
if(disposing)
{
// Dispose managed resources.
_binaryFileData = null;
_topicTable=null;
}
}
disposed = true;
}
}
}

View File

@@ -0,0 +1,308 @@
using System;
using System.IO;
using System.Collections;
using System.Collections.Specialized;
namespace HtmlHelp.ChmDecoding
{
/// <summary>
/// The class <c>CHMUrlstr</c> implements a string collection storing the URL strings of the help file
/// </summary>
internal sealed class CHMUrlstr : IDisposable
{
/// <summary>
/// Constant specifying the size of the string blocks
/// </summary>
private const int BLOCK_SIZE = 0x1000;
/// <summary>
/// Internal flag specifying if the object is going to be disposed
/// </summary>
private bool disposed = false;
/// <summary>
/// Internal member storing the binary file data
/// </summary>
private byte[] _binaryFileData = null;
/// <summary>
/// Internal member storing the url dictionary
/// </summary>
private Hashtable _urlDictionary = new Hashtable();
/// <summary>
/// Internal member storing the framename dictionary
/// </summary>
private Hashtable _framenameDictionary = new Hashtable();
/// <summary>
/// Internal member storing the associated chmfile object
/// </summary>
private CHMFile _associatedFile = null;
/// <summary>
/// Constructor of the class
/// </summary>
/// <param name="binaryFileData">binary file data of the #URLSTR file</param>
/// <param name="associatedFile">associated chm file</param>
public CHMUrlstr(byte[] binaryFileData, CHMFile associatedFile)
{
_binaryFileData = binaryFileData;
_associatedFile = associatedFile;
DecodeData();
// clear internal binary data after extraction
_binaryFileData = null;
}
/// <summary>
/// Standard constructor
/// </summary>
internal CHMUrlstr()
{
}
#region Data dumping
/// <summary>
/// Dump the class data to a binary writer
/// </summary>
/// <param name="writer">writer to write the data</param>
internal void Dump(ref BinaryWriter writer)
{
writer.Write( _urlDictionary.Count );
if (_urlDictionary.Count != 0)
{
IDictionaryEnumerator iDictionaryEnumerator = _urlDictionary.GetEnumerator();
while (iDictionaryEnumerator.MoveNext())
{
DictionaryEntry dictionaryEntry = (DictionaryEntry)iDictionaryEnumerator.Current;
writer.Write( Int32.Parse(dictionaryEntry.Key.ToString()) );
writer.Write( dictionaryEntry.Value.ToString() );
}
}
writer.Write( _framenameDictionary.Count );
if (_framenameDictionary.Count != 0)
{
IDictionaryEnumerator iDictionaryEnumerator = _framenameDictionary.GetEnumerator();
while (iDictionaryEnumerator.MoveNext())
{
DictionaryEntry dictionaryEntry = (DictionaryEntry)iDictionaryEnumerator.Current;
writer.Write( Int32.Parse(dictionaryEntry.Key.ToString()) );
writer.Write( dictionaryEntry.Value.ToString() );
}
}
}
/// <summary>
/// Reads the object data from a dump store
/// </summary>
/// <param name="reader">reader to read the data</param>
internal void ReadDump(ref BinaryReader reader)
{
int i=0;
int nCnt = reader.ReadInt32();
for(i=0; i<nCnt;i++)
{
int nKey = reader.ReadInt32();
string sValue = reader.ReadString();
_urlDictionary[nKey.ToString()] = sValue;
}
nCnt = reader.ReadInt32();
for(i=0; i<nCnt;i++)
{
int nKey = reader.ReadInt32();
string sValue = reader.ReadString();
_framenameDictionary[nKey.ToString()] = sValue;
}
}
/// <summary>
/// Sets the associated CHMFile instance
/// </summary>
/// <param name="associatedFile">instance to set</param>
internal void SetCHMFile(CHMFile associatedFile)
{
_associatedFile = associatedFile;
}
#endregion
/// <summary>
/// Decodes the binary file data and fills the internal properties
/// </summary>
/// <returns>true if succeeded</returns>
private bool DecodeData()
{
bool bRet = true;
MemoryStream memStream = new MemoryStream(_binaryFileData);
BinaryReader binReader = new BinaryReader(memStream);
int nCurOffset = 0;
while( (memStream.Position < memStream.Length) && (bRet) )
{
nCurOffset = (int)memStream.Position;
byte [] dataBlock = binReader.ReadBytes(BLOCK_SIZE);
bRet &= DecodeBlock(dataBlock, ref nCurOffset);
}
return bRet;
}
/// <summary>
/// Decodes a block of url-string data
/// </summary>
/// <param name="dataBlock">block of data</param>
/// <param name="nOffset">current file offset</param>
/// <returns>true if succeeded</returns>
private bool DecodeBlock( byte[] dataBlock, ref int nOffset )
{
bool bRet = true;
int blockOffset = nOffset;
MemoryStream memStream = new MemoryStream(dataBlock);
BinaryReader binReader = new BinaryReader(memStream);
if(nOffset==0)
binReader.ReadByte(); // first block starts with an unknown byte
while( (memStream.Position < (memStream.Length-8)) && (bRet) )
{
int entryOffset = blockOffset + (int)memStream.Position;
int urlOffset = binReader.ReadInt32();
int frameOffset = binReader.ReadInt32();
// There is one way to tell where the end of the URL/FrameName
// pairs occurs: Repeat the following: read 2 DWORDs and if both
// are less than the current offset then this is the start of the Local
// strings else skip two NT strings.
// if(( (urlOffset < (entryOffset+8)) && (frameOffset < (entryOffset+8)) ))
// {
// //TODO: add correct string reading if an offset has been found
// /*
// int curOffset = (int)memStream.Position;
//
// memStream.Seek( (long)(blockOffset-urlOffset), SeekOrigin.Begin);
// string sTemp = CHMReader.ExtractString(ref binReader, 0, true);
//
// memStream.Seek( (long)(blockOffset-frameOffset), SeekOrigin.Begin);
// sTemp = CHMReader.ExtractString(ref binReader, 0, true);
//
// memStream.Seek((long)curOffset, SeekOrigin.Begin);
// */
//
//
// int curOffs = (int)memStream.Position;
// BinaryReaderHelp.ExtractString(ref binReader, 0, true, _associatedFile.TextEncoding);
// nOffset += (int)memStream.Position - curOffs;
//
// curOffs = (int)memStream.Position;
// BinaryReaderHelp.ExtractString(ref binReader, 0, true, _associatedFile.TextEncoding);
// nOffset += (int)memStream.Position - curOffs;
// }
// else
{
bool bFoundTerminator = false;
string sTemp = BinaryReaderHelp.ExtractString(ref binReader, ref bFoundTerminator, 0, true, _associatedFile.TextEncoding);
if(sTemp == "")
{
//nOffset = nOffset + 1 + (int)memStream.Length - (int)memStream.Position;
memStream.Seek(memStream.Length-1, SeekOrigin.Begin);
}
else
{
_urlDictionary[entryOffset.ToString()] = sTemp.ToString();
_framenameDictionary[ entryOffset.ToString() ] = sTemp.ToString() ;
}
}
}
return bRet;
}
/// <summary>
/// Gets the url at a given offset
/// </summary>
/// <param name="offset">offset of url</param>
/// <returns>the url at the given offset</returns>
public string GetURLatOffset(int offset)
{
if(offset == -1)
return String.Empty;
string sTemp = (string)_urlDictionary[ offset.ToString() ];
if(sTemp == null)
return String.Empty;
return sTemp;
}
/// <summary>
/// Gets the framename at a given offset
/// </summary>
/// <param name="offset">offset of the framename</param>
/// <returns>the frame name at the given offset</returns>
public string GetFrameNameatOffset(int offset)
{
if(offset == -1)
return String.Empty;
string sTemp = (string)_framenameDictionary[ offset.ToString() ];
if(sTemp == null)
return String.Empty;
return sTemp;
}
/// <summary>
/// Implement IDisposable.
/// </summary>
public void Dispose()
{
Dispose(true);
// This object will be cleaned up by the Dispose method.
// Therefore, you should call GC.SupressFinalize to
// take this object off the finalization queue
// and prevent finalization code for this object
// from executing a second time.
GC.SuppressFinalize(this);
}
/// <summary>
/// Dispose(bool disposing) executes in two distinct scenarios.
/// If disposing equals true, the method has been called directly
/// or indirectly by a user's code. Managed and unmanaged resources
/// can be disposed.
/// If disposing equals false, the method has been called by the
/// runtime from inside the finalizer and you should not reference
/// other objects. Only unmanaged resources can be disposed.
/// </summary>
/// <param name="disposing">disposing flag</param>
private void Dispose(bool disposing)
{
// Check to see if Dispose has already been called.
if(!this.disposed)
{
// If disposing equals true, dispose all managed
// and unmanaged resources.
if(disposing)
{
// Dispose managed resources.
_binaryFileData = null;
_urlDictionary = null;
_framenameDictionary = null;
}
}
disposed = true;
}
}
}

View File

@@ -0,0 +1,245 @@
using System;
using System.IO;
using System.Collections;
namespace HtmlHelp.ChmDecoding
{
/// <summary>
/// The class <c>CHMUrltable</c> implements methods to decode the #URLTBL internal file.
/// </summary>
internal sealed class CHMUrltable : IDisposable
{
/// <summary>
/// Constant specifying the size of the data blocks
/// </summary>
private const int BLOCK_SIZE = 0x1000;
/// <summary>
/// Constant specifying the number of records per block
/// </summary>
private const int RECORDS_PER_BLOCK = 341;
/// <summary>
/// Internal flag specifying if the object is going to be disposed
/// </summary>
private bool disposed = false;
/// <summary>
/// Internal member storing the binary file data
/// </summary>
private byte[] _binaryFileData = null;
/// <summary>
/// Internal member storing the url table
/// </summary>
private ArrayList _urlTable = new ArrayList();
/// <summary>
/// Internal member storing the associated chmfile object
/// </summary>
private CHMFile _associatedFile = null;
/// <summary>
/// Constructor of the class
/// </summary>
/// <param name="binaryFileData">binary file data of the #URLTBL file</param>
/// <param name="associatedFile">associated chm file</param>
public CHMUrltable(byte[] binaryFileData, CHMFile associatedFile)
{
_binaryFileData = binaryFileData;
_associatedFile = associatedFile;
DecodeData();
// clear internal binary data after extraction
_binaryFileData = null;
}
/// <summary>
/// Standard constructor
/// </summary>
internal CHMUrltable()
{
}
#region Data dumping
/// <summary>
/// Dump the class data to a binary writer
/// </summary>
/// <param name="writer">writer to write the data</param>
internal void Dump(ref BinaryWriter writer)
{
writer.Write( _urlTable.Count );
foreach(UrlTableEntry curItem in _urlTable)
{
curItem.Dump(ref writer);
}
}
/// <summary>
/// Reads the object data from a dump store
/// </summary>
/// <param name="reader">reader to read the data</param>
internal void ReadDump(ref BinaryReader reader)
{
int i=0;
int nCnt = reader.ReadInt32();
for(i=0; i<nCnt;i++)
{
UrlTableEntry newItem = new UrlTableEntry();
newItem.SetCHMFile(_associatedFile);
newItem.ReadDump(ref reader);
_urlTable.Add(newItem);
}
}
/// <summary>
/// Sets the associated CHMFile instance
/// </summary>
/// <param name="associatedFile">instance to set</param>
internal void SetCHMFile(CHMFile associatedFile)
{
_associatedFile = associatedFile;
foreach(UrlTableEntry curEntry in _urlTable)
{
curEntry.SetCHMFile(associatedFile);
}
}
#endregion
/// <summary>
/// Decodes the binary file data and fills the internal properties
/// </summary>
/// <returns>true if succeeded</returns>
private bool DecodeData()
{
bool bRet = true;
MemoryStream memStream = new MemoryStream(_binaryFileData);
BinaryReader binReader = new BinaryReader(memStream);
int nCurOffset = 0;
while( (memStream.Position < memStream.Length) && (bRet) )
{
nCurOffset = (int)memStream.Position;
byte [] dataBlock = binReader.ReadBytes(BLOCK_SIZE);
bRet &= DecodeBlock(dataBlock, ref nCurOffset);
}
return bRet;
}
/// <summary>
/// Decodes a block of url-string data
/// </summary>
/// <param name="dataBlock">block of data</param>
/// <param name="nOffset">current file offset</param>
/// <returns>true if succeeded</returns>
private bool DecodeBlock( byte[] dataBlock, ref int nOffset )
{
bool bRet = true;
int blockOffset = nOffset;
MemoryStream memStream = new MemoryStream(dataBlock);
BinaryReader binReader = new BinaryReader(memStream);
for(int i=0; i < RECORDS_PER_BLOCK; i++)
{
int recordOffset = blockOffset + (int)memStream.Position;
uint nuniqueID = (uint) binReader.ReadInt32(); // unknown dword
int ntopicsIdx = binReader.ReadInt32();
int urlstrOffset = binReader.ReadInt32();
UrlTableEntry newEntry = new UrlTableEntry(nuniqueID, recordOffset, ntopicsIdx, urlstrOffset, _associatedFile);
_urlTable.Add(newEntry);
if( memStream.Position >= memStream.Length)
break;
}
if(dataBlock.Length == BLOCK_SIZE)
binReader.ReadInt32();
return bRet;
}
/// <summary>
/// Gets the arraylist containing all urltable entries.
/// </summary>
public ArrayList UrlTable
{
get
{
return _urlTable;
}
}
/// <summary>
/// Gets the urltable entry of a given offset
/// </summary>
public UrlTableEntry this[int offset]
{
get
{
foreach(UrlTableEntry curEntry in _urlTable)
if(curEntry.EntryOffset == offset)
return curEntry;
return null;
}
}
/// <summary>
/// Gets the urltable entry of a given uniqueID
/// </summary>
public UrlTableEntry GetByUniqueID(uint uniqueID)
{
foreach(UrlTableEntry curEntry in UrlTable)
{
if(curEntry.UniqueID == uniqueID)
return curEntry;
}
return null;
}
/// <summary>
/// Implement IDisposable.
/// </summary>
public void Dispose()
{
Dispose(true);
// This object will be cleaned up by the Dispose method.
// Therefore, you should call GC.SupressFinalize to
// take this object off the finalization queue
// and prevent finalization code for this object
// from executing a second time.
GC.SuppressFinalize(this);
}
/// <summary>
/// Dispose(bool disposing) executes in two distinct scenarios.
/// If disposing equals true, the method has been called directly
/// or indirectly by a user's code. Managed and unmanaged resources
/// can be disposed.
/// If disposing equals false, the method has been called by the
/// runtime from inside the finalizer and you should not reference
/// other objects. Only unmanaged resources can be disposed.
/// </summary>
/// <param name="disposing">disposing flag</param>
private void Dispose(bool disposing)
{
// Check to see if Dispose has already been called.
if(!this.disposed)
{
// If disposing equals true, dispose all managed
// and unmanaged resources.
if(disposing)
{
// Dispose managed resources.
_binaryFileData = null;
_urlTable = null;
}
}
disposed = true;
}
}
}

View File

@@ -0,0 +1,395 @@
using System;
using System.IO;
using System.Text;
using System.Diagnostics;
using System.Collections.Specialized;
using ICSharpCode.SharpZipLib;
using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.Zip.Compression;
using ICSharpCode.SharpZipLib.Zip.Compression.Streams;
using HtmlHelp;
// using HtmlHelp.Storage;
namespace HtmlHelp.ChmDecoding
{
/// <summary>
/// Enumeration for specifying the dumping compression
/// </summary>
public enum DumpCompression
{
/// <summary>
/// None - no data compression will be used.
/// Fastest but most memory intensive
/// </summary>
None = 0,
/// <summary>
/// Minimum - a minimum data compression will be used.
/// Fast but not much data reduction
/// </summary>
Minimum = 1,
/// <summary>
/// Medium - a medium data compression will be used.
/// Slower but medium data reduction
/// </summary>
Medium = 2,
/// <summary>
/// Maximum - a maximum data compression will be used.
/// Slowest but maximum data reduction
/// </summary>
Maximum = 3
}
/// <summary>
/// Flags which specify which data should be dumped
/// </summary>
[FlagsAttribute()]
public enum DumpingFlags
{
/// <summary>
/// DumpTextTOC - if this flag is set, text-based TOCs (sitemap format) will be dumped
/// </summary>
DumpTextTOC = 1,
/// <summary>
/// DumpBinaryTOC - if this flag is set, binary TOCs will be dumped
/// </summary>
DumpBinaryTOC = 2,
/// <summary>
/// DumpTextIndex - if this flag is set, the text-based index (sitemap format) will be dumped
/// </summary>
DumpTextIndex = 4,
/// <summary>
/// DumpBinaryIndex - if this flag is set, the binary index will be dumped
/// </summary>
DumpBinaryIndex = 8,
/// <summary>
/// DumpStrings - if this flag is set, the internal #STRINGS file will be dumped
/// </summary>
DumpStrings = 16,
/// <summary>
/// DumpUrlStr - if this flag is set, the internal #URLSTR file will be dumped
/// </summary>
DumpUrlStr = 32,
/// <summary>
/// DumpUrlTbl - if this flag is set, the internal #URLTBL file will be dumped
/// </summary>
DumpUrlTbl = 64,
/// <summary>
/// DumpTopics - if this flag is set, the internal #TOPICS file will be dumped
/// </summary>
DumpTopics = 128,
/// <summary>
/// DumpFullText - if this flag is set, the internal $FIftiMain file will be dumped
/// </summary>
DumpFullText = 256
}
/// <summary>
/// The class <c>DumpingInfo</c> implements information properties for the CHMFile class
/// if and how data dumping should be used.
/// </summary>
public sealed class DumpingInfo
{
public bool m_bAllowSaveDump=true;
private readonly static BitVector32.Section DumpFlags = BitVector32.CreateSection(512);
private const string _dumpHeader = "HtmlHelpSystem dump file 1.0";
private string _outputDir = ""; // emtpy string means, same directory as chm file
private DumpCompression _compressionLevel = DumpCompression.Maximum;
private CHMFile _chmFile = null;
private DeflaterOutputStream _outputStream = null;
private InflaterInputStream _inputStream = null;
private BinaryWriter _writer = null;
private BinaryReader _reader = null;
private BitVector32 _flags;
/// <summary>
/// Constructor of the class
/// </summary>
/// <param name="flags">Combine flag values to specify which data should be dumped.</param>
/// <param name="outputDir">output directory. emtpy string means,
/// same directory as chm file (only if destination = ExternalFile)</param>
/// <param name="compressionLevel">compression which should be used</param>
public DumpingInfo(DumpingFlags flags, string outputDir, DumpCompression compressionLevel)
{
_flags = new BitVector32(0);
int i = _flags[DumpFlags];
_flags[DumpFlags] = i | (int)flags;
_outputDir = outputDir;
_compressionLevel = compressionLevel;
}
/// <summary>
/// Gets the flag if text-based TOCs will be written to the dumping file
/// </summary>
public bool DumpTextTOC
{
get { return ((_flags[DumpFlags] & (int)DumpingFlags.DumpTextTOC) != 0); }
}
/// <summary>
/// Gets the flag if binary TOCs will be written to the dumping file
/// </summary>
public bool DumpBinaryTOC
{
get { return ((_flags[DumpFlags] & (int)DumpingFlags.DumpBinaryTOC) != 0); }
}
/// <summary>
/// Gets the flag if the text-based index will be written to the dumping file
/// </summary>
public bool DumpTextIndex
{
get { return ((_flags[DumpFlags] & (int)DumpingFlags.DumpTextIndex) != 0); }
}
/// <summary>
/// Gets the flag if the binary index will be written to the dumping file
/// </summary>
public bool DumpBinaryIndex
{
get { return ((_flags[DumpFlags] & (int)DumpingFlags.DumpBinaryIndex) != 0); }
}
/// <summary>
/// Gets the flag if the #STRINGS file will be written to the dumping file
/// </summary>
public bool DumpStrings
{
get { return ((_flags[DumpFlags] & (int)DumpingFlags.DumpStrings) != 0); }
}
/// <summary>
/// Gets the flag if the #URLSTR file will be written to the dumping file
/// </summary>
public bool DumpUrlStr
{
get { return ((_flags[DumpFlags] & (int)DumpingFlags.DumpUrlStr) != 0); }
}
/// <summary>
/// Gets the flag if the #URLTBL file will be written to the dumping file
/// </summary>
public bool DumpUrlTbl
{
get { return ((_flags[DumpFlags] & (int)DumpingFlags.DumpUrlTbl) != 0); }
}
/// <summary>
/// Gets the flag if the #TOPICS file will be written to the dumping file
/// </summary>
public bool DumpTopics
{
get { return ((_flags[DumpFlags] & (int)DumpingFlags.DumpTopics) != 0); }
}
/// <summary>
/// Gets the flag if the $FIftiMain file will be written to the dumping file
/// </summary>
public bool DumpFullText
{
get { return ((_flags[DumpFlags] & (int)DumpingFlags.DumpFullText) != 0); }
}
/// <summary>
/// Gets the dump output directory.
/// </summary>
/// <value>emtpy string means, same directory as chm file</value>
/// <remarks>If Destination is set to DumpingOutput.InternalFile this property will be ignored</remarks>
public string OutputDir
{
get { return _outputDir; }
}
/// <summary>
/// The compression level used.
/// </summary>
public DumpCompression CompressionLevel
{
get { return _compressionLevel; }
}
/// <summary>
/// Gets/Sets the CHMFile instance associated with this object
/// </summary>
internal CHMFile ChmFile
{
get { return _chmFile; }
set { _chmFile = value; }
}
/// <summary>
/// Translates the compression level to the deflater constants
/// </summary>
private int CompLvl
{
get
{
switch(CompressionLevel)
{
case DumpCompression.None: return Deflater.NO_COMPRESSION;
case DumpCompression.Minimum: return Deflater.BEST_SPEED;
case DumpCompression.Medium: return Deflater.DEFAULT_COMPRESSION;
case DumpCompression.Maximum: return Deflater.BEST_COMPRESSION;
}
return Deflater.BEST_COMPRESSION;
}
}
/// <summary>
/// Checks if a dump exists
/// </summary>
internal bool DumpExists
{
get
{
if(_flags[DumpFlags] == 0)
return false;
// we have a reader or writer to the dump so it must exist
if( (_reader != null) || (_writer != null) )
return true;
string sDmpFile = _chmFile.ChmFilePath;
sDmpFile=sDmpFile.ToLower().Replace(".chm",".CHB");
return File.Exists(sDmpFile);
}
}
/// <summary>
/// Gets a binary writer instance which allows you to write to the dump
/// </summary>
internal BinaryWriter Writer
{
get
{
if (m_bAllowSaveDump==false)
return null;
if(_flags[DumpFlags] == 0)
throw new InvalidOperationException("Nothing to dump. No flags have been set !");
if(_reader != null)
throw new InvalidOperationException("Can't write and read at the same time !");
if(_chmFile == null)
throw new InvalidOperationException("Only usable with an associated CHMFile instance !");
if(_writer==null)
{
string sDmpFile = _chmFile.ChmFilePath;
sDmpFile=sDmpFile.ToLower().Replace(".chm",".CHB");
StreamWriter stream = new StreamWriter(sDmpFile, false, _chmFile.TextEncoding);
// write header info uncompressed
BinaryWriter _hwriter = new BinaryWriter(stream.BaseStream);
_hwriter.Write(_dumpHeader);
_hwriter.Write((int)CompressionLevel);
if(_compressionLevel == DumpCompression.None)
{
_writer = new BinaryWriter(stream.BaseStream);
}
else
{
_outputStream = new DeflaterOutputStream(stream.BaseStream, new Deflater(CompLvl));
_writer = new BinaryWriter(_outputStream);
}
}
return _writer;
}
}
/// <summary>
/// Gets a binary reader which allows you to read from the dump
/// </summary>
internal BinaryReader Reader
{
get
{
if(_writer != null)
throw new InvalidOperationException("Can't write and read at the same time !");
if(_chmFile == null)
throw new InvalidOperationException("Only usable with an associated CHMFile instance !");
if(_reader==null)
{
string sDmpFile = _chmFile.ChmFilePath;
sDmpFile=sDmpFile.ToLower().Replace(".chm",".CHB");
StreamReader stream = new StreamReader(sDmpFile, _chmFile.TextEncoding);
BinaryReader _hReader = new BinaryReader(stream.BaseStream);
string sH = _hReader.ReadString();
if(sH != _dumpHeader)
{
_hReader.Close();
Debug.WriteLine("Unexpected dump-file header !");
throw new FormatException("DumpingInfo.Reader - Unexpected dump-file header !");
}
_compressionLevel = (DumpCompression)_hReader.ReadInt32();
// if(_compressionLevel != (DumpCompression)_hReader.ReadInt32())
// {
// _hReader.Close();
// return null;
// }
if(_compressionLevel == DumpCompression.None)
{
_reader = new BinaryReader(stream.BaseStream);
}
else
{
_inputStream = new InflaterInputStream(stream.BaseStream, new Inflater());
_reader = new BinaryReader(_inputStream);
}
}
return _reader;
}
}
/// <summary>
/// Saves data and closes the dump
/// </summary>
/// <returns>true if succeed</returns>
internal bool SaveData()
{
if (m_bAllowSaveDump==false)
return true;
if(_writer != null)
{
if(_writer!=null)
_writer.Close();
_outputStream = null;
_writer = null;
}
if(_reader != null)
{
if(_reader!=null)
_reader.Close();
_inputStream = null;
_reader = null;
}
return true;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,593 @@
using System;
using System.Collections;
using System.Text;
using System.Text.RegularExpressions;
namespace HtmlHelp.ChmDecoding
{
/// <summary>
/// The class <c>HHCParser</c> implements a parser for HHC contents files.
/// </summary>
internal sealed class HHCParser
{
/// <summary>
/// regular expressions for replacing the sitemap boundary tags
/// </summary>
private static string RE_ULOpening = @"\<ul\>"; // will be replaced by a '(' for nested parsing
private static string RE_ULClosing = @"\</ul\>"; // will be replaced by a ')' for nested parsing
/// <summary>
/// Matching ul-tags
/// </summary>
private static string RE_ULBoundaries = @"\<ul\>(?<innerText>.*)\</ul\>";
/// <summary>
/// Matching the nested tree structure.
/// </summary>
private static string RE_NestedBoundaries = @"\( (?> [^()]+ | \( (?<DEPTH>) | \) (?<-DEPTH>) )* (?(DEPTH)(?!)) \)";
/// <summary>
/// Matching object-tags
/// </summary>
private static string RE_ObjectBoundaries = @"\<object(?<innerText>.*?)\</object\>";
/// <summary>
/// Matching param tags
/// </summary>
private static string RE_ParamBoundaries = @"\<param(?<innerText>.*?)\>";
/// <summary>
/// Extracting tag attributes
/// </summary>
private const string RE_QuoteAttributes = @"( |\t)*(?<attributeName>[\-a-zA-Z0-9]*)( |\t)*=( |\t)*(?<attributeTD>[\""\'])?(?<attributeValue>.*?(?(attributeTD)\k<attributeTD>|([\s>]|.$)))";
/// <summary>
/// private regular expressionobjects
/// </summary>
private static Regex ulRE;
private static Regex NestedRE;
private static Regex ObjectRE;
private static Regex ParamRE;
private static Regex AttributesRE;
/// <summary>
/// Internal member storing the list of TOCItems which are holding merge links
/// </summary>
private static ArrayList _mergeItems = null;
/// <summary>
/// Internal member storing the last read regular topic item.
/// This is used to handle "Merge" entries and add them as child to this instance.
/// </summary>
private static TOCItem _lastTopicItem = null;
/// <summary>
/// Parses a HHC file and returns an ArrayList with the table of contents (TOC) tree
/// </summary>
/// <param name="hhcFile">string content of the hhc file</param>
/// <param name="chmFile">CHMFile instance</param>
/// <returns>Returns an ArrayList with the table of contents (TOC) tree</returns>
public static ArrayList ParseHHC(string hhcFile, CHMFile chmFile)
{
_lastTopicItem = null;
_mergeItems = null; // clear merged item list
ArrayList tocList = new ArrayList();
ulRE = new Regex(RE_ULBoundaries, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
NestedRE = new Regex(RE_NestedBoundaries, RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
ObjectRE = new Regex(RE_ObjectBoundaries, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
ParamRE = new Regex(RE_ParamBoundaries, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
AttributesRE = new Regex(RE_QuoteAttributes, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
int innerTextIdx = ulRE.GroupNumberFromName("innerText");
if( ulRE.IsMatch(hhcFile, 0) )
{
Match m = ulRE.Match(hhcFile, 0);
int nFirstUL = 0;
nFirstUL = hhcFile.ToLower().IndexOf("<ul>");
if(nFirstUL == -1)
nFirstUL = hhcFile.ToLower().IndexOf("<il>");
if( ObjectRE.IsMatch(hhcFile, 0) ) // first object block contains information types and categories
{
Match mO = ObjectRE.Match(hhcFile, 0);
int iOTxt = ObjectRE.GroupNumberFromName("innerText");
string globalText = mO.Groups[iOTxt].Value;
if( mO.Groups[iOTxt].Index <= nFirstUL)
ParseGlobalSettings( globalText, chmFile );
}
// parse toc tree
string innerText = m.Groups["innerText"].Value;
innerText = innerText.Replace("(", "&#040;");
innerText = innerText.Replace(")", "&#041;");
innerText = Regex.Replace(innerText, RE_ULOpening, "(", RegexOptions.IgnoreCase);
innerText = Regex.Replace(innerText, RE_ULClosing, ")", RegexOptions.IgnoreCase);
ParseTree( innerText, null, tocList, chmFile );
}
return tocList;
}
/// <summary>
/// Checks if the hhc file contains a global object tag.
/// </summary>
/// <param name="hhcFile">string content of the hhc file</param>
/// <param name="chmFile">chm file</param>
/// <returns>true if the hhc content contains a global object tag</returns>
public static bool HasGlobalObjectTag(string hhcFile, CHMFile chmFile)
{
bool bRet = false;
ulRE = new Regex(RE_ULBoundaries, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
ObjectRE = new Regex(RE_ObjectBoundaries, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
int innerTextIdx = ulRE.GroupNumberFromName("innerText");
if( ulRE.IsMatch(hhcFile, 0) )
{
Match m = ulRE.Match(hhcFile, 0);
int nFirstUL = 0;
nFirstUL = hhcFile.ToLower().IndexOf("<ul>");
if(nFirstUL == -1)
nFirstUL = hhcFile.ToLower().IndexOf("<il>");
if( ObjectRE.IsMatch(hhcFile, 0) ) // first object block contains information types and categories
{
Match mO = ObjectRE.Match(hhcFile, 0);
int iOTxt = ObjectRE.GroupNumberFromName("innerText");
string globalText = mO.Groups[iOTxt].Value;
if( mO.Groups[iOTxt].Index <= nFirstUL)
bRet = true;
}
}
return bRet;
}
/// <summary>
/// Gets true if the previously done parsing found merge-links
/// </summary>
public static bool HasMergeLinks
{
get
{
if(_mergeItems==null)
return false;
return _mergeItems.Count > 0;
}
}
/// <summary>
/// Gets all TOCItem references which are holding merge-links
/// </summary>
public static ArrayList MergeItems
{
get { return _mergeItems; }
}
/// <summary>
/// Recursively parses a sitemap tree
/// </summary>
/// <param name="text">content text</param>
/// <param name="parent">Parent for all read items</param>
/// <param name="arrNodes">arraylist which receives the extracted nodes</param>
/// <param name="chmFile">CHMFile instance</param>
private static void ParseTree( string text, TOCItem parent, ArrayList arrNodes, CHMFile chmFile )
{
string strPreItems="", strPostItems="";
string innerText = "";
int nIndex = 0;
while( NestedRE.IsMatch(text, nIndex) )
{
Match m = NestedRE.Match(text, nIndex);
innerText = m.Value.Substring( 1, m.Length-2);
strPreItems = text.Substring(nIndex,m.Index-nIndex);
ParseItems(strPreItems, parent, arrNodes, chmFile);
if((arrNodes.Count>0) && (innerText.Length > 0) )
{
TOCItem p = ((TOCItem)(arrNodes[arrNodes.Count-1]));
ParseTree( innerText, p, p.Children, chmFile );
}
nIndex = m.Index+m.Length;
}
if( nIndex == 0)
{
strPostItems = text.Substring(nIndex, text.Length-nIndex);
ParseItems(strPostItems, parent, arrNodes, chmFile);
}
else if( nIndex < text.Length-1)
{
strPostItems = text.Substring(nIndex, text.Length-nIndex);
ParseTree(strPostItems, parent, arrNodes, chmFile);
}
}
/// <summary>
/// Parses tree nodes from the text
/// </summary>
/// <param name="itemstext">text containing the items</param>
/// <param name="parent">Parent for all read items</param>
/// <param name="arrNodes">arraylist where the nodes should be added</param>
/// <param name="chmFile">CHMFile instance</param>
private static void ParseItems( string itemstext, TOCItem parent, ArrayList arrNodes, CHMFile chmFile)
{
int innerTextIdx = ObjectRE.GroupNumberFromName("innerText");
int innerPTextIdx = ParamRE.GroupNumberFromName("innerText");
// get group-name indexes
int nameIndex = AttributesRE.GroupNumberFromName("attributeName");
int valueIndex = AttributesRE.GroupNumberFromName("attributeValue");
int tdIndex = AttributesRE.GroupNumberFromName("attributeTD");
int nObjStartIndex = 0;
while( ObjectRE.IsMatch(itemstext, nObjStartIndex) )
{
Match m = ObjectRE.Match(itemstext, nObjStartIndex);
string innerText = m.Groups[innerTextIdx].Value;
TOCItem tocItem = new TOCItem();
tocItem.TocMode = DataMode.TextBased;
tocItem.AssociatedFile = chmFile;
tocItem.Parent = parent;
// read parameters
int nParamIndex = 0;
while( ParamRE.IsMatch(innerText, nParamIndex) )
{
Match mP = ParamRE.Match(innerText, nParamIndex);
string innerP = mP.Groups[innerPTextIdx].Value;
string paramName = "";
string paramValue = "";
int nAttrIdx = 0;
while( AttributesRE.IsMatch( innerP, nAttrIdx ) )
{
Match mA = AttributesRE.Match(innerP, nAttrIdx);
string attributeName = mA.Groups[nameIndex].Value;
string attributeValue = mA.Groups[valueIndex].Value;
string attributeTD = mA.Groups[tdIndex].Value;
if(attributeTD.Length > 0)
{
// delete the trailing textqualifier
if( attributeValue.Length > 0)
{
int ltqi = attributeValue.LastIndexOf( attributeTD );
if(ltqi >= 0)
{
attributeValue = attributeValue.Substring(0,ltqi);
}
}
}
if( attributeName.ToLower() == "name")
{
paramName = HttpUtility.HtmlDecode(attributeValue); // for unicode encoded values
}
if( attributeName.ToLower() == "value")
{
paramValue = HttpUtility.HtmlDecode(attributeValue); // for unicode encoded values
// delete trailing /
while((paramValue.Length>0)&&(paramValue[paramValue.Length-1] == '/'))
paramValue = paramValue.Substring(0,paramValue.Length-1);
}
nAttrIdx = mA.Index+mA.Length;
}
tocItem.Params[paramName] = paramValue;
switch(paramName.ToLower())
{
case "name":
{
tocItem.Name = paramValue;
};break;
case "local":
{
tocItem.Local = paramValue.Replace("../", "").Replace("./", "");
};break;
case "imagenumber":
{
tocItem.ImageIndex = Int32.Parse(paramValue);
tocItem.ImageIndex-=1;
int nFolderAdd = 0;
if((chmFile != null) && (chmFile.ImageTypeFolder))
{
// get the value which should be added, to display folders instead of books
if(HtmlHelpSystem.UseHH2TreePics)
nFolderAdd = 8;
else
nFolderAdd = 4;
}
if(tocItem.ImageIndex%2 != 0)
{
if(tocItem.ImageIndex==1)
tocItem.ImageIndex=0;
}
if(HtmlHelpSystem.UseHH2TreePics)
if( tocItem.ImageIndex == 0)
tocItem.ImageIndex = TOCItem.STD_FOLDER_HH2+nFolderAdd;
};break;
case "merge": // this item contains topics or a full TOC from a merged CHM
{
tocItem.MergeLink = paramValue;
// "register" this item as merge-link
if(_mergeItems==null)
_mergeItems=new ArrayList();
_mergeItems.Add(tocItem);
};break;
case "type": // information type assignment for item
{
tocItem.InfoTypeStrings.Add( paramValue );
};break;
}
nParamIndex = mP.Index+mP.Length;
}
tocItem.ChmFile = chmFile.ChmFilePath;
if(tocItem.MergeLink.Length > 0)
{
if(_lastTopicItem != null)
{
tocItem.Parent = _lastTopicItem;
_lastTopicItem.Children.Add(tocItem);
}
else
arrNodes.Add( tocItem );
}
else
{
_lastTopicItem = tocItem;
arrNodes.Add( tocItem );
}
nObjStartIndex = m.Index+m.Length;
}
}
/// <summary>
/// Parses the very first &lt;OBJECT&gt; tag in the sitemap file and extracts
/// information types and categories.
/// </summary>
/// <param name="sText">text of the object tag</param>
/// <param name="chmFile">CHMFile instance</param>
private static void ParseGlobalSettings(string sText, CHMFile chmFile)
{
int innerPTextIdx = ParamRE.GroupNumberFromName("innerText");
// get group-name indexes
int nameIndex = AttributesRE.GroupNumberFromName("attributeName");
int valueIndex = AttributesRE.GroupNumberFromName("attributeValue");
int tdIndex = AttributesRE.GroupNumberFromName("attributeTD");
// read parameters
int nParamIndex = 0;
// 0... unknown
// 1... inclusinve info type name
// 2... exclusive info type name
// 3... hidden info type name
// 4... category name
// 5... incl infotype name for category
// 6... excl infotype name for category
// 7... hidden infotype name for category
int prevItem = 0;
string sName = "";
string sDescription = "";
string curCategory = "";
while( ParamRE.IsMatch(sText, nParamIndex) )
{
Match mP = ParamRE.Match(sText, nParamIndex);
string innerP = mP.Groups[innerPTextIdx].Value;
string paramName = "";
string paramValue = "";
int nAttrIdx = 0;
while( AttributesRE.IsMatch( innerP, nAttrIdx ) )
{
Match mA = AttributesRE.Match(innerP, nAttrIdx);
string attributeName = mA.Groups[nameIndex].Value;
string attributeValue = mA.Groups[valueIndex].Value;
string attributeTD = mA.Groups[tdIndex].Value;
if(attributeTD.Length > 0)
{
// delete the trailing textqualifier
if( attributeValue.Length > 0)
{
int ltqi = attributeValue.LastIndexOf( attributeTD );
if(ltqi >= 0)
{
attributeValue = attributeValue.Substring(0,ltqi);
}
}
}
if( attributeName.ToLower() == "name")
{
paramName = HttpUtility.HtmlDecode(attributeValue); // for unicode encoded values
}
if( attributeName.ToLower() == "value")
{
paramValue = HttpUtility.HtmlDecode(attributeValue); // for unicode encoded values
// delete trailing /
while((paramValue.Length>0)&&(paramValue[paramValue.Length-1] == '/'))
paramValue = paramValue.Substring(0,paramValue.Length-1);
}
nAttrIdx = mA.Index+mA.Length;
}
switch(paramName.ToLower())
{
case "savetype": // inclusive information type name
{
prevItem = 1;
sName = paramValue;
};break;
case "savetypedesc": // description of information type
{
InformationTypeMode mode = InformationTypeMode.Inclusive;
sDescription = paramValue;
if( prevItem == 1)
mode = InformationTypeMode.Inclusive;
if( prevItem == 2)
mode = InformationTypeMode.Exclusive;
if( prevItem == 3)
mode = InformationTypeMode.Hidden;
if( chmFile.GetInformationType( sName ) == null)
{
// check if the HtmlHelpSystem already holds such an information type
if( chmFile.SystemInstance.GetInformationType( sName ) == null)
{
// info type not found yet
InformationType newType = new InformationType(sName, sDescription, mode);
chmFile.InformationTypes.Add(newType);
}
else
{
InformationType sysType = chmFile.SystemInstance.GetInformationType( sName );
chmFile.InformationTypes.Add( sysType );
}
}
prevItem = 0;
};break;
case "saveexclusive": // exclusive information type name
{
prevItem = 2;
sName = paramValue;
};break;
case "savehidden": // hidden information type name
{
prevItem = 3;
sName = paramValue;
};break;
case "category": // category name
{
prevItem = 4;
sName = paramValue;
curCategory = sName;
};break;
case "categorydesc": // category description
{
sDescription = paramValue;
if( chmFile.GetCategory( sName ) == null)
{
// check if the HtmlHelpSystem already holds such a category
if( chmFile.SystemInstance.GetCategory( sName ) == null)
{
// add category
Category newCat = new Category(sName, sDescription);
chmFile.Categories.Add(newCat);
}
else
{
Category sysCat = chmFile.SystemInstance.GetCategory( sName );
chmFile.Categories.Add( sysCat );
}
}
prevItem = 0;
};break;
case "type": // inclusive information type which is member of the previously read category
{
prevItem = 5;
sName = paramValue;
};break;
case "typedesc": // description of type for category
{
sDescription = paramValue;
Category cat = chmFile.GetCategory( curCategory );
if( cat != null)
{
// category found
InformationType infoType = chmFile.GetInformationType( sName );
if( infoType != null)
{
if( !cat.ContainsInformationType(infoType))
{
infoType.SetCategoryFlag(true);
cat.AddInformationType(infoType);
}
}
}
prevItem = 0;
};break;
case "typeexclusive": // exclusive information type which is member of the previously read category
{
prevItem = 6;
sName = paramValue;
};break;
case "typehidden": // hidden information type which is member of the previously read category
{
prevItem = 7;
sName = paramValue;
};break;
default:
{
prevItem = 0;
sName = "";
sDescription = "";
};break;
}
nParamIndex = mP.Index+mP.Length;
}
}
}
}

View File

@@ -0,0 +1,220 @@
using System;
using System.Collections;
using System.Text;
using System.Text.RegularExpressions;
namespace HtmlHelp.ChmDecoding
{
/// <summary>
/// The class <c>HHCParser</c> implements a parser for HHC contents files.
/// </summary>
// internal sealed class HHCParser : IHHCParser
public class HHCParser2
{
static private string m_text1="";
static private string m_text2="";
static private int m_CurrentPos=0;
/// <summary>
/// Parses a HHC file and returns an ArrayList with the table of contents (TOC) tree
/// </summary>
/// <param name="hhcFile">string content of the hhc file</param>
/// <param name="chmFile">CHMFile instance</param>
/// <returns>Returns an ArrayList with the table of contents (TOC) tree</returns>
public static ArrayList ParseHHC(string hhcFile, CHMFile chmFile)
{
DateTime StartTime=DateTime.Now;
ArrayList tocList = new ArrayList();
m_text2=hhcFile;
m_text1=hhcFile.ToLower();
int idx=m_text1.IndexOf("<ul>");
if (idx==-1)
return null;
m_CurrentPos=idx+4;
ParamRE = new Regex(RE_ParamBoundaries, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
AttributesRE = new Regex(RE_QuoteAttributes, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
ParseTree(tocList,chmFile);
DateTime EndTime=DateTime.Now;
TimeSpan Diff=EndTime-StartTime;
string x=Diff.ToString();
return tocList;
}
/// <summary>
/// Recursively parses a sitemap tree
/// </summary>
/// <param name="text">content text</param>
/// <param name="arrNodes">arraylist which receives the extracted nodes</param>
/// <param name="chmFile">CHMFile instance</param>
static private void ParseTree( ArrayList arrNodes, CHMFile chmFile )
{
bool bProcessing=true;
do
{
bProcessing=false;
// Indent
int idxa=m_text1.IndexOf("<ul>",m_CurrentPos);
int idxb=m_text1.IndexOf("<li>",m_CurrentPos);
int idxc=m_text1.IndexOf("</ul>",m_CurrentPos);
if ((idxa<idxb) && (idxa<idxc) && (idxa>-1))
{
bProcessing=true;
m_CurrentPos=idxa+4;
if (arrNodes.Count<1)
{
ParseTree(arrNodes,chmFile);
}
else
{
ParseTree(((TOCItem)(arrNodes[arrNodes.Count-1])).Children,chmFile);
}
continue;
}
// new item
if ((idxb<idxa) && (idxb<idxc) && (idxb>-1))
{
bProcessing=true;
m_CurrentPos=idxb+4;
int idx2=m_text1.IndexOf("<object",m_CurrentPos);
if (idx2!=-1)
{
int idx3=m_text1.IndexOf("</object>",idx2+7);
if (idx3!=-1)
{
string text=m_text2.Substring(idx2,idx3-idx2);
m_CurrentPos=idx3+9;
// Parse items in text.
TOCItem tocItem=ParseItems(text, chmFile);
if (tocItem!=null)
{
arrNodes.Add(tocItem);
}
}
}
}
// Undent
if ((idxc<idxa) && (idxc<idxb) && (idxc>-1))
{
m_CurrentPos=idxc+5;
bProcessing=true;
return;
}
}
while (bProcessing);
}
private static string RE_ParamBoundaries = @"\<param(?<innerText>.*?)\>";
private const string RE_QuoteAttributes = @"( |\t)*(?<attributeName>[\-a-zA-Z0-9]*)( |\t)*=( |\t)*(?<attributeTD>[\""\'])?(?<attributeValue>.*?(?(attributeTD)\k<attributeTD>|([\s>]|.$)))";
private static Regex ParamRE;
private static Regex AttributesRE;
/// <summary>
/// Parses tree nodes from the text
/// </summary>
/// <param name="itemstext">text containing the items</param>
/// <param name="arrNodes">arraylist where the nodes should be added</param>
/// <param name="chmFile">CHMFile instance</param>
private static TOCItem ParseItems( string itemstext, CHMFile chmFile)
{
int innerPTextIdx = ParamRE.GroupNumberFromName("innerText");
// get group-name indexes
int nameIndex = AttributesRE.GroupNumberFromName("attributeName");
int valueIndex = AttributesRE.GroupNumberFromName("attributeValue");
int tdIndex = AttributesRE.GroupNumberFromName("attributeTD");
TOCItem tocItem = new TOCItem();
// read parameters
int nParamIndex = 0;
while( ParamRE.IsMatch(itemstext, nParamIndex) )
{
Match mP = ParamRE.Match(itemstext, nParamIndex);
string innerP = mP.Groups[innerPTextIdx].Value;
string paramName = "";
string paramValue = "";
int nAttrIdx = 0;
while( AttributesRE.IsMatch( innerP, nAttrIdx ) )
{
Match mA = AttributesRE.Match(innerP, nAttrIdx);
string attributeName = mA.Groups[nameIndex].Value;
string attributeValue = mA.Groups[valueIndex].Value;
string attributeTD = mA.Groups[tdIndex].Value;
if(attributeTD.Length > 0)
{
// delete the trailing textqualifier
if( attributeValue.Length > 0)
{
int ltqi = attributeValue.LastIndexOf( attributeTD );
if(ltqi >= 0)
{
attributeValue = attributeValue.Substring(0,ltqi);
}
}
}
if( attributeName.ToLower() == "name")
{
paramName = attributeValue;
}
if( attributeName.ToLower() == "value")
{
paramValue = attributeValue;
}
nAttrIdx = mA.Index+mA.Length;
}
tocItem.Params[paramName] = paramValue;
switch(paramName.ToLower())
{
case "name":
{
tocItem.Name = paramValue;
};break;
case "local":
{
tocItem.Local = paramValue;
};break;
case "imagenumber":
{
tocItem.ImageIndex = Int32.Parse(paramValue);
if( tocItem.ImageIndex == 2)
tocItem.ImageIndex = TOCItem.STD_FOLDER_HH1;
};break;
}
nParamIndex = mP.Index+mP.Length;
}
tocItem.ChmFile = chmFile.ChmFilePath;
return tocItem;
}
}
}

View File

@@ -0,0 +1,550 @@
using System;
using System.IO;
using System.Collections;
using System.Text;
using System.Text.RegularExpressions;
namespace HtmlHelp.ChmDecoding
{
/// <summary>
/// The class <c>HHKParser</c> implements a parser for HHK contents files.
/// </summary>
internal sealed class HHKParser
{
/// <summary>
/// regular expressions for replacing the sitemap boundary tags
/// </summary>
private static string RE_ULOpening = @"\<ul\>"; // will be replaced by a '(' for nested parsing
private static string RE_ULClosing = @"\</ul\>"; // will be replaced by a ')' for nested parsing
/// <summary>
/// Matching ul-tags
/// </summary>
private static string RE_ULBoundaries = @"\<ul\>(?<innerText>.*)\</ul\>";
/// <summary>
/// Matching the nested tree structure.
/// </summary>
private static string RE_NestedBoundaries = @"\( (?> [^()]+ | \( (?<DEPTH>) | \) (?<-DEPTH>) )* (?(DEPTH)(?!)) \)";
/// <summary>
/// Matching object-tags
/// </summary>
private static string RE_ObjectBoundaries = @"\<object(?<innerText>.*?)\</object\>";
/// <summary>
/// Matching param tags
/// </summary>
private static string RE_ParamBoundaries = @"\<param(?<innerText>.*?)\>";
/// <summary>
/// Extracting tag attributes
/// </summary>
private const string RE_QuoteAttributes = @"( |\t)*(?<attributeName>[\-a-zA-Z0-9]*)( |\t)*=( |\t)*(?<attributeTD>[\""\'])?(?<attributeValue>.*?(?(attributeTD)\k<attributeTD>|([\s>]|.$)))";
/// <summary>
/// private regular expressionobjects
/// </summary>
private static Regex ulRE;
private static Regex NestedRE;
private static Regex ObjectRE;
private static Regex ParamRE;
private static Regex AttributesRE;
/// <summary>
/// Parses a HHK file and returns an ArrayList with the index tree
/// </summary>
/// <param name="hhkFile">string content of the hhk file</param>
/// <param name="chmFile">CHMFile instance</param>
/// <returns>Returns an ArrayList with the index tree</returns>
public static ArrayList ParseHHK(string hhkFile, CHMFile chmFile)
{
ArrayList indexList = new ArrayList();
ulRE = new Regex(RE_ULBoundaries, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
NestedRE = new Regex(RE_NestedBoundaries, RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
ObjectRE = new Regex(RE_ObjectBoundaries, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
ParamRE = new Regex(RE_ParamBoundaries, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
AttributesRE = new Regex(RE_QuoteAttributes, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
int innerTextIdx = ulRE.GroupNumberFromName("innerText");
if( ulRE.IsMatch(hhkFile, 0) )
{
Match m = ulRE.Match(hhkFile, 0);
if( ObjectRE.IsMatch(hhkFile, 0) ) // first object block contains information types and categories
{
Match mO = ObjectRE.Match(hhkFile, 0);
int iOTxt = ObjectRE.GroupNumberFromName("innerText");
string globalText = mO.Groups[iOTxt].Value;
ParseGlobalSettings( globalText, chmFile );
}
string innerText = m.Groups["innerText"].Value;
innerText = innerText.Replace("(", "&#040;");
innerText = innerText.Replace(")", "&#041;");
innerText = Regex.Replace(innerText, RE_ULOpening, "(", RegexOptions.IgnoreCase);
innerText = Regex.Replace(innerText, RE_ULClosing, ")", RegexOptions.IgnoreCase);
ParseTree( innerText, null, indexList, chmFile );
}
return indexList;
}
/// <summary>
/// Recursively parses a sitemap tree
/// </summary>
/// <param name="text">content text</param>
/// <param name="parent">Parent for all read items</param>
/// <param name="arrNodes">arraylist which receives the extracted nodes</param>
/// <param name="chmFile">CHMFile instance</param>
private static void ParseTree( string text, IndexItem parent, ArrayList arrNodes, CHMFile chmFile )
{
string strPreItems="", strPostItems="";
string innerText = "";
int nIndex = 0;
while( NestedRE.IsMatch(text, nIndex) )
{
Match m = NestedRE.Match(text, nIndex);
innerText = m.Value.Substring( 1, m.Length-2);
strPreItems = text.Substring(nIndex,m.Index-nIndex);
ParseItems(strPreItems, parent, arrNodes, chmFile);
if((arrNodes.Count>0) && (innerText.Length > 0) )
{
IndexItem p = ((IndexItem)(arrNodes[arrNodes.Count-1]));
ParseTree( innerText, p, arrNodes, chmFile );
}
nIndex = m.Index+m.Length;
}
if( nIndex == 0)
{
strPostItems = text.Substring(nIndex, text.Length-nIndex);
ParseItems(strPostItems, parent, arrNodes, chmFile);
}
else if( nIndex < text.Length-1)
{
strPostItems = text.Substring(nIndex, text.Length-nIndex);
ParseTree(strPostItems, parent, arrNodes, chmFile);
}
}
/// <summary>
/// Parses nodes from the text
/// </summary>
/// <param name="itemstext">text containing the items</param>
/// <param name="parentItem">parent index item</param>
/// <param name="arrNodes">arraylist where the nodes should be added</param>
/// <param name="chmFile">CHMFile instance</param>
private static void ParseItems( string itemstext, IndexItem parentItem, ArrayList arrNodes, CHMFile chmFile)
{
int innerTextIdx = ObjectRE.GroupNumberFromName("innerText");
int innerPTextIdx = ParamRE.GroupNumberFromName("innerText");
// get group-name indexes
int nameIndex = AttributesRE.GroupNumberFromName("attributeName");
int valueIndex = AttributesRE.GroupNumberFromName("attributeValue");
int tdIndex = AttributesRE.GroupNumberFromName("attributeTD");
int nObjStartIndex = 0;
int nLastObjStartIndex = 0;
string sKeyword = "";
while( ObjectRE.IsMatch(itemstext, nObjStartIndex) )
{
Match m = ObjectRE.Match(itemstext, nObjStartIndex);
string innerText = m.Groups[innerTextIdx].Value;
IndexItem idxItem = new IndexItem();
// read parameters
int nParamIndex = 0;
int nNameCnt = 0;
string paramTitle = "";
string paramLocal = "";
bool bAdded = false;
while( ParamRE.IsMatch(innerText, nParamIndex) )
{
Match mP = ParamRE.Match(innerText, nParamIndex);
string innerP = mP.Groups[innerPTextIdx].Value;
string paramName = "";
string paramValue = "";
int nAttrIdx = 0;
//sKeyword = "";
while( AttributesRE.IsMatch( innerP, nAttrIdx ) )
{
Match mA = AttributesRE.Match(innerP, nAttrIdx);
string attributeName = mA.Groups[nameIndex].Value;
string attributeValue = mA.Groups[valueIndex].Value;
string attributeTD = mA.Groups[tdIndex].Value;
if(attributeTD.Length > 0)
{
// delete the trailing textqualifier
if( attributeValue.Length > 0)
{
int ltqi = attributeValue.LastIndexOf( attributeTD );
if(ltqi >= 0)
{
attributeValue = attributeValue.Substring(0,ltqi);
}
}
}
if( attributeName.ToLower() == "name")
{
paramName = HttpUtility.HtmlDecode(attributeValue); // for unicode encoded values
nNameCnt++;
}
if( attributeName.ToLower() == "value")
{
paramValue = HttpUtility.HtmlDecode(attributeValue); // for unicode encoded values
// delete trailing /
while((paramValue.Length>0)&&(paramValue[paramValue.Length-1] == '/'))
paramValue = paramValue.Substring(0,paramValue.Length-1);
}
nAttrIdx = mA.Index+mA.Length;
}
if( nNameCnt == 1) // first "Name" param = keyword
{
sKeyword = "";
if(parentItem != null)
sKeyword = parentItem.KeyWordPath + ",";
string sOldKW = sKeyword;
sKeyword += paramValue;
IndexItem idxFind = FindByKeyword(arrNodes, sKeyword);
if(idxFind != null)
{
idxItem = idxFind;
}
else
{
if( sKeyword.Split(new char[] {','}).Length > 1 )
{
idxItem.CharIndex = sKeyword.Length - paramValue.Length;
}
else
{
sKeyword = paramValue;
sOldKW = sKeyword;
idxItem.CharIndex = 0;
}
idxItem.KeyWordPath = sKeyword;
idxItem.Indent = sKeyword.Split(new char[] {','}).Length - 1;
idxItem.IsSeeAlso = false;
sKeyword = sOldKW;
}
}
else
{
if( (nNameCnt > 2) && (paramName.ToLower()=="name") )
{
bAdded = true;
IndexTopic idxTopic = new IndexTopic(paramTitle, paramLocal, chmFile.CompileFile, chmFile.ChmFilePath);
idxItem.Topics.Add( idxTopic );
paramTitle = "";
paramLocal = "";
}
switch(paramName.ToLower())
{
case "name":
//case "keyword":
{
paramTitle = paramValue;
};break;
case "local":
{
paramLocal = paramValue.Replace("../", "").Replace("./", "");
};break;
case "type": // information type assignment for item
{
idxItem.InfoTypeStrings.Add( paramValue );
};break;
case "see also":
{
idxItem.AddSeeAlso(paramValue);
idxItem.IsSeeAlso = true;
bAdded = true;
};break;
}
}
nParamIndex = mP.Index+mP.Length;
}
if(!bAdded)
{
bAdded=false;
IndexTopic idxTopic = new IndexTopic(paramTitle, paramLocal, chmFile.CompileFile, chmFile.ChmFilePath);
idxItem.Topics.Add( idxTopic );
paramTitle = "";
paramLocal = "";
}
idxItem.ChmFile = chmFile;
arrNodes.Add( idxItem );
nLastObjStartIndex = nObjStartIndex;
nObjStartIndex = m.Index+m.Length;
}
}
/// <summary>
/// Searches an index-keyword in the index list
/// </summary>
/// <param name="indexList">index list to search</param>
/// <param name="Keyword">keyword to find</param>
/// <returns>Returns an <see cref="IndexItem">IndexItem</see> instance if found, otherwise null.</returns>
private static IndexItem FindByKeyword(ArrayList indexList, string Keyword)
{
foreach(IndexItem curItem in indexList)
{
if( curItem.KeyWordPath == Keyword)
return curItem;
}
return null;
}
/// <summary>
/// Parses the very first &lt;OBJECT&gt; tag in the sitemap file and extracts
/// information types and categories.
/// </summary>
/// <param name="sText">text of the object tag</param>
/// <param name="chmFile">CHMFile instance</param>
private static void ParseGlobalSettings(string sText, CHMFile chmFile)
{
int innerPTextIdx = ParamRE.GroupNumberFromName("innerText");
// get group-name indexes
int nameIndex = AttributesRE.GroupNumberFromName("attributeName");
int valueIndex = AttributesRE.GroupNumberFromName("attributeValue");
int tdIndex = AttributesRE.GroupNumberFromName("attributeTD");
// read parameters
int nParamIndex = 0;
// 0... unknown
// 1... inclusinve info type name
// 2... exclusive info type name
// 3... hidden info type name
// 4... category name
// 5... incl infotype name for category
// 6... excl infotype name for category
// 7... hidden infotype name for category
int prevItem = 0;
string sName = "";
string sDescription = "";
string curCategory = "";
while( ParamRE.IsMatch(sText, nParamIndex) )
{
Match mP = ParamRE.Match(sText, nParamIndex);
string innerP = mP.Groups[innerPTextIdx].Value;
string paramName = "";
string paramValue = "";
int nAttrIdx = 0;
while( AttributesRE.IsMatch( innerP, nAttrIdx ) )
{
Match mA = AttributesRE.Match(innerP, nAttrIdx);
string attributeName = mA.Groups[nameIndex].Value;
string attributeValue = mA.Groups[valueIndex].Value;
string attributeTD = mA.Groups[tdIndex].Value;
if(attributeTD.Length > 0)
{
// delete the trailing textqualifier
if( attributeValue.Length > 0)
{
int ltqi = attributeValue.LastIndexOf( attributeTD );
if(ltqi >= 0)
{
attributeValue = attributeValue.Substring(0,ltqi);
}
}
}
if( attributeName.ToLower() == "name")
{
paramName = HttpUtility.HtmlDecode(attributeValue); // for unicode encoded values
}
if( attributeName.ToLower() == "value")
{
paramValue = HttpUtility.HtmlDecode(attributeValue); // for unicode encoded values
// delete trailing /
while((paramValue.Length>0)&&(paramValue[paramValue.Length-1] == '/'))
paramValue = paramValue.Substring(0,paramValue.Length-1);
}
nAttrIdx = mA.Index+mA.Length;
}
switch(paramName.ToLower())
{
case "savetype": // inclusive information type name
{
prevItem = 1;
sName = paramValue;
};break;
case "savetypedesc": // description of information type
{
InformationTypeMode mode = InformationTypeMode.Inclusive;
sDescription = paramValue;
if( prevItem == 1)
mode = InformationTypeMode.Inclusive;
if( prevItem == 2)
mode = InformationTypeMode.Exclusive;
if( prevItem == 3)
mode = InformationTypeMode.Hidden;
if( chmFile.GetInformationType( sName ) == null)
{
// check if the HtmlHelpSystem already holds such an information type
if( chmFile.SystemInstance.GetInformationType( sName ) == null)
{
// info type not found yet
InformationType newType = new InformationType(sName, sDescription, mode);
chmFile.InformationTypes.Add(newType);
}
else
{
InformationType sysType = chmFile.SystemInstance.GetInformationType( sName );
chmFile.InformationTypes.Add( sysType );
}
}
prevItem = 0;
};break;
case "saveexclusive": // exclusive information type name
{
prevItem = 2;
sName = paramValue;
};break;
case "savehidden": // hidden information type name
{
prevItem = 3;
sName = paramValue;
};break;
case "category": // category name
{
prevItem = 4;
sName = paramValue;
curCategory = sName;
};break;
case "categorydesc": // category description
{
sDescription = paramValue;
if( chmFile.GetCategory( sName ) == null)
{
// check if the HtmlHelpSystem already holds such a category
if( chmFile.SystemInstance.GetCategory( sName ) == null)
{
// add category
Category newCat = new Category(sName, sDescription);
chmFile.Categories.Add(newCat);
}
else
{
Category sysCat = chmFile.SystemInstance.GetCategory( sName );
chmFile.Categories.Add( sysCat );
}
}
prevItem = 0;
};break;
case "type": // inclusive information type which is member of the previously read category
{
prevItem = 5;
sName = paramValue;
};break;
case "typedesc": // description of type for category
{
sDescription = paramValue;
Category cat = chmFile.GetCategory( curCategory );
if( cat != null)
{
// category found
InformationType infoType = chmFile.GetInformationType( sName );
if( infoType != null)
{
if( !cat.ContainsInformationType(infoType))
{
infoType.SetCategoryFlag(true);
cat.AddInformationType(infoType);
}
}
}
prevItem = 0;
};break;
case "typeexclusive": // exclusive information type which is member of the previously read category
{
prevItem = 6;
sName = paramValue;
};break;
case "typehidden": // hidden information type which is member of the previously read category
{
prevItem = 7;
sName = paramValue;
};break;
default:
{
prevItem = 0;
sName = "";
sDescription = "";
};break;
}
nParamIndex = mP.Index+mP.Length;
}
}
}
}

View File

@@ -0,0 +1,245 @@
using System;
using System.IO;
namespace HtmlHelp.ChmDecoding
{
/// <summary>
/// The class <c>TopicEntry</c> stores the data for one topic entry
/// </summary>
internal sealed class TopicEntry
{
/// <summary>
/// Internal member storing the offset of this topic entry
/// </summary>
private int _entryOffset = 0;
/// <summary>
/// Internal member storing the index of the binary toc
/// </summary>
private int _tocidxOffset = 0;
/// <summary>
/// Internal member storing the string offset of the title
/// </summary>
private int _titleOffset = 0;
/// <summary>
/// Internal member storuing the urltable offset
/// </summary>
private int _urltableOffset = 0;
/// <summary>
/// Internal member storing the visibility mode
/// </summary>
private int _visibilityMode = 0;
/// <summary>
/// Internal member storing an unknown mode
/// </summary>
private int _unknownMode = 0;
/// <summary>
/// Internal member storing the associated chmfile object
/// </summary>
private CHMFile _associatedFile = null;
/// <summary>
/// Constructor of the class
/// </summary>
/// <param name="entryOffset">offset of this entry</param>
/// <param name="tocidxOffset">offset in the binary toc index</param>
/// <param name="titleOffset">offset of the title (in the #STRINGS file)</param>
/// <param name="urltableOffset">offset in the urltable containing the urlstr offset for the url</param>
/// <param name="visibilityMode">visibility mode 2 indicates not in contents, 6 indicates that it is in the contents, 0/4 something else (unknown)</param>
/// <param name="unknownMode">0, 2, 4, 8, 10, 12, 16, 32 (unknown)</param>
public TopicEntry(int entryOffset, int tocidxOffset, int titleOffset, int urltableOffset, int visibilityMode, int unknownMode) :this(entryOffset, tocidxOffset, titleOffset, urltableOffset, visibilityMode, unknownMode, null)
{
}
/// <summary>
/// Constructor of the class
/// </summary>
/// <param name="entryOffset">offset of this entry</param>
/// <param name="tocidxOffset">offset in the binary toc index</param>
/// <param name="titleOffset">offset of the title (in the #STRINGS file)</param>
/// <param name="urltableOffset">offset in the urltable containing the urlstr offset for the url</param>
/// <param name="visibilityMode">visibility mode 2 indicates not in contents, 6 indicates that it is in the contents, 0/4 something else (unknown)</param>
/// <param name="unknownMode">0, 2, 4, 8, 10, 12, 16, 32 (unknown)</param>
/// <param name="associatedFile">associated chmfile object</param>
internal TopicEntry(int entryOffset, int tocidxOffset, int titleOffset, int urltableOffset, int visibilityMode, int unknownMode, CHMFile associatedFile)
{
_entryOffset = entryOffset;
_tocidxOffset = tocidxOffset;
_titleOffset = titleOffset;
_urltableOffset = urltableOffset;
_visibilityMode = visibilityMode;
_unknownMode = unknownMode;
_associatedFile = associatedFile;
}
/// <summary>
/// Standard constructor
/// </summary>
internal TopicEntry()
{
}
#region Data dumping
/// <summary>
/// Dump the class data to a binary writer
/// </summary>
/// <param name="writer">writer to write the data</param>
internal void Dump(ref BinaryWriter writer)
{
writer.Write( _entryOffset );
writer.Write( _tocidxOffset );
writer.Write( _titleOffset );
writer.Write( _urltableOffset );
writer.Write( _visibilityMode );
writer.Write( _unknownMode );
}
/// <summary>
/// Reads the object data from a dump store
/// </summary>
/// <param name="reader">reader to read the data</param>
internal void ReadDump(ref BinaryReader reader)
{
_entryOffset = reader.ReadInt32();
_tocidxOffset = reader.ReadInt32();
_titleOffset = reader.ReadInt32();
_urltableOffset = reader.ReadInt32();
_visibilityMode = reader.ReadInt32();
_unknownMode = reader.ReadInt32();
}
/// <summary>
/// Sets the associated CHMFile instance
/// </summary>
/// <param name="associatedFile">instance to set</param>
internal void SetCHMFile(CHMFile associatedFile)
{
_associatedFile = associatedFile;
}
#endregion
/// <summary>
/// Gets the associated chm file
/// </summary>
internal CHMFile ChmFile
{
get { return _associatedFile; }
}
/// <summary>
/// Gets the offset of this entry
/// </summary>
internal int EntryOffset
{
get { return _entryOffset; }
}
/// <summary>
/// Gets the tocidx offset
/// </summary>
internal int TOCIdxOffset
{
get { return _tocidxOffset; }
}
/// <summary>
/// Gets the title offset of the #STRINGS file
/// </summary>
internal int TitleOffset
{
get { return _titleOffset; }
}
/// <summary>
/// Gets the urltable offset
/// </summary>
internal int UrlTableOffset
{
get { return _urltableOffset; }
}
/// <summary>
/// Gets the title of the topic entry
/// </summary>
public string Title
{
get
{
if( _associatedFile == null)
return String.Empty;
if( _associatedFile.StringsFile == null)
return String.Empty;
string sTemp = (string)_associatedFile.StringsFile[ _titleOffset ];
if(sTemp == null)
return String.Empty;
return sTemp;
}
}
/// <summary>
/// Gets the url of the topic
/// </summary>
public string Locale
{
get
{
if( _associatedFile == null)
return String.Empty;
if( _associatedFile.UrltblFile == null)
return String.Empty;
UrlTableEntry utEntry = (UrlTableEntry)_associatedFile.UrltblFile[ _urltableOffset ];
if(utEntry == null)
return String.Empty;
if(utEntry.URL == "")
return String.Empty;
return utEntry.URL;
}
}
/// <summary>
/// Gets the URL of this topic
/// </summary>
public string URL
{
get
{
if(Locale.Length <= 0)
return "about:blank";
if( (Locale.ToLower().IndexOf("http://") >= 0) ||
(Locale.ToLower().IndexOf("https://") >= 0) ||
(Locale.ToLower().IndexOf("mailto:") >= 0) ||
(Locale.ToLower().IndexOf("ftp://") >= 0) ||
(Locale.ToLower().IndexOf("ms-its:") >= 0))
return Locale;
return HtmlHelpSystem.UrlPrefix + _associatedFile.ChmFilePath + "::/" + Locale;
}
}
/// <summary>
/// Gets the visibility mode
/// </summary>
public int VisibilityMode
{
get { return _visibilityMode; }
}
/// <summary>
/// Gets the unknown mode
/// </summary>
public int UknownMode
{
get { return _unknownMode; }
}
}
}

View File

@@ -0,0 +1,175 @@
using System;
using System.IO;
namespace HtmlHelp.ChmDecoding
{
/// <summary>
/// The class <c>UrlTableEntry</c> stores data for an URL-Table entry
/// </summary>
internal sealed class UrlTableEntry
{
/// <summary>
/// Internal member storing the offset of this entry
/// </summary>
private int _entryOffset = 0;
/// <summary>
/// Internal member storing a unique id
/// </summary>
private uint _uniqueID = 0;
/// <summary>
/// Internal member storing the topics index
/// </summary>
private int _topicsIndex = 0;
/// <summary>
/// Internal member storing the offset in the urlstr table
/// </summary>
private int _urlStrOffset = 0;
/// <summary>
/// Internal member storing the associated chmfile object
/// </summary>
private CHMFile _associatedFile = null;
/// <summary>
/// Constructor of the class
/// </summary>
/// <param name="uniqueID">unique id</param>
/// <param name="entryOffset">offset of the entry</param>
/// <param name="topicIndex">topic index</param>
/// <param name="urlstrOffset">urlstr offset for filename</param>
public UrlTableEntry(uint uniqueID, int entryOffset, int topicIndex, int urlstrOffset) : this(uniqueID, entryOffset, topicIndex, urlstrOffset, null)
{
}
/// <summary>
/// Constructor of the class
/// </summary>
/// <param name="uniqueID">unique id</param>
/// <param name="entryOffset">offset of the entry</param>
/// <param name="topicIndex">topic index</param>
/// <param name="urlstrOffset">urlstr offset for filename</param>
/// <param name="associatedFile">associated chm file</param>
internal UrlTableEntry(uint uniqueID, int entryOffset, int topicIndex, int urlstrOffset, CHMFile associatedFile)
{
_uniqueID = uniqueID;
_entryOffset = entryOffset;
_topicsIndex = topicIndex;
_urlStrOffset = urlstrOffset;
_associatedFile = associatedFile;
}
/// <summary>
/// Standard constructor
/// </summary>
internal UrlTableEntry()
{
}
#region Data dumping
/// <summary>
/// Dump the class data to a binary writer
/// </summary>
/// <param name="writer">writer to write the data</param>
internal void Dump(ref BinaryWriter writer)
{
writer.Write( _urlStrOffset );
writer.Write( _entryOffset );
writer.Write( _topicsIndex );
writer.Write( _urlStrOffset );
}
/// <summary>
/// Reads the object data from a dump store
/// </summary>
/// <param name="reader">reader to read the data</param>
internal void ReadDump(ref BinaryReader reader)
{
_urlStrOffset = reader.ReadInt32();
_entryOffset = reader.ReadInt32();
_topicsIndex = reader.ReadInt32();
_urlStrOffset = reader.ReadInt32();
}
/// <summary>
/// Sets the associated CHMFile instance
/// </summary>
/// <param name="associatedFile">instance to set</param>
internal void SetCHMFile(CHMFile associatedFile)
{
_associatedFile = associatedFile;
}
#endregion
/// <summary>
/// Gets the unique id of the entry
/// </summary>
internal uint UniqueID
{
get {return _uniqueID; }
}
/// <summary>
/// Gets the offset of the entry
/// </summary>
internal int EntryOffset
{
get {return _entryOffset; }
}
/// <summary>
/// Gets the topics index
/// </summary>
internal int TopicIndex
{
get {return _topicsIndex; }
}
/// <summary>
/// Gets the urlstr offset
/// </summary>
internal int UrlstrOffset
{
get { return _urlStrOffset; }
}
/// <summary>
/// Gets the url of the entry
/// </summary>
public string URL
{
get
{
if(_associatedFile == null)
return String.Empty;
if(_associatedFile.UrlstrFile == null)
return String.Empty;
string sTemp = (string)_associatedFile.UrlstrFile.GetURLatOffset( _urlStrOffset );
if( sTemp == null)
return String.Empty;
return sTemp;
}
}
/// <summary>
/// Gets the associated topic for this url entry
/// </summary>
internal TopicEntry Topic
{
get
{
if(_associatedFile == null)
return null;
if(_associatedFile.TopicsFile == null)
return null;
TopicEntry tentry = _associatedFile.TopicsFile[ _topicsIndex*16 ];
return tentry;
}
}
}
}

View File

@@ -0,0 +1,19 @@
using System;
namespace HtmlHelp.ChmDecoding
{
/// <summary>
/// Enumeration for specifying the extraction mode of an toc or index item.
/// </summary>
public enum DataMode
{
/// <summary>
/// TextBased - this item comes from a text-based sitemap file
/// </summary>
TextBased = 0,
/// <summary>
/// Binary - this item was extracted out of a binary stream
/// </summary>
Binary = 1
}
}

View File

@@ -0,0 +1,16 @@
<Combine fileversion="1.0" name="CHMLibrary" description="">
<StartMode startupentry="CHMLibrary" single="True">
<Execute entry="CHMLibrary" type="None" />
</StartMode>
<Entries>
<Entry filename=".\.\CHMLibrary.prjx" />
</Entries>
<Configurations active="Debug">
<Configuration name="Release">
<Entry name="CHMLibrary" configurationname="Debug" build="False" />
</Configuration>
<Configuration name="Debug">
<Entry name="CHMLibrary" configurationname="Debug" build="False" />
</Configuration>
</Configurations>
</Combine>

View File

@@ -0,0 +1,58 @@
<Project name="CHMLibrary" standardNamespace="CHMLibrary" description="" newfilesearch="None" enableviewstate="True" version="1.1" projecttype="C#">
<Contents>
<File name=".\AssemblyInfo.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\Category.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\ChmFileInfo.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\Default.build" subtype="Code" buildaction="Nothing" dependson="" data="" />
<File name=".\HtmlHelpSystem.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\HttpUtility.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\Index.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\IndexItem.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\IndexTopic.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\InformationType.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\TableOfContents.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\TOCItem.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\Storage" subtype="Directory" buildaction="Compile" dependson="" data="" />
<File name=".\Storage\CHMStream.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\CHMDecoding" subtype="Directory" buildaction="Compile" dependson="" data="" />
<File name=".\CHMDecoding\BinaryReaderHelp.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\CHMDecoding\CHMBtree.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\CHMDecoding\CHMFile.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\CHMDecoding\CHMIdxhdr.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\CHMDecoding\CHMStrings.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\CHMDecoding\CHMSystem.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\CHMDecoding\CHMTocidx.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\CHMDecoding\CHMTopics.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\CHMDecoding\CHMUrlstr.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\CHMDecoding\CHMUrltable.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\CHMDecoding\DumpingInfo.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\CHMDecoding\enumerations.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\CHMDecoding\FullTextEngine.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\CHMDecoding\HHCParser2.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\CHMDecoding\HHCParser.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\CHMDecoding\HHKParser.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\CHMDecoding\TopicEntry.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\CHMDecoding\UrlTableEntry.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
</Contents>
<References>
<Reference type="Project" refto="Compression" localcopy="True" />
</References>
<DeploymentInformation target="" script="" strategy="File" />
<Configuration runwithwarnings="True" name="Debug">
<CodeGeneration runtime="MsNet" compiler="Csc" compilerversion="" warninglevel="4" nowarn="" includedebuginformation="True" optimize="False" unsafecodeallowed="False" generateoverflowchecks="True" mainclass="" target="Library" definesymbols="" generatexmldocumentation="False" win32Icon="" noconfig="False" nostdlib="False" />
<Execution commandlineparameters="" consolepause="False" />
<Output directory="..\bin\Debug" assembly="CHMLibrary" executeScript="" executeBeforeBuild="" executeAfterBuild="" executeBeforeBuildArguments="" executeAfterBuildArguments="" />
</Configuration>
<Configurations active="Debug">
<Configuration runwithwarnings="True" name="Debug">
<CodeGeneration runtime="MsNet" compiler="Csc" compilerversion="" warninglevel="4" nowarn="" includedebuginformation="True" optimize="False" unsafecodeallowed="False" generateoverflowchecks="True" mainclass="" target="Library" definesymbols="" generatexmldocumentation="False" win32Icon="" noconfig="False" nostdlib="False" />
<Execution commandlineparameters="" consolepause="False" />
<Output directory="..\bin\Debug" assembly="CHMLibrary" executeScript="" executeBeforeBuild="" executeAfterBuild="" executeBeforeBuildArguments="" executeAfterBuildArguments="" />
</Configuration>
<Configuration runwithwarnings="True" name="Release">
<CodeGeneration runtime="MsNet" compiler="Csc" compilerversion="" warninglevel="4" nowarn="" includedebuginformation="False" optimize="True" unsafecodeallowed="False" generateoverflowchecks="False" mainclass="" target="Library" definesymbols="" generatexmldocumentation="False" win32Icon="" noconfig="False" nostdlib="False" />
<Execution commandlineparameters="" consolepause="False" />
<Output directory="..\bin\Release" assembly="CHMLibrary" executeScript="" executeBeforeBuild="" executeAfterBuild="" executeBeforeBuildArguments="" executeAfterBuildArguments="" />
</Configuration>
</Configurations>
</Project>

View File

@@ -0,0 +1,201 @@
using System;
using System.Collections;
using System.IO;
using HtmlHelp.ChmDecoding;
namespace HtmlHelp
{
/// <summary>
/// The class <c>Category</c> implements methods/properties for handling an information category
/// </summary>
/// <remarks>Note: Information types and categories allow users to filter help contents.
/// They are only supported if using sitemap TOC and/or sitemap Index.</remarks>
public class Category
{
private string _name = "";
private string _description = "";
private ArrayList _infoTypes = null;
private int _referenceCount = 1;
/// <summary>
/// Standard constructor
/// </summary>
public Category() : this("","")
{
}
/// <summary>
/// Standard constructor
/// </summary>
/// <param name="name">name of the category</param>
/// <param name="description">description</param>
public Category(string name, string description) : this(name, description, new ArrayList())
{
}
/// <summary>
/// Standard constructor
/// </summary>
/// <param name="name">name of the category</param>
/// <param name="description">description</param>
/// <param name="linkedInformationTypes">Arraylist of InformationType instances which applies to this category</param>
public Category(string name, string description, ArrayList linkedInformationTypes)
{
_name = name;
_description = description;
_infoTypes = linkedInformationTypes;
}
#region Data dumping
/// <summary>
/// Dump the class data to a binary writer
/// </summary>
/// <param name="writer">writer to write the data</param>
internal void Dump(ref BinaryWriter writer)
{
writer.Write( _name );
writer.Write( _description );
writer.Write( _infoTypes.Count );
for(int i=0; i<_infoTypes.Count;i++)
{
InformationType curType = _infoTypes[i] as InformationType;
writer.Write( curType.Name );
}
}
/// <summary>
/// Reads the object data from a dump store
/// </summary>
/// <param name="reader">reader to read the data</param>
/// <param name="chmFile">current CHMFile instance which reads from dump</param>
internal void ReadDump(ref BinaryReader reader, CHMFile chmFile)
{
_name = reader.ReadString();
_description = reader.ReadString();
int nCnt = reader.ReadInt32();
for(int i=0; i<nCnt; i++)
{
string sITName = reader.ReadString();
InformationType linkedType = chmFile.GetInformationType( sITName );
if(linkedType != null)
{
linkedType.SetCategoryFlag(true);
_infoTypes.Add(linkedType);
}
}
}
#endregion
/// <summary>
/// Merges the lineked information types from cat into this instance
/// </summary>
/// <param name="cat">category instance</param>
internal void MergeInfoTypes(Category cat)
{
if(cat!=null)
{
if(cat.InformationTypes.Count > 0)
{
for(int i=0;i<cat.InformationTypes.Count;i++)
{
InformationType curType = cat.InformationTypes[i] as InformationType;
if(!ContainsInformationType(curType.Name))
{
curType.SetCategoryFlag(true);
_infoTypes.Add(curType);
}
}
}
}
}
/// <summary>
/// Gets/Sets the reference count of this information type instance
/// </summary>
internal int ReferenceCount
{
get { return _referenceCount; }
set { _referenceCount = value; }
}
/// <summary>
/// Gets/Sets the name of the information type
/// </summary>
public string Name
{
get { return _name; }
set { _name = value; }
}
/// <summary>
/// Gets/Sets the description of the information type
/// </summary>
public string Description
{
get { return _description; }
set { _name = value; }
}
/// <summary>
/// Gets an ArrayList with the linked Information types
/// </summary>
public ArrayList InformationTypes
{
get { return _infoTypes; }
}
/// <summary>
/// Adds a new information type to the category
/// </summary>
/// <param name="type"></param>
public void AddInformationType(InformationType type)
{
_infoTypes.Add(type);
}
/// <summary>
/// Removes an information type from the category
/// </summary>
/// <param name="type"></param>
public void RemoveInformationType(InformationType type)
{
_infoTypes.Remove(type);
}
/// <summary>
/// Checks if the category contains an information type
/// </summary>
/// <param name="type">information type instance to check</param>
/// <returns>Return true if the information type is part of this category</returns>
public bool ContainsInformationType(InformationType type)
{
return _infoTypes.Contains(type);
}
/// <summary>
/// Checks if the category contains an information type
/// </summary>
/// <param name="name">name of the information type</param>
/// <returns>Return true if the information type is part of this category</returns>
public bool ContainsInformationType(string name)
{
for(int i=0;i<_infoTypes.Count;i++)
{
InformationType curType = _infoTypes[i] as InformationType;
if(curType.Name == name)
return true;
}
return false;
}
}
}

View File

@@ -0,0 +1,478 @@
using System;
using System.Collections;
using System.Text;
using System.IO;
using System.Globalization;
using System.Diagnostics;
using System.ComponentModel;
using HtmlHelp.ChmDecoding;
// using HtmlHelp.Storage;
namespace HtmlHelp
{
/// <summary>
/// The class <c>ChmFileInfo</c> only extracts system information from a CHM file.
/// It doesn't build the index and table of contents.
/// </summary>
public class ChmFileInfo
{
/// <summary>
/// Internal member storing the full filename
/// </summary>
private string _chmFileName = "";
/// <summary>
/// Internal member storing the associated chmfile object
/// </summary>
private CHMFile _associatedFile = null;
/// <summary>
/// Constructor for extrating the file information of the provided file.
/// The constructor opens the chm-file and reads its system data.
/// </summary>
/// <param name="chmFile">full file name which information should be extracted</param>
public ChmFileInfo(string chmFile)
{
if(!File.Exists(chmFile))
throw new ArgumentException("Chm file must exist on disk !", "chmFileName");
if( ! chmFile.ToLower().EndsWith(".chm") )
throw new ArgumentException("HtmlHelp file must have the extension .chm !", "chmFile");
_chmFileName = chmFile;
_associatedFile = new CHMFile(null, chmFile, true); // only load system data of chm
}
/// <summary>
/// Internal constructor used in the class <see cref="HtmlHelp.ChmDecoding.CHMFile">CHMFile</see>.
/// </summary>
/// <param name="associatedFile">associated chm file</param>
internal ChmFileInfo(CHMFile associatedFile)
{
_associatedFile = associatedFile;
if( _associatedFile == null)
throw new ArgumentException("Associated CHMFile instance must not be null !", "associatedFile");
}
#region default info properties
/// <summary>
/// Gets the full filename of the chm file
/// </summary>
public string ChmFileName
{
get
{
return _associatedFile.ChmFilePath;
}
}
/// <summary>
/// Gets a <see cref="System.IO.FileInfo">FileInfo</see> instance for the chm file.
/// </summary>
public FileInfo FileInfo
{
get { return new FileInfo(_associatedFile.ChmFilePath); }
}
#endregion
#region #SYSTEM properties
/// <summary>
/// Gets the file version of the chm file.
/// 2 for Compatibility=1.0, 3 for Compatibility=1.1
/// </summary>
public int FileVersion
{
get
{
if(_associatedFile != null)
return _associatedFile.FileVersion;
return 0;
}
}
/// <summary>
/// Gets the contents file name
/// </summary>
public string ContentsFile
{
get
{
if(_associatedFile != null)
return _associatedFile.ContentsFile;
return "";
}
}
/// <summary>
/// Gets the index file name
/// </summary>
public string IndexFile
{
get
{
if(_associatedFile != null)
return _associatedFile.IndexFile;
return "";
}
}
/// <summary>
/// Gets the default help topic
/// </summary>
public string DefaultTopic
{
get
{
if(_associatedFile != null)
return _associatedFile.DefaultTopic;
return "";
}
}
/// <summary>
/// Gets the title of the help window
/// </summary>
public string HelpWindowTitle
{
get
{
if(_associatedFile != null)
return _associatedFile.HelpWindowTitle;
return "";
}
}
/// <summary>
/// Gets the flag if DBCS is in use
/// </summary>
public bool DBCS
{
get
{
if(_associatedFile != null)
return _associatedFile.DBCS;
return false;
}
}
/// <summary>
/// Gets the flag if full-text-search is available
/// </summary>
public bool FullTextSearch
{
get
{
if(_associatedFile != null)
return _associatedFile.FullTextSearch;
return false;
}
}
/// <summary>
/// Gets the flag if the file has ALinks
/// </summary>
public bool HasALinks
{
get
{
if(_associatedFile != null)
return _associatedFile.HasALinks;
return false;
}
}
/// <summary>
/// Gets the flag if the file has KLinks
/// </summary>
public bool HasKLinks
{
get
{
if(_associatedFile != null)
return _associatedFile.HasKLinks;
return false;
}
}
/// <summary>
/// Gets the default window name
/// </summary>
public string DefaultWindow
{
get
{
if(_associatedFile != null)
return _associatedFile.DefaultWindow;
return "";
}
}
/// <summary>
/// Gets the file name of the compile file
/// </summary>
public string CompileFile
{
get
{
if(_associatedFile != null)
return _associatedFile.CompileFile;
return "";
}
}
/// <summary>
/// Gets the flag if the chm has a binary index file
/// </summary>
public bool BinaryIndex
{
get
{
if(_associatedFile != null)
return _associatedFile.BinaryIndex;
return false;
}
}
/// <summary>
/// Gets the flag if the chm has a binary index file
/// </summary>
public string CompilerVersion
{
get
{
if(_associatedFile != null)
return _associatedFile.CompilerVersion;
return "";
}
}
/// <summary>
/// Gets the flag if the chm has a binary toc file
/// </summary>
public bool BinaryTOC
{
get
{
if(_associatedFile != null)
return _associatedFile.BinaryTOC;
return false;
}
}
/// <summary>
/// Gets the font face of the read font property.
/// Empty string for default font.
/// </summary>
public string FontFace
{
get
{
if(_associatedFile != null)
return _associatedFile.FontFace;
return "";
}
}
/// <summary>
/// Gets the font size of the read font property.
/// 0 for default font size
/// </summary>
public double FontSize
{
get
{
if(_associatedFile != null)
return _associatedFile.FontSize;
return 0.0;
}
}
/// <summary>
/// Gets the character set of the read font property
/// 1 for default
/// </summary>
public int CharacterSet
{
get
{
if(_associatedFile != null)
return _associatedFile.CharacterSet;
return 1;
}
}
/// <summary>
/// Gets the codepage depending on the read font property
/// </summary>
public int CodePage
{
get
{
if(_associatedFile != null)
return _associatedFile.CodePage;
return 0;
}
}
/// <summary>
/// Gets the assiciated culture info
/// </summary>
public CultureInfo Culture
{
get
{
if(_associatedFile != null)
return _associatedFile.Culture;
return CultureInfo.CurrentCulture;
}
}
#endregion
#region #IDXHDR properties
/// <summary>
/// Gets the number of topic nodes including the contents and index files
/// </summary>
public int NumberOfTopicNodes
{
get
{
if(_associatedFile != null)
return _associatedFile.NumberOfTopicNodes;
return 0;
}
}
/// <summary>
/// Gets the ImageList string specyfied in the #IDXHDR file.
/// </summary>
/// <remarks>This property uses the #STRINGS file to extract the string at a given offset.</remarks>
public string ImageList
{
get
{
if(_associatedFile != null)
return _associatedFile.ImageList;
return "";
}
}
/// <summary>
/// Gets the background setting
/// </summary>
public int Background
{
get
{
if(_associatedFile != null)
return _associatedFile.Background;
return 0;
}
}
/// <summary>
/// Gets the foreground setting
/// </summary>
public int Foreground
{
get
{
if(_associatedFile != null)
return _associatedFile.Foreground;
return 0;
}
}
/// <summary>
/// Gets the FrameName string specyfied in the #IDXHDR file.
/// </summary>
/// <remarks>This property uses the #STRINGS file to extract the string at a given offset.</remarks>
public string FrameName
{
get
{
if(_associatedFile != null)
return _associatedFile.FrameName;
return "";
}
}
/// <summary>
/// Gets the WindowName string specyfied in the #IDXHDR file.
/// </summary>
/// <remarks>This property uses the #STRINGS file to extract the string at a given offset.</remarks>
public string WindowName
{
get
{
if(_associatedFile != null)
return _associatedFile.WindowName;
return "";
}
}
/// <summary>
/// Gets a string array containing the merged file names
/// </summary>
public string[] MergedFiles
{
get
{
if(_associatedFile != null)
return _associatedFile.MergedFiles;
return new string[0];
}
}
#endregion
}
}

View File

@@ -0,0 +1,23 @@
<?xml version="1.0"?>
<project name="CHMLibrary" default="build">
<property name="output.dir" value="..\bin" />
<target name="build" description="Build component">
<mkdir dir="${output.dir}" />
<csc target="library"
output="${output.dir}\CHMLibrary.dll"
optimize="true"
debug="true"
doc="${output.dir}\CHMLibrary.xml"
warninglevel="0">
<sources>
<include name="**/*.cs" />
</sources>
<references>
<include name="${output.dir}\Compression.dll" />
</references>
</csc>
</target>
</project>

View File

@@ -0,0 +1,894 @@
using System;
using System.IO;
using System.Collections;
using System.Data;
using HtmlHelp.ChmDecoding;
namespace HtmlHelp
{
/// <summary>
/// The class <c>HtmlHelpSystem</c> implements the main object for reading chm files
/// </summary>
public sealed class HtmlHelpSystem
{
/// <summary>
/// Private shared instance of current HtmlHelpSystem class
/// </summary>
private static HtmlHelpSystem _current=null;
/// <summary>
/// Internal member storing the attached files
/// </summary>
private ArrayList _chmFiles = new ArrayList();
/// <summary>
/// Internal member storing a merged table of contents
/// </summary>
private TableOfContents _toc = new TableOfContents();
/// <summary>
/// Internal member storing a merged index
/// </summary>
private Index _index = new Index();
/// <summary>
/// URL prefix for specifying a chm destination
/// </summary>
private static string _urlPrefix = "ms-its:";
/// <summary>
/// Internal flag specifying if the system should use the tree-images list
/// from HtmlHelp2. If false the standard CHM-Viewer pics will be used.
/// </summary>
private static bool _useHH2TreePics = false;
/// <summary>
/// Internal member storing the read information types
/// </summary>
private ArrayList _informationTypes = new ArrayList();
/// <summary>
/// Internal member storing the read categories
/// </summary>
private ArrayList _categories = new ArrayList();
/// <summary>
/// Gets/Sets the url prefix for specifying a chm destination
/// </summary>
public static string UrlPrefix
{
get { return _urlPrefix; }
set { _urlPrefix = value; }
}
public CHMStream.CHMStream BaseStream
{
get
{
CHMFile chm=(CHMFile)_chmFiles[0];
return chm.BaseStream;
}
}
/// <summary>
/// Gets/Sets the flag specifying if the system should use the tree-images list
/// from HtmlHelp2. If false the standard CHM-Viewer pics will be used.
/// </summary>
public static bool UseHH2TreePics
{
get { return _useHH2TreePics; }
set { _useHH2TreePics = value; }
}
/// <summary>
/// Gets the current HtmlHelpSystem instance
/// </summary>
public static HtmlHelpSystem Current
{
get
{
return _current;
}
}
/// <summary>
/// Standard constructor
/// </summary>
public HtmlHelpSystem() : this("")
{
}
/// <summary>
/// Constructor of the reader class
/// </summary>
/// <param name="chmFile">chm file to attach with the reader</param>
public HtmlHelpSystem(string chmFile)
{
_current = this;
OpenFile(chmFile);
}
/// <summary>
/// Opens a chm file and creates
/// </summary>
/// <param name="chmFile">full file path of the chm file to open</param>
/// <remarks>If you call this method, all existing merged files will be cleared.</remarks>
public void OpenFile(string chmFile)
{
OpenFile(chmFile, null);
}
/// <summary>
/// Opens a chm file and creates
/// </summary>
/// <param name="chmFile">full file path of the chm file to open</param>
/// <param name="dmpInfo">dumping info</param>
/// <remarks>If you call this method, all existing merged files will be cleared.</remarks>
public void OpenFile(string chmFile, DumpingInfo dmpInfo)
{
if( File.Exists(chmFile ) )
{
_chmFiles.Clear();
_toc.Clear();
_index.Clear();
_informationTypes.Clear();
_categories.Clear();
CHMFile newFile = new CHMFile(this, chmFile, dmpInfo);
_toc = new TableOfContents( newFile.TOC );
_index = new Index( newFile.IndexKLinks, newFile.IndexALinks );
_chmFiles.Add(newFile);
// add all infotypes and categories of the read file to this system instance
MergeFileInfoTypesCategories(newFile);
// check if the file has a merged files list
if( newFile.MergedFiles.Length > 0 )
{
// extract the path of the chm file (usually merged files are in the same path)
FileInfo fi = new FileInfo(chmFile);
string sPath = fi.DirectoryName;
for(int i=0; i<newFile.MergedFiles.Length; i++)
{
string sFile = newFile.MergedFiles[i];
if(sFile.Length > 0)
{
if(sFile[1] != ':') // no full path setting
{
sFile = Path.Combine(sPath, sFile);
}
MergeFile(sFile, dmpInfo, true);
}
}
// if (newFile.MergLinks.Count>0)
// RecalculateMergeLinks(newFile);
RemoveMergeLinks(); // clear all merge-links which have no target !
}
}
}
/// <summary>
/// Merges a chm file to the current help contents
/// </summary>
/// <param name="chmFile">full file path of the chm file to merge</param>
public void MergeFile(string chmFile)
{
MergeFile(chmFile, null);
}
/// <summary>
/// Merges a chm file to the current help contents
/// </summary>
/// <param name="chmFile">full file path of the chm file to merge</param>
/// <param name="dmpInfo">dumping info</param>
public void MergeFile(string chmFile, DumpingInfo dmpInfo)
{
MergeFile(chmFile, dmpInfo, false);
}
/// <summary>
/// Merges a chm file to the current help contents
/// </summary>
/// <param name="chmFile">full file path of the chm file to merge</param>
/// <param name="dmpInfo">dumping info</param>
/// <param name="mergedFileList">true if the merge is done because a merged file list
/// was found in the previously loaded CHM.</param>
internal void MergeFile(string chmFile, DumpingInfo dmpInfo, bool mergedFileList)
{
if( File.Exists(chmFile ) )
{
if( _chmFiles.Count == 1)
{
// if we open the first file, we directly point into the toc and index of this file.
// So that we don't merge the new toc's indexe's into the first file, we have to
// clone the internal arraylists first to a new instance of the toc/index holder classes.
ArrayList atoc = _toc.TOC;
ArrayList alinks = _index.ALinks;
ArrayList klinks = _index.KLinks;
_toc = new TableOfContents();
_index = new Index();
_toc.MergeToC( atoc );
_index.MergeIndex( alinks, IndexType.AssiciativeLinks );
_index.MergeIndex( klinks, IndexType.KeywordLinks );
}
CHMFile newFile = new CHMFile(this, chmFile, dmpInfo);
if(mergedFileList) // if we've called this method due to a merged file list merge
{
RecalculateMergeLinks(newFile);
_toc.MergeToC( newFile.TOC, _chmFiles );
_index.MergeIndex( newFile.IndexALinks, IndexType.AssiciativeLinks );
_index.MergeIndex( newFile.IndexKLinks, IndexType.KeywordLinks );
_chmFiles.Add(newFile);
// add all infotypes and categories of the read file to this system instance
MergeFileInfoTypesCategories(newFile);
}
else
{
_toc.MergeToC( newFile.TOC, _chmFiles );
_index.MergeIndex( newFile.IndexALinks, IndexType.AssiciativeLinks );
_index.MergeIndex( newFile.IndexKLinks, IndexType.KeywordLinks );
_chmFiles.Add(newFile);
// add all infotypes and categories of the read file to this system instance
MergeFileInfoTypesCategories(newFile);
// check if the file has a merged files list
if( newFile.MergedFiles.Length > 0 )
{
// extract the path of the chm file (usually merged files are in the same path)
FileInfo fi = new FileInfo(chmFile);
string sPath = fi.DirectoryName;
for(int i=0; i<newFile.MergedFiles.Length; i++)
{
string sFile = newFile.MergedFiles[i];
if(sFile.Length > 0)
{
if(sFile[1] != ':') // no full path setting
{
sFile = Path.Combine(sPath, sFile);
}
MergeFile(sFile, dmpInfo, true);
}
}
RemoveMergeLinks(); // clear all merge-links which have no target !
}
}
}
}
/// <summary>
/// Checks all Merg-links read till now. Checks if the merg-link points to the
/// file <c>currentFile</c>. If yes the link will be replaced by the contents of the
/// merged file.
/// </summary>
/// <param name="currentFile">Current CHMFile instance</param>
internal void RecalculateMergeLinks(CHMFile currentFile)
{
foreach(CHMFile curFile in _chmFiles)
{
if( curFile.MergLinks.Count > 0)
{
for(int i=0; i<curFile.MergLinks.Count; i++)
{
TOCItem curItem = curFile.MergLinks[i] as TOCItem;
string sMerge = curItem.MergeLink;
string [] sSplit = sMerge.Split( new char[]{':'} );
string sFName = "";
string sTarget = "";
if( sSplit.Length > 3) // merge info contains path name
{
sFName = sSplit[0] + ":" + sSplit[1];
sTarget = sSplit[3];
}
else if( sSplit.Length == 3)// merge info contains only file name
{
FileInfo fi = new FileInfo(currentFile.ChmFilePath);
string sPath = fi.DirectoryName;
string sFile = sSplit[0];
if(sFile.Length > 0)
{
if(sFile[1] != ':') // no full path setting
{
sFile = Path.Combine(sPath, sFile);
}
}
sFName = sFile;
sTarget = sSplit[2];
}
ArrayList arrToc = null;
if( (sFName.Length>0) && (sTarget.Length>0) )
{
// if this link points into the current file
if( sFName.ToLower() == currentFile.ChmFilePath.ToLower() )
{
if(sTarget.ToLower().IndexOf(".hhc") >= 0)
{
string sfCheck = sTarget;
// remove prefixing ./
while( (sfCheck[0]=='.') || (sfCheck[0]=='/') )
{
sfCheck = sfCheck.Substring(1);
}
if( currentFile.ContentsFile.ToLower() != sfCheck )
{
arrToc = currentFile.ParseHHC( sTarget );
if( arrToc.Count > 0)
{
}
}
else
{
arrToc = currentFile.TOC;
}
// target points to a complete TOC
int nCnt = 0;
foreach(TOCItem chkItem in arrToc)
{
if(nCnt == 0)
{
curItem.AssociatedFile = currentFile;
curItem.Children = chkItem.Children;
curItem.ChmFile = currentFile.ChmFilePath;
curItem.ImageIndex = chkItem.ImageIndex;
curItem.Local = chkItem.Local;
curItem.MergeLink = chkItem.MergeLink;
curItem.Name = chkItem.Name;
curItem.TocMode = chkItem.TocMode;
curItem.TopicOffset = chkItem.TopicOffset;
MarkChildrenAdded(chkItem.Children, curFile.MergLinks);
}
else
{
ArrayList checkList = null;
if(curItem.Parent != null)
checkList = curItem.Parent.Children;
else
checkList = curFile.TOC;
int nIdx = checkList.IndexOf(curItem);
if((nIdx+nCnt)>checkList.Count)
checkList.Add(chkItem);
else
checkList.Insert(nIdx+nCnt, chkItem);
curFile.MergLinks.Add(chkItem);
MarkChildrenAdded(chkItem.Children, curFile.MergLinks);
}
nCnt++;
}
}
else
{
// target points to a single topic
TOCItem chkItem = currentFile.GetTOCItemByLocal(sTarget);
if(chkItem != null)
{
curItem.AssociatedFile = currentFile;
curItem.Children = chkItem.Children;
curItem.ChmFile = currentFile.ChmFilePath;
curItem.ImageIndex = chkItem.ImageIndex;
curItem.Local = chkItem.Local;
curItem.MergeLink = chkItem.MergeLink;
curItem.Name = chkItem.Name;
curItem.TocMode = chkItem.TocMode;
curItem.TopicOffset = chkItem.TopicOffset;
curFile.MergLinks.Add(chkItem);
MarkChildrenAdded(chkItem.Children, curFile.MergLinks);
}
}
}
}
}
}
}
}
/// <summary>
/// Adds sub-items of an TOC-entry to the merg-linked list.
/// This will mark this item as "added" during the extra merge run
/// of the HtmlHelpSystem class.
/// </summary>
/// <param name="tocs">TOCItem list</param>
/// <param name="merged">Arraylist which holds the merged-items</param>
internal void MarkChildrenAdded(ArrayList tocs, ArrayList merged)
{
foreach(TOCItem curItem in tocs)
{
if(!merged.Contains(curItem))
{
merged.Add(curItem);
MarkChildrenAdded(curItem.Children, merged);
}
}
}
/// <summary>
/// Removes merge-links from the toc of files which were not loaded
/// </summary>
internal void RemoveMergeLinks()
{
foreach(CHMFile curFile in _chmFiles)
{
if( curFile.MergLinks.Count > 0)
{
while(curFile.MergLinks.Count > 0)
{
TOCItem curItem = curFile.MergLinks[0] as TOCItem;
if(curItem.MergeLink.Length > 0)
curFile.RemoveTOCItem(curItem);
curFile.MergLinks.RemoveAt(0);
}
}
}
}
/// <summary>
/// Merges the information types and categories read by the CHMFile instance
/// into the system instance
/// </summary>
/// <param name="chmFile">file instance</param>
private void MergeFileInfoTypesCategories(CHMFile chmFile)
{
if(chmFile.HasInformationTypes)
{
for(int i=0; i<chmFile.InformationTypes.Count;i++)
{
InformationType curType = chmFile.InformationTypes[i] as InformationType;
InformationType sysType = GetInformationType( curType.Name );
if( sysType == null)
_informationTypes.Add(curType);
else
curType.ReferenceCount++;
}
}
if(chmFile.HasCategories)
{
for(int i=0; i<chmFile.Categories.Count;i++)
{
Category curCat = chmFile.Categories[i] as Category;
Category sysCat = GetCategory( curCat.Name );
if(sysCat == null)
_categories.Add(curCat);
else
curCat.ReferenceCount++;
}
}
}
/// <summary>
/// Removes the information types and categories read by the CHMFile instance
/// </summary>
/// <param name="chmFile">file instance</param>
private void RemoveFileInfoTypesCategories(CHMFile chmFile)
{
if(chmFile.HasInformationTypes)
{
for(int i=0; i<chmFile.InformationTypes.Count;i++)
{
InformationType curType = chmFile.InformationTypes[i] as InformationType;
InformationType sysType = GetInformationType( curType.Name );
if(sysType != null)
{
sysType.ReferenceCount--;
if(sysType.ReferenceCount<=0)
_informationTypes.Remove(sysType);
}
}
}
if(chmFile.HasCategories)
{
for(int i=0; i<chmFile.Categories.Count;i++)
{
Category curCat = chmFile.Categories[i] as Category;
Category sysCat = GetCategory( curCat.Name );
if(sysCat != null)
{
sysCat.ReferenceCount--;
if(sysCat.ReferenceCount<=0)
_categories.Remove(sysCat);
}
}
}
}
/// <summary>
/// Removes a chm file from the internal file collection
/// </summary>
/// <param name="chmFile">full file path of the chm file to remove</param>
public void RemoveFile(string chmFile)
{
int nIdx = -1;
CHMFile removeInstance=null;
foreach(CHMFile curFile in _chmFiles)
{
nIdx++;
if( curFile.ChmFilePath.ToLower() == chmFile.ToLower() )
{
removeInstance = curFile;
break;
}
}
if(nIdx >= 0)
{
_toc.Clear(); // forces a rebuild of the merged toc
_index.Clear(); // force a rebuild of the merged index
RemoveFileInfoTypesCategories(removeInstance);
_chmFiles.RemoveAt(nIdx);
}
}
/// <summary>
/// Closes all files and destroys TOC/index
/// </summary>
public void CloseAllFiles()
{
for(int i=0; i < _chmFiles.Count; i++)
{
CHMFile curFile = _chmFiles[i] as CHMFile;
_chmFiles.RemoveAt(i);
curFile.Dispose();
i--;
}
_chmFiles.Clear();
_toc.Clear();
_index.Clear();
_informationTypes.Clear();
_categories.Clear();
}
/// <summary>
/// Gets an array of loaded chm files.
/// </summary>
public CHMFile[] FileList
{
get
{
CHMFile[] ret = new CHMFile[ _chmFiles.Count ];
for(int i=0;i<_chmFiles.Count;i++)
ret[i] = (CHMFile)_chmFiles[i];
return ret;
}
}
/// <summary>
/// Returns true if the HtmlHelpSystem instance contains 1 or more information types
/// </summary>
public bool HasInformationTypes
{
get { return (_informationTypes.Count>0); }
}
/// <summary>
/// Returns true if the HtmlHelpSystem instance contains 1 or more categories
/// </summary>
public bool HasCategories
{
get { return (_categories.Count>0); }
}
/// <summary>
/// Gets an ArrayList of <see cref="InformationType">InformationType</see> items
/// </summary>
public ArrayList InformationTypes
{
get { return _informationTypes; }
}
/// <summary>
/// Gets an ArrayList of <see cref="Category">Category</see> items
/// </summary>
public ArrayList Categories
{
get { return _categories; }
}
/// <summary>
/// Gets the information type specified by its name
/// </summary>
/// <param name="name">name of the information type to receive</param>
/// <returns>Returns the Instance for the name or null if not found</returns>
public InformationType GetInformationType(string name)
{
if(HasInformationTypes)
{
for(int i=0; i<_informationTypes.Count;i++)
{
InformationType iT = _informationTypes[i] as InformationType;
if(iT.Name == name)
return iT;
}
}
return null;
}
/// <summary>
/// Gets the category specifiyd by its name
/// </summary>
/// <param name="name">name of the category</param>
/// <returns>Returns the Instance for the name or null if not found</returns>
public Category GetCategory(string name)
{
if(HasCategories)
{
for(int i=0; i<_categories.Count;i++)
{
Category cat = _categories[i] as Category;
if(cat.Name == name)
return cat;
}
}
return null;
}
/// <summary>
/// Gets the default topic
/// </summary>
public string DefaultTopic
{
get
{
if( _chmFiles.Count > 0 )
{
foreach(CHMFile curFile in _chmFiles)
{
if( curFile.DefaultTopic.Length > 0)
{
return curFile.FormURL( curFile.DefaultTopic );
}
}
}
return "about:blank";
}
}
/// <summary>
/// Gets a merged table of contents of all opened chm files
/// </summary>
public TableOfContents TableOfContents
{
get
{
if( _chmFiles.Count > 0 )
{
if( _toc.Count() <= 0)
{
// merge toc of files
foreach(CHMFile curFile in _chmFiles)
{
_toc.MergeToC( curFile.TOC );
}
}
}
return _toc;
}
}
/// <summary>
/// Gets a merged index of all opened chm files
/// </summary>
public Index Index
{
get
{
if( _chmFiles.Count > 0 )
{
if( (_index.Count(IndexType.KeywordLinks)+_index.Count(IndexType.AssiciativeLinks)) <= 0)
{
// merge index files
foreach(CHMFile curFile in _chmFiles)
{
_index.MergeIndex( curFile.IndexKLinks, IndexType.KeywordLinks);
_index.MergeIndex( curFile.IndexALinks, IndexType.AssiciativeLinks);
}
}
}
return _index;
}
}
/// <summary>
/// Gets a flag if the current instance offers a table of contents
/// </summary>
public bool HasTableOfContents
{
get
{
return (TableOfContents.Count() > 0);
}
}
/// <summary>
/// Gets a flag if the current instance offers an index
/// </summary>
public bool HasIndex
{
get
{
return (HasALinks || HasKLinks);
}
}
/// <summary>
/// Gets a flag if the index holds klinks
/// </summary>
public bool HasKLinks
{
get
{
return (_index.Count(IndexType.KeywordLinks) > 0);
}
}
/// <summary>
/// Gets a flag if the index holds alinks
/// </summary>
public bool HasALinks
{
get
{
return (_index.Count(IndexType.AssiciativeLinks) > 0);
}
}
/// <summary>
/// Gets a flag if the current instance supports fulltext searching
/// </summary>
public bool FullTextSearch
{
get
{
bool bRet = false;
foreach(CHMFile curFile in _chmFiles)
{
bRet |= curFile.FullTextSearch;
}
return bRet;
}
}
/// <summary>
/// Performs a full-text search over the chm files
/// </summary>
/// <param name="words">words to search</param>
/// <param name="partialMatches">true if partial word should be matched also
/// ( if this is true a search of 'support' will match 'supports', otherwise not )</param>
/// <param name="titleOnly">true if titles only</param>
/// <returns>A DataTable containing the search hits</returns>
public DataTable PerformSearch(string words, bool partialMatches, bool titleOnly)
{
return PerformSearch(words, -1, partialMatches, titleOnly);
}
/// <summary>
/// Performs a full-text search over the chm files
/// </summary>
/// <param name="words">words to search</param>
/// <param name="MaxResults">maximal number of hits to return</param>
/// <param name="partialMatches">true if partial word should be matched also
/// ( if this is true a search of 'support' will match 'supports', otherwise not )</param>
/// <param name="titleOnly">true if titles only</param>
/// <returns>A DataTable containing the search hits</returns>
public DataTable PerformSearch(string words, int MaxResults, bool partialMatches, bool titleOnly)
{
if( ! FullTextSearch )
return null;
DataTable dtResult = null;
int nCnt = 0;
foreach(CHMFile curFile in _chmFiles)
{
if(nCnt == 0)
{
if(curFile.FullTextSearchEngine.CanSearch)
{
if(curFile.FullTextSearchEngine.Search(words, MaxResults, partialMatches, titleOnly))
{
dtResult = curFile.FullTextSearchEngine.Hits;
dtResult.DefaultView.Sort = "Rating DESC";
}
}
}
else
{
if(curFile.FullTextSearchEngine.CanSearch)
{
if(curFile.FullTextSearchEngine.Search(words, MaxResults, partialMatches, titleOnly))
{
DataTable table = curFile.FullTextSearchEngine.Hits;
// append rows from 2nd file
foreach(DataRow curRow in table.Rows)
{
dtResult.ImportRow( curRow );
}
dtResult.DefaultView.Sort = "Rating DESC";
// adjust max hits
if(MaxResults >= 0)
{
if(dtResult.DefaultView.Count > MaxResults)
{
for(int i=MaxResults-1; i<dtResult.DefaultView.Count-1;i++)
{
if(dtResult.DefaultView[i].Row.RowState != DataRowState.Deleted)
{
dtResult.DefaultView[i].Row.Delete();
dtResult.DefaultView[i].Row.AcceptChanges();
i--;
}
}
dtResult.AcceptChanges();
dtResult.DefaultView.Sort = "Rating DESC";
}
}
}
}
}
nCnt++;
}
return dtResult;
}
}
}

View File

@@ -0,0 +1,855 @@
//
// System.Web.HttpUtility
//
// Authors:
// Patrik Torstensson (Patrik.Torstensson@labs2.com)
// Wictor Wil<69>n (decode/encode functions) (wictor@ibizkit.se)
// Tim Coleman (tim@timcoleman.com)
// Gonzalo Paniagua Javier (gonzalo@ximian.com)
//
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System;
using System.Collections;
using System.Globalization;
using System.IO;
using System.Text;
// using System.Web.Util;
namespace HtmlHelp.ChmDecoding
{
public sealed class HttpUtility {
#region Fields
const string _hex = "0123456789ABCDEF";
const string _chars = "<>;:.?=&@*+%/\\";
static Hashtable entities;
static object lock_ = new object ();
#endregion // Fields
static Hashtable Entities {
get {
lock (lock_) {
if (entities == null)
InitEntities ();
return entities;
}
}
}
#region Constructors
static void InitEntities ()
{
// Build the hash table of HTML entity references. This list comes
// from the HTML 4.01 W3C recommendation.
entities = new Hashtable ();
entities.Add ("nbsp", '\u00A0');
entities.Add ("iexcl", '\u00A1');
entities.Add ("cent", '\u00A2');
entities.Add ("pound", '\u00A3');
entities.Add ("curren", '\u00A4');
entities.Add ("yen", '\u00A5');
entities.Add ("brvbar", '\u00A6');
entities.Add ("sect", '\u00A7');
entities.Add ("uml", '\u00A8');
entities.Add ("copy", '\u00A9');
entities.Add ("ordf", '\u00AA');
entities.Add ("laquo", '\u00AB');
entities.Add ("not", '\u00AC');
entities.Add ("shy", '\u00AD');
entities.Add ("reg", '\u00AE');
entities.Add ("macr", '\u00AF');
entities.Add ("deg", '\u00B0');
entities.Add ("plusmn", '\u00B1');
entities.Add ("sup2", '\u00B2');
entities.Add ("sup3", '\u00B3');
entities.Add ("acute", '\u00B4');
entities.Add ("micro", '\u00B5');
entities.Add ("para", '\u00B6');
entities.Add ("middot", '\u00B7');
entities.Add ("cedil", '\u00B8');
entities.Add ("sup1", '\u00B9');
entities.Add ("ordm", '\u00BA');
entities.Add ("raquo", '\u00BB');
entities.Add ("frac14", '\u00BC');
entities.Add ("frac12", '\u00BD');
entities.Add ("frac34", '\u00BE');
entities.Add ("iquest", '\u00BF');
entities.Add ("Agrave", '\u00C0');
entities.Add ("Aacute", '\u00C1');
entities.Add ("Acirc", '\u00C2');
entities.Add ("Atilde", '\u00C3');
entities.Add ("Auml", '\u00C4');
entities.Add ("Aring", '\u00C5');
entities.Add ("AElig", '\u00C6');
entities.Add ("Ccedil", '\u00C7');
entities.Add ("Egrave", '\u00C8');
entities.Add ("Eacute", '\u00C9');
entities.Add ("Ecirc", '\u00CA');
entities.Add ("Euml", '\u00CB');
entities.Add ("Igrave", '\u00CC');
entities.Add ("Iacute", '\u00CD');
entities.Add ("Icirc", '\u00CE');
entities.Add ("Iuml", '\u00CF');
entities.Add ("ETH", '\u00D0');
entities.Add ("Ntilde", '\u00D1');
entities.Add ("Ograve", '\u00D2');
entities.Add ("Oacute", '\u00D3');
entities.Add ("Ocirc", '\u00D4');
entities.Add ("Otilde", '\u00D5');
entities.Add ("Ouml", '\u00D6');
entities.Add ("times", '\u00D7');
entities.Add ("Oslash", '\u00D8');
entities.Add ("Ugrave", '\u00D9');
entities.Add ("Uacute", '\u00DA');
entities.Add ("Ucirc", '\u00DB');
entities.Add ("Uuml", '\u00DC');
entities.Add ("Yacute", '\u00DD');
entities.Add ("THORN", '\u00DE');
entities.Add ("szlig", '\u00DF');
entities.Add ("agrave", '\u00E0');
entities.Add ("aacute", '\u00E1');
entities.Add ("acirc", '\u00E2');
entities.Add ("atilde", '\u00E3');
entities.Add ("auml", '\u00E4');
entities.Add ("aring", '\u00E5');
entities.Add ("aelig", '\u00E6');
entities.Add ("ccedil", '\u00E7');
entities.Add ("egrave", '\u00E8');
entities.Add ("eacute", '\u00E9');
entities.Add ("ecirc", '\u00EA');
entities.Add ("euml", '\u00EB');
entities.Add ("igrave", '\u00EC');
entities.Add ("iacute", '\u00ED');
entities.Add ("icirc", '\u00EE');
entities.Add ("iuml", '\u00EF');
entities.Add ("eth", '\u00F0');
entities.Add ("ntilde", '\u00F1');
entities.Add ("ograve", '\u00F2');
entities.Add ("oacute", '\u00F3');
entities.Add ("ocirc", '\u00F4');
entities.Add ("otilde", '\u00F5');
entities.Add ("ouml", '\u00F6');
entities.Add ("divide", '\u00F7');
entities.Add ("oslash", '\u00F8');
entities.Add ("ugrave", '\u00F9');
entities.Add ("uacute", '\u00FA');
entities.Add ("ucirc", '\u00FB');
entities.Add ("uuml", '\u00FC');
entities.Add ("yacute", '\u00FD');
entities.Add ("thorn", '\u00FE');
entities.Add ("yuml", '\u00FF');
entities.Add ("fnof", '\u0192');
entities.Add ("Alpha", '\u0391');
entities.Add ("Beta", '\u0392');
entities.Add ("Gamma", '\u0393');
entities.Add ("Delta", '\u0394');
entities.Add ("Epsilon", '\u0395');
entities.Add ("Zeta", '\u0396');
entities.Add ("Eta", '\u0397');
entities.Add ("Theta", '\u0398');
entities.Add ("Iota", '\u0399');
entities.Add ("Kappa", '\u039A');
entities.Add ("Lambda", '\u039B');
entities.Add ("Mu", '\u039C');
entities.Add ("Nu", '\u039D');
entities.Add ("Xi", '\u039E');
entities.Add ("Omicron", '\u039F');
entities.Add ("Pi", '\u03A0');
entities.Add ("Rho", '\u03A1');
entities.Add ("Sigma", '\u03A3');
entities.Add ("Tau", '\u03A4');
entities.Add ("Upsilon", '\u03A5');
entities.Add ("Phi", '\u03A6');
entities.Add ("Chi", '\u03A7');
entities.Add ("Psi", '\u03A8');
entities.Add ("Omega", '\u03A9');
entities.Add ("alpha", '\u03B1');
entities.Add ("beta", '\u03B2');
entities.Add ("gamma", '\u03B3');
entities.Add ("delta", '\u03B4');
entities.Add ("epsilon", '\u03B5');
entities.Add ("zeta", '\u03B6');
entities.Add ("eta", '\u03B7');
entities.Add ("theta", '\u03B8');
entities.Add ("iota", '\u03B9');
entities.Add ("kappa", '\u03BA');
entities.Add ("lambda", '\u03BB');
entities.Add ("mu", '\u03BC');
entities.Add ("nu", '\u03BD');
entities.Add ("xi", '\u03BE');
entities.Add ("omicron", '\u03BF');
entities.Add ("pi", '\u03C0');
entities.Add ("rho", '\u03C1');
entities.Add ("sigmaf", '\u03C2');
entities.Add ("sigma", '\u03C3');
entities.Add ("tau", '\u03C4');
entities.Add ("upsilon", '\u03C5');
entities.Add ("phi", '\u03C6');
entities.Add ("chi", '\u03C7');
entities.Add ("psi", '\u03C8');
entities.Add ("omega", '\u03C9');
entities.Add ("thetasym", '\u03D1');
entities.Add ("upsih", '\u03D2');
entities.Add ("piv", '\u03D6');
entities.Add ("bull", '\u2022');
entities.Add ("hellip", '\u2026');
entities.Add ("prime", '\u2032');
entities.Add ("Prime", '\u2033');
entities.Add ("oline", '\u203E');
entities.Add ("frasl", '\u2044');
entities.Add ("weierp", '\u2118');
entities.Add ("image", '\u2111');
entities.Add ("real", '\u211C');
entities.Add ("trade", '\u2122');
entities.Add ("alefsym", '\u2135');
entities.Add ("larr", '\u2190');
entities.Add ("uarr", '\u2191');
entities.Add ("rarr", '\u2192');
entities.Add ("darr", '\u2193');
entities.Add ("harr", '\u2194');
entities.Add ("crarr", '\u21B5');
entities.Add ("lArr", '\u21D0');
entities.Add ("uArr", '\u21D1');
entities.Add ("rArr", '\u21D2');
entities.Add ("dArr", '\u21D3');
entities.Add ("hArr", '\u21D4');
entities.Add ("forall", '\u2200');
entities.Add ("part", '\u2202');
entities.Add ("exist", '\u2203');
entities.Add ("empty", '\u2205');
entities.Add ("nabla", '\u2207');
entities.Add ("isin", '\u2208');
entities.Add ("notin", '\u2209');
entities.Add ("ni", '\u220B');
entities.Add ("prod", '\u220F');
entities.Add ("sum", '\u2211');
entities.Add ("minus", '\u2212');
entities.Add ("lowast", '\u2217');
entities.Add ("radic", '\u221A');
entities.Add ("prop", '\u221D');
entities.Add ("infin", '\u221E');
entities.Add ("ang", '\u2220');
entities.Add ("and", '\u2227');
entities.Add ("or", '\u2228');
entities.Add ("cap", '\u2229');
entities.Add ("cup", '\u222A');
entities.Add ("int", '\u222B');
entities.Add ("there4", '\u2234');
entities.Add ("sim", '\u223C');
entities.Add ("cong", '\u2245');
entities.Add ("asymp", '\u2248');
entities.Add ("ne", '\u2260');
entities.Add ("equiv", '\u2261');
entities.Add ("le", '\u2264');
entities.Add ("ge", '\u2265');
entities.Add ("sub", '\u2282');
entities.Add ("sup", '\u2283');
entities.Add ("nsub", '\u2284');
entities.Add ("sube", '\u2286');
entities.Add ("supe", '\u2287');
entities.Add ("oplus", '\u2295');
entities.Add ("otimes", '\u2297');
entities.Add ("perp", '\u22A5');
entities.Add ("sdot", '\u22C5');
entities.Add ("lceil", '\u2308');
entities.Add ("rceil", '\u2309');
entities.Add ("lfloor", '\u230A');
entities.Add ("rfloor", '\u230B');
entities.Add ("lang", '\u2329');
entities.Add ("rang", '\u232A');
entities.Add ("loz", '\u25CA');
entities.Add ("spades", '\u2660');
entities.Add ("clubs", '\u2663');
entities.Add ("hearts", '\u2665');
entities.Add ("diams", '\u2666');
entities.Add ("quot", '\u0022');
entities.Add ("amp", '\u0026');
entities.Add ("lt", '\u003C');
entities.Add ("gt", '\u003E');
entities.Add ("OElig", '\u0152');
entities.Add ("oelig", '\u0153');
entities.Add ("Scaron", '\u0160');
entities.Add ("scaron", '\u0161');
entities.Add ("Yuml", '\u0178');
entities.Add ("circ", '\u02C6');
entities.Add ("tilde", '\u02DC');
entities.Add ("ensp", '\u2002');
entities.Add ("emsp", '\u2003');
entities.Add ("thinsp", '\u2009');
entities.Add ("zwnj", '\u200C');
entities.Add ("zwj", '\u200D');
entities.Add ("lrm", '\u200E');
entities.Add ("rlm", '\u200F');
entities.Add ("ndash", '\u2013');
entities.Add ("mdash", '\u2014');
entities.Add ("lsquo", '\u2018');
entities.Add ("rsquo", '\u2019');
entities.Add ("sbquo", '\u201A');
entities.Add ("ldquo", '\u201C');
entities.Add ("rdquo", '\u201D');
entities.Add ("bdquo", '\u201E');
entities.Add ("dagger", '\u2020');
entities.Add ("Dagger", '\u2021');
entities.Add ("permil", '\u2030');
entities.Add ("lsaquo", '\u2039');
entities.Add ("rsaquo", '\u203A');
entities.Add ("euro", '\u20AC');
}
public HttpUtility ()
{
}
#endregion // Constructors
#region Methods
public static void HtmlAttributeEncode (string s, TextWriter output)
{
output.Write(HtmlAttributeEncode(s));
}
public static string HtmlAttributeEncode (string s)
{
if (null == s)
return null;
if (s.IndexOf ('&') == -1 && s.IndexOf ('"') == -1)
return s;
StringBuilder output = new StringBuilder ();
foreach (char c in s)
switch (c) {
case '&' :
output.Append ("&amp;");
break;
case '"' :
output.Append ("&quot;");
break;
default:
output.Append (c);
break;
}
return output.ToString();
}
public static string UrlDecode (string str)
{
return UrlDecode(str, Encoding.UTF8);
}
private static char [] GetChars (MemoryStream b, Encoding e)
{
return e.GetChars (b.GetBuffer (), 0, (int) b.Length);
}
public static string UrlDecode (string s, Encoding e)
{
if (null == s)
return null;
if (s.IndexOf ('%') == -1 && s.IndexOf ('+') == -1)
return s;
if (e == null)
e = Encoding.UTF8;
StringBuilder output = new StringBuilder ();
long len = s.Length;
NumberStyles hexa = NumberStyles.HexNumber;
MemoryStream bytes = new MemoryStream ();
for (int i = 0; i < len; i++) {
if (s [i] == '%' && i + 2 < len) {
if (s [i + 1] == 'u' && i + 5 < len) {
if (bytes.Length > 0) {
output.Append (GetChars (bytes, e));
bytes.SetLength (0);
}
output.Append ((char) Int32.Parse (s.Substring (i + 2, 4), hexa));
i += 5;
} else {
bytes.WriteByte ((byte) Int32.Parse (s.Substring (i + 1, 2), hexa));
i += 2;
}
continue;
}
if (bytes.Length > 0) {
output.Append (GetChars (bytes, e));
bytes.SetLength (0);
}
if (s [i] == '+') {
output.Append (' ');
} else {
output.Append (s [i]);
}
}
if (bytes.Length > 0) {
output.Append (GetChars (bytes, e));
}
bytes = null;
return output.ToString ();
}
public static string UrlDecode (byte [] bytes, Encoding e)
{
if (bytes == null)
return null;
return UrlDecode (bytes, 0, bytes.Length, e);
}
private static int GetInt (byte b)
{
char c = Char.ToUpper ((char) b);
if (c >= '0' && c <= '9')
return c - '0';
if (c < 'A' || c > 'F')
return 0;
return (c - 'A' + 10);
}
private static char GetChar (byte [] bytes, int offset, int length)
{
int value = 0;
int end = length + offset;
for (int i = offset; i < end; i++)
value = (value << 4) + GetInt (bytes [offset]);
return (char) value;
}
public static string UrlDecode (byte [] bytes, int offset, int count, Encoding e)
{
if (bytes == null || count == 0)
return null;
if (bytes == null)
throw new ArgumentNullException ("bytes");
if (offset < 0 || offset > bytes.Length)
throw new ArgumentOutOfRangeException ("offset");
if (count < 0 || offset + count > bytes.Length)
throw new ArgumentOutOfRangeException ("count");
StringBuilder output = new StringBuilder ();
MemoryStream acc = new MemoryStream ();
int end = count + offset;
for (int i = offset; i < end; i++) {
if (bytes [i] == '%' && i + 2 < count) {
if (bytes [i + 1] == (byte) 'u' && i + 5 < end) {
if (acc.Length > 0) {
output.Append (GetChars (acc, e));
acc.SetLength (0);
}
output.Append (GetChar (bytes, offset + 2, 4));
i += 5;
} else {
acc.WriteByte ((byte) GetChar (bytes, offset + 1, 2));
i += 2;
}
continue;
}
if (acc.Length > 0) {
output.Append (GetChars (acc, e));
acc.SetLength (0);
}
if (bytes [i] == '+') {
output.Append (' ');
} else {
output.Append ((char) bytes [i]);
}
}
if (acc.Length > 0) {
output.Append (GetChars (acc, e));
}
acc = null;
return output.ToString ();
}
public static byte [] UrlDecodeToBytes (byte [] bytes)
{
if (bytes == null)
return null;
return UrlDecodeToBytes (bytes, 0, bytes.Length);
}
public static byte [] UrlDecodeToBytes (string str)
{
return UrlDecodeToBytes (str, Encoding.UTF8);
}
public static byte [] UrlDecodeToBytes (string str, Encoding e)
{
if (str == null)
return null;
if (e == null)
throw new ArgumentNullException ("e");
return UrlDecodeToBytes (e.GetBytes (str));
}
public static byte [] UrlDecodeToBytes (byte [] bytes, int offset, int count)
{
if (bytes == null)
return null;
int len = bytes.Length;
if (offset < 0 || offset >= len)
throw new ArgumentOutOfRangeException("offset");
if (count < 0 || offset > len - count)
throw new ArgumentOutOfRangeException("count");
MemoryStream result = new MemoryStream ();
int end = offset + count;
for (int i = offset; i < end; i++){
char c = (char) bytes [i];
if (c == '+')
c = ' ';
else if (c == '%' && i < end - 2) {
c = GetChar (bytes, i, 2);
i += 2;
}
result.WriteByte ((byte) c);
}
return result.ToArray ();
}
public static string UrlEncode(string str)
{
return UrlEncode(str, Encoding.UTF8);
}
public static string UrlEncode (string s, Encoding Enc)
{
if (s == null)
return null;
if (s == "")
return "";
byte [] bytes = Enc.GetBytes (s);
byte [] b =UrlEncodeToBytes (bytes, 0, bytes.Length);
return Encoding.ASCII.GetString (b,0,b.Length);
}
public static string UrlEncode (byte [] bytes)
{
if (bytes == null)
return null;
if (bytes.Length == 0)
return "";
byte []b=UrlEncodeToBytes(bytes, 0, bytes.Length);
return Encoding.ASCII.GetString (b,0,b.Length);
}
public static string UrlEncode (byte [] bytes, int offset, int count)
{
if (bytes == null)
return null;
if (bytes.Length == 0)
return "";
byte []b=UrlEncodeToBytes(bytes, offset, count);
return Encoding.ASCII.GetString (b,0,b.Length);
}
public static byte [] UrlEncodeToBytes (string str)
{
return UrlEncodeToBytes (str, Encoding.UTF8);
}
public static byte [] UrlEncodeToBytes (string str, Encoding e)
{
if (str == null)
return null;
if (str == "")
return new byte [0];
byte [] bytes = e.GetBytes (str);
return UrlEncodeToBytes (bytes, 0, bytes.Length);
}
public static byte [] UrlEncodeToBytes (byte [] bytes)
{
if (bytes == null)
return null;
if (bytes.Length == 0)
return new byte [0];
return UrlEncodeToBytes (bytes, 0, bytes.Length);
}
static char [] hexChars = "0123456789abcdef".ToCharArray ();
public static byte [] UrlEncodeToBytes (byte [] bytes, int offset, int count)
{
if (bytes == null)
return null;
int len = bytes.Length;
if (len == 0)
return new byte [0];
if (offset < 0 || offset >= len)
throw new ArgumentOutOfRangeException("offset");
if (count < 0 || count > len - offset)
throw new ArgumentOutOfRangeException("count");
MemoryStream result = new MemoryStream ();
int end = offset + count;
for (int i = offset; i < end; i++) {
char c = (char) bytes [i];
if ((c == ' ') || (c < '0' && c != '-' && c != '.') ||
(c < 'A' && c > '9') ||
(c > 'Z' && c < 'a' && c != '_') ||
(c > 'z')) {
result.WriteByte ((byte) '%');
int idx = ((int) c) >> 4;
result.WriteByte ((byte) hexChars [idx]);
idx = ((int) c) & 0x0F;
result.WriteByte ((byte) hexChars [idx]);
} else {
result.WriteByte ((byte) c);
}
}
return result.ToArray ();
}
public static string UrlEncodeUnicode (string str)
{
if (str == null)
return null;
StringBuilder result = new StringBuilder ();
int end = str.Length;
for (int i = 0; i < end; i++) {
int idx;
char c = str [i];
if (c > 255) {
result.Append ("%u");
idx = ((int) c) >> 24;
result.Append (hexChars [idx]);
idx = (((int) c) >> 16) & 0x0F;
result.Append (hexChars [idx]);
idx = (((int) c) >> 8) & 0x0F;
result.Append (hexChars [idx]);
idx = ((int) c) & 0x0F;
result.Append (hexChars [idx]);
continue;
}
if ((c == ' ') || (c < '0' && c != '-' && c != '.') ||
(c < 'A' && c > '9') ||
(c > 'Z' && c < 'a' && c != '_') ||
(c > 'z')) {
result.Append ('%');
idx = ((int) c) >> 4;
result.Append (hexChars [idx]);
idx = ((int) c) & 0x0F;
result.Append (hexChars [idx]);
continue;
}
result.Append (c);
}
return result.ToString ();
}
public static byte [] UrlEncodeUnicodeToBytes (string str)
{
if (str == null)
return null;
if (str == "")
return new byte [0];
return Encoding.ASCII.GetBytes (UrlEncodeUnicode (str));
}
/// <summary>
/// Decodes an HTML-encoded string and returns the decoded string.
/// </summary>
/// <param name="s">The HTML string to decode. </param>
/// <returns>The decoded text.</returns>
public static string HtmlDecode (string s)
{
if (s == null)
throw new ArgumentNullException ("s");
if (s.IndexOf ('&') == -1)
return s;
bool insideEntity = false; // used to indicate that we are in a potential entity
string entity = String.Empty;
StringBuilder output = new StringBuilder ();
int len = s.Length;
for (int i = 0; i < len; i++) {
char c = s [i];
switch (c) {
case '&' :
output.Append (entity);
entity = "&";
insideEntity = true;
break;
case ';' :
if (!insideEntity) {
output.Append (c);
break;
}
entity += c;
int length = entity.Length;
if (length >= 2 && entity[1] == '#' && entity[2] != ';')
entity = ((char) Int32.Parse (entity.Substring (2, entity.Length - 3))).ToString();
else if (length > 1 && Entities.ContainsKey (entity.Substring (1, entity.Length - 2)))
entity = Entities [entity.Substring (1, entity.Length - 2)].ToString ();
output.Append (entity);
entity = String.Empty;
insideEntity = false;
break;
default :
if (insideEntity)
entity += c;
else
output.Append (c);
break;
}
}
output.Append (entity);
return output.ToString ();
}
/// <summary>
/// Decodes an HTML-encoded string and sends the resulting output to a TextWriter output stream.
/// </summary>
/// <param name="s">The HTML string to decode</param>
/// <param name="output">The TextWriter output stream containing the decoded string. </param>
public static void HtmlDecode(string s, TextWriter output)
{
if (s != null)
output.Write (HtmlDecode (s));
}
/// <summary>
/// HTML-encodes a string and returns the encoded string.
/// </summary>
/// <param name="s">The text string to encode. </param>
/// <returns>The HTML-encoded text.</returns>
public static string HtmlEncode (string s)
{
if (s == null)
return null;
StringBuilder output = new StringBuilder ();
foreach (char c in s)
switch (c) {
case '&' :
output.Append ("&amp;");
break;
case '>' :
output.Append ("&gt;");
break;
case '<' :
output.Append ("&lt;");
break;
case '"' :
output.Append ("&quot;");
break;
default:
if ((int) c > 128) {
output.Append ("&#");
output.Append (((int) c).ToString ());
output.Append (";");
}
else
output.Append (c);
break;
}
return output.ToString ();
}
/// <summary>
/// HTML-encodes a string and sends the resulting output to a TextWriter output stream.
/// </summary>
/// <param name="s">The string to encode. </param>
/// <param name="output">The TextWriter output stream containing the encoded string. </param>
public static void HtmlEncode(string s, TextWriter output)
{
if (s != null)
output.Write (HtmlEncode (s));
}
#if NET_1_1
public string UrlPathEncode (string s)
{
if (s == null)
return null;
int idx = s.IndexOf ("?");
string s2 = null;
if (idx != -1) {
s2 = s.Substring (0, idx-1);
s2 = UrlEncode (s2) + s.Substring (idx);
} else {
s2 = UrlEncode (s);
}
return s2;
}
#endif
#endregion // Methods
}
}

View File

@@ -0,0 +1,322 @@
using System;
using System.Diagnostics;
using System.Collections;
using HtmlHelp.ChmDecoding;
namespace HtmlHelp
{
/// <summary>
/// Enumeration for specifying the index type
/// </summary>
public enum IndexType
{
/// <summary>
/// Keyword links should be used
/// </summary>
KeywordLinks = 0,
/// <summary>
/// Associative links should be used
/// </summary>
AssiciativeLinks = 1
}
/// <summary>
/// The class <c>Index</c> holds the (keyword links) KLinks and (associative links) ALinks of the htmlhelp
/// system. It implements methods for easy index-based searching.
/// </summary>
public class Index
{
private ArrayList _kLinks = new ArrayList();
private ArrayList _aLinks = new ArrayList();
/// <summary>
/// Standard constructor
/// </summary>
public Index()
{
}
/// <summary>
/// Constructor of the class
/// </summary>
/// <param name="kLinks">arraylist with keyword links</param>
/// <param name="aLinks">arraylist with associative links</param>
public Index(ArrayList kLinks, ArrayList aLinks)
{
_kLinks= kLinks;
_aLinks = aLinks;
}
/// <summary>
/// Clears the current toc
/// </summary>
public void Clear()
{
if(_aLinks != null)
_aLinks.Clear();
if(_kLinks != null)
_kLinks.Clear();
}
/// <summary>
/// Gets the number of index items for a specific type
/// </summary>
/// <param name="typeOfIndex">type of index</param>
/// <returns>Returns the number of index items for a specific type</returns>
public int Count(IndexType typeOfIndex)
{
ArrayList _index = null;
switch( typeOfIndex )
{
case IndexType.AssiciativeLinks: _index = _aLinks; break;
case IndexType.KeywordLinks: _index = _kLinks; break;
}
if(_index != null)
return _index.Count;
return 0;
}
/// <summary>
/// Gets the internal index list of keyword links
/// </summary>
public ArrayList KLinks
{
get
{
if(_kLinks==null)
_kLinks = new ArrayList();
return _kLinks;
}
}
/// <summary>
/// Gets the internal index list of associative links
/// </summary>
public ArrayList ALinks
{
get
{
if(_aLinks==null)
_aLinks = new ArrayList();
return _aLinks;
}
}
/// <summary>
/// Merges the the index list <c>arrIndex</c> into the current one
/// </summary>
/// <param name="arrIndex">indexlist which should be merged with the current one</param>
/// <param name="typeOfIndex">type of index to merge</param>
public void MergeIndex( ArrayList arrIndex, IndexType typeOfIndex )
{
ArrayList _index = null;
switch(typeOfIndex)
{
case IndexType.AssiciativeLinks: _index = _aLinks;break;
case IndexType.KeywordLinks: _index = _kLinks;break;
}
foreach(IndexItem curItem in arrIndex)
{
//IndexItem searchItem = ContainsIndex(_index, curItem.KeyWordPath);
int insertIndex=0;
IndexItem searchItem = BinSearch(0, _index.Count-1, _index, curItem.KeyWordPath, false, false, ref insertIndex);
if(searchItem != null)
{
// extend the keywords topics
foreach(IndexTopic curEntry in curItem.Topics)
{
searchItem.Topics.Add( curEntry );
}
}
else
{
// add the item to the global collection
//_index.Add( curItem );
if(insertIndex > _index.Count)
_index.Add(curItem);
else
_index.Insert(insertIndex, curItem);
}
}
}
/// <summary>
/// Searches an index entry using recursive binary search algo (divide and conquer).
/// </summary>
/// <param name="nStart">start index for searching</param>
/// <param name="nEnd">end index for searching</param>
/// <param name="arrIndex">arraylist containing sorted IndexItem entries</param>
/// <param name="keywordPath">keyword path to search</param>
/// <param name="searchKeyword">true if the keywordPath will only contain the keyword not the complete path</param>
/// <param name="caseInsensitive">True if case should be ignored</param>
/// <param name="insertIndex">out reference. will receive the index where the item with the
/// keywordPath should be inserted if not found (receives -1 if the item was found)</param>
/// <returns>Returns an IndexItem instance if found, otherwise null
/// (use insertIndex for inserting the new item in a sorted order)</returns>
private IndexItem BinSearch(int nStart, int nEnd, ArrayList arrIndex, string keywordPath,
bool searchKeyword, bool caseInsensitive, ref int insertIndex)
{
if( arrIndex.Count <= 0 )
{
insertIndex=0;
return null;
}
if(caseInsensitive)
keywordPath = keywordPath.ToLower();
if( (nEnd - nStart) > 1)
{
int nCheck = nStart + (nEnd-nStart)/2;
IndexItem iC = arrIndex[nCheck] as IndexItem;
string sCompare = iC.KeyWordPath;
if(searchKeyword)
sCompare = iC.KeyWord;
if(caseInsensitive)
sCompare = sCompare.ToLower();
if( sCompare == keywordPath )
{
insertIndex=-1;
return iC;
}
if( keywordPath.CompareTo(sCompare) < 0 )
{
return BinSearch(nStart, nCheck-1, arrIndex, keywordPath, searchKeyword, caseInsensitive, ref insertIndex);
}
if( keywordPath.CompareTo(sCompare) > 0 )
{
return BinSearch(nCheck+1, nEnd, arrIndex, keywordPath, searchKeyword, caseInsensitive, ref insertIndex);
}
}
else if(nEnd-nStart == 1)
{
IndexItem i1 = arrIndex[nStart] as IndexItem;
IndexItem i2 = arrIndex[nEnd] as IndexItem;
string sCompare1 = i1.KeyWordPath;
if(searchKeyword)
sCompare1 = i1.KeyWord;
if(caseInsensitive)
sCompare1 = sCompare1.ToLower();
string sCompare2 = i2.KeyWordPath;
if(searchKeyword)
sCompare2 = i2.KeyWord;
if(caseInsensitive)
sCompare2 = sCompare2.ToLower();
if( sCompare1 == keywordPath)
{
insertIndex = -1;
return i1;
}
if( sCompare2 == keywordPath)
{
insertIndex = -1;
return i2;
}
if( sCompare1.CompareTo(keywordPath) > 0)
{
insertIndex = nStart;
return null;
}
else if( sCompare2.CompareTo(keywordPath) > 0)
{
insertIndex = nEnd;
return null;
}
else
{
insertIndex = nEnd+1;
}
}
IndexItem itm = arrIndex[nEnd] as IndexItem;
string sCompareI = itm.KeyWordPath;
if(searchKeyword)
sCompareI = itm.KeyWord;
if(caseInsensitive)
sCompareI = sCompareI.ToLower();
if( sCompareI.CompareTo(keywordPath) > 0)
{
insertIndex = nStart;
return null;
}
else if( sCompareI.CompareTo(keywordPath) < 0)
{
insertIndex = nEnd+1;
return null;
}
else
{
insertIndex = -1;
return arrIndex[nEnd] as IndexItem;
}
}
/// <summary>
/// Checks if a keyword exists in a index collection
/// </summary>
/// <param name="arrIndex">index to search (arraylist of IndexItems)</param>
/// <param name="keywordPath">keywordpath to search</param>
/// <returns>Returns the found IndexItem, otherwise null</returns>
private IndexItem ContainsIndex(ArrayList arrIndex, string keywordPath)
{
foreach(IndexItem curItem in arrIndex)
{
if(curItem.KeyWordPath == keywordPath)
return curItem;
}
return null;
}
/// <summary>
/// Searches the alinks- or klinks-index for a specific keyword/associative
/// </summary>
/// <param name="search">keyword/associative to search</param>
/// <param name="typeOfIndex">type of index to search</param>
/// <returns>Returns an ArrayList which contains IndexTopic items or null if nothing was found</returns>
public IndexItem SearchIndex(string search, IndexType typeOfIndex)
{
ArrayList _index = null;
switch( typeOfIndex )
{
case IndexType.AssiciativeLinks: _index = _aLinks;break;
case IndexType.KeywordLinks: _index = _kLinks;break;
}
int insertIdx=0;
IndexItem foundItem = BinSearch(0, _index.Count, _index, search, true, true, ref insertIdx);
return foundItem;
}
}
}

View File

@@ -0,0 +1,396 @@
using System;
using System.IO;
using System.Text;
using System.Collections;
using HtmlHelp.ChmDecoding;
namespace HtmlHelp
{
/// <summary>
/// The class <c>IndexItem</c> implements an help-index item
/// </summary>
public sealed class IndexItem : IComparable
{
/// <summary>
/// Internal member storing the keyword
/// </summary>
private string _keyWord = "";
/// <summary>
/// Internal member storing all associated information type strings
/// </summary>
private ArrayList _infoTypeStrings = new ArrayList();
/// <summary>
/// Internal member storing the flag if this is a see-also keyword
/// </summary>
private bool _isSeeAlso = false;
/// <summary>
/// Internal member storing the indent of the keyword
/// </summary>
private int _indent = 0;
/// <summary>
/// Internal member storing the last index of the keyword in the seperated list
/// </summary>
private int _charIndex = 0;
/// <summary>
/// Internal member storing the entry index
/// </summary>
private int _entryIndex = 0;
/// <summary>
/// Internal member storing an array of see-also values
/// </summary>
private string[] _seeAlso = new string[0];
/// <summary>
/// Internal member storing an array of topic offsets
/// </summary>
private int[] _nTopics = new int[0];
/// <summary>
/// Internal member storing the topics
/// </summary>
private ArrayList _Topics = null;
/// <summary>
/// Associated CHMFile instance
/// </summary>
private CHMFile _chmFile = null;
/// <summary>
/// Internal flag specifying the chm file path
/// </summary>
private string _chmFileName = "";
/// <summary>
/// Constructor of the class
/// </summary>
/// <param name="chmFile">associated CHMFile instance</param>
/// <param name="keyWord">keyword</param>
/// <param name="isSeeAlso">true if it is a see-also keyword</param>
/// <param name="indent">indent of the entry</param>
/// <param name="charIndex">char index of the last keyword in the separated list</param>
/// <param name="entryIndex">index of the entry</param>
/// <param name="seeAlsoValues">string array with see-also values</param>
/// <param name="topicOffsets">integer array with topic offsets</param>
internal IndexItem(CHMFile chmFile, string keyWord, bool isSeeAlso, int indent, int charIndex, int entryIndex, string[] seeAlsoValues, int[] topicOffsets)
{
_chmFile = chmFile;
_chmFileName = _chmFile.ChmFilePath;
_keyWord = keyWord;
_isSeeAlso = isSeeAlso;
_indent = indent;
_charIndex = charIndex;
_entryIndex = entryIndex;
_seeAlso = seeAlsoValues;
_nTopics = topicOffsets;
}
/// <summary>
/// Standard constructor
/// </summary>
public IndexItem()
{
}
#region Data dumping
/// <summary>
/// Dump the class data to a binary writer
/// </summary>
/// <param name="writer">writer to write the data</param>
/// <param name="writeFileName">true if the chm filename should be written</param>
internal void Dump(ref BinaryWriter writer, bool writeFileName)
{
int i=0;
writer.Write(_keyWord);
writer.Write(_isSeeAlso);
writer.Write(_indent);
if(writeFileName)
writer.Write(_chmFileName);
writer.Write(_infoTypeStrings.Count);
for(i=0; i<_infoTypeStrings.Count; i++)
writer.Write( (_infoTypeStrings[i]).ToString() );
writer.Write(_seeAlso.Length);
for(i=0; i<_seeAlso.Length; i++)
{
if(_seeAlso[i] == null)
writer.Write("");
else
writer.Write( _seeAlso[i] );
}
writer.Write(Topics.Count);
for(i=0; i<Topics.Count; i++)
{
IndexTopic topic = ((IndexTopic)(Topics[i]));
topic.Dump(ref writer);
}
}
/// <summary>
/// Dump the class data to a binary writer
/// </summary>
/// <param name="writer">writer to write the data</param>
internal void Dump(ref BinaryWriter writer)
{
Dump(ref writer, false);
}
/// <summary>
/// Reads the object data from a dump store
/// </summary>
/// <param name="reader">reader to read the data</param>
/// <param name="filesList">filelist from helpsystem</param>
internal bool ReadDump(ref BinaryReader reader, ArrayList filesList)
{
int i=0;
_keyWord = reader.ReadString();
_isSeeAlso = reader.ReadBoolean();
_indent = reader.ReadInt32();
_chmFileName = reader.ReadString();
foreach(CHMFile curFile in filesList)
{
if(curFile.ChmFilePath == _chmFileName)
{
_chmFile = curFile;
break;
}
}
if(_chmFile==null)
return false;
int nCnt = reader.ReadInt32();
for(i=0; i<nCnt; i++)
{
string sIT = reader.ReadString();
_infoTypeStrings.Add(sIT);
}
nCnt = reader.ReadInt32();
_seeAlso = new string[nCnt];
for(i=0; i<nCnt; i++)
{
_seeAlso[i] = reader.ReadString();
}
nCnt = reader.ReadInt32();
for(i=0; i<nCnt; i++)
{
IndexTopic topic = new IndexTopic("","","","");
topic.SetChmInfo( _chmFile.CompileFile, _chmFile.ChmFilePath);
topic.AssociatedFile = _chmFile;
topic.ReadDump(ref reader);
Topics.Add(topic);
}
return true;
}
/// <summary>
/// Reads the object data from a dump store
/// </summary>
/// <param name="reader">reader to read the data</param>
internal void ReadDump(ref BinaryReader reader)
{
int i=0;
_keyWord = reader.ReadString();
_isSeeAlso = reader.ReadBoolean();
_indent = reader.ReadInt32();
int nCnt = reader.ReadInt32();
for(i=0; i<nCnt; i++)
{
string sIT = reader.ReadString();
_infoTypeStrings.Add(sIT);
}
nCnt = reader.ReadInt32();
_seeAlso = new string[nCnt];
for(i=0; i<nCnt; i++)
{
_seeAlso[i] = reader.ReadString();
}
nCnt = reader.ReadInt32();
for(i=0; i<nCnt; i++)
{
IndexTopic topic = new IndexTopic("","","","");
topic.AssociatedFile = _chmFile;
topic.SetChmInfo( _chmFile.CompileFile, _chmFile.ChmFilePath);
topic.ReadDump(ref reader);
Topics.Add(topic);
}
}
#endregion
/// <summary>
/// Implements the compareto method which allows sorting.
/// </summary>
/// <param name="obj">object to compare to</param>
/// <returns>See <see cref="System.IComparable">IComparable.CompareTo()</see></returns>
public int CompareTo(object obj)
{
if( obj.GetType() == this.GetType() )
{
IndexItem cmp = (IndexItem)obj;
return this.KeyWordPath.CompareTo( cmp.KeyWordPath );
}
return 0;
}
/// <summary>
/// Gets/Sets the associated CHMFile instance
/// </summary>
internal CHMFile ChmFile
{
get { return _chmFile; }
set { _chmFile = value; }
}
/// <summary>
/// Gets the ArrayList which holds all information types/categories this item is associated
/// </summary>
internal ArrayList InfoTypeStrings
{
get { return _infoTypeStrings; }
}
/// <summary>
/// Adds a see-also string to the index item and marks it as see also item
/// </summary>
/// <param name="seeAlsoString">see also string to add</param>
internal void AddSeeAlso(string seeAlsoString)
{
string[] seeAlso = new string[ _seeAlso.Length +1 ];
for(int i=0; i<_seeAlso.Length; i++)
seeAlso[i] = _seeAlso[i];
seeAlso[_seeAlso.Length] = seeAlsoString;
_seeAlso = seeAlso;
_isSeeAlso = true;
}
/// <summary>
/// Gets/Sets the full keyword-path of this item ( ", " separated list)
/// </summary>
public string KeyWordPath
{
get { return _keyWord; }
set { _keyWord = value; }
}
/// <summary>
/// Gets the keyword of this item
/// </summary>
public string KeyWord
{
get
{
return _keyWord.Substring(_charIndex, _keyWord.Length-_charIndex);
}
}
/// <summary>
/// Gets the keyword of this item with prefixing indent spaces
/// </summary>
public string IndentKeyWord
{
get
{
string sKW = this.KeyWord;
StringBuilder sb = new StringBuilder("",this.Indent*3 + sKW.Length);
for(int i=0; i<this.Indent; i++)
sb.Append(" ");
sb.Append(sKW);
return sb.ToString();
}
}
/// <summary>
/// Gets/Sets the see-also flag of this item
/// </summary>
public bool IsSeeAlso
{
get { return _isSeeAlso; }
set { _isSeeAlso = value; }
}
/// <summary>
/// Gets/Sets the listbox indent for this item
/// </summary>
public int Indent
{
get { return _indent; }
set { _indent = value; }
}
/// <summary>
/// Gets/Sets the character index of an indent keyword
/// </summary>
public int CharIndex
{
get { return _charIndex; }
set { _charIndex = value; }
}
/// <summary>
/// Gets the see-also values of this item
/// </summary>
public string[] SeeAlso
{
get { return _seeAlso; }
}
/// <summary>
/// Gets an array with the associated topics
/// </summary>
public ArrayList Topics
{
get
{
if( _Topics == null )
{
if(IsSeeAlso)
{
_Topics = new ArrayList();
}
else
{
if( (_chmFile != null) && (_chmFile.TopicsFile != null) )
{
_Topics = new ArrayList();
for(int i=0; i<_nTopics.Length; i++)
{
IndexTopic newTopic = IndexTopic.FromTopicEntry((TopicEntry)_chmFile.TopicsFile.TopicTable[ _nTopics[i] ]);
newTopic.AssociatedFile = _chmFile;
_Topics.Add( newTopic );
}
}
else
{
_Topics = new ArrayList();
}
}
}
return _Topics;
}
}
}
}

View File

@@ -0,0 +1,216 @@
using System;
using System.IO;
using HtmlHelp.ChmDecoding;
namespace HtmlHelp
{
/// <summary>
/// The class <c>IndexTopic</c> implements an entry for the <see cref="IndexItem">IndexItem</see> topics list.
/// </summary>
public sealed class IndexTopic
{
private DataMode _topicMode = DataMode.TextBased;
private string _title="";
private string _local="";
private string _compileFile = "";
private string _chmPath = "";
private int _topicOffset = -1;
private CHMFile _associatedFile = null;
/// <summary>
/// Creates a new instance of the class based on an existing TopicEntry
/// </summary>
/// <param name="entry"></param>
internal static IndexTopic FromTopicEntry(TopicEntry entry)
{
return new IndexTopic(entry.EntryOffset, entry.ChmFile);
//return new IndexTopic( entry.Title, entry.Locale, entry.ChmFile.CompileFile, entry.ChmFile.ChmFilePath);
}
/// <summary>
/// Creates a new instance of the class (binary extraction mode)
/// </summary>
/// <param name="topicOffset">offset of the topic entry</param>
/// <param name="associatedFile">associated CHMFile instance</param>
internal IndexTopic(int topicOffset, CHMFile associatedFile)
{
_topicMode = DataMode.Binary;
_topicOffset = topicOffset;
_associatedFile = associatedFile;
}
/// <summary>
/// Constructor of the class
/// </summary>
/// <param name="Title">topic title</param>
/// <param name="local">topic local (content filename)</param>
/// <param name="compilefile">name of the chm file (location of topic)</param>
/// <param name="chmpath">path of the chm file</param>
public IndexTopic(string Title, string local, string compilefile, string chmpath)
{
_topicMode = DataMode.TextBased;
_title = Title;
_local = local;
_compileFile = compilefile;
_chmPath = chmpath;
}
#region Data dumping
/// <summary>
/// Dump the class data to a binary writer
/// </summary>
/// <param name="writer">writer to write the data</param>
internal void Dump(ref BinaryWriter writer)
{
writer.Write((int)_topicMode);
if(_topicMode==DataMode.TextBased)
{
writer.Write(_title);
writer.Write(_local);
}
else
{
writer.Write(_topicOffset);
}
}
/// <summary>
/// Reads the object data from a dump store
/// </summary>
/// <param name="reader">reader to read the data</param>
internal void ReadDump(ref BinaryReader reader)
{
_topicMode = (DataMode)reader.ReadInt32();
if(_topicMode==DataMode.TextBased)
{
_title = reader.ReadString();
_local = reader.ReadString();
}
else
{
_topicOffset = reader.ReadInt32();
}
}
#endregion
/// <summary>
/// Internally used to set the chm-finos when reading from dump store
/// </summary>
/// <param name="compilefile"></param>
/// <param name="chmpath"></param>
internal void SetChmInfo(string compilefile, string chmpath)
{
_compileFile = compilefile;
_chmPath = chmpath;
}
/// <summary>
/// Gets/Sets the associated CHMFile instance
/// </summary>
internal CHMFile AssociatedFile
{
get { return _associatedFile; }
set { _associatedFile = value; }
}
/// <summary>
/// Gets the topic title
/// </summary>
public string Title
{
get
{
if((_topicMode == DataMode.Binary )&&(_associatedFile!=null))
{
if( _topicOffset >= 0)
{
TopicEntry te = (TopicEntry) (_associatedFile.TopicsFile[_topicOffset]);
if(te != null)
{
return te.Title;
}
}
}
return _title;
}
}
/// <summary>
/// Gets the local (content filename)
/// </summary>
public string Local
{
get
{
if((_topicMode == DataMode.Binary )&&(_associatedFile!=null))
{
if( _topicOffset >= 0)
{
TopicEntry te = (TopicEntry) (_associatedFile.TopicsFile[_topicOffset]);
if(te != null)
{
return te.Locale;
}
}
}
return _local;
}
}
/// <summary>
/// Gets the compile file (location)
/// </summary>
public string CompileFile
{
get
{
if(_associatedFile != null)
return _associatedFile.CompileFile;
return _compileFile;
}
}
/// <summary>
/// Gets the chm file path
/// </summary>
public string ChmFilePath
{
get
{
if(_associatedFile != null)
return _associatedFile.ChmFilePath;
return _chmPath;
}
}
/// <summary>
/// Gets the url
/// </summary>
public string URL
{
get
{
string sL = Local;
if(sL.Length<=0)
return "";//"about:blank";
if( (sL.ToLower().IndexOf("http://") >= 0) ||
(sL.ToLower().IndexOf("https://") >= 0) ||
(sL.ToLower().IndexOf("mailto:") >= 0) ||
(sL.ToLower().IndexOf("ftp://") >= 0) ||
(sL.ToLower().IndexOf("ms-its:") >= 0))
return sL;
return HtmlHelpSystem.UrlPrefix + ChmFilePath + "::/" + sL;
}
}
}
}

View File

@@ -0,0 +1,146 @@
using System;
using System.IO;
namespace HtmlHelp
{
/// <summary>
/// Enumeration for specifying the mode of the information type
/// </summary>
public enum InformationTypeMode
{
/// <summary>
/// Inclusive information type. The user will be allowed to select from one or more information types.
/// </summary>
Inclusive = 0,
/// <summary>
/// Exclusive information type. The user will be allowed to choose only one information type within each category
/// </summary>
Exclusive = 1,
/// <summary>
/// Hidden information type. The user cannot see this information types (only for API calls).
/// </summary>
Hidden = 2
}
/// <summary>
/// The class <c>InformationType</c> implements a methods/properties for an information type.
/// </summary>
/// <remarks>Note: Information types and categories allow users to filter help contents.
/// They are only supported if using sitemap TOC and/or sitemap Index.</remarks>
public class InformationType
{
private string _name = "";
private string _description = "";
private InformationTypeMode _typeMode = InformationTypeMode.Inclusive;
private bool _isInCategory = false;
private int _referenceCount = 1;
/// <summary>
/// Standard constructor
/// </summary>
/// <remarks>the mode is set to InformationTypeMode.Inclusive by default</remarks>
public InformationType() : this("","")
{
}
/// <summary>
/// Standard constructor
/// </summary>
/// <param name="name">name of the information type</param>
/// <param name="description">description</param>
/// <remarks>the mode is set to InformationTypeMode.Inclusive by default</remarks>
public InformationType(string name, string description) : this(name, description, InformationTypeMode.Inclusive)
{
}
/// <summary>
/// Standard constructor
/// </summary>
/// <param name="name">name of the information type</param>
/// <param name="description">description</param>
/// <param name="mode">mode of the information type</param>
public InformationType(string name, string description, InformationTypeMode mode)
{
_name = name;
_description = description;
_typeMode = mode;
}
#region Data dumping
/// <summary>
/// Dump the class data to a binary writer
/// </summary>
/// <param name="writer">writer to write the data</param>
internal void Dump(ref BinaryWriter writer)
{
writer.Write( (int)_typeMode );
writer.Write( _name );
writer.Write( _description );
}
/// <summary>
/// Reads the object data from a dump store
/// </summary>
/// <param name="reader">reader to read the data</param>
internal void ReadDump(ref BinaryReader reader)
{
_typeMode = (InformationTypeMode)reader.ReadInt32();
_name = reader.ReadString();
_description = reader.ReadString();
}
#endregion
/// <summary>
/// Sets the flag if this information type is nested in at least one category
/// </summary>
/// <param name="newValue">true or false</param>
internal void SetCategoryFlag(bool newValue)
{
_isInCategory = newValue;
}
/// <summary>
/// Gets/Sets the reference count of this information type instance
/// </summary>
internal int ReferenceCount
{
get { return _referenceCount; }
set { _referenceCount = value; }
}
/// <summary>
/// Gets true if this information type is nested in at least one category
/// </summary>
public bool IsInCategory
{
get { return _isInCategory; }
}
/// <summary>
/// Gets/Sets the name of the information type
/// </summary>
public string Name
{
get { return _name; }
set { _name = value; }
}
/// <summary>
/// Gets/Sets the description of the information type
/// </summary>
public string Description
{
get { return _description; }
set { _name = value; }
}
/// <summary>
/// Gets/Sets the mode of the information type
/// </summary>
public InformationTypeMode Mode
{
get { return _typeMode; }
set { _typeMode = value; }
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,494 @@
using System;
using System.IO;
using System.Collections;
using System.Windows.Forms;
using HtmlHelp.ChmDecoding;
namespace HtmlHelp
{
/// <summary>
/// The class <c>TOCItem</c> implements a toc-entry item
/// </summary>
public sealed class TOCItem
{
/// <summary>
/// Constant for standard folder (closed) image index (HH2 image list)
/// </summary>
public const int STD_FOLDER_HH2 = 4;
/// <summary>
/// Constant for standard folder (opened) image index (HH2 image list)
/// </summary>
public const int STD_FOLDER_OPEN_HH2 = 6;
/// <summary>
/// Constant for standard file image index (HH2 image list)
/// </summary>
public const int STD_FILE_HH2 = 16;
/// <summary>
/// Constant for standard folder (closed) image index (HH1 image list)
/// </summary>
public const int STD_FOLDER_HH1 = 0;
/// <summary>
/// Constant for standard folder (opened) image index (HH1 image list)
/// </summary>
public const int STD_FOLDER_OPEN_HH1 = 1;
/// <summary>
/// Constant for standard file image index (HH1 image list)
/// </summary>
public const int STD_FILE_HH1 = 10;
/// <summary>
/// Internal flag specifying the data extraction mode used for this item
/// </summary>
private DataMode _tocMode = DataMode.TextBased;
/// <summary>
/// Internal member storing the offset (only used in binary tocs)
/// </summary>
private int _offset = 0;
/// <summary>
/// Internal member storing the offset of the next item(only used in binary tocs)
/// </summary>
private int _offsetNext = 0;
/// <summary>
/// Internal member storing a merge link.
/// If the target file is in the merged files list of the CHM,
/// this item will be replaced with the target TOC or Topic, if not it will
/// be removed from TOC.
/// </summary>
private string _mergeLink = "";
/// <summary>
/// Internal member storing the toc name
/// </summary>
private string _name = "";
/// <summary>
/// Internal member storing the toc loca (content file)
/// </summary>
private string _local = "";
/// <summary>
/// Internal member storing all associated information type strings
/// </summary>
private ArrayList _infoTypeStrings = new ArrayList();
/// <summary>
/// Internal member storing the associated chm file
/// </summary>
private string _chmFile = "";
/// <summary>
/// Internal member storing the image index
/// </summary>
private int _imageIndex = -1;
/// <summary>
/// Internal member storing the offset of the associated topic entry (for binary tocs)
/// </summary>
private int _topicOffset = -1;
/// <summary>
/// Internal member storing the toc children
/// </summary>
private ArrayList _children = new ArrayList();
/// <summary>
/// Internal member storing the parameter collection
/// </summary>
private Hashtable _otherParams = new Hashtable();
/// <summary>
/// Internal member storing the associated chmfile object
/// </summary>
private CHMFile _associatedFile = null;
/// <summary>
/// Parent item
/// </summary>
private TOCItem _parent=null;
/// <summary>
/// Holds a pointer to the next item in the TOC
/// </summary>
public TOCItem Next=null;
/// <summary>
/// Holds a pointer to the previous item in the TOC
/// </summary>
public TOCItem Prev=null;
/// <summary>
/// Holds a pointer to the TreeNode where this TOC Item is used
/// </summary>
public System.Windows.Forms.TreeNode treeNode=null;
/// <summary>
/// Constructor of the class used during text-based data extraction
/// </summary>
/// <param name="name">name of the item</param>
/// <param name="local">local content file</param>
/// <param name="ImageIndex">image index</param>
/// <param name="chmFile">associated chm file</param>
public TOCItem(string name, string local, int ImageIndex, string chmFile)
{
_tocMode = DataMode.TextBased;
_name = name;
_local = local;
_imageIndex = ImageIndex;
_chmFile = chmFile;
}
/// <summary>
/// Constructor of the class used during binary data extraction
/// </summary>
/// <param name="topicOffset">offset of the associated topic entry</param>
/// <param name="ImageIndex">image index to use</param>
/// <param name="associatedFile">associated chm file</param>
public TOCItem(int topicOffset, int ImageIndex, CHMFile associatedFile)
{
_tocMode = DataMode.Binary;
_associatedFile = associatedFile;
_chmFile = associatedFile.ChmFilePath;
_topicOffset = topicOffset;
_imageIndex = ImageIndex;
}
/// <summary>
/// Standard constructor
/// </summary>
public TOCItem()
{
}
#region Data dumping
/// <summary>
/// Dump the class data to a binary writer
/// </summary>
/// <param name="writer">writer to write the data</param>
/// <param name="writeFilename">true if the chmfile name should be written</param>
internal void Dump(ref BinaryWriter writer, bool writeFilename)
{
writer.Write((int)_tocMode);
writer.Write(_topicOffset);
writer.Write(_name);
if((_tocMode == DataMode.TextBased)||(_topicOffset<0))
{
writer.Write(_local);
}
writer.Write(_imageIndex);
writer.Write(_mergeLink);
if(writeFilename)
writer.Write(_chmFile);
writer.Write(_infoTypeStrings.Count);
for(int i=0; i<_infoTypeStrings.Count; i++)
writer.Write( (_infoTypeStrings[i]).ToString() );
writer.Write(_children.Count);
for(int i=0; i<_children.Count; i++)
{
TOCItem child = ((TOCItem)(_children[i]));
child.Dump(ref writer, writeFilename);
}
}
/// <summary>
/// Dump the class data to a binary writer
/// </summary>
/// <param name="writer">writer to write the data</param>
internal void Dump(ref BinaryWriter writer)
{
Dump(ref writer, false);
}
/// <summary>
/// Reads the object data from a dump store
/// </summary>
/// <param name="reader">reader to read the data</param>
/// <param name="readFilename">true if the chmfile name should be read</param>
internal void ReadDump(ref BinaryReader reader, bool readFilename)
{
int i=0;
_tocMode = (DataMode)reader.ReadInt32();
_topicOffset = reader.ReadInt32();
_name = reader.ReadString();
if((_tocMode == DataMode.TextBased)||(_topicOffset<0))
{
_local = reader.ReadString();
}
_imageIndex = reader.ReadInt32();
_mergeLink = reader.ReadString();
if(readFilename)
_chmFile = reader.ReadString();
int nCnt = reader.ReadInt32();
for(i=0; i<nCnt; i++)
{
string sIT = reader.ReadString();
_infoTypeStrings.Add(sIT);
}
nCnt = reader.ReadInt32();
if(_associatedFile != null)
_chmFile = _associatedFile.ChmFilePath;
for(i=0; i<nCnt; i++)
{
TOCItem child = new TOCItem();
child.AssociatedFile = _associatedFile;
child.ReadDump(ref reader, readFilename);
if(_associatedFile != null)
child.ChmFile = _associatedFile.ChmFilePath;
else if(!readFilename)
child.ChmFile = _chmFile;
child.Parent = this;
_children.Add(child);
if(child.MergeLink.Length > 0)
_associatedFile.MergLinks.Add(child);
}
}
/// <summary>
/// Reads the object data from a dump store
/// </summary>
/// <param name="reader">reader to read the data</param>
internal void ReadDump(ref BinaryReader reader)
{
ReadDump(ref reader, false);
}
#endregion
/// <summary>
/// Gets/Sets the data extraction mode with which this item was created.
/// </summary>
internal DataMode TocMode
{
get { return _tocMode; }
set { _tocMode = value; }
}
/// <summary>
/// Gets/Sets the offset of the associated topic entry
/// </summary>
internal int TopicOffset
{
get { return _topicOffset; }
set { _topicOffset = value; }
}
/// <summary>
/// Gets/Sets the associated CHMFile instance
/// </summary>
internal CHMFile AssociatedFile
{
get { return _associatedFile; }
set
{
_associatedFile = value;
}
}
/// <summary>
/// Gets/Sets the offset of the item.
/// </summary>
/// <remarks>Only used in binary tocs</remarks>
internal int Offset
{
get { return _offset; }
set { _offset = value; }
}
/// <summary>
/// Gets/Sets the offset of the next item.
/// </summary>
/// <remarks>Only used in binary tocs</remarks>
internal int OffsetNext
{
get { return _offsetNext; }
set { _offsetNext = value; }
}
/// <summary>
/// Gets the ArrayList which holds all information types/categories this item is associated
/// </summary>
internal ArrayList InfoTypeStrings
{
get { return _infoTypeStrings; }
}
/// <summary>
/// Gets/Sets the parent of this item
/// </summary>
public TOCItem Parent
{
get { return _parent; }
set { _parent = value; }
}
/// <summary>
/// Gets/Sets the mergelink for this item.
/// <b>You should not set the mergedlink by your own !</b>
/// This is only for loading merged CHMs.
/// </summary>
public string MergeLink
{
get { return _mergeLink; }
set { _mergeLink = value; }
}
/// <summary>
/// Gets/Sets the name of the item
/// </summary>
public string Name
{
get
{
if(_mergeLink.Length > 0)
return "";
if(_name.Length <= 0)
{
if((_tocMode == DataMode.Binary )&&(_associatedFile!=null))
{
if( _topicOffset >= 0)
{
TopicEntry te = (TopicEntry) (_associatedFile.TopicsFile[_topicOffset]);
if(te != null)
{
return te.Title;
}
}
}
}
return _name;
}
set
{
_name = value;
}
}
/// <summary>
/// Gets/Sets the local of the item
/// </summary>
public string Local
{
get
{
if(_mergeLink.Length > 0)
return "";
if(_local.Length <= 0)
{
if((_tocMode == DataMode.Binary )&&(_associatedFile!=null))
{
if( _topicOffset >= 0)
{
TopicEntry te = (TopicEntry) (_associatedFile.TopicsFile[_topicOffset]);
if(te != null)
{
return te.Locale;
}
}
}
}
return _local;
}
set { _local = value; }
}
/// <summary>
/// Gets/Sets the chm file
/// </summary>
public string ChmFile
{
get
{
if(_associatedFile!=null)
return _associatedFile.ChmFilePath;
return _chmFile;
}
set { _chmFile = value; }
}
/// <summary>
/// Gets the url for the webbrowser for this file
/// </summary>
public string Url
{
get
{
string sL = Local;
if( (sL.ToLower().IndexOf("http://") >= 0) ||
(sL.ToLower().IndexOf("https://") >= 0) ||
(sL.ToLower().IndexOf("mailto:") >= 0) ||
(sL.ToLower().IndexOf("ftp://") >= 0) ||
(sL.ToLower().IndexOf("ms-its:") >= 0))
return sL;
return HtmlHelpSystem.UrlPrefix + ChmFile + "::/" + sL;
}
}
/// <summary>
/// Gets/Sets the image index of the item
/// </summary>
/// <remarks>Set this to -1 for a default icon</remarks>
public int ImageIndex
{
get
{
if( _imageIndex == -1)
{
int nFolderAdd = 0;
if((_associatedFile != null) && (_associatedFile.ImageTypeFolder))
{
// get the value which should be added, to display folders instead of books
if(HtmlHelpSystem.UseHH2TreePics)
nFolderAdd = 8;
else
nFolderAdd = 4;
}
if( _children.Count > 0)
return (HtmlHelpSystem.UseHH2TreePics ? (STD_FOLDER_HH2+nFolderAdd) : (STD_FOLDER_HH1+nFolderAdd));
return (HtmlHelpSystem.UseHH2TreePics ? STD_FILE_HH2 : STD_FILE_HH1);
}
return _imageIndex;
}
set { _imageIndex = value; }
}
/// <summary>
/// Gets/Sets the children of this item.
/// </summary>
/// <remarks>Each entry in the ArrayList is of type TOCItem</remarks>
public ArrayList Children
{
get { return _children; }
set { _children = value; }
}
/// <summary>
/// Gets the internal hashtable storing all params
/// </summary>
public Hashtable Params
{
get { return _otherParams; }
}
}
}

View File

@@ -0,0 +1,198 @@
using System;
using System.Diagnostics;
using System.Collections;
using HtmlHelp.ChmDecoding;
namespace HtmlHelp
{
/// <summary>
/// The class <c>TableOfContents</c> holds the TOC of the htmlhelp system class.
/// </summary>
public class TableOfContents
{
private ArrayList _toc = new ArrayList();
/// <summary>
/// Standard constructor
/// </summary>
public TableOfContents()
{
}
/// <summary>
/// Constructor of the class
/// </summary>
/// <param name="toc"></param>
public TableOfContents(ArrayList toc)
{
_toc = toc;
}
/// <summary>
/// Gets the internal stored table of contents
/// </summary>
public ArrayList TOC
{
get { return _toc; }
}
/// <summary>
/// Clears the current toc
/// </summary>
public void Clear()
{
if(_toc!=null)
_toc.Clear();
}
/// <summary>
/// Gets the number of topics in the toc
/// </summary>
/// <returns>Returns the number of topics in the toc</returns>
public int Count()
{
if(_toc!=null)
return _toc.Count;
else
return 0;
}
/// <summary>
/// Merges the <c>arrToC</c> list to the one in this instance
/// </summary>
/// <param name="arrToC">the toc list which should be merged with the current one</param>
internal void MergeToC( ArrayList arrToC )
{
if(_toc==null)
_toc = new ArrayList();
MergeToC(_toc, arrToC, null);
}
/// <summary>
/// Merges the <c>arrToC</c> list to the one in this instance (called if merged files
/// were found in a CHM)
/// </summary>
/// <param name="arrToC">the toc list which should be merged with the current one</param>
/// <param name="openFiles">An arraylist of CHMFile instances.</param>
internal void MergeToC( ArrayList arrToC, ArrayList openFiles )
{
if(_toc==null)
_toc = new ArrayList();
MergeToC(_toc, arrToC, openFiles);
}
/// <summary>
/// Internal method for recursive toc merging
/// </summary>
/// <param name="globalLevel">level of global toc</param>
/// <param name="localLevel">level of local toc</param>
/// <param name="openFiles">An arraylist of CHMFile instances.</param>
private void MergeToC( ArrayList globalLevel, ArrayList localLevel, ArrayList openFiles )
{
foreach( TOCItem curItem in localLevel)
{
// if it is a part of the merged-links, we have to do nothing,
// because the method HtmlHelpSystem.RecalculateMergeLinks() has already
// placed this item at its correct position.
if(!IsMergedItem(curItem.Name, curItem.Local, openFiles))
{
TOCItem globalItem = ContainsToC(globalLevel, curItem.Name);
if(globalItem == null)
{
// the global toc doesn't have a topic with this name
// so we need to add the complete toc node to the global toc
globalLevel.Add( curItem );
}
else
{
// the global toc contains the current topic
// advance to the next level
if( (globalItem.Local.Length <= 0) && (curItem.Local.Length > 0) )
{
// set the associated url
globalItem.Local = curItem.Local;
globalItem.ChmFile = curItem.ChmFile;
}
MergeToC(globalItem.Children, curItem.Children);
}
}
}
}
/// <summary>
/// Checks if the item is part of the merged-links
/// </summary>
/// <param name="name">name of the topic</param>
/// <param name="local">local of the topic</param>
/// <param name="openFiles">An arraylist of CHMFile instances.</param>
/// <returns>Returns true if this item is part of the merged-links</returns>
private bool IsMergedItem(string name, string local, ArrayList openFiles)
{
if(openFiles==null)
return false;
foreach(CHMFile curFile in openFiles)
{
foreach(TOCItem curItem in curFile.MergLinks)
if( (curItem.Name == name) && (curItem.Local == local) )
return true;
}
return false;
}
/// <summary>
/// Checks if a topicname exists in a SINGLE toc level
/// </summary>
/// <param name="arrToC">toc list</param>
/// <param name="Topic">topic to search</param>
/// <returns>Returns the topic item if found, otherwise null</returns>
private TOCItem ContainsToC(ArrayList arrToC, string Topic)
{
foreach(TOCItem curItem in arrToC)
{
if(curItem.Name == Topic)
return curItem;
}
return null;
}
/// <summary>
/// Searches the table of contents for a special topic
/// </summary>
/// <param name="topic">topic to search</param>
/// <returns>Returns an instance of TOCItem if found, otherwise null</returns>
public TOCItem SearchTopic(string topic)
{
return SearchTopic(topic, _toc);
}
/// <summary>
/// Internal recursive tree search
/// </summary>
/// <param name="topic">topic to search</param>
/// <param name="searchIn">tree level list to look in</param>
/// <returns>Returns an instance of TOCItem if found, otherwise null</returns>
private TOCItem SearchTopic(string topic, ArrayList searchIn)
{
foreach(TOCItem curItem in searchIn)
{
if(curItem.Name.ToLower() == topic.ToLower() )
return curItem;
if(curItem.Children.Count>0)
{
TOCItem nf = SearchTopic(topic, curItem.Children);
if(nf != null)
return nf;
}
}
return null;
}
}
}

View File

@@ -0,0 +1,32 @@
using System.Reflection;
using System.Runtime.CompilerServices;
// Information about this assembly is defined by the following
// attributes.
//
// change them to the information which is associated with the assembly
// you compile.
[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// The assembly version has following format :
//
// Major.Minor.Build.Revision
//
// You can specify all values by your own or you can build default build and revision
// numbers with the '*' character (the default):
[assembly: AssemblyVersion("1.0.*")]
// The following attributes specify the key for the sign of your assembly. See the
// .NET Framework documentation for more information about signing.
// This is not required, if you don't want signing let these attributes like they're.
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]

View File

@@ -0,0 +1,200 @@
// Adler32.cs - Computes Adler32 data checksum of a data stream
// Copyright (C) 2001 Mike Krueger
//
// This file was translated from java, it was part of the GNU Classpath
// Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
//
// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// Linking this library statically or dynamically with other modules is
// making a combined work based on this library. Thus, the terms and
// conditions of the GNU General Public License cover the whole
// combination.
//
// As a special exception, the copyright holders of this library give you
// permission to link this library with independent modules to produce an
// executable, regardless of the license terms of these independent
// modules, and to copy and distribute the resulting executable under
// terms of your choice, provided that you also meet, for each linked
// independent module, the terms and conditions of the license of that
// module. An independent module is a module which is not derived from
// or based on this library. If you modify this library, you may extend
// this exception to your version of the library, but you are not
// obligated to do so. If you do not wish to do so, delete this
// exception statement from your version.
using System;
namespace ICSharpCode.SharpZipLib.Checksums
{
/// <summary>
/// Computes Adler32 checksum for a stream of data. An Adler32
/// checksum is not as reliable as a CRC32 checksum, but a lot faster to
/// compute.
///
/// The specification for Adler32 may be found in RFC 1950.
/// ZLIB Compressed Data Format Specification version 3.3)
///
///
/// From that document:
///
/// "ADLER32 (Adler-32 checksum)
/// This contains a checksum value of the uncompressed data
/// (excluding any dictionary data) computed according to Adler-32
/// algorithm. This algorithm is a 32-bit extension and improvement
/// of the Fletcher algorithm, used in the ITU-T X.224 / ISO 8073
/// standard.
///
/// Adler-32 is composed of two sums accumulated per byte: s1 is
/// the sum of all bytes, s2 is the sum of all s1 values. Both sums
/// are done modulo 65521. s1 is initialized to 1, s2 to zero. The
/// Adler-32 checksum is stored as s2*65536 + s1 in most-
/// significant-byte first (network) order."
///
/// "8.2. The Adler-32 algorithm
///
/// The Adler-32 algorithm is much faster than the CRC32 algorithm yet
/// still provides an extremely low probability of undetected errors.
///
/// The modulo on unsigned long accumulators can be delayed for 5552
/// bytes, so the modulo operation time is negligible. If the bytes
/// are a, b, c, the second sum is 3a + 2b + c + 3, and so is position
/// and order sensitive, unlike the first sum, which is just a
/// checksum. That 65521 is prime is important to avoid a possible
/// large class of two-byte errors that leave the check unchanged.
/// (The Fletcher checksum uses 255, which is not prime and which also
/// makes the Fletcher check insensitive to single byte changes 0 -
/// 255.)
///
/// The sum s1 is initialized to 1 instead of zero to make the length
/// of the sequence part of s2, so that the length does not have to be
/// checked separately. (Any sequence of zeroes has a Fletcher
/// checksum of zero.)"
/// </summary>
/// <see cref="ICSharpCode.SharpZipLib.Zip.Compression.Streams.InflaterInputStream"/>
/// <see cref="ICSharpCode.SharpZipLib.Zip.Compression.Streams.DeflaterOutputStream"/>
public sealed class Adler32 : IChecksum
{
/// <summary>
/// largest prime smaller than 65536
/// </summary>
readonly static uint BASE = 65521;
uint checksum;
/// <summary>
/// Returns the Adler32 data checksum computed so far.
/// </summary>
public long Value {
get {
return checksum;
}
}
/// <summary>
/// Creates a new instance of the <code>Adler32</code> class.
/// The checksum starts off with a value of 1.
/// </summary>
public Adler32()
{
Reset();
}
/// <summary>
/// Resets the Adler32 checksum to the initial value.
/// </summary>
public void Reset()
{
checksum = 1; //Initialize to 1
}
/// <summary>
/// Updates the checksum with the byte b.
/// </summary>
/// <param name="bval">
/// the data value to add. The high byte of the int is ignored.
/// </param>
public void Update(int bval)
{
//We could make a length 1 byte array and call update again, but I
//would rather not have that overhead
uint s1 = checksum & 0xFFFF;
uint s2 = checksum >> 16;
s1 = (s1 + ((uint)bval & 0xFF)) % BASE;
s2 = (s1 + s2) % BASE;
checksum = (s2 << 16) + s1;
}
/// <summary>
/// Updates the checksum with the bytes taken from the array.
/// </summary>
/// <param name="buffer">
/// buffer an array of bytes
/// </param>
public void Update(byte[] buffer)
{
Update(buffer, 0, buffer.Length);
}
/// <summary>
/// Updates the checksum with the bytes taken from the array.
/// </summary>
/// <param name="buf">
/// an array of bytes
/// </param>
/// <param name="off">
/// the start of the data used for this update
/// </param>
/// <param name="len">
/// the number of bytes to use for this update
/// </param>
public void Update(byte[] buf, int off, int len)
{
if (buf == null) {
throw new ArgumentNullException("buf");
}
if (off < 0 || len < 0 || off + len > buf.Length) {
throw new ArgumentOutOfRangeException();
}
//(By Per Bothner)
uint s1 = checksum & 0xFFFF;
uint s2 = checksum >> 16;
while (len > 0) {
// We can defer the modulo operation:
// s1 maximally grows from 65521 to 65521 + 255 * 3800
// s2 maximally grows by 3800 * median(s1) = 2090079800 < 2^31
int n = 3800;
if (n > len) {
n = len;
}
len -= n;
while (--n >= 0) {
s1 = s1 + (uint)(buf[off++] & 0xFF);
s2 = s2 + s1;
}
s1 %= BASE;
s2 %= BASE;
}
checksum = (s2 << 16) | s1;
}
}
}

View File

@@ -0,0 +1,211 @@
// CRC32.cs - Computes CRC32 data checksum of a data stream
// Copyright (C) 2001 Mike Krueger
//
// This file was translated from java, it was part of the GNU Classpath
// Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
//
// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// Linking this library statically or dynamically with other modules is
// making a combined work based on this library. Thus, the terms and
// conditions of the GNU General Public License cover the whole
// combination.
//
// As a special exception, the copyright holders of this library give you
// permission to link this library with independent modules to produce an
// executable, regardless of the license terms of these independent
// modules, and to copy and distribute the resulting executable under
// terms of your choice, provided that you also meet, for each linked
// independent module, the terms and conditions of the license of that
// module. An independent module is a module which is not derived from
// or based on this library. If you modify this library, you may extend
// this exception to your version of the library, but you are not
// obligated to do so. If you do not wish to do so, delete this
// exception statement from your version.
using System;
namespace ICSharpCode.SharpZipLib.Checksums
{
/// <summary>
/// Generate a table for a byte-wise 32-bit CRC calculation on the polynomial:
/// x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1.
///
/// Polynomials over GF(2) are represented in binary, one bit per coefficient,
/// with the lowest powers in the most significant bit. Then adding polynomials
/// is just exclusive-or, and multiplying a polynomial by x is a right shift by
/// one. If we call the above polynomial p, and represent a byte as the
/// polynomial q, also with the lowest power in the most significant bit (so the
/// byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p,
/// where a mod b means the remainder after dividing a by b.
///
/// This calculation is done using the shift-register method of multiplying and
/// taking the remainder. The register is initialized to zero, and for each
/// incoming bit, x^32 is added mod p to the register if the bit is a one (where
/// x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by
/// x (which is shifting right by one and adding x^32 mod p if the bit shifted
/// out is a one). We start with the highest power (least significant bit) of
/// q and repeat for all eight bits of q.
///
/// The table is simply the CRC of all possible eight bit values. This is all
/// the information needed to generate CRC's on data a byte at a time for all
/// combinations of CRC register values and incoming bytes.
/// </summary>
public sealed class Crc32 : IChecksum
{
readonly static uint CrcSeed = 0xFFFFFFFF;
readonly static uint[] CrcTable = new uint[] {
0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419,
0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4,
0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07,
0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,
0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856,
0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9,
0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4,
0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,
0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3,
0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A,
0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599,
0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,
0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190,
0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F,
0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E,
0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,
0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED,
0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950,
0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3,
0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,
0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A,
0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5,
0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010,
0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,
0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17,
0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6,
0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615,
0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,
0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344,
0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB,
0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A,
0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,
0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1,
0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C,
0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF,
0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,
0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE,
0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31,
0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C,
0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,
0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B,
0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242,
0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1,
0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,
0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278,
0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7,
0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66,
0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,
0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605,
0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8,
0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B,
0x2D02EF8D
};
internal static uint ComputeCrc32(uint oldCrc, byte bval)
{
return (uint)(Crc32.CrcTable[(oldCrc ^ bval) & 0xFF] ^ (oldCrc >> 8));
}
/// <summary>
/// The crc data checksum so far.
/// </summary>
uint crc = 0;
/// <summary>
/// Returns the CRC32 data checksum computed so far.
/// </summary>
public long Value {
get {
return (long)crc;
}
set {
crc = (uint)value;
}
}
/// <summary>
/// Resets the CRC32 data checksum as if no update was ever called.
/// </summary>
public void Reset()
{
crc = 0;
}
/// <summary>
/// Updates the checksum with the int bval.
/// </summary>
/// <param name = "bval">
/// the byte is taken as the lower 8 bits of bval
/// </param>
public void Update(int bval)
{
crc ^= CrcSeed;
crc = CrcTable[(crc ^ bval) & 0xFF] ^ (crc >> 8);
crc ^= CrcSeed;
}
/// <summary>
/// Updates the checksum with the bytes taken from the array.
/// </summary>
/// <param name="buffer">
/// buffer an array of bytes
/// </param>
public void Update(byte[] buffer)
{
Update(buffer, 0, buffer.Length);
}
/// <summary>
/// Adds the byte array to the data checksum.
/// </summary>
/// <param name = "buf">
/// the buffer which contains the data
/// </param>
/// <param name = "off">
/// the offset in the buffer where the data starts
/// </param>
/// <param name = "len">
/// the length of the data
/// </param>
public void Update(byte[] buf, int off, int len)
{
if (buf == null) {
throw new ArgumentNullException("buf");
}
if (off < 0 || len < 0 || off + len > buf.Length) {
throw new ArgumentOutOfRangeException();
}
crc ^= CrcSeed;
while (--len >= 0) {
crc = CrcTable[(crc ^ buf[off++]) & 0xFF] ^ (crc >> 8);
}
crc ^= CrcSeed;
}
}
}

View File

@@ -0,0 +1,93 @@
// IChecksum.cs - Interface to compute a data checksum
// Copyright (C) 2001 Mike Krueger
//
// This file was translated from java, it was part of the GNU Classpath
// Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
//
// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// Linking this library statically or dynamically with other modules is
// making a combined work based on this library. Thus, the terms and
// conditions of the GNU General Public License cover the whole
// combination.
//
// As a special exception, the copyright holders of this library give you
// permission to link this library with independent modules to produce an
// executable, regardless of the license terms of these independent
// modules, and to copy and distribute the resulting executable under
// terms of your choice, provided that you also meet, for each linked
// independent module, the terms and conditions of the license of that
// module. An independent module is a module which is not derived from
// or based on this library. If you modify this library, you may extend
// this exception to your version of the library, but you are not
// obligated to do so. If you do not wish to do so, delete this
// exception statement from your version.
namespace ICSharpCode.SharpZipLib.Checksums
{
/// <summary>
/// Interface to compute a data checksum used by checked input/output streams.
/// A data checksum can be updated by one byte or with a byte array. After each
/// update the value of the current checksum can be returned by calling
/// <code>getValue</code>. The complete checksum object can also be reset
/// so it can be used again with new data.
/// </summary>
public interface IChecksum
{
/// <summary>
/// Returns the data checksum computed so far.
/// </summary>
long Value
{
get;
}
/// <summary>
/// Resets the data checksum as if no update was ever called.
/// </summary>
void Reset();
/// <summary>
/// Adds one byte to the data checksum.
/// </summary>
/// <param name = "bval">
/// the data value to add. The high byte of the int is ignored.
/// </param>
void Update(int bval);
/// <summary>
/// Updates the data checksum with the bytes taken from the array.
/// </summary>
/// <param name="buffer">
/// buffer an array of bytes
/// </param>
void Update(byte[] buffer);
/// <summary>
/// Adds the byte array to the data checksum.
/// </summary>
/// <param name = "buf">
/// the buffer which contains the data
/// </param>
/// <param name = "off">
/// the offset in the buffer where the data starts
/// </param>
/// <param name = "len">
/// the length of the data
/// </param>
void Update(byte[] buf, int off, int len);
}
}

View File

@@ -0,0 +1,159 @@
// StrangeCRC.cs - computes a crc used in the bziplib ... I don't think that
// this is the 'standard' crc, please correct me, if I'm wrong
// Copyright (C) 2001 Mike Krueger
//
// This file was translated from java, it was part of the GNU Classpath
// Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
//
// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// Linking this library statically or dynamically with other modules is
// making a combined work based on this library. Thus, the terms and
// conditions of the GNU General Public License cover the whole
// combination.
//
// As a special exception, the copyright holders of this library give you
// permission to link this library with independent modules to produce an
// executable, regardless of the license terms of these independent
// modules, and to copy and distribute the resulting executable under
// terms of your choice, provided that you also meet, for each linked
// independent module, the terms and conditions of the license of that
// module. An independent module is a module which is not derived from
// or based on this library. If you modify this library, you may extend
// this exception to your version of the library, but you are not
// obligated to do so. If you do not wish to do so, delete this
// exception statement from your version.
using System;
namespace ICSharpCode.SharpZipLib.Checksums
{
public class StrangeCRC : IChecksum
{
readonly static uint[] crc32Table = {
0x00000000, 0x04c11db7, 0x09823b6e, 0x0d4326d9,
0x130476dc, 0x17c56b6b, 0x1a864db2, 0x1e475005,
0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, 0x2b4bcb61,
0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd,
0x4c11db70, 0x48d0c6c7, 0x4593e01e, 0x4152fda9,
0x5f15adac, 0x5bd4b01b, 0x569796c2, 0x52568b75,
0x6a1936c8, 0x6ed82b7f, 0x639b0da6, 0x675a1011,
0x791d4014, 0x7ddc5da3, 0x709f7b7a, 0x745e66cd,
0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039,
0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5,
0xbe2b5b58, 0xbaea46ef, 0xb7a96036, 0xb3687d81,
0xad2f2d84, 0xa9ee3033, 0xa4ad16ea, 0xa06c0b5d,
0xd4326d90, 0xd0f37027, 0xddb056fe, 0xd9714b49,
0xc7361b4c, 0xc3f706fb, 0xceb42022, 0xca753d95,
0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1,
0xe13ef6f4, 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d,
0x34867077, 0x30476dc0, 0x3d044b19, 0x39c556ae,
0x278206ab, 0x23431b1c, 0x2e003dc5, 0x2ac12072,
0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16,
0x018aeb13, 0x054bf6a4, 0x0808d07d, 0x0cc9cdca,
0x7897ab07, 0x7c56b6b0, 0x71159069, 0x75d48dde,
0x6b93dddb, 0x6f52c06c, 0x6211e6b5, 0x66d0fb02,
0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1, 0x53dc6066,
0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba,
0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e,
0xbfa1b04b, 0xbb60adfc, 0xb6238b25, 0xb2e29692,
0x8aad2b2f, 0x8e6c3698, 0x832f1041, 0x87ee0df6,
0x99a95df3, 0x9d684044, 0x902b669d, 0x94ea7b2a,
0xe0b41de7, 0xe4750050, 0xe9362689, 0xedf73b3e,
0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2,
0xc6bcf05f, 0xc27dede8, 0xcf3ecb31, 0xcbffd686,
0xd5b88683, 0xd1799b34, 0xdc3abded, 0xd8fba05a,
0x690ce0ee, 0x6dcdfd59, 0x608edb80, 0x644fc637,
0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb,
0x4f040d56, 0x4bc510e1, 0x46863638, 0x42472b8f,
0x5c007b8a, 0x58c1663d, 0x558240e4, 0x51435d53,
0x251d3b9e, 0x21dc2629, 0x2c9f00f0, 0x285e1d47,
0x36194d42, 0x32d850f5, 0x3f9b762c, 0x3b5a6b9b,
0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff,
0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623,
0xf12f560e, 0xf5ee4bb9, 0xf8ad6d60, 0xfc6c70d7,
0xe22b20d2, 0xe6ea3d65, 0xeba91bbc, 0xef68060b,
0xd727bbb6, 0xd3e6a601, 0xdea580d8, 0xda649d6f,
0xc423cd6a, 0xc0e2d0dd, 0xcda1f604, 0xc960ebb3,
0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7,
0xae3afba2, 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b,
0x9b3660c6, 0x9ff77d71, 0x92b45ba8, 0x9675461f,
0x8832161a, 0x8cf30bad, 0x81b02d74, 0x857130c3,
0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640,
0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c,
0x7b827d21, 0x7f436096, 0x7200464f, 0x76c15bf8,
0x68860bfd, 0x6c47164a, 0x61043093, 0x65c52d24,
0x119b4be9, 0x155a565e, 0x18197087, 0x1cd86d30,
0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec,
0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088,
0x2497d08d, 0x2056cd3a, 0x2d15ebe3, 0x29d4f654,
0xc5a92679, 0xc1683bce, 0xcc2b1d17, 0xc8ea00a0,
0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb, 0xdbee767c,
0xe3a1cbc1, 0xe760d676, 0xea23f0af, 0xeee2ed18,
0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4,
0x89b8fd09, 0x8d79e0be, 0x803ac667, 0x84fbdbd0,
0x9abc8bd5, 0x9e7d9662, 0x933eb0bb, 0x97ffad0c,
0xafb010b1, 0xab710d06, 0xa6322bdf, 0xa2f33668,
0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4
};
int globalCrc;
public StrangeCRC()
{
Reset();
}
public void Reset()
{
globalCrc = -1;
}
public long Value {
get {
return ~globalCrc;
}
}
public void Update(int inCh)
{
int temp = (globalCrc >> 24) ^ inCh;
if (temp < 0) {
temp = 256 + temp;
}
globalCrc = (int)((globalCrc << 8) ^ crc32Table[temp]);
}
public void Update(byte[] buf)
{
Update(buf, 0, buf.Length);
}
public void Update(byte[] buf, int off, int len)
{
if (buf == null) {
throw new ArgumentNullException("buf");
}
if (off < 0 || len < 0 || off + len > buf.Length) {
throw new ArgumentOutOfRangeException();
}
for (int i = 0; i < len; ++i) {
Update(buf[off++]);
}
}
}
}

View File

@@ -0,0 +1,16 @@
<Combine fileversion="1.0" name="Compression" description="">
<StartMode startupentry="Compression" single="True">
<Execute entry="Compression" type="None" />
</StartMode>
<Entries>
<Entry filename=".\.\Compression.prjx" />
</Entries>
<Configurations active="Debug">
<Configuration name="Release">
<Entry name="Compression" configurationname="Debug" build="False" />
</Configuration>
<Configuration name="Debug">
<Entry name="Compression" configurationname="Debug" build="False" />
</Configuration>
</Configurations>
</Combine>

View File

@@ -0,0 +1,45 @@
<Project name="Compression" standardNamespace="Compression" description="" newfilesearch="None" enableviewstate="True" version="1.1" projecttype="C#">
<Contents>
<File name=".\AssemblyInfo.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\ZipException.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\Deflater.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\DeflaterConstants.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\DeflaterEngine.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\DeflaterHuffman.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\DeflaterPending.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\Inflater.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\InflaterDynHeader.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\InflaterHuffmanTree.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\PendingBuffer.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\Checksums" subtype="Directory" buildaction="Compile" dependson="" data="" />
<File name=".\Checksums\StrangeCRC.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\Checksums\Adler32.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\Checksums\CRC32.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\Checksums\IChecksum.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\Streams" subtype="Directory" buildaction="Compile" dependson="" data="" />
<File name=".\Streams\StreamManipulator.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\Streams\DeflaterOutputStream.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\Streams\InflaterInputStream.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\Streams\OutputWindow.cs" subtype="Code" buildaction="Compile" dependson="" data="" />
<File name=".\Default.build" subtype="Code" buildaction="Nothing" dependson="" data="" />
</Contents>
<References />
<DeploymentInformation target="" script="" strategy="File" />
<Configuration runwithwarnings="True" name="Debug">
<CodeGeneration runtime="MsNet" compiler="Csc" compilerversion="" warninglevel="4" nowarn="" includedebuginformation="True" optimize="False" unsafecodeallowed="False" generateoverflowchecks="True" mainclass="" target="Library" definesymbols="" generatexmldocumentation="False" win32Icon="" noconfig="False" nostdlib="False" />
<Execution commandlineparameters="" consolepause="False" />
<Output directory="..\bin\Debug" assembly="Compression" executeScript="" executeBeforeBuild="" executeAfterBuild="" executeBeforeBuildArguments="" executeAfterBuildArguments="" />
</Configuration>
<Configurations active="Debug">
<Configuration runwithwarnings="True" name="Debug">
<CodeGeneration runtime="MsNet" compiler="Csc" compilerversion="" warninglevel="4" nowarn="" includedebuginformation="True" optimize="False" unsafecodeallowed="False" generateoverflowchecks="True" mainclass="" target="Library" definesymbols="" generatexmldocumentation="False" win32Icon="" noconfig="False" nostdlib="False" />
<Execution commandlineparameters="" consolepause="False" />
<Output directory="..\bin\Debug" assembly="Compression" executeScript="" executeBeforeBuild="" executeAfterBuild="" executeBeforeBuildArguments="" executeAfterBuildArguments="" />
</Configuration>
<Configuration runwithwarnings="True" name="Release">
<CodeGeneration runtime="MsNet" compiler="Csc" compilerversion="" warninglevel="4" nowarn="" includedebuginformation="False" optimize="True" unsafecodeallowed="False" generateoverflowchecks="False" mainclass="" target="Library" definesymbols="" generatexmldocumentation="False" win32Icon="" noconfig="False" nostdlib="False" />
<Execution commandlineparameters="" consolepause="False" />
<Output directory="..\bin\Release" assembly="Compression" executeScript="" executeBeforeBuild="" executeAfterBuild="" executeBeforeBuildArguments="" executeAfterBuildArguments="" />
</Configuration>
</Configurations>
</Project>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0"?>
<project name="Compression" default="build">
<property name="output.dir" value="..\bin" />
<target name="build" description="Build component">
<mkdir dir="${output.dir}" />
<csc target="library"
output="${output.dir}\Compression.dll"
optimize="true"
debug="true"
doc="${output.dir}\Compression.xml"
warninglevel="0">
<sources>
<include name="**/*.cs" />
</sources>
</csc>
</target>
</project>

View File

@@ -0,0 +1,542 @@
// Deflater.cs
// Copyright (C) 2001 Mike Krueger
//
// This file was translated from java, it was part of the GNU Classpath
// Copyright (C) 2001 Free Software Foundation, Inc.
//
// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// Linking this library statically or dynamically with other modules is
// making a combined work based on this library. Thus, the terms and
// conditions of the GNU General Public License cover the whole
// combination.
//
// As a special exception, the copyright holders of this library give you
// permission to link this library with independent modules to produce an
// executable, regardless of the license terms of these independent
// modules, and to copy and distribute the resulting executable under
// terms of your choice, provided that you also meet, for each linked
// independent module, the terms and conditions of the license of that
// module. An independent module is a module which is not derived from
// or based on this library. If you modify this library, you may extend
// this exception to your version of the library, but you are not
// obligated to do so. If you do not wish to do so, delete this
// exception statement from your version.
using System;
namespace ICSharpCode.SharpZipLib.Zip.Compression
{
/// <summary>
/// This is the Deflater class. The deflater class compresses input
/// with the deflate algorithm described in RFC 1951. It has several
/// compression levels and three different strategies described below.
///
/// This class is <i>not</i> thread safe. This is inherent in the API, due
/// to the split of deflate and setInput.
///
/// author of the original java version : Jochen Hoenicke
/// </summary>
public class Deflater
{
/// <summary>
/// The best and slowest compression level. This tries to find very
/// long and distant string repetitions.
/// </summary>
public static int BEST_COMPRESSION = 9;
/// <summary>
/// The worst but fastest compression level.
/// </summary>
public static int BEST_SPEED = 1;
/// <summary>
/// The default compression level.
/// </summary>
public static int DEFAULT_COMPRESSION = -1;
/// <summary>
/// This level won't compress at all but output uncompressed blocks.
/// </summary>
public static int NO_COMPRESSION = 0;
/// <summary>
/// The compression method. This is the only method supported so far.
/// There is no need to use this constant at all.
/// </summary>
public static int DEFLATED = 8;
/*
* The Deflater can do the following state transitions:
*
* (1) -> INIT_STATE ----> INIT_FINISHING_STATE ---.
* / | (2) (5) |
* / v (5) |
* (3)| SETDICT_STATE ---> SETDICT_FINISHING_STATE |(3)
* \ | (3) | ,-------'
* | | | (3) /
* v v (5) v v
* (1) -> BUSY_STATE ----> FINISHING_STATE
* | (6)
* v
* FINISHED_STATE
* \_____________________________________/
* | (7)
* v
* CLOSED_STATE
*
* (1) If we should produce a header we start in INIT_STATE, otherwise
* we start in BUSY_STATE.
* (2) A dictionary may be set only when we are in INIT_STATE, then
* we change the state as indicated.
* (3) Whether a dictionary is set or not, on the first call of deflate
* we change to BUSY_STATE.
* (4) -- intentionally left blank -- :)
* (5) FINISHING_STATE is entered, when flush() is called to indicate that
* there is no more INPUT. There are also states indicating, that
* the header wasn't written yet.
* (6) FINISHED_STATE is entered, when everything has been flushed to the
* internal pending output buffer.
* (7) At any time (7)
*
*/
private static int IS_SETDICT = 0x01;
private static int IS_FLUSHING = 0x04;
private static int IS_FINISHING = 0x08;
private static int INIT_STATE = 0x00;
private static int SETDICT_STATE = 0x01;
// private static int INIT_FINISHING_STATE = 0x08;
// private static int SETDICT_FINISHING_STATE = 0x09;
private static int BUSY_STATE = 0x10;
private static int FLUSHING_STATE = 0x14;
private static int FINISHING_STATE = 0x1c;
private static int FINISHED_STATE = 0x1e;
private static int CLOSED_STATE = 0x7f;
/// <summary>
/// Compression level.
/// </summary>
private int level;
/// <summary>
/// should we include a header.
/// </summary>
private bool noHeader;
// /// <summary>
// /// Compression strategy.
// /// </summary>
// private int strategy;
/// <summary>
/// The current state.
/// </summary>
private int state;
/// <summary>
/// The total bytes of output written.
/// </summary>
private int totalOut;
/// <summary>
/// The pending output.
/// </summary>
private DeflaterPending pending;
/// <summary>
/// The deflater engine.
/// </summary>
private DeflaterEngine engine;
/// <summary>
/// Creates a new deflater with default compression level.
/// </summary>
public Deflater() : this(DEFAULT_COMPRESSION, false)
{
}
/// <summary>
/// Creates a new deflater with given compression level.
/// </summary>
/// <param name="lvl">
/// the compression level, a value between NO_COMPRESSION
/// and BEST_COMPRESSION, or DEFAULT_COMPRESSION.
/// </param>
/// <exception cref="System.ArgumentOutOfRangeException">if lvl is out of range.</exception>
public Deflater(int lvl) : this(lvl, false)
{
}
/// <summary>
/// Creates a new deflater with given compression level.
/// </summary>
/// <param name="lvl">
/// the compression level, a value between NO_COMPRESSION
/// and BEST_COMPRESSION.
/// </param>
/// <param name="nowrap">
/// true, if we should suppress the deflate header at the
/// beginning and the adler checksum at the end of the output. This is
/// useful for the GZIP format.
/// </param>
/// <exception cref="System.ArgumentOutOfRangeException">if lvl is out of range.</exception>
public Deflater(int lvl, bool nowrap)
{
if (lvl == DEFAULT_COMPRESSION) {
lvl = 6;
} else if (lvl < NO_COMPRESSION || lvl > BEST_COMPRESSION) {
throw new ArgumentOutOfRangeException("lvl");
}
pending = new DeflaterPending();
engine = new DeflaterEngine(pending);
this.noHeader = nowrap;
SetStrategy(DeflateStrategy.Default);
SetLevel(lvl);
Reset();
}
/// <summary>
/// Resets the deflater. The deflater acts afterwards as if it was
/// just created with the same compression level and strategy as it
/// had before.
/// </summary>
public void Reset()
{
state = (noHeader ? BUSY_STATE : INIT_STATE);
totalOut = 0;
pending.Reset();
engine.Reset();
}
/// <summary>
/// Gets the current adler checksum of the data that was processed so far.
/// </summary>
public int Adler {
get {
return engine.Adler;
}
}
/// <summary>
/// Gets the number of input bytes processed so far.
/// </summary>
public int TotalIn {
get {
return engine.TotalIn;
}
}
/// <summary>
/// Gets the number of output bytes so far.
/// </summary>
public int TotalOut {
get {
return totalOut;
}
}
/// <summary>
/// Flushes the current input block. Further calls to deflate() will
/// produce enough output to inflate everything in the current input
/// block. This is not part of Sun's JDK so I have made it package
/// private. It is used by DeflaterOutputStream to implement
/// flush().
/// </summary>
public void Flush()
{
state |= IS_FLUSHING;
}
/// <summary>
/// Finishes the deflater with the current input block. It is an error
/// to give more input after this method was called. This method must
/// be called to force all bytes to be flushed.
/// </summary>
public void Finish()
{
state |= IS_FLUSHING | IS_FINISHING;
}
/// <summary>
/// Returns true if the stream was finished and no more output bytes
/// are available.
/// </summary>
public bool IsFinished {
get {
return state == FINISHED_STATE && pending.IsFlushed;
}
}
/// <summary>
/// Returns true, if the input buffer is empty.
/// You should then call setInput().
/// NOTE: This method can also return true when the stream
/// was finished.
/// </summary>
public bool IsNeedingInput {
get {
return engine.NeedsInput();
}
}
/// <summary>
/// Sets the data which should be compressed next. This should be only
/// called when needsInput indicates that more input is needed.
/// If you call setInput when needsInput() returns false, the
/// previous input that is still pending will be thrown away.
/// The given byte array should not be changed, before needsInput() returns
/// true again.
/// This call is equivalent to <code>setInput(input, 0, input.length)</code>.
/// </summary>
/// <param name="input">
/// the buffer containing the input data.
/// </param>
/// <exception cref="System.InvalidOperationException">
/// if the buffer was finished() or ended().
/// </exception>
public void SetInput(byte[] input)
{
SetInput(input, 0, input.Length);
}
/// <summary>
/// Sets the data which should be compressed next. This should be
/// only called when needsInput indicates that more input is needed.
/// The given byte array should not be changed, before needsInput() returns
/// true again.
/// </summary>
/// <param name="input">
/// the buffer containing the input data.
/// </param>
/// <param name="off">
/// the start of the data.
/// </param>
/// <param name="len">
/// the length of the data.
/// </param>
/// <exception cref="System.InvalidOperationException">
/// if the buffer was finished() or ended() or if previous input is still pending.
/// </exception>
public void SetInput(byte[] input, int off, int len)
{
if ((state & IS_FINISHING) != 0) {
throw new InvalidOperationException("finish()/end() already called");
}
engine.SetInput(input, off, len);
}
/// <summary>
/// Sets the compression level. There is no guarantee of the exact
/// position of the change, but if you call this when needsInput is
/// true the change of compression level will occur somewhere near
/// before the end of the so far given input.
/// </summary>
/// <param name="lvl">
/// the new compression level.
/// </param>
public void SetLevel(int lvl)
{
if (lvl == DEFAULT_COMPRESSION) {
lvl = 6;
} else if (lvl < NO_COMPRESSION || lvl > BEST_COMPRESSION) {
throw new ArgumentOutOfRangeException("lvl");
}
if (level != lvl) {
level = lvl;
engine.SetLevel(lvl);
}
}
/// <summary>
/// Sets the compression strategy. Strategy is one of
/// DEFAULT_STRATEGY, HUFFMAN_ONLY and FILTERED. For the exact
/// position where the strategy is changed, the same as for
/// setLevel() applies.
/// </summary>
/// <param name="stgy">
/// the new compression strategy.
/// </param>
public void SetStrategy(DeflateStrategy stgy)
{
engine.Strategy = stgy;
}
/// <summary>
/// Deflates the current input block to the given array. It returns
/// the number of bytes compressed, or 0 if either
/// needsInput() or finished() returns true or length is zero.
/// </summary>
/// <param name="output">
/// the buffer where to write the compressed data.
/// </param>
public int Deflate(byte[] output)
{
return Deflate(output, 0, output.Length);
}
/// <summary>
/// Deflates the current input block to the given array. It returns
/// the number of bytes compressed, or 0 if either
/// needsInput() or finished() returns true or length is zero.
/// </summary>
/// <param name="output">
/// the buffer where to write the compressed data.
/// </param>
/// <param name="offset">
/// the offset into the output array.
/// </param>
/// <param name="length">
/// the maximum number of bytes that may be written.
/// </param>
/// <exception cref="System.InvalidOperationException">
/// if end() was called.
/// </exception>
/// <exception cref="System.ArgumentOutOfRangeException">
/// if offset and/or length don't match the array length.
/// </exception>
public int Deflate(byte[] output, int offset, int length)
{
int origLength = length;
if (state == CLOSED_STATE) {
throw new InvalidOperationException("Deflater closed");
}
if (state < BUSY_STATE) {
/* output header */
int header = (DEFLATED +
((DeflaterConstants.MAX_WBITS - 8) << 4)) << 8;
int level_flags = (level - 1) >> 1;
if (level_flags < 0 || level_flags > 3) {
level_flags = 3;
}
header |= level_flags << 6;
if ((state & IS_SETDICT) != 0) {
/* Dictionary was set */
header |= DeflaterConstants.PRESET_DICT;
}
header += 31 - (header % 31);
pending.WriteShortMSB(header);
if ((state & IS_SETDICT) != 0) {
int chksum = engine.Adler;
engine.ResetAdler();
pending.WriteShortMSB(chksum >> 16);
pending.WriteShortMSB(chksum & 0xffff);
}
state = BUSY_STATE | (state & (IS_FLUSHING | IS_FINISHING));
}
for (;;) {
int count = pending.Flush(output, offset, length);
offset += count;
totalOut += count;
length -= count;
if (length == 0 || state == FINISHED_STATE) {
break;
}
if (!engine.Deflate((state & IS_FLUSHING) != 0, (state & IS_FINISHING) != 0)) {
if (state == BUSY_STATE) {
/* We need more input now */
return origLength - length;
} else if (state == FLUSHING_STATE) {
if (level != NO_COMPRESSION) {
/* We have to supply some lookahead. 8 bit lookahead
* are needed by the zlib inflater, and we must fill
* the next byte, so that all bits are flushed.
*/
int neededbits = 8 + ((-pending.BitCount) & 7);
while (neededbits > 0) {
/* write a static tree block consisting solely of
* an EOF:
*/
pending.WriteBits(2, 10);
neededbits -= 10;
}
}
state = BUSY_STATE;
} else if (state == FINISHING_STATE) {
pending.AlignToByte();
/* We have completed the stream */
if (!noHeader) {
int adler = engine.Adler;
pending.WriteShortMSB(adler >> 16);
pending.WriteShortMSB(adler & 0xffff);
}
state = FINISHED_STATE;
}
}
}
return origLength - length;
}
/// <summary>
/// Sets the dictionary which should be used in the deflate process.
/// This call is equivalent to <code>setDictionary(dict, 0, dict.Length)</code>.
/// </summary>
/// <param name="dict">
/// the dictionary.
/// </param>
/// <exception cref="System.InvalidOperationException">
/// if setInput () or deflate () were already called or another dictionary was already set.
/// </exception>
public void SetDictionary(byte[] dict)
{
SetDictionary(dict, 0, dict.Length);
}
/// <summary>
/// Sets the dictionary which should be used in the deflate process.
/// The dictionary should be a byte array containing strings that are
/// likely to occur in the data which should be compressed. The
/// dictionary is not stored in the compressed output, only a
/// checksum. To decompress the output you need to supply the same
/// dictionary again.
/// </summary>
/// <param name="dict">
/// the dictionary.
/// </param>
/// <param name="offset">
/// an offset into the dictionary.
/// </param>
/// <param name="length">
/// the length of the dictionary.
/// </param>
/// <exception cref="System.InvalidOperationException">
/// if setInput () or deflate () were already called or another dictionary was already set.
/// </exception>
public void SetDictionary(byte[] dict, int offset, int length)
{
if (state != INIT_STATE) {
throw new InvalidOperationException();
}
state = SETDICT_STATE;
engine.SetDictionary(dict, offset, length);
}
}
}

View File

@@ -0,0 +1,85 @@
// DeflaterConstants.cs
// Copyright (C) 2001 Mike Krueger
//
// This file was translated from java, it was part of the GNU Classpath
// Copyright (C) 2001 Free Software Foundation, Inc.
//
// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// Linking this library statically or dynamically with other modules is
// making a combined work based on this library. Thus, the terms and
// conditions of the GNU General Public License cover the whole
// combination.
//
// As a special exception, the copyright holders of this library give you
// permission to link this library with independent modules to produce an
// executable, regardless of the license terms of these independent
// modules, and to copy and distribute the resulting executable under
// terms of your choice, provided that you also meet, for each linked
// independent module, the terms and conditions of the license of that
// module. An independent module is a module which is not derived from
// or based on this library. If you modify this library, you may extend
// this exception to your version of the library, but you are not
// obligated to do so. If you do not wish to do so, delete this
// exception statement from your version.
using System;
namespace ICSharpCode.SharpZipLib.Zip.Compression
{
/// <summary>
/// This class contains constants used for the deflater.
/// </summary>
public class DeflaterConstants
{
public const bool DEBUGGING = false;
public const int STORED_BLOCK = 0;
public const int STATIC_TREES = 1;
public const int DYN_TREES = 2;
public const int PRESET_DICT = 0x20;
public const int DEFAULT_MEM_LEVEL = 8;
public const int MAX_MATCH = 258;
public const int MIN_MATCH = 3;
public const int MAX_WBITS = 15;
public const int WSIZE = 1 << MAX_WBITS;
public const int WMASK = WSIZE - 1;
public const int HASH_BITS = DEFAULT_MEM_LEVEL + 7;
public const int HASH_SIZE = 1 << HASH_BITS;
public const int HASH_MASK = HASH_SIZE - 1;
public const int HASH_SHIFT = (HASH_BITS + MIN_MATCH - 1) / MIN_MATCH;
public const int MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1;
public const int MAX_DIST = WSIZE - MIN_LOOKAHEAD;
public const int PENDING_BUF_SIZE = 1 << (DEFAULT_MEM_LEVEL + 8);
public static int MAX_BLOCK_SIZE = Math.Min(65535, PENDING_BUF_SIZE-5);
public const int DEFLATE_STORED = 0;
public const int DEFLATE_FAST = 1;
public const int DEFLATE_SLOW = 2;
public static int[] GOOD_LENGTH = { 0, 4, 4, 4, 4, 8, 8, 8, 32, 32 };
public static int[] MAX_LAZY = { 0, 4, 5, 6, 4,16, 16, 32, 128, 258 };
public static int[] NICE_LENGTH = { 0, 8,16,32,16,32,128,128, 258, 258 };
public static int[] MAX_CHAIN = { 0, 4, 8,32,16,32,128,256,1024,4096 };
public static int[] COMPR_FUNC = { 0, 1, 1, 1, 1, 2, 2, 2, 2, 2 };
}
}

View File

@@ -0,0 +1,653 @@
// DeflaterEngine.cs
// Copyright (C) 2001 Mike Krueger
//
// This file was translated from java, it was part of the GNU Classpath
// Copyright (C) 2001 Free Software Foundation, Inc.
//
// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// Linking this library statically or dynamically with other modules is
// making a combined work based on this library. Thus, the terms and
// conditions of the GNU General Public License cover the whole
// combination.
//
// As a special exception, the copyright holders of this library give you
// permission to link this library with independent modules to produce an
// executable, regardless of the license terms of these independent
// modules, and to copy and distribute the resulting executable under
// terms of your choice, provided that you also meet, for each linked
// independent module, the terms and conditions of the license of that
// module. An independent module is a module which is not derived from
// or based on this library. If you modify this library, you may extend
// this exception to your version of the library, but you are not
// obligated to do so. If you do not wish to do so, delete this
// exception statement from your version.
using System;
using ICSharpCode.SharpZipLib.Checksums;
namespace ICSharpCode.SharpZipLib.Zip.Compression
{
public enum DeflateStrategy
{
// The default strategy.
Default = 0,
// This strategy will only allow longer string repetitions. It is
// useful for random data with a small character set.
Filtered = 1,
// This strategy will not look for string repetitions at all. It
// only encodes with Huffman trees (which means, that more common
// characters get a smaller encoding.
HuffmanOnly = 2
}
public class DeflaterEngine : DeflaterConstants
{
static int TOO_FAR = 4096;
int ins_h;
// private byte[] buffer;
short[] head;
short[] prev;
int matchStart, matchLen;
bool prevAvailable;
int blockStart;
int strstart, lookahead;
byte[] window;
DeflateStrategy strategy;
int max_chain, max_lazy, niceLength, goodLength;
/// <summary>
/// The current compression function.
/// </summary>
int comprFunc;
/// <summary>
/// The input data for compression.
/// </summary>
byte[] inputBuf;
/// <summary>
/// The total bytes of input read.
/// </summary>
int totalIn;
/// <summary>
/// The offset into inputBuf, where input data starts.
/// </summary>
int inputOff;
/// <summary>
/// The end offset of the input data.
/// </summary>
int inputEnd;
DeflaterPending pending;
DeflaterHuffman huffman;
/// <summary>
/// The adler checksum
/// </summary>
Adler32 adler;
public DeflaterEngine(DeflaterPending pending)
{
this.pending = pending;
huffman = new DeflaterHuffman(pending);
adler = new Adler32();
window = new byte[2 * WSIZE];
head = new short[HASH_SIZE];
prev = new short[WSIZE];
/* We start at index 1, to avoid a implementation deficiency, that
* we cannot build a repeat pattern at index 0.
*/
blockStart = strstart = 1;
}
public void Reset()
{
huffman.Reset();
adler.Reset();
blockStart = strstart = 1;
lookahead = 0;
totalIn = 0;
prevAvailable = false;
matchLen = MIN_MATCH - 1;
for (int i = 0; i < HASH_SIZE; i++) {
head[i] = 0;
}
for (int i = 0; i < WSIZE; i++) {
prev[i] = 0;
}
}
public void ResetAdler()
{
adler.Reset();
}
public int Adler {
get {
return (int)adler.Value;
}
}
public int TotalIn {
get {
return totalIn;
}
}
public DeflateStrategy Strategy {
get {
return strategy;
}
set {
strategy = value;
}
}
public void SetLevel(int lvl)
{
goodLength = DeflaterConstants.GOOD_LENGTH[lvl];
max_lazy = DeflaterConstants.MAX_LAZY[lvl];
niceLength = DeflaterConstants.NICE_LENGTH[lvl];
max_chain = DeflaterConstants.MAX_CHAIN[lvl];
if (DeflaterConstants.COMPR_FUNC[lvl] != comprFunc) {
// if (DeflaterConstants.DEBUGGING) {
// //Console.WriteLine("Change from "+comprFunc +" to "
// + DeflaterConstants.COMPR_FUNC[lvl]);
// }
switch (comprFunc) {
case DEFLATE_STORED:
if (strstart > blockStart) {
huffman.FlushStoredBlock(window, blockStart,
strstart - blockStart, false);
blockStart = strstart;
}
UpdateHash();
break;
case DEFLATE_FAST:
if (strstart > blockStart) {
huffman.FlushBlock(window, blockStart, strstart - blockStart,
false);
blockStart = strstart;
}
break;
case DEFLATE_SLOW:
if (prevAvailable) {
huffman.TallyLit(window[strstart-1] & 0xff);
}
if (strstart > blockStart) {
huffman.FlushBlock(window, blockStart, strstart - blockStart, false);
blockStart = strstart;
}
prevAvailable = false;
matchLen = MIN_MATCH - 1;
break;
}
comprFunc = COMPR_FUNC[lvl];
}
}
void UpdateHash()
{
// if (DEBUGGING) {
// //Console.WriteLine("updateHash: "+strstart);
// }
ins_h = (window[strstart] << HASH_SHIFT) ^ window[strstart + 1];
}
int InsertString()
{
short match;
int hash = ((ins_h << HASH_SHIFT) ^ window[strstart + (MIN_MATCH -1)]) & HASH_MASK;
// if (DEBUGGING) {
// if (hash != (((window[strstart] << (2*HASH_SHIFT)) ^
// (window[strstart + 1] << HASH_SHIFT) ^
// (window[strstart + 2])) & HASH_MASK)) {
// throw new Exception("hash inconsistent: "+hash+"/"
// +window[strstart]+","
// +window[strstart+1]+","
// +window[strstart+2]+","+HASH_SHIFT);
// }
// }
prev[strstart & WMASK] = match = head[hash];
head[hash] = (short)strstart;
ins_h = hash;
return match & 0xffff;
}
void SlideWindow()
{
Array.Copy(window, WSIZE, window, 0, WSIZE);
matchStart -= WSIZE;
strstart -= WSIZE;
blockStart -= WSIZE;
/* Slide the hash table (could be avoided with 32 bit values
* at the expense of memory usage).
*/
for (int i = 0; i < HASH_SIZE; ++i) {
int m = head[i] & 0xffff;
head[i] = (short)(m >= WSIZE ? (m - WSIZE) : 0);
}
/* Slide the prev table. */
for (int i = 0; i < WSIZE; i++) {
int m = prev[i] & 0xffff;
prev[i] = (short)(m >= WSIZE ? (m - WSIZE) : 0);
}
}
public void FillWindow()
{
/* If the window is almost full and there is insufficient lookahead,
* move the upper half to the lower one to make room in the upper half.
*/
if (strstart >= WSIZE + MAX_DIST) {
SlideWindow();
}
/* If there is not enough lookahead, but still some input left,
* read in the input
*/
while (lookahead < DeflaterConstants.MIN_LOOKAHEAD && inputOff < inputEnd) {
int more = 2 * WSIZE - lookahead - strstart;
if (more > inputEnd - inputOff) {
more = inputEnd - inputOff;
}
System.Array.Copy(inputBuf, inputOff, window, strstart + lookahead, more);
adler.Update(inputBuf, inputOff, more);
inputOff += more;
totalIn += more;
lookahead += more;
}
if (lookahead >= MIN_MATCH) {
UpdateHash();
}
}
bool FindLongestMatch(int curMatch)
{
int chainLength = this.max_chain;
int niceLength = this.niceLength;
short[] prev = this.prev;
int scan = this.strstart;
int match;
int best_end = this.strstart + matchLen;
int best_len = Math.Max(matchLen, MIN_MATCH - 1);
int limit = Math.Max(strstart - MAX_DIST, 0);
int strend = strstart + MAX_MATCH - 1;
byte scan_end1 = window[best_end - 1];
byte scan_end = window[best_end];
/* Do not waste too much time if we already have a good match: */
if (best_len >= this.goodLength) {
chainLength >>= 2;
}
/* Do not look for matches beyond the end of the input. This is necessary
* to make deflate deterministic.
*/
if (niceLength > lookahead) {
niceLength = lookahead;
}
if (DeflaterConstants.DEBUGGING && strstart > 2 * WSIZE - MIN_LOOKAHEAD) {
throw new InvalidOperationException("need lookahead");
}
do {
if (DeflaterConstants.DEBUGGING && curMatch >= strstart) {
throw new InvalidOperationException("future match");
}
if (window[curMatch + best_len] != scan_end ||
window[curMatch + best_len - 1] != scan_end1 ||
window[curMatch] != window[scan] ||
window[curMatch + 1] != window[scan + 1]) {
continue;
}
match = curMatch + 2;
scan += 2;
/* We check for insufficient lookahead only every 8th comparison;
* the 256th check will be made at strstart+258.
*/
while (window[++scan] == window[++match] &&
window[++scan] == window[++match] &&
window[++scan] == window[++match] &&
window[++scan] == window[++match] &&
window[++scan] == window[++match] &&
window[++scan] == window[++match] &&
window[++scan] == window[++match] &&
window[++scan] == window[++match] && scan < strend) ;
if (scan > best_end) {
// if (DeflaterConstants.DEBUGGING && ins_h == 0)
// System.err.println("Found match: "+curMatch+"-"+(scan-strstart));
matchStart = curMatch;
best_end = scan;
best_len = scan - strstart;
if (best_len >= niceLength) {
break;
}
scan_end1 = window[best_end - 1];
scan_end = window[best_end];
}
scan = strstart;
} while ((curMatch = (prev[curMatch & WMASK] & 0xffff)) > limit && --chainLength != 0);
matchLen = Math.Min(best_len, lookahead);
return matchLen >= MIN_MATCH;
}
public void SetDictionary(byte[] buffer, int offset, int length)
{
if (DeflaterConstants.DEBUGGING && strstart != 1) {
throw new InvalidOperationException("strstart not 1");
}
adler.Update(buffer, offset, length);
if (length < MIN_MATCH) {
return;
}
if (length > MAX_DIST) {
offset += length - MAX_DIST;
length = MAX_DIST;
}
System.Array.Copy(buffer, offset, window, strstart, length);
UpdateHash();
--length;
while (--length > 0) {
InsertString();
strstart++;
}
strstart += 2;
blockStart = strstart;
}
bool DeflateStored(bool flush, bool finish)
{
if (!flush && lookahead == 0) {
return false;
}
strstart += lookahead;
lookahead = 0;
int storedLen = strstart - blockStart;
if ((storedLen >= DeflaterConstants.MAX_BLOCK_SIZE) || /* Block is full */
(blockStart < WSIZE && storedLen >= MAX_DIST) || /* Block may move out of window */
flush) {
bool lastBlock = finish;
if (storedLen > DeflaterConstants.MAX_BLOCK_SIZE) {
storedLen = DeflaterConstants.MAX_BLOCK_SIZE;
lastBlock = false;
}
// if (DeflaterConstants.DEBUGGING) {
// //Console.WriteLine("storedBlock["+storedLen+","+lastBlock+"]");
// }
huffman.FlushStoredBlock(window, blockStart, storedLen, lastBlock);
blockStart += storedLen;
return !lastBlock;
}
return true;
}
private bool DeflateFast(bool flush, bool finish)
{
if (lookahead < MIN_LOOKAHEAD && !flush) {
return false;
}
while (lookahead >= MIN_LOOKAHEAD || flush) {
if (lookahead == 0) {
/* We are flushing everything */
huffman.FlushBlock(window, blockStart, strstart - blockStart, finish);
blockStart = strstart;
return false;
}
if (strstart > 2 * WSIZE - MIN_LOOKAHEAD) {
/* slide window, as findLongestMatch need this.
* This should only happen when flushing and the window
* is almost full.
*/
SlideWindow();
}
int hashHead;
if (lookahead >= MIN_MATCH &&
(hashHead = InsertString()) != 0 &&
strategy != DeflateStrategy.HuffmanOnly &&
strstart - hashHead <= MAX_DIST &&
FindLongestMatch(hashHead)) {
/* longestMatch sets matchStart and matchLen */
// if (DeflaterConstants.DEBUGGING) {
// for (int i = 0 ; i < matchLen; i++) {
// if (window[strstart+i] != window[matchStart + i]) {
// throw new Exception();
// }
// }
// }
// -jr- Hak hak hak this stops problems with fast/low compression and index out of range
if (huffman.TallyDist(strstart - matchStart, matchLen)) {
bool lastBlock = finish && lookahead == 0;
huffman.FlushBlock(window, blockStart, strstart - blockStart, lastBlock);
blockStart = strstart;
}
lookahead -= matchLen;
if (matchLen <= max_lazy && lookahead >= MIN_MATCH) {
while (--matchLen > 0) {
++strstart;
InsertString();
}
++strstart;
} else {
strstart += matchLen;
if (lookahead >= MIN_MATCH - 1) {
UpdateHash();
}
}
matchLen = MIN_MATCH - 1;
continue;
} else {
/* No match found */
huffman.TallyLit(window[strstart] & 0xff);
++strstart;
--lookahead;
}
if (huffman.IsFull()) {
bool lastBlock = finish && lookahead == 0;
huffman.FlushBlock(window, blockStart, strstart - blockStart, lastBlock);
blockStart = strstart;
return !lastBlock;
}
}
return true;
}
bool DeflateSlow(bool flush, bool finish)
{
if (lookahead < MIN_LOOKAHEAD && !flush) {
return false;
}
while (lookahead >= MIN_LOOKAHEAD || flush) {
if (lookahead == 0) {
if (prevAvailable) {
huffman.TallyLit(window[strstart-1] & 0xff);
}
prevAvailable = false;
/* We are flushing everything */
if (DeflaterConstants.DEBUGGING && !flush) {
throw new Exception("Not flushing, but no lookahead");
}
huffman.FlushBlock(window, blockStart, strstart - blockStart,
finish);
blockStart = strstart;
return false;
}
if (strstart >= 2 * WSIZE - MIN_LOOKAHEAD) {
/* slide window, as findLongestMatch need this.
* This should only happen when flushing and the window
* is almost full.
*/
SlideWindow();
}
int prevMatch = matchStart;
int prevLen = matchLen;
if (lookahead >= MIN_MATCH) {
int hashHead = InsertString();
if (strategy != DeflateStrategy.HuffmanOnly && hashHead != 0 && strstart - hashHead <= MAX_DIST && FindLongestMatch(hashHead)) {
/* longestMatch sets matchStart and matchLen */
/* Discard match if too small and too far away */
if (matchLen <= 5 && (strategy == DeflateStrategy.Filtered || (matchLen == MIN_MATCH && strstart - matchStart > TOO_FAR))) {
matchLen = MIN_MATCH - 1;
}
}
}
/* previous match was better */
if (prevLen >= MIN_MATCH && matchLen <= prevLen) {
// if (DeflaterConstants.DEBUGGING) {
// for (int i = 0 ; i < matchLen; i++) {
// if (window[strstart-1+i] != window[prevMatch + i])
// throw new Exception();
// }
// }
huffman.TallyDist(strstart - 1 - prevMatch, prevLen);
prevLen -= 2;
do {
strstart++;
lookahead--;
if (lookahead >= MIN_MATCH) {
InsertString();
}
} while (--prevLen > 0);
strstart ++;
lookahead--;
prevAvailable = false;
matchLen = MIN_MATCH - 1;
} else {
if (prevAvailable) {
huffman.TallyLit(window[strstart-1] & 0xff);
}
prevAvailable = true;
strstart++;
lookahead--;
}
if (huffman.IsFull()) {
int len = strstart - blockStart;
if (prevAvailable) {
len--;
}
bool lastBlock = (finish && lookahead == 0 && !prevAvailable);
huffman.FlushBlock(window, blockStart, len, lastBlock);
blockStart += len;
return !lastBlock;
}
}
return true;
}
public bool Deflate(bool flush, bool finish)
{
bool progress;
do {
FillWindow();
bool canFlush = flush && inputOff == inputEnd;
// if (DeflaterConstants.DEBUGGING) {
// //Console.WriteLine("window: ["+blockStart+","+strstart+","
// +lookahead+"], "+comprFunc+","+canFlush);
// }
switch (comprFunc) {
case DEFLATE_STORED:
progress = DeflateStored(canFlush, finish);
break;
case DEFLATE_FAST:
progress = DeflateFast(canFlush, finish);
break;
case DEFLATE_SLOW:
progress = DeflateSlow(canFlush, finish);
break;
default:
throw new InvalidOperationException("unknown comprFunc");
}
} while (pending.IsFlushed && progress); /* repeat while we have no pending output and progress was made */
return progress;
}
public void SetInput(byte[] buf, int off, int len)
{
if (inputOff < inputEnd) {
throw new InvalidOperationException("Old input was not completely processed");
}
int end = off + len;
/* We want to throw an ArrayIndexOutOfBoundsException early. The
* check is very tricky: it also handles integer wrap around.
*/
if (0 > off || off > end || end > buf.Length) {
throw new ArgumentOutOfRangeException();
}
inputBuf = buf;
inputOff = off;
inputEnd = end;
}
public bool NeedsInput()
{
return inputEnd == inputOff;
}
}
}

View File

@@ -0,0 +1,780 @@
// DeflaterHuffman.cs
// Copyright (C) 2001 Mike Krueger
//
// This file was translated from java, it was part of the GNU Classpath
// Copyright (C) 2001 Free Software Foundation, Inc.
//
// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// Linking this library statically or dynamically with other modules is
// making a combined work based on this library. Thus, the terms and
// conditions of the GNU General Public License cover the whole
// combination.
//
// As a special exception, the copyright holders of this library give you
// permission to link this library with independent modules to produce an
// executable, regardless of the license terms of these independent
// modules, and to copy and distribute the resulting executable under
// terms of your choice, provided that you also meet, for each linked
// independent module, the terms and conditions of the license of that
// module. An independent module is a module which is not derived from
// or based on this library. If you modify this library, you may extend
// this exception to your version of the library, but you are not
// obligated to do so. If you do not wish to do so, delete this
// exception statement from your version.
using System;
namespace ICSharpCode.SharpZipLib.Zip.Compression
{
/// <summary>
/// This is the DeflaterHuffman class.
///
/// This class is <i>not</i> thread safe. This is inherent in the API, due
/// to the split of deflate and setInput.
///
/// author of the original java version : Jochen Hoenicke
/// </summary>
public class DeflaterHuffman
{
private static int BUFSIZE = 1 << (DeflaterConstants.DEFAULT_MEM_LEVEL + 6);
private static int LITERAL_NUM = 286;
private static int DIST_NUM = 30;
private static int BITLEN_NUM = 19;
private static int REP_3_6 = 16;
private static int REP_3_10 = 17;
private static int REP_11_138 = 18;
private static int EOF_SYMBOL = 256;
private static int[] BL_ORDER = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 };
private static byte[] bit4Reverse = {
0,
8,
4,
12,
2,
10,
6,
14,
1,
9,
5,
13,
3,
11,
7,
15
};
public class Tree
{
public short[] freqs;
public byte[] length;
public int minNumCodes, numCodes;
short[] codes;
int[] bl_counts;
int maxLength;
DeflaterHuffman dh;
public Tree(DeflaterHuffman dh, int elems, int minCodes, int maxLength)
{
this.dh = dh;
this.minNumCodes = minCodes;
this.maxLength = maxLength;
freqs = new short[elems];
bl_counts = new int[maxLength];
}
public void Reset()
{
for (int i = 0; i < freqs.Length; i++) {
freqs[i] = 0;
}
codes = null;
length = null;
}
public void WriteSymbol(int code)
{
// if (DeflaterConstants.DEBUGGING) {
// freqs[code]--;
// // Console.Write("writeSymbol("+freqs.length+","+code+"): ");
// }
dh.pending.WriteBits(codes[code] & 0xffff, length[code]);
}
public void CheckEmpty()
{
bool empty = true;
for (int i = 0; i < freqs.Length; i++) {
if (freqs[i] != 0) {
//Console.WriteLine("freqs["+i+"] == "+freqs[i]);
empty = false;
}
}
if (!empty) {
throw new Exception();
}
//Console.WriteLine("checkEmpty suceeded!");
}
public void SetStaticCodes(short[] stCodes, byte[] stLength)
{
codes = stCodes;
length = stLength;
}
public void BuildCodes()
{
int numSymbols = freqs.Length;
int[] nextCode = new int[maxLength];
int code = 0;
codes = new short[freqs.Length];
// if (DeflaterConstants.DEBUGGING) {
// //Console.WriteLine("buildCodes: "+freqs.Length);
// }
for (int bits = 0; bits < maxLength; bits++) {
nextCode[bits] = code;
code += bl_counts[bits] << (15 - bits);
// if (DeflaterConstants.DEBUGGING) {
// //Console.WriteLine("bits: "+(bits+1)+" count: "+bl_counts[bits]
// +" nextCode: "+code); // HACK : Integer.toHexString(
// }
}
if (DeflaterConstants.DEBUGGING && code != 65536) {
throw new Exception("Inconsistent bl_counts!");
}
for (int i=0; i < numCodes; i++) {
int bits = length[i];
if (bits > 0) {
// if (DeflaterConstants.DEBUGGING) {
// //Console.WriteLine("codes["+i+"] = rev(" + nextCode[bits-1]+")," // HACK : Integer.toHexString(
// +bits);
// }
codes[i] = BitReverse(nextCode[bits-1]);
nextCode[bits-1] += 1 << (16 - bits);
}
}
}
void BuildLength(int[] childs)
{
this.length = new byte [freqs.Length];
int numNodes = childs.Length / 2;
int numLeafs = (numNodes + 1) / 2;
int overflow = 0;
for (int i = 0; i < maxLength; i++) {
bl_counts[i] = 0;
}
/* First calculate optimal bit lengths */
int[] lengths = new int[numNodes];
lengths[numNodes-1] = 0;
for (int i = numNodes - 1; i >= 0; i--) {
if (childs[2*i+1] != -1) {
int bitLength = lengths[i] + 1;
if (bitLength > maxLength) {
bitLength = maxLength;
overflow++;
}
lengths[childs[2*i]] = lengths[childs[2*i+1]] = bitLength;
} else {
/* A leaf node */
int bitLength = lengths[i];
bl_counts[bitLength - 1]++;
this.length[childs[2*i]] = (byte) lengths[i];
}
}
// if (DeflaterConstants.DEBUGGING) {
// //Console.WriteLine("Tree "+freqs.Length+" lengths:");
// for (int i=0; i < numLeafs; i++) {
// //Console.WriteLine("Node "+childs[2*i]+" freq: "+freqs[childs[2*i]]
// + " len: "+length[childs[2*i]]);
// }
// }
if (overflow == 0) {
return;
}
int incrBitLen = maxLength - 1;
do {
/* Find the first bit length which could increase: */
while (bl_counts[--incrBitLen] == 0)
;
/* Move this node one down and remove a corresponding
* amount of overflow nodes.
*/
do {
bl_counts[incrBitLen]--;
bl_counts[++incrBitLen]++;
overflow -= 1 << (maxLength - 1 - incrBitLen);
} while (overflow > 0 && incrBitLen < maxLength - 1);
} while (overflow > 0);
/* We may have overshot above. Move some nodes from maxLength to
* maxLength-1 in that case.
*/
bl_counts[maxLength-1] += overflow;
bl_counts[maxLength-2] -= overflow;
/* Now recompute all bit lengths, scanning in increasing
* frequency. It is simpler to reconstruct all lengths instead of
* fixing only the wrong ones. This idea is taken from 'ar'
* written by Haruhiko Okumura.
*
* The nodes were inserted with decreasing frequency into the childs
* array.
*/
int nodePtr = 2 * numLeafs;
for (int bits = maxLength; bits != 0; bits--) {
int n = bl_counts[bits-1];
while (n > 0) {
int childPtr = 2*childs[nodePtr++];
if (childs[childPtr + 1] == -1) {
/* We found another leaf */
length[childs[childPtr]] = (byte) bits;
n--;
}
}
}
// if (DeflaterConstants.DEBUGGING) {
// //Console.WriteLine("*** After overflow elimination. ***");
// for (int i=0; i < numLeafs; i++) {
// //Console.WriteLine("Node "+childs[2*i]+" freq: "+freqs[childs[2*i]]
// + " len: "+length[childs[2*i]]);
// }
// }
}
public void BuildTree()
{
int numSymbols = freqs.Length;
/* heap is a priority queue, sorted by frequency, least frequent
* nodes first. The heap is a binary tree, with the property, that
* the parent node is smaller than both child nodes. This assures
* that the smallest node is the first parent.
*
* The binary tree is encoded in an array: 0 is root node and
* the nodes 2*n+1, 2*n+2 are the child nodes of node n.
*/
int[] heap = new int[numSymbols];
int heapLen = 0;
int maxCode = 0;
for (int n = 0; n < numSymbols; n++) {
int freq = freqs[n];
if (freq != 0) {
/* Insert n into heap */
int pos = heapLen++;
int ppos;
while (pos > 0 && freqs[heap[ppos = (pos - 1) / 2]] > freq) {
heap[pos] = heap[ppos];
pos = ppos;
}
heap[pos] = n;
maxCode = n;
}
}
/* We could encode a single literal with 0 bits but then we
* don't see the literals. Therefore we force at least two
* literals to avoid this case. We don't care about order in
* this case, both literals get a 1 bit code.
*/
while (heapLen < 2) {
int node = maxCode < 2 ? ++maxCode : 0;
heap[heapLen++] = node;
}
numCodes = Math.Max(maxCode + 1, minNumCodes);
int numLeafs = heapLen;
int[] childs = new int[4*heapLen - 2];
int[] values = new int[2*heapLen - 1];
int numNodes = numLeafs;
for (int i = 0; i < heapLen; i++) {
int node = heap[i];
childs[2*i] = node;
childs[2*i+1] = -1;
values[i] = freqs[node] << 8;
heap[i] = i;
}
/* Construct the Huffman tree by repeatedly combining the least two
* frequent nodes.
*/
do {
int first = heap[0];
int last = heap[--heapLen];
/* Propagate the hole to the leafs of the heap */
int ppos = 0;
int path = 1;
while (path < heapLen) {
if (path + 1 < heapLen && values[heap[path]] > values[heap[path+1]]) {
path++;
}
heap[ppos] = heap[path];
ppos = path;
path = path * 2 + 1;
}
/* Now propagate the last element down along path. Normally
* it shouldn't go too deep.
*/
int lastVal = values[last];
while ((path = ppos) > 0 && values[heap[ppos = (path - 1)/2]] > lastVal) {
heap[path] = heap[ppos];
}
heap[path] = last;
int second = heap[0];
/* Create a new node father of first and second */
last = numNodes++;
childs[2*last] = first;
childs[2*last+1] = second;
int mindepth = Math.Min(values[first] & 0xff, values[second] & 0xff);
values[last] = lastVal = values[first] + values[second] - mindepth + 1;
/* Again, propagate the hole to the leafs */
ppos = 0;
path = 1;
while (path < heapLen) {
if (path + 1 < heapLen && values[heap[path]] > values[heap[path+1]]) {
path++;
}
heap[ppos] = heap[path];
ppos = path;
path = ppos * 2 + 1;
}
/* Now propagate the new element down along path */
while ((path = ppos) > 0 && values[heap[ppos = (path - 1)/2]] > lastVal) {
heap[path] = heap[ppos];
}
heap[path] = last;
} while (heapLen > 1);
if (heap[0] != childs.Length / 2 - 1) {
throw new Exception("Weird!");
}
BuildLength(childs);
}
public int GetEncodedLength()
{
int len = 0;
for (int i = 0; i < freqs.Length; i++) {
len += freqs[i] * length[i];
}
return len;
}
public void CalcBLFreq(Tree blTree)
{
int max_count; /* max repeat count */
int min_count; /* min repeat count */
int count; /* repeat count of the current code */
int curlen = -1; /* length of current code */
int i = 0;
while (i < numCodes) {
count = 1;
int nextlen = length[i];
if (nextlen == 0) {
max_count = 138;
min_count = 3;
} else {
max_count = 6;
min_count = 3;
if (curlen != nextlen) {
blTree.freqs[nextlen]++;
count = 0;
}
}
curlen = nextlen;
i++;
while (i < numCodes && curlen == length[i]) {
i++;
if (++count >= max_count) {
break;
}
}
if (count < min_count) {
blTree.freqs[curlen] += (short)count;
} else if (curlen != 0) {
blTree.freqs[REP_3_6]++;
} else if (count <= 10) {
blTree.freqs[REP_3_10]++;
} else {
blTree.freqs[REP_11_138]++;
}
}
}
public void WriteTree(Tree blTree)
{
int max_count; /* max repeat count */
int min_count; /* min repeat count */
int count; /* repeat count of the current code */
int curlen = -1; /* length of current code */
int i = 0;
while (i < numCodes) {
count = 1;
int nextlen = length[i];
if (nextlen == 0) {
max_count = 138;
min_count = 3;
} else {
max_count = 6;
min_count = 3;
if (curlen != nextlen) {
blTree.WriteSymbol(nextlen);
count = 0;
}
}
curlen = nextlen;
i++;
while (i < numCodes && curlen == length[i]) {
i++;
if (++count >= max_count) {
break;
}
}
if (count < min_count) {
while (count-- > 0) {
blTree.WriteSymbol(curlen);
}
} else if (curlen != 0) {
blTree.WriteSymbol(REP_3_6);
dh.pending.WriteBits(count - 3, 2);
} else if (count <= 10) {
blTree.WriteSymbol(REP_3_10);
dh.pending.WriteBits(count - 3, 3);
} else {
blTree.WriteSymbol(REP_11_138);
dh.pending.WriteBits(count - 11, 7);
}
}
}
}
public DeflaterPending pending;
private Tree literalTree, distTree, blTree;
private short[] d_buf;
private byte[] l_buf;
private int last_lit;
private int extra_bits;
private static short[] staticLCodes;
private static byte[] staticLLength;
private static short[] staticDCodes;
private static byte[] staticDLength;
/// <summary>
/// Reverse the bits of a 16 bit value.
/// </summary>
public static short BitReverse(int value)
{
return (short) (bit4Reverse[value & 0xF] << 12 |
bit4Reverse[(value >> 4) & 0xF] << 8 |
bit4Reverse[(value >> 8) & 0xF] << 4 |
bit4Reverse[value >> 12]);
}
static DeflaterHuffman()
{
/* See RFC 1951 3.2.6 */
/* Literal codes */
staticLCodes = new short[LITERAL_NUM];
staticLLength = new byte[LITERAL_NUM];
int i = 0;
while (i < 144) {
staticLCodes[i] = BitReverse((0x030 + i) << 8);
staticLLength[i++] = 8;
}
while (i < 256) {
staticLCodes[i] = BitReverse((0x190 - 144 + i) << 7);
staticLLength[i++] = 9;
}
while (i < 280) {
staticLCodes[i] = BitReverse((0x000 - 256 + i) << 9);
staticLLength[i++] = 7;
}
while (i < LITERAL_NUM) {
staticLCodes[i] = BitReverse((0x0c0 - 280 + i) << 8);
staticLLength[i++] = 8;
}
/* Distant codes */
staticDCodes = new short[DIST_NUM];
staticDLength = new byte[DIST_NUM];
for (i = 0; i < DIST_NUM; i++) {
staticDCodes[i] = BitReverse(i << 11);
staticDLength[i] = 5;
}
}
public DeflaterHuffman(DeflaterPending pending)
{
this.pending = pending;
literalTree = new Tree(this, LITERAL_NUM, 257, 15);
distTree = new Tree(this, DIST_NUM, 1, 15);
blTree = new Tree(this, BITLEN_NUM, 4, 7);
d_buf = new short[BUFSIZE];
l_buf = new byte [BUFSIZE];
}
public void Reset()
{
last_lit = 0;
extra_bits = 0;
literalTree.Reset();
distTree.Reset();
blTree.Reset();
}
int Lcode(int len)
{
if (len == 255) {
return 285;
}
int code = 257;
while (len >= 8) {
code += 4;
len >>= 1;
}
return code + len;
}
int Dcode(int distance)
{
int code = 0;
while (distance >= 4) {
code += 2;
distance >>= 1;
}
return code + distance;
}
public void SendAllTrees(int blTreeCodes)
{
blTree.BuildCodes();
literalTree.BuildCodes();
distTree.BuildCodes();
pending.WriteBits(literalTree.numCodes - 257, 5);
pending.WriteBits(distTree.numCodes - 1, 5);
pending.WriteBits(blTreeCodes - 4, 4);
for (int rank = 0; rank < blTreeCodes; rank++) {
pending.WriteBits(blTree.length[BL_ORDER[rank]], 3);
}
literalTree.WriteTree(blTree);
distTree.WriteTree(blTree);
// if (DeflaterConstants.DEBUGGING) {
// blTree.CheckEmpty();
// }
}
public void CompressBlock()
{
for (int i = 0; i < last_lit; i++) {
int litlen = l_buf[i] & 0xff;
int dist = d_buf[i];
if (dist-- != 0) {
// if (DeflaterConstants.DEBUGGING) {
// Console.Write("["+(dist+1)+","+(litlen+3)+"]: ");
// }
int lc = Lcode(litlen);
literalTree.WriteSymbol(lc);
int bits = (lc - 261) / 4;
if (bits > 0 && bits <= 5) {
pending.WriteBits(litlen & ((1 << bits) - 1), bits);
}
int dc = Dcode(dist);
distTree.WriteSymbol(dc);
bits = dc / 2 - 1;
if (bits > 0) {
pending.WriteBits(dist & ((1 << bits) - 1), bits);
}
} else {
// if (DeflaterConstants.DEBUGGING) {
// if (litlen > 32 && litlen < 127) {
// Console.Write("("+(char)litlen+"): ");
// } else {
// Console.Write("{"+litlen+"}: ");
// }
// }
literalTree.WriteSymbol(litlen);
}
}
// if (DeflaterConstants.DEBUGGING) {
// Console.Write("EOF: ");
// }
literalTree.WriteSymbol(EOF_SYMBOL);
// if (DeflaterConstants.DEBUGGING) {
// literalTree.CheckEmpty();
// distTree.CheckEmpty();
// }
}
public void FlushStoredBlock(byte[] stored, int storedOffset, int storedLength, bool lastBlock)
{
// if (DeflaterConstants.DEBUGGING) {
// //Console.WriteLine("Flushing stored block "+ storedLength);
// }
pending.WriteBits((DeflaterConstants.STORED_BLOCK << 1) + (lastBlock ? 1 : 0), 3);
pending.AlignToByte();
pending.WriteShort(storedLength);
pending.WriteShort(~storedLength);
pending.WriteBlock(stored, storedOffset, storedLength);
Reset();
}
public void FlushBlock(byte[] stored, int storedOffset, int storedLength, bool lastBlock)
{
literalTree.freqs[EOF_SYMBOL]++;
/* Build trees */
literalTree.BuildTree();
distTree.BuildTree();
/* Calculate bitlen frequency */
literalTree.CalcBLFreq(blTree);
distTree.CalcBLFreq(blTree);
/* Build bitlen tree */
blTree.BuildTree();
int blTreeCodes = 4;
for (int i = 18; i > blTreeCodes; i--) {
if (blTree.length[BL_ORDER[i]] > 0) {
blTreeCodes = i+1;
}
}
int opt_len = 14 + blTreeCodes * 3 + blTree.GetEncodedLength() +
literalTree.GetEncodedLength() + distTree.GetEncodedLength() +
extra_bits;
int static_len = extra_bits;
for (int i = 0; i < LITERAL_NUM; i++) {
static_len += literalTree.freqs[i] * staticLLength[i];
}
for (int i = 0; i < DIST_NUM; i++) {
static_len += distTree.freqs[i] * staticDLength[i];
}
if (opt_len >= static_len) {
/* Force static trees */
opt_len = static_len;
}
if (storedOffset >= 0 && storedLength+4 < opt_len >> 3) {
/* Store Block */
// if (DeflaterConstants.DEBUGGING) {
// //Console.WriteLine("Storing, since " + storedLength + " < " + opt_len
// + " <= " + static_len);
// }
FlushStoredBlock(stored, storedOffset, storedLength, lastBlock);
} else if (opt_len == static_len) {
/* Encode with static tree */
pending.WriteBits((DeflaterConstants.STATIC_TREES << 1) + (lastBlock ? 1 : 0), 3);
literalTree.SetStaticCodes(staticLCodes, staticLLength);
distTree.SetStaticCodes(staticDCodes, staticDLength);
CompressBlock();
Reset();
} else {
/* Encode with dynamic tree */
pending.WriteBits((DeflaterConstants.DYN_TREES << 1) + (lastBlock ? 1 : 0), 3);
SendAllTrees(blTreeCodes);
CompressBlock();
Reset();
}
}
public bool IsFull()
{
// return last_lit + 16 >= BUFSIZE; // HACK: This was == 'last_lit == BUFSIZE', but errors occured with DeflateFast
return last_lit >= BUFSIZE; // -jr- This is the correct form!
}
public bool TallyLit(int lit)
{
// if (DeflaterConstants.DEBUGGING) {
// if (lit > 32 && lit < 127) {
// //Console.WriteLine("("+(char)lit+")");
// } else {
// //Console.WriteLine("{"+lit+"}");
// }
// }
d_buf[last_lit] = 0;
l_buf[last_lit++] = (byte)lit;
literalTree.freqs[lit]++;
return IsFull();
}
public bool TallyDist(int dist, int len)
{
// if (DeflaterConstants.DEBUGGING) {
// //Console.WriteLine("["+dist+","+len+"]");
// }
d_buf[last_lit] = (short)dist;
l_buf[last_lit++] = (byte)(len - 3);
int lc = Lcode(len - 3);
literalTree.freqs[lc]++;
if (lc >= 265 && lc < 285) {
extra_bits += (lc - 261) / 4;
}
int dc = Dcode(dist - 1);
distTree.freqs[dc]++;
if (dc >= 4) {
extra_bits += dc / 2 - 1;
}
return IsFull();
}
}
}

View File

@@ -0,0 +1,52 @@
// DeflaterPending.cs
// Copyright (C) 2001 Mike Krueger
//
// This file was translated from java, it was part of the GNU Classpath
// Copyright (C) 2001 Free Software Foundation, Inc.
//
// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// Linking this library statically or dynamically with other modules is
// making a combined work based on this library. Thus, the terms and
// conditions of the GNU General Public License cover the whole
// combination.
//
// As a special exception, the copyright holders of this library give you
// permission to link this library with independent modules to produce an
// executable, regardless of the license terms of these independent
// modules, and to copy and distribute the resulting executable under
// terms of your choice, provided that you also meet, for each linked
// independent module, the terms and conditions of the license of that
// module. An independent module is a module which is not derived from
// or based on this library. If you modify this library, you may extend
// this exception to your version of the library, but you are not
// obligated to do so. If you do not wish to do so, delete this
// exception statement from your version.
namespace ICSharpCode.SharpZipLib.Zip.Compression
{
/// <summary>
/// This class stores the pending output of the Deflater.
///
/// author of the original java version : Jochen Hoenicke
/// </summary>
public class DeflaterPending : PendingBuffer
{
public DeflaterPending() : base(DeflaterConstants.PENDING_BUF_SIZE)
{
}
}
}

View File

@@ -0,0 +1,782 @@
// Inflater.cs
// Copyright (C) 2001 Mike Krueger
//
// This file was translated from java, it was part of the GNU Classpath
// Copyright (C) 2001 Free Software Foundation, Inc.
//
// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// Linking this library statically or dynamically with other modules is
// making a combined work based on this library. Thus, the terms and
// conditions of the GNU General Public License cover the whole
// combination.
//
// As a special exception, the copyright holders of this library give you
// permission to link this library with independent modules to produce an
// executable, regardless of the license terms of these independent
// modules, and to copy and distribute the resulting executable under
// terms of your choice, provided that you also meet, for each linked
// independent module, the terms and conditions of the license of that
// module. An independent module is a module which is not derived from
// or based on this library. If you modify this library, you may extend
// this exception to your version of the library, but you are not
// obligated to do so. If you do not wish to do so, delete this
// exception statement from your version.
using System;
using ICSharpCode.SharpZipLib.Checksums;
using ICSharpCode.SharpZipLib.Zip.Compression.Streams;
namespace ICSharpCode.SharpZipLib.Zip.Compression
{
/// <summary>
/// Inflater is used to decompress data that has been compressed according
/// to the "deflate" standard described in rfc1950.
///
/// The usage is as following. First you have to set some input with
/// <code>setInput()</code>, then inflate() it. If inflate doesn't
/// inflate any bytes there may be three reasons:
/// <ul>
/// <li>needsInput() returns true because the input buffer is empty.
/// You have to provide more input with <code>setInput()</code>.
/// NOTE: needsInput() also returns true when, the stream is finished.
/// </li>
/// <li>needsDictionary() returns true, you have to provide a preset
/// dictionary with <code>setDictionary()</code>.</li>
/// <li>finished() returns true, the inflater has finished.</li>
/// </ul>
/// Once the first output byte is produced, a dictionary will not be
/// needed at a later stage.
///
/// author of the original java version : John Leuner, Jochen Hoenicke
/// </summary>
public class Inflater
{
/// <summary>
/// Copy lengths for literal codes 257..285
/// </summary>
private static int[] CPLENS = {
3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258
};
/// <summary>
/// Extra bits for literal codes 257..285
/// </summary>
private static int[] CPLEXT = {
0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0
};
/// <summary>
/// Copy offsets for distance codes 0..29
/// </summary>
private static int[] CPDIST = {
1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
8193, 12289, 16385, 24577
};
/// <summary>
/// Extra bits for distance codes
/// </summary>
private static int[] CPDEXT = {
0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
7, 7, 8, 8, 9, 9, 10, 10, 11, 11,
12, 12, 13, 13
};
/// <summary>
/// This are the state in which the inflater can be.
/// </summary>
private const int DECODE_HEADER = 0;
private const int DECODE_DICT = 1;
private const int DECODE_BLOCKS = 2;
private const int DECODE_STORED_LEN1 = 3;
private const int DECODE_STORED_LEN2 = 4;
private const int DECODE_STORED = 5;
private const int DECODE_DYN_HEADER = 6;
private const int DECODE_HUFFMAN = 7;
private const int DECODE_HUFFMAN_LENBITS = 8;
private const int DECODE_HUFFMAN_DIST = 9;
private const int DECODE_HUFFMAN_DISTBITS = 10;
private const int DECODE_CHKSUM = 11;
private const int FINISHED = 12;
/// <summary>
/// This variable contains the current state.
/// </summary>
private int mode;
/// <summary>
/// The adler checksum of the dictionary or of the decompressed
/// stream, as it is written in the header resp. footer of the
/// compressed stream.
/// Only valid if mode is DECODE_DICT or DECODE_CHKSUM.
/// </summary>
private int readAdler;
/// <summary>
/// The number of bits needed to complete the current state. This
/// is valid, if mode is DECODE_DICT, DECODE_CHKSUM,
/// DECODE_HUFFMAN_LENBITS or DECODE_HUFFMAN_DISTBITS.
/// </summary>
private int neededBits;
private int repLength, repDist;
private int uncomprLen;
/// <summary>
/// True, if the last block flag was set in the last block of the
/// inflated stream. This means that the stream ends after the
/// current block.
/// </summary>
private bool isLastBlock;
/// <summary>
/// The total number of inflated bytes.
/// </summary>
private int totalOut;
/// <summary>
/// The total number of bytes set with setInput(). This is not the
/// value returned by getTotalIn(), since this also includes the
/// unprocessed input.
/// </summary>
private int totalIn;
/// <summary>
/// This variable stores the nowrap flag that was given to the constructor.
/// True means, that the inflated stream doesn't contain a header nor the
/// checksum in the footer.
/// </summary>
private bool nowrap;
private StreamManipulator input;
private OutputWindow outputWindow;
private InflaterDynHeader dynHeader;
private InflaterHuffmanTree litlenTree, distTree;
private Adler32 adler;
/// <summary>
/// Creates a new inflater.
/// </summary>
public Inflater() : this(false)
{
}
/// <summary>
/// Creates a new inflater.
/// </summary>
/// <param name="nowrap">
/// true if no header and checksum field appears in the
/// stream. This is used for GZIPed input. For compatibility with
/// Sun JDK you should provide one byte of input more than needed in
/// this case.
/// </param>
public Inflater(bool nowrap)
{
this.nowrap = nowrap;
this.adler = new Adler32();
input = new StreamManipulator();
outputWindow = new OutputWindow();
mode = nowrap ? DECODE_BLOCKS : DECODE_HEADER;
}
/// <summary>
/// Resets the inflater so that a new stream can be decompressed. All
/// pending input and output will be discarded.
/// </summary>
public void Reset()
{
mode = nowrap ? DECODE_BLOCKS : DECODE_HEADER;
totalIn = totalOut = 0;
input.Reset();
outputWindow.Reset();
dynHeader = null;
litlenTree = null;
distTree = null;
isLastBlock = false;
adler.Reset();
}
/// <summary>
/// Decodes the deflate header.
/// </summary>
/// <returns>
/// false if more input is needed.
/// </returns>
/// <exception cref="System.FormatException">
/// if header is invalid.
/// </exception>
private bool DecodeHeader()
{
int header = input.PeekBits(16);
if (header < 0) {
return false;
}
input.DropBits(16);
/* The header is written in "wrong" byte order */
header = ((header << 8) | (header >> 8)) & 0xffff;
if (header % 31 != 0) {
throw new FormatException("Header checksum illegal");
}
if ((header & 0x0f00) != (Deflater.DEFLATED << 8)) {
throw new FormatException("Compression Method unknown");
}
/* Maximum size of the backwards window in bits.
* We currently ignore this, but we could use it to make the
* inflater window more space efficient. On the other hand the
* full window (15 bits) is needed most times, anyway.
int max_wbits = ((header & 0x7000) >> 12) + 8;
*/
if ((header & 0x0020) == 0) { // Dictionary flag?
mode = DECODE_BLOCKS;
} else {
mode = DECODE_DICT;
neededBits = 32;
}
return true;
}
/// <summary>
/// Decodes the dictionary checksum after the deflate header.
/// </summary>
/// <returns>
/// false if more input is needed.
/// </returns>
private bool DecodeDict()
{
while (neededBits > 0) {
int dictByte = input.PeekBits(8);
if (dictByte < 0) {
return false;
}
input.DropBits(8);
readAdler = (readAdler << 8) | dictByte;
neededBits -= 8;
}
return false;
}
/// <summary>
/// Decodes the huffman encoded symbols in the input stream.
/// </summary>
/// <returns>
/// false if more input is needed, true if output window is
/// full or the current block ends.
/// </returns>
/// <exception cref="System.FormatException">
/// if deflated stream is invalid.
/// </exception>
private bool DecodeHuffman()
{
int free = outputWindow.GetFreeSpace();
while (free >= 258) {
int symbol;
switch (mode) {
case DECODE_HUFFMAN:
/* This is the inner loop so it is optimized a bit */
while (((symbol = litlenTree.GetSymbol(input)) & ~0xff) == 0) {
outputWindow.Write(symbol);
if (--free < 258) {
return true;
}
}
if (symbol < 257) {
if (symbol < 0) {
return false;
} else {
/* symbol == 256: end of block */
distTree = null;
litlenTree = null;
mode = DECODE_BLOCKS;
return true;
}
}
try {
repLength = CPLENS[symbol - 257];
neededBits = CPLEXT[symbol - 257];
} catch (Exception) {
throw new FormatException("Illegal rep length code");
}
goto case DECODE_HUFFMAN_LENBITS;/* fall through */
case DECODE_HUFFMAN_LENBITS:
if (neededBits > 0) {
mode = DECODE_HUFFMAN_LENBITS;
int i = input.PeekBits(neededBits);
if (i < 0) {
return false;
}
input.DropBits(neededBits);
repLength += i;
}
mode = DECODE_HUFFMAN_DIST;
goto case DECODE_HUFFMAN_DIST;/* fall through */
case DECODE_HUFFMAN_DIST:
symbol = distTree.GetSymbol(input);
if (symbol < 0) {
return false;
}
try {
repDist = CPDIST[symbol];
neededBits = CPDEXT[symbol];
} catch (Exception) {
throw new FormatException("Illegal rep dist code");
}
goto case DECODE_HUFFMAN_DISTBITS;/* fall through */
case DECODE_HUFFMAN_DISTBITS:
if (neededBits > 0) {
mode = DECODE_HUFFMAN_DISTBITS;
int i = input.PeekBits(neededBits);
if (i < 0) {
return false;
}
input.DropBits(neededBits);
repDist += i;
}
outputWindow.Repeat(repLength, repDist);
free -= repLength;
mode = DECODE_HUFFMAN;
break;
default:
throw new FormatException();
}
}
return true;
}
/// <summary>
/// Decodes the adler checksum after the deflate stream.
/// </summary>
/// <returns>
/// false if more input is needed.
/// </returns>
/// <exception cref="System.FormatException">
/// DataFormatException, if checksum doesn't match.
/// </exception>
private bool DecodeChksum()
{
while (neededBits > 0) {
int chkByte = input.PeekBits(8);
if (chkByte < 0) {
return false;
}
input.DropBits(8);
readAdler = (readAdler << 8) | chkByte;
neededBits -= 8;
}
if ((int) adler.Value != readAdler) {
throw new FormatException("Adler chksum doesn't match: " + (int)adler.Value + " vs. " + readAdler);
}
mode = FINISHED;
return false;
}
/// <summary>
/// Decodes the deflated stream.
/// </summary>
/// <returns>
/// false if more input is needed, or if finished.
/// </returns>
/// <exception cref="System.FormatException">
/// DataFormatException, if deflated stream is invalid.
/// </exception>
private bool Decode()
{
switch (mode) {
case DECODE_HEADER:
return DecodeHeader();
case DECODE_DICT:
return DecodeDict();
case DECODE_CHKSUM:
return DecodeChksum();
case DECODE_BLOCKS:
if (isLastBlock) {
if (nowrap) {
mode = FINISHED;
return false;
} else {
input.SkipToByteBoundary();
neededBits = 32;
mode = DECODE_CHKSUM;
return true;
}
}
int type = input.PeekBits(3);
if (type < 0) {
return false;
}
input.DropBits(3);
if ((type & 1) != 0) {
isLastBlock = true;
}
switch (type >> 1){
case DeflaterConstants.STORED_BLOCK:
input.SkipToByteBoundary();
mode = DECODE_STORED_LEN1;
break;
case DeflaterConstants.STATIC_TREES:
litlenTree = InflaterHuffmanTree.defLitLenTree;
distTree = InflaterHuffmanTree.defDistTree;
mode = DECODE_HUFFMAN;
break;
case DeflaterConstants.DYN_TREES:
dynHeader = new InflaterDynHeader();
mode = DECODE_DYN_HEADER;
break;
default:
throw new FormatException("Unknown block type "+type);
}
return true;
case DECODE_STORED_LEN1:
{
if ((uncomprLen = input.PeekBits(16)) < 0) {
return false;
}
input.DropBits(16);
mode = DECODE_STORED_LEN2;
}
goto case DECODE_STORED_LEN2; /* fall through */
case DECODE_STORED_LEN2:
{
int nlen = input.PeekBits(16);
if (nlen < 0) {
return false;
}
input.DropBits(16);
if (nlen != (uncomprLen ^ 0xffff)) {
throw new FormatException("broken uncompressed block");
}
mode = DECODE_STORED;
}
goto case DECODE_STORED;/* fall through */
case DECODE_STORED:
{
int more = outputWindow.CopyStored(input, uncomprLen);
uncomprLen -= more;
if (uncomprLen == 0) {
mode = DECODE_BLOCKS;
return true;
}
return !input.IsNeedingInput;
}
case DECODE_DYN_HEADER:
if (!dynHeader.Decode(input)) {
return false;
}
litlenTree = dynHeader.BuildLitLenTree();
distTree = dynHeader.BuildDistTree();
mode = DECODE_HUFFMAN;
goto case DECODE_HUFFMAN; /* fall through */
case DECODE_HUFFMAN:
case DECODE_HUFFMAN_LENBITS:
case DECODE_HUFFMAN_DIST:
case DECODE_HUFFMAN_DISTBITS:
return DecodeHuffman();
case FINISHED:
return false;
default:
throw new FormatException();
}
}
/// <summary>
/// Sets the preset dictionary. This should only be called, if
/// needsDictionary() returns true and it should set the same
/// dictionary, that was used for deflating. The getAdler()
/// function returns the checksum of the dictionary needed.
/// </summary>
/// <param name="buffer">
/// the dictionary.
/// </param>
/// <exception cref="System.InvalidOperationException">
/// if no dictionary is needed.
/// </exception>
/// <exception cref="System.ArgumentException">
/// if the dictionary checksum is wrong.
/// </exception>
public void SetDictionary(byte[] buffer)
{
SetDictionary(buffer, 0, buffer.Length);
}
/// <summary>
/// Sets the preset dictionary. This should only be called, if
/// needsDictionary() returns true and it should set the same
/// dictionary, that was used for deflating. The getAdler()
/// function returns the checksum of the dictionary needed.
/// </summary>
/// <param name="buffer">
/// the dictionary.
/// </param>
/// <param name="off">
/// the offset into buffer where the dictionary starts.
/// </param>
/// <param name="len">
/// the length of the dictionary.
/// </param>
/// <exception cref="System.InvalidOperationException">
/// if no dictionary is needed.
/// </exception>
/// <exception cref="System.ArgumentException">
/// if the dictionary checksum is wrong.
/// </exception>
/// <exception cref="System.ArgumentOutOfRangeException">
/// if the off and/or len are wrong.
/// </exception>
public void SetDictionary(byte[] buffer, int off, int len)
{
if (!IsNeedingDictionary) {
throw new InvalidOperationException();
}
adler.Update(buffer, off, len);
if ((int)adler.Value != readAdler) {
throw new ArgumentException("Wrong adler checksum");
}
adler.Reset();
outputWindow.CopyDict(buffer, off, len);
mode = DECODE_BLOCKS;
}
/// <summary>
/// Sets the input. This should only be called, if needsInput()
/// returns true.
/// </summary>
/// <param name="buf">
/// the input.
/// </param>
/// <exception cref="System.InvalidOperationException">
/// if no input is needed.
/// </exception>
public void SetInput(byte[] buf)
{
SetInput(buf, 0, buf.Length);
}
/// <summary>
/// Sets the input. This should only be called, if needsInput()
/// returns true.
/// </summary>
/// <param name="buf">
/// the input.
/// </param>
/// <param name="off">
/// the offset into buffer where the input starts.
/// </param>
/// <param name="len">
/// the length of the input.
/// </param>
/// <exception cref="System.InvalidOperationException">
/// if no input is needed.
/// </exception>
/// <exception cref="System.ArgumentOutOfRangeException">
/// if the off and/or len are wrong.
/// </exception>
public void SetInput(byte[] buf, int off, int len)
{
input.SetInput(buf, off, len);
totalIn += len;
}
/// <summary>
/// Inflates the compressed stream to the output buffer. If this
/// returns 0, you should check, whether needsDictionary(),
/// needsInput() or finished() returns true, to determine why no
/// further output is produced.
/// </summary>
/// <param name = "buf">
/// the output buffer.
/// </param>
/// <returns>
/// the number of bytes written to the buffer, 0 if no further
/// output can be produced.
/// </returns>
/// <exception cref="System.ArgumentOutOfRangeException">
/// if buf has length 0.
/// </exception>
/// <exception cref="System.FormatException">
/// if deflated stream is invalid.
/// </exception>
public int Inflate(byte[] buf)
{
return Inflate(buf, 0, buf.Length);
}
/// <summary>
/// Inflates the compressed stream to the output buffer. If this
/// returns 0, you should check, whether needsDictionary(),
/// needsInput() or finished() returns true, to determine why no
/// further output is produced.
/// </summary>
/// <param name = "buf">
/// the output buffer.
/// </param>
/// <param name = "off">
/// the offset into buffer where the output should start.
/// </param>
/// <param name = "len">
/// the maximum length of the output.
/// </param>
/// <returns>
/// the number of bytes written to the buffer, 0 if no further output can be produced.
/// </returns>
/// <exception cref="System.ArgumentOutOfRangeException">
/// if len is &lt;= 0.
/// </exception>
/// <exception cref="System.ArgumentOutOfRangeException">
/// if the off and/or len are wrong.
/// </exception>
/// <exception cref="System.FormatException">
/// if deflated stream is invalid.
/// </exception>
public int Inflate(byte[] buf, int off, int len)
{
if (len < 0) {
throw new ArgumentOutOfRangeException("len < 0");
}
// Special case: len may be zero
if (len == 0) {
if (IsFinished == false) {// -jr- 08-Nov-2003 INFLATE_BUG fix..
Decode();
}
return 0;
}
/* // Check for correct buff, off, len triple
if (off < 0 || off + len >= buf.Length) {
throw new ArgumentException("off/len outside buf bounds");
}*/
int count = 0;
int more;
do {
if (mode != DECODE_CHKSUM) {
/* Don't give away any output, if we are waiting for the
* checksum in the input stream.
*
* With this trick we have always:
* needsInput() and not finished()
* implies more output can be produced.
*/
more = outputWindow.CopyOutput(buf, off, len);
adler.Update(buf, off, more);
off += more;
count += more;
totalOut += more;
len -= more;
if (len == 0) {
return count;
}
}
} while (Decode() || (outputWindow.GetAvailable() > 0 && mode != DECODE_CHKSUM));
return count;
}
/// <summary>
/// Returns true, if the input buffer is empty.
/// You should then call setInput().
/// NOTE: This method also returns true when the stream is finished.
/// </summary>
public bool IsNeedingInput {
get {
return input.IsNeedingInput;
}
}
/// <summary>
/// Returns true, if a preset dictionary is needed to inflate the input.
/// </summary>
public bool IsNeedingDictionary {
get {
return mode == DECODE_DICT && neededBits == 0;
}
}
/// <summary>
/// Returns true, if the inflater has finished. This means, that no
/// input is needed and no output can be produced.
/// </summary>
public bool IsFinished {
get {
return mode == FINISHED && outputWindow.GetAvailable() == 0;
}
}
/// <summary>
/// Gets the adler checksum. This is either the checksum of all
/// uncompressed bytes returned by inflate(), or if needsDictionary()
/// returns true (and thus no output was yet produced) this is the
/// adler checksum of the expected dictionary.
/// </summary>
/// <returns>
/// the adler checksum.
/// </returns>
public int Adler {
get {
return IsNeedingDictionary ? readAdler : (int) adler.Value;
}
}
/// <summary>
/// Gets the total number of output bytes returned by inflate().
/// </summary>
/// <returns>
/// the total number of output bytes.
/// </returns>
public int TotalOut {
get {
return totalOut;
}
}
/// <summary>
/// Gets the total number of processed compressed input bytes.
/// </summary>
/// <returns>
/// the total number of bytes of processed input bytes.
/// </returns>
public int TotalIn {
get {
return totalIn - RemainingInput;
}
}
/// <summary>
/// Gets the number of unprocessed input. Useful, if the end of the
/// stream is reached and you want to further process the bytes after
/// the deflate stream.
/// </summary>
/// <returns>
/// the number of bytes of the input which were not processed.
/// </returns>
public int RemainingInput {
get {
return input.AvailableBytes;
}
}
}
}

View File

@@ -0,0 +1,207 @@
// InflaterDynHeader.cs
// Copyright (C) 2001 Mike Krueger
//
// This file was translated from java, it was part of the GNU Classpath
// Copyright (C) 2001 Free Software Foundation, Inc.
//
// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// Linking this library statically or dynamically with other modules is
// making a combined work based on this library. Thus, the terms and
// conditions of the GNU General Public License cover the whole
// combination.
//
// As a special exception, the copyright holders of this library give you
// permission to link this library with independent modules to produce an
// executable, regardless of the license terms of these independent
// modules, and to copy and distribute the resulting executable under
// terms of your choice, provided that you also meet, for each linked
// independent module, the terms and conditions of the license of that
// module. An independent module is a module which is not derived from
// or based on this library. If you modify this library, you may extend
// this exception to your version of the library, but you are not
// obligated to do so. If you do not wish to do so, delete this
// exception statement from your version.
using System;
using ICSharpCode.SharpZipLib.Zip.Compression.Streams;
namespace ICSharpCode.SharpZipLib.Zip.Compression
{
class InflaterDynHeader
{
const int LNUM = 0;
const int DNUM = 1;
const int BLNUM = 2;
const int BLLENS = 3;
const int LENS = 4;
const int REPS = 5;
static readonly int[] repMin = { 3, 3, 11 };
static readonly int[] repBits = { 2, 3, 7 };
byte[] blLens;
byte[] litdistLens;
InflaterHuffmanTree blTree;
int mode;
int lnum, dnum, blnum, num;
int repSymbol;
byte lastLen;
int ptr;
static readonly int[] BL_ORDER =
{ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 };
public InflaterDynHeader()
{
}
public bool Decode(StreamManipulator input)
{
decode_loop:
for (;;) {
switch (mode) {
case LNUM:
lnum = input.PeekBits(5);
if (lnum < 0) {
return false;
}
lnum += 257;
input.DropBits(5);
// System.err.println("LNUM: "+lnum);
mode = DNUM;
goto case DNUM; // fall through
case DNUM:
dnum = input.PeekBits(5);
if (dnum < 0) {
return false;
}
dnum++;
input.DropBits(5);
// System.err.println("DNUM: "+dnum);
num = lnum+dnum;
litdistLens = new byte[num];
mode = BLNUM;
goto case BLNUM; // fall through
case BLNUM:
blnum = input.PeekBits(4);
if (blnum < 0) {
return false;
}
blnum += 4;
input.DropBits(4);
blLens = new byte[19];
ptr = 0;
// System.err.println("BLNUM: "+blnum);
mode = BLLENS;
goto case BLLENS; // fall through
case BLLENS:
while (ptr < blnum) {
int len = input.PeekBits(3);
if (len < 0) {
return false;
}
input.DropBits(3);
// System.err.println("blLens["+BL_ORDER[ptr]+"]: "+len);
blLens[BL_ORDER[ptr]] = (byte) len;
ptr++;
}
blTree = new InflaterHuffmanTree(blLens);
blLens = null;
ptr = 0;
mode = LENS;
goto case LENS; // fall through
case LENS:
{
int symbol;
while (((symbol = blTree.GetSymbol(input)) & ~15) == 0) {
/* Normal case: symbol in [0..15] */
// System.err.println("litdistLens["+ptr+"]: "+symbol);
litdistLens[ptr++] = lastLen = (byte)symbol;
if (ptr == num) {
/* Finished */
return true;
}
}
/* need more input ? */
if (symbol < 0) {
return false;
}
/* otherwise repeat code */
if (symbol >= 17) {
/* repeat zero */
// System.err.println("repeating zero");
lastLen = 0;
} else {
if (ptr == 0) {
throw new Exception();
}
}
repSymbol = symbol-16;
}
mode = REPS;
goto case REPS; // fall through
case REPS:
{
int bits = repBits[repSymbol];
int count = input.PeekBits(bits);
if (count < 0) {
return false;
}
input.DropBits(bits);
count += repMin[repSymbol];
// System.err.println("litdistLens repeated: "+count);
if (ptr + count > num) {
throw new Exception();
}
while (count-- > 0) {
litdistLens[ptr++] = lastLen;
}
if (ptr == num) {
/* Finished */
return true;
}
}
mode = LENS;
goto decode_loop;
}
}
}
public InflaterHuffmanTree BuildLitLenTree()
{
byte[] litlenLens = new byte[lnum];
Array.Copy(litdistLens, 0, litlenLens, 0, lnum);
return new InflaterHuffmanTree(litlenLens);
}
public InflaterHuffmanTree BuildDistTree()
{
byte[] distLens = new byte[dnum];
Array.Copy(litdistLens, lnum, distLens, 0, dnum);
return new InflaterHuffmanTree(distLens);
}
}
}

View File

@@ -0,0 +1,213 @@
// InflaterHuffmanTree.cs
// Copyright (C) 2001 Mike Krueger
//
// This file was translated from java, it was part of the GNU Classpath
// Copyright (C) 2001 Free Software Foundation, Inc.
//
// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// Linking this library statically or dynamically with other modules is
// making a combined work based on this library. Thus, the terms and
// conditions of the GNU General Public License cover the whole
// combination.
//
// As a special exception, the copyright holders of this library give you
// permission to link this library with independent modules to produce an
// executable, regardless of the license terms of these independent
// modules, and to copy and distribute the resulting executable under
// terms of your choice, provided that you also meet, for each linked
// independent module, the terms and conditions of the license of that
// module. An independent module is a module which is not derived from
// or based on this library. If you modify this library, you may extend
// this exception to your version of the library, but you are not
// obligated to do so. If you do not wish to do so, delete this
// exception statement from your version.
using System;
using ICSharpCode.SharpZipLib.Zip.Compression.Streams;
namespace ICSharpCode.SharpZipLib.Zip.Compression
{
public class InflaterHuffmanTree
{
private static int MAX_BITLEN = 15;
private short[] tree;
public static InflaterHuffmanTree defLitLenTree, defDistTree;
static InflaterHuffmanTree()
{
try {
byte[] codeLengths = new byte[288];
int i = 0;
while (i < 144) {
codeLengths[i++] = 8;
}
while (i < 256) {
codeLengths[i++] = 9;
}
while (i < 280) {
codeLengths[i++] = 7;
}
while (i < 288) {
codeLengths[i++] = 8;
}
defLitLenTree = new InflaterHuffmanTree(codeLengths);
codeLengths = new byte[32];
i = 0;
while (i < 32) {
codeLengths[i++] = 5;
}
defDistTree = new InflaterHuffmanTree(codeLengths);
} catch (Exception) {
throw new ApplicationException("InflaterHuffmanTree: static tree length illegal");
}
}
/// <summary>
/// Constructs a Huffman tree from the array of code lengths.
/// </summary>
/// <param name = "codeLengths">
/// the array of code lengths
/// </param>
public InflaterHuffmanTree(byte[] codeLengths)
{
BuildTree(codeLengths);
}
private void BuildTree(byte[] codeLengths)
{
int[] blCount = new int[MAX_BITLEN + 1];
int[] nextCode = new int[MAX_BITLEN + 1];
for (int i = 0; i < codeLengths.Length; i++) {
int bits = codeLengths[i];
if (bits > 0) {
blCount[bits]++;
}
}
int code = 0;
int treeSize = 512;
for (int bits = 1; bits <= MAX_BITLEN; bits++) {
nextCode[bits] = code;
code += blCount[bits] << (16 - bits);
if (bits >= 10) {
/* We need an extra table for bit lengths >= 10. */
int start = nextCode[bits] & 0x1ff80;
int end = code & 0x1ff80;
treeSize += (end - start) >> (16 - bits);
}
}
/* -jr comment this out! doesnt work for dynamic trees and pkzip 2.04g
if (code != 65536)
{
throw new Exception("Code lengths don't add up properly.");
}
*/
/* Now create and fill the extra tables from longest to shortest
* bit len. This way the sub trees will be aligned.
*/
tree = new short[treeSize];
int treePtr = 512;
for (int bits = MAX_BITLEN; bits >= 10; bits--) {
int end = code & 0x1ff80;
code -= blCount[bits] << (16 - bits);
int start = code & 0x1ff80;
for (int i = start; i < end; i += 1 << 7) {
tree[DeflaterHuffman.BitReverse(i)] = (short) ((-treePtr << 4) | bits);
treePtr += 1 << (bits-9);
}
}
for (int i = 0; i < codeLengths.Length; i++) {
int bits = codeLengths[i];
if (bits == 0) {
continue;
}
code = nextCode[bits];
int revcode = DeflaterHuffman.BitReverse(code);
if (bits <= 9) {
do {
tree[revcode] = (short) ((i << 4) | bits);
revcode += 1 << bits;
} while (revcode < 512);
} else {
int subTree = tree[revcode & 511];
int treeLen = 1 << (subTree & 15);
subTree = -(subTree >> 4);
do {
tree[subTree | (revcode >> 9)] = (short) ((i << 4) | bits);
revcode += 1 << bits;
} while (revcode < treeLen);
}
nextCode[bits] = code + (1 << (16 - bits));
}
}
/// <summary>
/// Reads the next symbol from input. The symbol is encoded using the
/// huffman tree.
/// </summary>
/// <param name="input">
/// input the input source.
/// </param>
/// <returns>
/// the next symbol, or -1 if not enough input is available.
/// </returns>
public int GetSymbol(StreamManipulator input)
{
int lookahead, symbol;
if ((lookahead = input.PeekBits(9)) >= 0) {
if ((symbol = tree[lookahead]) >= 0) {
input.DropBits(symbol & 15);
return symbol >> 4;
}
int subtree = -(symbol >> 4);
int bitlen = symbol & 15;
if ((lookahead = input.PeekBits(bitlen)) >= 0) {
symbol = tree[subtree | (lookahead >> 9)];
input.DropBits(symbol & 15);
return symbol >> 4;
} else {
int bits = input.AvailableBits;
lookahead = input.PeekBits(bits);
symbol = tree[subtree | (lookahead >> 9)];
if ((symbol & 15) <= bits) {
input.DropBits(symbol & 15);
return symbol >> 4;
} else {
return -1;
}
}
} else {
int bits = input.AvailableBits;
lookahead = input.PeekBits(bits);
symbol = tree[lookahead];
if (symbol >= 0 && (symbol & 15) <= bits) {
input.DropBits(symbol & 15);
return symbol >> 4;
} else {
return -1;
}
}
}
}
}

View File

@@ -0,0 +1,210 @@
// PendingBuffer.cs
// Copyright (C) 2001 Mike Krueger
//
// This file was translated from java, it was part of the GNU Classpath
// Copyright (C) 2001 Free Software Foundation, Inc.
//
// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// Linking this library statically or dynamically with other modules is
// making a combined work based on this library. Thus, the terms and
// conditions of the GNU General Public License cover the whole
// combination.
//
// As a special exception, the copyright holders of this library give you
// permission to link this library with independent modules to produce an
// executable, regardless of the license terms of these independent
// modules, and to copy and distribute the resulting executable under
// terms of your choice, provided that you also meet, for each linked
// independent module, the terms and conditions of the license of that
// module. An independent module is a module which is not derived from
// or based on this library. If you modify this library, you may extend
// this exception to your version of the library, but you are not
// obligated to do so. If you do not wish to do so, delete this
// exception statement from your version.
using System;
namespace ICSharpCode.SharpZipLib.Zip.Compression
{
/// <summary>
/// This class is general purpose class for writing data to a buffer.
///
/// It allows you to write bits as well as bytes
/// Based on DeflaterPending.java
///
/// author of the original java version : Jochen Hoenicke
/// </summary>
public class PendingBuffer
{
protected byte[] buf;
int start;
int end;
uint bits;
int bitCount;
public PendingBuffer() : this( 4096 )
{
}
public PendingBuffer(int bufsize)
{
buf = new byte[bufsize];
}
public void Reset()
{
start = end = bitCount = 0;
}
public void WriteByte(int b)
{
if (DeflaterConstants.DEBUGGING && start != 0) {
throw new Exception();
}
buf[end++] = (byte) b;
}
public void WriteShort(int s)
{
if (DeflaterConstants.DEBUGGING && start != 0) {
throw new Exception();
}
buf[end++] = (byte) s;
buf[end++] = (byte) (s >> 8);
}
public void WriteInt(int s)
{
if (DeflaterConstants.DEBUGGING && start != 0) {
throw new Exception();
}
buf[end++] = (byte) s;
buf[end++] = (byte) (s >> 8);
buf[end++] = (byte) (s >> 16);
buf[end++] = (byte) (s >> 24);
}
public void WriteBlock(byte[] block, int offset, int len)
{
if (DeflaterConstants.DEBUGGING && start != 0) {
throw new Exception();
}
System.Array.Copy(block, offset, buf, end, len);
end += len;
}
public int BitCount {
get {
return bitCount;
}
}
public void AlignToByte()
{
if (DeflaterConstants.DEBUGGING && start != 0) {
throw new Exception();
}
if (bitCount > 0) {
buf[end++] = (byte) bits;
if (bitCount > 8) {
buf[end++] = (byte) (bits >> 8);
}
}
bits = 0;
bitCount = 0;
}
public void WriteBits(int b, int count)
{
if (DeflaterConstants.DEBUGGING && start != 0) {
throw new Exception();
}
// if (DeflaterConstants.DEBUGGING) {
// //Console.WriteLine("writeBits("+b+","+count+")");
// }
bits |= (uint)(b << bitCount);
bitCount += count;
if (bitCount >= 16) {
buf[end++] = (byte) bits;
buf[end++] = (byte) (bits >> 8);
bits >>= 16;
bitCount -= 16;
}
}
public void WriteShortMSB(int s)
{
if (DeflaterConstants.DEBUGGING && start != 0) {
throw new Exception();
}
buf[end++] = (byte) (s >> 8);
buf[end++] = (byte) s;
}
public bool IsFlushed {
get {
return end == 0;
}
}
/// <summary>
/// Flushes the pending buffer into the given output array. If the
/// output array is to small, only a partial flush is done.
/// </summary>
/// <param name="output">
/// the output array;
/// </param>
/// <param name="offset">
/// the offset into output array;
/// </param>
/// <param name="length">
/// length the maximum number of bytes to store;
/// </param>
/// <exception name="ArgumentOutOfRangeException">
/// IndexOutOfBoundsException if offset or length are invalid.
/// </exception>
public int Flush(byte[] output, int offset, int length)
{
if (bitCount >= 8) {
buf[end++] = (byte) bits;
bits >>= 8;
bitCount -= 8;
}
if (length > end - start) {
length = end - start;
System.Array.Copy(buf, start, output, offset, length);
start = 0;
end = 0;
} else {
System.Array.Copy(buf, start, output, offset, length);
start += length;
}
return length;
}
public byte[] ToByteArray()
{
byte[] ret = new byte[end - start];
System.Array.Copy(buf, start, ret, 0, ret.Length);
start = 0;
end = 0;
return ret;
}
}
}

View File

@@ -0,0 +1,379 @@
// DeflaterOutputStream.cs
// Copyright (C) 2001 Mike Krueger
//
// This file was translated from java, it was part of the GNU Classpath
// Copyright (C) 2001 Free Software Foundation, Inc.
//
// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// Linking this library statically or dynamically with other modules is
// making a combined work based on this library. Thus, the terms and
// conditions of the GNU General Public License cover the whole
// combination.
//
// As a special exception, the copyright holders of this library give you
// permission to link this library with independent modules to produce an
// executable, regardless of the license terms of these independent
// modules, and to copy and distribute the resulting executable under
// terms of your choice, provided that you also meet, for each linked
// independent module, the terms and conditions of the license of that
// module. An independent module is a module which is not derived from
// or based on this library. If you modify this library, you may extend
// this exception to your version of the library, but you are not
// obligated to do so. If you do not wish to do so, delete this
// exception statement from your version.
using System;
using System.IO;
using ICSharpCode.SharpZipLib.Checksums;
using ICSharpCode.SharpZipLib.Zip.Compression;
namespace ICSharpCode.SharpZipLib.Zip.Compression.Streams
{
/// <summary>
/// This is a special FilterOutputStream deflating the bytes that are
/// written through it. It uses the Deflater for deflating.
///
/// authors of the original java version : Tom Tromey, Jochen Hoenicke
/// </summary>
public class DeflaterOutputStream : Stream
{
/// <summary>
/// This buffer is used temporarily to retrieve the bytes from the
/// deflater and write them to the underlying output stream.
/// </summary>
protected byte[] buf;
/// <summary>
/// The deflater which is used to deflate the stream.
/// </summary>
protected Deflater def;
/// <summary>
/// base stream the deflater depends on.
/// </summary>
protected Stream baseOutputStream;
/// <summary>
/// I needed to implement the abstract member.
/// </summary>
public override bool CanRead {
get {
return baseOutputStream.CanRead;
}
}
/// <summary>
/// I needed to implement the abstract member.
/// </summary>
public override bool CanSeek {
get {
return false;
// return baseOutputStream.CanSeek;
}
}
/// <summary>
/// I needed to implement the abstract member.
/// </summary>
public override bool CanWrite {
get {
return baseOutputStream.CanWrite;
}
}
/// <summary>
/// I needed to implement the abstract member.
/// </summary>
public override long Length {
get {
return baseOutputStream.Length;
}
}
/// <summary>
/// I needed to implement the abstract member.
/// </summary>
public override long Position {
get {
return baseOutputStream.Position;
}
set {
baseOutputStream.Position = value;
}
}
/// <summary>
/// I needed to implement the abstract member.
/// </summary>
public override long Seek(long offset, SeekOrigin origin)
{
throw new NotSupportedException("Seek not supported"); // -jr- 01-Dec-2003
// return baseOutputStream.Seek(offset, origin);
}
/// <summary>
/// I needed to implement the abstract member.
/// </summary>
public override void SetLength(long val)
{
baseOutputStream.SetLength(val);
}
/// <summary>
/// I needed to implement the abstract member.
/// </summary>
public override int ReadByte()
{
return baseOutputStream.ReadByte();
}
/// <summary>
/// I needed to implement the abstract member.
/// </summary>
public override int Read(byte[] b, int off, int len)
{
return baseOutputStream.Read(b, off, len);
}
// -jr- 01-Dec-2003
public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
{
throw new NotSupportedException("Asynch read not currently supported");
}
// -jr- 01-Dec-2003
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
{
throw new NotSupportedException("Asynch write not currently supported");
}
/// <summary>
/// Deflates everything in the def's input buffers. This will call
/// <code>def.deflate()</code> until all bytes from the input buffers
/// are processed.
/// </summary>
protected void Deflate()
{
while (!def.IsNeedingInput) {
int len = def.Deflate(buf, 0, buf.Length);
// System.err.println("DOS deflated " + len + " baseOutputStream of " + buf.length);
if (len <= 0) {
break;
}
baseOutputStream.Write(buf, 0, len);
}
if (!def.IsNeedingInput) {
throw new ApplicationException("Can't deflate all input?");
}
}
/// <summary>
/// Creates a new DeflaterOutputStream with a default Deflater and default buffer size.
/// </summary>
/// <param name="baseOutputStream">
/// the output stream where deflated output should be written.
/// </param>
public DeflaterOutputStream(Stream baseOutputStream) : this(baseOutputStream, new Deflater(), 512)
{
}
/// <summary>
/// Creates a new DeflaterOutputStream with the given Deflater and
/// default buffer size.
/// </summary>
/// <param name="baseOutputStream">
/// the output stream where deflated output should be written.
/// </param>
/// <param name="defl">
/// the underlying deflater.
/// </param>
public DeflaterOutputStream(Stream baseOutputStream, Deflater defl) :this(baseOutputStream, defl, 512)
{
}
/// <summary>
/// Creates a new DeflaterOutputStream with the given Deflater and
/// buffer size.
/// </summary>
/// <param name="baseOutputStream">
/// the output stream where deflated output should be written.
/// </param>
/// <param name="defl">
/// the underlying deflater.
/// </param>
/// <param name="bufsize">
/// the buffer size.
/// </param>
/// <exception cref="System.InvalidOperationException">
/// if bufsize isn't positive.
/// </exception>
public DeflaterOutputStream(Stream baseOutputStream, Deflater defl, int bufsize)
{
this.baseOutputStream = baseOutputStream;
if (bufsize <= 0) {
throw new InvalidOperationException("bufsize <= 0");
}
buf = new byte[bufsize];
def = defl;
}
/// <summary>
/// Flushes the stream by calling flush() on the deflater and then
/// on the underlying stream. This ensures that all bytes are
/// flushed.
/// </summary>
public override void Flush()
{
def.Flush();
Deflate();
baseOutputStream.Flush();
}
/// <summary>
/// Finishes the stream by calling finish() on the deflater.
/// </summary>
public virtual void Finish()
{
def.Finish();
while (!def.IsFinished) {
int len = def.Deflate(buf, 0, buf.Length);
if (len <= 0) {
break;
}
// kidnthrain encryption alteration
if (this.Password != null) {
// plain data has been deflated. Now encrypt result
this.EncryptBlock(buf, 0, len);
}
baseOutputStream.Write(buf, 0, len);
}
if (!def.IsFinished) {
throw new ApplicationException("Can't deflate all input?");
}
baseOutputStream.Flush();
}
/// <summary>
/// Calls finish () and closes the stream.
/// </summary>
public override void Close()
{
Finish();
baseOutputStream.Close();
}
/// <summary>
/// Writes a single byte to the compressed output stream.
/// </summary>
/// <param name="bval">
/// the byte value.
/// </param>
public override void WriteByte(byte bval)
{
byte[] b = new byte[1];
b[0] = (byte) bval;
Write(b, 0, 1);
}
/// <summary>
/// Writes a len bytes from an array to the compressed stream.
/// </summary>
/// <param name="buf">
/// the byte array.
/// </param>
/// <param name="off">
/// the offset into the byte array where to start.
/// </param>
/// <param name="len">
/// the number of bytes to write.
/// </param>
public override void Write(byte[] buf, int off, int len)
{
// System.err.println("DOS with off " + off + " and len " + len);
def.SetInput(buf, off, len);
Deflate();
}
#region Encryption
string password = null;
uint[] keys = null;
public string Password {
get {
return password;
}
set {
password = value;
}
}
//The beauty of xor-ing bits is that
//plain ^ key = enc
//and enc ^ key = plain
//accordingly, this is the exact same as the decrypt byte
//function in InflaterInputStream
protected byte EncryptByte()
{
uint temp = ((keys[2] & 0xFFFF) | 2);
return (byte)((temp * (temp ^ 1)) >> 8);
}
/// <summary>
/// Takes a buffer of data and uses the keys
/// that have been previously initialized from a
/// password and then updated via a random encryption header
/// to encrypt that data
/// </summary>
protected void EncryptBlock(byte[] buf, int off, int len)
{
for (int i = off; i < off + len; ++i) {
byte oldbyte = buf[i];
buf[i] ^= EncryptByte();
UpdateKeys(oldbyte);
}
}
/// <summary>
/// Initializes our encryption keys using a given password
/// </summary>
protected void InitializePassword(string password) {
keys = new uint[] {
0x12345678,
0x23456789,
0x34567890
};
for (int i = 0; i < password.Length; ++i) {
UpdateKeys((byte)password[i]);
}
}
protected void UpdateKeys(byte ch)
{
keys[0] = Crc32.ComputeCrc32(keys[0], ch);
keys[1] = keys[1] + (byte)keys[0];
keys[1] = keys[1] * 134775813 + 1;
keys[2] = Crc32.ComputeCrc32(keys[2], (byte)(keys[1] >> 24));
}
#endregion
}
}

View File

@@ -0,0 +1,386 @@
// InflaterInputStream.cs
// Copyright (C) 2001 Mike Krueger
//
// This file was translated from java, it was part of the GNU Classpath
// Copyright (C) 2001 Free Software Foundation, Inc.
//
// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// Linking this library statically or dynamically with other modules is
// making a combined work based on this library. Thus, the terms and
// conditions of the GNU General Public License cover the whole
// combination.
//
// As a special exception, the copyright holders of this library give you
// permission to link this library with independent modules to produce an
// executable, regardless of the license terms of these independent
// modules, and to copy and distribute the resulting executable under
// terms of your choice, provided that you also meet, for each linked
// independent module, the terms and conditions of the license of that
// module. An independent module is a module which is not derived from
// or based on this library. If you modify this library, you may extend
// this exception to your version of the library, but you are not
// obligated to do so. If you do not wish to do so, delete this
// exception statement from your version.
using System;
using System.IO;
using ICSharpCode.SharpZipLib.Zip.Compression;
using ICSharpCode.SharpZipLib.Checksums;
namespace ICSharpCode.SharpZipLib.Zip.Compression.Streams
{
/// <summary>
/// This filter stream is used to decompress data compressed baseInputStream the "deflate"
/// format. The "deflate" format is described baseInputStream RFC 1951.
///
/// This stream may form the basis for other decompression filters, such
/// as the <code>GzipInputStream</code>.
///
/// author of the original java version : John Leuner
/// </summary>
public class InflaterInputStream : Stream
{
//Variables
/// <summary>
/// Decompressor for this filter
/// </summary>
protected Inflater inf;
/// <summary>
/// Byte array used as a buffer
/// </summary>
protected byte[] buf;
/// <summary>
/// Size of buffer
/// </summary>
protected int len;
//We just use this if we are decoding one byte at a time with the read() call
private byte[] onebytebuffer = new byte[1];
/// <summary>
/// base stream the inflater depends on.
/// </summary>
protected Stream baseInputStream;
protected long csize;
/// <summary>
/// I needed to implement the abstract member.
/// </summary>
public override bool CanRead {
get {
return baseInputStream.CanRead;
}
}
/// <summary>
/// I needed to implement the abstract member.
/// </summary>
public override bool CanSeek {
get {
return false;
// return baseInputStream.CanSeek;
}
}
/// <summary>
/// I needed to implement the abstract member.
/// </summary>
public override bool CanWrite {
get {
return baseInputStream.CanWrite;
}
}
/// <summary>
/// I needed to implement the abstract member.
/// </summary>
public override long Length {
get {
return len;
}
}
/// <summary>
/// I needed to implement the abstract member.
/// </summary>
public override long Position {
get {
return baseInputStream.Position;
}
set {
baseInputStream.Position = value;
}
}
/// <summary>
/// Flushes the baseInputStream
/// </summary>
public override void Flush()
{
baseInputStream.Flush();
}
/// <summary>
/// I needed to implement the abstract member.
/// </summary>
public override long Seek(long offset, SeekOrigin origin)
{
throw new NotSupportedException("Seek not supported"); // -jr- 01-Dec-2003
}
/// <summary>
/// I needed to implement the abstract member.
/// </summary>
public override void SetLength(long val)
{
baseInputStream.SetLength(val);
}
/// <summary>
/// I needed to implement the abstract member.
/// </summary>
public override void Write(byte[] array, int offset, int count)
{
baseInputStream.Write(array, offset, count);
}
/// <summary>
/// I needed to implement the abstract member.
/// </summary>
public override void WriteByte(byte val)
{
baseInputStream.WriteByte(val);
}
// -jr- 01-Dec-2003 This may be flawed for some base streams? Depends on implementation of BeginWrite
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
{
throw new NotSupportedException("Asynch write not currently supported");
}
//Constructors
/// <summary>
/// Create an InflaterInputStream with the default decompresseor
/// and a default buffer size.
/// </summary>
/// <param name = "baseInputStream">
/// the InputStream to read bytes from
/// </param>
public InflaterInputStream(Stream baseInputStream) : this(baseInputStream, new Inflater(), 4096)
{
}
/// <summary>
/// Create an InflaterInputStream with the specified decompresseor
/// and a default buffer size.
/// </summary>
/// <param name = "baseInputStream">
/// the InputStream to read bytes from
/// </param>
/// <param name = "inf">
/// the decompressor used to decompress data read from baseInputStream
/// </param>
public InflaterInputStream(Stream baseInputStream, Inflater inf) : this(baseInputStream, inf, 4096)
{
}
/// <summary>
/// Create an InflaterInputStream with the specified decompresseor
/// and a specified buffer size.
/// </summary>
/// <param name = "baseInputStream">
/// the InputStream to read bytes from
/// </param>
/// <param name = "inf">
/// the decompressor used to decompress data read from baseInputStream
/// </param>
/// <param name = "size">
/// size of the buffer to use
/// </param>
public InflaterInputStream(Stream baseInputStream, Inflater inf, int size)
{
this.baseInputStream = baseInputStream;
this.inf = inf;
try {
this.len = (int)baseInputStream.Length;
} catch (Exception) {
// the stream may not support .Length
this.len = 0;
}
if (size <= 0) {
throw new ArgumentOutOfRangeException("size <= 0");
}
buf = new byte[size]; //Create the buffer
}
//Methods
/// <summary>
/// Returns 0 once the end of the stream (EOF) has been reached.
/// Otherwise returns 1.
/// </summary>
public virtual int Available {
get {
return inf.IsFinished ? 0 : 1;
}
}
/// <summary>
/// Closes the input stream
/// </summary>
public override void Close()
{
baseInputStream.Close();
}
/// <summary>
/// Fills the buffer with more data to decompress.
/// </summary>
protected void Fill()
{
len = baseInputStream.Read(buf, 0, buf.Length);
// decrypting crypted data
if (cryptbuffer != null) {
DecryptBlock(buf, 0, System.Math.Min((int)(csize - inf.TotalIn), buf.Length));
}
if (len <= 0) {
throw new ApplicationException("Deflated stream ends early.");
}
inf.SetInput(buf, 0, len);
}
/// <summary>
/// Reads one byte of decompressed data.
///
/// The byte is baseInputStream the lower 8 bits of the int.
/// </summary>
public override int ReadByte()
{
int nread = Read(onebytebuffer, 0, 1); //read one byte
if (nread > 0) {
return onebytebuffer[0] & 0xff;
}
return -1; // ok
}
/// <summary>
/// Decompresses data into the byte array
/// </summary>
/// <param name ="b">
/// the array to read and decompress data into
/// </param>
/// <param name ="off">
/// the offset indicating where the data should be placed
/// </param>
/// <param name ="len">
/// the number of bytes to decompress
/// </param>
public override int Read(byte[] b, int off, int len)
{
for (;;) {
int count;
try {
count = inf.Inflate(b, off, len);
} catch (Exception e) {
throw new ZipException(e.ToString());
}
if (count > 0) {
return count;
}
if (inf.IsNeedingDictionary) {
throw new ZipException("Need a dictionary");
} else if (inf.IsFinished) {
return 0;
} else if (inf.IsNeedingInput) {
Fill();
} else {
throw new InvalidOperationException("Don't know what to do");
}
}
}
/// <summary>
/// Skip specified number of bytes of uncompressed data
/// </summary>
/// <param name ="n">
/// number of bytes to skip
/// </param>
public long Skip(long n)
{
if (n < 0) {
throw new ArgumentOutOfRangeException("n");
}
int len = 2048;
if (n < len) {
len = (int) n;
}
byte[] tmp = new byte[len];
return (long)baseInputStream.Read(tmp, 0, tmp.Length);
}
#region Encryption stuff
protected byte[] cryptbuffer = null;
uint[] keys = null;
protected byte DecryptByte()
{
uint temp = ((keys[2] & 0xFFFF) | 2);
return (byte)((temp * (temp ^ 1)) >> 8);
}
protected void DecryptBlock(byte[] buf, int off, int len)
{
for (int i = off; i < off + len; ++i) {
buf[i] ^= DecryptByte();
UpdateKeys(buf[i]);
}
}
protected void InitializePassword(string password)
{
keys = new uint[] {
0x12345678,
0x23456789,
0x34567890
};
for (int i = 0; i < password.Length; ++i) {
UpdateKeys((byte)password[i]);
}
}
protected void UpdateKeys(byte ch)
{
keys[0] = Crc32.ComputeCrc32(keys[0], ch);
keys[1] = keys[1] + (byte)keys[0];
keys[1] = keys[1] * 134775813 + 1;
keys[2] = Crc32.ComputeCrc32(keys[2], (byte)(keys[1] >> 24));
}
#endregion
}
}

View File

@@ -0,0 +1,176 @@
// OutputWindow.cs
// Copyright (C) 2001 Mike Krueger
//
// This file was translated from java, it was part of the GNU Classpath
// Copyright (C) 2001 Free Software Foundation, Inc.
//
// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// Linking this library statically or dynamically with other modules is
// making a combined work based on this library. Thus, the terms and
// conditions of the GNU General Public License cover the whole
// combination.
//
// As a special exception, the copyright holders of this library give you
// permission to link this library with independent modules to produce an
// executable, regardless of the license terms of these independent
// modules, and to copy and distribute the resulting executable under
// terms of your choice, provided that you also meet, for each linked
// independent module, the terms and conditions of the license of that
// module. An independent module is a module which is not derived from
// or based on this library. If you modify this library, you may extend
// this exception to your version of the library, but you are not
// obligated to do so. If you do not wish to do so, delete this
// exception statement from your version.
using System;
namespace ICSharpCode.SharpZipLib.Zip.Compression.Streams
{
/// <summary>
/// Contains the output from the Inflation process.
/// We need to have a window so that we can refer backwards into the output stream
/// to repeat stuff.
///
/// author of the original java version : John Leuner
/// </summary>
public class OutputWindow
{
private static int WINDOW_SIZE = 1 << 15;
private static int WINDOW_MASK = WINDOW_SIZE - 1;
private byte[] window = new byte[WINDOW_SIZE]; //The window is 2^15 bytes
private int windowEnd = 0;
private int windowFilled = 0;
public void Write(int abyte)
{
if (windowFilled++ == WINDOW_SIZE) {
throw new InvalidOperationException("Window full");
}
window[windowEnd++] = (byte) abyte;
windowEnd &= WINDOW_MASK;
}
private void SlowRepeat(int repStart, int len, int dist)
{
while (len-- > 0) {
window[windowEnd++] = window[repStart++];
windowEnd &= WINDOW_MASK;
repStart &= WINDOW_MASK;
}
}
public void Repeat(int len, int dist)
{
if ((windowFilled += len) > WINDOW_SIZE) {
throw new InvalidOperationException("Window full");
}
int rep_start = (windowEnd - dist) & WINDOW_MASK;
int border = WINDOW_SIZE - len;
if (rep_start <= border && windowEnd < border) {
if (len <= dist) {
System.Array.Copy(window, rep_start, window, windowEnd, len);
windowEnd += len;
} else {
/* We have to copy manually, since the repeat pattern overlaps.
*/
while (len-- > 0) {
window[windowEnd++] = window[rep_start++];
}
}
} else {
SlowRepeat(rep_start, len, dist);
}
}
public int CopyStored(StreamManipulator input, int len)
{
len = Math.Min(Math.Min(len, WINDOW_SIZE - windowFilled), input.AvailableBytes);
int copied;
int tailLen = WINDOW_SIZE - windowEnd;
if (len > tailLen) {
copied = input.CopyBytes(window, windowEnd, tailLen);
if (copied == tailLen) {
copied += input.CopyBytes(window, 0, len - tailLen);
}
} else {
copied = input.CopyBytes(window, windowEnd, len);
}
windowEnd = (windowEnd + copied) & WINDOW_MASK;
windowFilled += copied;
return copied;
}
public void CopyDict(byte[] dict, int offset, int len)
{
if (windowFilled > 0) {
throw new InvalidOperationException();
}
if (len > WINDOW_SIZE) {
offset += len - WINDOW_SIZE;
len = WINDOW_SIZE;
}
System.Array.Copy(dict, offset, window, 0, len);
windowEnd = len & WINDOW_MASK;
}
public int GetFreeSpace()
{
return WINDOW_SIZE - windowFilled;
}
public int GetAvailable()
{
return windowFilled;
}
public int CopyOutput(byte[] output, int offset, int len)
{
int copy_end = windowEnd;
if (len > windowFilled) {
len = windowFilled;
} else {
copy_end = (windowEnd - windowFilled + len) & WINDOW_MASK;
}
int copied = len;
int tailLen = len - copy_end;
if (tailLen > 0) {
System.Array.Copy(window, WINDOW_SIZE - tailLen, output, offset, tailLen);
offset += tailLen;
len = copy_end;
}
System.Array.Copy(window, copy_end - len, output, offset, len);
windowFilled -= copied;
if (windowFilled < 0) {
throw new InvalidOperationException();
}
return copied;
}
public void Reset()
{
windowFilled = windowEnd = 0;
}
}
}

Some files were not shown because too many files have changed in this diff Show More