Eric Kohl [Sat, 3 Nov 2007 15:53:52 +0000 (15:53 +0000)]
Find the real currently selected list view item. This fixes a bug where a non-selected item gets edited or deleted.
svn path=/trunk/; revision=30091
Eric Kohl [Sat, 3 Nov 2007 14:39:08 +0000 (14:39 +0000)]
Coding style clean-up. No code changes.
svn path=/trunk/; revision=30090
Hervé Poussineau [Sat, 3 Nov 2007 14:17:00 +0000 (14:17 +0000)]
Move files to recycle bin when asked to
svn path=/trunk/; revision=30089
Aleksey Bragin [Sat, 3 Nov 2007 13:59:26 +0000 (13:59 +0000)]
- Don't bother flushing volatile hives.
svn path=/trunk/; revision=30088
Hervé Poussineau [Sat, 3 Nov 2007 13:39:55 +0000 (13:39 +0000)]
Add stubs for TRASH_CanTrashFile and TRASH_TrashFile
svn path=/trunk/; revision=30087
Eric Kohl [Sat, 3 Nov 2007 11:02:31 +0000 (11:02 +0000)]
Implement removal of environment variables by removing all environment variables from the registry and re-adding the stored ones.
svn path=/trunk/; revision=30086
James Tabor [Sat, 3 Nov 2007 01:30:04 +0000 (01:30 +0000)]
Fix a stub.
svn path=/trunk/; revision=30085
Aleksey Bragin [Fri, 2 Nov 2007 23:12:22 +0000 (23:12 +0000)]
- Move Nt* APIs converted to new CM into config/cmapi.c
- Start removing usage of ReactOS Hive Flags and use NT Hive Flags instead.
- Add CmpLockRegsitry based on CmpLockRegistryExclusive.
- Add new lazy flush implementation based on the old one, but with parallel work support. Not yet in use.
- Don't delete a key that's already being deleted.
- Update KcbMaxNameLen after a deletion.
- Set the DELETE flag in the KCB during a deletion.
- Remove the KCB Key hash during a delete.
- Implement CmFlushKey (not yet used).
svn path=/trunk/; revision=30079
James Tabor [Fri, 2 Nov 2007 22:14:45 +0000 (22:14 +0000)]
Add STOCK_LAST, update stock objects.
svn path=/trunk/; revision=30075
Marc Piulachs [Fri, 2 Nov 2007 19:59:55 +0000 (19:59 +0000)]
remove '__REACTOS__' define already defined for project
svn path=/trunk/; revision=30073
Aleksey Bragin [Fri, 2 Nov 2007 16:00:58 +0000 (16:00 +0000)]
- It may happen so, that the driver was loaded by the bootloader, but failed initialization (thus DriverObject == NULL), and later PNP manager tries to install it again, and BSOD due to NULL DriverObject (because really only its image is loaded, but it's not initialized). Prevent this situation by initializing DriverObject in that case.
svn path=/trunk/; revision=30071
Ged Murphy [Fri, 2 Nov 2007 13:39:56 +0000 (13:39 +0000)]
add missing break
svn path=/trunk/; revision=30070
Aleksey Bragin [Fri, 2 Nov 2007 13:13:55 +0000 (13:13 +0000)]
- Make use of the function Herve implemented in previous commit to flush key buffer at the beginning of every page in usetup.
See issue #2131 for more details.
svn path=/trunk/; revision=30069
Hervé Poussineau [Fri, 2 Nov 2007 13:01:15 +0000 (13:01 +0000)]
Report STATUS_NOT_SUPPORTED when IOCTL is not supported
svn path=/trunk/; revision=30068
Hervé Poussineau [Fri, 2 Nov 2007 12:37:50 +0000 (12:37 +0000)]
Add method to flush console input buffer
svn path=/trunk/; revision=30067
Hervé Poussineau [Fri, 2 Nov 2007 12:36:50 +0000 (12:36 +0000)]
Support IRP cancellation
svn path=/trunk/; revision=30066
Johannes Anderwald [Fri, 2 Nov 2007 12:08:57 +0000 (12:08 +0000)]
- add szClass to static context menu struct
- remove szCmd from static context menu struct
- let ShellExecuteEx do the work of executing static context menu
- remove DoOpenExplore function, the verbs "open" + "explore" are now read from registry depending on the class
- check if there are dynamic / static available shell extensions
svn path=/trunk/; revision=30065
James Tabor [Fri, 2 Nov 2007 04:23:31 +0000 (04:23 +0000)]
Win32k:
- Forked dcutil and gdibatch.
- Added our first batch SetBrushOrg.
- cleaned up dcutil.
- Added dcattr support for NtGdiSetBrushOrg.
- Tested with qemu and hardware. Needs vendor app testing.
svn path=/trunk/; revision=30064
James Tabor [Fri, 2 Nov 2007 02:56:21 +0000 (02:56 +0000)]
Move GDI_BATCH_LIMIT where it should go.
svn path=/trunk/; revision=30063
Johannes Anderwald [Fri, 2 Nov 2007 02:50:07 +0000 (02:50 +0000)]
- turn off debug messages for X-time :)
svn path=/trunk/; revision=30062
Johannes Anderwald [Fri, 2 Nov 2007 02:49:14 +0000 (02:49 +0000)]
- refactor dynamic context menu loading
- dynamic shell extensions should now work
- WinRar extension is now working except for the email handling thing
svn path=/trunk/; revision=30061
James Tabor [Fri, 2 Nov 2007 02:42:09 +0000 (02:42 +0000)]
Assign define for gdi buffer size.
svn path=/trunk/; revision=30060
Magnus Olsen [Fri, 2 Nov 2007 00:03:02 +0000 (00:03 +0000)]
rename framebuf_acc.* to framebufacc.* for rbuild can not handle _, forget about that
implement DrvSetPointerShape, left todo is the copy process for mono and color pointer data before it is completed.
svn path=/trunk/; revision=30059
Johannes Anderwald [Thu, 1 Nov 2007 22:00:38 +0000 (22:00 +0000)]
- fix a bug found by w3seek
- free memory when destroying IContextMenu
svn path=/trunk/; revision=30056
Johannes Anderwald [Thu, 1 Nov 2007 21:30:44 +0000 (21:30 +0000)]
- fix position of dynamic context menus
svn path=/trunk/; revision=30055
Johannes Anderwald [Thu, 1 Nov 2007 20:56:35 +0000 (20:56 +0000)]
- remove debug prints
- remove useless file
svn path=/trunk/; revision=30053
Johannes Anderwald [Thu, 1 Nov 2007 20:54:46 +0000 (20:54 +0000)]
- implement loading & executing of static context menu extensions
svn path=/trunk/; revision=30052
Magnus Olsen [Thu, 1 Nov 2007 20:42:12 +0000 (20:42 +0000)]
accdented acctivated framebufacc in the build system, sorry it broken the build
svn path=/trunk/; revision=30050
Magnus Olsen [Thu, 1 Nov 2007 20:32:39 +0000 (20:32 +0000)]
rename framebuf_acc to framebufacc to make rbuild happy
implement hw support for DrvMovePointer, it mean if a driver have this function implement our framebufacc will use it
svn path=/trunk/; revision=30049
Thomas Bluemel [Thu, 1 Nov 2007 17:41:00 +0000 (17:41 +0000)]
Increase size of current date selection
svn path=/trunk/; revision=30047
Aleksey Bragin [Thu, 1 Nov 2007 17:06:49 +0000 (17:06 +0000)]
- Fix a bug with incorrect handling of the keyboard layout pointer (which is HKL in fact in our current implementation).
- Change the prototype to better match actual parameters usage.
See issue #2787 for more details.
svn path=/trunk/; revision=30046
Johannes Anderwald [Thu, 1 Nov 2007 16:09:04 +0000 (16:09 +0000)]
- use translated menu from resources if available
svn path=/trunk/; revision=30045
Ged Murphy [Thu, 1 Nov 2007 15:45:42 +0000 (15:45 +0000)]
- don't pass minus values for creating topdown bitmaps.
- fixes loading of toolbar bitmaps in abiword
svn path=/trunk/; revision=30043
Magnus Olsen [Thu, 1 Nov 2007 14:40:22 +0000 (14:40 +0000)]
Rename framebuf.def to framebuf_acc.def, framebuf.h to framebuf_acc.h, framebuf.rbuild to framebuf_acc.h
Start add hw mouse cures support
Deleted all old mouse pointer code that was disable.
Disable the new cached code for now
svn path=/trunk/; revision=30040
Johannes Anderwald [Thu, 1 Nov 2007 14:20:43 +0000 (14:20 +0000)]
- fix a bug in IntGetMenuDefaultItem
svn path=/trunk/; revision=30039
Johannes Anderwald [Thu, 1 Nov 2007 13:35:30 +0000 (13:35 +0000)]
- silence debug
svn path=/trunk/; revision=30038
Johannes Anderwald [Thu, 1 Nov 2007 13:33:18 +0000 (13:33 +0000)]
- dont show Open With shell extension when a selected item is a folder or a shortcut
- add the "explore" verb only if folder has a subfolder
- always add open verb
svn path=/trunk/; revision=30037
Eric Kohl [Thu, 1 Nov 2007 11:45:14 +0000 (11:45 +0000)]
Expand an environment variable only if its value got at least two percent characters.
svn path=/trunk/; revision=30035
Ged Murphy [Thu, 1 Nov 2007 10:06:11 +0000 (10:06 +0000)]
Don't lock unnecessarily and don't leak a bitmap object in case of failure
svn path=/trunk/; revision=30034
James Tabor [Thu, 1 Nov 2007 01:59:05 +0000 (01:59 +0000)]
Fix structure storage types.
svn path=/trunk/; revision=30033
Johannes Anderwald [Thu, 1 Nov 2007 00:42:06 +0000 (00:42 +0000)]
- implement IPersistFolder2 interface for desktop object
- add a backslash when required
- fixes deleting of objects on desktop
svn path=/trunk/; revision=30032
Colin Finck [Wed, 31 Oct 2007 23:26:27 +0000 (23:26 +0000)]
- Add an #error, when UNICODE is not defined.
Task-Manager makes use of NDK API's, which forces the application to be compiled Unicode-only.
- To make this obvious, change all TCHAR variables and functions to their Unicode counterparts and get rid of the "tchar.h" include.
- Use a Unicode entry-point and 'unicode="yes"' instead of UNICODE and _UNICODE definitions in the rbuild file
- Many indentation fixes
svn path=/trunk/; revision=30031
James Tabor [Wed, 31 Oct 2007 22:56:38 +0000 (22:56 +0000)]
Win32k/Gdi:
- The start of Gdi Batch.
- I've tested it on Qemu and Hardware.
- No improvements. I think it is running, so please check.
- Fix DcUtil code. Will fork soon.
svn path=/trunk/; revision=30030
Johannes Anderwald [Wed, 31 Oct 2007 22:56:24 +0000 (22:56 +0000)]
- refresh folder when deleting an item
- does not work for items placed on desktop yet because the desktop folder doesnot implement IPersistFolder2 interface
- avoid using ISFHelper interface
svn path=/trunk/; revision=30029
Aleksey Bragin [Wed, 31 Oct 2007 22:33:43 +0000 (22:33 +0000)]
- Update cached KCB values when necessary.
- Update Node Maximum values when necessary.
- Return data from the node instead of calling 3rd-party functions to loop around the entire key until they find something appropriate.
- Get rid of CmiScanForSubKey, CmiGetMaxValueDataLength, CmiGetMaxValueNameLength, CmiGetMaxClassLength, CmiGetMaxNameLength.
svn path=/trunk/; revision=30028
Magnus Olsen [Wed, 31 Oct 2007 22:32:05 +0000 (22:32 +0000)]
Comment out a hack in framebuf_acc, same hack should be remove from framebuf
svn path=/trunk/; revision=30027
Aleksey Bragin [Wed, 31 Oct 2007 22:22:07 +0000 (22:22 +0000)]
- Get rid of parent key member in PKEY_OBJECT, and use ParentKcb instead.
- Modify more functions to use KCB instead of PKEY_OBJECT.
svn path=/trunk/; revision=30026
Johannes Anderwald [Wed, 31 Oct 2007 21:25:07 +0000 (21:25 +0000)]
- implement CWM_GETISHELLBROWSER support in IShellView
- fixes desktop refreshing after a new item has been placed with ShellNew command
svn path=/trunk/; revision=30025
Magnus Olsen [Wed, 31 Oct 2007 20:07:12 +0000 (20:07 +0000)]
start implement the system cache buffer.
add helper function InitSurface to determent when we need remap or not the video memory.
in DrvEnableSurface tell it use hook flags for diffent functions, add cached alloc as well
in DrvDisableSurface, add to free the cached video memory
rewrote DrvAssertMode to remap the video memory when it is need, and realloc the cache when it is need it
Not tested if this change can be compile, yet. but this framebuf_acc is not setup yet with rbuild build system yet
svn path=/trunk/; revision=30024
Hervé Poussineau [Wed, 31 Oct 2007 18:17:00 +0000 (18:17 +0000)]
Repair TCP/IP service installation
svn path=/trunk/; revision=30022
Thomas Bluemel [Wed, 31 Oct 2007 18:14:16 +0000 (18:14 +0000)]
Fix abusing the heap by using strdupW instead of _wcsdup
svn path=/trunk/; revision=30021
Thomas Bluemel [Wed, 31 Oct 2007 17:13:52 +0000 (17:13 +0000)]
Don't call SHBrowseForFolder() with random pointers
svn path=/trunk/; revision=30020
Ged Murphy [Wed, 31 Oct 2007 16:27:40 +0000 (16:27 +0000)]
remove a sneaky little bugger
svn path=/trunk/; revision=30019
Ged Murphy [Wed, 31 Oct 2007 16:22:59 +0000 (16:22 +0000)]
- Fix param checking and don't send negative values in the SIZEL struct of IntCreateBitmap.
- Fixes displaying of menu bitmaps in apps such as abiword
svn path=/trunk/; revision=30018
Hervé Poussineau [Wed, 31 Oct 2007 15:31:46 +0000 (15:31 +0000)]
Remove LIST_ITEM structure, and replace it by well-known LIST_ENTRY
Do according changes in callers
Fix a bug in IniGetSectionSettingNameSize/IniGetSectionSettingValueSize, which were expecting memory to be allocated contiguously
svn path=/trunk/; revision=30016
Aleksey Bragin [Wed, 31 Oct 2007 14:41:27 +0000 (14:41 +0000)]
- Dispatch all symbol loads to a single function, which determines type of passed name, and calls worker function.
- Print source file:line in stack traces if possible, when KDBG is enabled
- if KDBG is not defined, behaviour of the mainstream code is completely untouched.
svn path=/trunk/; revision=30014
Magnus Olsen [Wed, 31 Oct 2007 14:35:38 +0000 (14:35 +0000)]
copy frambuf to framebuf_acc
it will use system memory as cache, it will reduce the reading access of video memory, for reading video memory directly is slow and cost allot speed.
svn path=/trunk/; revision=30013
Hervé Poussineau [Wed, 31 Oct 2007 13:41:31 +0000 (13:41 +0000)]
Remove debug/useless code
svn path=/trunk/; revision=30012
Hervé Poussineau [Wed, 31 Oct 2007 13:17:42 +0000 (13:17 +0000)]
Silent debug messages
svn path=/trunk/; revision=30011
Hervé Poussineau [Wed, 31 Oct 2007 13:10:07 +0000 (13:10 +0000)]
Allocate enough memory to keep file details
svn path=/trunk/; revision=30010
Hervé Poussineau [Wed, 31 Oct 2007 13:04:47 +0000 (13:04 +0000)]
Add traces
Fix typo in EnumerateRecycleBinW
svn path=/trunk/; revision=30009
Aleksey Bragin [Wed, 31 Oct 2007 10:02:10 +0000 (10:02 +0000)]
- By default, #define YDEBUG should be generally commented out.
svn path=/trunk/; revision=30008
Hervé Poussineau [Wed, 31 Oct 2007 09:59:26 +0000 (09:59 +0000)]
We're using combo channel here...
svn path=/trunk/; revision=30007
Hervé Poussineau [Wed, 31 Oct 2007 09:49:30 +0000 (09:49 +0000)]
Fix typo
svn path=/trunk/; revision=30006
Hervé Poussineau [Wed, 31 Oct 2007 09:45:15 +0000 (09:45 +0000)]
Clean some header mess
svn path=/trunk/; revision=30005
Hervé Poussineau [Wed, 31 Oct 2007 09:41:56 +0000 (09:41 +0000)]
Clean up method which assigns groups to logged on user
We have now a compile time switch to test ReactOS with a non-administrator account
svn path=/trunk/; revision=30004
Hervé Poussineau [Wed, 31 Oct 2007 09:33:16 +0000 (09:33 +0000)]
Partially implement ElfrReportEventW
svn path=/trunk/; revision=30003
Hervé Poussineau [Wed, 31 Oct 2007 09:31:06 +0000 (09:31 +0000)]
Fix two typos
svn path=/trunk/; revision=30002
Hervé Poussineau [Wed, 31 Oct 2007 09:10:20 +0000 (09:10 +0000)]
Replace drive letter by a root path
svn path=/trunk/; revision=30001
Hervé Poussineau [Wed, 31 Oct 2007 08:58:04 +0000 (08:58 +0000)]
Change i8042prt to a PnP driver
Support power keys
Support ctrl+scroll+scroll on debug builds
Add support for driver filters
Take care of more registry settings
A lot of other changes
svn path=/trunk/; revision=30000
Hervé Poussineau [Wed, 31 Oct 2007 08:57:48 +0000 (08:57 +0000)]
Implement SHEmptyRecycleBinA/W
Implement SHQueryRecycleBinA
svn path=/trunk/; revision=29999
Hervé Poussineau [Wed, 31 Oct 2007 08:57:35 +0000 (08:57 +0000)]
Fix some bugs which were preventing enumeration of all deleted files
Add a system-wide recycle bin, which federates all individual recycle bins
Add a COM interface to the recycle bin library
Use COM ref counting instead of a house-made system
svn path=/trunk/; revision=29998
Hervé Poussineau [Wed, 31 Oct 2007 08:57:13 +0000 (08:57 +0000)]
Add .ndi extension as it is usually done in network driver .inf files
Clean up TCP/IP service installation, by letting setupapi do most of the work
svn path=/trunk/; revision=29997
Hervé Poussineau [Wed, 31 Oct 2007 08:56:24 +0000 (08:56 +0000)]
Fix typo: "SourceDiskFiles" -> "SourceDisksFiles"
Add more drivers to load in txtsetup.sif
svn path=/trunk/; revision=29996
Hervé Poussineau [Wed, 31 Oct 2007 08:40:46 +0000 (08:40 +0000)]
Fix indentation
svn path=/trunk/; revision=29995
Hervé Poussineau [Wed, 31 Oct 2007 08:08:00 +0000 (08:08 +0000)]
Link xcopy to wine library, as it is using wine debug macros
svn path=/trunk/; revision=29994
James Tabor [Wed, 31 Oct 2007 02:48:54 +0000 (02:48 +0000)]
Fix gdi init so it can support batch. Used wrong limit source.
svn path=/trunk/; revision=29993
James Tabor [Wed, 31 Oct 2007 01:47:54 +0000 (01:47 +0000)]
- Add gdi batching command structures.
- Add additional region clipping data types to Dc_Attr.
svn path=/trunk/; revision=29992
Thomas Bluemel [Wed, 31 Oct 2007 01:25:42 +0000 (01:25 +0000)]
Fix freeing callproc handles when freeing window classes
svn path=/trunk/; revision=29991
Thomas Bluemel [Tue, 30 Oct 2007 22:56:59 +0000 (22:56 +0000)]
Remove unused code
svn path=/trunk/; revision=29990
Thomas Bluemel [Tue, 30 Oct 2007 22:38:43 +0000 (22:38 +0000)]
Silence possible uninitialized variable warning when compiled with full optimizations
svn path=/trunk/; revision=29989
Thomas Bluemel [Tue, 30 Oct 2007 22:03:37 +0000 (22:03 +0000)]
fix compilation with full optimizations
svn path=/trunk/; revision=29988
Colin Finck [Tue, 30 Oct 2007 21:23:11 +0000 (21:23 +0000)]
Try to unbreak build by adding the -Iinclude/psdk line again.
Build has been broken by hpoussin's commit in r29976.
As stated before, Wine components like the "winnt.h" file in include/reactos/wine still refer to include/psdk components (in this case by an #include_next "winnt.h" line). This has to be fixed first.
Build probably worked successfully with older RosBE-Windows versions, since they put the include directory to the bundled w32api header files in the global C_INCLUDE_PATH environment variable.
svn path=/trunk/; revision=29987
Aleksey Bragin [Tue, 30 Oct 2007 20:50:18 +0000 (20:50 +0000)]
- Start using members inside the KCB instead of the PKEY_OBJECT.
- Remove DummyKcb hacks since we now have a real, valid KCB.
- Get rid of the cm worker thread and related code, this should fix a couple of random registry bugchecks and corruption.
- This is a slow transition to using CM_KEY_BODY and KCB.
svn path=/trunk/; revision=29986
Aleksey Bragin [Tue, 30 Oct 2007 20:24:27 +0000 (20:24 +0000)]
- Fix my mistakes when changing type of the Name field. LiveCD / make install_registry now works again.
- Convert one more sizeof to FIELD_OFFSET (though sizeof() was operating properly in this particular case).
See issue #2780 for more details.
svn path=/trunk/; revision=29985
Johannes Anderwald [Tue, 30 Oct 2007 19:09:27 +0000 (19:09 +0000)]
- silence debug messages
svn path=/trunk/; revision=29984
Johannes Anderwald [Tue, 30 Oct 2007 19:08:00 +0000 (19:08 +0000)]
- fix identation
svn path=/trunk/; revision=29983
Aleksey Bragin [Tue, 30 Oct 2007 18:41:34 +0000 (18:41 +0000)]
- Fix incorrect size calculation.
svn path=/trunk/; revision=29982
Johannes Anderwald [Tue, 30 Oct 2007 18:35:02 +0000 (18:35 +0000)]
- populate Open With with found entries
- see http://windowsxp.mvps.org/OpenWith.htm
- silence debug messages
- invoke shell extension's InvokeCommand on a event
svn path=/trunk/; revision=29981
Johannes Anderwald [Tue, 30 Oct 2007 16:00:50 +0000 (16:00 +0000)]
- add required registry entries for "Open With" shell extension
- currently commented out
svn path=/trunk/; revision=29980
Johannes Anderwald [Tue, 30 Oct 2007 12:05:24 +0000 (12:05 +0000)]
- fix a bug in ShellView_DoContextMenu which made shell extensions crash on click
- pass the pidl of the parent folder to IShellExtInit function.
- shell extension dont run yet due SHGetPathFromIDList[A/W] cant return right information
svn path=/trunk/; revision=29977
Hervé Poussineau [Tue, 30 Oct 2007 10:48:53 +0000 (10:48 +0000)]
Do not directly include psdk directory when building host tools
svn path=/trunk/; revision=29976
Hervé Poussineau [Tue, 30 Oct 2007 10:47:24 +0000 (10:47 +0000)]
Add missing constants in winnt.h
Fix svn properties
svn path=/trunk/; revision=29975
Aleksey Bragin [Tue, 30 Oct 2007 08:53:06 +0000 (08:53 +0000)]
- Yes, this is the last fix, really!!
svn path=/trunk/; revision=29974
Aleksey Bragin [Tue, 30 Oct 2007 08:50:40 +0000 (08:50 +0000)]
- Forgot to add 't'.
svn path=/trunk/; revision=29973
Aleksey Bragin [Tue, 30 Oct 2007 08:37:54 +0000 (08:37 +0000)]
- More fixes, leaving what's unfixed yet to Marc. 3dtext now compiles fine.
svn path=/trunk/; revision=29972
Aleksey Bragin [Tue, 30 Oct 2007 08:29:31 +0000 (08:29 +0000)]
- Proper fix for unicode/ansi compilation ability of 3dtext (at least to fix compiler warning preventing trunk to compile), however one problem remains:
glCallLists(_tcslen(text), GL_UNSIGNED_SHORT, text); // Draws The Display List Text
GL_UNSIGNED_SHORT should be substituted by GL_UNSIGNED_BYTE if compiling as ANSI.
svn path=/trunk/; revision=29971
James Tabor [Tue, 30 Oct 2007 04:39:34 +0000 (04:39 +0000)]
Add Gdi batch flush command types.
svn path=/trunk/; revision=29970
Thomas Bluemel [Tue, 30 Oct 2007 01:51:23 +0000 (01:51 +0000)]
stock objects don't need to be deleted
svn path=/trunk/; revision=29969
Thomas Bluemel [Tue, 30 Oct 2007 01:46:00 +0000 (01:46 +0000)]
Patch by Heis Spiter <heis_spiter@hotmail.com>:
- Fix a handle leak
See issue #2772 for more details.
svn path=/trunk/; revision=29968