[5291] | 1 | /* $Id: changelog,v 1.1298 2001-03-09 22:48:45 mike Exp $ */
|
---|
[5285] | 2 |
|
---|
[5291] | 3 | 2000-03-09: Michal Necasek <michalnec@volny.cz>
|
---|
| 4 | - DDRAW: o Watcomized (not complete) and cleaned up a bit.
|
---|
| 5 | Also synced DDRAW\NEW with the main directory.
|
---|
| 6 |
|
---|
[5290] | 7 | 2001-03-07: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
|
---|
| 8 | - Win32k: o Fixed trap in k32QuerySystemMemInfo when
|
---|
| 9 | VIRTUALADDRESSLIMIT=512.
|
---|
| 10 |
|
---|
[5285] | 11 | 2000-03-06: Michal Necasek <michalnec@volny.cz>
|
---|
[5288] | 12 | - include o More changes and fixes for Watcom
|
---|
| 13 |
|
---|
[5285] | 14 |
|
---|
[5284] | 15 | 2001-03-02: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
|
---|
| 16 | - Win32k: o Fixed some 16-bit compiler problems.
|
---|
[5285] | 17 | o Fixed 4.51 toolkit problems.
|
---|
[4454] | 18 |
|
---|
[5275] | 19 | 2001-02-28: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 20 | - KERNEL32: o Added support for high memory override key in odin.ini:
|
---|
| 21 | [ODINSYSTEM]
|
---|
| 22 | HIGHMEM=0
|
---|
[5285] | 23 | Turns off high memory usage in Odin. Useful for Warp 4 (>fp12)
|
---|
[5275] | 24 | systems that still use the old 16 bits TCPIP stack.
|
---|
| 25 | (temporary workaround)
|
---|
| 26 | NOTE: Turning this option off will prevent Odin from running
|
---|
[5285] | 27 | applications that must be loaded in high memory
|
---|
| 28 | (like MS Word).
|
---|
[5275] | 29 | - NTDLL: o Committed update from Jan. 25th:
|
---|
[5285] | 30 | Ported latest NtQuerySystemInformation from Wine
|
---|
[5275] | 31 | (includes fix for IE5 install)
|
---|
| 32 | - include\odinwrap.h:
|
---|
| 33 | o Wrappers only detect FS problems when they should correct them.
|
---|
| 34 | (fixes FS corruption in wsock32 (WSAStartup/WSACleanup))
|
---|
| 35 |
|
---|
[5270] | 36 | 2001-02-27: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
[5273] | 37 | - WINMM: o Added recording (still untested)
|
---|
| 38 | o waveOutReset bugfix
|
---|
| 39 | o Compile fix (midi.cpp)
|
---|
[5270] | 40 | - USER32: o Ported latest wsprintf Wine functions (not much changed; only
|
---|
| 41 | to stay in sync)
|
---|
| 42 |
|
---|
[5268] | 43 | 2001-02-26: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 44 | - WINMM: o Fixed FS corruption in RTMidi class (wrappers for RTMIDI
|
---|
| 45 | functions)
|
---|
| 46 |
|
---|
[5265] | 47 | 2001-02-25: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 48 | - KERNEL32: o Check executable too when searching for imported modules
|
---|
| 49 | (directly imported by PE dlls)
|
---|
| 50 |
|
---|
[5261] | 51 | 2001-02-24: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 52 | - KERNEL32: o Set fExitProcess flag in WinExe destructor to prevent reloading
|
---|
| 53 | dlls after loading of exe failed.
|
---|
| 54 |
|
---|
[5251] | 55 | 2001-02-23: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 56 | - GDI32: o Removed old workaround for SetDIBitsToDevice. Incorrect for
|
---|
| 57 | new implementation of this function with StretchDIBits.
|
---|
| 58 | (fixes bitmaps in Minesweeper)
|
---|
[5256] | 59 | - USER32: o WM_SETCURSOR change; don't check WS_EX_NOPARENTNOTIFY style
|
---|
| 60 | when sending this message to the parent of a child window.
|
---|
| 61 | o Redraw entire window when switching between minimized, maximized
|
---|
| 62 | and restored windows state.
|
---|
| 63 | o Added missing cursor to MDI client class
|
---|
| 64 | (cursor now changes when moving cursor from mdi child to
|
---|
| 65 | client window)
|
---|
| 66 | - USER32, include\win\drive.h:
|
---|
| 67 | o DRIVE_GetDosCwd bugfix
|
---|
| 68 | (fixes crash in Cool Edit old-style file open dialog)
|
---|
[5251] | 69 |
|
---|
[5248] | 70 | 2000-02-22: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
|
---|
| 71 | - Win32k: o Support for the 14062e kernels.
|
---|
| 72 | o Removed the CALLTAB segment.
|
---|
| 73 | o Hooked dh_SendEvent and RASRST for taskmanager hot-key support.
|
---|
[5253] | 74 | o Enabled callgate on SMP kernel.
|
---|
[5248] | 75 |
|
---|
[5241] | 76 | 2001-02-22: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 77 | - KERNEL32: o Changed error string when detecting version mismatch.
|
---|
| 78 | - USER32: o Fixed incorrect index checking for class and window words.
|
---|
[5245] | 79 | o Allow misaligned access to window words/longs
|
---|
[5241] | 80 | (fixes crash in Quicken 99)
|
---|
[5245] | 81 | o More minimize changes/fixes for MDI windows.
|
---|
| 82 | o Update region fix in NotifyFrameChanged method
|
---|
[5241] | 83 |
|
---|
[5235] | 84 | 2001-02-21: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 85 | - USER32: o Changes for minimizing windows. Not done yet.
|
---|
[5238] | 86 | o Added CreateFakeWindowEx.
|
---|
[5248] | 87 | Turns native OS/2 window into window recognized by Odin (with
|
---|
[5238] | 88 | only very limited functionality)
|
---|
[5248] | 89 | Useful for creating an Odin window with an OS/2 window as
|
---|
[5238] | 90 | parent.
|
---|
[5235] | 91 |
|
---|
| 92 | Applications don't expect WM_NULL when fetching mouse
|
---|
| 93 | messages from the queue.
|
---|
| 94 | (fixes mouse jumping in Unreal)
|
---|
| 95 |
|
---|
[5233] | 96 | 2000-02-20: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
|
---|
| 97 | - Win32k: o Moved calltabs to the code segments. Clears the
|
---|
| 98 | WriteProtect(WP) flag in CR0 to be able to do this. The flags
|
---|
| 99 | is of course restored when the calltabs are written.
|
---|
| 100 | o Completed callgate code. Though is not activated for SMP
|
---|
| 101 | kernels yet as I haven't tested that yet.
|
---|
| 102 | The callgate works just as any other callgate in OS2, it
|
---|
| 103 | calls kernel routines for entry and exit housekeeping.
|
---|
| 104 | o Updated the win32k library and header to accomodate this.
|
---|
| 105 | All IOCtl structures are changed.
|
---|
| 106 | So, Install the new the new Odin32 and reboot before using
|
---|
| 107 | it so the new win32k.sys is installed.
|
---|
| 108 |
|
---|
[5214] | 109 | 2001-02-20: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 110 | - USER32: o Fix for position of system menu in (mdi) child windows
|
---|
[5233] | 111 | o Use WinScrollWindow to scroll children again and manually
|
---|
[5214] | 112 | notify children that they have moved. (PM only does this
|
---|
| 113 | for windows with CS_MOVENOTIFY class)
|
---|
| 114 | (much smoother scroll in Opera)
|
---|
| 115 | o Use WinGetMaxPosition to determine default maximized position
|
---|
| 116 | of toplevel window before sending WM_GETMINMAXINFO
|
---|
| 117 | (maximized Odin windows no longer obscure WarpCenter)
|
---|
[5216] | 118 | o Activation fixes for MDI windows
|
---|
[5214] | 119 |
|
---|
[5213] | 120 | 2000-02-19: Oliver Braun <Oliver.Braun@hamburg.de>
|
---|
[5198] | 121 | - KERNEL32: o OSLibDosAllocMem fix (better checks for errors + return
|
---|
| 122 | 4kb aligned memory if 64kb alignment fails)
|
---|
| 123 | (fixes StarOffice 5.2 install)
|
---|
| 124 |
|
---|
| 125 | 2000-02-19: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
|
---|
[5194] | 126 | - KERNEL32: o Use DosAllocMemEx to 64KB align memory (OSLibDosAllocMem)
|
---|
| 127 | when available.
|
---|
[5211] | 128 | - Win32k: o Prepared API code for both callgate and IOCtl invokation.
|
---|
| 129 | This caused changes in IOCtl parameter structures.
|
---|
| 130 | Callgate code is completed but not used yet because
|
---|
| 131 | it isn't tested yet.
|
---|
[5194] | 132 |
|
---|
[5190] | 133 | 2001-02-19: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 134 | - COMDLG32: o Commented out Norse ChooseFont dialog (incomplete translation)
|
---|
| 135 | Use the English version instead.
|
---|
| 136 | - USER32: o Corrected invalidating nonclient parts of a window after a resize.
|
---|
| 137 | (fixes resizing of mdi windows in mdi sample)
|
---|
| 138 |
|
---|
[5187] | 139 | 2000-02-18: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
|
---|
| 140 | - Win32k: o Finished implementation of DosAllocMemEx.
|
---|
| 141 | DosAllocMemEx is equal to DosAllocMem but takes some extra
|
---|
| 142 | OBJ_ flags (defined in win32k.h).
|
---|
| 143 | TODO: "Grow arena" problem when allocating memory at a
|
---|
| 144 | specific location. I'll fix this ASAP and add a fix for the
|
---|
| 145 | loader too (which has the same problems with loading EXEs
|
---|
| 146 | without fixup above 64MB).
|
---|
| 147 |
|
---|
[5165] | 148 | 2001-02-18: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 149 | - USER32: o Restore window origin in SetWindowPos for parent window with
|
---|
[5187] | 150 | CS_OWNDC style.
|
---|
[5166] | 151 | Do the same thing in WM_VRNENABLED message handler.
|
---|
[5165] | 152 | (fixes paint offset problems in Opera windows)
|
---|
[5172] | 153 | o Bug in yesterday's ScrollWindowEx fix
|
---|
| 154 | (fixes smooth scrolling of child windows in Opera html window)
|
---|
[5174] | 155 | o Detect DestroyWindow call during CreateWindowEx and delay
|
---|
| 156 | deleting the window/dialog object.
|
---|
| 157 | (fixes crash in Opera when going to fullscreen mode)
|
---|
[5165] | 158 |
|
---|
[5161] | 159 | 2000-02-17: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
|
---|
| 160 | - Win32kCC: o Rewrote to notebook. (fixes size problem)
|
---|
| 161 | o Added memoryinfo page which is refreshed every second.
|
---|
| 162 |
|
---|
[5149] | 163 | 2000-02-17: Yuri Dario <mc6530@mclink.it>
|
---|
| 164 | - INCLUDE: o Header changes for compiling Opera
|
---|
| 165 |
|
---|
[5147] | 166 | 2001-02-17: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 167 | - USER32: o Store active status in custom window word. QWS_FLAGS appears
|
---|
| 168 | to be modified by PM somewhere.
|
---|
| 169 | (fixes WM_ACTIVATE loop in Opera when maximizing or restoring
|
---|
| 170 | the mdi window)
|
---|
[5161] | 171 | o Don't include RDW_NOERASE flag in InvalidateRect/Rgn
|
---|
[5147] | 172 | (fixes background erase for mdi client window in Opera)
|
---|
| 173 | o IsChild only checked the direct parent of a window. Must
|
---|
| 174 | check all parents (parents of parents etc)
|
---|
| 175 | (fixes TAB handling in Opera dialogs)
|
---|
| 176 | o Ported latest GetNextDlgTabItem from Wine
|
---|
| 177 | (fixes TAB handling in Opera dialogs)
|
---|
[5151] | 178 | o WM_ADJUSTWINDOWPOS bugfix (if app changes size/position)
|
---|
[5161] | 179 | OSLibMapWINDOWPOStoSWP can add flags, but we must not let
|
---|
[5153] | 180 | it remove flags.
|
---|
[5151] | 181 | (fixes resizing of Opera MDI windows)
|
---|
[5153] | 182 | o ScrollWindow(Ex) bugfixes
|
---|
| 183 | Must scroll child windows manually
|
---|
| 184 | (fixes scrolling of Opera html MDI windows)
|
---|
[5158] | 185 | o Combobox fix from Wine (CBCalcPlacement)
|
---|
| 186 | (fixes combobox controls in Opera html MDI windows)
|
---|
| 187 | (TODO: sync rest with latest Wine control code)
|
---|
[5147] | 188 |
|
---|
[5140] | 189 | 2001-02-15: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 190 | - COMDLG32: o Ignore OFN_FILEMUSTEXIST flag in GetSaveFileNameA/W
|
---|
| 191 | (NT4 seems to ignore it too and it fixes the save dialog
|
---|
| 192 | in ElstarFormular 2000)
|
---|
| 193 |
|
---|
[5132] | 194 | 2001-02-14: knut stange osmundsen <knut.stange.osmundsen@mynd.no>
|
---|
| 195 | - Win32k.lib:
|
---|
| 196 | o Corrected build breaker: log.h should not be included.
|
---|
| 197 | log.h was removed from the CINLCUDES two days ago.
|
---|
| 198 |
|
---|
[5126] | 199 | 2001-02-14: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 200 | - KERNEL32: o Allocate TLS index of module before loading the dll it needs
|
---|
| 201 | (some apps assume their executable index is always zero)
|
---|
| 202 | (fixes crash in BrMSX)
|
---|
| 203 | o Must use EXC_CallHandler to call RtlUnwind handler
|
---|
| 204 | (fixes crash during RaiseException in BrMSX)
|
---|
[5132] | 205 | - OPENGL\GLU:
|
---|
[5129] | 206 | o Removed initterm.cpp. Use dllentry.obj instead
|
---|
[5126] | 207 | - INCLUDE\misc.h:
|
---|
| 208 | o Print file and function name before executing an int 3. (DebugInt3)
|
---|
[5129] | 209 | - *\initterm.cpp:
|
---|
| 210 | o Wrong calling convention for CRT_Init/Term, ctordtorInit/Term
|
---|
[5136] | 211 | o VAC 3.6.5 ctordtorInit/Term takes one parameter
|
---|
[5138] | 212 | - USER32: o Delay SetFocus when called during processing of WM_SETFOCUS
|
---|
| 213 | message (not allowed by PM).
|
---|
| 214 | (fixes keyboard focus in ElstarFormular 2000)
|
---|
[5126] | 215 |
|
---|
[5265] | 216 | 2000-02-13: Michal Necasek <michalnec@volny.cz>
|
---|
[5125] | 217 | - USER32: o Wrong unicode<->ascii translation for some listbox & combobox
|
---|
| 218 | messages. Must check if the control style includes LB/CB_HASSTRINGS.
|
---|
| 219 | (CB_FINDSTRING, CB_FINDSTRINGEXACT, CB_SELECTSTRING,
|
---|
| 220 | LB_FINDSTRING, LB_FINDSTRINGEXACT, LB_SELECTSTRING)
|
---|
| 221 |
|
---|
[5132] | 222 | 2001-02-12: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
|
---|
| 223 | - Win32k.lib:
|
---|
| 224 | o Removed /src/win32k/include from the CFLAGS.
|
---|
| 225 |
|
---|
[5114] | 226 | 2001-02-11: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
|
---|
| 227 | - Win32k: o Added symbols for the 14062D kernels.
|
---|
| 228 | o Added a query API for getting memory information.
|
---|
[5121] | 229 | o Added force preload option - should be very useful when
|
---|
| 230 | debugging Ring 3 apps with ICAT. (Option -F)
|
---|
[5114] | 231 |
|
---|
[5091] | 232 | 2001-02-11: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 233 | - ODINCRT: o Completed runtime dll for VAC 3.6.5
|
---|
| 234 | - WINMM, GLU, CRTDLL, KERNEL32:
|
---|
| 235 | o Compile fixes for VAC 3.6.5
|
---|
| 236 | - RASAPI32: o Can't use LXLITE as it crashes on this binary
|
---|
[5125] | 237 | - KERNEL32: o Check handle in LocalLock and return NULL if invalid
|
---|
[5132] | 238 | (some apps use LocalLock to get access to GDI objects; doesn't
|
---|
[5125] | 239 | work in Odin (TODO))
|
---|
[5091] | 240 |
|
---|
[5082] | 241 | 2001-02-10: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 242 | - USER32: o Check if window has been destroyed before accessing
|
---|
| 243 | this pointer again in SendInternalMessage.
|
---|
| 244 | (fixes heap corruption in MS Visual C++ 4.2 install)
|
---|
| 245 | TODO: Needs a permanent and correct solution as this
|
---|
| 246 | can happen in several other places.
|
---|
[5265] | 247 | Also a potential problem in user32 controls (InfoPtr).
|
---|
[5085] | 248 | o Set last error to ERROR_INVALID_INDEX for invalid class word
|
---|
| 249 | index.
|
---|
[5082] | 250 |
|
---|
[5078] | 251 | 2001-02-09: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 252 | - COMCTL32: o Register controls in LibMain, not in DLL_InitTerm
|
---|
| 253 | - KERNEL32: o Re-register dll if DosFreeModule failed with ERROR_INVALID_ACCESS
|
---|
| 254 | Dll refuses to unload if it has an active exitlist handler
|
---|
| 255 | or depends on a dll that registered an exitlist handler.
|
---|
| 256 | In this case the handle remains valid and the entrypoint of
|
---|
| 257 | the dll is NOT called for DLL_PROCESS_DETACH. The next time
|
---|
| 258 | DosLoadModule is called, the entrypoint (and RegisterLXDll)
|
---|
| 259 | isn't called (DLL_PROCESS_ATTACH).
|
---|
| 260 | WORKAROUND: Re-register the dll so future functions that
|
---|
| 261 | use this dll calls don't fail.
|
---|
| 262 | (fixes crash in shell32 in TextPad 4)
|
---|
| 263 | o shared & code heap umalloc changed (now more meaningful debug
|
---|
| 264 | messages in case of heap corruption)
|
---|
| 265 | - USER32: o WM_MINIMIZE/WS_MAXIMIZE support added to CreateWindow
|
---|
[5114] | 266 | (fixes size of main InstallShield window for Microsoft Visual
|
---|
[5078] | 267 | C++ 4.2)
|
---|
[5079] | 268 | o Fixed FS corruption in DIALOG_DlgDirList (c library function calls)
|
---|
[5078] | 269 |
|
---|
[5069] | 270 | 2001-02-08: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 271 | - KERNEL32: o Standard in/out/error handle fix. Disable change during
|
---|
| 272 | console init.
|
---|
| 273 | (fixes output of console applications; input doesn't work well yet)
|
---|
[5114] | 274 | - USER32: o Dialog control fix. Creating them with CreateWindowExW does not
|
---|
[5071] | 275 | work since our standard user32 controls are still ASCII.
|
---|
| 276 | (fixes missing icon control in Acrobat Distiller window)
|
---|
[5069] | 277 |
|
---|
| 278 | 2001-02-08: Michal Necasek <michalnec@volny.cz>
|
---|
| 279 | - KERNEL32: o RtlUnwind bugfix
|
---|
| 280 |
|
---|
[5064] | 281 | 2001-02-04: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 282 | - USER32: o Wrong error set in GetDlgItem. Must be ERROR_CONTROL_ID_NOT_FOUND.
|
---|
| 283 | (verified in NT4, SP6)
|
---|
| 284 |
|
---|
[5059] | 285 | 2001-02-03: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 286 | - USER32: o Get/SetWindowLongA/W, Get/SetWindowWord: must set
|
---|
| 287 | last error to ERROR_INVALID_WINDOW_HANDLE if window not found.
|
---|
| 288 | (verified in NT4, SP6)
|
---|
| 289 | Must also return ERROR_INVALID_INDEX if index is out of range.
|
---|
| 290 | (used to return ERROR_INVALID_PARAMETER) (verified in NT4, SP6)
|
---|
| 291 | o Temporary hack to force focus to newly created window
|
---|
| 292 | (if no Odin window has focus after sending WM_ACTIVATE, set
|
---|
| 293 | focus to window that received the activate message)
|
---|
| 294 | (fixes wrong keyboard focus in RealPlayer 8)
|
---|
| 295 |
|
---|
[5055] | 296 | 2001-02-02: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 297 | - USER32: o DrawEdge bugfixes (signed/unsigned char mismatches)
|
---|
| 298 | (fixes lines in properties dialog of RealPlayer 8)
|
---|
| 299 | o Fixed incorrect rounding in dialog control size calculation
|
---|
| 300 | (fixes wrong height of some dialog controls (rp8 pref. dialog lines))
|
---|
| 301 | o Don't unregister class if there are still windows that use it.
|
---|
| 302 |
|
---|
[5054] | 303 | 2001-02-02: knut st. osmundsen <knut.stange.osmundsen@mynd.no>
|
---|
| 304 | - Win32k: o Added option for the All-In-One-Object fix to be able
|
---|
| 305 | to debug PE executables thru the ICAT. Works with pe2lx
|
---|
| 306 | and win32k.sys.
|
---|
| 307 | -1<+|-|[*]>
|
---|
| 308 | +: Applied when needed. (checked)
|
---|
| 309 | -: Never applied (use this to debug). (not checked)
|
---|
| 310 | *: Allways applied. (default) (gray)
|
---|
| 311 | It's also added to Win32kCC as a three state checkbutton.
|
---|
[5114] | 312 |
|
---|
| 313 | WARNING! This option should only be used for debugging
|
---|
| 314 | and will cause your system to crash if used with based
|
---|
[5054] | 315 | images!
|
---|
[5114] | 316 | - tools\Common:
|
---|
[5054] | 317 | o Minor changes in the fileformat classes to use kFile.
|
---|
| 318 |
|
---|
[5042] | 319 | 2001-02-01: Sander van Leeuwen <sandervl@xs4all.nl>
|
---|
| 320 | - GDI32: o LineDDA fix (wrong calling convention)
|
---|
| 321 | (fixes crash in Solitaire)
|
---|
| 322 | - USER32: o clientHeight bugfix. Check hwnd instead of pHps->hwnd.
|
---|
| 323 | (pHps can be NULL)
|
---|
| 324 | (fixes crash in Solitaire)
|
---|
| 325 | - INSTALL: o Include ChangeLog-2001 in daily build
|
---|
[5114] | 326 | - COMDLG32: o Merged some changes from Wine (extra notification in
|
---|
[5043] | 327 | FileOpenDlgProc95 & OFN_NOCHANGEDIR support (also added
|
---|
| 328 | to Unicode version of file open dialog))
|
---|
| 329 | o Removed workaround for Acrobat Reader file open dialog
|
---|
| 330 | (Wine update fixed it)
|
---|