diff options
Diffstat (limited to 'hw/xwin/ChangeLog')
-rw-r--r-- | hw/xwin/ChangeLog | 683 |
1 files changed, 683 insertions, 0 deletions
diff --git a/hw/xwin/ChangeLog b/hw/xwin/ChangeLog new file mode 100644 index 000000000..aca2ffcb1 --- /dev/null +++ b/hw/xwin/ChangeLog @@ -0,0 +1,683 @@ +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 |