diff options
Diffstat (limited to 'xorg-server/hw/xwin/ChangeLog')
-rw-r--r-- | xorg-server/hw/xwin/ChangeLog | 683 |
1 files changed, 0 insertions, 683 deletions
diff --git a/xorg-server/hw/xwin/ChangeLog b/xorg-server/hw/xwin/ChangeLog deleted file mode 100644 index aca2ffcb1..000000000 --- a/xorg-server/hw/xwin/ChangeLog +++ /dev/null @@ -1,683 +0,0 @@ -2006-03-03 Alan Hourihane <alanh@fairlite.demon.co.uk> - - * winprefs.c: (HandleCustomWM_COMMAND): - https://bugs.freedesktop.org/show_bug.cgi?id=4341 - Make Xming error messages more meaningful. - -2006-03-03 Alan Hourihane <alanh@fairlite.demon.co.uk> - - * winmultiwindowwndproc.c: (winTopLevelWindowProc): - * winwndproc.c: (winWindowProc): - https://bugs.freedesktop.org/show_bug.cgi?id=4538 - Fix mouse button release on multiwindows scrolling. - -2006-03-03 Alan Hourihane <alanh@fairlite.demon.co.uk> - - * winmultiwindowicons.c: (winXIconToHICON), (winUpdateIcon): - * winwin32rootlesswindow.c: (winMWExtWMUpdateIcon): - https://bugs.freedesktop.org/show_bug.cgi?id=5138 - Check for NULL pointer - -2005-07-05 Alexander Gottwald <ago at freedesktop dot org> - - * winmultiwindowwm.c: - Fix crash on server shutdown - -2005-07-05 Alexander Gottwald <ago at freedesktop dot org> - - * winkeybd.c: - * winkeybd.h: - * winwndproc.c: - Fix simultanious presses of Left and Right Control and Shift keys. - https://bugs.freedesktop.org/show_bug.cgi?id=3677 - -2005-07-05 Alexander Gottwald <ago at freedesktop dot org> - - * winmultiwindowwm.c: - Fix typo which broke window titles - -2005-07-05 Alexander Gottwald <ago at freedesktop dot org> - - * winmultiwindowwndproc.c: - * winkeybd.c: - Fix problem with fake Control press on Alt-Gr - https://bugs.freedesktop.org/show_bug.cgi?id=3680 - https://bugs.freedesktop.org/show_bug.cgi?id=3497 - - * InitOutput.c: - Fix static declaration of winGetBaseDir - -2005-07-05 Alexander Gottwald <ago at freedesktop dot org> - - * winwindow.h: - * winmultiwindowwm.c: - * winscrinit.c: - External windowmanagers could connect in multiwindow mode which lead - to strange results with the internal windowmanager. - -2005-07-05 Alexander Gottwald <ago at freedesktop dot org> - - * *.c: - Include xwin-config.h if HAVE_XWIN_CONFIG is defined - Cleanup X11 includes handling - Warning fixes - -2005-06-30 Alexander Gottwald <ago at freedesktop dot org> - - * winmultiwindowwndproc.c: - Pass serverClient instead of NULL to ConfigureWindow. - This should fix a crash reported by Øyvind Harboe - -2005-06-08 Alexander Gottwald <ago at freedesktop dot org> - - * winlayouts.h: - Merge from CYGWIN - Added layout "French (Canada)" as ca_enhanced - Added Czech (QWERTY) layout - * winshaddnl.c: - Merge from CYGWIN - Print error code if winStoreColorsShadowDDNL fails - -2005-06-08 Alexander Gottwald <ago at freedesktop dot org> - - * winmultiwindowwindow.c: - Fix crash reported by Øyvind Harboe - -2005-06-03 Alexander Gottwald <ago at freedesktop dot org> - - * winmultiwindowwndproc.c: - * winblock.c: - Backout last winRaiseWindow patch which caused stacking problems - -2005-05-25 Alexander Gottwald <ago at freedesktop dot org> - - * win.h: - * winmultiwindowwm.c: - Workaround bug in pthread.h - -2005-05-08 Alexander Gottwald <ago at freedesktop dot org> - - * winmultiwindowwndproc.c: - * winblock.c: - Only call ConfigureWindow from winRaiseWindow if the windows - message dispatch loop is running. - -2005-05-02 Alexander Gottwald <ago at freedesktop dot org> - - * winerror.c: - Print correct logfile in FatalError message - -2005-04-19 Alexander Gottwald <ago at freedesktop dot org> - - * winmultiwindowwndproc.c: - Prevent recursive calls to winRaiseWindow. - -2005-03-10 Alexander Gottwald <ago at freedesktop dot org> - - * winmultiwindowwndproc.c: - Force rebuilding of window stack if a window changes it's state from - minimized. - -2005-03-07 Alexander Gottwald <ago at freedesktop dot org> - - * winmultiwindowwndproc.c: - * winmultiwindowwindow.c: - Prevent winRaiseWindow from calling ConfigureWindow if the message - was sent from within winDestroyWindowsWindow - - DestroyWindow send a WM_WINDOWPOSCHANGED to another window causing - a restacking of all windows, even of the window which is just about - to destroyed and whose structures may not be intact anymore. - -2005-02-24 Alexander Gottwald <ago at freedesktop dot org> - - * winmultiwindowwndproc.c: - on WM_WINDOWPOSCHANGED raise window directly and in sync without - utilizing the async windowmanager thread. Fixes some restacking - problems occuring which were timing dependent - Do not raise the window on WM_ACTIVATE - Removed unused code for WM_WINDOWPOSCHANGING - ESC is debug key. Print status but do not abort processing the message - -2005-02-12 Alexander Gottwald <ago at freedesktop dot org> - - * winmultiwindowwindow.c - * winmultiwindowwndproc.c - * winwin32rootlesswndproc.c: - Cleanup some message debugging - -2005-02-12 Alexander Gottwald <ago at freedesktop dot org> - - * win.h - * winfont.c - * winmultiwindowshape.c - * winmultiwindowwindow.c - * winpfbdd.c - * winshaddd.c - * winshadddnl.c - * winshadgdi.c - * winwindow.c: - Fix incorrect wrapping of functions. Ensure the pointers from pScreen - point to the called function even if wrapped functions changed it - - * winmultiwindowwindow.c: - Set the window properties to NULL to avoid referencing freed memory - because of timing problems after deleting a window - - * winscrinit.c: - Do not wrap ChangeWindowAttributes. All functions are noops currently - -2005-02-12 Alexander Gottwald <ago at freedesktop dot org> - - * winmsg.h: - * winmsg.c: - print window handle in message output - -2005-02-08 Alexander Gottwald <ago at freedesktop dot org> - - * winkeybd.c: - * winkeynames.h: - Updated fix for ABNT2 and HK_Toggle keys. - -2005-02-08 Alexander Gottwald <ago at freedesktop dot org> - - * winkeybd.h: - * winkeynames.h: - Backout ABNT2 and HK_Toggle fix since it broke keys F1 and F4. - -2005-02-07 Alexander Gottwald <ago at freedesktop dot org> - - * winlayouts.h: - * winconfig.c: - Moved keyboard layout table to external file. - -2005-02-02 Alexander Gottwald <ago at freedesktop dot org> - - * wincreatewnd.c: - Force ShowWindow if XWin was started via run.exe. Fixes mainwindow - not showing bug - -2005-01-31 Alexander Gottwald <ago at freedesktop dot org> - - * winmultiwindowwindow.c - * winmultiwindowwndproc.c: - Create windows with SWP_NOACTIVATE flag (updated) (Kensuke Matsuzaki) - -2005-01-31 Alexander Gottwald <ago at freedesktop dot org> - - * winmultiwindowwndproc.c: - Fixes for window ordering problem (updated) (Kensuke Matsuzaki) - -2005-01-31 Alexander Gottwald <ago at freedesktop dot org> - - * winconfig.c: - Added hungarian keyboard layout. - -2005-01-31 Alexander Gottwald <ago at freedesktop dot org> - - * winmessages.h - * winmsg.h - * winmsg.c - * winmultiwindowwndproc.c - * winwin32rootlesswndproc.c - * winwndproc.c: - Make logging of messages configurable with environment variables - -2005-01-31 Alexander Gottwald <ago at freedesktop dot org> - - * InitOutput.c: - resolve SHGetFolderPath dynamicly since it is not available on all Windows - systems. - -2005-01-12 Alexander Gottwald <ago at freedesktop dot org> - - * winmsg.c - * winmsg.h: - Introduce function winTrace which prints log message with verbosity 10 - * winmultiwindowwindow.c: - Use winTrace for 3 heavily called functions - -2005-01-11 Alexander Gottwald <ago at freedesktop dot org> - - * XWin.man: - Document the -silent-dup-error switch - -2005-01-11 Alexander Gottwald <ago at freedesktop dot org> - - * winkeyhook.c: - Do not grab ALT-TAB when window is in multiwindow mode - -2005-01-11 Alexander Gottwald <ago at freedesktop dot org> - - * winprefs.h: - Fix crash with not matching definitions of PATH_MAX - -2005-01-10 Alexander Gottwald <ago at freedesktop dot org> - - * winkeybd.h - * winkeynames.h: - Adjust keysyms for Hiragana_Katakana toggle and backslash/underscore - on Japanese and ABNT2 keyboards - -2005-01-10 Alexander Gottwald <ago at freedesktop dot org> - - * winkeybd.h - * winkeyhook.c - * winwndproc.c: - Make keyhook feature work in multiwindowmode too - Hook windows keys - -2005-01-08 Alexander Gottwald <ago at freedesktop dot org> - - * winblock.c: - Fix a possible null-pointer dereference (Keishi Suenaga) - -2005-01-06 Alexander Gottwald <ago at freedesktop dot org> - - * Imakefile - * InitOutput.c - * XWin.rc - * winerror.c - * wintrayicon.c - * winvideo.c - * winshaddd.c - * winwindow.h: - Set PROJECT_NAME in Imakefile to create alternative window titles - for Cygwin/X and Xming - -2005-01-06 Alexander Gottwald <ago at freedesktop dot org> - - * winmultiwindowclass.c: - * winmultiwindowwm.c: - Fix crash with non-nullterminated strings (reported by Øyvind Harboe) - -2004-12-14 Alexander Gottwald <ago at freedesktop dot org> - - * InitOutput.c: - * winprocarg.c: - EnumDisplayMonitors is not available on Window NT4 and 95. Resolve - the function dynamicly - -2004-12-08 Alexander Gottwald <ago at freedesktop dot org> - - * InitOutput.c: - * winprocarg.c: - Added support for placing the main window with the @<monitor#>. - Patch by Mark Fisher, small changes by Alexander Gottwald - -2004-12-06 Alexander Gottwald <ago at freedesktop dot org> - - * XWin.rc: - include windows.h - -2004-12-05 Alexander Gottwald <ago at freedesktop dot org> - - * ddraw.h: - redone ddraw.h to be able to mix it with w32api style COM header - files. - - * winmultiwindowwm.c: - * obj_base.h: - * ddraw.h: - obj_base.h is not needed anymore. Using <objbase.h> instead. - - * winms.h: - Use Xwindows.h instead of windows.h - - * winresource.h: - do not include win_ms.h - - * win.h: - remove extra definition of sleep() - - * InitOutput.c: - Set HOME to Documents and Settings/username if not set - - * winprefs.c: - Use Xming basedir instead of ProjectRoot for system.XWinrc - - * windialogs.c: - * winshadgdi.c: - * winprefs.c: - Fix callback functions to use wBOOL instead of BOOL - - * winmultiwindowwindow.c: - * winwin32rootless.c: - * winwin32rootlesswindow.c: - * winerror.c: - Fix compiler warnings. Added debug output. - - * winconfig.c: - Fix warning about undefined macro max - -2004-12-04 Earle Philhower - - * InitOutput.c: - * win.h: - * wincreatewnd.c: - * winprocarg.c: - Optional position -screen parameter (-screen n WxH+X+Y or - -screen n W H X Y) - -2004-12-03 Alexander Gottwald <ago at freedesktop dot org> - - * windialogs.c: - * win.h: - * Imakefile: - * winerror.c: - Removed scprintf, aprintf and snprintf stuff and use newXprintf - -2004-12-02 Alexander Gottwald <ago at freedesktop dot org> - - * winwin32rootless.c: - Adjust the width of the rootless backbuffer to match 32 bit alignment - - * winprocarg.c: - Make multiplemonitors default for -internalwm - -2004-12-01 Alexander Gottwald <ago at freedesktop dot org> - - * InitOutput.c: - Set XERRORDB environment variable to relocate the XErrorDB file - -2004-11-29 Kensuke Matsuzaki <zakki@peppermint.jp> - - * winmultiwindowwm.c: - Fixed windows.h include for cygwin. - - * winmultiwindowwindow.c: - Bugzilla #1945: Stop unnecessary reordering. - -2004-11-24 Alexander Gottwald <ago at freedesktop dot org> - - * winmultiwindowwm.c: - Finally the multiwindow mode defines a default cursor - -2004-11-22 Alexander Gottwald <ago at freedesktop dot org> - - * winmultiwindowwm.c: - Fixes for building multiwindow and internalwm on mingw - * winwin32rootless.c: - Changed some debugging output - -2004-11-22 Alexander Gottwald <ago at freedesktop dot org> - - * InitOutput.c, winglobals.c, winprocarg.c: - Xming: Place logfile in users tempdir - -2004-11-15 Alexander Gottwald <ago at freedesktop dot org> - - * Imakefile: - Remove override of HasSnprintf - -2004-11-15 Alexander Gottwald <ago at freedesktop dot org> - - * Imakefile: - * InitInput.c: (InitInput): - * InitOutput.c: (winClipboardShutdown), (ddxGiveUp), - (winCheckMount), (winGetBaseDir), (winFixupPaths), (OsVendorInit), - (winCheckDisplayNumber): - * win.h: - * winblock.c: (winBlockHandler): - * winclipboard.h: - * winclipboardthread.c: (winClipboardProc): - * winclipboardwndproc.c: (winClipboardWindowProc): - * winconfig.c: (winConfigKeyboard), (winConfigFiles): - * wincreatewnd.c: (winCreateBoundingWindowWindowed): - * windialogs.c: (winDisplayExitDialog), (winExitDlgProc), - (winAboutDlgProc): - * winengine.c: (winSetEngine): - * winerror.c: (OsVendorVErrorF), (winMessageBoxF), (scprintf): - * winglobals.c: (winInitializeGlobals): - * winkeybd.c: (winKeybdReleaseKeys): - * winmultiwindowicons.c: - * winmultiwindowwindow.c: (winCreateWindowsWindow): - * winmultiwindowwm.c: - * winprefs.c: (ReloadPrefs), (HandleCustomWM_COMMAND): - * winprocarg.c: (ddxProcessArgument): - * winscrinit.c: (winFinishScreenInitFB): - * winshadddnl.c: - * wintrayicon.c: (winHandleIconMessage): - * winwakeup.c: (winWakeupHandler): - * winwin32rootless.c: (winMWExtWMCreateFrame): - * winwindow.c: (winReshapeRootless): - * winwindow.h: - * winwndproc.c: (winWindowProc): - Bufzilla #1802, http://freedesktop.org/bugzilla/show_bug.cgi?id=1802 - Added mingw (Win32) port - -2004-11-11 Alexander Gottwald <ago at freedesktop dot org> - - * winconfig.c: - added keyboard layout "French (Switzerland)" - -2004-11-06 Alexander Gottwald <ago at freedesktop dot org> - - * winwndproc.c, wintrayicon.c, winscrinit.c: - * winmultiwindowwindow.c: - Wrap all mwextwm and internalwm code with XWIN_MULTIWINDOWEXTWM - -2004-11-04 Kensuke Matsuzaki <zakki@peppermint.jp> - - * InitOutput.c: (winUseMsg): - * win.h: - * winmultiwindowwindow.c: (winMinimizeWindow): - * winmultiwindowwm.c: (PushMessage), (UpdateName), - (PreserveWin32Stack), (winMultiWindowWMProc), - (winMultiWindowXMsgProc), (winInitWM), (winInitMultiWindowWM), - (CheckAnotherWindowManager): - * winprocarg.c: (winInitializeDefaultScreens), - (ddxProcessArgument): - * winscrinit.c: (winFinishScreenInitFB): - * wintrayicon.c: (winHandleIconMessage): - * winwin32rootless.c: (InitWin32RootlessEngine), - (winMWExtWMResizeFrame), (winMWExtWMRestackFrame), - (winMWExtWMStartDrawing), (winMWExtWMRootlessSwitchWindow), - (winMWExtWMSetNativeProperty): - * winwin32rootlesswindow.c: (winMWExtWMReorderWindows), - (winMWExtWMDecorateWindow), (winMWExtWMUpdateWindowDecoration), - (winIsInternalWMRunning), (winMWExtWMRestackWindows): - * winwin32rootlesswndproc.c: (winMWExtWMWindowProc): - * winwindow.h: - * winwndproc.c: (winWindowProc): - Add internalwm mode. - -2004-10-28 Alexander Gottwald <ago at freedesktop dot org> - - * win.h: - add fRetryCreateSurface - * winshaddnl.c (winBltExposedRegionsShadowDDNL): - try to recreate the primary surface if it was lost - * winshaddnl.c (winCreatePrimarySurfaceShadowDDNL): - mark screen to retry creating the primary surface if it failed - -2004-10-23 Alexander Gottwald <ago at freedesktop dot org> - - * winconfig (winConfigFiles): - Simplify /etc/X11/font-dirs parsing - -2004-10-20 Alexander Gottwald <ago at freedesktop dot org> - - * XWin.rc, winresource.h, winwndproc.c: - Add ShowCursor entry to tray menu - -2004-10-20 Alexander Gottwald <ago at freedesktop dot org> - - * Imakefile: - Add ETCX11DIR to DEFINES - * InitOutput.c (InitOutput): - * winconfig.c (winConfigFiles) : - Add entries from /etc/X11/font-dirs to default fontpath - -2004-10-16 Alexander Gottwald <ago at freedesktop dot org> - - * winprocarg.c (winInitializeDefaultScreens, ddxProcessArgument): - * win.h: - Make multiple monitors default for -multiwindow and -mwextwm. - Added a flag to indicate if the user has overridden the multimonitor - settings. (Øyvind Harboe, Alexander Gottwald) - -2004-10-07 Torrey Lyons <torrey at freedesktop dot org> - - * winscrinit.c: - Add compatibility with the generic rootless layer's new - DoReorderWindow function. - -2004-10-05 Alexander Gottwald <ago at freedesktop dot org> - - * XWin.rc: - Set the dialogstyle to DS_CENTERMOUSE. Dialogs will now popup on the - monitor where the mouse is and not on the center of the whole desktop. - -2004-10-02 Alexander Gottwald <ago at freedesktop dot org> - - * winmouse.c (winMouseProc): - Make sure buttons 1-3 are mouse buttons and wheel events are 4-5 - Document code - Replace ErrorF with appropriate winMsg - use a symbolic name for the wheel event offset - -2004-10-01 Alexander Gottwald <ago at freedesktop dot org> - - * wincreatewnd.c (winCreateBoundingWindowWindowed): - Do not adjust workarea if native windowmanager is used - -2004-09-22 Kensuke Matsuzaki - - * winclipboardthread.c (winClipboardErrorHandler): - * winclipboardwndproc.c (winClipboardWindowProc): - * winclipboardxevents.c (winClipboardFlushXEvents): - Fix clipboard bug with unicode applications. - -2004-09-17 Torrey Lyons <torrey at freedesktop dot org> - - * winscrinit.c: (winFinishScreenInitFB): - Bugzilla #1032: Make rootless acceleration functions compatible with - Damage. - -2004-09-16 Alexander Gottwald <ago at freedesktop dot org> - - * wincreatewnd.c (winCreateBoundingWindowWindowed): - Remove code which prevented the use from specifying the window - size in nodecoration mode. - -2004-08-26 Chris B <news at sempermax dot com> - - * win.h, winmessages.h: - Add defines for WM_XBUTTON - * winmouse.c (winMouseProc): - Query number of mouse buttons from windows. - * winmultiwindowwndproc.c (winTopLevelWindowProc): - * winwin32rootlesswndproc.c (winMWExtWMWindowProc): - * winwndproc.c (winWindowProc): - Handle WM_XBUTTON messages. - -2004-08-02 Kensuke Matsuzaki - - * winclipboardthread.c winclipboardwndproc.c: - * winclipboardxevents.c winwin32rootlesswndproc.c: - Fix the bug that we can't copy & paste multi-byte string to - Unicode-base Windows application. Rename fUnicodeSupport to - fUseUnicode, because it don't mean wheather Windows support - Unicode or not. - -2004-07-31 Alexander Gottwald <ago at freedesktop dot org> - - * win.h: - adjust prototype for winInitCmapPrivates to match Egberts change. - -2004-07-30 Egbert Eich <eich at freedesktop dot org> - - * winallpriv.c: (winInitCmapPrivates): - test if colormap with index really exists in the list of - installed maps before using it. - -2004-07-09 Alexander Gottwald <ago at freedesktop dot org> - - * winconfig.c: Add entry for irish layout (ie) - * InitOutput.c, winerror.c, winglobals.c: rename g_fUseMsg to - g_fSilentFatalError - * InitOutput.c, winglobals.c, winprocarg.c: added commandline option - -silent-dup-error to allow silent termination if another instance of - XWin was found running - -2004-06-27 Alexander Gottwald <ago at freedesktop dot org> - - * winconfig.c: Add entry for us layout. This changes not much but - removes a strange error message about the unknown us layout. - -2004-06-24 Alexander Gottwald <ago at freedesktop dot org> - - * InitOutput.c: Check for textmode mounted /tmp and print a warning - -2004-06-15 Harold Hunt <huntharo at msu dot edu> - - * windialogs.c: Fix path to locally installed changelog for the About - dialog box. - -2004-05-27 Alexander Gottwald <ago at freedesktop dot org> - - * winpriv.c: Create win32 window if not already created - * winmultiwindowwindow.c: Export winCreateWindowWindow - -2004-05-27 Alexander Gottwald <ago at freedesktop dot org> - - * win.h: Allow CYGDEBUG to defined in the Makefile - * winwindow.h: Allow CYGWINDOWING_DEBUG to defined in the Makefile - -2004-05-19 Alexander Gottwald <ago at freedesktop dot org> - - * winmultiwindowicons.c (winInitGlobalIcons): Load the small default - icon too - * winprefs.h, winprefs.c (winOverrideDefaultIcon): Takes the iconsize - as parameter - -2004-05-19 Alexander Gottwald <ago at freedesktop dot org> - - * win.h, winmultiwindowicons.c (winXIconToHICON): Takes iconsize - as parameter - * winglobals.c, winmultiwindowicons.c: Rename g_hiconX to g_hIconX. - Added new variable g_hSmallIconX for 16x16 icon. - * winwindow.h, winmultiwindowicons.c (winInitGlobalIcons): Inits the - global g_hIconX handles. - * winwindow.h, winmultiwindowicons.c (winDestroyIcon): Free the icon - without messing with the global icon handle. - * winmultiwindowicons.c (winSelectIcons): Generate a custom icon from - window settigns or set them to globals. - * winmultiwindowshape.c, winmultiwindowwindow.c, winwin32rootless.c, - winwin32rootlesswindow.c, winwin32rootlesswndproc.c: Remove - declaration of g_hiconX; - * winmultiwindowwindow.c (winCreateWindowsWindow), - winwin32rootless.c (winMWExtWMCreateFrame): Use winSelectIcons - to get the window icons. Set the small icon too. - * winmultiwindowwindow.c (winDestroyWindowsWindow), - winmultiwindowicons.c (winUpdateIcon), - winprefs.c (ReloadEnumWindowsProc), - winwin32rootlesswindow.c (winMWExtWMUpdateIcon), - winwin32rootless.c (winMWExtWMDestroyFrame): Use winDestroyIcon - to free the icon without destroying the global icon. - -2004-05-17 Alexander Gottwald <ago at freedesktop dot org> - - * windialogs.c (winExitDlgProc, winAboutDlgProc), - winmultiwindowwndproc.c (winTopLevelWindowProc), - winwndproc.c (winWindowProc): Check if g_fSoftwareCursor is set - before calling ShowCursor. - -2004-05-09 Dan Wilks <Dan_Wilks at intuit dot com> - - * winclipboard.h: Add extern prototypes for winDebug, winErrorFVerb - copied from winmsg.h. - * winclipboardinit.c (winFixClipboardChain): Post rather than send the - reinit message to the clipboard window. Sending the message caused, - or possibly just exacerbated an existing, race condition that would - cause the X server to hang when coming back from a remote desktop - session. - * winclipboardwndproc.c (winProcessXEventsTimeout): switch to new - logging api's. - * winclipboardwindproc.c (winClipboardWindowProc): switch to new - logging api's. Add some additional debug logging. Make best effort - to prevent our window appearing twice in the clipboard chain. Also - detect loops when they occur and try to behave in a reasonable way. - -# vim:ts=8:noexpandtab:encoding=utf8 |