diff --git a/AUTHORS b/AUTHORS
deleted file mode 100644
index ea648387..00000000
--- a/AUTHORS
+++ /dev/null
@@ -1 +0,0 @@
-See doc/authors.html.
diff --git a/ChangeLog b/ChangeLog
index 5b101ca1..8f235751 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,11453 +1 @@
-2007/08/22 22:33:43 crs
-all.dsp
-ChangeLog
-cmd/exec.dsp
-cmd/launcher/launcher.dsp
-cmd/launcher/launcher.rc
-cmd/launcher/Makefile.am
-cmd/launcher/nmake.mak
-cmd/synergyc/Makefile.am
-cmd/synergyc/nmake.mak
-cmd/synergyc/synergyc.cpp
-cmd/synergyc/synergyc.dsp
-cmd/synergyc/synergyc.rc
-cmd/synergys/Makefile.am
-cmd/synergys/nmake.mak
-cmd/synergys/synergys.cpp
-cmd/synergys/synergys.dsp
-cmd/synergys/synergys.rc
-COPYING
-dist/nullsoft/installer.dsp
-dist/nullsoft/installer.mak
-dist/nullsoft/Makefile.am
-dist/nullsoft/nmake.mak
-dist/nullsoft/synergy.nsi
-doc/authors.html
-lib/arch/arch.dsp
-lib/arch/CArchDaemonNone.cpp
-lib/arch/Makefile.am
-lib/arch/nmake.mak
-lib/base/base.dsp
-lib/base/Makefile.am
-lib/base/nmake.mak
-lib/client/client.dsp
-lib/client/Makefile.am
-lib/client/nmake.mak
-lib/common/common.dsp
-lib/common/Makefile.am
-lib/common/nmake.mak
-lib/io/io.dsp
-lib/io/Makefile.am
-lib/io/nmake.mak
-lib/mt/Makefile.am
-lib/mt/mt.dsp
-lib/mt/nmake.mak
-lib/net/CSocketMultiplexer.cpp
-lib/net/CTCPSocket.cpp
-lib/net/Makefile.am
-lib/net/net.dsp
-lib/net/nmake.mak
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CSynergyHook.cpp
-lib/platform/Makefile.am
-lib/platform/makehook.dsp
-lib/platform/nmake.mak
-lib/platform/platform.dsp
-lib/platform/synrgyhk.dsp
-lib/server/Makefile.am
-lib/server/nmake.mak
-lib/server/server.dsp
-lib/synergy/libsynergy.dsp
-lib/synergy/Makefile.am
-lib/synergy/nmake.mak
-Makefile.am
-nmake.mak
-synergy.dsw
-synergy.xcode/project.pbxproj
-win32util/autodep.cpp
-
-Applied patch by maruel:
-- Fixed taking the address of begin() on an empty std::vector.
-- Fixed nsis makefile to use %ProgramFiles% environment variable.
-- Fixed nsis makefile to pass the output directory and file to makensis.
-- Fixed synergy.nsi to get the files from the output directory. That
- enables a debug build of the installer.
-- Fixes to compile under VS2005.
-
-I did not apply VS2005 project files, instead adding nmake files. nmake is
-pretty weak but the makefiles can be modified without having visual studio.
-Also modified the .rc files to not use winres.h. This plus nmake means
-synergy can now be built using the freely downloadable Microsoft Windows
-SDK for Vista, available from microsoft's web site. This change removes
-all of the old VC++6 project files in favor of the nmake files. It also
-removes the XCode project in favor of ./configure and make.
-
-All of the nmake files are named nmake.mak. Only the top level makefile
-is directly useful (the rest are included by it) so all builds are from
-the top level directory. nmake knows the following targets:
-
- all: build synergy.exe, synergyc.exe and synergys.exe
- clean: remove all intermediate files, keep programs
- clobber: clean and remove programs
- installer: build programs and an installer
- debug: build a debug version of 'all'
- release: build a release version of 'all'
- debug-installer: build an installer of the debug build
- release-installer: build an installer of the release build
-
-The default build version is release so 'all' and 'installer' will build
-a release version. The installer itself never has debug symbols, just
-the stuff it installs. The default target is 'all'. To build use:
-
- nmake /nologo /f nmake.mak
-
-VC++ and VisualStudio users may need to manually run vcvars.bat in a
-command.exe or cmd.exe window before invoking nmake. The Window 98/Me
-command.exe may not handle potentially long command lines; I haven't
-tried to verify if that works.
-
-----------
-2007/08/22 21:42:09 crs
-lib/platform/COSXKeyState.cpp
-
-Allow input scripts other than roman on OS X.
-
-----------
-2007/06/22 19:17:24 crs
-lib/platform/CXWindowsClipboard.cpp
-
-Applied patch 1731039. Fixes a bug in testing if X clipboard
-was owned at a given time.
-
-----------
-2006/04/02 12:16:23 crs
-lib/platform/CXWindowsKeyState.cpp
-
-Fixed non-XKB handling of Mode_switch. There were two problems.
-First the XkbLockGroup function was being called even for non-XKB
-layouts. (And was being included in the compile even if the XKB
-headers were not available!) Second, modifiers were assumed to
-exist only the group in which a keysym was found and when looking
-for modifiers for a key we only check modifiers in the same group.
-So keys that needed Mode_switch (in group 1) would check to see if
-Mode_switch was explictly mapped in group 1. It never is so that
-would never work. Now we handle implicitly mapped modifiers. I
-hadn't noticed this problem because my system (like most others)
-uses XKB and when I forced non-XKB, the keys I tested worked anyway
-through Multi_key.
-
-----------
-2006/04/01 22:25:33 crs
-lib/platform/CXWindowsKeyState.cpp
-lib/platform/CXWindowsKeyState.h
-lib/platform/CXWindowsScreen.cpp
-
-Fixed autorepeat on X11. Was autorepeating all keys sent from
-server. Now autorepeating only those keys which are locally
-configured in X to autorepeat.
-
-----------
-2006/04/01 21:37:24 crs
-lib/platform/CMSWindowsKeyState.cpp
-
-Fixed autorepeat on win32 clients. Was synthesizing a key release
-for each repeat. Win32 wants only repeat press events.
-
-----------
-2006/04/01 21:36:50 crs
-cmd/launcher/CScreensLinks.cpp
-
-Fixed two bugs in screens and link dialog. First, the link controls
-were not updated when reopening the dialog. Second, a change in any
-link edit control would be discarded if the user pressed enter.
-
-----------
-2006/04/01 21:35:10 crs
-cmd/launcher/CHotkeyOptions.cpp
-
-Fixed crash when creating a new hotkey but picking a key or mouse
-button combination before clicking OK.
-
-----------
-2006/04/01 21:30:43 crs
-configure.in
-lib/arch/CArchNetworkBSD.cpp
-lib/common/common.h
-
-Removed use of alloca() from unix and portable code. It's still
-in win32 code but i don't have to play guessing games about
-whether it's there or not on that platform.
-
-----------
-2006/04/01 17:53:27 crs
-synergy.xcode/project.pbxproj
-
-Added new files to Xcode project.
-
-----------
-2006/04/01 17:41:59 crs
-lib/client/CServerProxy.cpp
-lib/net/CTCPSocket.cpp
-lib/server/CClientProxy1_0.cpp
-
-Added more debugging output for network problems.
-
-----------
-2006/04/01 17:01:56 crs
-lib/platform/COSXKeyState.cpp
-
-Fixed keymapping on OSX. Was checking keyboard tables for all
-modifier combinations, including right-handed modifiers. It
-turns out OSX doesn't set up the tables correctly for those
-modifiers and acts if they have no effect. Since OSX never
-generates right-handed modifiers this isn't too surprising.
-
-----------
-2006/04/01 15:32:19 crs
-lib/server/CBaseClientProxy.cpp
-lib/server/CBaseClientProxy.h
-lib/server/CClientProxy.cpp
-lib/server/CClientProxy.h
-lib/server/CPrimaryClient.cpp
-lib/server/CPrimaryClient.h
-lib/server/CServer.cpp
-lib/server/CServer.h
-lib/server/Makefile.am
-lib/server/server.dsp
-
-Added new class to allow the server to keep information that every
-screen has. The first such info is the cursor position when last
-jumping from the screen. Using a hotkey to jump to a screen now
-puts the cursor where it was the last time the user jumped from
-that screen.
-
-----------
-2006/04/01 14:51:22 crs
-lib/server/CInputFilter.cpp
-
-Fixed bug in reloading configurations. Was losing hotkeys.
-
-----------
-2006/04/01 14:49:41 crs
-lib/platform/CXWindowsKeyState.cpp
-
-Fixed bug when recollecting the keyboard map on non-XKB keyboards.
-Wasn't reseting a key map. It's unlikely anyone ever hit this bug.
-
-----------
-2006/04/01 13:39:09 crs
-lib/platform/CXWindowsClipboard.cpp
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreenSaver.cpp
-
-Fixed several uses of CXWindowsUtil::CErrorLock that take a flag.
-Was checking the flag before destroying the lock object. That
-doesn't reliably work because the X protocol is asynchronous. The
-lock object ensures that the flag is correctly set in its d'tor by
-synchronizing with the server. The X11 hotkey (un)registration was
-one place where this was done. There were places in the X11
-screensaver and clipboard handling, too.
-
-----------
-2006/04/01 12:55:17 crs
-lib/synergy/CKeyState.cpp
-
-Fixed failure to clear the state of which keys are pressed in
-fakeAllKeysUp(). This fixes problems with synergy clients
-thinking some keys are still down, causing weird key behavior.
-
-----------
-2006/04/01 12:53:31 crs
-lib/common/Version.h
-
-Changed version to 1.3.1.
-
-----------
-2006/03/21 21:54:16 crs
-lib/platform/CXWindowsUtil.cpp
-
-Add all #defines for including keysyms that we use. The #defines in
-X11/keysym.h vary from platform to platform and cannot be relied on.
-
-----------
-2006/03/21 21:42:53 crs
-lib/common/Version.h
-
-Changed version to 1.3.0.
-
-----------
-2006/03/21 21:38:52 crs
-cmd/launcher/Makefile.am
-
-Added new files to makefile.
-
-----------
-2006/03/21 21:38:02 crs
-cmd/launcher/CAutoStart.cpp
-cmd/launcher/CAutoStart.h
-cmd/launcher/CHotkeyOptions.cpp
-cmd/launcher/CHotkeyOptions.h
-cmd/launcher/launcher.cpp
-cmd/launcher/launcher.dsp
-cmd/launcher/launcher.rc
-cmd/launcher/resource.h
-cmd/synergyc/synergyc.dsp
-cmd/synergys/synergys.dsp
-lib/arch/arch.dsp
-lib/base/base.dsp
-lib/client/client.dsp
-lib/common/common.dsp
-lib/io/io.dsp
-lib/mt/mt.dsp
-lib/net/net.dsp
-lib/platform/platform.dsp
-lib/platform/synrgyhk.dsp
-lib/server/CConfig.cpp
-lib/server/CInputFilter.cpp
-lib/server/CInputFilter.h
-lib/server/server.dsp
-lib/synergy/IKeyState.cpp
-lib/synergy/IKeyState.h
-lib/synergy/IPrimaryScreen.cpp
-lib/synergy/IPrimaryScreen.h
-lib/synergy/libsynergy.dsp
-
-Added a hot key dialog to the win32 launcher, providing full support
-for all features of hot keys. This required a bunch of small changes
-to CInputFilter and stuff used by it (mainly getter methods).
-
-The hot key dialog uses dynamic_cast<> to determine the kinds of
-conditions and actions for each rule in the configuration. This
-required enabling RTTI in the project files.
-
-Also changed the 'Start' button to start the synergy service if
-installed (i.e. synergy is configured to start when the computer
-starts).
-
-----------
-2006/03/21 21:37:59 crs
-lib/platform/CMSWindowsKeyState.cpp
-lib/platform/CMSWindowsKeyState.h
-
-Changed AltGr handling on win32. Previously the server would send
-ctrl and alt up events when sending a key that used AltGr then send
-matching down events. Now we just clear the ctrl and alt bits in
-the mask sent with the key; clients will temporarily release the
-ctrl and alt modifiers as necessary to yield the key. If the key
-doesn't need AltGr then the ctrl and alt bits are kept. We also
-used to reserve the right alt key for AltGr even if the keyboard
-layout didn't use it that way. This has been removed. The keyboard
-mapping now presses the ctrl and alt keys for AltGr rather than use
-the right alt.
-
-Also made getKeyID() a public method.
-
-----------
-2006/03/21 21:37:57 crs
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/COSXScreen.cpp
-lib/platform/CXWindowsScreen.cpp
-
-Improved log output when registering hot keys.
-
-----------
-2006/03/21 21:37:53 crs
-cmd/synergyc/synergyc.cpp
-cmd/synergys/synergys.cpp
-
-Added "server" and "client" to synergy log windows.
-
-----------
-2006/03/21 21:37:52 crs
-lib/synergy/CKeyMap.cpp
-
-Fixed bug in keyboard mapping when releasing modifiers. This caused
-a problem with AltGr on win32. The left alt key was being
-(synthetically) released but it was the right alt key that was down.
-
-----------
-2006/03/21 21:37:49 crs
-doc/configuration.html
-
-Documentation fix.
-
-----------
-2006/03/20 23:13:11 crs
-doc/images/warp.gif
-
-Replaced animated GIF demonstrating cursor warp with one that
-doesn't show the cursor in the region between the monitors.
-This is the original GIF with frames removed. Supplied by
-user Brian A.
-
-----------
-2006/03/18 19:17:46 crs
-synergy.xcode/project.pbxproj
-
-Updated Xcode project to build universal binaries. The PPC build
-uses the 10.2.8 SDK while the i386 build uses the 10.4u SDK. Also
-removed the "Default" configuration; "Development" is now the
-default.
-
-----------
-2006/03/18 16:39:43 crs
-lib/platform/COSXKeyState.cpp
-lib/platform/COSXKeyState.h
-lib/platform/COSXScreen.cpp
-
-Improved handling of option key on OS X servers. Previously it
-was always treated as the super modifier. Now it's treated as
-AltGr if it generates a glyph, though AltGr is not sent to the
-clients. So if option+key produces a glyph then key is sent
-without the option or AltGr modifiers. If option+key does not
-produce a glpyh then option is sent as the super modifier.
-Note that combining an option+key combination that would produce
-a glyph with the command or control modifiers will cause it to
-not produce a glyph. In that case we send option as the super
-modifier and we send the glyph that would've been produced on
-the server had the option key not been pressed. So option+s
-sends the beta key id with no modifiers but command+option+s
-sends the "s" key id with the alt and super modifiers.
-
-This seems to handle the user expectations. However some users
-may expect option+L to produce win+L on win32 clients. These
-same users probably expect option+? to produce an upside down
-question mark. But these two expectations are fundamentally at
-odds. We cannot satisfy everyone because OS X doesn't have
-enough modifier keys.
-
-----------
-2006/03/18 13:20:18 crs
-lib/server/CInputFilter.cpp
-
-Fixed mousebutton condition. Wasn't working if num lock, caps lock
-or scroll lock was on.
-
-----------
-2006/03/18 12:05:34 crs
-lib/platform/CXWindowsScreen.cpp
-
-Applied patch from Jaco Kroon to fix a problem with mouse focus
-on X11.
-
-----------
-2006/03/18 11:54:40 crs
-doc/index.html
-
-Added support for index.html?child#anchor syntax. This will open
-the index.html page then child in the page frame and jump to anchor.
-
-----------
-2006/03/12 20:24:43 crs
-cmd/launcher/CAutoStart.cpp
-cmd/synergyc/CMSWindowsClientTaskBarReceiver.cpp
-cmd/synergyc/synergyc.cpp
-cmd/synergys/CMSWindowsServerTaskBarReceiver.cpp
-cmd/synergys/synergys.cpp
-lib/arch/CArch.cpp
-lib/arch/CArch.h
-lib/arch/CArchConsoleUnix.cpp
-lib/arch/CArchConsoleUnix.h
-lib/arch/CArchConsoleWindows.cpp
-lib/arch/CArchConsoleWindows.h
-lib/arch/CArchLogUnix.cpp
-lib/arch/CArchLogUnix.h
-lib/arch/CArchLogWindows.cpp
-lib/arch/CArchLogWindows.h
-lib/arch/IArchConsole.h
-lib/arch/IArchLog.h
-lib/base/CLog.cpp
-lib/base/ILogOutputter.h
-lib/base/LogOutputters.cpp
-lib/base/LogOutputters.h
-
-Added show() method to console and logs.
-
-----------
-2006/03/12 20:24:14 crs
-dist/nullsoft/synergy.nsi
-
-Updated windows installer to install new documentation pages and
-to put a shortcut on the desktop.
-
-----------
-2006/03/12 20:23:46 crs
-cmd/launcher/synergy.ico
-cmd/synergyc/synergyc.ico
-cmd/synergyc/tb_error.ico
-cmd/synergyc/tb_idle.ico
-cmd/synergyc/tb_run.ico
-cmd/synergyc/tb_wait.ico
-cmd/synergys/synergys.ico
-cmd/synergys/tb_error.ico
-cmd/synergys/tb_idle.ico
-cmd/synergys/tb_run.ico
-cmd/synergys/tb_wait.ico
-
-Updated icons on win32.
-
-----------
-2006/03/12 12:42:18 crs
-doc/configuration.html
-doc/faq.html
-doc/running.html
-doc/trouble.html
-
-More documentation fixes.
-
-----------
-2006/03/12 12:19:02 crs
-doc/configuration.html
-doc/faq.html
-doc/Makefile.am
-doc/toc.html
-doc/trouble.html
-
-Added a page with typical problems and solutions.
-
-----------
-2006/03/12 10:25:15 crs
-doc/tips.html
-
-More documentation fixes.
-
-----------
-2006/03/12 10:20:14 crs
-doc/about.html
-doc/configuration.html
-doc/faq.html
-
-Documentation fixes.
-
-----------
-2006/03/12 09:34:16 crs
-doc/toc.html
-
-Fixed link in table of contents.
-
-----------
-2006/03/11 15:01:00 crs
-doc/banner.html
-doc/border.html
-doc/index.html
-doc/synergy.css
-
-Adjusted how the border under the banner is drawn.
-
-----------
-2006/03/11 14:49:38 crs
-doc/images/logo.gif
-
-Updated logo.
-
-----------
-2006/03/11 14:42:00 crs
-doc/about.html
-doc/authors.html
-doc/autostart.html
-doc/banner.html
-doc/compiling.html
-doc/configuration.html
-doc/contact.html
-doc/developer.html
-doc/faq.html
-doc/history.html
-doc/home.html
-doc/images/logo.gif
-doc/images/warp.gif
-doc/index.html
-doc/license.html
-doc/Makefile.am
-doc/news.html
-doc/roadmap.html
-doc/running.html
-doc/security.html
-doc/synergy.css
-doc/tips.html
-doc/toc.html
-doc/todo.html
-
-Updated documentation pages. They're now the web site pages except
-they now use frames.
-
-----------
-2006/03/08 20:07:09 crs
-lib/platform/CMSWindowsDesks.cpp
-lib/platform/CMSWindowsDesks.h
-lib/platform/CMSWindowsKeyState.cpp
-lib/platform/CMSWindowsKeyState.h
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-lib/platform/COSXScreen.cpp
-lib/platform/COSXScreen.h
-lib/platform/CSynergyHook.cpp
-lib/platform/CSynergyHook.h
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreen.h
-lib/server/CInputFilter.cpp
-lib/server/CPrimaryClient.cpp
-lib/server/CPrimaryClient.h
-lib/server/CServer.cpp
-lib/server/CServer.h
-lib/synergy/CKeyMap.cpp
-lib/synergy/CKeyState.cpp
-lib/synergy/CKeyState.h
-lib/synergy/CPlatformScreen.h
-lib/synergy/CScreen.cpp
-lib/synergy/CScreen.h
-lib/synergy/IPlatformScreen.h
-lib/synergy/IPrimaryScreen.cpp
-lib/synergy/IPrimaryScreen.h
-
-Added beginnings of support for synthesizing keystrokes on server's
-screen. It's partly implemented on win32; it just needs to track
-the modifier keys and adjust them as appropriate when synthesizing
-keys. It's not implemented on X11 or OS X. It's also currently
-disabled (in CPrimaryClient.cpp).
-
-----------
-2006/03/08 20:05:38 crs
-cmd/synergyc/CClientTaskBarReceiver.cpp
-cmd/synergyc/CClientTaskBarReceiver.h
-cmd/synergyc/CMSWindowsClientTaskBarReceiver.cpp
-cmd/synergyc/resource.h
-cmd/synergyc/synergyc.cpp
-cmd/synergyc/synergyc.rc
-cmd/synergys/CMSWindowsServerTaskBarReceiver.cpp
-cmd/synergys/CServerTaskBarReceiver.cpp
-cmd/synergys/resource.h
-cmd/synergys/synergys.cpp
-cmd/synergys/synergys.rc
-lib/arch/CArch.cpp
-lib/arch/CArchConsoleUnix.cpp
-lib/arch/CArchConsoleUnix.h
-lib/arch/CArchConsoleWindows.cpp
-lib/arch/CArchConsoleWindows.h
-lib/arch/CArchMiscWindows.cpp
-lib/arch/CArchMiscWindows.h
-lib/base/CLog.cpp
-lib/base/LogOutputters.cpp
-lib/base/LogOutputters.h
-lib/client/CClient.cpp
-lib/client/CClient.h
-lib/common/Version.cpp
-
-Replaced using win32 console for log with a dialog containing a rich
-edit control. The user can close this window without quiting synergy
-and can reopen the window using the tray icon menu. Also added menu
-items to switch the current logging level.
-
-----------
-2006/02/22 19:21:21 crs
-lib/platform/COSXScreen.cpp
-
-Removed bogus logging call.
-
-----------
-2006/02/20 19:46:47 crs
-cmd/launcher/launcher.cpp
-cmd/launcher/LaunchUtil.cpp
-cmd/launcher/LaunchUtil.h
-
-Fixed infinite loop of error dialogs in win32 launcher.
-
-----------
-2006/02/20 12:59:20 crs
-doc/faq.html
-
-Added firewall info to faq12. Added faq19, a discussion of not taking
-the foreground on win32.
-
-----------
-2006/02/20 12:46:18 crs
-doc/authors.html
-doc/autostart.html
-doc/compiling.html
-doc/configuration.html
-doc/developer.html
-doc/faq.html
-doc/history.html
-doc/index.html
-doc/license.html
-doc/news.html
-doc/running.html
-doc/security.html
-doc/tips.html
-doc/todo.html
-
-Changed !DOCTYPE to HTML 4.0 (from 3.2).
-
-----------
-2006/02/20 12:21:34 crs
-doc/configuration.html
-lib/server/CConfig.cpp
-lib/server/CConfig.h
-lib/server/CInputFilter.cpp
-lib/server/CInputFilter.h
-lib/server/CServer.cpp
-lib/server/CServer.h
-
-Hot key overhaul. Added support for multiple actions per hot key.
-Actions and conditions are now idempotent so they no longer track
-the active state (on, off, toggled, etc). Actions can be assigned
-to the activation or deactivation of a condition, basically a hot
-key or mouse button being pressed (activation) or released
-(deactivation). The keystroke and mousebutton actions map to both
-and the new keyDown, keyUp, mouseDown and mouseUp map to one or the
-other. The lock cursor to screen action now takes a mode: on, off
-or toggle and the corresponding event state is respected by the
-server. Removed the modifiers action. Mouse button actions now use
-the new kKeySetModifiers and kKeyClearModifiers keys to set/reset
-modifier state directly on the client.
-
-Conditions and actions are much simpler now that they're idempotent
-and so is CInputFilter. Refactored CRule into a class since there's
-now more to a rule than a condition and action.
-
-----------
-2006/02/20 11:29:41 crs
-lib/synergy/CKeyMap.cpp
-lib/synergy/CKeyMap.h
-lib/synergy/CKeyState.cpp
-
-Added support for kKeySetModifiers and kKeyClearModifiers keys.
-The former activates the given modifiers and the latter deactivates
-them.
-
-----------
-2006/02/20 11:25:44 crs
-lib/synergy/KeyTypes.h
-
-Added special keys for setting/clearing modifiers. The intent
-is to use these to set/reset modifiers for mouse button hot key
-actions.
-
-----------
-2006/02/19 21:01:08 crs
-lib/platform/COSXScreen.cpp
-
-Fixed OS X to send current keyboard modifiers with mouse button events.
-
-----------
-2006/02/19 13:26:54 crs
-lib/client/CClient.cpp
-lib/client/CClient.h
-
-Fixed two clipboard problems.
-
-First, synergy would blow an assert given the following sequence
-of events:
- enter client screen A
- A takes clipboard
- enter server screen B
- B takes clipboard
- clipboard on A changes (while we're not on the screen)
- enter A
- enter B
-On entering B we find that the clipboard sender is not the owner
-of the clipboard. This is because when A changed the clipboard
-while we were on B, B ignored the grab from A. A now thinks it
-owns the clipboard (even though B does). So when we leave A the
-second time, it sends the clipboard (which contains what B sent
-it) to B. The assertion is blown because B owns the clipboard
-but A sends a clipboard with a valid sequence number. The fix
-is simply that clients must reset their internal clipboard
-ownership flag when told to set the clipboard by the server.
-
-Second, synergy clients would fail to send the clipboard to the
-server given the following sequence of events:
- enter client A
- A takes the clipboard
- enter screen B
- B takes the clipboard
- enter A
- A takes the clipboard with the same contents as before
-In an effort to reduce bandwidth, clients don't send unchanged
-clipboard contents. Clients were incorrectly treating this
-case as unchanged contents when, in fact, the contents are those
-set by B not those of A. Clients now handle this case.
-
-----------
-2006/02/19 13:13:55 crs
-lib/server/CServer.cpp
-
-Fixed error in log message. Was trying to report the sender of
-a clipboard but was reporting the owner of the clipboard.
-
-----------
-2006/02/16 22:12:37 crs
-lib/platform/CXWindowsKeyState.cpp
-lib/platform/CXWindowsKeyState.h
-
-Added a hack to work around how VMware handles modifier keys on X11
-when a virtual machine has focus. VMware removes all of the modifier
-mappings so synergy doesn't know about any modifiers. The hack is to
-use the last known good modifiers when there aren't any active
-modifiers.
-
-----------
-2006/02/14 18:10:12 crs
-lib/server/CServer.cpp
-
-Made switch in direction hot keys use the cursor's current position
-when calculating what the neighbor is. This only affects layouts
-using fractional edges.
-
-----------
-2006/02/12 16:49:16 crs
-synergy.xcode/project.pbxproj
-
-Updated Xcode project.
-
-----------
-2006/02/12 16:40:02 crs
-doc/configuration.html
-lib/server/CServer.cpp
-lib/server/CServer.h
-lib/synergy/KeyTypes.cpp
-
-Removed onCommandKey() from server. This was used only for handling
-the ScrollLock key to lock the cursor to the screen but this has been
-obsoleted by the hotkey support for locking the cursor. Also,
-ScrollLock is now only added as a hotkey to lock the cursor if the
-user hasn't configured some other hotkey to lock the cursor.
-
-----------
-2006/02/12 16:22:41 crs
-doc/configuration.html
-lib/server/CConfig.cpp
-lib/server/CConfig.h
-lib/server/CInputFilter.cpp
-lib/server/CServer.cpp
-lib/server/CServer.h
-lib/synergy/IKeyState.cpp
-lib/synergy/IKeyState.h
-
-Added support for directing hotkey key actions to a particular screen
-or screens or to broadcast to all screens. However, key action
-keystrokes are never sent to the server screen. This should be fixed.
-
-----------
-2006/02/12 16:16:11 crs
-doc/configuration.html
-lib/synergy/CKeyMap.cpp
-lib/synergy/CKeyMap.h
-lib/synergy/KeyTypes.cpp
-lib/synergy/KeyTypes.h
-lib/synergy/libsynergy.dsp
-lib/synergy/Makefile.am
-lib/synergy/mkspecialkeynames.pl
-lib/synergy/SpecialKeyNameMap.h
-
-Moved and restructed key name maps. Also added names for all
-non-alphanumeric ASCII characters and added support for \uXXXX
-unicode character codes.
-
-----------
-2006/02/12 14:47:23 crs
-lib/synergy/CKeyState.cpp
-
-Now allowing fake key presses from server with a server button ID
-of 0. Hot keys that synthesize key events use a server button ID
-of 0. Note that other code will prevent a client from processing
-a hotkey press while another hotkey is pressed. The nature of
-hotkeys should ensure that never happens except for modifier only
-hotkeys. Worry about that later.
-
-----------
-2006/02/12 12:06:50 crs
-lib/platform/COSXScreen.cpp
-
-Fixed 2 axis scrolling on OS X.
-
-----------
-2006/02/12 11:53:35 crs
-lib/client/CClient.cpp
-lib/client/CClient.h
-lib/client/CServerProxy.cpp
-lib/platform/CMSWindowsDesks.cpp
-lib/platform/CMSWindowsDesks.h
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-lib/platform/COSXScreen.cpp
-lib/platform/COSXScreen.h
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreen.h
-lib/server/CClientProxy.h
-lib/server/CClientProxy1_0.cpp
-lib/server/CClientProxy1_0.h
-lib/server/CClientProxy1_3.cpp
-lib/server/CClientProxy1_3.h
-lib/server/CPrimaryClient.cpp
-lib/server/CPrimaryClient.h
-lib/server/CServer.cpp
-lib/server/CServer.h
-lib/synergy/CPlatformScreen.h
-lib/synergy/CScreen.cpp
-lib/synergy/CScreen.h
-lib/synergy/IClient.h
-lib/synergy/IPlatformScreen.h
-lib/synergy/IPrimaryScreen.cpp
-lib/synergy/IPrimaryScreen.h
-lib/synergy/ISecondaryScreen.h
-lib/synergy/ProtocolTypes.cpp
-lib/synergy/ProtocolTypes.h
-
-Added support for horizontal scrolling.
-
-----------
-2006/02/12 10:08:49 crs
-lib/platform/COSXScreen.cpp
-lib/platform/COSXScreen.h
-
-Applied patch from stkamp@users.sf.net that clamps mouse positions
-to valid areas on OS X. It also improves using the local keyboard
-with the remote mouse on OS X.
-
-----------
-2006/02/11 20:01:42 crs
-lib/platform/CMSWindowsKeyState.cpp
-lib/platform/CMSWindowsKeyState.h
-lib/platform/CMSWindowsScreen.cpp
-
-Fixed synthesis of ctrl+alt+del and handling of AltGr on win32
-client.
-
-----------
-2006/02/11 20:00:32 crs
-lib/server/server.dsp
-
-Added CClientProxy1_3 to project.
-
-----------
-2006/02/06 19:27:45 crs
-lib/server/CConfig.cpp
-
-Fixed handling of comments when parsing the configuration.
-Had changed leading whitespace stripping which broke it.
-
-----------
-2006/02/05 19:42:55 crs
-synergy.xcode/project.pbxproj
-
-Updated Xcode project.
-
-----------
-2006/02/05 18:48:35 crs
-lib/server/CClientProxy1_3.cpp
-
-Fixed warning.
-
-----------
-2006/02/05 18:02:47 crs
-lib/server/CInputFilter.cpp
-
-Fixed updates of input filters when configuration is changed.
-
-----------
-2006/02/05 17:55:45 crs
-lib/server/CClientProxy1_0.cpp
-lib/server/CClientProxy1_3.cpp
-
-More fixes for server side keep alives.
-
-----------
-2006/02/05 17:55:19 crs
-lib/server/CServer.cpp
-
-Fixed sending of options to client. Wasn't reseting options first.
-
-----------
-2006/02/05 17:39:20 crs
-lib/client/CServerProxy.cpp
-
-Fixed memory bug in releasing keep alive timer.
-
-----------
-2006/02/05 17:36:17 crs
-lib/server/CClientProxy1_0.cpp
-lib/server/CClientProxy1_0.h
-lib/server/CClientProxy1_3.cpp
-lib/server/CClientProxy1_3.h
-lib/server/CClientProxyUnknown.cpp
-
-Fixed server side handling of keep alives.
-
-----------
-2006/02/05 17:34:14 crs
-lib/client/CServerProxy.cpp
-lib/client/CServerProxy.h
-
-Fixed client side handling of keep alives.
-
-----------
-2006/02/05 16:56:00 crs
-lib/synergy/ProtocolTypes.h
-
-Added comment for protocol version 1.3.
-
-----------
-2006/02/05 16:54:39 crs
-lib/client/CServerProxy.cpp
-lib/client/CServerProxy.h
-lib/server/CClientProxy1_0.cpp
-lib/server/CClientProxy1_0.h
-lib/server/CClientProxy1_3.cpp
-lib/server/CClientProxy1_3.h
-lib/server/Makefile.am
-lib/synergy/ProtocolTypes.cpp
-lib/synergy/ProtocolTypes.h
-
-Deprecated heartbeat and added keep alive to replace it. While a
-heartbeat was generated by clients and sent to the server, a keep
-alive is sent from the server and echoed by the client. This
-checks both directions of the connection. Either side will hang
-up if the other hasn't been heard from in a reasonable amount of
-time. This fixes a problem where clients would not hang up on
-an unavailable server.
-
-----------
-2006/02/05 16:29:01 crs
-cmd/launcher/Makefile.am
-
-Added CInfo files to makefile.
-
-----------
-2006/02/05 15:30:49 crs
-lib/synergy/CKeyState.cpp
-
-Fixed handling of modifier keys that are held down while leaving
-a client screen. Was correctly releasing those keys on the client
-but wasn't reseting the active modifier state so as soon as a key
-was pressed after reentering the client the modifiers were
-reactivated. However, the user could only see the problem by
-typing on the local keyboard because the modifier was correctly
-adjusted for keys from the server. Now reseting modifier state
-when leaving a client screen.
-
-----------
-2006/02/05 14:47:59 crs
-cmd/launcher/CInfo.cpp
-cmd/launcher/CInfo.h
-cmd/launcher/launcher.cpp
-cmd/launcher/launcher.dsp
-cmd/launcher/launcher.rc
-cmd/launcher/LaunchUtil.cpp
-cmd/launcher/LaunchUtil.h
-cmd/launcher/resource.h
-
-Added two features to the win32 launcher. First there's now a
-info dialog which reports some useful information. The other is
-that configuration files are now re-read when the application is
-activated and the file's modification time has changed. This
-should help when users are hand editing the configuration file
-while the launcher is running.
-
-----------
-2006/02/05 14:45:39 crs
-lib/server/CConfig.cpp
-
-Fixed a bug in writing configuration files with fractional edges.
-
-----------
-2006/02/05 14:43:17 crs
-cmd/launcher/CAddScreen.cpp
-cmd/launcher/CScreensLinks.cpp
-cmd/launcher/CScreensLinks.h
-cmd/launcher/launcher.rc
-cmd/launcher/resource.h
-doc/configuration.html
-lib/server/CConfig.cpp
-lib/server/CConfig.h
-lib/server/CServer.cpp
-lib/server/CServer.h
-
-Added support for fractional edge links. This allows users to
-configure a portion of an edge to map to a portion of another
-edge, rather than linking entire edges. This does not allow
-users to split a (presumably multimonitor) screen to allow
-switching on reaching an interior edge.
-
-----------
-2006/02/01 21:34:28 crs
-lib/synergy/CKeyMap.cpp
-
-Fixed parsing of modifier plus single character keystroke and
-mousebutton entries in the configuration. Was discarding single
-characters.
-
-----------
-2006/02/01 21:20:46 crs
-lib/platform/COSXKeyState.cpp
-
-Fixed OS X keypad enter key.
-
-----------
-2006/01/29 20:50:54 crs
-lib/server/CConfig.cpp
-lib/server/CInputFilter.cpp
-lib/server/CInputFilter.h
-lib/server/CServer.cpp
-lib/server/CServer.h
-
-Added support for performing an action when a screen connects.
-Also added support for jumping to the screen that just connected.
-The line 'connect() = switchToScreen()' in the global options will
-cause the cursor to jump to a screen as soon as it connects. This
-isn't especially useful but serves as an example.
-
-----------
-2006/01/29 19:56:31 crs
-lib/platform/CXWindowsScreen.cpp
-
-Fixed X11 hot key grabbing. Previously was sensitive to CapsLock,
-NumLock and ScrollLock and is now insensitive to all of those.
-
-----------
-2006/01/29 17:54:08 crs
-lib/platform/COSXScreen.cpp
-
-Changed input suppress delay to 0. This might be right or it
-might need to be a small positive value like 0.1.
-
-----------
-2006/01/29 15:52:44 crs
-lib/server/CConfig.h
-lib/server/CInputFilter.cpp
-lib/server/CInputFilter.h
-lib/server/CServer.cpp
-
-Fixed support for ScrollLock to lock the cursor to the screen.
-It now works via the hotkey mechanism.
-
-----------
-2006/01/29 15:51:59 crs
-lib/platform/CMSWindowsKeyState.cpp
-lib/platform/CMSWindowsKeyState.h
-
-Fixed failure to run on win95 family. Was linked against
-ToUnicodeEx which is not available on that family. Now looking
-up that symbol at run time.
-
-----------
-2006/01/29 15:50:29 crs
-lib/platform/COSXScreen.cpp
-
-Fixed minor bug in call to CGSetLocalEventsSuppressionInterval.
-
-----------
-2006/01/29 13:26:48 crs
-lib/platform/CSynergyHook.cpp
-
-Win32 reports VK_RSHIFT as an extended key, which it is not.
-We now correct this which fixes the right shift key when using
-win32 servers.
-
-----------
-2006/01/29 12:47:31 crs
-lib/synergy/CKeyMap.cpp
-
-Fixed handling of modifiers when synthesizing a modifier. We
-were previously trying to match the desired modifier state
-when synthesizing any key, even if some of those modifiers
-weren't required (i.e. the key was insensitive to the state
-of some of those modifiers). We no longer try to match the
-state of non-required modifiers because doing so can break
-the synthesis of some keys, particularly modifiers. For
-example, previously pressing Control with NumLock on would
-turn NumLock off, press Control, then turn NumLock back on.
-If this Control was used with Alt on win32 to effect AltGr
-then AltGr would not take effect. On X11 the Shift key was
-improperly combined with NumLock, causing mouse keys to take
-effect.
-
-----------
-2006/01/29 12:37:30 crs
-lib/common/Version.h
-
-Changed to version 1.2.8.
-
-----------
-2005/12/18 18:00:56 crs
-synergy.xcode/project.pbxproj
-
-Added new files to xcode project.
-
-----------
-2005/12/18 17:35:57 crs
-doc/configuration.html
-doc/news.html
-
-More documentation for 1.2.7.
-
-----------
-2005/12/18 16:51:52 crs
-doc/news.html
-
-Fixed error in documentation.
-
-----------
-2005/12/18 16:15:42 crs
-lib/platform/CSynergyHook.cpp
-
-Removed use of function from C standard library in the hook DLL.
-
-----------
-2005/12/18 16:11:15 crs
-lib/platform/COSXScreen.cpp
-lib/platform/COSXScreen.h
-
-Added workaround for not receiving drag events for any mouse buttons
-besides 1 and 2 (left and right). That appears to be a limitation
-of the OS so we simply start polling the position while any buttons
-besides 1 and 2 are down. Code based on a patch by Brian Kendall.
-
-----------
-2005/12/18 15:29:25 crs
-lib/common/Version.h
-
-Changed version to 1.2.7.
-
-----------
-2005/12/18 15:12:39 crs
-lib/platform/COSXKeyState.cpp
-
-Fixed mapping of unicode key layouts. Was discarding some
-characters (backspace and return, in particular) that should
-not have been discarded.
-
-----------
-2005/12/18 10:49:23 crs
-cmd/launcher/launcher.rc
-lib/platform/CMSWindowsKeyState.cpp
-lib/platform/CMSWindowsKeyState.h
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-lib/server/CConfig.cpp
-lib/server/CConfig.h
-lib/server/CInputFilter.cpp
-lib/server/CInputFilter.h
-lib/server/CServer.cpp
-lib/server/server.dsp
-lib/synergy/CKeyMap.cpp
-lib/synergy/CKeyMap.h
-lib/synergy/IKeyState.cpp
-lib/synergy/IKeyState.h
-lib/synergy/IPrimaryScreen.cpp
-lib/synergy/IPrimaryScreen.h
-lib/synergy/libsynergy.dsp
-lib/synergy/SpecialKeyNameMap.h
-synergy.dsw
-
-Added support for hot keys on win32. Also fixed memory leaks in
-CInputFilter and changed CConfig to write hot keys in its
-CInputFilter object to the options section.
-
-----------
-2005/12/15 18:57:38 crs
-lib/platform/COSXScreen.cpp
-lib/platform/COSXScreen.h
-
-Fixed hot keys on OS X when on a secondary screen. This worked
-in the original patch but broken during the modify/merge. It
-was broken because we turn off all hot key processing by the OS
-while on a secondary screen. The fix is to check on key press
-and release if the key and modifier state matches a hot key.
-
-This is known to be broken on hot key release if you press the
-hot key then change the modifiers before releasing the provoking
-key.
-
-----------
-2005/12/14 21:51:01 crs
-lib/platform/CXWindowsKeyState.cpp
-lib/platform/CXWindowsKeyState.h
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreen.h
-
-Added support for hotkeys on X11.
-
-----------
-2005/12/14 21:50:49 crs
-lib/server/CServer.cpp
-
-When jumping to another screen was computing the center using the
-size of the active screen instead of the size of the destination
-screen.
-
-----------
-2005/12/14 21:50:09 crs
-lib/server/CConfig.cpp
-
-Switched to ctype.h from cctype to fix linux build.
-
-----------
-2005/12/14 09:33:25 crs
-lib/base/CLog.cpp
-lib/base/CLog.h
-lib/base/CStringUtil.cpp
-lib/base/CStringUtil.h
-
-Fixed bug in CStringUtil::vsprint. Was reusing va_list across
-calls to vnsprintf, which is not allowed. Modified CStringUtil
-and CLog to avoid doing that. This should fix a crash when
-using --help on some platforms. Tthe --help message was the
-only message long enough to exceed the static buffer length
-which caused a va_list to get reused.
-
-----------
-2005/12/14 08:43:36 crs
-lib/platform/COSXKeyState.cpp
-lib/platform/COSXKeyState.h
-lib/platform/COSXScreen.cpp
-lib/platform/COSXScreen.h
-lib/server/CConfig.cpp
-lib/server/CConfig.h
-lib/server/CInputFilter.cpp
-lib/server/CInputFilter.h
-lib/server/CPrimaryClient.cpp
-lib/server/CPrimaryClient.h
-lib/server/CServer.cpp
-lib/server/CServer.h
-lib/server/Makefile.am
-lib/synergy/CKeyState.cpp
-lib/synergy/CKeyState.h
-lib/synergy/CPlatformScreen.h
-lib/synergy/CScreen.cpp
-lib/synergy/CScreen.h
-lib/synergy/IPlatformScreen.h
-lib/synergy/IPrimaryScreen.cpp
-lib/synergy/IPrimaryScreen.h
-lib/synergy/Makefile.am
-lib/synergy/mkspecialkeynames.pl
-lib/synergy/SpecialKeyNameMap.h
-
-Checkpoint of configurable hotkey support. Authored by Lorenz
-Schori, modified and merged by me. Hotkeys are only implemented
-on OS X so far; this change breaks the build on linux and win32.
-
-----------
-2005/11/29 21:22:02 crs
-lib/platform/CXWindowsKeyState.cpp
-
-Fixed bug in X11 keyboard code. Wasn't checking for a NULL pointer.
-
-----------
-2005/11/28 22:12:49 crs
-doc/running.html
-
-Added a little more detail to the documentation for for OS X users
-not familiar with the shell.
-
-----------
-2005/11/28 20:59:39 crs
-doc/autostart.html
-
-Added X11 autostart info for kdm.
-
-----------
-2005/11/27 16:41:06 crs
-lib/platform/CMSWindowsDesks.cpp
-lib/platform/CMSWindowsKeyState.cpp
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CSynergyHook.cpp
-lib/synergy/CKeyMap.cpp
-lib/synergy/CKeyState.cpp
-
-Fixed several win32 keyboard bugs.
-
-----------
-2005/11/27 16:30:50 crs
-lib/synergy/CKeyMap.cpp
-lib/synergy/CKeyState.cpp
-lib/synergy/CKeyState.h
-
-Fixed a couple of problems with key event synthesis.
-
-----------
-2005/11/25 18:19:28 crs
-lib/platform/CXWindowsScreenSaver.cpp
-lib/platform/CXWindowsScreenSaver.h
-
-Now sending a more significant fake mouse motion to xscreensaver
-to keep it from activating. xscreensaver since 2.21 requires a
-motion of at least 10 pixels to be considered significant.
-
-----------
-2005/11/25 14:42:30 crs
-lib/platform/COSXClipboard.cpp
-lib/platform/COSXScreen.cpp
-lib/platform/COSXScreen.h
-
-Added periodic check for clipboard change on OS X. We're polling
-because there doesn't seem to be any event to notify of a clipboard
-change.
-
-----------
-2005/11/24 11:00:39 crs
-cmd/launcher/launcher.cpp
-
-Fixed bug in win32 GUI. If synergy wasn't previously installed for
-autostart then the GUI would incorrectly install it for autostart.
-It was incorrectly installed in such a way that synergy would think
-it wasn't installed and it would not function when the service
-manager tried to start it.
-
-----------
-2005/11/20 22:34:06 crs
-lib/platform/CMSWindowsKeyState.cpp
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/COSXKeyState.cpp
-lib/platform/COSXKeyState.h
-lib/platform/COSXScreen.cpp
-lib/platform/COSXScreen.h
-lib/platform/CXWindowsScreen.cpp
-lib/synergy/CKeyMap.cpp
-lib/synergy/CKeyMap.h
-lib/synergy/CKeyState.cpp
-lib/synergy/CKeyState.h
-lib/synergy/CPlatformScreen.cpp
-lib/synergy/CPlatformScreen.h
-lib/synergy/CScreen.cpp
-lib/synergy/IKeyState.h
-lib/synergy/IPlatformScreen.h
-
-Converted OS X to new keyboard handling. Two known problems
-with OS X: the thorn character is mapped incorrectly (because
-OS X lies) and we're using every keyboard layout, not just the
-enabled one, because we have no idea how to detect if a layout
-is enabled or not. The latter problem only causes some startup
-slowness.
-
-----------
-2005/11/20 22:29:01 crs
-configure.in
-lib/arch/CMultibyte.cpp
-
-Added support for converting clipboard data to Latin-1 encoding
-if the default encoding is ASCII by switching to the en_US locale
-at startup.
-
-----------
-2005/11/14 18:35:07 crs
-lib/synergy/CKeyState.h
-
-Removed unnecessary headers.
-
-----------
-2005/11/13 17:08:45 crs
-lib/synergy/CKeyMap.cpp
-lib/synergy/CKeyMap.h
-
-Added improved support for key combinations intended to perform a
-keyboard shortcut rather than synthesize a particular key.
-
-----------
-2005/11/13 12:52:16 crs
-lib/platform/CMSWindowsKeyState.cpp
-lib/platform/CXWindowsKeyState.cpp
-lib/platform/CXWindowsKeyState.h
-lib/platform/CXWindowsScreen.cpp
-lib/synergy/CKeyMap.cpp
-lib/synergy/CKeyMap.h
-
-Finished X11 non-XKB keyboard mapping. Also added a convenience
-function to CKeyMap used by both the X11 and win32 implemenetations.
-
-----------
-2005/11/13 10:31:32 crs
-lib/platform/CMSWindowsKeyState.cpp
-lib/platform/CMSWindowsKeyState.h
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-lib/platform/COSXKeyState.cpp
-lib/platform/COSXKeyState.h
-lib/platform/CXWindowsKeyState.cpp
-lib/platform/CXWindowsKeyState.h
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsUtil.cpp
-lib/platform/CXWindowsUtil.h
-lib/synergy/CKeyMap.cpp
-lib/synergy/CKeyMap.h
-lib/synergy/CKeyState.cpp
-lib/synergy/CKeyState.h
-lib/synergy/CPlatformScreen.cpp
-lib/synergy/CPlatformScreen.h
-lib/synergy/CScreen.cpp
-lib/synergy/CScreen.h
-lib/synergy/IKeyState.h
-lib/synergy/IPlatformScreen.h
-lib/synergy/KeyTypes.h
-lib/synergy/libsynergy.dsp
-lib/synergy/Makefile.am
-
-Checkpointing keyboard handling refactoring. This is a major change
-to the client side handling of key events. This change converts the
-X11 and win32 handling but not the OS X handling.
-
-The new class CKeyMap contains the information necessary to convert
-a synergy key event to the platform events necessary to synthesize
-the key. Platforms fill in a CKeyMap whenever their keyboard layouts
-change using the addKeyEntry(), calling it once for each unique way
-to synthesize a particular KeyID on the keyboard. The CKeyMap takes
-it from there, first adding dead-key combinations and some other keys,
-then doing the translation from KeyID to platform keystroke sequences.
-Platforms no longer need to implement the KeyID to keystroke sequence
-conversion, simplifying the platform implementations.
-
-This change also supports multiple keyboard layouts, typically used
-to support various languages. If a key is not available on the active
-layout but is on a different installed layout then synergy will switch
-layouts automatically.
-
-The X11 version now fully supports the XKB extension. This should fix
-problems with Mode_switch vs ISO_Level3_Shift. Non-XKB support is
-incomplete in this checkpoint.
-
-----------
-2005/11/12 11:43:54 crs
-lib/platform/CMSWindowsScreen.cpp
-
-Disabled code to periodically reinstall synergy in the clipboard
-chain. It was causing an infinite recursion in the WM_DRAWCLIPBOARD
-message handler.
-
-----------
-2005/11/12 11:28:25 crs
-lib/platform/CMSWindowsScreenSaver.cpp
-
-Changed a couple of logging messages to DEBUG2 from DEBUG.
-
-----------
-2005/11/12 11:27:55 crs
-cmd/launcher/CAutoStart.cpp
-cmd/launcher/CAutoStart.h
-cmd/launcher/launcher.cpp
-
-Fixed saving of autostart configuration in win32 launcher. It
-was erroring out when the user did not have permission to write
-to that portion of the registry. Now it will only write the
-configuration if synergy is installed for autostart. This is
-still not quite right since it'll still error out if some other
-user with sufficient permission has installed the autostart and
-this user doesn't have enough permission.
-
-----------
-2005/11/12 11:22:34 crs
-lib/common/Version.h
-
-Changed version to 1.2.6.
-
-----------
-2005/11/01 19:58:21 crs
-acinclude.m4
-
-Restored pthread signal configuration checks accidentally removed
-in previous version.
-
-----------
-2005/10/12 21:37:58 crs
-doc/running.html
-
-Updated setup documentation.
-
-----------
-2005/10/11 21:12:18 crs
-lib/arch/CArchMultithreadPosix.cpp
-
-Fixed warning in posix multithread code.
-
-----------
-2005/10/11 20:59:29 crs
-acinclude.m4
-
-Updated autoconf script for detecting pthreads.
-
-----------
-2005/10/06 21:45:01 crs
-configure.in
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreen.h
-
-Added initial XKB code. This only checks for the extension in
-the configuration, queries the extension at runtime and handles
-mapping notify events. Still need to use the extension to get
-the keyboard map.
-
-----------
-2005/10/02 17:40:56 crs
-lib/platform/CXWindowsClipboard.cpp
-lib/platform/CXWindowsClipboard.h
-lib/platform/CXWindowsUtil.cpp
-lib/platform/CXWindowsUtil.h
-
-Fixed X11 clipboard handling on 64-bit systems. Also fixed a
-problem with detecting when a clipboard owner says a format is
-unavailable.
-
-----------
-2005/10/01 19:26:57 crs
-lib/server/CServer.cpp
-
-Fixed unnecessary comparison to NULL that chokes some compilers.
-
-----------
-2005/10/01 19:23:38 crs
-cmd/launcher/CAdvancedOptions.cpp
-cmd/launcher/CAutoStart.cpp
-cmd/launcher/CAutoStart.h
-cmd/launcher/launcher.cpp
-cmd/launcher/launcher.rc
-cmd/launcher/resource.h
-dist/nullsoft/synergy.nsi
-lib/arch/CArchDaemonWindows.cpp
-lib/arch/CArchMiscWindows.cpp
-lib/arch/CArchMiscWindows.h
-lib/platform/CMSWindowsDesks.cpp
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-lib/platform/CMSWindowsScreenSaver.cpp
-lib/platform/CSynergyHook.cpp
-lib/synergy/CKeyState.cpp
-lib/synergy/CKeyState.h
-lib/synergy/CPlatformScreen.cpp
-lib/synergy/CPlatformScreen.h
-lib/synergy/CScreen.cpp
-lib/synergy/IKeyState.h
-lib/synergy/IPlatformScreen.h
-
-Fixed several win32 bugs. Removed the 'Save' button from the
-launcher; configuration is now saved transparently. Autostart
-configuration is now saved transparently whenever it changes
-and autostart is enabled. Configuration is now saved when the
-debug logging level changes.
-
-Now releasing synthetically pressed keys when leaving the client.
-The existing code was checking for key down using a local key
-button id then trying to release it using the same id as a server
-key button id.
-
-Now looking up a local button id for key events that have a scan
-code of 0. These are sent by some programs that synthesize events.
-
-Now periodically reinstalling the clipboard chain viewer. It appears
-that the chain is breaking sometimes (probably due a badly behaved
-or killed app) but there's no way to detect that so this is a
-workaround.
-
-Now stopping and deleting the autostart services during uninstall.
-
-----------
-2005/10/01 18:55:59 crs
-lib/platform/COSXScreen.cpp
-lib/platform/COSXScreen.h
-
-Added support for apple's mighty mouse. We now correctly handle
-button 4 (and 5 if it exists). We now detect the mighty mouse's
-scroll ball and convert vertical motion into scroll wheel events.
-Also changed handling of scroll wheel scaling; the mac works
-differently from other platforms so it's not perfect.
-
-----------
-2005/10/01 15:01:15 crs
-cmd/launcher/Makefile.am
-
-Added new files to makefiles.
-
-----------
-2005/09/26 20:58:53 crs
-lib/server/CConfig.cpp
-
-Fixed bug in output of configuration files. Was writing bottom-right
-corner as "bottom-left" instead of "bottom-right".
-
-----------
-2005/09/26 20:55:24 crs
-cmd/launcher/CAddScreen.cpp
-cmd/launcher/CAddScreen.h
-cmd/launcher/CScreensLinks.cpp
-cmd/launcher/CScreensLinks.h
-cmd/launcher/launcher.cpp
-cmd/launcher/launcher.dsp
-cmd/launcher/launcher.rc
-cmd/launcher/resource.h
-
-Refactored code in win32 launcher GUI.
-
-----------
-2005/08/22 19:40:34 crs
-lib/common/Version.h
-
-Changed version to 1.2.5.
-
-----------
-2005/08/07 10:32:54 crs
-doc/autostart.html
-
-Updated OS X autostart documentation.
-
-----------
-2005/08/07 10:32:19 crs
-lib/arch/CArchMultithreadPosix.cpp
-lib/arch/IArchMultithread.h
-
-Added support for SIGUSR2. Not using it yet, though.
-
-----------
-2005/08/03 21:03:49 crs
-cmd/synergyc/synergyc.cpp
-
-Client now quits after failing to connect if not restartable.
-Was failing to quit.
-
-----------
-2005/08/03 20:14:42 crs
-cmd/synergyc/Makefile.am
-cmd/synergys/Makefile.am
-configure.in
-lib/arch/Makefile.am
-lib/platform/Makefile.am
-
-Changed how we export MACOSX_DEPLOYMENT_TARGET to a hopefully more
-portable solution.
-
-----------
-2005/08/02 21:42:12 crs
-cmd/synergyc/synergyc.cpp
-cmd/synergys/synergys.cpp
-
-Fixed --daemon fix when compiled on unix.
-
-----------
-2005/08/02 20:57:52 crs
-cmd/launcher/CGlobalOptions.cpp
-cmd/launcher/launcher.rc
-cmd/launcher/resource.h
-lib/platform/CMSWindowsDesks.cpp
-lib/platform/CMSWindowsDesks.h
-lib/platform/CMSWindowsScreen.cpp
-lib/server/CConfig.cpp
-lib/synergy/OptionTypes.h
-
-Added option to suppress grabbing of the foreground window on win32
-synergy servers. Grabbing the foreground window prevents certain
-apps from messing up low level keyboard events but doing that can
-break certain workflow, particularly with games. Since the option
-is only for win32 and it's in the launcher GUI and I hope to get rid
-of it someday, there is no configuration documentation for it.
-
-----------
-2005/08/02 20:55:35 crs
-cmd/synergyc/synergyc.cpp
-cmd/synergys/synergys.cpp
-
-Fixed '--daemon' command line option on Windows NT family client and
-server. Those platforms now ignore --daemon and --no-daemon like
-they should.
-
-----------
-2005/08/01 22:34:05 crs
-lib/platform/CMSWindowsKeyState.cpp
-lib/platform/CMSWindowsKeyState.h
-lib/platform/COSXKeyState.cpp
-lib/platform/COSXKeyState.h
-lib/platform/CXWindowsKeyState.cpp
-lib/platform/CXWindowsKeyState.h
-lib/server/CPrimaryClient.cpp
-lib/synergy/CKeyState.h
-lib/synergy/CPlatformScreen.cpp
-lib/synergy/CPlatformScreen.h
-lib/synergy/CScreen.cpp
-lib/synergy/CScreen.h
-lib/synergy/IKeyState.h
-lib/synergy/IPlatformScreen.h
-
-Fixed scroll-lock screen locking on linux servers. An earlier
-change made the function that returns modifier state return the
-shadowed state not the current state. On X windows we don't
-shadow the state when on the primary screen so the synergy server
-would never see the scroll-lock state turned on until it left the
-primary screen. As a result scroll-lock would not lock to the
-primary screen but would lock you to whatever secondary screen
-you ended up on.
-
-Changed win32 and OSX versions to work like the linux version.
-Win32 used to work anyway because we constantly shadow keyboard
-state on that. OSX did not query current keyboard state at all
-before and it still doesn't; this needs to be fixed.
-
-----------
-2005/08/01 22:29:48 crs
-lib/synergy/libsynergy.dsp
-
-Added ProtocolTypes.cpp to VC++ project.
-
-----------
-2005/08/01 21:02:07 crs
-lib/common/common.h
-synergy.xcode/project.pbxproj
-
-Changes to get gcc3.3, 10.2.8 SDK builds working on OS X.
-
-----------
-2005/07/31 22:50:10 crs
-configure.in
-lib/platform/COSXScreenSaver.cpp
-lib/platform/COSXScreenSaver.mm
-lib/platform/COSXScreenSaverUtil.h
-lib/platform/COSXScreenSaverUtil.m
-lib/platform/Makefile.am
-
-Removed Objective-C++ file. Now using an Objective-C file instead
-which works better with autoconf/automake.
-
-----------
-2005/07/31 22:49:03 crs
-lib/synergy/Makefile.am
-lib/synergy/ProtocolTypes.cpp
-lib/synergy/ProtocolTypes.h
-
-Fixed warnings on gcc 4.0.
-
-----------
-2005/07/31 22:48:30 crs
-lib/common/Version.h
-
-Changed version to 1.2.4.
-
-----------
-2005/07/26 21:37:41 crs
-lib/common/Version.h
-
-Changed version to 1.2.3.
-
-----------
-2005/07/26 21:37:27 crs
-lib/platform/CMSWindowsDesks.cpp
-lib/platform/CMSWindowsDesks.h
-
-Now disabling the win32 foreground window on the server when
-leaving the server screen. This prevents the system from
-messing up keyboard events. The console (command prompt) and
-remote desktop are known to interfere with the shift key when
-they have the focus. This introduces a bug where the window
-that was the foreground is raised to the top of the stacking
-order when the cursor enters the server screen. This should
-only be a problem for Mouse-X (activation follows mouse) users.
-I don't know how Mouse-X changes the foreground/active window
-without raising it; if I did I'd fix this bug.
-
-----------
-2005/07/26 21:24:13 crs
-doc/configuration.html
-
-Fixed typo in documentation.
-
-----------
-2005/07/26 19:58:37 crs
-cmd/launcher/launcher.cpp
-
-Now defaulting to WARNING as the default debug level on win32.
-This is a workaround for NOTE and higher always popping up the
-command window, which can't be hidden or closed. When the
-user clicks 'Test', the debug level is forced to be at least
-INFO to workaround this workaround. Future versions will do
-away with the command window altogether so this weirdness isn't
-too much of a problem.
-
-----------
-2005/07/26 19:50:44 crs
-doc/faq.html
-doc/tips.html
-
-Improved documentation of how to get ctrl+alt+pause working on
-Windows NT,2k,XP.
-
-----------
-2005/07/21 21:25:51 crs
-lib/common/common.h
-
-Forcing use of select() rather than poll() on OS X. Wasn't
-getting a read event on a socket when the remote side closed
-down when using poll(). Probably a bug in synergy code but
-I couldn't find it.
-
-----------
-2005/07/21 21:24:28 crs
-lib/arch/CArchNetworkBSD.cpp
-
-Fixed "resource temporarily unavailable" exception on OS X when
-using the unblock pipe.
-
-----------
-2005/07/20 22:09:05 crs
-cmd/launcher/launcher.cpp
-cmd/launcher/launcher.rc
-cmd/launcher/resource.h
-cmd/synergys/synergys.cpp
-doc/configuration.html
-lib/client/CClient.cpp
-lib/server/CConfig.cpp
-lib/server/CConfig.h
-lib/server/CServer.cpp
-lib/server/CServer.h
-lib/synergy/OptionTypes.h
-
-Added "dead" corners support. The cursor can't switch screens
-from a dead corner.
-
-----------
-2005/07/19 20:43:51 crs
-lib/platform/COSXKeyState.cpp
-lib/platform/COSXKeyState.h
-
-Applied patch (from Lorenz Schori) to fix getting the keyboard
-layout. It previously was failing for non-Apple keyboards.
-
-----------
-2005/07/19 20:23:29 crs
-lib/platform/COSXKeyState.cpp
-
-Replaced NULL with 0 in arithmetic expression.
-
-----------
-2005/05/08 11:40:26 crs
-lib/platform/CMSWindowsKeyState.cpp
-
-Applied patch 1113363 to support the kanji key on win32.
-
-----------
-2005/05/08 11:08:12 crs
-lib/arch/CArch.cpp
-lib/arch/CArch.h
-lib/arch/CArchNetworkBSD.cpp
-lib/arch/CArchNetworkBSD.h
-lib/arch/CArchNetworkWinsock.cpp
-lib/arch/CArchNetworkWinsock.h
-lib/arch/IArchNetwork.h
-lib/net/CTCPListenSocket.cpp
-
-Added support for SO_REUSEADDR. It is always enabled.
-
-----------
-2005/05/08 11:00:42 crs
-cmd/synergys/synergys.cpp
-
-Fixed bug in retrying to initialize or start the server. Was
-waiting the retry interval then doing nothing.
-
-----------
-2005/04/29 21:27:10 crs
-lib/common/common.h
-lib/platform/COSXScreen.cpp
-synergy.xcode/project.pbxproj
-
-A few OSX build fixes.
-
-----------
-2005/04/28 22:05:51 crs
-lib/common/common.h
-
-Now setting HAVE_SOCKLEN_T to 1 when on OSX and _SOCKLEN_T is
-defined and HAVE_CONFIG_H isn't is set.
-
-----------
-2005/04/28 22:04:23 crs
-cmd/synergyc/Makefile.am
-cmd/synergys/Makefile.am
-configure.in
-lib/arch/Makefile.am
-lib/platform/Makefile.am
-
-Added support for MACOSX_DEPLOYMENT_TARGET. It's set to 10.2.
-
-----------
-2005/04/28 22:02:47 crs
-cmd/synergys/synergys.cpp
-lib/client/CClient.cpp
-
-Now reporting sleep suspend/resume at INFO level.
-
-----------
-2005/04/25 22:12:04 crs
-cmd/synergyc/Makefile.am
-cmd/synergyc/synergyc.cpp
-cmd/synergys/Makefile.am
-cmd/synergys/synergys.cpp
-configure.in
-lib/base/CEvent.cpp
-lib/base/CEvent.h
-lib/base/CEventQueue.cpp
-lib/client/CClient.cpp
-lib/client/CClient.h
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-lib/platform/COSXScreen.cpp
-lib/platform/COSXScreen.h
-lib/platform/COSXScreenSaver.cpp
-lib/platform/COSXScreenSaver.h
-lib/platform/COSXScreenSaver.mm
-lib/platform/Makefile.am
-lib/platform/OSXScreenSaverControl.h
-lib/server/CServer.cpp
-lib/synergy/IScreen.cpp
-lib/synergy/IScreen.h
-synergy.xcode/project.pbxproj
-
-Added support on OS X for screensaver synchronization,
-sleeping and fast user switching. OS X Server also now
-captures global hot keys (cmd+tab, F9, etc.) and sends them
-to the client. Changes mostly due to lorenz schori. Some
-bug fixes (in lorenz's code and in synergy) and integration
-into automake by crs (had to add support for Objective C++
-files) and the XCode project.
-
-This change also adds flags to events. Flags can cause events
-to be dispatched immediately and to not free event data. Both
-features are used in the new code.
-
-This change adds events on IScreen for notification of the
-system going to sleep or waking up (or the user's session
-being somehow suspended and restored). CClient and synergys
-now listen for and respond to these events. CMSWindowsScreen
-used to use IJobs for handling these events synchronously. It
-now uses the new IScreen events and delivers them immediately.
-
-----------
-2005/01/26 18:45:45 crs
-lib/common/Version.h
-
-Changed version to 1.2.2.
-
-----------
-2005/01/26 18:43:33 crs
-lib/platform/COSXKeyState.cpp
-
-Fixed bug in handling modifier keys on OS X clients. Was applying
-modifiers to modifiers yielding, for example: ctrl down, ctrl down,
-ctrl up for press of the control key. The first down and the up were
-there because we were applying the control modifier to the control
-key.
-
-----------
-2005/01/26 18:41:28 crs
-lib/platform/CXWindowsKeyState.cpp
-
-Fixed handling of ISO_Level3_Shift. We now prefer ISO_Level3_Shift
-over Mode_switch if it's mapped to any key. ISO_Level3_Shift
-replaces Mode_switch in newer versions of X and Mode_switch does
-nothing, so we have to use ISO_Level3_Shift if it's there.
-
-----------
-2005/01/04 19:29:58 crs
-lib/platform/COSXKeyState.cpp
-
-Fixed bug in OS X server key translation which pretty much broke any
-keystroke with a modifier key.
-
-----------
-2005/01/01 20:52:43 crs
-doc/compiling.html
-
-Merged documentation fixes.
-
-----------
-2005/01/01 20:19:42 crs
-doc/running.html
-
-Merged documentation fix from mainline.
-
-----------
-2004/12/30 13:28:51 crs
-cmd/synergyc/synergyc.cpp
-cmd/synergys/synergys.cpp
-doc/authors.html
-lib/client/CClient.cpp
-lib/net/CNetworkAddress.cpp
-lib/net/CNetworkAddress.h
-lib/server/CConfig.cpp
-
-Adapted and applied patch by Brent Priddy for re-resolving the server
-hostname on each connection. This allows the client to startup
-without being able to resolve the server's hostname. It also lets
-it handle changes in the server's address, a typical scenario when
-the client is a laptop moving between networks.
-
-----------
-2004/12/30 12:10:47 crs
-lib/platform/CMSWindowsKeyState.cpp
-lib/synergy/KeyTypes.h
-
-Added Henkan key. Patch from rniitani at sourceforge.net.
-
-----------
-2004/12/30 11:54:23 crs
-doc/authors.html
-lib/platform/CXWindowsScreen.cpp
-
-Applied patch from Tom Chadwick to synthesize PageUp/PageDown on
-X servers that don't support the mouse wheel.
-
-----------
-2004/12/29 21:12:05 crs
-lib/platform/CMSWindowsScreen.cpp
-
-Now ignoring 4th and 5th mouse buttons if they don't exist. Was
-previously querying their state, sometimes getting the wrong
-answer from the OS that they were down, which prevented switching
-screens.
-
-----------
-2004/12/29 21:10:49 crs
-lib/platform/CMSWindowsKeyState.cpp
-
-Fixed handling of number pad number and decimal point keys when
-NumLock is on on client on windows 95 family.
-
-----------
-2004/12/29 17:53:44 crs
-lib/platform/CXWindowsScreen.cpp
-
-Added support for ISO_Level3_Shift on X windows server. It's
-treated as if it were Mode_switch.
-
-----------
-2004/12/29 17:07:08 crs
-lib/platform/COSXKeyState.cpp
-lib/platform/COSXKeyState.h
-
-Added support for unicode keyboard layouts on OS X.
-
-----------
-2004/12/29 17:06:49 crs
-lib/platform/COSXScreen.cpp
-
-Removed calls to show/hide mouse because they only work if we've
-taken exclusive access to the display and we don't do that.
-
-----------
-2004/12/29 17:06:00 crs
-lib/platform/COSXEventQueueBuffer.cpp
-lib/platform/COSXEventQueueBuffer.h
-
-Fixed leak of event objects on OS X.
-
-----------
-2004/12/29 17:00:17 crs
-//depot/project/synergy-web/Makefile
-//depot/project/synergy-web/autostart.htmls
-//depot/project/synergy-web/synergy.css
-doc/autostart.html
-doc/synergy.css
-
-Added Mac OS X autostart documentation from Tor Slettnes (tor@slett.net).
-
-----------
-2004/11/12 15:50:04 crs
-lib/platform/COSXKeyState.cpp
-lib/platform/COSXKeyState.h
-
-Now suppressing shift key when caps-lock is enabled on OSX. This
-fixes handling of, say, Command+N with caps-lock enabled which
-was being synthesized as Command+Shift+N.
-
-----------
-2004/11/11 19:23:14 crs
-lib/arch/CArchMultithreadPosix.cpp
-
-Fixed a serious flaw in wrapper for posix condition variable wait
-function. Because synergy doesn't use posix cancellation, it
-cannot wake up a thread waiting on a condition variable. So
-the wrapper would wake up periodically to test if the thread was
-cancelled (according to synergy's cancellation state) then go
-back to waiting. Well the condition could be signalled while
-we're testing and be lost and we'd never return from the wait.
-So now we wake up after a maximum timeout and return to the
-caller. The caller must check for this spurious wakeup but all
-callers should do this anyway so we're okay there.
-
-----------
-2004/11/11 19:17:03 crs
-lib/net/CSocketMultiplexer.cpp
-lib/net/CSocketMultiplexer.h
-
-Changed scheme used to lock the socket multiplexer's job list.
-I think the new scheme is easier to understand. It should have
-exactly the same behavior.
-
-----------
-2004/11/10 21:00:30 crs
-lib/mt/CCondVar.h
-
-Made condition variable data volatile. This will hopefully fix
-an strange deadlock seen on OSX. The CSocketMultiplexer deadlocks
-with two threads, one waiting for m_polling to become false and
-the other waiting for m_pollable to become true. The weird part
-is that they're both false so the first thread should proceed.
-It either didn't receive the broadcast when m_polling went to
-false or it's not really checking the actual value of that flag.
-I can't see how the former is possible and this change fixes the
-latter.
-
-----------
-2004/11/10 19:11:33 crs
-lib/platform/CXWindowsUtil.cpp
-
-Fixed typo.
-
-----------
-2004/11/09 20:05:33 crs
-lib/platform/COSXKeyState.cpp
-lib/platform/COSXKeyState.h
-
-Fixed modifier handling on OSX client. Had hardcoded one set of
-modifiers for all keys for testing purposes and forgotton to fix
-that. Now choosing required modifiers per key. This fixes
-shift+arrow keys suppressing the shift key and, i think, the
-option key not working.
-
-----------
-2004/11/09 18:42:47 crs
-lib/common/Version.h
-
-Changed version to 1.1.10.
-
-----------
-2004/11/09 18:38:14 crs
-cmd/synergyc/synergyc.cpp
-cmd/synergys/synergys.cpp
-
-Added synergy version number to first log message.
-
-----------
-2004/11/09 18:31:54 crs
-cmd/synergyc/synergyc.cpp
-cmd/synergys/synergys.cpp
-
-Moved log message that prints system info to after installation
-of user requested log level so it can be filtered.
-
-----------
-2004/11/06 16:29:06 crs
-lib/client/CServerProxy.cpp
-
-Attempt to workaround laggy mouse on OS X with linux as server.
-
-----------
-2004/11/06 16:13:52 crs
-lib/arch/CArchMiscWindows.cpp
-lib/arch/CArchMiscWindows.h
-lib/platform/CMSWindowsDesks.cpp
-lib/platform/CMSWindowsDesks.h
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-
-Fixed screensaver detection on XP.
-
-----------
-2004/11/06 16:13:01 crs
-lib/platform/CMSWindowsKeyState.cpp
-lib/platform/CMSWindowsKeyState.h
-
-Fixed handling of number pad keys with num-lock off. Was
-synthesizing events for the numbers even with num-lock off. Now
-synthesizing the cursor movements.
-
-----------
-2004/11/06 16:11:39 crs
-cmd/synergyc/synergyc.cpp
-cmd/synergys/synergys.cpp
-
-Fixed console appearing when running synergy as a service. This
-was introduced with the change to print system info to the start
-of the log. This message was printed before the service installed
-the log handler that directs messages to the event log.
-
-----------
-2004/11/04 21:26:43 crs
-lib/platform/CXWindowsKeyState.cpp
-lib/platform/CXWindowsKeyState.h
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreen.h
-lib/platform/CXWindowsUtil.cpp
-lib/platform/CXWindowsUtil.h
-
-Added support for X11 compose key (Multi_key). This change fixes
-the handling of compose key sequences. The key presses were
-suppressed but not the corresponding releases, confusing the
-clients. It also adds support for generating keysyms via the
-compose key if the necessary dead keys or Mode_switch are not
-available.
-
-----------
-2004/11/02 20:50:36 crs
-doc/running.html
-
-Added documentation for -display option.
-
-----------
-2004/11/02 20:43:55 crs
-cmd/synergyc/synergyc.cpp
-cmd/synergys/synergys.cpp
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreen.h
-
-Added -display option for X11 version.
-
-----------
-2004/11/01 22:26:52 crs
-lib/platform/CSynergyHook.cpp
-
-Reverted change to detach threads in hook DLL. It was breaking
-double clicking.
-
-----------
-2004/11/01 22:26:02 crs
-cmd/synergys/CMSWindowsServerTaskBarReceiver.cpp
-cmd/synergys/resource.h
-cmd/synergys/synergys.rc
-
-Added tray menu item on win32 to force clients to reconnect.
-
-----------
-2004/11/01 22:25:39 crs
-cmd/synergyc/synergyc.cpp
-cmd/synergys/synergys.cpp
-configure.in
-lib/arch/CArch.cpp
-lib/arch/CArch.h
-lib/arch/CArchFileWindows.cpp
-lib/arch/CArchSystemWindows.cpp
-lib/arch/CArchSystemWindows.h
-lib/arch/IArchSystem.h
-lib/arch/Makefile.am
-lib/arch/arch.dsp
-
-Added operating system identification log message for debugging
-purposes.
-
-----------
-2004/11/01 22:10:34 crs
-lib/platform/CMSWindowsDesks.cpp
-
-Added debugging output to check window class of active window
-when leaving screen. This may help determine how to avoid
-DOS command prompt windows being in the foreground when leaving
-the screen since they suppress handling of the shift key.
-
-----------
-2004/11/01 18:26:29 crs
-lib/platform/CMSWindowsEventQueueBuffer.cpp
-
-Fixed synergy quiting when powerdvd stops playing a DVD. This may
-fix some other bugs that involve unexpectedly quiting. The problem
-was that synergy would (cleanly) quit when receiving an event with
-a message id of 0 when not running as a service.
-
-----------
-2004/11/01 18:24:37 crs
-lib/platform/CMSWindowsDesks.cpp
-
-Fixed multimon support for win NT/2000/XP running as client. Mouse
-would jump between two points.
-
-----------
-2004/11/01 18:22:45 crs
-lib/platform/CMSWindowsScreenSaver.cpp
-
-Fixed a resource leak. Also fixed the detection of the screen saver
-closing on windows 2000 and XP.
-
-----------
-2004/11/01 18:21:00 crs
-cmd/launcher/CAdvancedOptions.cpp
-cmd/launcher/CAdvancedOptions.h
-cmd/launcher/launcher.rc
-cmd/launcher/resource.h
-
-Added option to set the listen address via the win32 GUI. This
-allows the user to specify one (and only one) network interface
-to listen on.
-
-----------
-2004/10/30 16:41:36 crs
-lib/platform/CXWindowsKeyState.cpp
-
-Changed X11 key mapping to fallback to the modifier keysym with
-the opposite handedness if the desired handedness is missing.
-For example, if Alt_R is unmapped as it often is on keyboards
-with Mode_switch, the client will use Alt_L if it is mapped
-when told to synthesize Alt_R. This should fix handling of
-AltGr sent from a win32 server. AltGr is literally just
-Control_L and Alt_R and, previously, an X11 client without
-Alt_R mapped would only simulate Control_L. This does not
-address the fact that the user may really just want the Alt
-modifier; there are already hueristics to attempt to figure
-that out.
-
-----------
-2004/10/30 16:16:32 crs
-configure.in
-lib/platform/CXWindowsScreenSaver.cpp
-
-Improved X extension detection in configure and added handling
-of dpms.h headers that don't have function prototypes.
-
-----------
-2004/10/28 21:40:56 crs
-configure.in
-lib/arch/CArchNetworkBSD.h
-lib/common/stdistream.h
-lib/common/stdostream.h
-lib/common/stdsstream.h
-lib/platform/CXWindowsClipboard.h
-lib/platform/CXWindowsEventQueueBuffer.h
-lib/platform/CXWindowsKeyState.cpp
-lib/platform/CXWindowsKeyState.h
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreen.h
-lib/platform/CXWindowsScreenSaver.cpp
-lib/platform/CXWindowsScreenSaver.h
-lib/platform/CXWindowsUtil.h
-
-Fixed bugs in configuration. Wasn't doing configuration for DPMS
-and Xinerama correctly. Also was using '#if defined(...)' instead
-of '#if ...' for testing configure macros in some places. This
-yields the wrong answer if the macro is set to 0, which means
-missing/disabled.
-
-----------
-2004/10/27 21:46:22 crs
-lib/arch/CArchFileUnix.cpp
-
-Fixed use of freed memory.
-
-----------
-2004/10/27 21:38:05 crs
-lib/platform/CSynergyHook.cpp
-
-Now detaching hook thread after event processing. This may fix
-problems with the Alt key being synthetically down when using
-the back and forward bindings on a mouse with extra buttons.
-
-----------
-2004/10/27 21:29:19 crs
-lib/platform/CSynergyHook.cpp
-
-Fixed bug in mouse wheel handling. Was reacting with mouse wheel
-events when receiving any event with message == 0 when the system
-doesn't use old style mouse wheel events. Some programs (especially
-the flash plugin) would send events with message == 0 causing
-undesired wheel scrolling.
-
-----------
-2004/10/27 21:22:36 crs
-lib/platform/COSXScreen.cpp
-
-Fixed problem with multimonitor on OS X. The bug was simply that
-the cursor wasn't being parked in the center of the main screen
-but instead at the center of the total display surface. This could
-place it off or dangerously close to the edge of the transparent
-window that covers the main screen and prevent synergy from capturing
-mouse motion.
-
-----------
-2004/10/24 18:18:21 crs
-lib/platform/CXWindowsScreen.cpp
-
-Added eject key mapping.
-
-----------
-2004/10/24 18:18:11 crs
-lib/platform/CXWindowsUtil.cpp
-
-Fixed comment.
-
-----------
-2004/10/24 18:18:01 crs
-lib/platform/CXWindowsKeyState.cpp
-lib/synergy/CKeyState.cpp
-lib/synergy/CKeyState.h
-
-Fixed dead key and AltGr+shift handling on X windows. Also fixed
-bug with decomposing characters that have no direct key mapping
-but do have a direct key mapping for the character with the opposite
-case.
-
-----------
-2004/10/24 18:15:33 crs
-lib/platform/COSXKeyState.cpp
-lib/platform/COSXKeyState.h
-lib/platform/COSXScreen.cpp
-
-Made OS X key mapping dynamic based on current key layout. It
-now includes full support for dead keys and non-ascii glyph keys.
-
-----------
-2004/10/24 18:14:18 crs
-lib/synergy/KeyTypes.h
-
-Added eject and sleep key IDs.
-
-----------
-2004/10/24 18:12:38 crs
-lib/platform/CMSWindowsKeyState.cpp
-
-Added VK_SLEEP.
-
-----------
-2004/10/23 19:43:37 crs
-lib/synergy/CKeyState.cpp
-lib/synergy/CKeyState.h
-lib/synergy/CScreen.cpp
-
-Previous half-duplex fix fixed secondary screens with half
-duplex keys but broke primary screens. This fixes both and
-also ensures that the primary screen updates its shadow toggle
-modifier state when leaving so the secondary screens get the
-correct toggle modifier state. Together these fix some strange
-inconsistencies in toggle state across screens.
-
-----------
-2004/10/23 18:40:31 crs
-lib/synergy/CKeyState.cpp
-
-Fixed bug in half-duplex keys. Was updating their toggled state
-om every release as well as press.
-
-----------
-2004/10/13 20:39:22 crs
-doc/configuration.html
-
-Fixed typo in the documentation of configuration options.
-
-----------
-2004/09/29 21:59:26 crs
-cmd/synergyc/CClientTaskBarReceiver.cpp
-cmd/synergyc/CClientTaskBarReceiver.h
-cmd/synergys/CServerTaskBarReceiver.cpp
-cmd/synergys/CServerTaskBarReceiver.h
-configure.in
-lib/arch/CArchMultithreadPosix.cpp
-lib/base/CEventQueue.cpp
-lib/base/CEventQueue.h
-lib/base/IEventQueue.h
-lib/io/CStreamFilter.cpp
-lib/io/CStreamFilter.h
-lib/io/IStream.h
-lib/net/CTCPSocket.cpp
-lib/net/CTCPSocket.h
-lib/net/IDataSocket.h
-lib/server/CClientListener.cpp
-lib/synergy/CPacketStreamFilter.cpp
-lib/synergy/CPacketStreamFilter.h
-
-Removed recursive mutexes. Simplified stream filters as a side
-effect. Removed -D_BSD_SOURCE and -D_XOPEN_SOURCE=500 from
-compile since they're not longer necessary.
-
-----------
-2004/09/28 22:25:35 crs
-lib/server/CConfig.cpp
-
-Now accepting screen names that end in a dot since many OS X
-users have misconfigured their systems to have hostnames that
-end in a dot.
-
-----------
-2004/09/28 22:19:24 crs
-dist/nullsoft/installer.mak
-
-Fixed error in win32 installer packaging.
-
-----------
-2004/09/28 22:19:11 crs
-cmd/launcher/launcher.cpp
-cmd/launcher/launcher.rc
-cmd/launcher/resource.h
-doc/configuration.html
-doc/faq.html
-lib/server/CConfig.cpp
-lib/synergy/CScreen.cpp
-
-Added half-duplex option for scroll lock key.
-
-----------
-2004/09/27 21:54:49 crs
-lib/platform/CXWindowsScreen.cpp
-lib/synergy/IPlatformScreen.h
-
-Fixed compile on gcc 3.4 and later. gcc started doing access checks
-for class visibility on pointers to member function 'using the
-qualifying scope of the name itself.' what this means is if method
-'prot' is declared protected in class A and B inherits from A then
-a method in B cannot use &A::prot but can use &B::prot. Synergy
-now does this in the one place it had not.
-
-----------
-2004/09/27 21:23:47 crs
-lib/arch/CArchMultithreadPosix.cpp
-
-Worked around minor gcc 3.3.2 -O3 compiler bug.
-
-----------
-2004/09/27 21:04:37 crs
-cmd/synergys/synergys.cpp
-
-Server now reports configuration file errors as ERROR level log
-messages rather than DEBUG level. Missing files are still reported
-as DEBUG level messages since we expect some to be missing.
-
-----------
-2004/09/27 20:53:54 crs
-configure.in
-lib/common/Version.h
-
-Changed version to 1.1.9. Changed configure.in to get version
-number from lib/common/Version.h so it only has to be changed
-there.
-
-----------
-2004/08/05 20:42:51 crs
-dist/nullsoft/synergy.nsi
-
-Fixed missing license file and PORTING in win32 installer build.
-
-----------
-2004/08/04 22:48:30 crs
-synergy.xcode/project.pbxproj
-
-Removed cross-compile setting from project.
-
-----------
-2004/08/04 22:48:08 crs
-lib/platform/COSXKeyState.cpp
-lib/platform/COSXKeyState.h
-lib/platform/COSXScreen.cpp
-lib/synergy/KeyTypes.h
-
-Fixed handling of auto-repeat, ctrl + character key, and button
-to KeyCode translation.
-
-----------
-2004/08/03 22:02:57 crs
-lib/platform/COSXKeyState.cpp
-
-Fixed space key on OS X server -> client.
-
-----------
-2004/08/03 21:14:30 crs
-lib/arch/CArchMultithreadPosix.cpp
-
-Fixed warnings in deployment build style on OS X.
-
-----------
-2004/08/01 17:37:28 crs
-doc/faq.html
-doc/index.html
-doc/running.html
-
-Fixed errors in new docs markup.
-
-----------
-2004/08/01 17:37:11 crs
-dist/nullsoft/synergy.nsi
-
-Updated win32 installer to use new docs.
-
-----------
-2004/08/01 17:36:53 crs
-COPYING
-
-Reverted COPYING so win32 installer build can use it.
-
-----------
-2004/08/01 16:31:47 crs
-Makefile.am
-dist/nullsoft/installer.mak
-dist/nullsoft/synergy.nsi
-dist/rpm/synergy.spec.in
-
-Updated packagers to handle new documentation.
-
-----------
-2004/08/01 16:04:21 crs
-AUTHORS
-COPYING
-INSTALL
-NEWS
-
-Added files required by automake. They simply reference the
-corresponding HTML file.
-
-----------
-2004/08/01 16:00:18 crs
-AUTHORS
-BUGS
-COPYING
-FAQ
-HISTORY
-INSTALL
-Makefile.am
-NEWS
-PORTING
-README
-TODO
-configure.in
-doc/Makefile.am
-doc/PORTING
-doc/authors.html
-doc/autostart.html
-doc/compiling.html
-doc/configuration.html
-doc/developer.html
-doc/faq.html
-doc/history.html
-doc/index.html
-doc/license.html
-doc/news.html
-doc/running.html
-doc/security.html
-doc/synergy.css
-doc/tips.html
-doc/todo.html
-
-Updated documentation. Converted most documation to HTML.
-
-----------
-2004/07/31 14:34:02 crs
-INSTALL
-PORTING
-README
-TODO
-
-Documentation changes.
-
-----------
-2004/07/31 11:19:39 crs
-acinclude.m4
-lib/arch/CArchNetworkBSD.cpp
-lib/platform/CXWindowsEventQueueBuffer.cpp
-
-Now using instead of . Also added a bit
-to autoconf to ensure we don't use poll on OS X.
-
-----------
-2004/07/29 22:11:27 crs
-lib/platform/COSXKeyState.cpp
-lib/platform/COSXKeyState.h
-lib/platform/COSXScreen.cpp
-lib/platform/COSXScreen.h
-
-Fixed handling of modifier keys on OS X. Also made OS X client
-ignore small mouse wheel events (which seem to get sent by some
-win32 systems). Other platforms were already ignoring them.
-
-----------
-2004/07/29 22:09:28 crs
-cmd/synergys/synergys.cpp
-
-Worked around bug in ifstream::operator!() on OS X.
-
-----------
-2004/07/29 21:59:26 crs
-lib/platform/CSynergyHook.cpp
-
-Fixed handling of ctrl and alt keys when using low level hooks.
-They were being discarded so the server wouldn't correctly send
-ctrl, alt, or AltGr to clients.
-
-----------
-2004/07/29 21:57:42 crs
-lib/platform/CMSWindowsScreenSaver.cpp
-
-Added comment about a problem detecting the screen saver.
-
-----------
-2004/07/29 21:53:30 crs
-lib/platform/CMSWindowsKeyState.cpp
-
-Worked around bogus key mapping on 95/98/me where multiple virtual
-keys are mapped to the same button. For example, the backslash
-virtual key shares a button with some other virtual key on british
-english key mappings. Synergy could end up using the wrong virtual
-key. In the given case, the other virtual key produced no character
-at all. To determine which virtual key should really be mapped to
-a button we map the button back to a virtual key and see if it's the
-virtual key we started with.
-
-Also fixed mapping of pause key. Previously, windows+pause sent to
-a win32 client wouldn't bring up system properties like it should.
-
-----------
-2004/07/29 21:50:17 crs
-lib/platform/CMSWindowsDesks.cpp
-
-Synergy now steals window activation when using low level hooks
-and a console window is the active window. This is to work around
-console windows preventing the hook from detecting the shift key.
-
-----------
-2004/07/29 21:48:40 crs
-lib/net/CTCPSocket.cpp
-
-Worked around bug/weirdness on OS X. It's reporting that a
-non-blocking connect is available for writing (i.e. the connection
-was successful) when the connection has actually failed. This
-caused synergy to rapidly retry connecting. This change makes
-synergy check for a connection error whether one was reported or
-not. Thankfully, OS X does correctly set the socket error state
-when it bogusly reports a successful connection so we can tell the
-connection failed.
-
-----------
-2004/07/28 21:54:39 crs
-lib/net/CTCPSocket.cpp
-
-Added workaround for apparent bug in OS X 10.3.4. If you started
-a synergy client on that OS and pointed it at a system that wasn't
-listening for connections then instead of the connection attempt
-failing with 'connection refused' the system would claim the
-connection succeeded. A subsequent read would reveal the problem
-and synergy would "disconnect" and retry, causing the CPU to spin.
-The system does correctly set the socket error state so this
-workaround checks for socket errors when connecting whether or not
-select reports an error state.
-
-Also, sometimes the system doesn't claim success but doesn't report
-an error. Synergy eventually times out these attempts.
-
-----------
-2004/07/25 14:18:50 crs
-configure.in
-lib/common/Version.h
-
-Changed version to 1.1.8.
-
-----------
-2004/06/22 21:11:14 crs
-lib/platform/CXWindowsScreen.cpp
-
-Disable key event capture on X11. This was going to be used to
-detect synergy hotkeys but a design flaw in X11 makes it problematic
-with many applications. We'll have to fall back to the more
-traditional XGrabKey when the time comes.
-
-----------
-2004/06/16 21:07:48 crs
-synergy.xcode/project.pbxproj
-
-Added NDEBUG to and removed debugging symbols from XCode deployment
-project.
-
-----------
-2004/06/13 17:11:19 crs
-ChangeLog
-NEWS
-
-Updated documentation.
-
-----------
-2004/06/12 20:48:04 crs
-lib/platform/CMSWindowsDesks.cpp
-lib/platform/CMSWindowsDesks.h
-lib/platform/CMSWindowsScreenSaver.cpp
-lib/platform/CMSWindowsScreenSaver.h
-
-(Maybe) fixed a problem detecting when win32 screen saver started.
-
-----------
-2004/06/12 20:46:35 crs
-lib/arch/CMultibyte.cpp
-
-Fixed bug in converting wide characters to multibyte.
-
-----------
-2004/06/10 21:25:09 crs
-lib/client/CClient.cpp
-
-Fixed assertion failure when client connection fails immediately.
-
-----------
-2004/06/10 19:56:35 crs
-lib/arch/CArchNetworkBSD.cpp
-
-Changed O_NDELAY to O_NONBLOCK. On some versions of Unix, read
-return 0 when O_NDELAY is set and there is nothing to read. We
-want the O_NONBLOCK behavior where read returns -1 and sets
-errno to EAGAIN when there is nothing to read.
-
-----------
-2004/06/10 19:42:01 crs
-lib/common/Makefile.am
-
-Added OS X precompiled header file for XCode compiles.
-
-----------
-2004/06/10 19:39:07 crs
-cmd/launcher/CAutoStart.cpp
-
-Removed dependency of service on Browser. Browser isn't always
-available and, if it's not, synergy won't start. Users may have
-to use an IP server address instead of a hostname since the
-service may start before the service that resolves hostnames.
-If I knew what that service was I'd depend on it instead.
-
-----------
-2004/06/10 19:32:40 crs
-configure.in
-lib/common/Version.h
-
-Changed version to 1.1.7.
-
-----------
-2004/06/07 21:06:49 crs
-lib/platform/CXWindowsEventQueueBuffer.cpp
-
-Failed to reset flag in X11 event queue buffer and that could cause
-multiple threads to access the X display connection simultaneously
-which causes synergy to die.
-
-----------
-2004/05/26 19:23:32 crs
-lib/common/MacOSXPrecomp.h
-lib/common/common.h
-lib/platform/COSXClipboardTextConverter.cpp
-lib/platform/COSXClipboardTextConverter.h
-lib/platform/COSXEventQueueBuffer.cpp
-lib/platform/COSXKeyState.cpp
-lib/platform/COSXKeyState.h
-lib/platform/COSXScreen.cpp
-lib/platform/COSXScreen.h
-synergy.xcode/project.pbxproj
-
-Merged Bertrand's OS X changes. Also added support for mouse wheel
-on OS X server.
-
-----------
-2004/05/18 20:32:13 crs
-lib/platform/CMSWindowsScreen.cpp
-
-If the server manages to detect ctrl+alt+del it will no longer send
-that to the client. If it did then the user could see the effect of
-ctrl+alt+del on both the server and client which we never want. The
-user can use ctrl+alt+pause to emulate ctrl+alt+del on the client.
-
-----------
-2004/05/18 20:26:48 crs
-lib/platform/CXWindowsEventQueueBuffer.cpp
-lib/platform/CXWindowsEventQueueBuffer.h
-
-Fixed bug that could allow multiple threads to simultaneously access
-the X11 display connection. The only problematic method was
-CXWindowsEventQueueBuffer::addEvent given that the other event queue
-methods are only called from the main thread.
-
-----------
-2004/05/17 21:55:55 crs
-cmd/synergyc/synergyc.cpp
-
-Fixed logging of connection to server. Was DEBUG now NOTE.
-
-----------
-2004/05/17 21:55:38 crs
-lib/platform/CMSWindowsKeyState.cpp
-
-Fixed ctrl+alt+del emulation on win32 server. It was mapping
-VK_DELETE to the keypad delete key. This key is not interpreted
-on the client as causing ctrl+alt+del.
-
-----------
-2004/05/16 18:04:36 crs
-lib/client/CServerProxy.cpp
-lib/server/CClientProxy1_0.cpp
-lib/synergy/ProtocolTypes.h
-
-Fixed handling of screen resolution changes.
-
-----------
-2004/05/16 18:03:36 crs
-cmd/launcher/CAutoStart.cpp
-
-Changed (win NT) service to depend on the 'Browser' service to
-ensure correct startup order.
-
-----------
-2004/05/16 18:02:49 crs
-all.dsp
-cmd/exec.dsp
-cmd/launcher/launcher.dsp
-cmd/synergyc/synergyc.dsp
-cmd/synergys/synergys.dsp
-dist/nullsoft/installer.dsp
-dist/nullsoft/synergy.nsi
-lib/arch/arch.dsp
-lib/base/base.dsp
-lib/client/client.dsp
-lib/common/common.dsp
-lib/io/io.dsp
-lib/mt/mt.dsp
-lib/net/net.dsp
-lib/platform/makehook.dsp
-lib/platform/platform.dsp
-lib/platform/synrgyhk.dsp
-lib/server/server.dsp
-lib/synergy/libsynergy.dsp
-
-Changed VC++ projects to put release targets in ./build, debug
-targets in ./debug, and intermediate files under ./gen.
-
-----------
-2004/05/15 19:44:05 crs
-configure.in
-lib/common/Version.h
-
-Changed version to 1.1.6.
-
-----------
-2004/05/15 19:43:33 crs
-lib/platform/CMSWindowsScreen.cpp
-
-Avoided duplicate logging of screen size on win32.
-
-----------
-2004/05/15 19:41:46 crs
-Makefile.am
-configure.in
-lib/common/common.h
-lib/platform/COSXClipboard.cpp
-lib/platform/COSXClipboard.h
-lib/platform/COSXClipboardAnyTextConverter.cpp
-lib/platform/COSXClipboardAnyTextConverter.h
-lib/platform/COSXClipboardTextConverter.cpp
-lib/platform/COSXClipboardTextConverter.h
-lib/platform/COSXClipboardUTF16Converter.cpp
-lib/platform/COSXClipboardUTF16Converter.h
-lib/platform/COSXEventQueueBuffer.cpp
-lib/platform/COSXEventQueueBuffer.h
-lib/platform/COSXScreen.cpp
-lib/platform/COSXScreen.h
-lib/platform/Makefile.am
-synergy.xcode/project.pbxproj
-
-Added bertrand landry hetu's mac OS X port to date.
-
-----------
-2004/05/12 20:28:00 crs
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreen.h
-
-Now restoring input focus when entering the screen to the window
-that had the focus when the screen was left.
-
-----------
-2004/05/12 19:50:58 crs
-lib/arch/CArchNetworkBSD.cpp
-lib/arch/CArchNetworkWinsock.cpp
-
-Fixed thread reference leak in network code.
-
-----------
-2004/05/12 19:12:28 crs
-configure.in
-
-Added configure option to enable debug builds. If not enabled then
-asserts are disabled.
-
-----------
-2004/05/12 18:54:03 crs
-lib/platform/CXWindowsClipboardBMPConverter.cpp
-
-Fixed build error in gcc 3.3.
-
-----------
-2004/05/26 19:23:32 crs
-lib/common/MacOSXPrecomp.h
-lib/common/common.h
-lib/platform/COSXClipboardTextConverter.cpp
-lib/platform/COSXClipboardTextConverter.h
-lib/platform/COSXEventQueueBuffer.cpp
-lib/platform/COSXKeyState.cpp
-lib/platform/COSXKeyState.h
-lib/platform/COSXScreen.cpp
-lib/platform/COSXScreen.h
-synergy.xcode/project.pbxproj
-
-Merged Bertrand's OS X changes. Also added support for mouse wheel
-on OS X server.
-
-----------
-2004/05/18 20:32:13 crs
-lib/platform/CMSWindowsScreen.cpp
-
-If the server manages to detect ctrl+alt+del it will no longer send
-that to the client. If it did then the user could see the effect of
-ctrl+alt+del on both the server and client which we never want. The
-user can use ctrl+alt+pause to emulate ctrl+alt+del on the client.
-
-----------
-2004/05/18 20:26:48 crs
-lib/platform/CXWindowsEventQueueBuffer.cpp
-lib/platform/CXWindowsEventQueueBuffer.h
-
-Fixed bug that could allow multiple threads to simultaneously access
-the X11 display connection. The only problematic method was
-CXWindowsEventQueueBuffer::addEvent given that the other event queue
-methods are only called from the main thread.
-
-----------
-2004/05/17 21:55:55 crs
-cmd/synergyc/synergyc.cpp
-
-Fixed logging of connection to server. Was DEBUG now NOTE.
-
-----------
-2004/05/17 21:55:38 crs
-lib/platform/CMSWindowsKeyState.cpp
-
-Fixed ctrl+alt+del emulation on win32 server. It was mapping
-VK_DELETE to the keypad delete key. This key is not interpreted
-on the client as causing ctrl+alt+del.
-
-----------
-2004/05/16 18:04:36 crs
-lib/client/CServerProxy.cpp
-lib/server/CClientProxy1_0.cpp
-lib/synergy/ProtocolTypes.h
-
-Fixed handling of screen resolution changes.
-
-----------
-2004/05/16 18:03:36 crs
-cmd/launcher/CAutoStart.cpp
-
-Changed (win NT) service to depend on the 'Browser' service to
-ensure correct startup order.
-
-----------
-2004/05/16 18:02:49 crs
-all.dsp
-cmd/exec.dsp
-cmd/launcher/launcher.dsp
-cmd/synergyc/synergyc.dsp
-cmd/synergys/synergys.dsp
-dist/nullsoft/installer.dsp
-dist/nullsoft/synergy.nsi
-lib/arch/arch.dsp
-lib/base/base.dsp
-lib/client/client.dsp
-lib/common/common.dsp
-lib/io/io.dsp
-lib/mt/mt.dsp
-lib/net/net.dsp
-lib/platform/makehook.dsp
-lib/platform/platform.dsp
-lib/platform/synrgyhk.dsp
-lib/server/server.dsp
-lib/synergy/libsynergy.dsp
-
-Changed VC++ projects to put release targets in ./build, debug
-targets in ./debug, and intermediate files under ./gen.
-
-----------
-2004/05/15 19:44:05 crs
-configure.in
-lib/common/Version.h
-
-Changed version to 1.1.6.
-
-----------
-2004/05/15 19:43:33 crs
-lib/platform/CMSWindowsScreen.cpp
-
-Avoided duplicate logging of screen size on win32.
-
-----------
-2004/05/15 19:41:46 crs
-Makefile.am
-configure.in
-lib/common/common.h
-lib/platform/COSXClipboard.cpp
-lib/platform/COSXClipboard.h
-lib/platform/COSXClipboardAnyTextConverter.cpp
-lib/platform/COSXClipboardAnyTextConverter.h
-lib/platform/COSXClipboardTextConverter.cpp
-lib/platform/COSXClipboardTextConverter.h
-lib/platform/COSXClipboardUTF16Converter.cpp
-lib/platform/COSXClipboardUTF16Converter.h
-lib/platform/COSXEventQueueBuffer.cpp
-lib/platform/COSXEventQueueBuffer.h
-lib/platform/COSXScreen.cpp
-lib/platform/COSXScreen.h
-lib/platform/Makefile.am
-synergy.xcode/project.pbxproj
-
-Added bertrand landry hetu's mac OS X port to date.
-
-----------
-2004/05/12 20:28:00 crs
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreen.h
-
-Now restoring input focus when entering the screen to the window
-that had the focus when the screen was left.
-
-----------
-2004/05/12 19:50:58 crs
-lib/arch/CArchNetworkBSD.cpp
-lib/arch/CArchNetworkWinsock.cpp
-
-Fixed thread reference leak in network code.
-
-----------
-2004/05/12 19:12:28 crs
-configure.in
-
-Added configure option to enable debug builds. If not enabled then
-asserts are disabled.
-
-----------
-2004/05/12 18:54:03 crs
-lib/platform/CXWindowsClipboardBMPConverter.cpp
-
-Fixed build error in gcc 3.3.
-
-----------
-2004/05/04 20:45:06 crs
-cmd/launcher/CGlobalOptions.cpp
-cmd/launcher/launcher.rc
-cmd/launcher/resource.h
-
-Added GUI for relative mouse moves option on win32.
-
-----------
-2004/05/04 19:44:51 crs
-configure.in
-
-Configured default mac to build for X windows instead of the incomplete
-carbon implementation.
-
-----------
-2004/05/04 19:37:46 crs
-lib/net/CTCPSocket.cpp
-
-Fixed bug in TCP socket that caused a busy loop in the socket
-multiplexer. That caused a lock up on windows when quitting
-the server with a client connected.
-
-----------
-2004/05/03 21:14:01 crs
-lib/platform/CXWindowsClipboardAnyBitmapConverter.cpp
-lib/platform/CXWindowsClipboardBMPConverter.cpp
-
-Fixed X11 BMP and other bitmap conversion. Had data alignment
-problems.
-
-----------
-2004/05/02 21:31:19 crs
-lib/base/CUnicode.cpp
-lib/platform/CXWindowsClipboard.cpp
-lib/platform/CXWindowsClipboardAnyBitmapConverter.cpp
-lib/platform/CXWindowsClipboardAnyBitmapConverter.h
-lib/platform/CXWindowsClipboardBMPConverter.cpp
-lib/platform/CXWindowsClipboardBMPConverter.h
-lib/platform/CXWindowsClipboardHTMLConverter.cpp
-lib/platform/CXWindowsClipboardHTMLConverter.h
-lib/platform/Makefile.am
-lib/synergy/IClipboard.h
-
-Added image/bmp and text/html support to X11.
-
-----------
-2004/05/02 16:13:11 crs
-lib/platform/COSXScreen.cpp
-lib/platform/COSXScreen.h
-
-Relative mouse motion for OS X.
-
-----------
-2004/05/02 16:06:04 crs
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-
-Used MouseKeys accessibility function to show the mouse cursor
-on a secondary screen when there's no physical mouse attached to
-the system. Kinda flaky when a mouse is attached or detached but
-seems to work well enough when the device is not attached to start
-with and not attached while running synergy.
-
-----------
-2004/05/02 16:01:59 crs
-cmd/launcher/CAutoStart.cpp
-lib/arch/CArch.cpp
-lib/arch/CArch.h
-lib/arch/CArchDaemonNone.cpp
-lib/arch/CArchDaemonNone.h
-lib/arch/CArchDaemonWindows.cpp
-lib/arch/CArchDaemonWindows.h
-lib/arch/IArchDaemon.h
-
-Added support for daemon startup dependencies. Made synergy
-dependent on NetBT, which I hope is right.
-
-----------
-2004/05/02 16:00:45 crs
-lib/synergy/IClipboard.h
-
-Fixed comment about canonical bitmap clipboard format.
-
-----------
-2004/05/02 08:04:48 crs
-lib/platform/CMSWindowsClipboard.cpp
-lib/platform/CMSWindowsClipboardBitmapConverter.cpp
-lib/platform/CMSWindowsClipboardBitmapConverter.h
-lib/platform/CMSWindowsClipboardHTMLConverter.cpp
-lib/platform/CMSWindowsClipboardHTMLConverter.h
-lib/platform/platform.dsp
-lib/server/server.dsp
-lib/synergy/IClipboard.h
-
-Added win32 clipboard support for images and HTML. Still need X11
-support.
-
-----------
-2004/05/02 08:04:15 crs
-lib/platform/CMSWindowsDesks.cpp
-lib/platform/CMSWindowsDesks.h
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-
-Added relative mouse move support to win32.
-
-----------
-2004/05/02 08:03:49 crs
-lib/client/CServerProxy.cpp
-lib/client/CServerProxy.h
-
-Forgot to change the client to handle relative moves.
-
-----------
-2004/05/01 16:10:09 crs
-lib/platform/CXWindowsClipboard.cpp
-lib/platform/CXWindowsUtil.cpp
-lib/platform/CXWindowsUtil.h
-
-X11 clipboard logging now also prints atom names, not just numbers.
-
-----------
-2004/05/01 15:19:53 crs
-lib/server/CClientProxy1_2.cpp
-lib/server/CClientProxy1_2.h
-
-Added files forgotten in previous checkin.
-
-----------
-2004/05/01 15:18:59 crs
-lib/client/CClient.cpp
-lib/client/CClient.h
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreen.h
-lib/server/CClientProxy.h
-lib/server/CClientProxy1_0.cpp
-lib/server/CClientProxy1_0.h
-lib/server/CClientProxyUnknown.cpp
-lib/server/CConfig.cpp
-lib/server/CPrimaryClient.cpp
-lib/server/CPrimaryClient.h
-lib/server/CServer.cpp
-lib/server/CServer.h
-lib/server/Makefile.am
-lib/synergy/CPlatformScreen.h
-lib/synergy/CScreen.cpp
-lib/synergy/CScreen.h
-lib/synergy/IClient.h
-lib/synergy/IPlatformScreen.h
-lib/synergy/ISecondaryScreen.h
-lib/synergy/OptionTypes.h
-lib/synergy/ProtocolTypes.h
-
-Added support for a global relative mouse motion option. When true
-and on a secondary screen and locked to the screen (via scroll lock)
-mouse motion is sent as motion deltas. When true and scroll lock
-is toggled off the mouse is warped to the secondary screen's center
-so the server knows where it is. This option is intended to support
-games and other programs that repeatedly warp the mouse to the center
-of the screen. This change adds general and X11 support but not
-win32. The option name is "relativeMouseMoves".
-
-----------
-2004/05/01 12:11:28 crs
-configure.in
-lib/arch/CArchNetworkBSD.cpp
-lib/common/common.h
-
-Better fixes for compiling on FreeBSD and OpenBSD.
-
-----------
-2004/05/01 11:01:40 crs
-lib/arch/CArchNetworkBSD.cpp
-lib/arch/CArchNetworkBSD.h
-lib/common/common.h
-
-Fixes for FreeBSD.
-
-----------
-2004/05/01 10:12:06 crs
-acinclude.m4
-configure.in
-lib/arch/CArchNetworkBSD.cpp
-lib/platform/CXWindowsScreenSaver.cpp
-
-Fixes to compile on solaris 9 using g++.
-
-----------
-2004/05/01 08:56:24 crs
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-
-Fixed regression where cursor wasn't locked to screen when a mouse
-button is down on win32.
-
-----------
-2004/05/01 08:54:42 crs
-lib/arch/CMultibyte.cpp
-
-Fixed type cast warnings.
-
-----------
-2004/04/13 19:39:04 crs
-configure.in
-lib/arch/CArch.cpp
-lib/arch/CArch.h
-lib/arch/CArchStringUnix.cpp
-lib/arch/CArchStringUnix.h
-lib/arch/CArchStringWindows.cpp
-lib/arch/CArchStringWindows.h
-lib/arch/CMultibyte.cpp
-lib/arch/CMultibyteEmu.cpp
-lib/arch/CMultibyteOS.cpp
-lib/arch/IArchString.h
-lib/arch/Makefile.am
-lib/arch/arch.dsp
-lib/base/CUnicode.cpp
-
-Removed use of mbrtowc, wcrtomb, and mbsinit. Many platforms
-didn't support them and the emulated versions were just as good
-except for a performance problem with excessive locking and
-unlocking of a mutex. So this also changes IArchString to
-provide string rather than character conversion so we can lock
-the mutex once per string rather than once per character.
-
-----------
-2004/04/11 20:01:18 crs
-cmd/launcher/Makefile.am
-
-Oops, broke build in launcher on non-win32 platforms.
-
-----------
-2004/04/11 19:43:16 crs
-cmd/launcher/Makefile.am
-lib/platform/Makefile.am
-
-More changes for MSYS/MinGW builds. Added makefile for launcher.
-Still need hook library and resource compiling.
-
-----------
-2004/04/11 19:15:09 crs
-cmd/launcher/launcher.rc
-cmd/synergyc/synergyc.rc
-cmd/synergys/synergys.cpp
-cmd/synergys/synergys.rc
-configure.in
-lib/arch/CArchDaemonWindows.cpp
-lib/arch/CArchMultithreadWindows.cpp
-lib/arch/CArchNetworkWinsock.cpp
-lib/arch/CArchStringWindows.cpp
-lib/arch/CArchTaskBarWindows.cpp
-lib/arch/CMultibyte.cpp
-lib/arch/XArchWindows.cpp
-lib/arch/arch.dsp
-lib/common/common.h
-lib/platform/CMSWindowsDesks.cpp
-lib/platform/CMSWindowsKeyState.cpp
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreenSaver.cpp
-lib/platform/CSynergyHook.cpp
-lib/synergy/CProtocolUtil.cpp
-
-Preliminary support for MSYS/MinGW builds. Doesn't yet build
-CSynergyHook as a DLL and does not compile or link in the
-resources for the binaries.
-
-----------
-2004/04/11 14:58:08 crs
-PORTING
-cmd/synergyc/COSXClientTaskBarReceiver.cpp
-cmd/synergyc/COSXClientTaskBarReceiver.h
-cmd/synergyc/Makefile.am
-cmd/synergyc/synergyc.cpp
-cmd/synergys/COSXServerTaskBarReceiver.cpp
-cmd/synergys/COSXServerTaskBarReceiver.h
-cmd/synergys/Makefile.am
-cmd/synergys/synergys.cpp
-configure.in
-lib/arch/CArch.cpp
-lib/arch/CArchDaemonUnix.cpp
-lib/arch/CArchFileUnix.cpp
-lib/arch/CArchImpl.cpp
-lib/arch/CArchNetworkBSD.cpp
-lib/arch/CMultibyte.cpp
-lib/arch/CMultibyteOS.cpp
-lib/arch/Makefile.am
-lib/arch/vsnprintf.cpp
-lib/base/CPriorityQueue.h
-lib/common/BasicTypes.h
-lib/common/common.h
-lib/platform/COSXClipboard.cpp
-lib/platform/COSXClipboard.h
-lib/platform/COSXEventQueueBuffer.cpp
-lib/platform/COSXEventQueueBuffer.h
-lib/platform/COSXKeyState.cpp
-lib/platform/COSXKeyState.h
-lib/platform/COSXScreen.cpp
-lib/platform/COSXScreen.h
-lib/platform/COSXScreenSaver.cpp
-lib/platform/COSXScreenSaver.h
-lib/platform/CSynergyHook.h
-lib/platform/CXWindowsEventQueueBuffer.cpp
-lib/platform/CXWindowsScreen.cpp
-lib/platform/Makefile.am
-
-Updates to support OS X. This improves support for building on
-multiple systems with automake, with X Windows and Carbon window
-system APIs supported. It's also a starting port for supporting
-win32 builds using mingw. OS X support is incomplete; the tree
-will compile and link but the binaries will not function.
-
-----------
-2004/04/06 22:09:38 crs
-lib/arch/CArchMultithreadPosix.cpp
-
-Added missing initialization of mutex attribute call.
-
-----------
-2004/04/05 21:23:44 crs
-lib/server/CServer.cpp
-
-Fixed bug in handling rejection of screen with name that's already
-in use. The client was being correctly rejected but the already
-connected client was being forcefully disconnected too because the
-client to disconnect was found by looking up the client by name.
-We now instead look up the client by IClient*.
-
-----------
-2004/04/05 21:10:06 crs
-lib/platform/CSynergyHook.cpp
-lib/server/CServer.cpp
-lib/server/CServer.h
-
-Added workaround for win32 low-level mouse hook position weirdness.
-The low-level hook can report mouse positions outside the boundaries
-of the screen and bogus retrograde motion. This messes up switch on
-double tap. This change attempts to detect and suppress the bogus
-events.
-
-----------
-2004/04/05 21:08:49 crs
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-
-Made hook debug logging print at DEBUG1 rather than INFO level.
-
-----------
-2004/04/04 12:12:32 crs
-Makefile.am
-cmd/Makefile.am
-cmd/launcher/Makefile.am
-cmd/synergyc/Makefile.am
-cmd/synergys/Makefile.am
-dist/Makefile.am
-dist/nullsoft/Makefile.am
-dist/rpm/Makefile.am
-lib/Makefile.am
-lib/arch/Makefile.am
-lib/base/Makefile.am
-lib/client/Makefile.am
-lib/common/Makefile.am
-lib/io/Makefile.am
-lib/mt/Makefile.am
-lib/net/Makefile.am
-lib/platform/Makefile.am
-lib/server/Makefile.am
-lib/synergy/Makefile.am
-
-Removed DEPTH, VDEPTH, and VPATH from makefiles.
-
-----------
-2004/04/04 12:12:30 crs
-configure.in
-lib/common/Version.h
-
-Changed version to 1.1.5.
-
-----------
-2004/03/31 22:30:49 crs
-dist/nullsoft/synergy.nsi
-
-Minor win32 installer tweaks.
-
-----------
-2004/03/31 22:15:13 crs
-lib/arch/CArchTaskBarWindows.cpp
-lib/arch/CArchTaskBarWindows.h
-lib/arch/IArchTaskBar.h
-
-Reverted task bar code to 1.0.15 version. That used a window in
-its own thread for handling messages. It seems to fix most of
-the task bar bugs but there's still an hourglass cursor on NT
-when using the popup menu.
-
-----------
-2004/03/31 22:14:15 crs
-lib/arch/CArchNetworkWinsock.cpp
-
-Fixed lookup of hosts by name on win32.
-
-----------
-2004/03/31 22:14:01 crs
-cmd/launcher/launcher.rc
-
-Make screen drop down lists longer in the launcher. They're now
-long enough for the scroll bar to show up properly (with the
-thumb) and they have enough space for 6 screens without needing
-the scroll bar.
-
-----------
-2004/03/31 22:12:53 crs
-lib/server/CServer.cpp
-
-Fixed failure to initialize double tap and wait to switch timeouts.
-
-----------
-2004/03/30 18:55:58 crs
-lib/synergy/CKeyState.cpp
-
-Fixed crash bug in CKeyState. Would deference bogus pointer in
-isModifierActive if there's an unmapped toggle modifier.
-
-----------
-2004/03/30 18:54:56 crs
-configure.in
-lib/common/Version.h
-
-Changed version to 1.1.4. This time changing the version before
-making any other changes.
-
-----------
-2004/03/28 14:53:01 crs
-lib/platform/CXWindowsKeyState.cpp
-
-Added ISO_Level3_Shift as a synonym for Mode_switch. I've no idea
-if this will work as hoped but I've seen documentation that XFree
-4.3 uses ISO_Level3_Shift rather than Mode_switch.
-
-----------
-2004/03/28 14:07:58 crs
-lib/platform/CMSWindowsDesks.cpp
-lib/platform/CMSWindowsKeyState.cpp
-lib/platform/CMSWindowsKeyState.h
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-lib/platform/CSynergyHook.cpp
-lib/platform/CSynergyHook.h
-lib/synergy/CKeyState.h
-
-Fixed keyboard handling on windows 95 family.
-
-----------
-2004/03/28 14:07:37 crs
-lib/platform/Makefile.am
-
-Updated makefile to reflect renaming of platform files for win32.
-
-----------
-2004/03/28 14:06:40 crs
-lib/platform/CMSWindowsScreenSaver.cpp
-
-Fixed windows 95 family screen saver stuff.
-
-----------
-2004/03/28 14:05:52 crs
-lib/client/CServerProxy.cpp
-
-Changed debug logging of key IDs to use hex.
-
-----------
-2004/03/28 14:05:31 crs
-cmd/launcher/CAutoStart.cpp
-cmd/launcher/launcher.rc
-cmd/launcher/resource.h
-lib/arch/CArchDaemonWindows.cpp
-
-Fixed bugs in installing per-user startup programs on windows 95
-family.
-
-----------
-2004/03/26 20:59:26 crs
-lib/platform/CMSWindowsDesks.cpp
-lib/platform/CMSWindowsDesks.h
-lib/platform/CMSWindowsDesktop.cpp
-lib/platform/CMSWindowsDesktop.h
-lib/platform/CMSWindowsKeyMapper.cpp
-lib/platform/CMSWindowsKeyMapper.h
-lib/platform/CMSWindowsKeyState.cpp
-lib/platform/CMSWindowsKeyState.h
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-lib/platform/CSynergyHook.cpp
-lib/platform/CXWindowsKeyState.cpp
-lib/platform/CXWindowsKeyState.h
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreen.h
-lib/platform/platform.dsp
-lib/server/CServer.cpp
-lib/server/CServer.h
-lib/synergy/CKeyState.cpp
-lib/synergy/CKeyState.h
-lib/synergy/CPlatformScreen.cpp
-lib/synergy/CPlatformScreen.h
-lib/synergy/CScreen.cpp
-lib/synergy/IKeyState.h
-lib/synergy/IPlatformScreen.h
-lib/synergy/ISecondaryScreen.h
-lib/synergy/libsynergy.dsp
-
-Converted win32 to new keyboard state tracking design. Also
-changed locking to screen so that keys no longer count (only
-mouse buttons and scroll lock toggled on). This is to deal
-with the unreliability of key event reporting which can leave
-us locked to a screen with no key physically pressed. The
-result of this is that clients get key repeats and releases
-without the corresponding key press. CKeyState handles this
-by discarding repeat/release events on keys it hasn't seen go
-down. Also made a few other minor fixes to win32 keyboard
-handling.
-
-----------
-2004/03/26 20:59:21 crs
-lib/arch/CArchMiscWindows.cpp
-
-Fixed handling of reading strings from the registry. This was
-broken when support for binary data was added. The terminating
-NUL was included in the string as a character (that's in addition
-to the terminating NUL added by std::string).
-
-----------
-2004/03/21 20:01:41 crs
-lib/client/CClient.cpp
-lib/platform/CXWindowsKeyMapper.cpp
-lib/platform/CXWindowsKeyMapper.h
-lib/platform/CXWindowsKeyState.cpp
-lib/platform/CXWindowsKeyState.h
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreen.h
-lib/platform/Makefile.am
-lib/server/CPrimaryClient.cpp
-lib/synergy/CKeyState.cpp
-lib/synergy/CKeyState.h
-lib/synergy/CPlatformScreen.cpp
-lib/synergy/CPlatformScreen.h
-lib/synergy/CScreen.cpp
-lib/synergy/CScreen.h
-lib/synergy/IKeyState.cpp
-lib/synergy/IKeyState.h
-lib/synergy/IPlatformScreen.h
-lib/synergy/IPrimaryScreen.cpp
-lib/synergy/IPrimaryScreen.h
-lib/synergy/ISecondaryScreen.h
-lib/synergy/Makefile.am
-
-Checkpoint. Converted X11 to new keyboard state tracking design.
-This new design is simpler. For keyboard support, clients need only
-implement 4 virtual methods on a class derived from CKeyState and
-one trivial method in the class derived from CPlatformScreen, which
-is now the superclass of platform screens instead of IPlatformScreen.
-Keyboard methods have been removed from IPlatformScreen, IPrimaryScreen
-and ISecondaryScreen. Also, all keyboard state tracking is now in
-exactly one place (the CKeyState subclass) rather than in CScreen,
-the platform screen, and the key mapper. Still need to convert Win32.
-
-----------
-2004/03/17 20:59:25 crs
-lib/platform/CMSWindowsKeyMapper.cpp
-lib/platform/CMSWindowsKeyMapper.h
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-lib/synergy/CScreen.cpp
-lib/synergy/CScreen.h
-lib/synergy/IKeyState.h
-lib/synergy/libsynergy.dsp
-
-Updated keyboard handling on win32. Still needs some work to
-avoid shadowing key state in multiple places. Also got locked
-to screen and reported key appeared to be wrong.
-
-----------
-2004/03/14 17:55:53 crs
-lib/platform/CXWindowsKeyMapper.cpp
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreen.h
-lib/synergy/CScreen.cpp
-lib/synergy/CScreen.h
-lib/synergy/IKeyState.h
-lib/synergy/IPlatformScreen.cpp
-lib/synergy/IPlatformScreen.h
-lib/synergy/IPrimaryScreen.cpp
-lib/synergy/IPrimaryScreen.h
-lib/synergy/Makefile.am
-
-Changed how key state is tracked on X11. Now updating key state
-on every key press and release so we don't have to updateKeys()
-in isLockedToScreen(). However, if any key appears to be down
-we still call updateKeys() to double check that it's really down.
-If not we note the spurious lock and don't lock to the screen.
-
-----------
-2004/03/14 17:50:37 crs
-lib/io/IStream.h
-
-Fixed doxygen formatting error.
-
-----------
-2004/03/13 19:01:27 crs
-lib/platform/CMSWindowsScreen.cpp
-
-Improved handling of active window on win32. Synergy no longer
-takes activation so the previously active window doesn't pop to
-the top of the window stack when it regains activation. One
-drawback of this is that the mouse cursor isn't shown when
-a window (other than synergy's) is activated. However, synergy
-does detect mouse motion as before and shows the cursor when it
-sees any.
-
-----------
-2004/03/13 18:58:20 crs
-lib/platform/CMSWindowsScreen.h
-
-Fixed error in previous submit.
-
-----------
-2004/03/13 17:16:24 crs
-lib/client/CClient.cpp
-lib/client/CClient.h
-lib/client/CServerProxy.cpp
-lib/client/CServerProxy.h
-
-Fixed handling of handshake complete. Was posting an event for it
-but making direct calls for other messages from the server. This
-could cause messages to be handled out of order. Now making a
-direct call for handshake complete.
-
-----------
-2004/03/13 17:14:32 crs
-lib/platform/CMSWindowsEventQueueBuffer.cpp
-
-Fixed win32 taskbar icon event handling. Wasn't responding to
-messages sent via SendMessage (rather than PostMessage).
-
-----------
-2004/03/13 17:13:55 crs
-cmd/synergyc/resource.h
-cmd/synergyc/synergyc.cpp
-cmd/synergys/synergys.cpp
-lib/arch/CArchMiscWindows.cpp
-lib/arch/CArchMiscWindows.h
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-lib/platform/CMSWindowsScreenSaver.cpp
-lib/platform/CMSWindowsScreenSaver.h
-
-Added win32 support for power management.
-
-----------
-2004/03/10 22:03:01 crs
-configure.in
-lib/platform/CXWindowsScreenSaver.cpp
-lib/platform/CXWindowsScreenSaver.h
-
-Added support for DPMS in X11 screen saver. DPMS is the extension
-that allows you to power down the display. Previously, synergy
-would not power on the display if DPMS was enabled and activated
-and xscreensaver was not running. It also wouldn't disable DPMS
-so the display would power down normally on a synergy client if
-there was no input activity.
-
-----------
-2004/03/10 20:35:03 crs
-acinclude.m4
-lib/arch/CArchNetworkBSD.cpp
-
-Added check for inet_aton and a simple implementation for platforms
-that are missing it.
-
-----------
-2004/03/08 21:18:36 crs
-configure.in
-lib/platform/CXWindowsKeyMapper.cpp
-
-Removed dependency on X11/XF86keysym.h. There are several versions
-of that file in existance, not all of which have all the symbols we
-require and none of which provide any convenient means of telling
-what groups of symbols they define.
-
-----------
-2004/03/08 20:53:32 crs
-lib/platform/CMSWindowsKeyMapper.cpp
-lib/platform/CMSWindowsKeyMapper.h
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-lib/platform/CSynergyHook.cpp
-lib/server/CServer.cpp
-
-Win32 fixes. Fixed slightly off cursor positioning when using
-absolute mouse_event(). Improved keyboard handling: now using
-keyboard layout of last foreground window when leaving server
-so users can meaningfully choose the locale, moved dead key
-handling into hook library so there should be no more race
-conditions involving the keyboard dead key buffer, simplified
-keyboard and cursor handling by using a full screen transparent
-window when not using low level hooks, fixed error in restoring
-buffered dead key when checking for dead keys. This hopefully
-fixes all known keyboard bugs on win32.
-
-----------
-2004/03/08 20:45:53 crs
-lib/arch/CArchNetworkBSD.cpp
-lib/arch/CArchNetworkBSD.h
-
-Typecasting fix to compile on old solaris.
-
-----------
-2004/03/06 16:20:08 crs
-lib/platform/CXWindowsScreen.cpp
-lib/server/CServer.cpp
-
-Server now disables jump zones when scroll lock is active.
-
-----------
-2004/02/29 21:34:30 crs
-lib/platform/CMSWindowsEventQueueBuffer.cpp
-
-Fixed processing of events. Was waking up on a sent (rather than
-posted) message but then blocking in GetMessage() which handles
-the sent message directly. No longer blocking on sent messages.
-
-----------
-2004/02/29 21:33:20 crs
-lib/arch/CArchNetworkWinsock.cpp
-
-Fixed handling of winsock connect event. Was always immediately
-indicating socket had connected.
-
-----------
-2004/02/29 21:32:00 crs
-lib/platform/CMSWindowsScreen.cpp
-
-Fixed cursor hiding on win32. Still fails occassionally.
-
-----------
-2004/02/29 21:31:24 crs
-cmd/synergys/CMSWindowsServerTaskBarReceiver.cpp
-cmd/synergys/resource.h
-cmd/synergys/synergys.cpp
-cmd/synergys/synergys.rc
-
-Added reload configuration menu item to win32 task bar.
-
-----------
-2004/02/29 17:36:32 crs
-lib/arch/IArchMultithread.h
-
-Fixed comment.
-
-----------
-2004/02/29 17:29:01 crs
-lib/arch/CArchMultithreadWindows.h
-
-Switched to doxygen comments.
-
-----------
-2004/02/29 17:28:51 crs
-lib/client/CClient.cpp
-lib/client/CClient.h
-lib/server/CClientProxy.cpp
-lib/server/CClientProxy.h
-lib/server/CServer.cpp
-lib/synergy/IScreen.cpp
-lib/synergy/IScreen.h
-
-Moved clipboard changed event to CClientProxy because only it
-and CServer use it. CServerProxy instead makes a direct call
-to CClient, like it does for most other messages.
-
-----------
-2004/02/29 16:48:22 crs
-lib/arch/CArchMultithreadPosix.cpp
-lib/arch/CArchMultithreadPosix.h
-lib/arch/CArchNetworkBSD.cpp
-lib/arch/CArchNetworkBSD.h
-
-Fixed BSD unblockPollSocket(). Was signaling to break out of
-poll() but there was a race condition where the thread trying
-to unblock poll() could send the signal before the polling
-thread had entered poll(). Now using a pipe and polling on
-that and the client's sockets, and just writing a byte into
-the pipe to unblock poll. This persists until the next call
-to poll() so we might force poll() to return once unnecessarily
-but that's not a problem. This change makes the BSD code
-similar to the winsock code, which uses a winsock event instead
-of a pipe.
-
-----------
-2004/02/29 16:11:17 crs
-lib/arch/CArch.cpp
-lib/arch/CArch.h
-lib/arch/CArchNetworkBSD.cpp
-lib/arch/CArchNetworkBSD.h
-lib/arch/CArchNetworkWinsock.cpp
-lib/arch/CArchNetworkWinsock.h
-lib/arch/IArchNetwork.h
-lib/arch/XArch.h
-lib/net/CTCPListenSocket.cpp
-lib/net/CTCPSocket.cpp
-
-Made all arch sockets non-blocking.
-
-----------
-2004/02/28 17:51:55 crs
-cmd/synergyc/synergyc.cpp
-cmd/synergys/synergys.cpp
-
-Enabled running at high priority on windows.
-
-----------
-2004/02/28 17:49:29 crs
-cmd/synergyc/synergyc.cpp
-cmd/synergys/synergys.cpp
-lib/arch/CArch.cpp
-lib/arch/CArch.h
-lib/arch/CArchConsoleWindows.cpp
-lib/arch/CArchMultithreadPosix.cpp
-lib/arch/CArchMultithreadPosix.h
-lib/arch/CArchMultithreadWindows.cpp
-lib/arch/CArchMultithreadWindows.h
-lib/arch/IArchMultithread.h
-lib/base/CEventQueue.cpp
-
-Generalized signal handling. Now handling SIGHUP in addition
-to SIGINT and SIGTERM. Setup SIGHUP to reload the server's
-configuration.
-
-----------
-2004/02/28 16:06:00 crs
-lib/base/CLog.cpp
-
-Fixed incorrect accumulation of newlines in log.
-
-----------
-2004/02/28 16:00:54 crs
-lib/client/CServerProxy.cpp
-
-Now using first set options message as end of handshake.
-
-----------
-2004/02/28 12:30:52 crs
-lib/platform/CMSWindowsUtil.cpp
-lib/platform/CMSWindowsUtil.h
-
-Added missing files.
-
-----------
-2004/02/28 12:24:47 crs
-lib/common/Version.cpp
-
-Added missing file.
-
-----------
-2004/02/28 12:19:49 crs
-acinclude.m4
-cmd/launcher/LaunchUtil.cpp
-cmd/launcher/launcher.rc
-cmd/launcher/resource.h
-cmd/synergyc/CMSWindowsClientTaskBarReceiver.cpp
-cmd/synergyc/CMSWindowsClientTaskBarReceiver.h
-cmd/synergyc/CXWindowsClientTaskBarReceiver.cpp
-cmd/synergyc/CXWindowsClientTaskBarReceiver.h
-cmd/synergyc/Makefile.am
-cmd/synergyc/resource.h
-cmd/synergyc/synergyc.cpp
-cmd/synergyc/synergyc.rc
-cmd/synergys/CMSWindowsServerTaskBarReceiver.cpp
-cmd/synergys/CMSWindowsServerTaskBarReceiver.h
-cmd/synergys/CXWindowsServerTaskBarReceiver.cpp
-cmd/synergys/CXWindowsServerTaskBarReceiver.h
-cmd/synergys/Makefile.am
-cmd/synergys/resource.h
-cmd/synergys/synergys.cpp
-cmd/synergys/synergys.rc
-configure.in
-lib/arch/CArch.cpp
-lib/arch/CArch.h
-lib/arch/CArchConsoleWindows.cpp
-lib/arch/CArchDaemonWindows.cpp
-lib/arch/CArchDaemonWindows.h
-lib/arch/CArchMiscWindows.cpp
-lib/arch/CArchMiscWindows.h
-lib/arch/CArchMultithreadPosix.cpp
-lib/arch/CArchMultithreadPosix.h
-lib/arch/CArchMultithreadWindows.cpp
-lib/arch/CArchMultithreadWindows.h
-lib/arch/CArchNetworkBSD.cpp
-lib/arch/CArchNetworkBSD.h
-lib/arch/CArchNetworkWinsock.cpp
-lib/arch/CArchNetworkWinsock.h
-lib/arch/CArchTaskBarWindows.cpp
-lib/arch/CArchTaskBarWindows.h
-lib/arch/IArchMultithread.h
-lib/arch/IArchNetwork.h
-lib/arch/arch.dsp
-lib/base/CEventQueue.cpp
-lib/base/CPriorityQueue.h
-lib/base/CSimpleEventQueueBuffer.cpp
-lib/client/CServerProxy.cpp
-lib/client/CServerProxy.h
-lib/common/Makefile.am
-lib/common/Version.h
-lib/common/common.dsp
-lib/mt/CThread.cpp
-lib/mt/CThread.h
-lib/net/CSocketMultiplexer.cpp
-lib/net/IDataSocket.cpp
-lib/net/IDataSocket.h
-lib/platform/CMSWindowsDesktop.h
-lib/platform/CMSWindowsEventQueueBuffer.cpp
-lib/platform/CMSWindowsEventQueueBuffer.h
-lib/platform/CMSWindowsKeyMapper.cpp
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-lib/platform/CSynergyHook.cpp
-lib/platform/CSynergyHook.h
-lib/platform/CXWindowsClipboard.cpp
-lib/platform/CXWindowsEventQueueBuffer.cpp
-lib/platform/CXWindowsKeyMapper.cpp
-lib/platform/CXWindowsScreen.cpp
-lib/platform/Makefile.am
-lib/platform/platform.dsp
-lib/server/CClientListener.cpp
-lib/server/CServer.cpp
-lib/synergy/CProtocolUtil.cpp
-lib/synergy/CProtocolUtil.h
-lib/synergy/CScreen.cpp
-lib/synergy/IScreen.h
-
-Merged Win32 updates. Added full warnings on g++. Fixed bug in
-client when handling server rejection.
-
-----------
-2004/02/15 18:12:35 crs
-lib/base/CFunctionEventJob.cpp
-lib/base/CJobList.cpp
-lib/base/CJobList.h
-lib/base/Makefile.am
-lib/base/base.dsp
-lib/io/io.dsp
-lib/mt/CTimerThread.cpp
-lib/mt/CTimerThread.h
-lib/mt/Makefile.am
-lib/mt/mt.dsp
-lib/net/net.dsp
-lib/platform/CMSWindowsEventQueueBuffer.cpp
-lib/platform/CMSWindowsEventQueueBuffer.h
-lib/platform/Makefile.am
-lib/platform/platform.dsp
-lib/server/server.dsp
-lib/synergy/libsynergy.dsp
-
-Updated Makefiles and win32 projects and removed dead classes.
-
-----------
-2004/02/15 17:32:11 crs
-cmd/synergyc/CClientTaskBarReceiver.cpp
-cmd/synergyc/CClientTaskBarReceiver.h
-cmd/synergyc/CXWindowsClientTaskBarReceiver.cpp
-cmd/synergyc/CXWindowsClientTaskBarReceiver.h
-cmd/synergyc/synergyc.cpp
-cmd/synergys/CServerTaskBarReceiver.cpp
-cmd/synergys/synergys.cpp
-lib/arch/CArchNetworkBSD.cpp
-lib/arch/XArch.h
-lib/base/CEvent.cpp
-lib/base/CEvent.h
-lib/client/CClient.cpp
-lib/client/CClient.h
-lib/client/CServerProxy.cpp
-lib/client/CServerProxy.h
-lib/io/CStreamFilter.cpp
-lib/net/CNetworkAddress.cpp
-lib/net/CTCPListenSocket.cpp
-lib/net/CTCPSocket.cpp
-lib/net/CTCPSocket.h
-lib/net/IDataSocket.h
-lib/net/XSocket.cpp
-lib/net/XSocket.h
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreen.h
-lib/server/CClientProxy.h
-lib/server/CClientProxy1_0.cpp
-lib/server/CClientProxy1_0.h
-lib/server/CConfig.cpp
-lib/server/CPrimaryClient.cpp
-lib/server/CPrimaryClient.h
-lib/server/CServer.cpp
-lib/synergy/CClipboard.cpp
-lib/synergy/CClipboard.h
-lib/synergy/CPacketStreamFilter.cpp
-lib/synergy/IClient.h
-lib/synergy/IClipboard.cpp
-lib/synergy/IClipboard.h
-lib/synergy/IPlatformScreen.cpp
-lib/synergy/IPlatformScreen.h
-lib/synergy/Makefile.am
-lib/synergy/ProtocolTypes.h
-
-Checkpoint. Conversion to event driven system complete for Unix.
-Still need to convert win32 platform specific files.
-
-----------
-2004/02/14 16:30:27 crs
-cmd/synergys/CServerTaskBarReceiver.cpp
-cmd/synergys/synergys.cpp
-lib/server/CPrimaryClient.cpp
-lib/server/CPrimaryClient.h
-
-Minor cleanup.
-
-----------
-2004/02/14 14:04:36 crs
-cmd/synergys/CServerTaskBarReceiver.cpp
-cmd/synergys/CServerTaskBarReceiver.h
-cmd/synergys/CXWindowsServerTaskBarReceiver.cpp
-cmd/synergys/CXWindowsServerTaskBarReceiver.h
-cmd/synergys/Makefile.am
-cmd/synergys/synergys.cpp
-lib/arch/CArch.cpp
-lib/arch/CArch.h
-lib/arch/CArchMultithreadPosix.cpp
-lib/arch/CArchNetworkBSD.cpp
-lib/arch/CArchNetworkBSD.h
-lib/arch/IArchNetwork.h
-lib/arch/vsnprintf.cpp
-lib/base/CEvent.cpp
-lib/base/CEvent.h
-lib/base/CEventQueue.cpp
-lib/base/CEventQueue.h
-lib/base/CSimpleEventQueueBuffer.cpp
-lib/base/CSimpleEventQueueBuffer.h
-lib/base/CStringUtil.cpp
-lib/base/IEventQueue.h
-lib/base/IEventQueueBuffer.h
-lib/io/IStream.cpp
-lib/net/CNetworkAddress.cpp
-lib/net/CNetworkAddress.h
-lib/net/CSocketMultiplexer.cpp
-lib/net/CTCPListenSocket.cpp
-lib/net/CTCPSocket.cpp
-lib/net/IDataSocket.cpp
-lib/net/IListenSocket.cpp
-lib/net/ISocket.cpp
-lib/platform/CXWindowsEventQueue.cpp
-lib/platform/CXWindowsEventQueue.h
-lib/platform/CXWindowsEventQueueBuffer.cpp
-lib/platform/CXWindowsEventQueueBuffer.h
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreen.h
-lib/platform/CXWindowsScreenSaver.cpp
-lib/platform/CXWindowsScreenSaver.h
-lib/platform/Makefile.am
-lib/server/CClientListener.cpp
-lib/server/CClientListener.h
-lib/server/CClientProxy.cpp
-lib/server/CClientProxy.h
-lib/server/CClientProxy1_0.cpp
-lib/server/CClientProxy1_0.h
-lib/server/CClientProxy1_1.cpp
-lib/server/CClientProxy1_1.h
-lib/server/CClientProxyUnknown.cpp
-lib/server/CClientProxyUnknown.h
-lib/server/CConfig.cpp
-lib/server/CPrimaryClient.cpp
-lib/server/CPrimaryClient.h
-lib/server/CServer.cpp
-lib/server/CServer.h
-lib/server/Makefile.am
-lib/synergy/CProtocolUtil.cpp
-lib/synergy/CScreen.cpp
-lib/synergy/CScreen.h
-lib/synergy/IClient.h
-lib/synergy/IPlatformScreen.cpp
-lib/synergy/IPlatformScreen.h
-lib/synergy/IPrimaryScreen.h
-lib/synergy/IPrimaryScreenReceiver.h
-lib/synergy/IScreen.cpp
-lib/synergy/IScreen.h
-lib/synergy/IScreenFactory.h
-lib/synergy/IScreenReceiver.h
-lib/synergy/IScreenSaver.h
-lib/synergy/IServer.h
-lib/synergy/Makefile.am
-
-Checkpoint. synergys now works. Still need to do lib/client and
-synergyc.
-
-----------
-2004/02/08 17:07:11 crs
-lib/base/CEventQueue.cpp
-lib/base/CEventQueue.h
-lib/base/CSimpleEventQueue.cpp
-lib/base/CSimpleEventQueue.h
-lib/base/IEventQueue.h
-lib/base/Makefile.am
-
-Refactored event queue. The event queue is now separated from the
-buffer that holds the events and generates system events. This
-allows us to switch in/out a platform specific event handler as
-necessary without losing our timers and handlers.
-
-----------
-2004/02/08 16:51:45 crs
-lib/net/CTCPSocket.cpp
-
-No longer sending incorrect disconnect events in read() and
-removed redundant sending of disconnect event in close().
-
-----------
-2004/02/01 21:09:22 crs
-cmd/synergys/synergys.cpp
-lib/arch/CArch.cpp
-lib/arch/CArch.h
-lib/arch/CArchMultithreadPosix.cpp
-lib/arch/CArchMultithreadPosix.h
-lib/arch/CArchNetworkBSD.cpp
-lib/arch/IArchMultithread.h
-lib/arch/XArch.h
-lib/base/CEventQueue.cpp
-lib/base/CEventQueue.h
-lib/base/IEventQueue.cpp
-lib/base/IEventQueue.h
-lib/base/Makefile.am
-lib/io/CBufferedInputStream.cpp
-lib/io/CBufferedInputStream.h
-lib/io/CBufferedOutputStream.cpp
-lib/io/CBufferedOutputStream.h
-lib/io/CInputStreamFilter.cpp
-lib/io/CInputStreamFilter.h
-lib/io/COutputStreamFilter.cpp
-lib/io/COutputStreamFilter.h
-lib/io/CStreamFilter.cpp
-lib/io/CStreamFilter.h
-lib/io/IInputStream.h
-lib/io/IOutputStream.h
-lib/io/IStream.cpp
-lib/io/IStream.h
-lib/io/IStreamFilterFactory.h
-lib/io/Makefile.am
-lib/io/XIO.cpp
-lib/io/XIO.h
-lib/net/CSocketMultiplexer.cpp
-lib/net/CSocketMultiplexer.h
-lib/net/CTCPListenSocket.cpp
-lib/net/CTCPListenSocket.h
-lib/net/CTCPSocket.cpp
-lib/net/CTCPSocket.h
-lib/net/IDataSocket.cpp
-lib/net/IDataSocket.h
-lib/net/IListenSocket.h
-lib/net/ISocket.h
-lib/net/ISocketMultiplexerJob.h
-lib/net/Makefile.am
-lib/net/TSocketMultiplexerMethodJob.h
-lib/server/CClientProxy.cpp
-lib/server/CClientProxy.h
-lib/server/CClientProxy1_0.cpp
-lib/server/CClientProxy1_0.h
-lib/server/CClientProxy1_1.cpp
-lib/server/CClientProxy1_1.h
-lib/server/CConfig.cpp
-lib/server/CConfig.h
-lib/server/CHTTPServer.cpp
-lib/server/CHTTPServer.h
-lib/server/CServer.cpp
-lib/server/CServer.h
-lib/server/Makefile.am
-lib/synergy/CInputPacketStream.cpp
-lib/synergy/CInputPacketStream.h
-lib/synergy/COutputPacketStream.cpp
-lib/synergy/COutputPacketStream.h
-lib/synergy/CPacketStreamFilter.cpp
-lib/synergy/CPacketStreamFilter.h
-lib/synergy/CProtocolUtil.cpp
-lib/synergy/CProtocolUtil.h
-lib/synergy/Makefile.am
-
-Checkpoint. Code does not run. Still converting over to new
-event loop model. Streams, stream filters, and sockets are
-converted. Client proxies are almost converted. CServer is
-in progress. Removed all HTTP code. Haven't converted the
-necessary win32 arch stuff.
-
-----------
-2004/02/01 20:56:52 crs
-cmd/launcher/launcher.dsp
-cmd/synergys/Makefile.am
-cmd/synergys/synergys.dsp
-configure.in
-lib/Makefile.am
-lib/http/CHTTPProtocol.cpp
-lib/http/CHTTPProtocol.h
-lib/http/Makefile.am
-lib/http/XHTTP.cpp
-lib/http/XHTTP.h
-lib/http/http.dsp
-lib/server/server.dsp
-synergy.dsw
-
-Removed most HTTP stuff. It doesn't seem like the appropriate
-choice for server control. May later provide some other means
-for controlling the synergy server remotely.
-
-----------
-2004/01/24 16:09:25 crs
-lib/arch/CArch.cpp
-lib/arch/CArch.h
-lib/arch/CArchMultithreadPosix.cpp
-lib/arch/CArchMultithreadPosix.h
-lib/arch/CArchNetworkBSD.cpp
-lib/arch/IArchMultithread.h
-lib/base/CEvent.cpp
-lib/base/CEvent.h
-lib/base/CEventQueue.cpp
-lib/base/CEventQueue.h
-lib/base/CFunctionEventJob.cpp
-lib/base/CFunctionEventJob.h
-lib/base/CLog.cpp
-lib/base/CPriorityQueue.h
-lib/base/CSimpleEventQueue.cpp
-lib/base/CSimpleEventQueue.h
-lib/base/IEventJob.h
-lib/base/IEventQueue.h
-lib/base/Makefile.am
-lib/base/TMethodEventJob.h
-lib/io/CBufferedInputStream.cpp
-lib/io/CBufferedInputStream.h
-lib/io/CBufferedOutputStream.cpp
-lib/io/CBufferedOutputStream.h
-lib/mt/CThread.cpp
-lib/mt/CThread.h
-lib/net/CTCPListenSocket.cpp
-lib/net/CTCPListenSocket.h
-lib/net/CTCPSocket.cpp
-lib/net/CTCPSocket.h
-lib/net/IDataSocket.cpp
-lib/net/IDataSocket.h
-lib/net/IListenSocket.cpp
-lib/net/IListenSocket.h
-lib/net/ISocket.cpp
-lib/net/ISocket.h
-lib/net/Makefile.am
-lib/platform/CXWindowsEventQueue.cpp
-lib/platform/CXWindowsEventQueue.h
-lib/platform/Makefile.am
-
-Checkpointing centralized event queue stuff. Currently have:
-an event queue and events, TCP sockets converted to use events,
-unix multithreading and network stuff converted, and an X Windows
-event queue subclass.
-
-----------
-2003/07/19 17:22:06 crs
-cmd/launcher/launcher.cpp
-cmd/launcher/launcher.rc
-cmd/launcher/resource.h
-cmd/synergyc/synergyc.cpp
-configure.in
-lib/client/CClient.cpp
-lib/client/CClient.h
-lib/client/CServerProxy.cpp
-lib/client/CServerProxy.h
-lib/common/Version.h
-lib/platform/CMSWindowsPrimaryScreen.cpp
-lib/platform/CMSWindowsPrimaryScreen.h
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.h
-lib/server/CConfig.cpp
-lib/synergy/OptionTypes.h
-
-Merge synergy 1.1 fixes into 1.0 branch.
-
-----------
-2003/07/19 17:19:26 crs
-
-Branched synergy 1.0 from 1.0.11.
-
-----------
-2003/07/17 21:16:58 crs
-lib/platform/CMSWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.cpp
-
-Fixed handling of a dead key followed by space on win32 and X11.
-A dead key followed by space should convert the dead key to a
-regular character.
-
-----------
-2003/07/16 22:38:43 crs
-lib/platform/CMSWindowsSecondaryScreen.cpp
-
-Fixed handling of some non-ASCII but directly mapped characters
-on win32. The o, a, and u with diaeresis in the german keyboard
-mapping are examples.
-
-----------
-2003/07/16 21:40:57 crs
-lib/platform/CMSWindowsPrimaryScreen.cpp
-
-Fixed handling of shift/ctrl/alt on special keys on win32 server.
-
-----------
-2003/07/13 20:42:11 crs
-lib/platform/CMSWindowsPrimaryScreen.cpp
-
-Fixed handling of some keystrokes on win32. Pressing a dead key
-and then space should convert the dead key to a non-dead key but
-previous the key was discarded. Fixed that but VkKeyScan() fails
-in this case so added special case to fix that (assuming AltGr is
-required). VkKeyScan() can return the wrong result for characters
-that have more than one virtual key mapped to them. AltGr+9 (^)
-on the French layout has this problem. Now detecting that problem
-and using the current keyboard state to decide if AltGr is
-required.
-
-----------
-2003/07/13 17:03:41 crs
-cmd/synergyc/synergyc.cpp
-
-Forgot to remove --camp and --no-camp from brief usage message.
-
-----------
-2003/07/13 16:57:08 crs
-lib/platform/CXWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.h
-
-Changed XSync() to XFlush() in X windows secondary screen. This
-doesn't appear to have any negative consequences and may prevent
-synergy from freezing when some X client (probably the window
-manager) grabs the server.
-
-----------
-2003/07/12 17:57:31 crs
-cmd/synergyc/synergyc.cpp
-lib/client/CClient.cpp
-lib/client/CClient.h
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CXWindowsScreen.cpp
-
-Prevent INFO level log messages when client is repeatedly trying
-to connect. This prevents a log from filling up while the client
-can't connect for no useful reason. Also removed --camp option
-and cleaned up handling of client connection. Users must now use
---restart instead of --camp.
-
-----------
-2003/07/08 18:40:46 crs
-lib/platform/CMSWindowsPrimaryScreen.cpp
-lib/platform/CMSWindowsPrimaryScreen.h
-
-Changed windows server to release ctrl and alt keys when it's
-sending a key that requires AltGr. That's because AltGr *is*
-ctrl and alt but AltGr should be seen on clients as mode
-switch without the ctrl and alt. I can't think of a better
-way to do this other than to not send modifier keystrokes to
-the clients at all.
-
-----------
-2003/07/05 17:06:18 crs
-configure.in
-lib/common/Version.h
-
-Change version to 1.0.11. Skipping version 1.0.10 because there
-have been too many major changes since 1.0.8. A new experimental
-release will provide a stable starting point for testing.
-
-----------
-2003/07/05 17:05:12 crs
-lib/synergy/CSecondaryScreen.cpp
-
-Fix to avoid warping mouse until client successfully connects to
-the server.
-
-----------
-2003/07/05 17:04:26 crs
-lib/platform/CMSWindowsSecondaryScreen.cpp
-lib/platform/CMSWindowsSecondaryScreen.h
-
-Keyboard fixes on win32.
-
-----------
-2003/07/05 17:04:06 crs
-lib/server/CConfig.h
-
-Fix for new template syntax.
-
-----------
-2003/07/05 14:49:08 crs
-lib/platform/CXWindowsPrimaryScreen.cpp
-lib/platform/CXWindowsPrimaryScreen.h
-lib/platform/CXWindowsSecondaryScreen.cpp
-
-Minor X11 keyboard code cleanup. Also now handling KeyPress with
-keycode == 0 generated by XFilterEvent() by using the keycode from
-the previous KeyPress.
-
-----------
-2003/07/05 14:47:41 crs
-lib/platform/CXWindowsScreen.cpp
-
-Compress sequential MappingNotify events into one.
-
-----------
-2003/07/01 19:35:28 crs
-lib/platform/CXWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.h
-
-Rewrote key handling on X11 client. This should fix problems
-with applying the incorrect shift and mode switch modifiers to
-some keycodes, such as getting Pointer_EnableKeys when pressing
-shift with NumLock enabled.
-
-----------
-2003/06/22 21:27:38 crs
-lib/platform/CXWindowsPrimaryScreen.cpp
-lib/platform/CXWindowsPrimaryScreen.h
-
-Added support for input methods. Only handling IMs that don't
-need a precompose area or status area. This includes IMs that
-do simple dead key composition. This only changes the server.
-The client still does not decompose a character it cannot
-generate directly into the keysyms to compose the character.
-
-----------
-2003/06/22 16:39:25 crs
-lib/client/CServerProxy.cpp
-
-More fixes for X11 client keyboard handling.
-
-----------
-2003/06/22 16:39:02 crs
-lib/platform/CXWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.h
-
-More fixes for X11 client keyboard handling.
-
-----------
-2003/06/22 15:01:44 crs
-lib/platform/CXWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.h
-
-Checkpoint for improving X11 client key handling. Should prevent
-unintentional Pointer_EnableKeys (i.e. generating NumLock press
-and release around a shift press).
-
-----------
-2003/06/08 22:20:01 crs
-lib/platform/CXWindowsPrimaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.cpp
-
-Another ctrl+alt+del checkpoint.
-
-----------
-2003/06/08 22:12:12 crs
-lib/platform/CMSWindowsPrimaryScreen.cpp
-lib/platform/CMSWindowsSecondaryScreen.cpp
-lib/platform/CMSWindowsSecondaryScreen.h
-lib/platform/CXWindowsPrimaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.cpp
-
-ctrl+alt+del emulation checkpoint.
-
-----------
-2003/06/08 16:31:52 crs
-lib/platform/CXWindowsSecondaryScreen.cpp
-
-More DEBUG2 level debugging of keyboard handling.
-
-----------
-2003/06/08 15:42:05 crs
-lib/common/Makefile.am
-
-Added new file to Makefile.
-
-----------
-2003/06/02 20:07:16 crs
-lib/platform/CMSWindowsSecondaryScreen.cpp
-
-Fixed ctrl and alt keys on win32 clients. Was broken by a recent
-fix to character handling.
-
-----------
-2003/06/02 20:06:20 crs
-lib/client/CServerProxy.cpp
-
-Fixed errors in log strings.
-
-----------
-2003/06/02 20:06:03 crs
-cmd/synergyc/CMSWindowsClientTaskBarReceiver.cpp
-cmd/synergyc/CMSWindowsClientTaskBarReceiver.h
-cmd/synergyc/resource.h
-cmd/synergyc/synergyc.cpp
-cmd/synergyc/synergyc.rc
-cmd/synergys/CMSWindowsServerTaskBarReceiver.cpp
-cmd/synergys/CMSWindowsServerTaskBarReceiver.h
-cmd/synergys/resource.h
-cmd/synergys/synergys.cpp
-cmd/synergys/synergys.rc
-lib/base/CLog.cpp
-lib/base/CLog.h
-lib/base/LogOutputters.cpp
-lib/base/LogOutputters.h
-lib/common/common.dsp
-lib/common/stddeque.h
-
-Added menu item on win32 tray icon to copy the last 1000 lines from
-the log to the clipboard.
-
-----------
-2003/05/26 09:50:35 crs
-lib/platform/CXWindowsClipboard.cpp
-
-Added workaround for broken clipboard owners that report the
-type of TARGETS as TARGETS instead of ATOM.
-
-----------
-2003/05/26 09:49:38 crs
-lib/platform/CMSWindowsClipboard.cpp
-
-No longer installing clibboard format for plain text on windows nt
-family because nt automatically converts to and from the unicode
-format. This may fix text encoding errors when synergy puts
-non-ascii text on the clipboard and other clients prefer CF_TEXT
-to CF_UNICODE (which they should not because synergy lists
-CF_UNICODE first).
-
-----------
-2003/05/26 09:46:52 crs
-lib/platform/CMSWindowsPrimaryScreen.cpp
-lib/platform/CMSWindowsScreen.cpp
-
-Fixed loss of ctrl+alt+del key releases when the Winlogin desktop
-is accessible (was already fixed when inaccessible). This change
-also ignores press and release of virtual key 0, which should never
-happen but does according to one user.
-
-----------
-2003/05/21 21:22:14 crs
-lib/arch/CArchMultithreadWindows.cpp
-lib/synergy/CPrimaryScreen.cpp
-lib/synergy/CSecondaryScreen.cpp
-
-Fixed unsigned compare against zero. Changed win32 priority to
-maximum.
-
-----------
-2003/05/21 19:38:11 crs
-lib/server/CServer.cpp
-lib/server/CServer.h
-
-Made double tap require moving farther away from the tapped edge
-before arming. This should reduce spurious double taps.
-
-----------
-2003/05/20 19:15:58 crs
-lib/platform/CMSWindowsSecondaryScreen.cpp
-lib/platform/CMSWindowsSecondaryScreen.h
-
-Attempt to improve key event synthesis. This change adds support
-for dead keys and attempts to choose the correct code page for the
-thread that will (probably) receive synthesized events.
-
-----------
-2003/05/20 19:14:40 crs
-lib/platform/CSynergyHook.cpp
-
-Minor thread ID compare fix.
-
-----------
-2003/05/20 19:14:24 crs
-lib/arch/CArchMultithreadWindows.cpp
-
-Reduced maximum priority in debug build.
-
-----------
-2003/05/17 20:58:27 crs
-lib/platform/CMSWindowsPrimaryScreen.cpp
-lib/platform/CMSWindowsPrimaryScreen.h
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-lib/platform/CMSWindowsSecondaryScreen.cpp
-lib/platform/CMSWindowsSecondaryScreen.h
-lib/platform/CSynergyHook.cpp
-lib/platform/IMSWindowsScreenEventHandler.h
-lib/synergy/CPrimaryScreen.cpp
-
-Fixed getting locked to screen after ctrl+alt+del. Also fixed
-cursor not being hidden on win32 server when on client screens
-(which happened when using low-level hooks).
-
-----------
-2003/05/17 14:10:11 crs
-INSTALL
-
-Added documentation for xtestIsXineramaUnaware option.
-
-----------
-2003/05/17 14:03:32 crs
-lib/platform/CXWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.h
-
-Fixed previous fix. Was trying to avoid using XWarpPointer() when
-warping on screen 0. That just doesn't work if screen 0 is not at
-0,0. So now always use XWarpPointer() if there are multiple
-xinerama screens and the appropriate option is enabled.
-
-----------
-2003/05/17 13:44:24 crs
-lib/platform/CXWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.h
-lib/server/CConfig.cpp
-lib/synergy/OptionTypes.h
-
-Added workaround for when XTest is unaware of Xinerama. When that's
-true, faking a mouse motion outside screen 0 is clamped onto screen 0.
-When the workaround is enabled, we use XWarpPointer() instead of an
-XTest fake motion. This isn't perfect but the only real fix requires
-patching XTest.
-
-----------
-2003/05/17 12:48:32 crs
-lib/platform/CXWindowsSecondaryScreen.cpp
-
-Added support for old versions of XF86keysym.h that are missing
-some expected #defines.
-
-----------
-2003/05/10 17:27:05 crs
-configure.in
-lib/common/Version.h
-
-Changed version to 1.0.8.
-
-----------
-2003/05/10 17:26:42 crs
-INSTALL
-README
-
-Updated documentation.
-
-----------
-2003/05/08 21:59:35 crs
-lib/server/CServer.cpp
-
-Fixed jumping to same client screen. It was broken by an earlier
-change (probably double tap). Jumping to the same server screen
-worked correctly.
-
-----------
-2003/05/04 21:40:42 crs
-configure.in
-lib/platform/CMSWindowsPrimaryScreen.cpp
-lib/platform/CMSWindowsPrimaryScreen.h
-lib/platform/CMSWindowsSecondaryScreen.cpp
-lib/platform/CMSWindowsSecondaryScreen.h
-lib/platform/CSynergyHook.cpp
-lib/platform/CXWindowsPrimaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.cpp
-lib/synergy/KeyTypes.h
-lib/synergy/MouseTypes.h
-
-Added support for 4th and 5th (non-mouse-wheel) buttons and
-"Internet" keyboard keys.
-
-----------
-2003/05/03 15:16:30 crs
-cmd/launcher/CGlobalOptions.cpp
-cmd/launcher/launcher.rc
-cmd/launcher/resource.h
-
-Added screen saver synchronization option to win32 launcher dialog.
-
-----------
-2003/05/03 14:54:03 crs
-lib/synergy/CSecondaryScreen.cpp
-
-Removed accidental debugging code.
-
-----------
-2003/05/03 14:38:36 crs
-lib/platform/CMSWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.cpp
-lib/server/CConfig.cpp
-lib/synergy/CSecondaryScreen.cpp
-lib/synergy/CSecondaryScreen.h
-lib/synergy/OptionTypes.h
-
-Added global configuration option to disable screen saver
-synchronization.
-
-----------
-2003/05/03 13:57:52 crs
-lib/platform/CXWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.h
-
-Forgot to restore global auto-repeat configuration on exit.
-
-----------
-2003/05/03 13:50:06 crs
-lib/platform/CMSWindowsSecondaryScreen.cpp
-lib/platform/CMSWindowsSecondaryScreen.h
-lib/platform/CXWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.h
-lib/synergy/CSecondaryScreen.cpp
-lib/synergy/CSecondaryScreen.h
-
-Now warping mouse to center of screen when leaving client screens.
-Some users requested this. Also, the hider window is mapped before
-warping the mouse so the active window shouldn't change if the focus
-policy is point-to-focus. Showing the window first can also reduce
-the likelihood of seeing the cursor briefly in its hidden position.
-
-----------
-2003/05/03 13:28:21 crs
-lib/platform/CXWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.h
-
-Now turning off auto-repeat when on an X11 client. This prevents
-the server from auto-repeating fake events, which is undesired
-since synergy will do the auto-repeating itself. This also
-disables auto-repeat on any keys locally configured on X11 to not
-auto-repeat. That's mainly to suppress auto-repeat on modifier
-keys, which auto-repeat on win32 but not X11.
-
-----------
-2003/05/03 12:54:22 crs
-lib/platform/CMSWindowsPrimaryScreen.cpp
-lib/platform/CMSWindowsPrimaryScreen.h
-lib/platform/CSynergyHook.cpp
-lib/platform/CSynergyHook.h
-
-Fixed a few win32 keyboard/mouse problems. First, the mouse hook
-now captures non-client area mouse messages. Previously, these
-were ignored (because i forgot about them) and they caused all
-kinds of problems because they weren't forwarded. For example,
-clicking on a window border would cause the window to start
-resizing when the mouse came back to the server screen. Moving
-inside a title bar meant that the mouse wouldn't move on the
-client screen.
-
-Second, because non-client messages are now handled, the full
-screen transparent window is no longer necessary to capture
-input so it's never displayed. (The window is still necessary
-for clipboard ownership so it's still created.) No transparent
-window means no screen flashing. It also means we don't have to
-become the foreground and active window. This plays better with
-apps that minimize or restore when they're no longer the
-foreground application/active window.
-
-Third, fixed the low level keyboard hook to forward toggle key
-updates, which it was neglecting to do.
-
-Finally, keyboard and mouse input is always forwarded from the hook
-to the primary screen handler which then shadows the current key
-and mouse button state. If we're using low level hooks then this
-isn't really necessary and GetKeyState() always returns the right
-info but without low level hooks it means we can just use the
-shadow state. It also means we don't have to show our window in
-order to get the system's key state table up to date, fixing the
-screen flash when checking for the scroll lock state.
-
-----------
-2003/05/03 12:37:03 crs
-lib/arch/CArchMultithreadWindows.cpp
-lib/synergy/CPrimaryScreen.cpp
-lib/synergy/CSecondaryScreen.cpp
-
-Boosted priority of main synergy threads to be very high (highest
-realtime priority). After some testing it appears that anything
-less than this can starve synergy in some circumstances, preventing
-it from forwarding messages to clients. This is a rather risky
-change since synergy can now virtually take over a system if it
-behaves badly. This change only affects windows systems since
-lib/arch of other platforms don't yet attempt to boost priority.
-
-----------
-2003/04/27 18:05:32 crs
-lib/platform/CMSWindowsSecondaryScreen.cpp
-lib/platform/CMSWindowsSecondaryScreen.h
-lib/server/Makefile.am
-lib/server/server.dsp
-
-Fixes to previous checkpoint. Non-ascii keys seem to work correctly.
-Still not supporting key composition on X11.
-
-----------
-2003/04/27 17:01:14 crs
-lib/client/CClient.cpp
-lib/client/CClient.h
-lib/client/CServerProxy.cpp
-lib/platform/CMSWindowsPrimaryScreen.cpp
-lib/platform/CMSWindowsSecondaryScreen.cpp
-lib/platform/CMSWindowsSecondaryScreen.h
-lib/platform/CXWindowsPrimaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.h
-lib/server/CClientProxy.h
-lib/server/CClientProxy1_0.cpp
-lib/server/CClientProxy1_0.h
-lib/server/CClientProxy1_1.cpp
-lib/server/CClientProxy1_1.h
-lib/server/CPrimaryClient.cpp
-lib/server/CPrimaryClient.h
-lib/server/CServer.cpp
-lib/server/CServer.h
-lib/server/Makefile.am
-lib/synergy/CSecondaryScreen.h
-lib/synergy/IClient.h
-lib/synergy/IPrimaryScreenReceiver.h
-lib/synergy/KeyTypes.h
-lib/synergy/ProtocolTypes.h
-
-Checkpointing improved key handling. This change adds non-ASCII
-key handling to win32 on both client and server. It also changes
-the protocol and adds code to ensure every key pressed also gets
-released and that that doesn't get confused when the KeyID for
-the press is different from the KeyID of the release (or repeat).
-
-----------
-2003/04/24 20:11:38 crs
-lib/platform/CXWindowsPrimaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsUtil.cpp
-lib/platform/CXWindowsUtil.h
-
-Added KeySym <-> Unicode mappings. Changed code to use those
-mappings to better support Unicode key events.
-
-----------
-2003/04/24 20:10:13 crs
-cmd/Makefile.am
-
-Added exec.dsp to EXTRA_DIST.
-
-----------
-2003/04/16 20:59:25 crs
-all.dsp
-cmd/exec.dsp
-lib/platform/makehook.dsp
-lib/platform/synrgyhk.dsp
-synergy.dsw
-
-Win32 project configuration fixes.
-
-----------
-2003/04/16 20:59:14 crs
-cmd/synergyc/synergyc.cpp
-cmd/synergys/synergys.cpp
-lib/platform/CMSWindowsPrimaryScreen.cpp
-
-Minor win32 fixes.
-
-----------
-2003/04/16 20:05:00 crs
-lib/server/CConfig.cpp
-
-Now allowing screen names with underscores.
-
-----------
-2003/04/14 22:16:21 crs
-lib/platform/CXWindowsPrimaryScreen.cpp
-
-Fixed incorrect initialization of an XMotionEvent.
-
-----------
-2003/04/14 22:15:56 crs
-configure.in
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreen.h
-
-Added workaround for apparent Xinerama bug when warping the pointer.
-This should allow synergy to be used on a system using Xinerama to
-create a single logical screen from multiple physical screens.
-
-----------
-2003/04/13 18:14:01 crs
-cmd/synergyc/synergyc.cpp
-cmd/synergys/synergys.cpp
-
-Fixed problem with type casting void* to int.
-
-----------
-2003/04/13 17:13:27 crs
-lib/platform/CXWindowsScreenSaver.cpp
-
-Removed periodic call to XForceScreenSaver() to prevent the built-in
-screen saver from activating. It was unnecessary since the built-in
-screen saver is disabled as appropriate; this call was just to
-ensure that the screen saver wouldn't start if an external program
-reactivated the screen saver after synergy disabled it.
-
-It's possible that this was causing screen flicker under gnome, though
-i don't know why. It's also possible that periodically sending events
-to xscreensaver is causing the flicker but removing that code is more
-difficult because xscreensaver can't be disabled, only deactivated or
-killed.
-
-----------
-2003/04/13 14:59:53 crs
-lib/platform/CMSWindowsClipboard.cpp
-lib/platform/CMSWindowsClipboard.h
-lib/platform/CMSWindowsPrimaryScreen.cpp
-lib/platform/CMSWindowsPrimaryScreen.h
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-lib/platform/CSynergyHook.cpp
-
-Fixed several win32 bugs. First, synergy wasn't forwarding mouse
-events to other hook functions, which broke some tools like objectbar.
-Second, windows key processing was fixed. Previously pressing and
-release the key would only send a press event, locking the user onto
-the client window; also, the win32 server treated as a Meta modifier
-instead of a Super modifier, which broke any use of it as any kind of
-modifier key. Third, added hacks to support several key combinations
-on windows 95/98/me that are treated specially by windows, including
-Alt+Tab, Alt+Shift+Tab, Alt+Esc, Alt+Shift+Esc, Ctrl+Esc, and any
-combination using the windows key like Win+E and Win+F but not
-Ctrl+Alt+Del. Fourth, scroll lock only locking to the client (which
-only happened when using a synergy server on windows) has been fixed;
-unfortunately the solution causes a lot of screen redraws for some
-reason. Finally, there's been a fix to clipboard handling that may
-or may not fix a problem where the clipboard would stop transferring
-between systems after a little while. I can't be sure if it fixes
-the problem because I can't reproduce the problem.
-
-----------
-2003/04/13 14:39:17 crs
-cmd/launcher/launcher.rc
-
-Added mention of tray icon to launcher start message box.
-
-----------
-2003/03/26 21:03:58 crs
-configure.in
-lib/common/Version.h
-
-Changed version to 1.0.6.
-
-----------
-2003/03/25 21:31:39 crs
-lib/platform/CMSWindowsSecondaryScreen.cpp
-lib/platform/CSynergyHook.cpp
-
-This should fix multimon support on win32.
-
-----------
-2003/03/22 11:49:23 crs
-FAQ
-INSTALL
-PORTING
-README
-TODO
-
-Documentation updates.
-
-----------
-2003/03/22 11:49:13 crs
-cmd/launcher/CGlobalOptions.cpp
-cmd/launcher/CGlobalOptions.h
-cmd/launcher/launcher.rc
-cmd/launcher/resource.h
-
-Added key modifier and heartbeat options to GUI.
-
-----------
-2003/03/21 19:34:08 crs
-cmd/synergyc/synergyc.cpp
-cmd/synergys/synergys.cpp
-
-Oops, included a windows only header in non-windows builds.
-
-----------
-2003/03/21 19:16:37 crs
-lib/platform/CMSWindowsScreenSaver.cpp
-
-Added check for the screen saver actually being active before
-entering the loop waiting for it to deactivate. The failure
-to check was causing the screen saver code to kick in when
-the screen saver timeout occurred, even if the screen saver
-wasn't enabled (because Windows still sends the screen saver
-activating message for no good reason when the screen saver
-is disabled).
-
-----------
-2003/03/21 19:14:32 crs
-lib/arch/CArchMiscWindows.cpp
-
-Fixed errors in merge causing infinite loops.
-
-----------
-2003/03/21 19:14:10 crs
-cmd/synergyc/tb_idle.ico
-cmd/synergyc/tb_run.ico
-cmd/synergyc/tb_wait.ico
-cmd/synergys/tb_idle.ico
-cmd/synergys/tb_run.ico
-cmd/synergys/tb_wait.ico
-
-Fixed icons.
-
-----------
-2003/03/21 19:13:15 crs
-lib/platform/CXWindowsUtil.cpp
-
-Fixed getWindowProperty(). It wasn't catching all failure
-cases correctly.
-
-----------
-2003/03/17 22:32:10 crs
-cmd/launcher/CAdvancedOptions.cpp
-cmd/launcher/CAdvancedOptions.h
-cmd/launcher/LaunchUtil.cpp
-cmd/launcher/LaunchUtil.h
-cmd/launcher/launcher.cpp
-cmd/launcher/launcher.rc
-cmd/launcher/resource.h
-lib/arch/CArchDaemonWindows.cpp
-lib/arch/CArchDaemonWindows.h
-lib/arch/CArchMiscWindows.cpp
-lib/arch/CArchMiscWindows.h
-
-Added options and advanced options dialogs which should've been
-part of an earlier checkin. Also now saving and restoring
-options that aren't in the configuration file to/from the
-registry.
-
-----------
-2003/03/17 22:32:01 crs
-lib/platform/CMSWindowsPrimaryScreen.cpp
-lib/platform/CXWindowsPrimaryScreen.cpp
-lib/server/CServer.cpp
-lib/synergy/CPrimaryScreen.h
-
-Added a log message why the user is locked to the screen.
-
-----------
-2003/03/17 22:31:59 crs
-lib/platform/CMSWindowsSecondaryScreen.cpp
-
-Added type casts to avoid warning.
-
-----------
-2003/03/16 17:40:57 crs
-lib/platform/CMSWindowsScreenSaver.cpp
-lib/platform/CMSWindowsScreenSaver.h
-
-Fixed detection of screen saver shutdown on windows nt.
-
-----------
-2003/03/16 17:40:56 crs
-lib/common/Makefile.am
-lib/common/common.dsp
-lib/common/stdbitset.h
-lib/platform/CMSWindowsSecondaryScreen.cpp
-lib/platform/CMSWindowsSecondaryScreen.h
-lib/platform/CXWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.h
-
-Made releaseKeys() only synthesize key releases for those keys
-that synergy synthesized a press for, not keys that the user
-is physically pressing.
-
-----------
-2003/03/16 17:40:47 crs
-lib/platform/CSynergyHook.cpp
-
-Minor hook fixes.
-
-----------
-2003/03/16 17:40:25 crs
-cmd/synergyc/synergyc.rc
-cmd/synergys/synergys.rc
-
-Added resources missing from previous checkin.
-
-----------
-2003/03/13 20:24:45 crs
-lib/platform/CXWindowsScreenSaver.cpp
-
-Moved comment to more relevant location.
-
-----------
-2003/03/13 19:20:55 crs
-lib/platform/CXWindowsScreen.cpp
-
-Fixed double locking of mutex.
-
-----------
-2003/03/12 22:34:07 crs
-cmd/launcher/CAdvancedOptions.cpp
-cmd/launcher/CAdvancedOptions.h
-cmd/launcher/CGlobalOptions.cpp
-cmd/launcher/CGlobalOptions.h
-cmd/launcher/LaunchUtil.cpp
-cmd/launcher/LaunchUtil.h
-cmd/launcher/Makefile.am
-cmd/launcher/launcher.cpp
-cmd/launcher/launcher.dsp
-cmd/launcher/resource.h
-cmd/synergyc/CClientTaskBarReceiver.cpp
-cmd/synergyc/CClientTaskBarReceiver.h
-cmd/synergyc/CMSWindowsClientTaskBarReceiver.cpp
-cmd/synergyc/CMSWindowsClientTaskBarReceiver.h
-cmd/synergyc/CXWindowsClientTaskBarReceiver.cpp
-cmd/synergyc/CXWindowsClientTaskBarReceiver.h
-cmd/synergyc/Makefile.am
-cmd/synergyc/resource.h
-cmd/synergyc/synergyc.cpp
-cmd/synergyc/synergyc.dsp
-cmd/synergyc/tb_error.ico
-cmd/synergyc/tb_idle.ico
-cmd/synergyc/tb_run.ico
-cmd/synergyc/tb_wait.ico
-cmd/synergys/CMSWindowsServerTaskBarReceiver.cpp
-cmd/synergys/CMSWindowsServerTaskBarReceiver.h
-cmd/synergys/CServerTaskBarReceiver.cpp
-cmd/synergys/CServerTaskBarReceiver.h
-cmd/synergys/CXWindowsServerTaskBarReceiver.cpp
-cmd/synergys/CXWindowsServerTaskBarReceiver.h
-cmd/synergys/Makefile.am
-cmd/synergys/resource.h
-cmd/synergys/synergys.cpp
-cmd/synergys/synergys.dsp
-cmd/synergys/tb_error.ico
-cmd/synergys/tb_idle.ico
-cmd/synergys/tb_run.ico
-cmd/synergys/tb_wait.ico
-lib/arch/CArch.cpp
-lib/arch/CArch.h
-lib/arch/CArchConsoleWindows.cpp
-lib/arch/CArchConsoleWindows.h
-lib/arch/CArchImpl.cpp
-lib/arch/CArchMultithreadPosix.cpp
-lib/arch/CArchMultithreadPosix.h
-lib/arch/CArchMultithreadWindows.cpp
-lib/arch/CArchMultithreadWindows.h
-lib/arch/CArchTaskBarWindows.cpp
-lib/arch/CArchTaskBarWindows.h
-lib/arch/CArchTaskBarXWindows.cpp
-lib/arch/CArchTaskBarXWindows.h
-lib/arch/IArchMultithread.h
-lib/arch/IArchTaskBar.h
-lib/arch/IArchTaskBarReceiver.h
-lib/arch/Makefile.am
-lib/arch/arch.dsp
-lib/base/CJobList.cpp
-lib/base/CJobList.h
-lib/base/LogOutputters.cpp
-lib/base/LogOutputters.h
-lib/base/Makefile.am
-lib/base/base.dsp
-lib/client/CClient.cpp
-lib/client/CClient.h
-lib/client/CServerProxy.cpp
-lib/mt/CThread.cpp
-lib/mt/CThread.h
-lib/mt/CTimerThread.cpp
-lib/mt/CTimerThread.h
-lib/platform/CMSWindowsPrimaryScreen.cpp
-lib/platform/CMSWindowsPrimaryScreen.h
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-lib/platform/CMSWindowsSecondaryScreen.cpp
-lib/platform/CMSWindowsSecondaryScreen.h
-lib/platform/CSynergyHook.cpp
-lib/platform/CXWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.h
-lib/server/CServer.cpp
-lib/server/CServer.h
-lib/synergy/CSecondaryScreen.cpp
-lib/synergy/CSecondaryScreen.h
-
-Added switch delay and double-tap options to win32 and added a
-tray icon to the client and server that gives status feedback to
-the user and allows the user to kill the app.
-
-----------
-2003/02/23 19:29:08 crs
-lib/server/CConfig.cpp
-lib/server/CServer.cpp
-lib/server/CServer.h
-lib/synergy/OptionTypes.h
-lib/synergy/ProtocolTypes.h
-
-Added support for a user option to require hitting the edge of a
-screen twice within a specified amount of time in order to switch
-screens. This can help prevent unintended switching.
-
-----------
-2003/02/22 21:53:25 crs
-lib/platform/CXWindowsPrimaryScreen.cpp
-lib/platform/CXWindowsPrimaryScreen.h
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreen.h
-lib/platform/CXWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.h
-lib/server/CConfig.cpp
-lib/server/CPrimaryClient.cpp
-lib/server/CPrimaryClient.h
-lib/server/CServer.cpp
-lib/server/CServer.h
-lib/synergy/CPrimaryScreen.h
-lib/synergy/IPrimaryScreenReceiver.h
-lib/synergy/IScreenEventHandler.h
-lib/synergy/OptionTypes.h
-
-Added support on X11 for a global option to delay switching screens
-when the mouse reaches a jump zone.
-
-----------
-2003/02/22 16:41:03 crs
-lib/server/CConfig.cpp
-lib/server/CConfig.h
-
-Added global options to CConfig (needed for heartbeat option).
-
-----------
-2003/02/22 16:20:23 crs
-lib/client/CServerProxy.cpp
-lib/client/CServerProxy.h
-lib/server/CClientProxy.cpp
-lib/server/CClientProxy.h
-lib/server/CClientProxy1_0.cpp
-lib/server/CClientProxy1_0.h
-lib/server/CConfig.cpp
-lib/server/CConfig.h
-lib/server/CServer.cpp
-lib/synergy/OptionTypes.h
-lib/synergy/ProtocolTypes.h
-
-Added support for heartbeat global option.
-
-----------
-2003/02/22 15:04:09 crs
-configure.in
-lib/common/Version.h
-
-Changed version to 1.0.5.
-
-----------
-2003/02/22 15:03:31 crs
-lib/client/CServerProxy.cpp
-lib/client/CServerProxy.h
-lib/server/CConfig.cpp
-lib/server/CConfig.h
-lib/synergy/KeyTypes.h
-lib/synergy/OptionTypes.h
-
-Changes to support remapping modifier keys on clients.
-
-----------
-2003/02/17 12:44:37 crs
-configure.in
-lib/common/Version.h
-
-Changed version to 1.0.3.
-
-----------
-2003/02/16 19:55:54 crs
-lib/platform/CMSWindowsSecondaryScreen.cpp
-
-Changed win32 client side cursor warping to be all relative motion
-when not on the primary monitor. This should eliminate the flicker
-between virtual display 0,0 and the correct position. While this
-allows the user to confuse synergy by using the client's mouse,
-synergy recovers quickly and easily from any confusion.
-
-----------
-2003/02/16 19:53:56 crs
-lib/platform/CMSWindowsPrimaryScreen.cpp
-
-Added hack to heuristically detect bogus mouse motion caused by
-a race condition where the synergy server updates the mouse
-position but the synergy hook later receives a mouse update from
-before the position change (i.e. out of order).
-
-----------
-2003/02/16 19:51:46 crs
-lib/platform/CSynergyHook.cpp
-
-Commented out an unnecessary hook and added a compile time
-switch to disable grabbing of keyboard on win32 to facilitate
-debugging.
-
-----------
-2003/02/16 19:50:36 crs
-lib/platform/CMSWindowsScreen.cpp
-
-Changed heap to stack allocation in an oft-called function for
-data that's never used outside the function.
-
-----------
-2003/02/16 19:49:44 crs
-cmd/synergyc/synergyc.cpp
-cmd/synergys/synergys.cpp
-lib/arch/CArchMultithreadWindows.cpp
-lib/base/CUnicode.cpp
-
-Fixed memory leaks.
-
-----------
-2003/02/12 20:59:25 crs
-lib/platform/CMSWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.cpp
-
-Fixed incorrect mouse button swapping on client screens.
-
-----------
-2003/02/12 20:59:08 crs
-lib/arch/CArchDaemonWindows.cpp
-
-Fixed error in debug build on win32.
-
-----------
-2003/02/12 19:50:22 crs
-lib/arch/vsnprintf.cpp
-
-Added a simple implementation of vsnprintf for unix platforms
-without it using /dev/null, vfprintf(), and vsprintf().
-
-----------
-2003/02/12 19:38:39 crs
-lib/arch/CArchMiscWindows.h
-lib/arch/XArch.h
-lib/base/CLog.h
-lib/base/CString.h
-lib/base/ILogOutputter.h
-lib/mt/CCondVar.h
-lib/mt/CLock.h
-lib/mt/CThread.h
-lib/mt/CTimerThread.h
-
-Made sure every file includes common.h directly or indirectly.
-Also made sure common.h is included before any system headers.
-
-----------
-2003/02/01 18:10:43 crs
-FAQ
-INSTALL
-README
-TODO
-
-Added info about using SSH for authentication and encryption.
-
-----------
-2003/01/29 22:16:40 crs
-lib/platform/CXWindowsSecondaryScreen.cpp
-
-To support keymaps with only upper (or lower) case keysyms we now
-use Xlib to convert an unmatched keysym to upper and lower case and
-use whichever, if any, is not the same as the original keysym.
-This supports case conversion in any language that Xlib supports
-it in.
-
-----------
-2003/01/29 19:32:25 crs
-lib/platform/CXWindowsSecondaryScreen.cpp
-
-Applied patch from grmcdorman at users dot sourceforge dot net to
-support keymaps that have only uppercase letters, which is the case
-by default on the Sun X server (for US keyboards anyway).
-
-----------
-2003/01/25 13:39:26 crs
-NEWS
-configure.in
-lib/common/Version.h
-
-Changed version number to 1.0.2.
-
-----------
-2003/01/25 13:34:51 crs
-cmd/launcher/launcher.cpp
-cmd/launcher/launcher.rc
-cmd/launcher/resource.h
-lib/server/CConfig.cpp
-lib/server/CConfig.h
-
-Added ability to set screen options from the windows launch dialog.
-
-----------
-2003/01/25 13:34:17 crs
-lib/arch/CArchNetworkBSD.cpp
-lib/arch/CArchNetworkWinsock.cpp
-
-Added missing entry in a socket family table. This was a serious
-bug and should've failed on all platforms but just happened to
-work on linux and windows.
-
-----------
-2003/01/22 08:37:32 crs
-NEWS
-configure.in
-lib/common/Version.h
-
-Changed version number to 1.0.1.
-
-----------
-2003/01/22 08:36:43 crs
-cmd/synergyc/synergyc.cpp
-cmd/synergys/synergys.cpp
-lib/arch/CArchDaemonWindows.cpp
-lib/arch/CArchDaemonWindows.h
-lib/arch/CArchLogWindows.cpp
-lib/arch/CArchMiscWindows.cpp
-lib/arch/CArchMiscWindows.h
-lib/arch/CArchMultithreadWindows.cpp
-lib/arch/CArchMultithreadWindows.h
-
-Fixed running as a service on Windows NT family.
-
-----------
-2003/01/18 14:36:19 crs
-lib/arch/CArchSleepWindows.cpp
-lib/platform/CMSWindowsPrimaryScreen.cpp
-lib/platform/CSynergyHook.cpp
-
-Fixed stupid errors introduced by last attempt to fix broken
-mouse behavior on multimonitor windows systems. Those errors
-broke synergy on all windows systems running as a server.
-Also added an attempt to reduce the occasional jump that can
-occur when switching screens when windows is the server.
-
-----------
-2003/01/18 14:31:54 crs
-lib/platform/CXWindowsSecondaryScreen.cpp
-
-Was forcing modifier keys that have no effect on the keysym
-lookup to be up when synthesizing key events. Now leaving
-those modifiers in their current state.
-
-----------
-2003/01/18 10:49:13 crs
-Makefile.am
-
-Added a dist-pkg target to put the binary distribution files into
-a tar gzip file. This is to ease distribution of the binaries on
-systems without a packaging system supported by synergy (which
-currently supports only RPM).
-
-----------
-2003/01/16 21:28:15 crs
-lib/server/CServer.cpp
-
-Fixed lookup of neighbor screens. The first problem was an old
-code in a conditional for moving left that blew an assert verifying
-that the mouse position was really on the screen if the neighbor
-screen wasn't connected.
-
-After that was fixed there was another problem when one screen
-linked to another which then linked (in the same direction) to
-itself. If the latter screen wasn't connected then it'd get into
-an infinite loop.
-
-----------
-2003/01/14 19:46:41 crs
-lib/server/CServer.cpp
-
-Moved log message into conditionals so it only appears when the
-conditions are true.
-
-----------
-2003/01/14 19:46:17 crs
-lib/platform/CMSWindowsPrimaryScreen.cpp
-lib/platform/CMSWindowsSecondaryScreen.cpp
-lib/platform/CSynergyHook.cpp
-
-Another try at fixing broken mouse behavior when a windows system
-has multiple monitors with 0,0 of the virtual desktop not at the
-upper-left.
-
-----------
-2003/01/12 16:35:54 crs
-cmd/launcher/launcher.cpp
-cmd/launcher/launcher.rc
-cmd/launcher/resource.h
-
-Added test of using the client's own name as the server name
-with an appropriate error message.
-
-----------
-2003/01/12 16:08:45 crs
-lib/server/CServer.cpp
-
-Now catching and ignoring errors when writing to a socket in those
-cases where errors were not being caught, typically when responding
-to some other socket or protocol error.
-
-----------
-2003/01/11 21:06:21 crs
-acinclude.m4
-configure.in
-lib/arch/CArchMultithreadPosix.cpp
-lib/arch/CArchNetworkBSD.cpp
-lib/arch/CArchNetworkBSD.h
-lib/arch/CArchSleepUnix.cpp
-lib/arch/CMultibyteEmu.cpp
-lib/common/Makefile.am
-
-Fixes to support FreeBSD and Darwin.
-
-----------
-2003/01/11 15:16:41 crs
-lib/platform/CXWindowsScreenSaver.cpp
-lib/platform/CXWindowsScreenSaver.h
-
-Synergy no longer tries to suppress the screen saver once it starts.
-It was doing that already if started through synergy but not if
-started by something outside of synergy. In particular, if you
-use `xscreensaver-command --activate' synergy used to send fake
-mouse motion events every 5 seconds to deactivate it. That's
-unlikely to be what the user wanted, especially if the locking is
-enabled since it would force the password dialog to appear.
-
-As before, it's recommended that client screens not use locking
-because xscreensaver will not deactivate without getting a
-password even if we make the request through a programmatic
-interface. Presumably that's for security reasons but it makes
-life harder for synergy.
-
-----------
-2003/01/11 14:01:44 crs
-lib/platform/CMSWindowsPrimaryScreen.cpp
-lib/platform/CMSWindowsSecondaryScreen.cpp
-
-Attempt to fix problems with multimon windows. The mouse position
-reported by the synergy hook dll is in a space with 0,0 in the
-upper-left which is not necessarily the same as the virtual desktop
-space. So the windows primary screen now accounts for that. On
-the secondary screen, mouse_event() doesn't seem to accept negative
-coordinates even on the windows NT family, making monitors with
-negative coordinates inaccessible via absolute moves. So if the
-move will be to negative coordinates, use the windows 95 family
-fallback of absolute moving to 0,0 then relative moving to the
-final position.
-
-----------
-2003/01/08 22:17:44 crs
-FAQ
-INSTALL
-
-Added bit about configuring on Solaris, which requires some
-options to find the X11 includes and libraries.
-
-----------
-2003/01/08 21:36:14 crs
-lib/arch/CArchMultithreadPosix.cpp
-lib/arch/CArchMultithreadPosix.h
-lib/arch/CArchNetworkBSD.cpp
-
-Portability fixes. Now builds on Linux 2.2 and 2.4 and solaris.
-Also builds on i386, alpha, G3/G4, and sparc.
-
-----------
-2003/01/08 21:36:13 crs
-lib/client/CClient.cpp
-lib/platform/CXWindowsUtil.cpp
-
-Changed log level of two messages. Now won't spew about reading
-window properties and will report connection failure at DEBUG
-instead of DEBUG1.
-
-----------
-2003/01/08 21:36:10 crs
-FAQ
-
-Added a FAQ entry for client being rejected. User probably didn't
-start the server or told the client the wrong server host name.
-
-----------
-2003/01/07 21:47:27 crs
-ChangeLog
-configure.in
-lib/common/Version.h
-
-Changed version number to 0.9.15. Added 0.9.15 log entries.
-
-----------
-2003/01/07 21:12:51 crs
-lib/platform/CMSWindowsPrimaryScreen.cpp
-
-Attempts to improve forcing synergy window to foreground. These
-changes don't seem to improve the situation but don't seem to
-hurt either.
-
-----------
-2003/01/07 21:11:54 crs
-lib/platform/CSynergyHook.cpp
-
-Added low-level mouse hook to support mouse wheel on NT (>=SP3).
-Thanks to karsten for the patch used as a starting point.
-
-----------
-2003/01/05 21:52:28 crs
-lib/base/LogOutputters.cpp
-lib/base/LogOutputters.h
-
-Added missing files.
-
-----------
-2003/01/05 21:48:54 crs
-PORTING
-cmd/synergyc/synergyc.cpp
-cmd/synergys/synergys.cpp
-doc/doxygen.cfg.in
-lib/arch/CArch.cpp
-lib/arch/CArch.h
-lib/arch/CArchConsoleUnix.h
-lib/arch/CArchConsoleWindows.h
-lib/arch/CArchDaemonNone.h
-lib/arch/CArchDaemonUnix.h
-lib/arch/CArchDaemonWindows.h
-lib/arch/CArchFileUnix.h
-lib/arch/CArchFileWindows.h
-lib/arch/CArchLogUnix.h
-lib/arch/CArchLogWindows.h
-lib/arch/CArchMiscWindows.h
-lib/arch/CArchMultithreadPosix.h
-lib/arch/CArchMultithreadWindows.cpp
-lib/arch/CArchMultithreadWindows.h
-lib/arch/CArchNetworkBSD.h
-lib/arch/CArchNetworkWinsock.cpp
-lib/arch/CArchNetworkWinsock.h
-lib/arch/CArchSleepUnix.h
-lib/arch/CArchSleepWindows.h
-lib/arch/CArchStringUnix.cpp
-lib/arch/CArchStringUnix.h
-lib/arch/CArchStringWindows.cpp
-lib/arch/CArchStringWindows.h
-lib/arch/CArchTimeUnix.h
-lib/arch/CArchTimeWindows.h
-lib/arch/IArchConsole.h
-lib/arch/IArchFile.h
-lib/arch/IArchLog.h
-lib/arch/IArchMultithread.h
-lib/arch/IArchNetwork.h
-lib/arch/IArchSleep.h
-lib/arch/IArchString.h
-lib/arch/IArchTime.h
-lib/arch/Makefile.am
-lib/arch/XArchImpl.h
-lib/arch/arch.dsp
-lib/base/CLog.cpp
-lib/base/CUnicode.cpp
-lib/base/XBase.cpp
-lib/base/XBase.h
-lib/client/CMSWindowsSecondaryScreen.cpp
-lib/client/CMSWindowsSecondaryScreen.h
-lib/client/CSecondaryScreen.cpp
-lib/client/CSecondaryScreen.h
-lib/client/CXWindowsSecondaryScreen.cpp
-lib/client/CXWindowsSecondaryScreen.h
-lib/client/ISecondaryScreenFactory.h
-lib/client/Makefile.am
-lib/client/client.dsp
-lib/http/XHTTP.h
-lib/platform/CMSWindowsPrimaryScreen.cpp
-lib/platform/CMSWindowsPrimaryScreen.h
-lib/platform/CMSWindowsScreen.h
-lib/platform/CMSWindowsSecondaryScreen.cpp
-lib/platform/CMSWindowsSecondaryScreen.h
-lib/platform/CXWindowsPrimaryScreen.cpp
-lib/platform/CXWindowsPrimaryScreen.h
-lib/platform/CXWindowsScreen.h
-lib/platform/CXWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsSecondaryScreen.h
-lib/platform/Makefile.am
-lib/platform/platform.dsp
-lib/server/CMSWindowsPrimaryScreen.cpp
-lib/server/CMSWindowsPrimaryScreen.h
-lib/server/CPrimaryScreen.cpp
-lib/server/CPrimaryScreen.h
-lib/server/CXWindowsPrimaryScreen.cpp
-lib/server/CXWindowsPrimaryScreen.h
-lib/server/IPrimaryScreenFactory.h
-lib/server/Makefile.am
-lib/server/server.dsp
-lib/synergy/CPrimaryScreen.cpp
-lib/synergy/CPrimaryScreen.h
-lib/synergy/CSecondaryScreen.cpp
-lib/synergy/CSecondaryScreen.h
-lib/synergy/IPrimaryScreenFactory.h
-lib/synergy/ISecondaryScreenFactory.h
-lib/synergy/Makefile.am
-lib/synergy/libsynergy.dsp
-
-Moved CPrimaryScreen and CSecondaryScreen to the lib/synergy
-and the platform specific implementations to lib/platform.
-Added an lib/arch method to query the platform's native wide
-character encoding and changed CUnicode to use it. All
-platform dependent code is now in lib/arch, lib/platform,
-and the programs under cmd. Also added more documentation.
-
-----------
-2003/01/04 22:01:32 crs
-PORTING
-cmd/launcher/CAutoStart.cpp
-cmd/launcher/CAutoStart.h
-cmd/launcher/LaunchUtil.cpp
-cmd/launcher/launcher.cpp
-cmd/launcher/launcher.dsp
-cmd/launcher/launcher.rc
-cmd/synergyc/Makefile.am
-cmd/synergyc/synergyc.cpp
-cmd/synergyc/synergyc.dsp
-cmd/synergys/Makefile.am
-cmd/synergys/synergys.cpp
-cmd/synergys/synergys.dsp
-configure.in
-lib/Makefile.am
-lib/arch/CArch.cpp
-lib/arch/CArch.h
-lib/arch/CArchConsoleUnix.cpp
-lib/arch/CArchConsoleUnix.h
-lib/arch/CArchConsoleWindows.cpp
-lib/arch/CArchConsoleWindows.h
-lib/arch/CArchDaemonNone.cpp
-lib/arch/CArchDaemonNone.h
-lib/arch/CArchDaemonUnix.cpp
-lib/arch/CArchDaemonUnix.h
-lib/arch/CArchDaemonWindows.cpp
-lib/arch/CArchDaemonWindows.h
-lib/arch/CArchFileUnix.cpp
-lib/arch/CArchFileUnix.h
-lib/arch/CArchFileWindows.cpp
-lib/arch/CArchFileWindows.h
-lib/arch/CArchImpl.cpp
-lib/arch/CArchLogUnix.cpp
-lib/arch/CArchLogUnix.h
-lib/arch/CArchLogWindows.cpp
-lib/arch/CArchLogWindows.h
-lib/arch/CArchMiscWindows.cpp
-lib/arch/CArchMiscWindows.h
-lib/arch/CArchMultithreadPosix.cpp
-lib/arch/CArchMultithreadPosix.h
-lib/arch/CArchMultithreadWindows.cpp
-lib/arch/CArchMultithreadWindows.h
-lib/arch/CArchNetworkBSD.cpp
-lib/arch/CArchNetworkBSD.h
-lib/arch/CArchNetworkWinsock.cpp
-lib/arch/CArchNetworkWinsock.h
-lib/arch/CArchSleepUnix.cpp
-lib/arch/CArchSleepUnix.h
-lib/arch/CArchSleepWindows.cpp
-lib/arch/CArchSleepWindows.h
-lib/arch/CArchStringUnix.cpp
-lib/arch/CArchStringUnix.h
-lib/arch/CArchStringWindows.cpp
-lib/arch/CArchStringWindows.h
-lib/arch/CArchTimeUnix.cpp
-lib/arch/CArchTimeUnix.h
-lib/arch/CArchTimeWindows.cpp
-lib/arch/CArchTimeWindows.h
-lib/arch/CMultibyte.cpp
-lib/arch/CMultibyteEmu.cpp
-lib/arch/CMultibyteOS.cpp
-lib/arch/IArchConsole.h
-lib/arch/IArchDaemon.h
-lib/arch/IArchFile.h
-lib/arch/IArchLog.h
-lib/arch/IArchMultithread.h
-lib/arch/IArchNetwork.h
-lib/arch/IArchSleep.h
-lib/arch/IArchString.h
-lib/arch/IArchTime.h
-lib/arch/Makefile.am
-lib/arch/XArch.cpp
-lib/arch/XArch.h
-lib/arch/XArchImpl.h
-lib/arch/XArchUnix.cpp
-lib/arch/XArchUnix.h
-lib/arch/XArchWindows.cpp
-lib/arch/XArchWindows.h
-lib/arch/arch.dsp
-lib/arch/vsnprintf.cpp
-lib/base/BasicTypes.h
-lib/base/CLog.cpp
-lib/base/CLog.h
-lib/base/CStopwatch.cpp
-lib/base/CString.cpp
-lib/base/CString.h
-lib/base/CStringUtil.cpp
-lib/base/CStringUtil.h
-lib/base/CUnicode.cpp
-lib/base/CUnicode.h
-lib/base/IInterface.h
-lib/base/ILogOutputter.h
-lib/base/Makefile.am
-lib/base/Version.h
-lib/base/XBase.cpp
-lib/base/XBase.h
-lib/base/base.dsp
-lib/base/common.h
-lib/base/stdfstream.h
-lib/base/stdistream.h
-lib/base/stdlist.h
-lib/base/stdmap.h
-lib/base/stdostream.h
-lib/base/stdpost.h
-lib/base/stdpre.h
-lib/base/stdset.h
-lib/base/stdsstream.h
-lib/base/stdvector.h
-lib/client/CClient.cpp
-lib/client/CMSWindowsSecondaryScreen.cpp
-lib/client/Makefile.am
-lib/client/client.dsp
-lib/common/BasicTypes.h
-lib/common/IInterface.h
-lib/common/Makefile.am
-lib/common/Version.h
-lib/common/common.dsp
-lib/common/common.h
-lib/common/stdfstream.h
-lib/common/stdistream.h
-lib/common/stdlist.h
-lib/common/stdmap.h
-lib/common/stdostream.h
-lib/common/stdpost.h
-lib/common/stdpre.h
-lib/common/stdset.h
-lib/common/stdsstream.h
-lib/common/stdstring.h
-lib/common/stdvector.h
-lib/http/CHTTPProtocol.h
-lib/http/Makefile.am
-lib/http/XHTTP.cpp
-lib/http/http.dsp
-lib/io/CUnicode.cpp
-lib/io/CUnicode.h
-lib/io/Makefile.am
-lib/io/XIO.cpp
-lib/io/XIO.h
-lib/io/io.dsp
-lib/mt/CCondVar.cpp
-lib/mt/CCondVar.h
-lib/mt/CMutex.cpp
-lib/mt/CMutex.h
-lib/mt/CThread.cpp
-lib/mt/CThread.h
-lib/mt/CThreadRep.cpp
-lib/mt/CThreadRep.h
-lib/mt/CTimerThread.cpp
-lib/mt/Makefile.am
-lib/mt/XMT.cpp
-lib/mt/XMT.h
-lib/mt/XThread.h
-lib/mt/mt.dsp
-lib/net/CNetwork.cpp
-lib/net/CNetwork.h
-lib/net/CNetworkAddress.cpp
-lib/net/CNetworkAddress.h
-lib/net/CTCPListenSocket.cpp
-lib/net/CTCPListenSocket.h
-lib/net/CTCPSocket.cpp
-lib/net/CTCPSocket.h
-lib/net/Makefile.am
-lib/net/XNetwork.cpp
-lib/net/XNetwork.h
-lib/net/XSocket.cpp
-lib/net/XSocket.h
-lib/net/net.dsp
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CPlatform.cpp
-lib/platform/CPlatform.h
-lib/platform/CUnixPlatform.cpp
-lib/platform/CUnixPlatform.h
-lib/platform/CWin32Platform.cpp
-lib/platform/CWin32Platform.h
-lib/platform/CXWindowsClipboard.cpp
-lib/platform/IPlatform.h
-lib/platform/Makefile.am
-lib/platform/platform.dsp
-lib/platform/synrgyhk.dsp
-lib/server/CConfig.h
-lib/server/CMSWindowsPrimaryScreen.cpp
-lib/server/CServer.cpp
-lib/server/CXWindowsPrimaryScreen.cpp
-lib/server/Makefile.am
-lib/server/server.dsp
-lib/synergy/Makefile.am
-lib/synergy/XScreen.cpp
-lib/synergy/XScreen.h
-lib/synergy/XSynergy.cpp
-lib/synergy/XSynergy.h
-lib/synergy/libsynergy.dsp
-synergy.dsw
-
-Refactored some platform dependent code into a new library,
-lib/arch. This should make porting easier. Will probably
-continue to refactor a little more, moving platform dependent
-event handling stuff into lib/platform.
-
-----------
-2002/12/26 18:40:22 crs
-FAQ
-
-More FAQs.
-
-----------
-2002/12/25 23:49:42 crs
-BUGS
-FAQ
-INSTALL
-README
-TODO
-
-Documentation update.
-
-----------
-2002/12/25 22:56:09 crs
-lib/server/CMSWindowsPrimaryScreen.cpp
-
-Made synrgyhk.dll error messages less cryptic.
-
-----------
-2002/12/25 19:21:17 crs
-NEWS
-configure.in
-lib/base/Version.h
-
-Changed version number to 0.9.14. Added NEWS item.
-
-----------
-2002/12/25 18:44:54 crs
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreenSaver.cpp
-
-Improved handling of screen saver handling when windows 2k is
-the client and the screen saver is password protected. It used
-to immediately turn off the screen saver (unintentionally) in
-that case.
-
-----------
-2002/12/25 10:35:59 crs
-acinclude.m4
-config/config.guess
-config/config.sub
-configure.in
-lib/base/common.h
-lib/mt/CThreadRep.cpp
-lib/net/CNetwork.cpp
-lib/net/CNetwork.h
-lib/platform/CUnixPlatform.cpp
-
-Changes to support building on solaris, irix, and darwin. Also
-removed test for working fork (AC_FORK).
-
-----------
-2002/12/23 14:47:44 crs
-lib/client/CServerProxy.cpp
-lib/client/CServerProxy.h
-
-Added code to process set/reset options messages from server.
-
-----------
-2002/12/23 13:55:21 crs
-lib/client/CClient.cpp
-lib/client/CClient.h
-lib/client/CMSWindowsSecondaryScreen.cpp
-lib/client/CMSWindowsSecondaryScreen.h
-lib/client/CSecondaryScreen.cpp
-lib/client/CSecondaryScreen.h
-lib/client/CXWindowsSecondaryScreen.cpp
-lib/client/CXWindowsSecondaryScreen.h
-lib/server/CClientProxy.h
-lib/server/CClientProxy1_0.cpp
-lib/server/CClientProxy1_0.h
-lib/server/CConfig.cpp
-lib/server/CConfig.h
-lib/server/CMSWindowsPrimaryScreen.cpp
-lib/server/CMSWindowsPrimaryScreen.h
-lib/server/CPrimaryClient.cpp
-lib/server/CPrimaryClient.h
-lib/server/CPrimaryScreen.cpp
-lib/server/CPrimaryScreen.h
-lib/server/CServer.cpp
-lib/server/CServer.h
-lib/server/CXWindowsPrimaryScreen.cpp
-lib/server/CXWindowsPrimaryScreen.h
-lib/synergy/CProtocolUtil.cpp
-lib/synergy/CProtocolUtil.h
-lib/synergy/IClient.h
-lib/synergy/Makefile.am
-lib/synergy/OptionTypes.h
-lib/synergy/ProtocolTypes.h
-
-Added support for per-screen options in the configuration file
-and sending those options to the appropriate client screens.
-Currently, two options are supported: halfDuplexCapsLock and
-halfDuplexNumLock mark the caps lock and num lock keys,
-respectively, as being half-duplex.
-
-----------
-2002/12/22 14:51:41 crs
-configure.in
-doc/doxygen.cfg.in
-
-Doxygen config file now sets HAVE_DOT to YES only if dot is found
-by configure.
-
-----------
-2002/12/15 22:39:59 crs
-lib/client/CXWindowsSecondaryScreen.cpp
-lib/client/CXWindowsSecondaryScreen.h
-
-Now handling any number of pointer buttons.
-
-----------
-2002/12/15 22:17:18 crs
-lib/server/CXWindowsPrimaryScreen.cpp
-
-Now ignoring half-duplex keys that are down when deciding if
-the mouse is locked to the screen. We can't tell if a half-
-duplex key is physically down and logically down just means
-it's active so there's no point in letting it lock the mouse
-to the screen.
-
-----------
-2002/12/15 22:14:49 crs
-lib/client/CMSWindowsSecondaryScreen.cpp
-lib/client/CMSWindowsSecondaryScreen.h
-lib/client/CSecondaryScreen.cpp
-lib/client/CSecondaryScreen.h
-lib/client/CXWindowsSecondaryScreen.cpp
-lib/client/CXWindowsSecondaryScreen.h
-
-Now restoring toggle key states on leaving a client screen to
-their state when the screen was entered. Previously when
-leaving a client screen the toggle keys kept their state so,
-say, caps lock, would remain on. This was inconvenient if
-you then used the client's keyboard directly.
-
-----------
-2002/12/15 20:00:52 crs
-lib/server/CMSWindowsPrimaryScreen.cpp
-
-Fixed loss of ctrl+alt when transmitted to non-windows platforms
-from a windows server. Was converting ctrl+alt on windows to
-mode switch on the server. No longer doing that; windows clients
-will interpret ctrl+alt as AltGr and other clients will just see
-ctrl+alt. Also made the right alt key mode switch on windows
-servers in case the user wants to force a mode switch, but that
-means the right alt key no longer acts as alt on clients.
-
-----------
-2002/12/15 19:58:41 crs
-lib/platform/CMSWindowsScreen.cpp
-
-Fixed client not reconnecting when server dies bug.
-
-----------
-2002/12/15 19:57:28 crs
-lib/client/CXWindowsSecondaryScreen.cpp
-
-Cleanup and changed some DEBUG1 messages to DEBUG2.
-
-----------
-2002/12/15 11:12:39 crs
-doc/doxygen.cfg.in
-
-Enabled using dot and class diagrams.
-
-----------
-2002/11/05 19:23:05 crs
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreenSaver.cpp
-lib/platform/CXWindowsScreenSaver.h
-
-Fixed bug in detecting screen saver activation. Was using || instead
-of && in conditional.
-
-----------
-2002/11/03 18:09:28 crs
-acinclude.m4
-configure.in
-lib/io/CUnicode.h
-lib/net/CNetwork.h
-lib/platform/CUnixPlatform.cpp
-
-Merged fixes for building on MacOS X. It dies on one file with
-an internal compiler error; building that file without
-optimization works around the compiler bug. Sadly, synergy can
-only interact with X windows, not native MacOS windows.
-
-----------
-2002/10/30 22:22:16 crs
-acinclude.m4
-
-Escaped quotes to satisfy older autoheader versions.
-
-----------
-2002/10/30 22:16:30 crs
-lib/net/CNetwork.h
-lib/net/CTCPSocket.cpp
-
-Fixed bugs in error handling in CTCPSocket; previously was not
-handling read errors at all and error handling for writes was
-never being used. Now the socket disconnects if a read or write
-fails on the socket for any reason except EINTR. Also added
- to includes in CNetwork.h because it's needed on
-some platforms.
-
-----------
-2002/10/29 22:07:55 crs
-all.dsp
-lib/base/base.dsp
-lib/client/client.dsp
-lib/http/http.dsp
-lib/io/CUnicode.cpp
-lib/io/io.dsp
-lib/mt/mt.dsp
-lib/net/CNetwork.cpp
-lib/net/CNetwork.h
-lib/net/net.dsp
-lib/platform/makehook.dsp
-lib/platform/platform.dsp
-lib/platform/synrgyhk.dsp
-lib/server/server.dsp
-lib/synergy/libsynergy.dsp
-
-Ported recent changes to win32 and fixed CRLF problems with project
-files (most had CRCRCRLF).
-
-----------
-2002/10/28 22:49:21 crs
-acinclude.m4
-configure.in
-lib/mt/CThreadRep.cpp
-
-solaris configure and build fixes. without having solaris i
-can only hope that these changes actually work.
-
-----------
-2002/10/22 22:35:13 crs
-configure.in
-lib/io/CUnicode.cpp
-
-Added workarounds for missing reentrant versions of wide char
-to/from multi-byte conversion functions.
-
-----------
-2002/10/22 21:30:48 crs
-lib/base/CUnicode.cpp
-lib/base/CUnicode.h
-lib/base/Makefile.am
-lib/io/CUnicode.cpp
-lib/io/CUnicode.h
-lib/io/Makefile.am
-lib/platform/Makefile.am
-
-Moved CUnicode to lib/io. That's a reasonable place for it
-that's after lib/mt. It needs to be after lib/mt in preparation
-for supporting platforms without the reentrant wide char and
-multi-byte functions.
-
-----------
-2002/10/20 22:39:54 crs
-lib/client/CMSWindowsSecondaryScreen.cpp
-
-Fixed conditional to test for multimon to do nasty win32 mouse
-positioning hack. Was doing hack if *not* a multiple monitor
-system but should've been doing it if is *is* a multimon system.
-
-----------
-2002/10/20 22:36:24 crs
-lib/net/CNetwork.cpp
-lib/net/CNetwork.h
-lib/net/CNetworkAddress.cpp
-
-Replaced inet_addr() with inet_aton(), which is a better function
-anyway but isn't implemented in winsock, removed use of INADDR_NONE
-which some platforms don't define except on winsock which does
-define it, and changed SOL_TCP to IPPROTO_TCP which should work on
-more platforms.
-
-----------
-2002/10/17 21:37:41 crs
-lib/platform/CXWindowsScreen.cpp
-
-Fixed CXWindowsScreen to force the event loop to wake up when
-exitMainLoop() is called.
-
-----------
-2002/10/17 21:37:37 crs
-lib/mt/CThreadRep.cpp
-
-Fixed CThreadRep to not raise a signal on the thread if it's
-already dead. Otherwise the signal could propagate to the
-parent thread (at least on linux threads) and cause havoc.
-
-----------
-2002/10/17 21:37:31 crs
-lib/server/CServer.cpp
-lib/server/CServer.h
-
-Changed server to fail with an error if in can't bind() the listen
-socket for any reason other than it's in use.
-
-----------
-2002/10/17 20:56:28 crs
-lib/net/CNetwork.cpp
-lib/net/CNetwork.h
-lib/net/CNetworkAddress.cpp
-
-Changed non-reentrant network functions to be reentrant and
-thread safe.
-
-----------
-2002/10/16 22:01:50 crs
-acinclude.m4
-configure.in
-lib/net/CNetwork.cpp
-lib/net/CNetwork.h
-lib/net/CTCPSocket.cpp
-lib/platform/CXWindowsScreen.cpp
-
-Added support for using select() instead of poll().
-
-----------
-2002/10/15 22:17:41 crs
-lib/server/CConfig.cpp
-
-CConfig now accepts and discards \r at the end of a line. This
-allows the unix server to read configuration files created on
-microsoft windows platforms.
-
-----------
-2002/10/15 22:08:10 crs
-cmd/synergys/synergys.cpp
-lib/server/CConfig.cpp
-
-Fixed use of %s instead of %{1} in format() call.
-
-----------
-2002/10/15 22:01:41 crs
-lib/client/CClient.cpp
-lib/mt/CThreadRep.cpp
-lib/mt/Makefile.am
-lib/mt/XMT.cpp
-lib/mt/XMT.h
-lib/mt/XThread.h
-lib/server/CServer.cpp
-
-Renamed XThreadUnavailable to XMTThreadUnavailable and derived it
-from XBase so it can be caught normally. Changed client and server
-to handle unavailable threads (in main loop, anyway).
-
-----------
-2002/10/15 21:35:12 crs
-lib/mt/CThreadRep.cpp
-
-Workaround for pthread bug on RedHat 7.2 on multiprocessor
-systems.
-
-----------
-2002/10/15 21:29:44 crs
-cmd/synergyc/synergyc.cpp
-cmd/synergys/synergys.cpp
-lib/base/CLog.h
-lib/client/CClient.cpp
-lib/client/CMSWindowsSecondaryScreen.cpp
-lib/client/CSecondaryScreen.cpp
-lib/client/CServerProxy.cpp
-lib/client/CXWindowsSecondaryScreen.cpp
-lib/http/CHTTPProtocol.cpp
-lib/mt/CMutex.cpp
-lib/mt/CThread.cpp
-lib/mt/CThreadRep.cpp
-lib/mt/CTimerThread.cpp
-lib/net/CNetwork.cpp
-lib/platform/CMSWindowsClipboard.cpp
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreenSaver.cpp
-lib/platform/CWin32Platform.cpp
-lib/platform/CXWindowsClipboard.cpp
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreenSaver.cpp
-lib/platform/CXWindowsUtil.cpp
-lib/server/CClientProxy1_0.cpp
-lib/server/CHTTPServer.cpp
-lib/server/CMSWindowsPrimaryScreen.cpp
-lib/server/CPrimaryClient.cpp
-lib/server/CPrimaryScreen.cpp
-lib/server/CServer.cpp
-lib/server/CXWindowsPrimaryScreen.cpp
-lib/synergy/CProtocolUtil.cpp
-
-Changed log() and logc() macros to LOG() and LOGC(), respectively.
-This avoids a conflict with the standard math library log()
-function.
-
-----------
-2002/09/14 21:31:35 crs
-lib/base/XBase.cpp
-lib/base/XBase.h
-
-removed std::exception from base class list of XBase. this
-is a workaround for gcc 3.2 until everything necessary has
-throw() specifiers.
-
-----------
-2002/09/14 20:56:50 crs
-lib/server/CServer.cpp
-
-now logging bind failures as warnings.
-
-----------
-2002/09/14 20:56:28 crs
-lib/base/XBase.cpp
-lib/base/XBase.h
-lib/io/XIO.cpp
-lib/io/XIO.h
-lib/net/CTCPListenSocket.cpp
-lib/net/CTCPSocket.cpp
-lib/net/XSocket.cpp
-lib/net/XSocket.h
-
-added better network error message support.
-
-----------
-2002/09/14 12:07:02 crs
-lib/client/CMSWindowsSecondaryScreen.cpp
-lib/client/CXWindowsSecondaryScreen.cpp
-lib/client/CXWindowsSecondaryScreen.h
-lib/server/CMSWindowsPrimaryScreen.cpp
-lib/server/CXWindowsPrimaryScreen.cpp
-lib/server/CXWindowsPrimaryScreen.h
-lib/synergy/KeyTypes.h
-
-Rewrote handling of key press on X11 client; it should be much
-more robust now. Also added handling of Super modifier key and
-changed windows keys to map to Super instead of Meta, which is
-the default on my keyboard.
-
-----------
-2002/09/14 12:05:06 crs
-cmd/launcher/launcher.cpp
-cmd/launcher/launcher.rc
-cmd/launcher/resource.h
-
-Added debug level combo box and version number to title bar of win32
-launcher.
-
-----------
-2002/09/14 12:03:43 crs
-cmd/synergyc/resource.h
-cmd/synergyc/synergyc.cpp
-cmd/synergyc/synergyc.rc
-cmd/synergys/resource.h
-cmd/synergys/synergys.cpp
-cmd/synergys/synergys.rc
-
-Fixed backend mode. Now reports log messages and, if any are
-serious, shows a message box before exiting.
-
-----------
-2002/09/04 21:17:01 crs
-NEWS
-configure.in
-lib/base/Version.h
-
-Changed version number to 0.9.11. Added NEWS item.
-
-----------
-2002/09/04 21:14:18 crs
-lib/client/CMSWindowsSecondaryScreen.cpp
-
-now looking up SendEvent() using GetProcAddress() so win95
-systems can run the synergy client.
-
-----------
-2002/09/04 20:17:54 crs
-lib/client/CXWindowsSecondaryScreen.cpp
-
-fixed bug that caused the wrong keycode to be used for most,
-possibly all, keysyms. was reading past the end of an array
-of keysyms.
-
-----------
-2002/09/02 17:36:25 crs
-configure.in
-lib/base/Version.h
-
-Changed version number to 0.9.10.
-
-----------
-2002/09/02 17:30:04 crs
-BUGS
-INSTALL
-cmd/launcher/CAutoStart.cpp
-cmd/launcher/CAutoStart.h
-cmd/launcher/LaunchUtil.cpp
-cmd/launcher/LaunchUtil.h
-cmd/launcher/launcher.cpp
-cmd/launcher/launcher.dsp
-cmd/launcher/launcher.rc
-cmd/launcher/resource.h
-cmd/synergyc/resource.h
-cmd/synergyc/synergyc.cpp
-cmd/synergyc/synergyc.rc
-cmd/synergys/resource.h
-cmd/synergys/synergys.cpp
-lib/client/CClient.cpp
-lib/client/CMSWindowsSecondaryScreen.cpp
-lib/platform/CUnixPlatform.cpp
-lib/platform/CUnixPlatform.h
-lib/platform/CWin32Platform.cpp
-lib/platform/CWin32Platform.h
-lib/platform/IPlatform.h
-lib/server/CMSWindowsPrimaryScreen.cpp
-
-Fixed win32 config saving, keyboard mapping, and AltGr bugs.
-Made extensive changes to the launcher to provide more control
-over setting up auto-start and it now saves configuration to
-the user's documents directory if auto-starting at login and
-saves to the system directory if auto-starting at boot.
-Replaced MapVirtualKey() with table lookup to work around that
-function's lack of support for extended keyboard scan codes.
-Added first cut at support for AltGr.
-
-----------
-2002/09/01 15:30:00 crs
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-synergy/KeyTypes.h
-
-Added support for mode switch key to X11 screens.
-
-----------
-2002/09/01 10:31:10 crs
-acinclude.m4
-configure.in
-lib/base/stdsstream.h
-
-added more tests to autoconf. also now handling missing sstream
-header in gcc 2.95 by including sstream header backported from v3.
-
-----------
-2002/09/01 09:28:54 crs
-lib/platform/CXWindowsUtil.cpp
-
-lowered severity of some debug messages.
-
-----------
-2002/08/18 17:45:59 crs
-configure.in
-lib/base/Version.h
-
-Changed version number to 0.9.9.
-
-----------
-2002/08/18 17:40:10 crs
-lib/server/CMSWindowsPrimaryScreen.cpp
-
-fixed win32 deadlock. when a client disconnects the server will
-warp the mouse to the primary screen. entering the primary
-screen causes the primary screen's window to be hidden. the
-deadlock occurs because hiding the window seems to post a
-message then wait for it to be handled (or possibly it won't
-send a message while a posted message is being handled).
-thread A locks the mutex, warps the mouse, the hides the window.
-thread B begins processing the mouse warp then tries to lock
-the mutex. thread A is waiting on the event loop owned by B
-while B is waiting on the mutex owned by A. this fix simply
-hides the window asynchronously. however, there may be other
-ways to cause a similar deadlock that have not been found.
-
-----------
-2002/08/18 17:35:10 crs
-lib/client/CMSWindowsSecondaryScreen.cpp
-lib/client/CMSWindowsSecondaryScreen.h
-lib/server/CMSWindowsPrimaryScreen.cpp
-
-fixed PrintScrn handling; it was being changed to keypad multiply.
-
-----------
-2002/08/18 17:31:48 crs
-lib/client/CXWindowsSecondaryScreen.cpp
-lib/client/CXWindowsSecondaryScreen.h
-
-no longer sending fake events for unmapped logical buttons.
-
-----------
-2002/08/11 22:43:07 crs
-BUGS
-INSTALL
-NEWS
-PORTING
-README
-cmd/Makefile.am
-cmd/launcher/launcher.cpp
-cmd/synergy/Makefile.am
-cmd/synergy/resource.h
-cmd/synergy/synergy.cpp
-cmd/synergy/synergy.dsp
-cmd/synergy/synergy.ico
-cmd/synergy/synergy.rc
-cmd/synergyc/Makefile.am
-cmd/synergyc/resource.h
-cmd/synergyc/synergyc.cpp
-cmd/synergyc/synergyc.dsp
-cmd/synergyc/synergyc.ico
-cmd/synergyc/synergyc.rc
-cmd/synergyd/Makefile.am
-cmd/synergyd/resource.h
-cmd/synergyd/synergy.ico
-cmd/synergyd/synergyd.cpp
-cmd/synergyd/synergyd.dsp
-cmd/synergyd/synergyd.rc
-cmd/synergys/Makefile.am
-cmd/synergys/resource.h
-cmd/synergys/synergys.cpp
-cmd/synergys/synergys.dsp
-cmd/synergys/synergys.ico
-cmd/synergys/synergys.rc
-configure.in
-dist/rpm/synergy.spec.in
-synergy.dsw
-
-Moved synergy client to cmd/synergyc and renamed it synergyc.
-Moved synergy server to cmd/synergys and renamed it synergys.
-Updated documentation to reflect that and the win32 launcher.
-
-----------
-2002/08/11 11:50:49 crs
-Makefile.am
-TODO
-
-added TODO file and top-level rule to make zip file of distribution
-files.
-
-----------
-2002/08/03 11:50:07 crs
-lib/mt/CCondVar.h
-
-removed pre-instantiation of templates in header file.
-
-----------
-2002/08/03 11:49:36 crs
-all.dsp
-cmd/Makefile.am
-cmd/launcher/Makefile.am
-cmd/launcher/launcher.cpp
-cmd/launcher/launcher.dsp
-cmd/launcher/launcher.rc
-cmd/launcher/resource.h
-cmd/launcher/synergy.ico
-cmd/synergy/Makefile.am
-cmd/synergy/resource.h
-cmd/synergy/synergy.cpp
-cmd/synergy/synergy.dsp
-cmd/synergy/synergy.ico
-cmd/synergy/synergy.rc
-cmd/synergyd/Makefile.am
-cmd/synergyd/resource.h
-cmd/synergyd/synergy.ico
-cmd/synergyd/synergyd.cpp
-cmd/synergyd/synergyd.dsp
-cmd/synergyd/synergyd.rc
-configure.in
-lib/base/CString.cpp
-lib/base/Version.h
-lib/base/base.dsp
-lib/client/client.dsp
-lib/http/http.dsp
-lib/io/io.dsp
-lib/mt/mt.dsp
-lib/net/net.dsp
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/makehook.dsp
-lib/platform/platform.dsp
-lib/platform/synrgyhk.dsp
-lib/server/CConfig.cpp
-lib/server/CConfig.h
-lib/server/server.dsp
-lib/synergy/libsynergy.dsp
-synergy.dsw
-
-added win32 launcher program. also changed VC++ dsp and dsw
-files to binary form so \r\n aren't converted. added icons
-to client and server apps on win32.
-
-----------
-2002/08/02 17:57:54 crs
-Makefile.am
-configure.in
-dist/Makefile.am
-dist/rpm/Makefile.am
-dist/rpm/synergy.spec.in
-
-added build rule to create RPMs.
-
-----------
-2002/08/02 17:53:23 crs
-AUTHORS
-BUGS
-FAQ
-HISTORY
-INSTALL
-NEWS
-PORTING
-README
-
-minor documentation updates. added HISTORY and PORTING.
-
-----------
-2002/08/01 18:07:32 crs
-AUTHORS
-BUGS
-COPYING
-ChangeLog
-FAQ
-INSTALL
-NEWS
-README
-
-added files for release.
-
-----------
-2002/08/01 11:45:21 crs
-configure.in
-lib/base/CStopwatch.cpp
-lib/mt/CCondVar.cpp
-lib/platform/CUnixPlatform.cpp
-
-minor automake fixes.
-
-----------
-2002/07/31 17:40:36 crs
-Makefile.am
-
-added simple rule to build doxygen.
-
-----------
-2002/07/31 17:40:21 crs
-lib/synergy/XSynergy.h
-
-fixed comment.
-
-----------
-2002/07/31 17:35:43 crs
-Makefile.am
-
-removed two programs from files to clean.
-
-----------
-2002/07/31 17:34:05 crs
-Makefile.am
-cmd/Makefile.am
-cmd/synergy/Makefile.am
-cmd/synergyd/Makefile.am
-lib/Makefile.am
-lib/base/Makefile.am
-lib/client/Makefile.am
-lib/http/Makefile.am
-lib/io/Makefile.am
-lib/mt/Makefile.am
-lib/net/Makefile.am
-lib/platform/Makefile.am
-lib/server/Makefile.am
-lib/synergy/Makefile.am
-
-fixes to get vpath builds working (necessary for `make distcheck').
-
-----------
-2002/07/31 16:57:26 crs
-Makefile.am
-cmd/Makefile.am
-cmd/synergy/Makefile.am
-cmd/synergy/synergy.cpp
-cmd/synergyd/Makefile.am
-cmd/synergyd/synergyd.cpp
-configure.in
-lib/Makefile.am
-lib/base/Makefile.am
-lib/base/Version.h
-lib/client/Makefile.am
-lib/http/Makefile.am
-lib/io/Makefile.am
-lib/mt/Makefile.am
-lib/net/Makefile.am
-lib/platform/Makefile.am
-lib/server/Makefile.am
-lib/synergy/Makefile.am
-lib/synergy/ProtocolTypes.h
-lib/synergy/Version.h
-
-Moved version header to base and it now uses VERSION macro
-from config.h if available (which means version is now a
-string, not three integers). Changed version to 1.0.0 and
-protocol version to 1.0. And added MAINTAINERCLEANFILES
-to makefiles to remove generated files.
-
-----------
-2002/07/31 16:27:06 crs
-Makefile.am
-cmd/synergy/Makefile.am
-cmd/synergyd/Makefile.am
-examples/synergy.linux.init
-examples/synergyd.linux.init
-lib/base/Makefile.am
-lib/client/Makefile.am
-lib/http/Makefile.am
-lib/io/Makefile.am
-lib/mt/Makefile.am
-lib/net/Makefile.am
-lib/platform/Makefile.am
-lib/server/Makefile.am
-lib/synergy/Makefile.am
-nodist/notes
-notes
-
-added EXTRA_* files to get `make dist' doing the right thing.
-
-----------
-2002/07/31 16:24:45 crs
-notes
-
-checkpoint notes.
-
-----------
-2002/07/31 13:56:59 crs
-lib/base/CLog.cpp
-
-removed now unnecssary #define.
-
-----------
-2002/07/31 13:41:58 crs
-lib/http/http.dsp
-lib/platform/CMSWindowsClipboardAnyTextConverter.cpp
-lib/platform/CMSWindowsClipboardAnyTextConverter.h
-lib/platform/CMSWindowsClipboardTextConverter.cpp
-lib/platform/CMSWindowsClipboardTextConverter.h
-lib/platform/CMSWindowsClipboardUTF16Converter.cpp
-lib/platform/CMSWindowsClipboardUTF16Converter.h
-lib/platform/CMSWindowsScreenSaver.cpp
-lib/platform/CMSWindowsScreenSaver.h
-lib/platform/IMSWindowsScreenEventHandler.h
-
-okay, now the files should no longer be executable.
-
-----------
-2002/07/31 13:34:18 crs
-lib/http/http.dsp
-lib/platform/CMSWindowsClipboardAnyTextConverter.cpp
-lib/platform/CMSWindowsClipboardAnyTextConverter.h
-lib/platform/CMSWindowsClipboardTextConverter.cpp
-lib/platform/CMSWindowsClipboardTextConverter.h
-lib/platform/CMSWindowsClipboardUTF16Converter.cpp
-lib/platform/CMSWindowsClipboardUTF16Converter.h
-lib/platform/CMSWindowsScreenSaver.cpp
-lib/platform/CMSWindowsScreenSaver.h
-lib/platform/IMSWindowsScreenEventHandler.h
-notes
-
-removed unintentional executable flag.
-
-----------
-2002/07/31 13:29:33 crs
-notes
-
-checkpoint notes.
-
-----------
-2002/07/31 13:18:27 crs
-README
-
-added comment about large motif clipboard items to README.
-
-----------
-2002/07/31 13:10:15 crs
-README
-
-updated README.
-
-----------
-2002/07/31 12:40:41 crs
-lib/platform/CSynergyHook.cpp
-lib/platform/synrgyhk.dsp
-
-now building hook dll for release without linking in standard
-C runtime. need C runtime for debug build for asserts.
-
-----------
-2002/07/31 12:39:34 crs
-cmd/synergy/synergy.cpp
-cmd/synergyd/synergyd.cpp
-lib/client/CClient.cpp
-lib/client/CClient.h
-lib/client/CXWindowsSecondaryScreen.cpp
-lib/platform/CXWindowsScreen.cpp
-lib/server/CClientProxy.h
-lib/server/CClientProxy1_0.cpp
-lib/server/CClientProxy1_0.h
-lib/server/CMSWindowsPrimaryScreen.cpp
-lib/server/CPrimaryClient.cpp
-lib/server/CPrimaryClient.h
-lib/server/CServer.cpp
-lib/server/CServer.h
-lib/synergy/IClient.h
-lib/synergy/IScreen.h
-lib/synergy/XScreen.cpp
-lib/synergy/XScreen.h
-
-fixed problem with opening client and server. in some cases it
-would fail to open in such a way that it could never succeed
-but it'd never stop retrying. now terminating when open fails
-such that it'll never succeed.
-
-----------
-2002/07/30 19:03:40 crs
-lib/client/client.dsp
-lib/io/io.dsp
-lib/net/net.dsp
-lib/server/server.dsp
-lib/synergy/libsynergy.dsp
-
-added new files to projects and added two project files that
-should've been adding in change 530.
-
-----------
-2002/07/30 18:49:31 crs
-lib/client/CServerProxy.cpp
-lib/server/CClientProxy1_0.cpp
-lib/synergy/ProtocolTypes.h
-
-made it so a negative kHeartRate disables heartbeats and set
-kHeartRate to -1.
-
-----------
-2002/07/30 18:31:21 crs
-lib/mt/CThreadRep.cpp
-lib/mt/XThread.h
-
-moved exception definition to header file.
-
-----------
-2002/07/30 18:31:00 crs
-cmd/synergy/synergy.cpp
-cmd/synergyd/synergyd.cpp
-lib/client/CClient.cpp
-lib/client/CClient.h
-lib/client/ISecondaryScreenFactory.h
-lib/client/Makefile.am
-lib/io/IStreamFilterFactory.h
-lib/io/Makefile.am
-lib/net/CTCPSocketFactory.cpp
-lib/net/CTCPSocketFactory.h
-lib/net/ISocketFactory.h
-lib/net/Makefile.am
-lib/server/CPrimaryClient.cpp
-lib/server/CPrimaryClient.h
-lib/server/CServer.cpp
-lib/server/CServer.h
-lib/server/IPrimaryScreenFactory.h
-lib/server/Makefile.am
-lib/synergy/CTCPSocketFactory.cpp
-lib/synergy/CTCPSocketFactory.h
-lib/synergy/ISocketFactory.h
-lib/synergy/Makefile.am
-lib/synergy/ProtocolTypes.h
-
-now using class factories to move some decisions from the libraries
-into the application.
-
-----------
-2002/07/30 16:52:46 crs
-Makefile.am
-base/BasicTypes.h
-base/CFunctionJob.cpp
-base/CFunctionJob.h
-base/CLog.cpp
-base/CLog.h
-base/CStopwatch.cpp
-base/CStopwatch.h
-base/CString.cpp
-base/CString.h
-base/CUnicode.cpp
-base/CUnicode.h
-base/IInterface.h
-base/IJob.h
-base/Makefile.am
-base/TMethodJob.h
-base/XBase.cpp
-base/XBase.h
-base/base.dsp
-base/common.h
-base/stdfstream.h
-base/stdistream.h
-base/stdlist.h
-base/stdmap.h
-base/stdostream.h
-base/stdpost.h
-base/stdpre.h
-base/stdset.h
-base/stdsstream.h
-base/stdvector.h
-client/CClient.cpp
-client/CClient.h
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-client/CSecondaryScreen.cpp
-client/CSecondaryScreen.h
-client/CServerProxy.cpp
-client/CServerProxy.h
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-client/Makefile.am
-client/client.cpp
-client/client.dsp
-client/client.rc
-client/resource.h
-cmd/Makefile.am
-cmd/synergy/Makefile.am
-cmd/synergy/resource.h
-cmd/synergy/synergy.cpp
-cmd/synergy/synergy.dsp
-cmd/synergy/synergy.rc
-cmd/synergyd/Makefile.am
-cmd/synergyd/resource.h
-cmd/synergyd/synergyd.cpp
-cmd/synergyd/synergyd.dsp
-cmd/synergyd/synergyd.rc
-configure.in
-http/CHTTPProtocol.cpp
-http/CHTTPProtocol.h
-http/Makefile.am
-http/XHTTP.cpp
-http/XHTTP.h
-http/http.dsp
-io/CBufferedInputStream.cpp
-io/CBufferedInputStream.h
-io/CBufferedOutputStream.cpp
-io/CBufferedOutputStream.h
-io/CInputStreamFilter.cpp
-io/CInputStreamFilter.h
-io/COutputStreamFilter.cpp
-io/COutputStreamFilter.h
-io/CStreamBuffer.cpp
-io/CStreamBuffer.h
-io/IInputStream.h
-io/IOutputStream.h
-io/Makefile.am
-io/XIO.cpp
-io/XIO.h
-io/io.dsp
-lib/Makefile.am
-lib/base/BasicTypes.h
-lib/base/CFunctionJob.cpp
-lib/base/CFunctionJob.h
-lib/base/CLog.cpp
-lib/base/CLog.h
-lib/base/CStopwatch.cpp
-lib/base/CStopwatch.h
-lib/base/CString.cpp
-lib/base/CString.h
-lib/base/CUnicode.cpp
-lib/base/CUnicode.h
-lib/base/IInterface.h
-lib/base/IJob.h
-lib/base/Makefile.am
-lib/base/TMethodJob.h
-lib/base/XBase.cpp
-lib/base/XBase.h
-lib/base/base.dsp
-lib/base/common.h
-lib/base/stdfstream.h
-lib/base/stdistream.h
-lib/base/stdlist.h
-lib/base/stdmap.h
-lib/base/stdostream.h
-lib/base/stdpost.h
-lib/base/stdpre.h
-lib/base/stdset.h
-lib/base/stdsstream.h
-lib/base/stdvector.h
-lib/client/CClient.cpp
-lib/client/CClient.h
-lib/client/CMSWindowsSecondaryScreen.cpp
-lib/client/CMSWindowsSecondaryScreen.h
-lib/client/CSecondaryScreen.cpp
-lib/client/CSecondaryScreen.h
-lib/client/CServerProxy.cpp
-lib/client/CServerProxy.h
-lib/client/CXWindowsSecondaryScreen.cpp
-lib/client/CXWindowsSecondaryScreen.h
-lib/client/Makefile.am
-lib/http/CHTTPProtocol.cpp
-lib/http/CHTTPProtocol.h
-lib/http/Makefile.am
-lib/http/XHTTP.cpp
-lib/http/XHTTP.h
-lib/http/http.dsp
-lib/io/CBufferedInputStream.cpp
-lib/io/CBufferedInputStream.h
-lib/io/CBufferedOutputStream.cpp
-lib/io/CBufferedOutputStream.h
-lib/io/CInputStreamFilter.cpp
-lib/io/CInputStreamFilter.h
-lib/io/COutputStreamFilter.cpp
-lib/io/COutputStreamFilter.h
-lib/io/CStreamBuffer.cpp
-lib/io/CStreamBuffer.h
-lib/io/IInputStream.h
-lib/io/IOutputStream.h
-lib/io/Makefile.am
-lib/io/XIO.cpp
-lib/io/XIO.h
-lib/io/io.dsp
-lib/mt/CCondVar.cpp
-lib/mt/CCondVar.h
-lib/mt/CLock.cpp
-lib/mt/CLock.h
-lib/mt/CMutex.cpp
-lib/mt/CMutex.h
-lib/mt/CThread.cpp
-lib/mt/CThread.h
-lib/mt/CThreadRep.cpp
-lib/mt/CThreadRep.h
-lib/mt/CTimerThread.cpp
-lib/mt/CTimerThread.h
-lib/mt/Makefile.am
-lib/mt/XThread.h
-lib/mt/mt.dsp
-lib/net/CNetwork.cpp
-lib/net/CNetwork.h
-lib/net/CNetworkAddress.cpp
-lib/net/CNetworkAddress.h
-lib/net/CTCPListenSocket.cpp
-lib/net/CTCPListenSocket.h
-lib/net/CTCPSocket.cpp
-lib/net/CTCPSocket.h
-lib/net/IDataSocket.h
-lib/net/IListenSocket.h
-lib/net/ISocket.h
-lib/net/Makefile.am
-lib/net/XNetwork.cpp
-lib/net/XNetwork.h
-lib/net/XSocket.cpp
-lib/net/XSocket.h
-lib/net/net.dsp
-lib/platform/CMSWindowsClipboard.cpp
-lib/platform/CMSWindowsClipboard.h
-lib/platform/CMSWindowsClipboardAnyTextConverter.cpp
-lib/platform/CMSWindowsClipboardAnyTextConverter.h
-lib/platform/CMSWindowsClipboardTextConverter.cpp
-lib/platform/CMSWindowsClipboardTextConverter.h
-lib/platform/CMSWindowsClipboardUTF16Converter.cpp
-lib/platform/CMSWindowsClipboardUTF16Converter.h
-lib/platform/CMSWindowsScreen.cpp
-lib/platform/CMSWindowsScreen.h
-lib/platform/CMSWindowsScreenSaver.cpp
-lib/platform/CMSWindowsScreenSaver.h
-lib/platform/CPlatform.cpp
-lib/platform/CPlatform.h
-lib/platform/CSynergyHook.cpp
-lib/platform/CSynergyHook.h
-lib/platform/CUnixPlatform.cpp
-lib/platform/CUnixPlatform.h
-lib/platform/CWin32Platform.cpp
-lib/platform/CWin32Platform.h
-lib/platform/CXWindowsClipboard.cpp
-lib/platform/CXWindowsClipboard.h
-lib/platform/CXWindowsClipboardTextConverter.cpp
-lib/platform/CXWindowsClipboardTextConverter.h
-lib/platform/CXWindowsClipboardUCS2Converter.cpp
-lib/platform/CXWindowsClipboardUCS2Converter.h
-lib/platform/CXWindowsClipboardUTF8Converter.cpp
-lib/platform/CXWindowsClipboardUTF8Converter.h
-lib/platform/CXWindowsScreen.cpp
-lib/platform/CXWindowsScreen.h
-lib/platform/CXWindowsScreenSaver.cpp
-lib/platform/CXWindowsScreenSaver.h
-lib/platform/CXWindowsUtil.cpp
-lib/platform/CXWindowsUtil.h
-lib/platform/IMSWindowsScreenEventHandler.h
-lib/platform/IPlatform.h
-lib/platform/Makefile.am
-lib/platform/makehook.dsp
-lib/platform/platform.dsp
-lib/platform/synrgyhk.dsp
-lib/server/CClientProxy.cpp
-lib/server/CClientProxy.h
-lib/server/CClientProxy1_0.cpp
-lib/server/CClientProxy1_0.h
-lib/server/CConfig.cpp
-lib/server/CConfig.h
-lib/server/CHTTPServer.cpp
-lib/server/CHTTPServer.h
-lib/server/CMSWindowsPrimaryScreen.cpp
-lib/server/CMSWindowsPrimaryScreen.h
-lib/server/CPrimaryClient.cpp
-lib/server/CPrimaryClient.h
-lib/server/CPrimaryScreen.cpp
-lib/server/CPrimaryScreen.h
-lib/server/CServer.cpp
-lib/server/CServer.h
-lib/server/CXWindowsPrimaryScreen.cpp
-lib/server/CXWindowsPrimaryScreen.h
-lib/server/Makefile.am
-lib/synergy/CClipboard.cpp
-lib/synergy/CClipboard.h
-lib/synergy/CInputPacketStream.cpp
-lib/synergy/CInputPacketStream.h
-lib/synergy/COutputPacketStream.cpp
-lib/synergy/COutputPacketStream.h
-lib/synergy/CProtocolUtil.cpp
-lib/synergy/CProtocolUtil.h
-lib/synergy/CTCPSocketFactory.cpp
-lib/synergy/CTCPSocketFactory.h
-lib/synergy/ClipboardTypes.h
-lib/synergy/IClient.h
-lib/synergy/IClipboard.h
-lib/synergy/IPrimaryScreenReceiver.h
-lib/synergy/IScreen.h
-lib/synergy/IScreenEventHandler.h
-lib/synergy/IScreenReceiver.h
-lib/synergy/IScreenSaver.h
-lib/synergy/IServer.h
-lib/synergy/ISocketFactory.h
-lib/synergy/KeyTypes.h
-lib/synergy/Makefile.am
-lib/synergy/MouseTypes.h
-lib/synergy/ProtocolTypes.h
-lib/synergy/Version.h
-lib/synergy/XScreen.cpp
-lib/synergy/XScreen.h
-lib/synergy/XSynergy.cpp
-lib/synergy/XSynergy.h
-lib/synergy/libsynergy.dsp
-mt/CCondVar.cpp
-mt/CCondVar.h
-mt/CLock.cpp
-mt/CLock.h
-mt/CMutex.cpp
-mt/CMutex.h
-mt/CThread.cpp
-mt/CThread.h
-mt/CThreadRep.cpp
-mt/CThreadRep.h
-mt/CTimerThread.cpp
-mt/CTimerThread.h
-mt/Makefile.am
-mt/XThread.h
-mt/mt.dsp
-net/CNetwork.cpp
-net/CNetwork.h
-net/CNetworkAddress.cpp
-net/CNetworkAddress.h
-net/CTCPListenSocket.cpp
-net/CTCPListenSocket.h
-net/CTCPSocket.cpp
-net/CTCPSocket.h
-net/IDataSocket.h
-net/IListenSocket.h
-net/ISocket.h
-net/Makefile.am
-net/XNetwork.cpp
-net/XNetwork.h
-net/XSocket.cpp
-net/XSocket.h
-net/net.dsp
-platform/CMSWindowsClipboard.cpp
-platform/CMSWindowsClipboard.h
-platform/CMSWindowsClipboardAnyTextConverter.cpp
-platform/CMSWindowsClipboardAnyTextConverter.h
-platform/CMSWindowsClipboardTextConverter.cpp
-platform/CMSWindowsClipboardTextConverter.h
-platform/CMSWindowsClipboardUTF16Converter.cpp
-platform/CMSWindowsClipboardUTF16Converter.h
-platform/CMSWindowsScreen.cpp
-platform/CMSWindowsScreen.h
-platform/CMSWindowsScreenSaver.cpp
-platform/CMSWindowsScreenSaver.h
-platform/CPlatform.cpp
-platform/CPlatform.h
-platform/CSynergyHook.cpp
-platform/CSynergyHook.h
-platform/CUnixPlatform.cpp
-platform/CUnixPlatform.h
-platform/CWin32Platform.cpp
-platform/CWin32Platform.h
-platform/CXWindowsClipboard.cpp
-platform/CXWindowsClipboard.h
-platform/CXWindowsClipboardTextConverter.cpp
-platform/CXWindowsClipboardTextConverter.h
-platform/CXWindowsClipboardUCS2Converter.cpp
-platform/CXWindowsClipboardUCS2Converter.h
-platform/CXWindowsClipboardUTF8Converter.cpp
-platform/CXWindowsClipboardUTF8Converter.h
-platform/CXWindowsScreen.cpp
-platform/CXWindowsScreen.h
-platform/CXWindowsScreenSaver.cpp
-platform/CXWindowsScreenSaver.h
-platform/CXWindowsUtil.cpp
-platform/CXWindowsUtil.h
-platform/IMSWindowsScreenEventHandler.h
-platform/IPlatform.h
-platform/Makefile.am
-platform/makehook.dsp
-platform/platform.dsp
-platform/synrgyhk.dsp
-server/CClientProxy.cpp
-server/CClientProxy.h
-server/CClientProxy1_0.cpp
-server/CClientProxy1_0.h
-server/CConfig.cpp
-server/CConfig.h
-server/CHTTPServer.cpp
-server/CHTTPServer.h
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CPrimaryClient.cpp
-server/CPrimaryClient.h
-server/CPrimaryScreen.cpp
-server/CPrimaryScreen.h
-server/CServer.cpp
-server/CServer.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-server/Makefile.am
-server/resource.h
-server/server.cpp
-server/server.dsp
-server/server.rc
-synergy.dsw
-synergy/CClipboard.cpp
-synergy/CClipboard.h
-synergy/CInputPacketStream.cpp
-synergy/CInputPacketStream.h
-synergy/COutputPacketStream.cpp
-synergy/COutputPacketStream.h
-synergy/CProtocolUtil.cpp
-synergy/CProtocolUtil.h
-synergy/CTCPSocketFactory.cpp
-synergy/CTCPSocketFactory.h
-synergy/ClipboardTypes.h
-synergy/IClient.h
-synergy/IClipboard.h
-synergy/IPrimaryScreenReceiver.h
-synergy/IScreen.h
-synergy/IScreenEventHandler.h
-synergy/IScreenReceiver.h
-synergy/IScreenSaver.h
-synergy/IServer.h
-synergy/ISocketFactory.h
-synergy/KeyTypes.h
-synergy/Makefile.am
-synergy/MouseTypes.h
-synergy/ProtocolTypes.h
-synergy/Version.h
-synergy/XScreen.cpp
-synergy/XScreen.h
-synergy/XSynergy.cpp
-synergy/XSynergy.h
-synergy/synergy.dsp
-
-Reorganized source tree. Moved client.cpp into cmd/synergy as
-synergy.cpp and server.cpp into cmd/synergyd as synergyd.cpp.
-Moved and renamed related files. Moved remaining source files
-into lib/.... Modified and added makefiles as appropriate.
-Result is that library files are under lib with each library
-in its own directory and program files are under cmd with each
-command in its own directory.
-
-----------
-2002/07/30 15:17:44 crs
-client/CClient.cpp
-client/CClient.h
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-client/CSecondaryScreen.cpp
-client/CSecondaryScreen.h
-client/CServerProxy.cpp
-client/CServerProxy.h
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-client/client.cpp
-server/CClientProxy.h
-server/CClientProxy1_0.cpp
-server/CClientProxy1_0.h
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CPrimaryClient.cpp
-server/CPrimaryClient.h
-server/CPrimaryScreen.cpp
-server/CPrimaryScreen.h
-server/CServer.cpp
-server/CServer.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-server/server.cpp
-synergy/IClient.h
-
-Replaced method name `run' with `mainLoop', and `stop' and `quit'
-with `exitMainLoop' in most places.
-
-----------
-2002/07/30 14:59:36 crs
-client/CClient.h
-client/CMSWindowsSecondaryScreen.h
-client/CSecondaryScreen.h
-client/CServerProxy.cpp
-client/CServerProxy.h
-client/CXWindowsSecondaryScreen.h
-server/CClientProxy.h
-server/CClientProxy1_0.h
-server/CConfig.h
-server/CHTTPServer.cpp
-server/CHTTPServer.h
-server/CMSWindowsPrimaryScreen.h
-server/CPrimaryClient.h
-server/CPrimaryScreen.h
-server/CServer.h
-server/CXWindowsPrimaryScreen.h
-synergy/IClient.h
-synergy/IScreen.h
-synergy/IScreenReceiver.h
-synergy/IServer.h
-
-Added doxygen comments for all relevant headers in client and server.
-
-----------
-2002/07/29 17:03:55 crs
-platform/CMSWindowsClipboard.h
-platform/CMSWindowsClipboardAnyTextConverter.h
-platform/CMSWindowsClipboardTextConverter.h
-platform/CMSWindowsClipboardUTF16Converter.h
-platform/CMSWindowsScreen.h
-platform/CMSWindowsScreenSaver.h
-platform/CPlatform.h
-platform/CSynergyHook.h
-platform/CUnixPlatform.h
-platform/CWin32Platform.h
-platform/CXWindowsClipboard.h
-platform/CXWindowsClipboardTextConverter.h
-platform/CXWindowsClipboardUCS2Converter.h
-platform/CXWindowsClipboardUTF8Converter.h
-platform/CXWindowsScreen.h
-platform/CXWindowsScreenSaver.h
-platform/CXWindowsUtil.h
-platform/IMSWindowsScreenEventHandler.h
-platform/IPlatform.h
-
-Added doxygen comments for all relevant headers in platform.
-
-----------
-2002/07/29 16:07:26 crs
-synergy/CClipboard.h
-synergy/CInputPacketStream.h
-synergy/COutputPacketStream.h
-synergy/CProtocolUtil.h
-synergy/CTCPSocketFactory.h
-synergy/ClipboardTypes.h
-synergy/IClient.h
-synergy/IClipboard.h
-synergy/IPrimaryScreenReceiver.h
-synergy/IScreen.h
-synergy/IScreenEventHandler.h
-synergy/IScreenReceiver.h
-synergy/IScreenSaver.h
-synergy/IServer.h
-synergy/ISocketFactory.h
-synergy/KeyTypes.h
-synergy/MouseTypes.h
-synergy/ProtocolTypes.h
-synergy/Version.h
-synergy/XScreen.h
-synergy/XSynergy.h
-
-Added doxygen comments for all relevant headers in synergy.
-
-----------
-2002/07/29 16:06:52 crs
-platform/CMSWindowsScreen.cpp
-server/CPrimaryClient.cpp
-
-moved try/catch block from CMSWindowsScreen to CPrimaryClient.
-this means CMSWindowsScreen doesn't need to include XSynergy.h.
-
-----------
-2002/07/29 16:05:59 crs
-doc/doxygen.cfg
-
-changed doxygen configuration.
-
-----------
-2002/07/28 19:06:52 crs
-net/CNetwork.h
-net/CNetworkAddress.h
-net/CTCPListenSocket.h
-net/CTCPSocket.h
-net/IDataSocket.h
-net/IListenSocket.h
-net/ISocket.h
-net/XNetwork.h
-net/XSocket.cpp
-net/XSocket.h
-
-Added doxygen comments for all relevant headers in net.
-
-----------
-2002/07/28 17:55:59 crs
-http/CHTTPProtocol.h
-http/XHTTP.cpp
-http/XHTTP.h
-
-Added doxygen comments for all relevant headers in http.
-
-----------
-2002/07/28 17:25:13 crs
-io/CBufferedInputStream.cpp
-io/CBufferedInputStream.h
-io/CBufferedOutputStream.cpp
-io/CBufferedOutputStream.h
-io/CInputStreamFilter.h
-io/COutputStreamFilter.h
-io/CStreamBuffer.h
-io/IInputStream.h
-io/IOutputStream.h
-io/XIO.h
-
-Added doxygen comments for all relevant headers in io.
-
-----------
-2002/07/28 13:34:19 crs
-mt/CCondVar.h
-mt/CLock.h
-mt/CMutex.h
-mt/CThread.h
-mt/CThreadRep.h
-mt/CTimerThread.h
-mt/XThread.h
-
-Added doxygen comments for all relevant headers in mt.
-
-----------
-2002/07/26 18:28:18 crs
-base/CFunctionJob.h
-base/CLog.h
-base/CStopwatch.h
-base/CString.h
-base/CUnicode.h
-base/IInterface.h
-base/IJob.h
-base/TMethodJob.h
-base/XBase.h
-base/common.h
-
-added doxygen comments for all relevant headers in base.
-
-----------
-2002/07/26 18:27:31 crs
-platform/CXWindowsUtil.cpp
-
-fixed type mismatch (SInt32 vs int) in definition of
-getWindowProperty().
-
-----------
-2002/07/26 16:05:59 crs
-doc/doxygen.cfg
-
-added configuration file for building doxygen documentation.
-the code is not yet doxygen documented, though.
-
-----------
-2002/07/26 15:22:25 crs
-platform/CXWindowsUtil.cpp
-
-now deleting property when so requested even if read failed.
-
-----------
-2002/07/25 18:08:00 crs
-notes
-
-checkpoint.
-
-----------
-2002/07/25 17:58:01 crs
-client/client.cpp
-net/XSocket.cpp
-server/server.cpp
-
-improved error messages for bad addresses.
-
-----------
-2002/07/25 17:52:40 crs
-base/XBase.cpp
-http/XHTTP.cpp
-io/XIO.cpp
-net/XNetwork.cpp
-net/XSocket.cpp
-server/CConfig.cpp
-server/server.cpp
-synergy/CProtocolUtil.cpp
-synergy/XScreen.cpp
-synergy/XSynergy.cpp
-
-made all getWhat() methods on exceptions consistent. they now
-all use format() the same way. also changed format() to actually
-do formatting. however, it doesn't try looking up formatting
-strings by id, it just uses the fallback format string.
-
-----------
-2002/07/25 17:23:35 crs
-base/CLog.cpp
-base/CLog.h
-base/CString.cpp
-base/CString.h
-
-moved string formatting into CStringUtil from CLog and added
-methods for format positional string arguments.
-
-----------
-2002/07/25 09:55:01 crs
-platform/CXWindowsScreen.cpp
-
-added unix specific implementation of CXWindowsScreen::mainLoop()
-that uses poll() to process events more efficiently. it won't
-wake up nor sleep any more than necessary, unlike the platform
-independent implementation that polls and sleeps.
-
-----------
-2002/07/25 09:23:24 crs
-platform/CXWindowsClipboard.cpp
-
-finished INCR transfer changes. also made motifGetTime() return
-icccmGetTime() because it seems motif does TIMESTAMP like ICCCM.
-
-----------
-2002/07/25 08:57:46 crs
-platform/CXWindowsClipboard.cpp
-
-checkpoint. working on INCR transfers.
-
-----------
-2002/07/24 19:26:18 crs
-platform/CMSWindowsScreen.cpp
-platform/CWin32Platform.cpp
-platform/CWin32Platform.h
-
-fixes for win32 due to changes in how s_restartable is handled.
-the main change is that WM_QUIT now causes the thread to be
-cancelled instead of mainLoop() just returning. this also
-requires runDaemon() to call the run function in a new thread
-each time it calls it because it could can cancelled.
-
-----------
-2002/07/24 19:24:21 crs
-platform/CMSWindowsClipboardTextConverter.cpp
-platform/CMSWindowsClipboardUTF16Converter.cpp
-
-fixes for win32 clipboard due to CUnicode nul terminator changes.
-
-----------
-2002/07/24 19:23:46 crs
-base/CUnicode.cpp
-
-fixed an off-by-one error in UTF8ToText().
-
-----------
-2002/07/24 17:39:52 crs
-base/CUnicode.cpp
-
-fixed an off-by-one error in textToUTF8().
-
-----------
-2002/07/24 17:30:32 crs
-platform/CXWindowsClipboard.cpp
-platform/CXWindowsClipboard.h
-
-fixed type of TARGETS target.
-
-----------
-2002/07/24 17:22:01 crs
-base/CUnicode.cpp
-base/CUnicode.h
-platform/CMSWindowsClipboardTextConverter.cpp
-platform/CMSWindowsClipboardUTF16Converter.cpp
-
-made handling of nul terminators in CUnicode more sane.
-
-----------
-2002/07/24 17:07:52 crs
-platform/CXWindowsClipboard.cpp
-platform/CXWindowsClipboard.h
-
-some fixes for motif clipboard. still not handling incremental
-transfer through root window property because not sure of the
-protocol.
-
-----------
-2002/07/24 13:01:18 crs
-client/CClient.cpp
-client/client.cpp
-net/CTCPSocket.cpp
-net/XSocket.h
-platform/CUnixPlatform.cpp
-platform/CUnixPlatform.h
-platform/CWin32Platform.cpp
-platform/CWin32Platform.h
-platform/CXWindowsScreen.cpp
-platform/CXWindowsUtil.cpp
-platform/IPlatform.h
-server/CPrimaryClient.cpp
-server/CServer.cpp
-server/server.cpp
-synergy/ProtocolTypes.h
-synergy/Version.h
-
-removed restart function from platform. no longer trying to
-restart if the X server connection was lost; since synergy
-is likely to be started by xdm or the user's xsession, it's
-better for synergy to simply terminate when the connection
-is lost. synergy will still restart due to other errors.
-also fixed numerous other minor bugs and cleaned some stuff
-up (like app error codes are now consistent and enumerated
-in Version.h, for lack of a better place). and boosted
-version and protocol numbers.
-
-----------
-2002/07/23 19:00:01 crs
-notes
-
-checkpoint.
-
-----------
-2002/07/23 18:59:44 crs
-platform/CMSWindowsClipboard.cpp
-
-fixed a bug in clipboard conversion (was using wrong converter or
-no converter when one was available).
-
-----------
-2002/07/23 18:59:15 crs
-client/CMSWindowsSecondaryScreen.cpp
-server/CMSWindowsPrimaryScreen.cpp
-synergy/KeyTypes.h
-
-converted win32 to use unicode based KeyID.
-
-----------
-2002/07/23 17:04:41 crs
-client/CXWindowsSecondaryScreen.cpp
-server/CXWindowsPrimaryScreen.cpp
-synergy/KeyTypes.h
-
-checkpoint. converting KeyID to use UTF-32 encoding instead of
-X11 keysyms.
-
-----------
-2002/07/23 15:34:05 crs
-synergy/CClipboard.cpp
-synergy/IClipboard.h
-
-no longer attempting to unmarshall clipboard formats that aren't
-known to the caller. if the client supports more formats than
-the server then the server could get a clipboard format greater
-than kNumFormats. with this change the server discards the
-extra formats instead of crashing.
-
-----------
-2002/07/23 15:26:40 crs
-base/CUnicode.cpp
-base/CUnicode.h
-base/base.dsp
-platform/CMSWindowsClipboard.cpp
-platform/CMSWindowsClipboard.h
-platform/CMSWindowsClipboardAnyTextConverter.cpp
-platform/CMSWindowsClipboardAnyTextConverter.h
-platform/CMSWindowsClipboardTextConverter.cpp
-platform/CMSWindowsClipboardTextConverter.h
-platform/CMSWindowsClipboardUTF16Converter.cpp
-platform/CMSWindowsClipboardUTF16Converter.h
-platform/platform.dsp
-
-unicode clipboard changes for win32 plus some bug fixes.
-
-----------
-2002/07/23 12:35:36 crs
-platform/CXWindowsClipboard.cpp
-platform/CXWindowsClipboard.h
-
-removed unnecessary atoms from X clipboard object.
-
-----------
-2002/07/23 12:08:30 crs
-base/CUnicode.cpp
-
-checkpoint. more CUnicode fixes.
-
-----------
-2002/07/23 11:51:13 crs
-base/CUnicode.cpp
-
-checkpoint. fixed the other cases in the same function as the
-previous checkin. also prevented the errors flag from getting
-reset after the multibyte to wide character conversion.
-
-----------
-2002/07/23 11:42:54 crs
-base/CUnicode.cpp
-
-checkpoint. fixed cases for mbrtowc (was using 1 and 2 instead
-of -1 and -2).
-
-----------
-2002/07/23 11:36:18 crs
-base/CUnicode.cpp
-base/CUnicode.h
-platform/CXWindowsClipboard.cpp
-platform/CXWindowsClipboardTextConverter.cpp
-
-checkpoint. more UTF8 clipboard stuff.
-
-----------
-2002/07/23 09:33:50 crs
-base/CUnicode.cpp
-base/CUnicode.h
-platform/CXWindowsClipboard.cpp
-
-checkpoint. more UTF8 clipboard testing.
-
-----------
-2002/07/22 18:46:57 crs
-base/CUnicode.cpp
-platform/CXWindowsClipboard.cpp
-
-checkpoint. more UTF8 clipboard stuff.
-
-----------
-2002/07/22 18:17:21 crs
-platform/CXWindowsClipboard.cpp
-
-checkpoint. more UTF8 clipboard stuff.
-
-----------
-2002/07/22 18:03:44 crs
-platform/CXWindowsClipboard.cpp
-
-checkpoint. working on UTF8 clipboard transfer.
-
-----------
-2002/07/22 17:32:51 crs
-base/CUnicode.cpp
-base/CUnicode.h
-base/Makefile.am
-platform/CXWindowsClipboard.cpp
-platform/CXWindowsClipboard.h
-platform/CXWindowsClipboardTextConverter.cpp
-platform/CXWindowsClipboardTextConverter.h
-platform/CXWindowsClipboardUCS2Converter.cpp
-platform/CXWindowsClipboardUCS2Converter.h
-platform/CXWindowsClipboardUTF8Converter.cpp
-platform/CXWindowsClipboardUTF8Converter.h
-platform/Makefile.am
-synergy/IClipboard.h
-
-checkpoint. adding support for unicode in clipboard.
-
-----------
-2002/07/19 21:27:59 crs
-README
-
-changed notes about how to startup configure synergy. it now
-discourages using boot scripts, which can't handle X servers
-requiring authorization, and suggests modifying xdm's Xsetup.
-
-----------
-2002/07/19 20:44:57 crs
-examples/synergy.linux.init
-examples/synergyd.linux.init
-
-updated init.d scripts to work with SuSE. however, it looks as
-if they cannot be used on an X server using authentication
-because the daemons they start are not authorized to connect to
-the X server. X users should modify Xsetup or Xsession.
-
-----------
-2002/07/19 18:12:41 crs
-server/CXWindowsPrimaryScreen.cpp
-
-formatting.
-
-----------
-2002/07/19 17:39:45 crs
-server/CPrimaryScreen.cpp
-
-removed from previous change.
-
-----------
-2002/07/19 17:38:34 crs
-server/CPrimaryScreen.cpp
-
-reordered operations to reduce cursor flashing when entering
-primary screen.
-
-----------
-2002/07/18 17:03:10 crs
-platform/CSynergyHook.cpp
-server/CMSWindowsPrimaryScreen.cpp
-
-fixed handling of calling init() when a previous process did not
-call cleanup(). if that process still appears to exist then the
-init() fails. otherwise some cleanup is performed and the init()
-proceeds. a synergy server started while another is running will
-now exit immediately without interfering the original server.
-
-----------
-2002/07/18 17:00:48 crs
-server/CServer.cpp
-server/CServer.h
-
-now cancelling and waiting for the accept client thread before
-cancelling any other threads. this prevents a race condition
-where we disconnect a client but it reconnects before we
-manage to shutdown. that might leave a thread running and
-the connection won't be closed down properly.
-
-----------
-2002/07/18 16:58:08 crs
-mt/CThreadRep.cpp
-platform/CMSWindowsScreen.cpp
-
-changed waitForEvent() to handle a peculiar feature of
-MsgWaitForMultipleObjects(): it will not return immediately
-if an event already in the queue when it's called was already
-in the queue during the last call to GetMessage()/PeekMessage().
-also now discarding screen saver events if there are any other
-screen saver events in the queue already. this prevents these
-events from piling up in the queue, which they'd do because we
-sleep for 250ms when handling each one.
-
-----------
-2002/07/18 08:54:17 crs
-synergy.dsw
-
-fixed incorrect paths to makehook and synrgyhk project files.
-
-----------
-2002/07/17 17:27:41 crs
-platform/CMSWindowsScreen.cpp
-platform/CSynergyHook.cpp
-platform/CSynergyHook.h
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CPrimaryScreen.cpp
-server/CPrimaryScreen.h
-
-attempt to fix stuttering when leaving win32 screen. seems to
-work but will let testers make the final call. also fixed
-desktop synchronization by setting a variable that was
-mistakenly left unset. and tried to work around an apparent
-bug in MsgWaitForMultipleObjects() that prevented the service
-from closing down properly. start/pause/continue/stop
-sequence still doesn't shut down correctly. start/pause/stop
-and start/stop work fine.
-
-----------
-2002/07/17 17:24:44 crs
-client/CClient.cpp
-
-removed unnecessary local variable.
-
-----------
-2002/07/16 19:07:15 crs
-base/stdistream.h
-io/CStreamBuffer.cpp
-
-fixes to get it compiling on .NET.
-
-----------
-2002/07/16 16:52:26 crs
-client/CClient.cpp
-client/CClient.h
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-client/CSecondaryScreen.cpp
-client/CServerProxy.cpp
-client/CServerProxy.h
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-platform/CXWindowsScreen.cpp
-platform/IMSWindowsScreenEventHandler.h
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CPrimaryClient.cpp
-server/CPrimaryClient.h
-server/CPrimaryScreen.cpp
-server/CPrimaryScreen.h
-server/CServer.cpp
-server/CServer.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-synergy/IPrimaryScreenReceiver.h
-synergy/IScreen.h
-synergy/IScreenEventHandler.h
-synergy/IScreenReceiver.h
-synergy/IServer.h
-
-moved onError() method to IScreenReceiver from IPrimaryScreenReceiver.
-also implemented onError in CClient which previously did not have
-any way to handle display disconnection.
-
-----------
-2002/07/15 15:03:04 crs
-platform/CSynergyHook.cpp
-platform/synrgyhk.dsp
-
-completing previous checkin.
-
-----------
-2002/07/15 15:01:36 crs
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-client/CSecondaryScreen.cpp
-client/CSecondaryScreen.h
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-client/client.dsp
-platform/CMSWindowsScreen.cpp
-platform/CMSWindowsScreen.h
-platform/CSynergyHook.cpp
-platform/CSynergyHook.h
-platform/CXWindowsScreen.cpp
-platform/CXWindowsScreen.h
-platform/IMSWindowsScreenEventHandler.h
-platform/makehook.dsp
-platform/platform.dsp
-platform/synrgyhk.dsp
-server/CConfig.cpp
-server/CConfig.h
-server/CHTTPServer.cpp
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CPrimaryScreen.cpp
-server/CPrimaryScreen.h
-server/CServer.cpp
-server/CServer.h
-server/CSynergyHook.cpp
-server/CSynergyHook.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-server/makehook.dsp
-server/server.dsp
-server/synrgyhk.dsp
-synergy/IScreen.h
-synergy/IScreenEventHandler.h
-synergy/ProtocolTypes.h
-synergy/synergy.dsp
-
-checkpoint. refactored win32 code. had to edit and rename some
-files so this is only a checkpoint.
-
-----------
-2002/07/13 22:00:38 crs
-client/CClient.cpp
-client/CClient.h
-client/CSecondaryScreen.cpp
-client/CSecondaryScreen.h
-client/CServerProxy.cpp
-client/CServerProxy.h
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-client/ISecondaryScreen.h
-client/Makefile.am
-client/client.cpp
-platform/CXWindowsScreen.cpp
-platform/CXWindowsScreen.h
-server/CClientProxy.h
-server/CClientProxy1_0.cpp
-server/CClientProxy1_0.h
-server/CPrimaryClient.cpp
-server/CPrimaryClient.h
-server/CPrimaryScreen.cpp
-server/CPrimaryScreen.h
-server/CServer.cpp
-server/CServer.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-server/IPrimaryScreen.h
-server/Makefile.am
-server/server.cpp
-synergy/IClient.h
-synergy/IPrimaryScreenReceiver.h
-synergy/IScreen.h
-synergy/IScreenEventHandler.h
-synergy/IScreenReceiver.h
-synergy/IServer.h
-synergy/Makefile.am
-
-checkpoint. still refactoring. merged common code from primary
-screens into CPrimaryScreen and merged common code from secondary
-screens into CSecondaryScreen. changed is-a relationship to a
-has-a between the primary and secondary screen classes and the
-generic platform dependent screen class to avoid multiple
-inheritance of implementation. also standardized the interface
-for those generic screen classes. adding a platform now involves
-implementing simpler interfaces: IScreen for the generic screen,
-IScreenEventHandler and some methods of CPrimaryScreen for the
-primary screen, and IScreenEventHandler and some methods of
-CSecondaryScreen for the secondary screen. did X11 platform
-but not win32 platform.
-
-----------
-2002/07/12 20:41:23 crs
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-platform/CMSWindowsScreen.cpp
-platform/CMSWindowsScreen.h
-platform/CXWindowsScreen.cpp
-platform/CXWindowsScreen.h
-platform/CXWindowsScreenSaver.cpp
-platform/CXWindowsScreenSaver.h
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-
-refactoring. refactored stuff in client (with changes to server
-as necessary).
-
-----------
-2002/07/11 18:58:49 crs
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-platform/CMSWindowsScreen.cpp
-platform/CMSWindowsScreen.h
-platform/CXWindowsScreen.cpp
-platform/CXWindowsScreen.h
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-
-checkpoint. making win32 and X primary screen code more similar
-in order to share code later.
-
-----------
-2002/07/11 13:13:37 crs
-client/CClient.cpp
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-client/CServerProxy.cpp
-client/client.dsp
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CPrimaryClient.cpp
-server/CPrimaryClient.h
-server/CServer.cpp
-server/CServer.h
-server/CSynergyHook.cpp
-server/CSynergyHook.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-server/IPrimaryScreen.h
-server/server.dsp
-synergy/synergy.dsp
-
-applied refactoring to win32 code.
-
-----------
-2002/07/10 21:22:28 crs
-client/CClient.cpp
-client/CClient.h
-client/CServerProxy.cpp
-client/CServerProxy.h
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-client/ISecondaryScreen.h
-server/CPrimaryClient.cpp
-server/CPrimaryClient.h
-server/CServer.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-synergy/IPrimaryScreenReceiver.h
-synergy/IScreenReceiver.h
-synergy/IServer.h
-synergy/Makefile.am
-
-more refactoring.
-
-----------
-2002/07/10 20:18:32 crs
-client/CClient.cpp
-client/CClient.h
-client/CServerProxy.cpp
-client/CServerProxy.h
-client/ISecondaryScreen.h
-client/Makefile.am
-client/client.cpp
-server/CClientProxy.h
-server/CClientProxy1_0.cpp
-server/CClientProxy1_0.h
-server/CPrimaryClient.cpp
-server/CPrimaryClient.h
-server/CServer.cpp
-synergy/IClient.h
-synergy/ISecondaryScreen.h
-synergy/Makefile.am
-
-refactored client code. it now uses IClient and IServer and
-has a CServerProxy, making it's design similar to the server
-code.
-
-----------
-2002/07/10 14:29:50 crs
-synergy/IClient.h
-
-removed some obsolete comments.
-
-----------
-2002/07/10 14:15:17 crs
-server/CClientProxy1_0.cpp
-server/CClientProxy1_0.h
-server/CPrimaryClient.cpp
-server/CPrimaryClient.h
-server/CServer.cpp
-server/CServer.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-server/IPrimaryReceiver.h
-server/Makefile.am
-synergy/IServer.h
-synergy/ProtocolTypes.h
-
-removed IPrimaryReceiver in favor of IServer, which required a few
-minor changes to support IPrimaryReciever's functionality. this
-does mean that the IPrimaryScreen class will be calling some
-methods with dummy arguments. those are documented in
-CPrimaryClient.
-
-----------
-2002/07/09 21:22:31 crs
-acinclude.m4
-acsite.m4
-config/depcomp
-config/install-sh
-config/missing
-config/mkinstalldirs
-mt/CThread.cpp
-mt/CThread.h
-notes
-platform/CXWindowsClipboard.cpp
-server/CClientProxy.cpp
-server/CClientProxy.h
-server/CClientProxy1_0.cpp
-server/CClientProxy1_0.h
-server/CPrimaryClient.cpp
-server/CPrimaryClient.h
-server/CServer.cpp
-server/CServer.h
-server/CServerProtocol.cpp
-server/CServerProtocol.h
-server/CServerProtocol1_0.cpp
-server/CServerProtocol1_0.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-server/IPrimaryReceiver.h
-server/IPrimaryScreen.h
-server/IServerProtocol.h
-server/Makefile.am
-synergy/IClient.h
-synergy/IServer.h
-synergy/Makefile.am
-
-updated to new automake and refactored server stuff. the server
-now speaks to the primary screen and secondary screens almost
-everywhere the same way through an IClient interface; only
-special primary screen calls are accessed through a different
-interface, the CPrimaryClient interface. this simplifies the
-server since it no longer needs to test whether the active screen
-is the primary or a secondary in most cases.
-
-the server no longer speaks directly to the primary screen; all
-that goes through the CPrimaryClient, which often just forwards
-the call. the primary screen no longer speaks directly to the
-server either, again going through the CPrimaryClient via a
-IPrimaryReceiver interface.
-
-CServerProtocol classes have been replaced by CClientProxy
-classes which are very similar. the name makes more sense
-though.
-
-----------
-2002/07/09 17:31:45 crs
-server/IPrimaryScreen.h
-synergy/IPrimaryScreen.h
-synergy/Makefile.am
-
-checkpoint. moved IPrimaryScreen.h.
-
-----------
-2002/07/07 15:15:34 crs
-server/IServerProtocol.h
-synergy/IServerProtocol.h
-
-moved IServerProtocol to server from synergy directory.
-
-----------
-2002/07/03 16:25:36 crs
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-
-fixed spurious mouse motions when entering/leaving primary
-screen on X11.
-
-----------
-2002/07/01 15:05:49 crs
-server/CMSWindowsPrimaryScreen.cpp
-
-mistakenly removed mouse button checks when on secondary screens
-from isLockedToScreen() in earlier checkin.
-
-----------
-2002/07/01 14:01:23 crs
-README
-notes
-
-checkpoint.
-
-----------
-2002/07/01 13:03:16 crs
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-synergy/ISecondaryScreen.h
-
-now synthesizing key release events for each pressed key when
-the client screen is closed. this fixes the bug where the
-client's keyboard was left with some keys logically pressed
-when the client died (e.g. using ctrl+c on the client program
-from the server's keyboard would leave the ctrl key logically
-pressed).
-
-----------
-2002/07/01 13:01:16 crs
-server/CServerProtocol1_0.cpp
-
-disabled removing client if no heartbeat is received. we don't
-want that while testing because it might hide bugs.
-
-----------
-2002/07/01 13:00:12 crs
-server/CMSWindowsPrimaryScreen.cpp
-
-fixed locking to screen on win32. was using GetKeyboardState()
-to query keys but that doesn't give us up-to-date information.
-now using GetAsyncKeyState() if on primary and m_keys if on
-secondary.
-
-----------
-2002/07/01 12:58:52 crs
-platform/CMSWindowsScreenSaver.cpp
-platform/CMSWindowsScreenSaver.h
-
-added win32 screen saver class forgotten in previous checkins.
-
-----------
-2002/06/26 16:31:48 crs
-client/CClient.cpp
-http/CHTTPProtocol.cpp
-io/CBufferedInputStream.cpp
-io/CBufferedInputStream.h
-io/CInputStreamFilter.h
-io/IInputStream.h
-server/CMSWindowsPrimaryScreen.cpp
-server/CServer.cpp
-server/CServerProtocol1_0.cpp
-server/CSynergyHook.cpp
-synergy/CInputPacketStream.cpp
-synergy/CInputPacketStream.h
-synergy/CProtocolUtil.cpp
-synergy/ProtocolTypes.h
-
-synergy hook DLL will now restart itself if a client tries to
-init() it while it's already running. fixed an uninitialized
-pointer bug in CServer and some cleanup-on-error code in
-CMSWindowsPrimaryScreen. also added timeout to read() on
-IInputStream and a heartbeat sent by clients so the server
-can disconnect clients that are dead but never reset the TCP
-connection. previously the server would keep these dead
-clients around forever and if the user was locked on the
-client screen for some reason then the server would have to
-be rebooted (or the server would have to be killed via a
-remote login).
-
-----------
-2002/06/26 13:48:08 crs
-client/CClient.cpp
-client/CClient.h
-
-client now compresses mouse motion events. this fixes slow
-dragging on grace, possibly on win32 too.
-
-----------
-2002/06/26 13:31:06 crs
-synergy/CInputPacketStream.cpp
-synergy/CInputPacketStream.h
-
-fixed getSize() to be non-blocking in CInputPacketStream.
-
-----------
-2002/06/26 12:44:52 crs
-platform/CXWindowsScreen.cpp
-platform/CXWindowsScreenSaver.h
-
-fixed re-entrant calls to X bug.
-
-----------
-2002/06/23 23:24:22 crs
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CServer.cpp
-server/CServer.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-synergy/IPrimaryScreen.h
-
-fixed handling of jumping to primary when screen saver starts
-and back to secondary when it stops. also now redirecting
-keyboard input to root window when screen saver starts; this
-allows the user to type in the lock dialog and also effectively
-discards any input used to deactivate the screen saver.
-
-----------
-2002/06/23 21:54:05 crs
-notes
-
-checkpoint.
-
-----------
-2002/06/23 21:53:31 crs
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-platform/CMSWindowsScreen.cpp
-platform/CMSWindowsScreen.h
-platform/platform.dsp
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CSynergyHook.cpp
-server/CSynergyHook.h
-
-win32 screen saver now handled.
-
-----------
-2002/06/23 21:48:33 crs
-platform/CXWindowsScreenSaver.cpp
-platform/CXWindowsScreenSaver.h
-
-now disabling disable job timer when forcing screen saver
-activation. previously the timer would deactivate the screen
-saver shortly after activation. job timer is restored when
-the screen saver is deactivated.
-
-----------
-2002/06/23 15:43:40 crs
-platform/CXWindowsScreen.cpp
-platform/CXWindowsScreen.h
-platform/CXWindowsScreenSaver.cpp
-platform/CXWindowsScreenSaver.h
-platform/CXWindowsUtil.cpp
-server/CServer.cpp
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-server/Makefile.am
-synergy/IPrimaryScreen.h
-
-checkpoint screensaver changes. now handling xscreensaver
-dying and restarting or starting after synergy does. also
-now disabling the screen saver on the client. next step:
-win32 support.
-
-----------
-2002/06/22 20:29:59 crs
-platform/CXWindowsScreen.cpp
-platform/CXWindowsScreenSaver.cpp
-platform/CXWindowsScreenSaver.h
-
-fixes to get xscreensaver integration working.
-
-----------
-2002/06/22 19:47:27 crs
-platform/CXWindowsClipboard.cpp
-platform/CXWindowsScreenSaver.cpp
-platform/CXWindowsUtil.cpp
-platform/CXWindowsUtil.h
-server/CXWindowsPrimaryScreen.cpp
-
-CXWindowsUtil::CErrorLock wasn't XSync()'ing the display before
-installing and uninstalling the new error handler, causing
-errors before the lock to be caught and errors during the lock
-to not be caught. had to add Display* as argument to c'tor.
-
-----------
-2002/06/22 19:20:21 crs
-client/CClient.cpp
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-platform/CXWindowsScreen.cpp
-platform/CXWindowsScreen.h
-platform/CXWindowsScreenSaver.cpp
-platform/CXWindowsScreenSaver.h
-platform/Makefile.am
-server/CServer.cpp
-server/CServer.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-synergy/IPrimaryScreen.h
-synergy/IScreenSaver.h
-synergy/ISecondaryScreen.h
-synergy/Makefile.am
-
-checkpoint. adding screen saver support. only on X so far
-and untested. also some known problems: not detecting an
-xscreensaver started after us and not detecting built-in
-screen saver activation (not sure if we can without using
-ugly extensions).
-
-----------
-2002/06/22 17:31:24 crs
-client/Makefile.am
-http/Makefile.am
-io/Makefile.am
-mt/Makefile.am
-net/Makefile.am
-platform/Makefile.am
-server/Makefile.am
-synergy/Makefile.am
-
-added header files to _SOURCES.
-
-----------
-2002/06/22 13:55:45 crs
-server/CXWindowsPrimaryScreen.cpp
-
-added comments.
-
-----------
-2002/06/22 12:09:49 crs
-client/CXWindowsSecondaryScreen.cpp
-
-cleanup.
-
-----------
-2002/06/21 17:55:47 crs
-client/CClient.cpp
-client/CClient.h
-client/CXWindowsSecondaryScreen.cpp
-client/client.cpp
-server/CServer.cpp
-server/CServer.h
-server/server.cpp
-
-cleaned up some minor bugs.
-
-----------
-2002/06/21 17:54:22 crs
-net/CNetwork.cpp
-net/CNetwork.h
-
-ported network changes to win32.
-
-----------
-2002/06/21 16:29:35 crs
-net/CNetworkAddress.cpp
-
-now trying to convert hostname as a dot notation address before
-trying name lookup. not all platforms will do this for us in
-gethostbyname().
-
-----------
-2002/06/21 16:19:08 crs
-net/CNetwork.cpp
-net/CNetwork.h
-net/CTCPListenSocket.cpp
-net/CTCPSocket.cpp
-
-fixed CTCPSocket::connect() to allow cancellation.
-
-----------
-2002/06/21 15:18:01 crs
-server/CServer.cpp
-server/CServer.h
-
-some cleanup. also fixed a race condition when adding threads
-to the thread list: the child thread would add itself to the
-list which means there could be a time interval in the parent
-where the child thread exists but isn't on the list. the
-parent now does the adding and removing.
-
-----------
-2002/06/21 15:15:34 crs
-platform/CUnixPlatform.cpp
-
-now blocking SIGINT and SIGTERM in restart function. the child
-should handle the signal and terminate. then the restart
-function will exit.
-
-----------
-2002/06/21 15:14:32 crs
-mt/CThreadRep.cpp
-
-signal handler thread now dies when SIGABRT is raised. ignoring
-SIGABRT in sigwait() seems to be a bug in the linux pthread
-library.
-
-----------
-2002/06/20 16:27:49 crs
-platform/CXWindowsClipboard.cpp
-platform/CXWindowsClipboard.h
-
-fixed bug introduced by previous checkin. calling XCheckIfEvent()
-multiple times is *not* the same as calling XIfEvent() because the
-former will re-encounter events that it didn't process previously.
-to make things simple it now pulls events off the queue and saves
-them if not processed for selection transfer and puts them back
-afterwards.
-
-----------
-2002/06/20 14:01:44 crs
-platform/CXWindowsClipboard.cpp
-
-speeded up clipboard transfer by avoiding a selection request
-when it wasn't necessary. (in particular, we were getting the
-clipboard update time from the owner then emptying the clipboard,
-so we didn't need to get the time. worse, most owners don't
-support getting the time and we often timed out.)
-
-also fixed a multithread bug using the X display. we were using
-a CThread to send an event after a timeout while we were waiting
-in XIfEvent(). this necessarily involved two threads calling
-into Xlib at once, which is not allowed. now using polling to
-do the timeout because Xlib doesn't have a function to get
-events with a timeout.
-
-----------
-2002/06/20 13:35:28 crs
-platform/CXWindowsClipboard.cpp
-platform/CXWindowsClipboard.h
-
-checkpoint. trying to fix a delay when sending clipboards on X.
-
-----------
-2002/06/20 11:13:37 crs
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-
-added workaround for bug windows 98 (Me?) and multiple displays:
-absolute mouse_event() moves don't work except for primary
-display.
-
-----------
-2002/06/20 09:19:55 crs
-server/CXWindowsPrimaryScreen.cpp
-
-work around for bug with mouse driver on lombard powerbook.
-
-----------
-2002/06/19 20:24:35 crs
-client/CMSWindowsSecondaryScreen.cpp
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CSynergyHook.cpp
-server/CSynergyHook.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-
-fixed bugs in mouse motion. wasn't taking care to capture all
-motion events relative to the previous mouse position. for
-example, if two mouse events arrive, the first at x+1,y and
-the second at x+2,y, we used to compute deltas of 1,0 and 2,0
-instead of 1,0 and 1,0. that's fixed. also worked around a
-bug (probably) in windows that caused a motion event after a
-SetCursorPos() to be lost or reported one pixel off from the
-correct position. now using mouse_event() which doesn't
-have that problem. also fixed calculation of normalized
-coordinates for mouse_event() when there are multiple
-displays.
-
-----------
-2002/06/19 17:03:29 crs
-client/CClient.cpp
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-platform/CMSWindowsScreen.cpp
-platform/CMSWindowsScreen.h
-platform/CXWindowsScreen.cpp
-platform/CXWindowsScreen.h
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CServer.cpp
-server/CServer.h
-server/CServerProtocol1_0.cpp
-server/CSynergyHook.cpp
-server/CSynergyHook.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-synergy/IPrimaryScreen.h
-synergy/ISecondaryScreen.h
-synergy/ProtocolTypes.h
-
-checkpoint. initial support for multiple displays on win32.
-
-----------
-2002/06/19 14:45:22 crs
-client/Makefile.am
-configure.in
-server/Makefile.am
-
-fixed addition of X11 -L and -l options on link lines.
-
-----------
-2002/06/19 12:21:26 crs
-configure.in
-platform/CUnixPlatform.cpp
-
-checkpoint. automake changes for wait().
-
-----------
-2002/06/19 11:58:48 crs
-configure.in
-http/CHTTPProtocol.cpp
-platform/CUnixPlatform.cpp
-
-checkpoint. automake changes for reentrant functions.
-
-----------
-2002/06/19 11:23:49 crs
-base/BasicTypes.h
-base/CLog.cpp
-base/CLog.h
-base/CStopwatch.cpp
-base/XBase.cpp
-base/common.h
-base/stdistream.h
-base/stdostream.h
-client/CClient.cpp
-client/CXWindowsSecondaryScreen.cpp
-client/client.cpp
-configure.in
-mt/CCondVar.cpp
-mt/CCondVar.h
-mt/CMutex.cpp
-mt/CThread.cpp
-mt/CThread.h
-mt/CThreadRep.cpp
-mt/CThreadRep.h
-net/CNetwork.cpp
-net/CNetwork.h
-platform/CPlatform.cpp
-platform/CPlatform.h
-platform/CXWindowsClipboard.h
-platform/CXWindowsScreen.h
-platform/CXWindowsUtil.h
-server/CServer.cpp
-server/CSynergyHook.h
-server/CXWindowsPrimaryScreen.cpp
-server/server.cpp
-synergy/CProtocolUtil.h
-
-checkpoint. more conversion to automake.
-
-----------
-2002/06/19 08:23:08 crs
-config/install-sh
-config/missing
-config/mkinstalldirs
-configure.in
-install-sh
-missing
-mkinstalldirs
-
-moved auxillary automake files into config directory.
-
-----------
-2002/06/18 19:47:52 crs
-install-sh
-missing
-mkinstalldirs
-
-added automake required tools.
-
-----------
-2002/06/18 19:44:34 crs
-Make-linux
-Make-solaris
-Makecommon
-Makefile
-Makefile.am
-acsite.m4
-base/Makefile
-base/Makefile.am
-client/Makefile
-client/Makefile.am
-configure.in
-http/Makefile
-http/Makefile.am
-io/Makefile
-io/Makefile.am
-mt/Makefile
-mt/Makefile.am
-net/Makefile
-net/Makefile.am
-platform/Makefile
-platform/Makefile.am
-server/Makefile
-server/Makefile.am
-synergy/Makefile
-synergy/Makefile.am
-tools/depconv
-
-started to convert to autoconf/automake.
-
-----------
-2002/06/18 18:34:55 crs
-base/CLog.cpp
-
-now checking vsnprintf result against < 0 instead of == -1
-for portability.
-
-----------
-2002/06/18 18:33:59 crs
-net/XSocket.cpp
-
-added FIXME to commented out code.
-
-----------
-2002/06/17 15:44:45 crs
-README
-client/client.cpp
-server/server.cpp
-
-made command line parsing a little more sane with respect to
-windows NT services.
-
-----------
-2002/06/17 14:10:25 crs
-README
-
-updates
-
-----------
-2002/06/17 13:31:21 crs
-base/CLog.cpp
-base/CString.cpp
-base/XBase.cpp
-client/CClient.cpp
-client/CMSWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.cpp
-client/client.cpp
-http/CHTTPProtocol.cpp
-http/XHTTP.cpp
-io/CBufferedInputStream.cpp
-io/CBufferedOutputStream.cpp
-io/CInputStreamFilter.cpp
-io/COutputStreamFilter.cpp
-io/CStreamBuffer.cpp
-mt/CCondVar.cpp
-mt/CMutex.cpp
-mt/CThread.cpp
-mt/CThreadRep.cpp
-mt/CTimerThread.cpp
-net/CNetwork.cpp
-net/CNetworkAddress.cpp
-net/CTCPListenSocket.cpp
-net/CTCPSocket.cpp
-net/XNetwork.cpp
-net/XSocket.cpp
-platform/CMSWindowsClipboard.cpp
-platform/CMSWindowsScreen.cpp
-platform/CUnixPlatform.cpp
-platform/CWin32Platform.cpp
-platform/CXWindowsClipboard.cpp
-platform/CXWindowsScreen.cpp
-platform/CXWindowsUtil.cpp
-server/CConfig.cpp
-server/CHTTPServer.cpp
-server/CMSWindowsPrimaryScreen.cpp
-server/CServer.cpp
-server/CServerProtocol.cpp
-server/CServerProtocol1_0.cpp
-server/CSynergyHook.cpp
-server/CXWindowsPrimaryScreen.cpp
-server/server.cpp
-synergy/CClipboard.cpp
-synergy/CInputPacketStream.cpp
-synergy/COutputPacketStream.cpp
-synergy/CProtocolUtil.cpp
-synergy/XSynergy.cpp
-
-formatting changes.
-
-----------
-2002/06/17 12:02:26 crs
-client/CClient.cpp
-net/CTCPListenSocket.cpp
-net/CTCPListenSocket.h
-net/CTCPSocket.cpp
-net/CTCPSocket.h
-net/IDataSocket.h
-net/IListenSocket.h
-net/ISocket.h
-server/CHTTPServer.cpp
-server/CHTTPServer.h
-server/CServer.cpp
-synergy/CTCPSocketFactory.cpp
-synergy/CTCPSocketFactory.h
-synergy/ISocketFactory.h
-
-refactored ISocket into IDataSocket. the latter and IListenSocket
-now derive from ISocket.
-
-----------
-2002/06/14 18:08:20 crs
-base/CFunctionJob.cpp
-base/CFunctionJob.h
-base/CLog.cpp
-base/TMethodJob.h
-base/common.h
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-client/client.cpp
-io/CStreamBuffer.cpp
-io/CStreamBuffer.h
-mt/CThread.cpp
-mt/CThread.h
-mt/CThreadRep.cpp
-mt/CThreadRep.h
-platform/CMSWindowsScreen.cpp
-platform/CUnixPlatform.cpp
-platform/CUnixPlatform.h
-platform/CWin32Platform.cpp
-platform/CWin32Platform.h
-platform/IPlatform.h
-server/server.cpp
-
-performance fixes on win32 plus clean up of some warnings. also
-improved error messages when uninstalling service.
-
-----------
-2002/06/11 20:10:49 crs
-README
-
-added a blurb about synrgyhk.dll and that the service manager
-will look for the binary wherever it was when --install was
-used.
-
-----------
-2002/06/11 20:09:59 crs
-base/stdpre.h
-platform/CMSWindowsScreen.h
-
-windows fixes needed for formatting changes.
-
-----------
-2002/06/11 18:33:03 crs
-client/CXWindowsSecondaryScreen.cpp
-
-commented out half-duplex flags that should never have been
-uncommented.
-
-----------
-2002/06/11 18:31:06 crs
-server/CServer.cpp
-
-fixed bug with switching screens on primary when there's no
-link in that direction (it would assert). introduced bug
-when adding support for wrapping. now ignores attempts to
-move in a direction with no link.
-
-----------
-2002/06/11 18:30:08 crs
-platform/CUnixPlatform.cpp
-
-added missing #include .
-
-----------
-2002/06/10 22:06:45 crs
-base/BasicTypes.h
-base/CFunctionJob.cpp
-base/CLog.cpp
-base/CLog.h
-base/CString.cpp
-base/CString.h
-base/TMethodJob.h
-base/XBase.cpp
-base/XBase.h
-base/common.h
-base/stdistream.h
-base/stdostream.h
-client/CClient.cpp
-client/CClient.h
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-client/client.cpp
-http/CHTTPProtocol.cpp
-http/CHTTPProtocol.h
-http/XHTTP.cpp
-http/XHTTP.h
-io/CBufferedInputStream.cpp
-io/CBufferedInputStream.h
-io/CBufferedOutputStream.cpp
-io/CBufferedOutputStream.h
-io/CInputStreamFilter.cpp
-io/COutputStreamFilter.cpp
-io/CStreamBuffer.cpp
-io/IInputStream.h
-io/IOutputStream.h
-io/XIO.cpp
-io/XIO.h
-mt/CCondVar.cpp
-mt/CCondVar.h
-mt/CLock.cpp
-mt/CLock.h
-mt/CMutex.cpp
-mt/CMutex.h
-mt/CThread.cpp
-mt/CThread.h
-mt/CThreadRep.cpp
-mt/CTimerThread.cpp
-mt/CTimerThread.h
-mt/XThread.h
-net/CNetwork.cpp
-net/CNetworkAddress.cpp
-net/CNetworkAddress.h
-net/CTCPListenSocket.cpp
-net/CTCPSocket.cpp
-net/CTCPSocket.h
-net/IListenSocket.h
-net/ISocket.h
-net/Makefile
-net/XNetwork.cpp
-net/XNetwork.h
-net/XSocket.cpp
-net/XSocket.h
-platform/CMSWindowsClipboard.cpp
-platform/CMSWindowsScreen.cpp
-platform/CMSWindowsScreen.h
-platform/CPlatform.cpp
-platform/CUnixPlatform.cpp
-platform/CUnixPlatform.h
-platform/CWin32Platform.cpp
-platform/CWin32Platform.h
-platform/CXWindowsClipboard.cpp
-platform/CXWindowsClipboard.h
-platform/CXWindowsScreen.cpp
-platform/CXWindowsScreen.h
-platform/CXWindowsUtil.cpp
-platform/CXWindowsUtil.h
-platform/IPlatform.h
-server/CConfig.cpp
-server/CConfig.h
-server/CHTTPServer.cpp
-server/CHTTPServer.h
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CServer.cpp
-server/CServer.h
-server/CServerProtocol.cpp
-server/CServerProtocol.h
-server/CServerProtocol1_0.cpp
-server/CServerProtocol1_0.h
-server/CSynergyHook.cpp
-server/CSynergyHook.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-server/server.cpp
-synergy/CClipboard.cpp
-synergy/CClipboard.h
-synergy/CInputPacketStream.cpp
-synergy/COutputPacketStream.cpp
-synergy/CProtocolUtil.cpp
-synergy/CProtocolUtil.h
-synergy/CTCPSocketFactory.cpp
-synergy/IClipboard.h
-synergy/IPrimaryScreen.h
-synergy/ISecondaryScreen.h
-synergy/IServerProtocol.h
-synergy/ISocketFactory.h
-synergy/XScreen.cpp
-synergy/XSynergy.cpp
-
-indentation and other formatting changes. also cleaned up
-#includes.
-
-----------
-2002/06/10 16:49:46 crs
-base/CLog.cpp
-base/CStopwatch.cpp
-mt/CCondVar.cpp
-mt/CMutex.cpp
-mt/CThreadRep.h
-net/CNetwork.cpp
-net/CNetwork.h
-platform/CMSWindowsClipboard.h
-platform/CMSWindowsScreen.h
-platform/CWin32Platform.h
-server/CSynergyHook.h
-server/synrgyhk.dsp
-
-win32 changes. now including windows.h with WIN32_LEAN_AND_MEAN
-to avoid including some stuff we don't want (like winsock).
-
-----------
-2002/06/10 11:09:02 crs
-README
-
-fixes.
-
-----------
-2002/06/10 11:08:02 crs
-README
-
-updates.
-
-----------
-2002/06/10 11:00:55 crs
-README
-examples/synergy.conf
-examples/synergy.linux.init
-examples/synergyd.linux.init
-
-added example files and a README.
-
-----------
-2002/06/10 10:08:36 crs
-server/CMSWindowsPrimaryScreen.cpp
-server/CServer.cpp
-server/CXWindowsPrimaryScreen.cpp
-
-now allowing a screen to be its own neighbor to allow wrapping.
-also no longer warping mouse to 0,0 when setting server screen
-info. that was causing the mouse to jump if the server screen
-had itself as its left or top neighbor (directly or indirectly)
-once a screen could be its own neighbor.
-
-----------
-2002/06/10 09:49:21 crs
-server/CConfig.cpp
-
-fixed stripping of comments from configuration streams.
-
-----------
-2002/06/10 09:49:03 crs
-client/client.cpp
-server/server.cpp
-
-changed "permitted" to "supported" in error messages.
-
-----------
-2002/06/09 23:08:18 crs
-client/CClient.cpp
-
-no longer camps if the server sends an error message.
-
-----------
-2002/06/09 22:20:28 crs
-client/CClient.cpp
-client/CClient.h
-client/client.cpp
-
-added support for camping, i.e. repeatly trying to connect to the
-server until we succeed.
-
-----------
-2002/06/09 22:20:01 crs
-mt/CTimerThread.cpp
-mt/CTimerThread.h
-
-CTimerThread now allows zero and negative timeouts. a negative
-timeout never times out and CTimerThread is a no-op.
-
-----------
-2002/06/09 18:03:32 crs
-platform/CXWindowsScreen.cpp
-
-now using ":0.0" as the display if DISPLAY isn't set.
-
-----------
-2002/06/09 18:00:03 crs
-notes
-
-checkpoint.
-
-----------
-2002/06/09 17:59:32 crs
-client/client.cpp
-server/CServer.cpp
-server/CServer.h
-server/server.cpp
-
-added command line option to choose the screen name. also now
-using the hostname as the default name. this is on both client
-and server.
-
-----------
-2002/06/09 17:35:28 crs
-mt/CThreadRep.cpp
-
-added FIXME comment.
-
-----------
-2002/06/09 17:21:33 crs
-server/CServer.cpp
-
-fixed problem with setConfig(). if the new config didn't
-include a screen that was already connected under an alias
-then that screen wouldn't be disconnected and removed from
-the screen list until the screen voluntarily disconnected.
-at that time removeConnection() would assert because the
-screen name would not be found. now using the canonical
-name in the protocol object as well as CServer. this
-allows setConfig() to always detect removed screens and
-disconnect them.
-
-----------
-2002/06/09 16:53:57 crs
-platform/CUnixPlatform.cpp
-
-now exits instead of restarting if child dies due to an
-unexpected signal.
-
-----------
-2002/06/09 16:53:25 crs
-client/client.cpp
-net/CNetwork.cpp
-net/CNetwork.h
-net/CNetworkAddress.cpp
-net/CNetworkAddress.h
-net/XSocket.cpp
-net/XSocket.h
-server/CConfig.cpp
-server/CConfig.h
-server/CHTTPServer.cpp
-server/CServer.cpp
-server/CServer.h
-server/server.cpp
-synergy/ProtocolTypes.h
-
-added command line and configuration file arguments to choose
-the address and port to listen on or connect to. changed the
-default port and put it in ProtocolTypes.h. the HTTP port is
-now no longer opened unless the --http argument is supplied
-or the config file includes it.
-
-----------
-2002/06/08 23:24:40 crs
-server/CConfig.cpp
-server/CConfig.h
-server/CServer.cpp
-server/server.cpp
-
-added aliases to configuration. an alias is another name for
-a screen. it's expected that the server will want to accept
-a given client under several names (e.g. the hostname and the
-FQDN).
-
-----------
-2002/06/08 21:48:16 crs
-notes
-
-checkpoint.
-
-----------
-2002/06/08 21:48:00 crs
-all.dsp
-base/CLog.cpp
-base/CLog.h
-base/base.dsp
-base/common.h
-base/stdpre.h
-client/CClient.cpp
-client/CClient.h
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-client/client.cpp
-client/client.dsp
-http/http.dsp
-io/io.dsp
-mt/CThreadRep.cpp
-mt/mt.dsp
-net/net.dsp
-platform/CMSWindowsScreen.cpp
-platform/CMSWindowsScreen.h
-platform/CUnixPlatform.cpp
-platform/CUnixPlatform.h
-platform/CWin32Platform.cpp
-platform/CWin32Platform.h
-platform/IPlatform.h
-platform/platform.dsp
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CServer.cpp
-server/CSynergyHook.cpp
-server/CSynergyHook.h
-server/makehook.dsp
-server/server.cpp
-server/server.dsp
-server/synrgyhk.dsp
-synergy/IPrimaryScreen.h
-synergy/synergy.dsp
-
-win32 changes. changed names of binaries. added support for
-running as (and installing/installing) a service. added
-support for multiple desktops (NT only, 95 doesn't support
-multiple desktops).
-
-----------
-2002/06/04 12:26:23 crs
-Makefile
-client/Makefile
-client/client.cpp
-client/client.dsp
-platform/CMSWindowsClipboard.cpp
-platform/CMSWindowsClipboard.h
-platform/CMSWindowsScreen.cpp
-platform/CMSWindowsScreen.h
-platform/CPlatform.cpp
-platform/CPlatform.h
-platform/CUnixPlatform.cpp
-platform/CUnixPlatform.h
-platform/CWin32Platform.cpp
-platform/CWin32Platform.h
-platform/CXWindowsClipboard.cpp
-platform/CXWindowsClipboard.h
-platform/CXWindowsScreen.cpp
-platform/CXWindowsScreen.h
-platform/CXWindowsUtil.cpp
-platform/CXWindowsUtil.h
-platform/IPlatform.h
-platform/Makefile
-server/Makefile
-server/server.cpp
-server/server.dsp
-synergy.dsw
-synergy/CMSWindowsClipboard.cpp
-synergy/CMSWindowsClipboard.h
-synergy/CMSWindowsScreen.cpp
-synergy/CMSWindowsScreen.h
-synergy/CXWindowsClipboard.cpp
-synergy/CXWindowsClipboard.h
-synergy/CXWindowsScreen.cpp
-synergy/CXWindowsScreen.h
-synergy/CXWindowsUtil.cpp
-synergy/CXWindowsUtil.h
-synergy/Makefile
-synergy/synergy.dsp
-test.cpp
-
-refactored some common platform dependent stuff into a new
-library: platform. also removed test.cpp.
-
-----------
-2002/06/04 11:06:26 crs
-client/CClient.cpp
-client/client.cpp
-server/CServer.cpp
-server/CServerProtocol.cpp
-server/server.cpp
-synergy/ProtocolTypes.h
-synergy/Version.h
-
-added command line parsing, restartability, and daemonizing to
-client. broke win32 stuff though. also moved version and
-copyright constants into a new file and renamed protocol
-version constants.
-
-----------
-2002/06/04 11:03:34 crs
-base/CLog.cpp
-
-fixed delete bug in printt -- when skipping file and line the
-deleted pointer was wrong.
-
-----------
-2002/06/04 11:02:33 crs
-synergy/CXWindowsClipboard.cpp
-
-fixed timeout when getting selection -- forgot to set flag to
-terminate event loop.
-
-----------
-2002/06/03 18:53:18 crs
-base/CLog.cpp
-base/CLog.h
-server/CConfig.h
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CServer.cpp
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-server/server.cpp
-synergy/CXWindowsScreen.cpp
-synergy/IPrimaryScreen.h
-
-changes to add command line arguments. also added automatic
-restarting and daemonizing on unix. daemon sends log messages
-to syslog. unix now reads config file from file named on
-command line; if no command line arg then uses effective
-user's config file and if that's not there it finally tries
-/etc/synergy.conf. if there are no screens configured then
-one is added for the primary screen. broke some startup
-stuff on win32.
-
-also now timing out if X primary screen can't grab the mouse
-and keyboard. the server will just give up trying to switch
-screens. the grabs will fail is some other app has a grab
-and won't release it. note that kdm grabs the keyboard for
-the duration that the login window is displayed, effectively
-disabling synergy.
-
-----------
-2002/06/03 16:36:45 crs
-base/CLog.cpp
-base/CLog.h
-
-added a method to set the filter given a priority string (instead
-of a number). fixed a comment related to what those priority
-strings are. added a CLOG_PRINT priority which is never filtered
-and suppresses the trace info and the priority level message.
-it's intended as a way to output a message through the logger
-without getting extra output.
-
-----------
-2002/06/03 16:34:22 crs
-base/CString.cpp
-base/CString.h
-base/Makefile
-base/base.dsp
-http/CHTTPProtocol.cpp
-http/CHTTPProtocol.h
-
-moved case insensitive comparison utility functions into CString
-from CHTTPProtocol.
-
-----------
-2002/06/03 13:45:30 crs
-client/CClient.cpp
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-server/CServer.cpp
-server/CServer.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-synergy/CXWindowsScreen.cpp
-synergy/CXWindowsScreen.h
-synergy/Makefile
-synergy/XScreen.cpp
-synergy/XScreen.h
-synergy/synergy.dsp
-
-added better handling of X server disconnecting unexpectedly.
-the apps still exit but they do it in a mostly controlled
-manner. in particular, the server threads except the one
-processing primary screen events will terminate gracefully.
-this will be important should the server ever allow HTTP
-clients to rewrite the configuration file.
-
-note that X makes it effectively impossible to continue once
-the X server disconnects. even if it didn't it would be
-difficult for synergy to recover. users will have to add
-synergy to the X display manager's startup script if they
-expect the server to be restarted. alternatively, we could
-add code to fork synergy at startup; the child would do
-the normal work while the parent would simply wait for the
-child to exit and restart it.
-
-----------
-2002/06/02 23:07:57 crs
-net/CTCPListenSocket.cpp
-
-shortened poll() timeout.
-
-----------
-2002/06/02 22:57:50 crs
-io/CBufferedOutputStream.cpp
-io/CBufferedOutputStream.h
-net/CTCPSocket.cpp
-
-changed buffered output stream to wait() when flush()ing instead
-of polling/sleeping. changed CTCPSocket to not use thread
-cancellation but to instead use m_connected to exit the thread.
-also shortened poll timeout.
-
-----------
-2002/06/02 21:35:20 crs
-synergy/CMSWindowsScreen.cpp
-synergy/CXWindowsScreen.cpp
-
-make sleep shorter in poll/sleep getEvent() loops.
-
-----------
-2002/06/02 21:03:38 crs
-synergy/CXWindowsClipboard.cpp
-synergy/CXWindowsClipboard.h
-synergy/CXWindowsUtil.cpp
-
-removed poll/sleep code to improve performance.
-
-----------
-2002/06/02 19:04:24 crs
-client/CXWindowsSecondaryScreen.cpp
-
-now ignores key if there's no key mapped for a required modifier.
-was asserting (on the wrong expression).
-
-----------
-2002/06/02 18:49:35 crs
-client/CClient.cpp
-client/client.cpp
-mt/CThread.cpp
-mt/CThread.h
-mt/CThreadRep.cpp
-mt/CThreadRep.h
-server/CServer.cpp
-server/server.cpp
-
-added SIGINT and SIGTERM handling to unix client and server.
-either signal causes the main thread to be cancelled. added
-necessary code to make main thread cancellation clean up
-nicely.
-
-----------
-2002/06/02 13:34:35 crs
-http/CHTTPProtocol.cpp
-http/CHTTPProtocol.h
-server/CHTTPServer.cpp
-server/CHTTPServer.h
-
-added a maximum request size to CHTTPProtocol so we can bail
-on clients that cause us to use too much memory. also put
-methods in CHTTPRequest to get/set headers and changed the
-data structure used to store them. fixed a couple of other
-miscellaneous bugs in CHTTPProtocol.cpp.
-
-----------
-2002/06/02 11:49:46 crs
-mt/CCondVar.h
-server/CServer.cpp
-server/CServer.h
-
-now limiting number of simultaneous HTTP requests being handled
-at once. this is to prevent denial of service.
-
-----------
-2002/06/01 19:26:11 crs
-base/CLog.cpp
-base/CLog.h
-base/CString.h
-base/XBase.h
-base/base.dsp
-base/common.h
-base/stdfstream.h
-base/stdistream.h
-base/stdlist.h
-base/stdmap.h
-base/stdostream.h
-base/stdpost.h
-base/stdpre.h
-base/stdset.h
-base/stdsstream.h
-base/stdvector.h
-client/CMSWindowsSecondaryScreen.h
-client/CXWindowsSecondaryScreen.h
-client/client.cpp
-client/client.dsp
-http/CHTTPProtocol.cpp
-http/CHTTPProtocol.h
-http/XHTTP.cpp
-http/http.dsp
-io/CStreamBuffer.h
-io/io.dsp
-mt/mt.dsp
-net/net.dsp
-server/CConfig.cpp
-server/CConfig.h
-server/CHTTPServer.cpp
-server/CHTTPServer.h
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CServer.cpp
-server/CServer.h
-server/CSynergyHook.cpp
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-server/makehook.dsp
-server/server.cpp
-server/server.dsp
-server/synrgyhk.dsp
-synergy.dsw
-synergy/CXWindowsClipboard.h
-synergy/IPrimaryScreen.h
-synergy/synergy.dsp
-
-fixes, mainly for windows. first, had to add a notification from
-CServer to the primary screen when the configuration changes so it
-can make necessary adjustments (the win32 primary screen must tell
-the hook dll about the new jump zones).
-
-changed includes of some std c++ library files to go through
-our own include files. these wrap the include with stuff to
-keep vc++ quiet when compiling at warning level 4, which is
-what it does now. it also works around missing and
- on g++2.96.
-
-added missing std:: where necessary. g++ doesn't really support
-namespaces so it lets references without the namespace slip
-through.
-
-added workaround or fix. not sure if istringstream::str(string)
-should reset eofbit. it does on g++ but does not on vc++.
-added clear() after str() so it works either way.
-
-added low-level keyboard hook to win32. if available (it's only
-available on NT SP3 and up) it allows us to catch and handle
-alt+tab, alt+esc, ctrl+esc, and windows key hot keys. i think
-that leaves only ctrl+alt+del and accessibility functions
-uncaught on those systems.
-
-----------
-2002/06/01 10:52:02 crs
-server/CServer.cpp
-server/CServer.h
-server/CServerProtocol1_0.cpp
-
-added mutex to all public methods that didn't already have it.
-fixed two blown assertions. first, if user tried to switch to
-a client that had connected but hadn't yet sent the first info
-message it would assert on the zero size screen. second, if
-the primary screen was handling a mouse motion on behalf of a
-secondary screen when that secondary screen disconnected then
-an assert would blow because the primary screen would call
-onMouseMoveSecondary() but m_protocol on the active screen is
-NULL because disconnecting the active secondary screen caused
-the mouse to jump to the primary screen.
-
-----------
-2002/05/31 18:35:53 crs
-server/CConfig.h
-
-changed iterator to use iterator_traits directly instead of
-std::iterator to support the old STL on grace.
-
-----------
-2002/05/31 18:18:29 crs
-client/CClient.cpp
-client/CClient.h
-server/CServer.cpp
-synergy/ProtocolTypes.h
-synergy/XSynergy.cpp
-synergy/XSynergy.h
-
-server now rejects clients that are not in the configuration.
-added a protocol message to indicate this.
-
-----------
-2002/05/31 18:09:43 crs
-server/CServer.cpp
-server/CServer.h
-server/CServerProtocol1_0.cpp
-
-fixed setConfig() to disconnect secondary screens that aren't
-in the new configuration.
-
-----------
-2002/05/31 18:08:08 crs
-server/CConfig.cpp
-server/CConfig.h
-
-made isScreen() a const method.
-
-----------
-2002/05/31 17:32:26 crs
-server/CConfig.cpp
-server/CConfig.h
-server/server.cpp
-
-added I/O for configuration files and changed the server to use
-an external file for its configuration (was hard coding a config
-for testing).
-
-----------
-2002/05/31 14:44:54 crs
-server/CConfig.cpp
-server/CScreenMap.cpp
-server/Makefile
-server/server.dsp
-
-finished renaming CScreenMap to CConfig.
-
-----------
-2002/05/31 14:43:23 crs
-server/CConfig.h
-server/CHTTPServer.cpp
-server/CHTTPServer.h
-server/CScreenMap.cpp
-server/CServer.cpp
-server/CServer.h
-server/CSynergyHook.cpp
-server/server.cpp
-
-checkpoint. changed CScreenMap to CConfig. must still change
-CScreenMap.cpp to CConfig.cpp.
-
-----------
-2002/05/31 14:34:16 crs
-server/CConfig.h
-server/CHTTPServer.cpp
-server/CScreenMap.cpp
-server/CScreenMap.h
-server/CServer.h
-server/CSynergyHook.cpp
-server/server.cpp
-
-checkpoint. renamed CScreenMap.h to CConfig.h. will be
-changing CScreenMap to CConfig everywhere.
-
-----------
-2002/05/31 14:25:26 crs
-base/CLog.cpp
-base/CLog.h
-client/client.cpp
-server/server.cpp
-
-added methods to CLog for getting the outputter, getting and
-setting the priority filter, and added code for thread safety.
-added code to apps to enable thread safety in CLog.
-
-----------
-2002/05/30 16:13:16 crs
-Makefile
-base/common.h
-http/CHTTPProtocol.cpp
-http/CHTTPProtocol.h
-http/Makefile
-http/XHTTP.cpp
-http/XHTTP.h
-server/CHTTPServer.cpp
-server/CHTTPServer.h
-server/CScreenMap.cpp
-server/CScreenMap.h
-server/CServer.cpp
-server/CServer.h
-server/Makefile
-
-added basic support for an embedded HTTP server. server
-currently supports editing the screen map but changing
-the map won't behave correctly if there are connected
-screens.
-
-----------
-2002/05/30 16:11:59 crs
-net/CTCPSocket.cpp
-net/CTCPSocket.h
-
-fixed bug in closing down a socket.
-
-----------
-2002/05/27 18:55:51 crs
-synergy/CMSWindowsClipboard.cpp
-synergy/CMSWindowsClipboard.h
-
-updated win32 clipboard to match new model.
-
-----------
-2002/05/27 18:35:14 crs
-notes
-
-checkpoint
-
-----------
-2002/05/27 18:30:13 crs
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-synergy/CXWindowsClipboard.cpp
-synergy/CXWindowsScreen.h
-synergy/CXWindowsUtil.cpp
-synergy/CXWindowsUtil.h
-
-removed getEventMask() from primary screen. added a class to
-CXWindowsUtil that installs/uninstalls an X error hander.
-using that in primary screen, clipboard, and util to ensure
-that certain errors don't kill the app.
-
-----------
-2002/05/27 18:28:06 crs
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-
-removed getEventMask() and fixed some comments. also now using
-toggle key states in updateModifiers().
-
-----------
-2002/05/27 17:05:34 crs
-synergy/CXWindowsClipboard.cpp
-
-changed lesstif hack to only apply to the CLIPBOARD selection.
-apprently the PRIMARY selection must follow the ICCCM protocol
-correctly.
-
-----------
-2002/05/27 16:51:07 crs
-synergy/CXWindowsUtil.cpp
-synergy/CXWindowsUtil.h
-
-added missing files from previous submit.
-
-----------
-2002/05/27 16:22:59 crs
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-synergy/CClipboard.cpp
-synergy/CClipboard.h
-synergy/CXWindowsClipboard.cpp
-synergy/CXWindowsClipboard.h
-synergy/CXWindowsScreen.cpp
-synergy/CXWindowsScreen.h
-synergy/IClipboard.h
-synergy/Makefile
-
-checkpoint. changed clipboard model. the clipboard can only
-be accessed now between open()/close(). ownership of the
-clipboard is asserted via the empty() method. this parallels
-the win32 model (but the win32 code hasn't been updated yet).
-
-refactored X11 clipboard code. moved the bulk of it into
-CXWindowsClipboard and moved some comment event handling into
-CXWindowsScreen. changed how requests are processed into a
-hopefully easier to understand model. added support for getting
-clipboard from and sending clipboard to motif (or at least
-lesstif) clients. sending to lesstif required a hack to work
-around an apparent bug in lesstif.
-
-----------
-2002/05/24 17:54:34 crs
-notes
-
-checkpoint
-
-----------
-2002/05/24 17:54:28 crs
-client/CClient.cpp
-client/CClient.h
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-server/CMSWindowsPrimaryScreen.cpp
-server/CServer.cpp
-server/CServer.h
-server/CServerProtocol.h
-server/CServerProtocol1_0.cpp
-server/CServerProtocol1_0.h
-server/CXWindowsPrimaryScreen.cpp
-synergy/CMSWindowsScreen.cpp
-synergy/CMSWindowsScreen.h
-synergy/IPrimaryScreen.h
-synergy/ISecondaryScreen.h
-synergy/IServerProtocol.h
-synergy/ProtocolTypes.h
-
-added screen locking support to win32. added support for
-resolution changing (only semi-supported on X because that
-has no means for resizing screen anyway). also fixed some
-clipboard problems on win32.
-
-----------
-2002/05/24 14:37:12 crs
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CServer.cpp
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-synergy/IPrimaryScreen.h
-
-added support for locking to a screen when the sroll lock is
-toggled on or when any key or button is pressed. fully
-implemented on X but stubbed out for now on win32.
-
-----------
-2002/05/23 18:35:15 crs
-notes
-
-checkpoint
-
-----------
-2002/05/23 18:35:08 crs
-server/CMSWindowsPrimaryScreen.cpp
-server/CSynergyHook.cpp
-server/CSynergyHook.h
-
-added support for mouse wheel on win32.
-
-----------
-2002/05/23 15:50:38 crs
-client/CXWindowsSecondaryScreen.cpp
-server/CXWindowsPrimaryScreen.cpp
-
-added support for mouse wheel on X.
-
-----------
-2002/05/23 15:00:39 crs
-server/server.cpp
-
-added a third screen to hard coded map for testing purposes.
-
-----------
-2002/05/23 15:00:13 crs
-server/CServer.cpp
-
-fixed log message.
-
-----------
-2002/05/23 14:56:03 crs
-client/CClient.cpp
-client/CClient.h
-server/CServer.cpp
-server/CServerProtocol.cpp
-server/CServerProtocol1_0.cpp
-synergy/ProtocolTypes.h
-synergy/XSynergy.cpp
-synergy/XSynergy.h
-
-server no longer asserts when a client connects with a name that's
-already in use by another client. also added reporting of errors
-from the server to clients so clients can report meaningful
-messages to users.
-
-----------
-2002/05/23 14:04:43 crs
-notes
-
-checkpoint
-
-----------
-2002/05/23 14:04:35 crs
-net/CNetwork.h
-synergy/CXWindowsScreen.h
-
-changed structs to classes. there should be no more structs now.
-
-----------
-2002/05/22 17:09:08 crs
-notes
-
-checkpoint.
-
-----------
-2002/05/22 17:08:37 crs
-synergy/CMSWindowsClipboard.cpp
-synergy/CMSWindowsScreen.cpp
-synergy/CMSWindowsScreen.h
-synergy/CProtocolUtil.cpp
-
-removed unnecessary call in screen class, added logging calls
-in clipboard class, and added another cast in protocol util
-to avoid warning on win32.
-
-----------
-2002/05/22 17:05:26 crs
-server/CSynergyHook.cpp
-
-now letting some key events filter through. this allows the
-keyboard lights to track toggle changes. however, it also
-seems to let through keyboard events that shouldn't get
-through.
-
-----------
-2002/05/22 17:02:58 crs
-server/CScreenMap.cpp
-
-fixed incorrect for-loop over directions conditional.
-
-----------
-2002/05/22 17:01:17 crs
-base/CLog.cpp
-base/CLog.h
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-
-win32 changes. replaced log dialog hack with a windows console
-window. now attaching thread input queues as necessary. shifted
-code around so toggling toggle keys is immediately reflected by
-secondary screen's keyboard. now setting extended key flag for
-keys that need it. fixed handling of shift + caps-lock. added
-handling of keys that should distinguish between left and right
-but don't. fixed get/set of active window on leave/enter of
-primary screen. replaced 1x1 primary window with a full screen
-window to work around a problem with losing key events. changed
-calculation of mouse move deltas.
-
-----------
-2002/05/22 16:56:06 crs
-net/CTCPListenSocket.cpp
-
-fixed type of socket handle (from int to CNetwork::Socket).
-
-----------
-2002/05/22 16:55:19 crs
-mt/CTimerThread.cpp
-
-removed blank line.
-
-----------
-2002/05/22 16:55:05 crs
-mt/CThread.cpp
-mt/CThread.h
-mt/CThreadRep.cpp
-
-changed un-inlined code to avoid bogus VC++ level 4 warnings.
-added support for more win32 thread priorities.
-
-----------
-2002/05/22 16:51:59 crs
-client/client.cpp
-
-fixed parameter type for socket port.
-
-----------
-2002/05/22 16:43:14 crs
-base/common.h
-
-changed set of disabled win32 warnings.
-
-----------
-2002/05/22 16:42:48 crs
-client/CClient.cpp
-
-fixed NULL dereference.
-
-----------
-2002/05/22 16:41:24 crs
-base/common.h
-
-changed set of disabled win32 warnings.
-
-----------
-2002/05/22 16:40:51 crs
-base/CLog.cpp
-base/CLog.h
-
-replaced logging dialog hack with a windows console window.
-
-----------
-2002/05/22 16:40:38 crs
-client/CClient.cpp
-
-fixed NULL dereference.
-
-----------
-2002/05/05 23:37:12 crs
-net/CTCPSocket.cpp
-
-removed setting send buffer to zero size. it just reduced
-performance.
-
-----------
-2002/05/05 19:52:03 crs
-client/CXWindowsSecondaryScreen.cpp
-
-replaced True/False with true/false when assigning to m_repeat.
-also should now work if the first element of a modifier
-keymapping is 0. that won't normally be the case but xmodmap
-was doing weird things on grace. if the first element is 0
-it'll try the second element. if that's also zero then that
-modifier will be ignored.
-
-----------
-2002/05/05 19:38:09 crs
-client/CMSWindowsSecondaryScreen.cpp
-server/CMSWindowsPrimaryScreen.cpp
-
-fixes for win32 keyboard.
-
-----------
-2002/05/04 19:43:20 crs
-client/CXWindowsSecondaryScreen.cpp
-
-fixed caps-lock handling.
-
-----------
-2002/05/04 18:33:48 crs
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-
-checkpoint. added half duplex for num lock.
-
-----------
-2002/05/04 18:31:54 crs
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-
-checkpoint. fixing up handling of half-duplex num-lock.
-
-----------
-2002/05/04 18:09:02 crs
-client/CXWindowsSecondaryScreen.cpp
-
-checkpoint. changed when toggle keys toggle (now always on
-release). must see if this works.
-
-----------
-2002/05/04 18:08:22 crs
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-net/CTCPSocket.cpp
-server/CMSWindowsPrimaryScreen.cpp
-
-Fixes for win32 key handling.
-
-----------
-2002/05/04 11:23:11 crs
-client/CXWindowsSecondaryScreen.cpp
-
-fixed handling of shift + caps-lock. those two modifiers should
-cancel out if the keysym is subject to case conversion, but not
-otherwise. also added logging of key lookup code.
-
-----------
-2002/05/03 12:23:48 crs
-client/CXWindowsSecondaryScreen.cpp
-
-fixed handling of shift+tab on a system that can map ISO_Left_Tab.
-now tries to map ISO_Left_Tab without shift first then falls back
-to Tab (note that if ISO_Left_Tab can be mapped but requires a
-modifier then the modifier will be added). also changed attempt
-to map ISO_Left_Tab as a backup to Tab to request the shift
-modifier whether or not the primary screen requested it.
-
-----------
-2002/05/03 12:14:55 crs
-client/CXWindowsSecondaryScreen.cpp
-
-fixed handling of ISO_Left_Tab when that is not mapped to a
-keycode by mapping it to tab with shift pressed.
-
-----------
-2002/05/03 11:49:30 crs
-client/CXWindowsSecondaryScreen.cpp
-
-removed attempt to make release/press of a repeating key use
-the same server time. was getting what appears to be deadlock
-but not sure why.
-
-----------
-2002/05/03 11:26:44 crs
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-
-checkpoint. made changes to support key autorepeats on X.
-
-----------
-2002/05/02 11:44:21 crs
-synergy/COutputPacketStream.cpp
-
-Indentation change.
-
-----------
-2002/05/02 11:43:52 crs
-io/CStreamBuffer.cpp
-net/CTCPSocket.cpp
-
-Fixed bug in stream buffer that could cause data to be
-inserted out of order. Also removed unnecessary limit
-on writes to the TCP socket.
-
-----------
-2002/05/02 11:33:34 crs
-io/CStreamBuffer.cpp
-
-checkpoint debugging of stream buffer.
-
-----------
-2002/05/01 16:30:20 crs
-synergy/CXWindowsScreen.cpp
-
-Was trying to avoid sending clipboard if timestamp wasn't
-changed but clipboard owners may not update that timestamp
-when the selection is changed. Disabled the timestamp check.
-
-----------
-2002/05/01 16:17:57 crs
-server/CServer.cpp
-synergy/CXWindowsScreen.cpp
-
-Added more checks to avoid sending unchanged clipboard data.
-Still takes too long to query the clipboard owner for info
-(maybe 1/10th second) but not sure why or if that can be
-improved.
-
-----------
-2002/05/01 15:31:47 crs
-Make-linux
-net/CNetwork.h
-net/CTCPSocket.cpp
-synergy/CXWindowsScreen.cpp
-synergy/CXWindowsScreen.h
-
-checkpoint. turned off nagle and send buffering. also
-added test to skip clipboard conversion if a previous
-conversion from that owner failed.
-
-----------
-2002/05/01 14:36:52 crs
-server/CServer.cpp
-server/CXWindowsPrimaryScreen.cpp
-
-Fixed uninitialized variable when computing toggle mask. Also
-reduced priority of some mouse motion log messages.
-
-----------
-2002/05/01 14:35:55 crs
-net/CSocketInputStream.cpp
-net/CSocketInputStream.h
-net/CSocketOutputStream.cpp
-net/CSocketOutputStream.h
-net/CSocketStreamBuffer.cpp
-net/CSocketStreamBuffer.h
-net/net.dsp
-
-removed obsolete files.
-
-----------
-2002/04/30 18:30:05 crs
-client/CXWindowsSecondaryScreen.cpp
-
-added fallback for missing numpad movement keys (if there's no
-mapping for those keys then the non-keypad versions are tried).
-
-----------
-2002/04/30 17:48:11 crs
-client/CClient.cpp
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CServer.cpp
-server/CServerProtocol.h
-server/CServerProtocol1_0.cpp
-server/CServerProtocol1_0.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-synergy/IPrimaryScreen.h
-synergy/ISecondaryScreen.h
-synergy/IServerProtocol.h
-synergy/ProtocolTypes.h
-
-checkpoint. now sending toggle modifier state when entering
-a screen. this allows the secondary screen to set it's
-modifier state to match the primary screen's state. this is
-not strictly necessary since each keystroke should adjust the
-modifier state as needed to get the right result.
-
-----------
-2002/04/30 16:25:29 crs
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-
-Added logging and handling of "half-duplex" caps-lock key.
-
-----------
-2002/04/30 16:23:30 crs
-Make-linux
-Make-solaris
-
-Changed name for auto-generated dependency files from
-Makedepend to .depend.
-
-----------
-2002/04/30 16:23:03 crs
-client/CClient.cpp
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CServerProtocol1_0.cpp
-server/server.rc
-synergy/CClipboard.cpp
-synergy/CMSWindowsClipboard.cpp
-synergy/CMSWindowsClipboard.h
-synergy/synergy.dsp
-
-Fixes to get win32 client and server up to date.
-
-----------
-2002/04/29 14:40:01 crs
-base/CFunctionJob.h
-base/CLog.h
-base/CStopwatch.cpp
-base/CStopwatch.h
-base/CString.h
-base/IInterface.h
-base/IJob.h
-base/TMethodJob.h
-base/XBase.h
-client/CClient.h
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-io/CBufferedInputStream.h
-io/CBufferedOutputStream.h
-io/CInputStreamFilter.h
-io/COutputStreamFilter.h
-io/CStreamBuffer.h
-io/IInputStream.h
-io/IOutputStream.h
-io/XIO.h
-mt/CCondVar.cpp
-mt/CCondVar.h
-mt/CLock.h
-mt/CMutex.cpp
-mt/CMutex.h
-mt/CThread.h
-mt/CThreadRep.cpp
-mt/CThreadRep.h
-mt/CTimerThread.h
-mt/XThread.h
-net/CNetwork.h
-net/CNetworkAddress.cpp
-net/CNetworkAddress.h
-net/CSocketInputStream.h
-net/CSocketOutputStream.h
-net/CSocketStreamBuffer.h
-net/CTCPListenSocket.h
-net/CTCPSocket.h
-net/IListenSocket.h
-net/ISocket.h
-net/XNetwork.h
-net/XSocket.h
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CScreenMap.h
-server/CServer.cpp
-server/CServer.h
-server/CServerProtocol.h
-server/CServerProtocol1_0.h
-server/CSynergyHook.cpp
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-synergy/CClipboard.h
-synergy/CInputPacketStream.cpp
-synergy/CInputPacketStream.h
-synergy/CMSWindowsClipboard.cpp
-synergy/CMSWindowsClipboard.h
-synergy/CMSWindowsScreen.h
-synergy/COutputPacketStream.h
-synergy/CProtocolUtil.cpp
-synergy/CProtocolUtil.h
-synergy/CTCPSocketFactory.h
-synergy/CXWindowsClipboard.h
-synergy/CXWindowsScreen.cpp
-synergy/CXWindowsScreen.h
-synergy/IClipboard.h
-synergy/IPrimaryScreen.h
-synergy/ISecondaryScreen.h
-synergy/IServerProtocol.h
-synergy/ISocketFactory.h
-synergy/XSynergy.h
-
-Indentation changes.
-
-----------
-2002/04/29 14:25:24 crs
-client/CClient.cpp
-server/CServer.cpp
-server/CServerProtocol1_0.cpp
-
-Added some validation of protocol message parameters.
-
-----------
-2002/04/29 14:12:48 crs
-synergy/CXWindowsScreen.cpp
-
-Shortened timeout on waiting for clipboard response.
-
-----------
-2002/04/29 14:08:48 crs
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-server/CServer.cpp
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-synergy/CXWindowsScreen.cpp
-synergy/CXWindowsScreen.h
-
-Made event selection a little more robust. Also fixed failure
-to marshall clipboard data when updating primary clipboards.
-
-----------
-2002/04/29 13:49:56 crs
-client/CXWindowsSecondaryScreen.cpp
-
-Added missing event mask.
-
-----------
-2002/04/29 13:31:44 crs
-client/CClient.cpp
-client/CClient.h
-server/CServer.cpp
-server/CServer.h
-server/CServerProtocol.h
-server/CServerProtocol1_0.cpp
-server/CServerProtocol1_0.h
-synergy/CClipboard.cpp
-synergy/CClipboard.h
-synergy/CXWindowsScreen.cpp
-synergy/CXWindowsScreen.h
-synergy/IClipboard.h
-synergy/IPrimaryScreen.h
-synergy/IServerProtocol.h
-synergy/ProtocolTypes.h
-
-checkpoint. changed protocol to better handle clipboards. now
-sending a sequence number with enter messages. screens use that
-sequence number in clipboard grab and data messages. the server
-uses the sequence number to order messages across clients. also
-changed secondary screens to send clipboard updates on leaving
-(or when grab occurs when not active) instead of on a query from
-the server. primary effectively does the same. the query
-message has been removed.
-
-----------
-2002/04/29 11:58:17 crs
-client/CClient.cpp
-
-changed logging levels.
-
-----------
-2002/04/28 00:46:15 crs
-client/CXWindowsSecondaryScreen.cpp
-server/CXWindowsPrimaryScreen.cpp
-synergy/CXWindowsScreen.cpp
-synergy/CXWindowsScreen.h
-
-Clipboard improvements. Still not working right. Nedit
-doesn't work at all but at least now there's a timeout to
-prevent synergy from hanging waiting on a reply.
-
-----------
-2002/04/27 18:49:03 crs
-base/CLog.cpp
-base/CLog.h
-client/CClient.cpp
-mt/CThread.cpp
-mt/CThreadRep.cpp
-mt/CTimerThread.cpp
-net/CNetwork.cpp
-server/CServer.cpp
-server/CServerProtocol1_0.cpp
-server/CXWindowsPrimaryScreen.cpp
-synergy/CProtocolUtil.cpp
-synergy/CXWindowsScreen.cpp
-
-Added more debug levels and moved some annoying debug messages
-to those levels. Default log level is now DEBUG for debug
-builds and INFO for release builds.
-
-----------
-2002/04/27 18:06:40 crs
-client/CClient.cpp
-client/CXWindowsSecondaryScreen.cpp
-server/CServer.cpp
-server/CServerProtocol1_0.cpp
-server/CXWindowsPrimaryScreen.cpp
-synergy/CProtocolUtil.cpp
-synergy/CXWindowsScreen.cpp
-synergy/ProtocolTypes.h
-
-checkpoint. changed CProtocolUtil::readf() to store 1 and 2
-byte integers into pointers to 1 and 2 byte integers. was
-always assuming pointers to 4 byte integers.
-
-----------
-2002/04/27 14:19:53 crs
-client/CClient.cpp
-client/CClient.h
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-server/CServer.cpp
-server/CServer.h
-server/CServerProtocol.h
-server/CServerProtocol1_0.cpp
-server/CServerProtocol1_0.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-synergy/CXWindowsScreen.cpp
-synergy/CXWindowsScreen.h
-synergy/ClipboardTypes.h
-synergy/IPrimaryScreen.h
-synergy/ISecondaryScreen.h
-synergy/IServerProtocol.h
-synergy/ProtocolTypes.h
-
-Added support for multiple clipboards. This is mainly to
-support both PRIMARY and CLIPBOARD selections on X windows.
-
-----------
-2002/04/27 14:19:19 crs
-Makecommon
-
-set TARGETS macro to BIN and LIB targets.
-
-----------
-2002/04/26 20:15:59 crs
-notes
-
-updated
-
-----------
-2002/04/26 20:14:46 crs
-client/CXWindowsSecondaryScreen.cpp
-
-Fixed caps-lock and num-lock behavior. It seems to work okay
-now but did notice one problem: when powerbook is primary and
-num-lock is on the keypad works fine until shift is pressed
-(and released); after that the keypad only works while the
-shift key is down.
-
-----------
-2002/04/26 20:12:55 crs
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-
-Added hack to handle "half-duplex" caps-lock key on powerbook.
-That key only reports press when pressed and released when
-caps-lock is activated and only reports release when pressed
-and released when caps-lock is deactivated. I don't know of a
-way to detect this behavior so it may have to be configured by
-the user. The code assumes normal behavior; will have to add
-code to set the flag (perhaps from a user configuration).
-
-----------
-2002/04/26 17:38:01 crs
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-synergy/KeyTypes.h
-
-changed processing of key events in X. secondary screen now
-activates/deactivates modifiers as necessary to get a keycode
-interpreted as the expected keysym. still some work and
-testing to do on this.
-
-----------
-2002/04/25 10:44:01 crs
-notes
-
-Added notes on keyboard handling.
-
-----------
-2002/04/25 10:43:53 crs
-client/CXWindowsSecondaryScreen.cpp
-server/CXWindowsPrimaryScreen.cpp
-synergy/CXWindowsScreen.cpp
-synergy/CXWindowsScreen.h
-
-added handling for DestroyNotify of clipboard requestors.
-
-----------
-2001/11/26 22:36:51 crs
-synergy/CXWindowsScreen.cpp
-
-checkpoint. improvements to clipboard transfer on X windows.
-not detecting a change to clipboard when synergy window isn't
-the owner (since there's no event for this; we'll have to
-check when we leave the screen i guess). large transfers
-don't seem to work.
-
-----------
-2001/11/26 22:09:53 crs
-synergy/CXWindowsScreen.cpp
-synergy/CXWindowsScreen.h
-
-checkpoint. testing clipboard transfer on X windows.
-
-----------
-2001/11/25 22:20:41 crs
-client/CXWindowsSecondaryScreen.cpp
-server/CXWindowsPrimaryScreen.cpp
-synergy/CXWindowsScreen.cpp
-synergy/CXWindowsScreen.h
-
-checkpoint. implementing clipboard owner in x windows.
-
-----------
-2001/11/25 18:44:13 crs
-synergy/CXWindowsClipboard.cpp
-synergy/CXWindowsClipboard.h
-
-fixed function signature.
-
-----------
-2001/11/25 18:42:13 crs
-Make-linux
-Make-solaris
-Makecommon
-client/Makefile
-server/Makefile
-
-executables are now built into a common area on unix (and they
-already were on win32).
-
-----------
-2001/11/25 18:32:41 crs
-client/CClient.cpp
-client/CClient.h
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-client/client.cpp
-client/client.dsp
-net/CNetwork.cpp
-notes
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CServer.cpp
-server/CServer.h
-server/CServerProtocol.h
-server/CServerProtocol1_0.cpp
-server/CServerProtocol1_0.h
-server/CSynergyHook.cpp
-server/CSynergyHook.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-server/makehook.dsp
-server/server.cpp
-server/server.dsp
-server/synrgyhk.dsp
-synergy.dsw
-synergy/CClipboard.cpp
-synergy/CClipboard.h
-synergy/CMSWindowsClipboard.cpp
-synergy/CMSWindowsClipboard.h
-synergy/CMSWindowsScreen.cpp
-synergy/CMSWindowsScreen.h
-synergy/CProtocolUtil.cpp
-synergy/CProtocolUtil.h
-synergy/CXWindowsScreen.cpp
-synergy/CXWindowsScreen.h
-synergy/IClipboard.h
-synergy/IPrimaryScreen.h
-synergy/ISecondaryScreen.h
-synergy/IServerProtocol.h
-synergy/Makefile
-synergy/ProtocolTypes.h
-synergy/synergy.dsp
-
-added platform independent clipboard transfer stuff
-clipboard owner support (MS windows done, X windows partial)
-added key transfer on ms windows
-mutex fixes in CClient (had race conditions)
-faster debug output in ms windows
-changed temporary screen name to "secondary"
-network fixes on ms windows (poll returned wrong result)
-fixed transparent cursor on ms windows
-
-----------
-2001/11/19 00:33:36 crs
-Make-linux
-all.dsp
-base/BasicTypes.h
-base/CLog.cpp
-base/CLog.h
-base/XBase.cpp
-base/base.dsp
-base/common.h
-client/CClient.cpp
-client/CClient.h
-client/CMSWindowsSecondaryScreen.cpp
-client/CMSWindowsSecondaryScreen.h
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-client/Makefile
-client/client.cpp
-client/client.dsp
-client/client.rc
-client/resource.h
-io/io.dsp
-mt/CCondVar.cpp
-mt/CThread.cpp
-mt/CThreadRep.cpp
-mt/CThreadRep.h
-mt/mt.dsp
-net/CNetwork.cpp
-net/CNetwork.h
-net/CNetworkAddress.cpp
-net/CNetworkAddress.h
-net/CTCPListenSocket.cpp
-net/CTCPListenSocket.h
-net/CTCPSocket.cpp
-net/CTCPSocket.h
-net/Makefile
-net/XNetwork.cpp
-net/XNetwork.h
-net/net.dsp
-notes
-server/CMSWindowsPrimaryScreen.cpp
-server/CMSWindowsPrimaryScreen.h
-server/CScreenMap.h
-server/CServer.cpp
-server/CServer.h
-server/CSynergyHook.cpp
-server/CSynergyHook.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-server/Makefile
-server/makehook.dsp
-server/resource.h
-server/server.cpp
-server/server.dsp
-server/server.rc
-server/synrgyhk.dsp
-synergy.dsw
-synergy/CMSWindowsClipboard.cpp
-synergy/CMSWindowsClipboard.h
-synergy/CMSWindowsScreen.cpp
-synergy/CMSWindowsScreen.h
-synergy/CXWindowsClipboard.h
-synergy/CXWindowsScreen.cpp
-synergy/CXWindowsScreen.h
-synergy/IClipboard.h
-synergy/IPrimaryScreen.h
-synergy/ISecondaryScreen.h
-synergy/synergy.dsp
-
-checkpoint. merging win32 code. server on X is currently broken
-and client probably is.
-
-----------
-2001/11/18 23:14:28 crs
-Makefile
-client/CClient.cpp
-client/CClient.h
-client/CXWindowsSecondaryScreen.cpp
-client/CXWindowsSecondaryScreen.h
-client/Makefile
-client/client.cpp
-server/CScreenMap.cpp
-server/CScreenMap.h
-server/CServer.cpp
-server/CServer.h
-server/CServerProtocol.cpp
-server/CServerProtocol.h
-server/CServerProtocol1_0.cpp
-server/CServerProtocol1_0.h
-server/CXWindowsPrimaryScreen.cpp
-server/CXWindowsPrimaryScreen.h
-server/Makefile
-server/server.cpp
-synergy/CClient.cpp
-synergy/CClient.h
-synergy/CScreenMap.cpp
-synergy/CScreenMap.h
-synergy/CServer.cpp
-synergy/CServer.h
-synergy/CServerProtocol.cpp
-synergy/CServerProtocol.h
-synergy/CServerProtocol1_0.cpp
-synergy/CServerProtocol1_0.h
-synergy/CXWindowsPrimaryScreen.cpp
-synergy/CXWindowsPrimaryScreen.h
-synergy/CXWindowsSecondaryScreen.cpp
-synergy/CXWindowsSecondaryScreen.h
-synergy/Makefile
-synergy/client.cpp
-synergy/server.cpp
-
-moved client and server files into their own respective
-directories.
-
-----------
-2001/11/13 23:34:12 crs
-synergy/CServer.cpp
-synergy/CXWindowsClipboard.cpp
-synergy/CXWindowsClipboard.h
-synergy/CXWindowsPrimaryScreen.cpp
-synergy/CXWindowsPrimaryScreen.h
-synergy/CXWindowsScreen.cpp
-synergy/CXWindowsScreen.h
-synergy/IClipboard.h
-synergy/IPrimaryScreen.h
-synergy/Makefile
-
-added preliminary support for getting the X selection.
-
-----------
-2001/11/11 21:27:36 crs
-synergy/CServer.cpp
-
-fixed clamping when mapping to a different screen when beyond
-bottom or right of source screen.
-
-----------
-2001/11/11 21:15:30 crs
-synergy/CXWindowsPrimaryScreen.cpp
-synergy/CXWindowsPrimaryScreen.h
-synergy/CXWindowsScreen.cpp
-synergy/CXWindowsScreen.h
-synergy/CXWindowsSecondaryScreen.cpp
-synergy/CXWindowsSecondaryScreen.h
-synergy/Makefile
-
-factored common X windows screen stuff into a common base class.
-
-----------
-2001/11/10 22:28:37 crs
-notes
-
-updated notes.
-
-----------
-2001/11/10 22:28:30 crs
-Makefile
-
-added main app directory to build.
-
-----------
-2001/10/25 22:17:17 crs
-io/CBufferedInputStream.cpp
-mt/CCondVar.cpp
-mt/CMutex.cpp
-mt/CThreadRep.cpp
-net/CNetworkAddress.cpp
-net/CSocketInputStream.cpp
-net/CTCPListenSocket.cpp
-net/CTCPSocket.cpp
-synergy/CXWindowsPrimaryScreen.cpp
-synergy/CXWindowsSecondaryScreen.cpp
-
-removed unnecessary global scoping operators.
-
-----------
-2001/10/25 22:09:27 crs
-synergy/CXWindowsSecondaryScreen.cpp
-
-changed hider window to move underneath mouse when leaving the
-screen. this makes it so if the mouse is moved locally, it'll
-reappear where it was last seen.
-
-----------
-2001/10/25 21:40:29 crs
-synergy/CClient.cpp
-synergy/CXWindowsSecondaryScreen.cpp
-synergy/CXWindowsSecondaryScreen.h
-synergy/ISecondaryScreen.h
-
-changed some method names and removed warpCursor() from
-secondary screen interface.
-
-----------
-2001/10/24 23:29:29 crs
-synergy/CServer.cpp
-synergy/CServer.h
-
-now handling disconnect of secondary screen that has the cursor
-by jumping back to the primary screen (without trying to notify
-the now disconnected secondary screen). also fixed blown assert
-in mapPosition().
-
-----------
-2001/10/24 22:33:24 crs
-synergy/CXWindowsPrimaryScreen.cpp
-synergy/CXWindowsPrimaryScreen.h
-synergy/CXWindowsSecondaryScreen.cpp
-synergy/CXWindowsSecondaryScreen.h
-
-made calls to X thread safe.
-
-----------
-2001/10/23 22:45:59 crs
-notes
-
-more notes.
-
-----------
-2001/10/23 22:41:46 crs
-synergy/CXWindowsPrimaryScreen.cpp
-synergy/CXWindowsPrimaryScreen.h
-synergy/CXWindowsSecondaryScreen.cpp
-synergy/CXWindowsSecondaryScreen.h
-
-added cursor hiding.
-
-----------
-2001/10/23 21:23:29 crs
-base/CLog.cpp
-
-can now filter logging by level.
-
-----------
-2001/10/23 21:13:08 crs
-synergy/CServer.cpp
-
-fixed blown assert trying to find neighbor when there was none.
-
-----------
-2001/10/21 00:21:21 crs
-synergy/CClient.cpp
-
-fixed handling of stream ownership.
-
-----------
-2001/10/21 00:21:02 crs
-io/CBufferedInputStream.cpp
-io/CBufferedOutputStream.cpp
-mt/CThreadRep.cpp
-net/CTCPSocket.cpp
-net/CTCPSocket.h
-synergy/CServer.cpp
-synergy/server.cpp
-
-fixed bugs in handling streams.
-
-----------
-2001/10/20 20:43:31 crs
-Make-linux
-mt/CThreadRep.cpp
-
-threading fixes. had sigmask set in wrong place. was setting
-m_exit flag potentially after the object had been destroyed.
-most importantly, RTTI must be enabled on PPC to avoid SIGILL.
-
-----------
-2001/10/14 19:16:54 crs
-mt/CThread.cpp
-mt/CThreadRep.cpp
-mt/CTimerThread.cpp
-
-some debugging code.
-
-----------
-2001/10/14 18:29:43 crs
-base/CLog.h
-mt/CMutex.cpp
-mt/CThread.cpp
-mt/CThread.h
-mt/CThreadRep.cpp
-mt/CThreadRep.h
-mt/CTimerThread.cpp
-synergy/CClient.cpp
-synergy/CClient.h
-synergy/CProtocolUtil.cpp
-synergy/CServerProtocol1_0.cpp
-synergy/client.cpp
-synergy/server.cpp
-
-fixed timeout bug in CThreadRep::wait() (negative timeout wouldn't
-wait forever). also fixed early return from sleep due to signal.
-now forcing client to initialize CThread to ensure global mutex
-gets initialized before threads are used.
-
-----------
-2001/10/14 16:58:01 crs
-io/CBufferedInputStream.cpp
-io/CBufferedInputStream.h
-io/CBufferedOutputStream.cpp
-io/CBufferedOutputStream.h
-io/CInputStreamFilter.cpp
-io/CInputStreamFilter.h
-io/COutputStreamFilter.cpp
-io/COutputStreamFilter.h
-io/CStreamBuffer.cpp
-io/CStreamBuffer.h
-io/IInputStream.h
-io/IOutputStream.h
-mt/CCondVar.cpp
-mt/CCondVar.h
-mt/CLock.cpp
-mt/CLock.h
-mt/CMutex.cpp
-mt/CMutex.h
-net/CNetworkAddress.cpp
-net/CNetworkAddress.h
-net/CSocketInputStream.cpp
-net/CSocketInputStream.h
-net/CSocketOutputStream.cpp
-net/CSocketOutputStream.h
-net/CSocketStreamBuffer.cpp
-net/CSocketStreamBuffer.h
-net/CTCPListenSocket.cpp
-net/CTCPListenSocket.h
-net/CTCPSocket.cpp
-net/CTCPSocket.h
-net/IListenSocket.h
-net/ISocket.h
-synergy/CInputPacketStream.cpp
-synergy/CInputPacketStream.h
-synergy/COutputPacketStream.cpp
-synergy/COutputPacketStream.h
-synergy/CProtocolUtil.cpp
-synergy/CProtocolUtil.h
-synergy/CScreenMap.cpp
-synergy/CScreenMap.h
-synergy/CServer.cpp
-synergy/CServer.h
-synergy/CServerProtocol.cpp
-synergy/CServerProtocol.h
-synergy/CServerProtocol1_0.cpp
-synergy/CServerProtocol1_0.h
-synergy/CTCPSocketFactory.cpp
-synergy/CTCPSocketFactory.h
-synergy/IServerProtocol.h
-synergy/ISocketFactory.h
-
-removed exception specifications. thread exceptions weren't
-being listed and they'd have to be added to every one. just
-doesn't seem worth the trouble.
-
-----------
-2001/10/14 14:56:06 crs
-synergy/CProtocolUtil.cpp
-
-stupid bug fixes. writef() used the wrong variable as the number
-of bytes to write. readf() forgot to prepare the va_list.
-
-----------
-2001/10/14 14:38:45 crs
-base/CLog.cpp
-base/CLog.h
-
-forgot to add the logger files.
-
-----------
-2001/10/14 14:37:41 crs
-Make-linux
-base/Makefile
-synergy/CClient.cpp
-synergy/CScreenMap.cpp
-synergy/CScreenMap.h
-synergy/CServer.cpp
-synergy/CServerProtocol1_0.cpp
-synergy/CXWindowsPrimaryScreen.cpp
-
-added logging facility and added a bunch of log messages.
-
-----------
-2001/10/08 19:24:46 crs
-Makefile
-notes
-synergy/CClient.cpp
-synergy/CClient.h
-synergy/CServer.cpp
-synergy/CXWindowsPrimaryScreen.cpp
-synergy/CXWindowsSecondaryScreen.cpp
-synergy/CXWindowsSecondaryScreen.h
-synergy/ISecondaryScreen.h
-synergy/Makefile
-synergy/client.cpp
-synergy/server.cpp
-
-checkpoint. first cut of client and server apps. not tested
-yet but they compile and *should* work as is.
-
-----------
-2001/10/06 14:18:01 crs
-Make-linux
-Makefile
-
-updated old files to new implementation
-
-----------
-2001/10/06 14:13:28 crs
-BasicTypes.h
-CClient.cpp
-CClient.h
-CEvent.h
-CEventQueue.cpp
-CEventQueue.h
-CMessageSocket.cpp
-CMessageSocket.h
-CProtocol.h
-CScreenProxy.cpp
-CScreenProxy.h
-CServer.cpp
-CServer.h
-CSocket.cpp
-CSocket.h
-CSocketFactory.cpp
-CSocketFactory.h
-CString.h
-CTrace.cpp
-CTrace.h
-CUnixEventQueue.cpp
-CUnixEventQueue.h
-CUnixTCPSocket.cpp
-CUnixTCPSocket.h
-CUnixXScreen.cpp
-CUnixXScreen.h
-CXScreen.cpp
-CXScreen.h
-IClient.h
-IClipboard.h
-IEventQueue.h
-IJob.h
-IScreen.h
-IServer.h
-ISocket.h
-KeyTypes.h
-Make-linux
-Make-solaris
-Makecommon
-Makefile
-MouseTypes.h
-TMethodJob.h
-XBase.cpp
-XBase.h
-XSocket.h
-base/BasicTypes.h
-base/CFunctionJob.cpp
-base/CFunctionJob.h
-base/CStopwatch.cpp
-base/CStopwatch.h
-base/CString.h
-base/IInterface.h
-base/IJob.h
-base/Makefile
-base/TMethodJob.h
-base/XBase.cpp
-base/XBase.h
-base/common.h
-io/CBufferedInputStream.cpp
-io/CBufferedInputStream.h
-io/CBufferedOutputStream.cpp
-io/CBufferedOutputStream.h
-io/CInputStreamFilter.cpp
-io/CInputStreamFilter.h
-io/COutputStreamFilter.cpp
-io/COutputStreamFilter.h
-io/CStreamBuffer.cpp
-io/CStreamBuffer.h
-io/IInputStream.h
-io/IOutputStream.h
-io/Makefile
-io/XIO.cpp
-io/XIO.h
-main.cpp
-mt/CCondVar.cpp
-mt/CCondVar.h
-mt/CLock.cpp
-mt/CLock.h
-mt/CMutex.cpp
-mt/CMutex.h
-mt/CThread.cpp
-mt/CThread.h
-mt/CThreadRep.cpp
-mt/CThreadRep.h
-mt/CTimerThread.cpp
-mt/CTimerThread.h
-mt/Makefile
-mt/XThread.h
-net/CNetworkAddress.cpp
-net/CNetworkAddress.h
-net/CSocketInputStream.cpp
-net/CSocketInputStream.h
-net/CSocketOutputStream.cpp
-net/CSocketOutputStream.h
-net/CSocketStreamBuffer.cpp
-net/CSocketStreamBuffer.h
-net/CTCPListenSocket.cpp
-net/CTCPListenSocket.h
-net/CTCPSocket.cpp
-net/CTCPSocket.h
-net/IListenSocket.h
-net/ISocket.h
-net/Makefile
-net/XSocket.cpp
-net/XSocket.h
-notes
-synergy/CClient.cpp
-synergy/CClient.h
-synergy/CInputPacketStream.cpp
-synergy/CInputPacketStream.h
-synergy/COutputPacketStream.cpp
-synergy/COutputPacketStream.h
-synergy/CProtocolUtil.cpp
-synergy/CProtocolUtil.h
-synergy/CScreenMap.cpp
-synergy/CScreenMap.h
-synergy/CServer.cpp
-synergy/CServer.h
-synergy/CServerProtocol.cpp
-synergy/CServerProtocol.h
-synergy/CServerProtocol1_0.cpp
-synergy/CServerProtocol1_0.h
-synergy/CTCPSocketFactory.cpp
-synergy/CTCPSocketFactory.h
-synergy/CXWindowsPrimaryScreen.cpp
-synergy/CXWindowsPrimaryScreen.h
-synergy/IPrimaryScreen.h
-synergy/ISecondaryScreen.h
-synergy/IServerProtocol.h
-synergy/ISocketFactory.h
-synergy/KeyTypes.h
-synergy/Makefile
-synergy/MouseTypes.h
-synergy/ProtocolTypes.h
-synergy/XSynergy.cpp
-synergy/XSynergy.h
-test.cpp
-
-Started over.
-
-----------
-2001/05/14 21:14:49 crs
-MouseTypes.h
-
-flipped order of buttons to match default X setup.
-
-----------
-2001/05/14 21:14:25 crs
-CClient.cpp
-CEvent.h
-CScreenProxy.cpp
-CScreenProxy.h
-CServer.cpp
-CXScreen.cpp
-CXScreen.h
-IScreen.h
-KeyTypes.h
-
-added other mouse and key event handling to CXScreen. key repeat
-isn't implemented and modifier masks are ignored. modifier masks
-are new; they indicate the modifier key (shift, ctrl, etc) state
-at the time of the key event.
-
-----------
-2001/05/13 12:43:16 crs
-CUnixTCPSocket.cpp
-CUnixTCPSocket.h
-
-more fixes to reduce latency. nagle agorithm doesn't seem to
-stay off on a socket on linux because a connection clearly
-doesn't send data as often as possible. will have to implement
-a UDP socket to reduce overhead and avoid these delays. wanted
-to do that anyway.
-
-----------
-2001/05/13 12:21:11 crs
-CUnixTCPSocket.cpp
-CXScreen.cpp
-
-fixes to avoid update delays.
-
-----------
-2001/05/13 12:07:32 crs
-CMessageSocket.cpp
-
-fixed bug in read() that miscalculated the message length.
-
-----------
-2001/05/13 11:40:29 crs
-BasicTypes.h
-CClient.cpp
-CClient.h
-CEvent.h
-CEventQueue.cpp
-CEventQueue.h
-CMessageSocket.cpp
-CMessageSocket.h
-CProtocol.h
-CScreenProxy.cpp
-CScreenProxy.h
-CServer.cpp
-CServer.h
-CSocket.cpp
-CSocket.h
-CSocketFactory.cpp
-CSocketFactory.h
-CString.h
-CTrace.cpp
-CTrace.h
-CUnixEventQueue.cpp
-CUnixEventQueue.h
-CUnixTCPSocket.cpp
-CUnixTCPSocket.h
-CUnixXScreen.cpp
-CUnixXScreen.h
-CXScreen.cpp
-CXScreen.h
-IClient.h
-IClipboard.h
-IEventQueue.h
-IJob.h
-IScreen.h
-IServer.h
-ISocket.h
-KeyTypes.h
-Make-linux
-Makefile
-MouseTypes.h
-TMethodJob.h
-XBase.cpp
-XBase.h
-XSocket.h
-main.cpp
-tools/depconv
-
-initial revision of synergy. currently semi-supports X windows
-on unix, but client screens don't simulate events other than
-mouse move. also not supporting clipboard at all yet and the
-main app is just a temporary framework to test with. must
-clean up protocol and communication.
-
-----------
+See: http://code.google.com/p/synergy-plus/wiki/ChangeLog
diff --git a/INSTALL b/INSTALL
index 7262d958..de01da0f 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1 +1 @@
-See doc/compiling.html.
+See: http://code.google.com/p/synergy-plus/wiki/Setup
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index 9a0f3152..00000000
--- a/Makefile.am
+++ /dev/null
@@ -1,97 +0,0 @@
-# synergy -- mouse and keyboard sharing utility
-# Copyright (C) 2002 Chris Schoeneman
-#
-# This package is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# found in the file COPYING that should have accompanied this file.
-#
-# This package 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.
-
-## Process this file with automake to produce Makefile.in
-NULL =
-
-SUBDIRS = \
- lib \
- cmd \
- doc \
- dist \
- $(NULL)
-
-EXTRA_DIST = \
- Makefile.win \
- examples/synergy.conf \
- win32util/autodep.cpp \
- $(NULL)
-
-MAINTAINERCLEANFILES = \
- Makefile.in \
- aclocal.m4 \
- config.h \
- config.h.in \
- config.log \
- config.status \
- configure \
- stamp-h.in \
- stamp-h1 \
- $(NULL)
-
-PKG_FILES = \
- ChangeLog \
- README \
- cmd/synergyc/synergyc \
- cmd/synergys/synergys \
- examples/synergy.conf \
- $(NULL)
-PKG_DOC_FILES = \
- doc/PORTING \
- doc/*.html \
- doc/*.css \
- $(NULL)
-PKG_PROG_FILES = \
- synergyc \
- synergys \
- $(NULL)
-
-# build doxygen documentation
-doxygen:
- doxygen doc/doxygen.cfg
-
-# build RPMs
-RPMTOPDIR=/var/tmp/@PACKAGE@-@VERSION@
-dist-rpm: dist
- rm -rf $(RPMTOPDIR)
- mkdir $(RPMTOPDIR)
- (cd $(RPMTOPDIR); mkdir BUILD SOURCES SPECS SRPMS RPMS)
- cp @PACKAGE@-@VERSION@.tar.gz $(RPMTOPDIR)/SOURCES
- rpmbuild --define '_topdir $(RPMTOPDIR)' -ba dist/rpm/synergy.spec && \
- mv -f $(RPMTOPDIR)/SRPMS/*.rpm . && \
- mv -f $(RPMTOPDIR)/RPMS/*/*.rpm . && \
- rm -rf $(RPMTOPDIR)
-
-# build zip
-# FIXME -- have automake generate this rule for us
-dist-zip: distdir
- zip -r $(distdir).zip $(distdir)
- -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
-
-# build binary package. owner/group of packaged files will be
-# owner/group of user running make.
-PKGTOPDIR=/var/tmp/@PACKAGE@-@VERSION@
-dist-pkg: all
- rm -rf $(PKGTOPDIR)
- mkdir $(PKGTOPDIR)
- mkdir $(PKGTOPDIR)/@PACKAGE@-@VERSION@
- mkdir $(PKGTOPDIR)/@PACKAGE@-@VERSION@/doc
- cp $(PKG_FILES) $(PKGTOPDIR)/@PACKAGE@-@VERSION@
- cp $(PKG_DOC_FILES) $(PKGTOPDIR)/@PACKAGE@-@VERSION@/doc
- (cd $(PKGTOPDIR)/@PACKAGE@-@VERSION@; \
- chmod 644 *; \
- chmod 755 doc $(PKG_PROG_FILES); \
- strip $(PKG_PROG_FILES) )
- type=`uname -s -m | tr '[A-Z] ' '[a-z].'`; \
- (cd $(PKGTOPDIR); tar cf - @PACKAGE@-@VERSION@ | \
- gzip - ) > @PACKAGE@-@VERSION@-1.$${type}.tar.gz && \
- rm -rf $(PKGTOPDIR)
diff --git a/Makefile.win b/Makefile.win
deleted file mode 100644
index d232b58a..00000000
--- a/Makefile.win
+++ /dev/null
@@ -1,145 +0,0 @@
-# synergy -- mouse and keyboard sharing utility
-# Copyright (C) 2007 Chris Schoeneman
-#
-# This package is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# found in the file COPYING that should have accompanied this file.
-#
-# This package 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.
-
-# Name of this file for recursive make
-MAKEFILE = Makefile.win
-
-# Default build is release is NODEBUG is defined, debug otherwise.
-!if !DEFINED(DEBUG)
-NODEBUG = 1
-!else
-!undef NODEBUG
-!endif
-
-# Build all by default
-default: all
-
-# Redefine implicit rule suffixes
-.SUFFIXES:
-.SUFFIXES: .cpp .rc .obj
-
-# Shut up
-.SILENT:
-
-# Include system macros
-#APPVER = 5.0
-#TARGETOS = WINNT
-!include
-
-# Be explicit about C++ compiler
-cpp = $(cc)
-cppdebug = $(cdebug)
-cppflags = $(cflags)
-cppvarsmt = $(cvarsmt)
-
-# Library tool options
-ildebug =
-ilflags = /nologo
-
-# Handy macro for defining list macros
-NULL =
-
-# System commands
-ECHO = echo
-MKDIR = mkdir
-RM = del /f
-RMR = rmdir /q /s
-
-# Local build utilities
-UTIL_DIR = win32util
-AUTODEP = "$(UTIL_DIR)\autodep.exe"
-
-# Destination for intermediate build targets
-BUILD_DIR = build
-BUILD_DEBUG_DIR = $(BUILD_DIR)\Debug
-BUILD_RELEASE_DIR = $(BUILD_DIR)\Release
-!if DEFINED(NODEBUG)
-BUILD_DST = $(BUILD_RELEASE_DIR)
-!else
-BUILD_DST = $(BUILD_DEBUG_DIR)
-!endif
-
-# Compiler argument changes
-cflags = $(cflags:-W3=-W4) /WX
-cflags = $(cflags) -D_CRT_SECURE_NO_DEPRECATE
-cflags = $(cflags) /GR
-!if !DEFINED(OLDCOMPILER)
-cflags = $(cflags) /EHsc
-!else
-cflags = $(cflags) /GX
-!endif
-!if !DEFINED(NODEBUG)
-!if !DEFINED(OLDCOMPILER)
-cdebug = $(cdebug) /RTC1
-!else
-cdebug = $(cdebug) /GZ
-!endif
-!endif
-
-# Initialize variables for library and program makefiles
-C_FILES =
-CPP_FILES =
-OBJ_FILES =
-LIB_FILES =
-PROGRAMS =
-OPTPROGRAMS = $(AUTODEP)
-
-# Include subdirectory makefiles
-!include lib\common\$(MAKEFILE)
-!include lib\arch\$(MAKEFILE)
-!include lib\base\$(MAKEFILE)
-!include lib\mt\$(MAKEFILE)
-!include lib\io\$(MAKEFILE)
-!include lib\net\$(MAKEFILE)
-!include lib\synergy\$(MAKEFILE)
-!include lib\platform\$(MAKEFILE)
-!include lib\client\$(MAKEFILE)
-!include lib\server\$(MAKEFILE)
-!include cmd\synergyc\$(MAKEFILE)
-!include cmd\synergys\$(MAKEFILE)
-!include cmd\launcher\$(MAKEFILE)
-!include dist\nullsoft\$(MAKEFILE)
-
-# Collect library and program variables
-INTERMEDIATES = $(OBJ_FILES) $(AUTODEP:.exe=.obj)
-TARGETS = $(LIB_FILES) $(PROGRAMS)
-OPTTARGETS = $(OPTPROGRAMS)
-
-# Build release by reinvoking make with NODEBUG defined
-release:
- @$(MAKE) /nologo /f $(MAKEFILE) NODEBUG=1
-
-# Build debug by reinvoking make with DEBUG defined
-debug:
- @$(MAKE) /nologo /f $(MAKEFILE) DEBUG=1
-
-# Build all targets
-all: $(TARGETS)
-
-# Clean intermediate targets
-clean:
- -$(RMR) $(BUILD_DEBUG_DIR)
- -$(RMR) $(BUILD_RELEASE_DIR)
-
-# Clean all targets
-clobber: clean
- -$(RMR) $(BUILD_DIR)
-
-# Utility command build rules
-$(AUTODEP): $(AUTODEP:.exe=.cpp)
-!if DEFINED(NODEBUG)
- @$(ECHO) Build $(@F)
- $(cpp) $(cppdebug) $(cppflags) $(cppvars) /Fo"$(**:.cpp=.obj)" $**
- $(link) $(ldebug) $(conflags) -out:$@ $(**:.cpp=.obj) $(conlibs)
-!else
- @$(MAKE) /nologo /f $(MAKEFILE) NODEBUG=1 $@
-!endif
diff --git a/NEWS b/NEWS
deleted file mode 100644
index e9aa7916..00000000
--- a/NEWS
+++ /dev/null
@@ -1 +0,0 @@
-See doc/news.html.
diff --git a/README b/README
index aa6d7ea3..efe217c1 100644
--- a/README
+++ b/README
@@ -1,21 +1,17 @@
-Synergy
-=======
-
-synergy: [noun] a mutually advantageous conjunction of distinct elements
-
-Synergy lets you easily share a single mouse and keyboard between
-multiple computers with different operating systems, each with its
-own display, without special hardware. It's intended for users
-with multiple computers on their desk since each system uses its
-own display.
-
-Redirecting the mouse and keyboard is as simple as moving the mouse
-off the edge of your screen. Synergy also merges the clipboards of
-all the systems into one, allowing cut-and-paste between systems.
-Furthermore, it synchronizes screen savers so they all start and stop
-together and, if screen locking is enabled, only one screen requires
-a password to unlock them all.
-
-Synergy is open source and released under the GNU Public License (GPL).
-
-Please see doc/index.html for more information.
+See: http://code.google.com/p/synergy-plus/wiki/Readme
+
+Announcement | 2009-08-04
+=========================
+We have recently switched to CMake, to replace Automake.
+Plese read the Compiling wiki page for help with CMake:
+http://code.google.com/p/synergy-plus/wiki/Compiling
+
+Linux/Mac
+---------
+Instead of using the traditional GNU style `./configure; make`
+commands, you will now need to use CMake.
+
+Windows
+-------
+Instead of using the VS2005 and VS2008 directories, you now need
+to generate the Visual Studio project files using CMake.
diff --git a/acinclude.m4 b/acinclude.m4
deleted file mode 100644
index 29163d5a..00000000
--- a/acinclude.m4
+++ /dev/null
@@ -1,571 +0,0 @@
-dnl synergy -- mouse and keyboard sharing utility
-dnl Copyright (C) 2002 Chris Schoeneman
-dnl
-dnl This package is free software; you can redistribute it and/or
-dnl modify it under the terms of the GNU General Public License
-dnl found in the file COPYING that should have accompanied this file.
-dnl
-dnl This package is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-dnl GNU General Public License for more details.
-
-AC_DEFUN([ACX_CHECK_SOCKLEN_T], [
- AC_MSG_CHECKING([for socklen_t])
- AC_TRY_COMPILE([
- #include
- #include
- ],
- [socklen_t len;],[acx_socklen_t_ok=yes],[acx_socklen_t_ok=no])
- AC_MSG_RESULT($acx_socklen_t_ok)
- if test x"$acx_socklen_t_ok" = xyes; then
- ifelse([$1],,AC_DEFINE(HAVE_SOCKLEN_T,1,[Define if your compiler defines socklen_t.]),[$1])
- :
- else
- acx_socklen_t_ok=no
- $2
- fi
-])dnl ACX_CHECK_SOCKLEN_T
-
-# HP-UX defines socklen_t but doesn't use it in arg 3 for accept().
-AC_DEFUN([ACX_FUNC_ACCEPT], [
- AC_MSG_CHECKING([for type of arg 3 for accept])
- acx_accept_socklen_t_arg3=int
- if test x"$acx_socklen_t_ok" = xyes; then
- AC_TRY_COMPILE([
- #include
- #include
- ],
- [struct sockaddr addr; socklen_t len; accept(0, &addr, &len);],
- [acx_accept_socklen_t_arg3=socklen_t],
- [acx_accept_socklen_t_arg3=int])
- fi
- AC_MSG_RESULT($acx_accept_socklen_t_arg3)
- AC_DEFINE_UNQUOTED(ACCEPT_TYPE_ARG3,$acx_accept_socklen_t_arg3,[Define to the base type of arg 3 for `accept'.])
-])dnl ACX_FUNC_ACCEPT
-
-AC_DEFUN([ACX_CHECK_CXX], [
- AC_MSG_CHECKING([if g++ defines correct C++ macro])
- AC_TRY_COMPILE(, [
- #if defined(_LANGUAGE_C) && !defined(_LANGUAGE_C_PLUS_PLUS)
- #error wrong macro
- #endif],[acx_cxx_macro_ok=yes],[acx_cxx_macro_ok=no])
- AC_MSG_RESULT($acx_cxx_macro_ok)
- if test x"$acx_cxx_macro_ok" = xyes; then
- SYNERGY_CXXFLAGS=""
- else
- SYNERGY_CXXFLAGS="-U_LANGUAGE_C -D_LANGUAGE_C_PLUS_PLUS"
- fi
-])dnl ACX_CHECK_CXX
-
-AC_DEFUN([ACX_CHECK_CXX_BOOL], [
- AC_MSG_CHECKING([for bool support])
- AC_TRY_COMPILE(, [bool t = true, f = false;],
- [acx_cxx_bool_ok=yes],[acx_cxx_bool_ok=no])
- AC_MSG_RESULT($acx_cxx_bool_ok)
- if test x"$acx_cxx_bool_ok" = xyes; then
- ifelse([$1],,AC_DEFINE(HAVE_CXX_BOOL,1,[Define if your compiler has bool support.]),[$1])
- :
- else
- acx_cxx_bool_ok=no
- $2
- fi
-])dnl ACX_CHECK_CXX_BOOL
-
-AC_DEFUN([ACX_CHECK_CXX_EXCEPTIONS], [
- AC_MSG_CHECKING([for exception support])
- AC_TRY_COMPILE(, [try{throw int(4);}catch(int){throw;}catch(...){}],
- [acx_cxx_exception_ok=yes],[acx_cxx_exception_ok=no])
- AC_MSG_RESULT($acx_cxx_exception_ok)
- if test x"$acx_cxx_exception_ok" = xyes; then
- ifelse([$1],,AC_DEFINE(HAVE_CXX_EXCEPTIONS,1,[Define if your compiler has exceptions support.]),[$1])
- :
- else
- acx_cxx_exception_ok=no
- $2
- fi
-])dnl ACX_CHECK_CXX_EXCEPTIONS
-
-AC_DEFUN([ACX_CHECK_CXX_CASTS], [
- AC_MSG_CHECKING([for C++ cast support])
- AC_TRY_COMPILE(, [const char* f="a";const_cast(f);
- reinterpret_cast(f);static_cast(4.5);],
- [acx_cxx_cast_ok=yes],[acx_cxx_cast_ok=no])
- AC_MSG_RESULT($acx_cxx_cast_ok)
- if test x"$acx_cxx_cast_ok" = xyes; then
- ifelse([$1],,AC_DEFINE(HAVE_CXX_CASTS,1,[Define if your compiler has C++ cast support.]),[$1])
- :
- else
- acx_cxx_cast_ok=no
- $2
- fi
-])dnl ACX_CHECK_CXX_CASTS
-
-AC_DEFUN([ACX_CHECK_CXX_MUTABLE], [
- AC_MSG_CHECKING([for mutable support])
- AC_TRY_COMPILE(, [struct A{mutable int b;void f() const {b=0;}};
- A a;a.f();],[acx_cxx_mutable_ok=yes],[acx_cxx_mutable_ok=no])
- AC_MSG_RESULT($acx_cxx_mutable_ok)
- if test x"$acx_cxx_mutable_ok" = xyes; then
- ifelse([$1],,AC_DEFINE(HAVE_CXX_MUTABLE,1,[Define if your compiler has mutable support.]),[$1])
- :
- else
- acx_cxx_mutable_ok=no
- $2
- fi
-])dnl ACX_CHECK_CXX_MUTABLE
-
-AC_DEFUN([ACX_CHECK_CXX_STDLIB], [
- AC_MSG_CHECKING([for C++ standard library])
- AC_TRY_LINK([#include ], [std::set a; a.insert(3);],
- [acx_cxx_stdlib_ok=yes],[acx_cxx_stdlib_ok=no])
- AC_MSG_RESULT($acx_cxx_stdlib_ok)
- if test x"$acx_cxx_stdlib_ok" = xyes; then
- ifelse([$1],,AC_DEFINE(HAVE_CXX_STDLIB,1,[Define if your compiler has standard C++ library support.]),[$1])
- :
- else
- acx_cxx_stdlib_ok=no
- $2
- fi
-])dnl ACX_CHECK_CXX_STDLIB
-
-AC_DEFUN([ACX_CHECK_GETPWUID_R], [
- AC_MSG_CHECKING([for working getpwuid_r])
- AC_TRY_LINK([#include ],
- [char buffer[4096]; struct passwd pwd, *pwdp;
- getpwuid_r(0, &pwd, buffer, sizeof(buffer), &pwdp);],
- acx_getpwuid_r_ok=yes, acx_getpwuid_r_ok=no)
- AC_MSG_RESULT($acx_getpwuid_r_ok)
- if test x"$acx_getpwuid_r_ok" = xyes; then
- ifelse([$1],,AC_DEFINE(HAVE_GETPWUID_R,1,[Define if you have a working \`getpwuid_r\' function.]),[$1])
- :
- else
- acx_getpwuid_r_ok=no
- $2
- fi
-])dnl ACX_CHECK_GETPWUID_R
-
-AC_DEFUN([ACX_CHECK_POLL], [
- AC_MSG_CHECKING([for poll])
- AC_TRY_LINK([#include ],
- [#if defined(_POLL_EMUL_H_)
- #error emulated poll
- #endif
- struct pollfd ufds[] = { 0, POLLIN, 0 }; poll(ufds, 1, 10);],
- acx_poll_ok=yes, acx_poll_ok=no)
- AC_MSG_RESULT($acx_poll_ok)
- if test x"$acx_poll_ok" = xyes; then
- ifelse([$1],,AC_DEFINE(HAVE_POLL,1,[Define if you have the \`poll\' function.]),[$1])
- :
- else
- acx_poll_ok=no
- $2
- fi
-])dnl ACX_CHECK_POLL
-
-dnl See if we need extra libraries for nanosleep
-AC_DEFUN([ACX_CHECK_NANOSLEEP], [
- acx_nanosleep_ok=no
- acx_nanosleep_list=""
-
- dnl check if user has set NANOSLEEP_LIBS
- save_user_NANOSLEEP_LIBS="$NANOSLEEP_LIBS"
- if test x"$NANOSLEEP_LIBS" != x; then
- acx_nanosleep_list=user
- fi
-
- dnl check various libraries (including no extra libraries) for
- dnl nanosleep. `none' should appear first.
- acx_nanosleep_list="none $acx_nanosleep_list rt"
- for flag in $acx_nanosleep_list; do
- case $flag in
- none)
- AC_MSG_CHECKING([for nanosleep])
- NANOSLEEP_LIBS=""
- ;;
-
- user)
- AC_MSG_CHECKING([for nanosleep in $save_user_NANOSLEEP_LIBS])
- NANOSLEEP_LIBS="$save_user_NANOSLEEP_LIBS"
- ;;
-
- *)
- AC_MSG_CHECKING([for nanosleep in -l$flag])
- NANOSLEEP_LIBS="-l$flag"
- ;;
- esac
-
- save_LIBS="$LIBS"
- LIBS="$NANOSLEEP_LIBS $LIBS"
- AC_TRY_LINK([#include ],
- [struct timespec t = { 1, 1000 }; nanosleep(&t, NULL);],
- acx_nanosleep_ok=yes, acx_nanosleep_ok=no)
- LIBS="$save_LIBS"
- AC_MSG_RESULT($acx_nanosleep_ok)
- if test x"$acx_nanosleep_ok" = xyes; then
- break;
- fi
- NANOSLEEP_LIBS=""
- done
-
- AC_SUBST(NANOSLEEP_LIBS)
-
- # execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
- if test x"$acx_nanosleep_ok" = xyes; then
- ifelse([$1],,AC_DEFINE(HAVE_NANOSLEEP,1,[Define if you have the \`nanosleep\' function.]),[$1])
- :
- else
- acx_nanosleep_ok=no
- $2
- fi
-])dnl ACX_CHECK_NANOSLEEP
-
-dnl See if we need extra libraries for inet_aton
-AC_DEFUN([ACX_CHECK_INET_ATON], [
- acx_inet_aton_ok=no
- acx_inet_aton_list=""
-
- dnl check if user has set INET_ATON_LIBS
- save_user_INET_ATON_LIBS="$INET_ATON_LIBS"
- if test x"$INET_ATON_LIBS" != x; then
- acx_inet_aton_list=user
- fi
-
- dnl check various libraries (including no extra libraries) for
- dnl inet_aton. `none' should appear first.
- acx_inet_aton_list="none $acx_inet_aton_list resolv"
- for flag in $acx_inet_aton_list; do
- case $flag in
- none)
- AC_MSG_CHECKING([for inet_aton])
- INET_ATON_LIBS=""
- ;;
-
- user)
- AC_MSG_CHECKING([for inet_aton in $save_user_INET_ATON_LIBS])
- INET_ATON_LIBS="$save_user_INET_ATON_LIBS"
- ;;
-
- *)
- AC_MSG_CHECKING([for inet_aton in -l$flag])
- INET_ATON_LIBS="-l$flag"
- ;;
- esac
-
- save_LIBS="$LIBS"
- LIBS="$INET_ATON_LIBS $LIBS"
- AC_TRY_LINK([#include
- #include
- #include
- #include ],
- [struct in_addr addr; inet_aton("foo.bar", &addr);],
- acx_inet_aton_ok=yes, acx_inet_aton_ok=no)
- LIBS="$save_LIBS"
- AC_MSG_RESULT($acx_inet_aton_ok)
- if test x"$acx_inet_aton_ok" = xyes; then
- AC_DEFINE(HAVE_INET_ATON,1,[Define if you have the \`inet_aton\' function.])
- break;
- fi
- INET_ATON_LIBS=""
- done
-
- AC_SUBST(INET_ATON_LIBS)
-])dnl ACX_CHECK_INET_ATON
-
-dnl The following macros are from http://www.gnu.org/software/ac-archive/
-dnl which distributes them under the following license:
-dnl
-dnl Every Autoconf macro presented on this web site is free software; you can
-dnl redistribute it and/or modify it under the terms of the GNU General
-dnl Public License as published by the Free Software Foundation; either
-dnl version 2, or (at your option) any later version.
-dnl
-dnl They are distributed in the hope that they will be useful, but WITHOUT
-dnl ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-dnl FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-dnl more details. (You should have received a copy of the GNU General Public
-dnl License along with this program; if not, write to the Free Software
-dnl Foundation, Inc., 59 Temple Place -- Suite 330, Boston, MA 02111-1307,
-dnl USA.)
-dnl
-dnl As a special exception, the Free Software Foundation gives unlimited
-dnl permission to copy, distribute and modify the configure scripts that are
-dnl the output of Autoconf. You need not follow the terms of the GNU General
-dnl Public License when using or distributing such scripts, even though
-dnl portions of the text of Autoconf appear in them. The GNU General Public
-dnl License (GPL) does govern all other use of the material that constitutes
-dnl the Autoconf program.
-dnl
-dnl Certain portions of the Autoconf source text are designed to be copied
-dnl (in certain cases, depending on the input) into the output of Autoconf.
-dnl We call these the "data" portions. The rest of the Autoconf source text
-dnl consists of comments plus executable code that decides which of the data
-dnl portions to output in any given case. We call these comments and
-dnl executable code the "non-data" portions. Autoconf never copies any of the
-dnl non-data portions into its output.
-dnl
-dnl This special exception to the GPL applies to versions of Autoconf
-dnl released by the Free Software Foundation. When you make and distribute a
-dnl modified version of Autoconf, you may extend this special exception to
-dnl the GPL to apply to your modified version as well, *unless* your modified
-dnl version has the potential to copy into its output some of the text that
-dnl was the non-data portion of the version that you started with. (In other
-dnl words, unless your change moves or copies text from the non-data portions
-dnl to the data portions.) If your modification has such potential, you must
-dnl delete any notice of this special exception to the GPL from your modified
-dnl version
-
-AC_DEFUN([ACX_PTHREAD], [
-AC_REQUIRE([AC_CANONICAL_HOST])
-AC_LANG_SAVE
-AC_LANG_C
-acx_pthread_ok=no
-
-# We used to check for pthread.h first, but this fails if pthread.h
-# requires special compiler flags (e.g. on True64 or Sequent).
-# It gets checked for in the link test anyway.
-
-# First of all, check if the user has set any of the PTHREAD_LIBS,
-# etcetera environment variables, and if threads linking works using
-# them:
-if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
- save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
- save_LIBS="$LIBS"
- LIBS="$PTHREAD_LIBS $LIBS"
- AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
- AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes)
- AC_MSG_RESULT($acx_pthread_ok)
- if test x"$acx_pthread_ok" = xno; then
- PTHREAD_LIBS=""
- PTHREAD_CFLAGS=""
- fi
- LIBS="$save_LIBS"
- CFLAGS="$save_CFLAGS"
-fi
-
-# We must check for the threads library under a number of different
-# names; the ordering is very important because some systems
-# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
-# libraries is broken (non-POSIX).
-
-# Create a list of thread flags to try. Items starting with a "-" are
-# C compiler flags, and other items are library names, except for "none"
-# which indicates that we try without any flags at all, and "pthread-config"
-# which is a program returning the flags for the Pth emulation library.
-
-acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
-
-# The ordering *is* (sometimes) important. Some notes on the
-# individual items follow:
-
-# pthreads: AIX (must check this before -lpthread)
-# none: in case threads are in libc; should be tried before -Kthread and
-# other compiler flags to prevent continual compiler warnings
-# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
-# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
-# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
-# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
-# -pthreads: Solaris/gcc
-# -mthreads: Mingw32/gcc, Lynx/gcc
-# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
-# doesn't hurt to check since this sometimes defines pthreads too;
-# also defines -D_REENTRANT)
-# pthread: Linux, etcetera
-# --thread-safe: KAI C++
-# pthread-config: use pthread-config program (for GNU Pth library)
-
-case "${host_cpu}-${host_os}" in
- *solaris*)
-
- # On Solaris (at least, for some versions), libc contains stubbed
- # (non-functional) versions of the pthreads routines, so link-based
- # tests will erroneously succeed. (We need to link with -pthread or
- # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather
- # a function called by this macro, so we could check for that, but
- # who knows whether they'll stub that too in a future libc.) So,
- # we'll just look for -pthreads and -lpthread first:
-
- acx_pthread_flags="-pthread -pthreads pthread -mt $acx_pthread_flags"
- ;;
-esac
-
-if test x"$acx_pthread_ok" = xno; then
-for flag in $acx_pthread_flags; do
-
- case $flag in
- none)
- AC_MSG_CHECKING([whether pthreads work without any flags])
- ;;
-
- -*)
- AC_MSG_CHECKING([whether pthreads work with $flag])
- PTHREAD_CFLAGS="$flag"
- ;;
-
- pthread-config)
- AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no)
- if test x"$acx_pthread_config" = xno; then continue; fi
- PTHREAD_CFLAGS="`pthread-config --cflags`"
- PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
- ;;
-
- *)
- AC_MSG_CHECKING([for the pthreads library -l$flag])
- PTHREAD_LIBS="-l$flag"
- ;;
- esac
-
- save_LIBS="$LIBS"
- save_CFLAGS="$CFLAGS"
- LIBS="$PTHREAD_LIBS $LIBS"
- CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-
- # Check for various functions. We must include pthread.h,
- # since some functions may be macros. (On the Sequent, we
- # need a special flag -Kthread to make this header compile.)
- # We check for pthread_join because it is in -lpthread on IRIX
- # while pthread_create is in libc. We check for pthread_attr_init
- # due to DEC craziness with -lpthreads. We check for
- # pthread_cleanup_push because it is one of the few pthread
- # functions on Solaris that doesn't have a non-functional libc stub.
- # We try pthread_create on general principles.
- AC_TRY_LINK([#include ],
- [pthread_t th; pthread_join(th, 0);
- pthread_attr_init(0); pthread_cleanup_push(0, 0);
- pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
- [acx_pthread_ok=yes])
-
- LIBS="$save_LIBS"
- CFLAGS="$save_CFLAGS"
-
- AC_MSG_RESULT($acx_pthread_ok)
- if test "x$acx_pthread_ok" = xyes; then
- break;
- fi
-
- PTHREAD_LIBS=""
- PTHREAD_CFLAGS=""
-done
-fi
-
-# Various other checks:
-if test "x$acx_pthread_ok" = xyes; then
- save_LIBS="$LIBS"
- LIBS="$PTHREAD_LIBS $LIBS"
- save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-
- # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
- AC_MSG_CHECKING([for joinable pthread attribute])
- attr_name=unknown
- for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
- AC_TRY_LINK([#include ], [int attr=$attr;],
- [attr_name=$attr; break])
- done
- AC_MSG_RESULT($attr_name)
- if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
- AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name,
- [Define to necessary symbol if this constant
- uses a non-standard name on your system.])
- fi
-
- AC_MSG_CHECKING([if more special flags are required for pthreads])
- flag=no
- case "${host_cpu}-${host_os}" in
- *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;
- *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;
- esac
- AC_MSG_RESULT(${flag})
- if test "x$flag" != xno; then
- PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
- fi
-
- # Detect POSIX sigwait()
- AC_MSG_CHECKING([for POSIX sigwait])
- AC_TRY_LINK([#include
- #include ],
- [sigset_t sigset; int signal; sigwait(&sigset, &signal);],
- ok=yes, ok=unknown)
- if test x"$ok" = xunknown; then
- save_CFLAGS2="$CFLAGS"
- CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS"
- AC_TRY_LINK([#include
- #include ],
- [sigset_t sigset; int signal; sigwait(&sigset, &signal);],
- ok=-D_POSIX_PTHREAD_SEMANTICS, ok=no)
- CFLAGS="$save_CFLAGS2"
- fi
- AC_MSG_RESULT(${ok})
- if test x"$ok" != xno; then
- AC_DEFINE(HAVE_POSIX_SIGWAIT,1,[Define if you have a POSIX \`sigwait\' function.])
- if test x"$ok" != xyes; then
- PTHREAD_CFLAGS="$ok $PTHREAD_CFLAGS"
- fi
- fi
-
- # Detect pthread signal functions
- AC_MSG_CHECKING([for pthread signal functions])
- AC_TRY_LINK([#include
- #include ],
- [pthread_kill(pthread_self(), SIGTERM);],
- ok=yes, ok=no)
- AC_MSG_RESULT(${ok})
- if test x"$ok" = xyes; then
- AC_DEFINE(HAVE_PTHREAD_SIGNAL,1,[Define if you have \`pthread_sigmask\' and \`pthread_kill\' functions.])
- fi
-
- LIBS="$save_LIBS"
- CFLAGS="$save_CFLAGS"
-
- # More AIX lossage: must compile with cc_r
- AC_CHECK_PROG(PTHREAD_CC, cc_r, cc_r, ${CC})
-else
- PTHREAD_CC="$CC"
-fi
-
-AC_SUBST(PTHREAD_LIBS)
-AC_SUBST(PTHREAD_CFLAGS)
-AC_SUBST(PTHREAD_CC)
-
-# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
-if test x"$acx_pthread_ok" = xyes; then
- ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
- :
-else
- acx_pthread_ok=no
- $2
-fi
-AC_LANG_RESTORE
-])dnl ACX_PTHREAD
-
-dnl enable maximum compiler warnings. must ignore unknown pragmas to
-dnl build on solaris.
-dnl we only know how to do this for g++
-AC_DEFUN([ACX_CXX_WARNINGS], [
- AC_MSG_CHECKING([for C++ compiler warning flags])
- if test "$GXX" = "yes"; then
- acx_cxx_warnings="-Wall -Wno-unknown-pragmas"
- fi
- if test -n "$acx_cxx_warnings"; then
- CXXFLAGS="$CXXFLAGS $acx_cxx_warnings"
- else
- acx_cxx_warnings="unknown"
- fi
- AC_MSG_RESULT($acx_cxx_warnings)
-])dnl ACX_CXX_WARNINGS
-
-dnl enable compiler warnings are errors
-dnl we only know how to do this for g++
-AC_DEFUN([ACX_CXX_WARNINGS_ARE_ERRORS], [
- AC_MSG_CHECKING([for C++ compiler warning are errors flags])
- if test "$GXX" = "yes"; then
- acx_cxx_warnings_are_errors="-Werror"
- fi
- if test -n "$acx_cxx_warnings_are_errors"; then
- CXXFLAGS="$CXXFLAGS $acx_cxx_warnings_are_errors"
- else
- acx_cxx_warnings_are_errors="unknown"
- fi
- AC_MSG_RESULT($acx_cxx_warnings_are_errors)
-])dnl ACX_CXX_WARNINGS_ARE_ERRORS
diff --git a/cmd/Makefile.am b/cmd/Makefile.am
deleted file mode 100644
index 1e43b156..00000000
--- a/cmd/Makefile.am
+++ /dev/null
@@ -1,27 +0,0 @@
-# synergy -- mouse and keyboard sharing utility
-# Copyright (C) 2002 Chris Schoeneman
-#
-# This package is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# found in the file COPYING that should have accompanied this file.
-#
-# This package 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.
-
-## Process this file with automake to produce Makefile.in
-NULL =
-
-SUBDIRS = \
- launcher \
- synergyc \
- synergys \
- $(NULL)
-
-EXTRA_DIST = \
- $(NULL)
-
-MAINTAINERCLEANFILES = \
- Makefile.in \
- $(NULL)
diff --git a/cmd/launcher/CHotkeyOptions.cpp b/cmd/launcher/CHotkeyOptions.cpp
index 6e882740..abc1779a 100644
--- a/cmd/launcher/CHotkeyOptions.cpp
+++ b/cmd/launcher/CHotkeyOptions.cpp
@@ -558,7 +558,7 @@ CHotkeyOptions::CConditionDialog::doModal(HWND parent,
else {
s_lastGoodCondition = NULL;
}
- int n = DialogBox(s_instance, MAKEINTRESOURCE(IDD_HOTKEY_CONDITION),
+ int n = (int)DialogBox(s_instance, MAKEINTRESOURCE(IDD_HOTKEY_CONDITION),
parent, (DLGPROC) dlgProc);
condition = s_condition;
@@ -671,7 +671,7 @@ CHotkeyOptions::CConditionDialog::onKey(HWND hwnd, WPARAM wParam, LPARAM lParam)
// fall through
default:
- key = CMSWindowsKeyState::getKeyID(wParam,
+ key = CMSWindowsKeyState::getKeyID((UINT)wParam,
static_cast((lParam & 0x1ff0000u) >> 16));
switch (key) {
case kKeyNone:
@@ -943,7 +943,7 @@ CHotkeyOptions::CActionDialog::doModal(HWND parent, CConfig* config,
s_lastGoodAction = NULL;
}
- int n = DialogBox(s_instance, MAKEINTRESOURCE(IDD_HOTKEY_ACTION),
+ int n = (int)DialogBox(s_instance, MAKEINTRESOURCE(IDD_HOTKEY_ACTION),
parent, (DLGPROC) dlgProc);
onActivate = s_onActivate;
@@ -1069,7 +1069,7 @@ CHotkeyOptions::CActionDialog::doInit(HWND hwnd)
}
else if (switchToAction != NULL) {
child = getItem(hwnd, IDC_HOTKEY_ACTION_SWITCH_TO_LIST);
- DWORD i = SendMessage(child, CB_FINDSTRINGEXACT, (WPARAM)-1,
+ DWORD i = (DWORD)SendMessage(child, CB_FINDSTRINGEXACT, (WPARAM)-1,
(LPARAM)switchToAction->getScreen().c_str());
if (i == CB_ERR) {
i = 0;
@@ -1241,7 +1241,7 @@ CHotkeyOptions::CActionDialog::onKey(HWND hwnd, WPARAM wParam, LPARAM lParam)
// fall through
default:
- key = CMSWindowsKeyState::getKeyID(wParam,
+ key = CMSWindowsKeyState::getKeyID((UINT)wParam,
static_cast((lParam & 0x1ff0000u) >> 16));
switch (key) {
case kKeyNone:
diff --git a/cmd/launcher/CScreensLinks.cpp b/cmd/launcher/CScreensLinks.cpp
index c7e58a04..b9fe2474 100644
--- a/cmd/launcher/CScreensLinks.cpp
+++ b/cmd/launcher/CScreensLinks.cpp
@@ -359,7 +359,7 @@ CScreensLinks::editLink(HWND hwnd)
{
// get selection
HWND child = getItem(hwnd, IDC_SCREENS_LINKS);
- DWORD i = SendMessage(child, LB_GETCURSEL, 0, 0);
+ DWORD i = (DWORD)SendMessage(child, LB_GETCURSEL, 0, 0);
if (i != LB_ERR && i != (DWORD)m_edgeLinks.size()) {
// existing link
m_selectedLink = (SInt32)SendMessage(child, LB_GETITEMDATA, i, 0);
@@ -405,7 +405,7 @@ CScreensLinks::updateScreens(HWND hwnd, const CString& selectName)
// find the named screen
if (!selectName.empty()) {
- DWORD i = SendMessage(child, LB_FINDSTRINGEXACT,
+ DWORD i = (DWORD)SendMessage(child, LB_FINDSTRINGEXACT,
(UINT)-1, (LPARAM)selectName.c_str());
if (i != LB_ERR) {
SendMessage(child, LB_SETSEL, TRUE, i);
@@ -462,7 +462,7 @@ CScreensLinks::updateLinks(HWND hwnd)
for (CConfig::link_const_iterator j = m_config->beginNeighbor(name),
n = m_config->endNeighbor(name);
j != n; ++j) {
- DWORD k = m_edgeLinks.size();
+ DWORD k = (DWORD)m_edgeLinks.size();
m_edgeLinks.push_back(CEdgeLink(name, *j));
SendMessage(links, LB_INSERTSTRING, (WPARAM)-1,
(LPARAM)formatLink(m_edgeLinks.back()).c_str());
@@ -474,7 +474,7 @@ CScreensLinks::updateLinks(HWND hwnd)
SendMessage(links, LB_ADDSTRING, 0, (LPARAM)m_newLinkLabel.c_str());
// remove the "new link" item then insert it on the end
- DWORD i = SendMessage(links, LB_FINDSTRINGEXACT,
+ DWORD i = (DWORD)SendMessage(links, LB_FINDSTRINGEXACT,
(UINT)-1, (LPARAM)m_newLinkLabel.c_str());
if (i != LB_ERR) {
SendMessage(links, LB_DELETESTRING, i, 0);
@@ -488,11 +488,11 @@ CScreensLinks::updateLinks(HWND hwnd)
SendMessage(links, LB_SETCURSEL, (WPARAM)m_edgeLinks.size(), 0);
if (m_selectedLink != -1) {
m_selectedLink = -1;
- for (size_t j = 0; j < m_edgeLinks.size(); ++j) {
+ for (SInt32 j = 0; j < (SInt32)m_edgeLinks.size(); ++j) {
if (m_edgeLinks[j] == oldLink) {
// found matching link
m_selectedLink = j;
- for (size_t k = 0; k < m_edgeLinks.size(); ++k) {
+ for (UInt32 k = 0; k < (UInt32)m_edgeLinks.size(); ++k) {
if (SendMessage(links, LB_GETITEMDATA, k, 0) == (int)j) {
SendMessage(links, LB_SETCURSEL, k, 0);
break;
@@ -595,7 +595,7 @@ void
CScreensLinks::selectScreen(HWND hwnd, int id, const CString& name)
{
HWND child = getItem(hwnd, id);
- DWORD i = SendMessage(child, CB_FINDSTRINGEXACT, (WPARAM)-1,
+ DWORD i = (DWORD)SendMessage(child, CB_FINDSTRINGEXACT, (WPARAM)-1,
(LPARAM)name.c_str());
if (i == CB_ERR) {
// no match, select no screen
diff --git a/cmd/launcher/Makefile.am b/cmd/launcher/Makefile.am
deleted file mode 100644
index 6fc879e3..00000000
--- a/cmd/launcher/Makefile.am
+++ /dev/null
@@ -1,75 +0,0 @@
-# synergy -- mouse and keyboard sharing utility
-# Copyright (C) 2002 Chris Schoeneman
-#
-# This package is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# found in the file COPYING that should have accompanied this file.
-#
-# This package 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.
-
-## Process this file with automake to produce Makefile.in
-NULL =
-
-MSWINDOWS_SOURCE_FILES = \
- CAddScreen.cpp \
- CAdvancedOptions.cpp \
- CAutoStart.cpp \
- CGlobalOptions.cpp \
- CHotkeyOptions.cpp \
- CInfo.cpp \
- CScreensLinks.cpp \
- LaunchUtil.cpp \
- launcher.cpp \
- CAddScreen.h \
- CAdvancedOptions.h \
- CAutoStart.h \
- CGlobalOptions.h \
- CHotkeyOptions.h \
- CInfo.h \
- CScreensLinks.h \
- LaunchUtil.h \
- resource.h \
- launcher.rc \
- $(NULL)
-
-EXTRA_DIST = \
- Makefile.win \
- synergy.ico \
- $(MSWINDOWS_SOURCE_FILES) \
- $(NULL)
-
-MAINTAINERCLEANFILES = \
- Makefile.in \
- $(NULL)
-
-if MSWINDOWS
-bin_PROGRAMS = synergy
-synergy_SOURCES = \
- $(MSWINDOWS_SOURCE_FILES) \
- $(NULL)
-endif
-synergy_LDADD = \
- $(top_builddir)/lib/server/libserver.a \
- $(top_builddir)/lib/platform/libplatform.a \
- $(top_builddir)/lib/synergy/libsynergy.a \
- $(top_builddir)/lib/net/libnet.a \
- $(top_builddir)/lib/io/libio.a \
- $(top_builddir)/lib/mt/libmt.a \
- $(top_builddir)/lib/base/libbase.a \
- $(top_builddir)/lib/common/libcommon.a \
- $(top_builddir)/lib/arch/libarch.a \
- $(NULL)
-INCLUDES = \
- -I$(top_srcdir)/lib/common \
- -I$(top_srcdir)/lib/arch \
- -I$(top_srcdir)/lib/base \
- -I$(top_srcdir)/lib/mt \
- -I$(top_srcdir)/lib/io \
- -I$(top_srcdir)/lib/net \
- -I$(top_srcdir)/lib/synergy \
- -I$(top_srcdir)/lib/platform \
- -I$(top_srcdir)/lib/server \
- $(NULL)
diff --git a/cmd/launcher/Makefile.win b/cmd/launcher/Makefile.win
deleted file mode 100644
index 3d4f277a..00000000
--- a/cmd/launcher/Makefile.win
+++ /dev/null
@@ -1,101 +0,0 @@
-# synergy -- mouse and keyboard sharing utility
-# Copyright (C) 2007 Chris Schoeneman
-#
-# This package is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# found in the file COPYING that should have accompanied this file.
-#
-# This package 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.
-
-BIN_LAUNCHER_SRC = cmd\launcher
-BIN_LAUNCHER_DST = $(BUILD_DST)\$(BIN_LAUNCHER_SRC)
-BIN_LAUNCHER_EXE = "$(BUILD_DST)\synergy.exe"
-BIN_LAUNCHER_CPP = \
- "CAddScreen.cpp" \
- "CAdvancedOptions.cpp" \
- "CAutoStart.cpp" \
- "CGlobalOptions.cpp" \
- "CHotkeyOptions.cpp" \
- "CInfo.cpp" \
- "CScreensLinks.cpp" \
- "LaunchUtil.cpp" \
- "launcher.cpp" \
- $(NULL)
-BIN_LAUNCHER_OBJ = \
- "$(BIN_LAUNCHER_DST)\CAddScreen.obj" \
- "$(BIN_LAUNCHER_DST)\CAdvancedOptions.obj" \
- "$(BIN_LAUNCHER_DST)\CAutoStart.obj" \
- "$(BIN_LAUNCHER_DST)\CGlobalOptions.obj" \
- "$(BIN_LAUNCHER_DST)\CHotkeyOptions.obj" \
- "$(BIN_LAUNCHER_DST)\CInfo.obj" \
- "$(BIN_LAUNCHER_DST)\CScreensLinks.obj" \
- "$(BIN_LAUNCHER_DST)\LaunchUtil.obj" \
- "$(BIN_LAUNCHER_DST)\launcher.obj" \
- $(NULL)
-BIN_LAUNCHER_RC = "$(BIN_LAUNCHER_SRC)\launcher.rc"
-BIN_LAUNCHER_RES = "$(BIN_LAUNCHER_DST)\launcher.res"
-BIN_LAUNCHER_INC = \
- /I"lib\common" \
- /I"lib\arch" \
- /I"lib\base" \
- /I"lib\mt" \
- /I"lib\io" \
- /I"lib\net" \
- /I"lib\synergy" \
- /I"lib\platform" \
- /I"lib\server" \
- $(NULL)
-BIN_LAUNCHER_LIB = \
- $(LIB_SERVER_LIB) \
- $(LIB_PLATFORM_LIB) \
- $(LIB_SYNERGY_LIB) \
- $(LIB_NET_LIB) \
- $(LIB_IO_LIB) \
- $(LIB_MT_LIB) \
- $(LIB_BASE_LIB) \
- $(LIB_ARCH_LIB) \
- $(LIB_COMMON_LIB) \
- $(NULL)
-
-CPP_FILES = $(CPP_FILES) $(BIN_LAUNCHER_CPP)
-OBJ_FILES = $(OBJ_FILES) $(BIN_LAUNCHER_OBJ)
-PROGRAMS = $(PROGRAMS) $(BIN_LAUNCHER_EXE)
-
-# Need shell functions.
-guilibs = $(guilibs) shell32.lib
-
-# Dependency rules
-$(BIN_LAUNCHER_OBJ): $(AUTODEP)
-!if EXIST($(BIN_LAUNCHER_DST)\deps.mak)
-!include $(BIN_LAUNCHER_DST)\deps.mak
-!endif
-
-# Build rules. Use batch-mode rules if possible.
-!if DEFINED(_NMAKE_VER)
-{$(BIN_LAUNCHER_SRC)\}.cpp{$(BIN_LAUNCHER_DST)\}.obj::
-!else
-{$(BIN_LAUNCHER_SRC)\}.cpp{$(BIN_LAUNCHER_DST)\}.obj:
-!endif
- @$(ECHO) Compile in $(BIN_LAUNCHER_SRC)
- -@$(MKDIR) $(BIN_LAUNCHER_DST) 2>NUL:
- $(cpp) $(cppdebug) $(cppflags) $(cppvarsmt) /showIncludes \
- $(BIN_LAUNCHER_INC) \
- /Fo$(BIN_LAUNCHER_DST)\ \
- /Fd$(BIN_LAUNCHER_DST)\src.pdb \
- $< | $(AUTODEP) $(BIN_LAUNCHER_SRC) $(BIN_LAUNCHER_DST)
-$(BIN_LAUNCHER_RES): $(BIN_LAUNCHER_RC)
- @$(ECHO) Compile $(**F)
- -@$(MKDIR) $(BIN_LAUNCHER_DST) 2>NUL:
- $(rc) $(rcflags) $(rcvars) \
- /fo$@ \
- $**
-$(BIN_LAUNCHER_EXE): $(BIN_LAUNCHER_OBJ) $(BIN_LAUNCHER_RES) $(BIN_LAUNCHER_LIB)
- @$(ECHO) Link $(@F)
- $(link) $(ldebug) $(guilflags) $(guilibsmt) \
- /out:$@ \
- $**
- $(AUTODEP) $(BIN_LAUNCHER_SRC) $(BIN_LAUNCHER_DST) \
- $(BIN_LAUNCHER_OBJ:.obj=.d)
diff --git a/cmd/launcher/launcher.cpp b/cmd/launcher/launcher.cpp
index 20b59f72..1cccb650 100644
--- a/cmd/launcher/launcher.cpp
+++ b/cmd/launcher/launcher.cpp
@@ -470,7 +470,7 @@ saveMainWindow(HWND hwnd, SaveMode mode, CString* cmdLineOut = NULL)
CArchMiscWindows::setValue(key, "server", getWindowText(child));
child = getItem(hwnd, IDC_MAIN_DEBUG);
CArchMiscWindows::setValue(key, "debug",
- SendMessage(child, CB_GETCURSEL, 0, 0));
+ (DWORD)SendMessage(child, CB_GETCURSEL, 0, 0));
CArchMiscWindows::setValue(key, "isServer", isClient ? 0 : 1);
CArchMiscWindows::closeKey(key);
}
@@ -750,5 +750,5 @@ WinMain(HINSTANCE instance, HINSTANCE, LPSTR cmdLine, int nCmdShow)
}
} while (!done);
- return msg.wParam;
+ return (int)msg.wParam;
}
diff --git a/cmd/launcher/synergy.ico b/cmd/launcher/synergy.ico
index 89f965f4..fc2e4146 100644
Binary files a/cmd/launcher/synergy.ico and b/cmd/launcher/synergy.ico differ
diff --git a/cmd/synergyc/Makefile.am b/cmd/synergyc/Makefile.am
deleted file mode 100644
index b6e8c83d..00000000
--- a/cmd/synergyc/Makefile.am
+++ /dev/null
@@ -1,98 +0,0 @@
-# synergy -- mouse and keyboard sharing utility
-# Copyright (C) 2002 Chris Schoeneman
-#
-# This package is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# found in the file COPYING that should have accompanied this file.
-#
-# This package 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.
-
-## Process this file with automake to produce Makefile.in
-NULL =
-
-COMMON_SOURCE_FILES = \
- CClientTaskBarReceiver.cpp \
- CClientTaskBarReceiver.h \
- synergyc.cpp \
- $(NULL)
-XWINDOWS_SOURCE_FILES = \
- CXWindowsClientTaskBarReceiver.cpp \
- CXWindowsClientTaskBarReceiver.h \
- $(NULL)
-MSWINDOWS_SOURCE_FILES = \
- CMSWindowsClientTaskBarReceiver.cpp \
- CMSWindowsClientTaskBarReceiver.h \
- resource.h \
- synergyc.rc \
- $(NULL)
-CARBON_SOURCE_FILES = \
- COSXClientTaskBarReceiver.cpp \
- COSXClientTaskBarReceiver.h \
- $(NULL)
-
-EXTRA_DIST = \
- Makefile.win \
- synergyc.ico \
- tb_error.ico \
- tb_idle.ico \
- tb_run.ico \
- tb_wait.ico \
- $(XWINDOWS_SOURCE_FILES) \
- $(MSWINDOWS_SOURCE_FILES) \
- $(CARBON_SOURCE_FILES) \
- $(NULL)
-
-MAINTAINERCLEANFILES = \
- Makefile.in \
- $(NULL)
-
-bin_PROGRAMS = synergyc
-if XWINDOWS
-synergyc_SOURCES = \
- $(COMMON_SOURCE_FILES) \
- $(XWINDOWS_SOURCE_FILES) \
- $(NULL)
-endif
-if MSWINDOWS
-synergyc_SOURCES = \
- $(COMMON_SOURCE_FILES) \
- $(MSWINDOWS_SOURCE_FILES) \
- $(NULL)
-endif
-if CARBON
-synergyc_SOURCES = \
- $(COMMON_SOURCE_FILES) \
- $(CARBON_SOURCE_FILES) \
- $(NULL)
-synergyc_LDFLAGS = \
- -framework ScreenSaver \
- -framework IOKit \
- -framework ApplicationServices \
- -framework Foundation \
- $(NULL)
-endif
-synergyc_LDADD = \
- $(top_builddir)/lib/client/libclient.a \
- $(top_builddir)/lib/platform/libplatform.a \
- $(top_builddir)/lib/synergy/libsynergy.a \
- $(top_builddir)/lib/net/libnet.a \
- $(top_builddir)/lib/io/libio.a \
- $(top_builddir)/lib/mt/libmt.a \
- $(top_builddir)/lib/base/libbase.a \
- $(top_builddir)/lib/common/libcommon.a \
- $(top_builddir)/lib/arch/libarch.a \
- $(NULL)
-INCLUDES = \
- -I$(top_srcdir)/lib/common \
- -I$(top_srcdir)/lib/arch \
- -I$(top_srcdir)/lib/base \
- -I$(top_srcdir)/lib/mt \
- -I$(top_srcdir)/lib/io \
- -I$(top_srcdir)/lib/net \
- -I$(top_srcdir)/lib/synergy \
- -I$(top_srcdir)/lib/platform \
- -I$(top_srcdir)/lib/client \
- $(NULL)
diff --git a/cmd/synergyc/Makefile.win b/cmd/synergyc/Makefile.win
deleted file mode 100644
index 29f2e516..00000000
--- a/cmd/synergyc/Makefile.win
+++ /dev/null
@@ -1,89 +0,0 @@
-# synergy -- mouse and keyboard sharing utility
-# Copyright (C) 2007 Chris Schoeneman
-#
-# This package is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# found in the file COPYING that should have accompanied this file.
-#
-# This package 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.
-
-BIN_SYNERGYC_SRC = cmd\synergyc
-BIN_SYNERGYC_DST = $(BUILD_DST)\$(BIN_SYNERGYC_SRC)
-BIN_SYNERGYC_EXE = "$(BUILD_DST)\synergyc.exe"
-BIN_SYNERGYC_CPP = \
- "CClientTaskBarReceiver.cpp" \
- "CMSWindowsClientTaskBarReceiver.cpp" \
- "synergyc.cpp" \
- $(NULL)
-BIN_SYNERGYC_OBJ = \
- "$(BIN_SYNERGYC_DST)\CClientTaskBarReceiver.obj" \
- "$(BIN_SYNERGYC_DST)\CMSWindowsClientTaskBarReceiver.obj" \
- "$(BIN_SYNERGYC_DST)\synergyc.obj" \
- $(NULL)
-BIN_SYNERGYC_RC = "$(BIN_SYNERGYC_SRC)\synergyc.rc"
-BIN_SYNERGYC_RES = "$(BIN_SYNERGYC_DST)\synergyc.res"
-BIN_SYNERGYC_INC = \
- /I"lib\common" \
- /I"lib\arch" \
- /I"lib\base" \
- /I"lib\mt" \
- /I"lib\io" \
- /I"lib\net" \
- /I"lib\synergy" \
- /I"lib\platform" \
- /I"lib\client" \
- $(NULL)
-BIN_SYNERGYC_LIB = \
- $(LIB_CLIENT_LIB) \
- $(LIB_PLATFORM_LIB) \
- $(LIB_SYNERGY_LIB) \
- $(LIB_NET_LIB) \
- $(LIB_IO_LIB) \
- $(LIB_MT_LIB) \
- $(LIB_BASE_LIB) \
- $(LIB_ARCH_LIB) \
- $(LIB_COMMON_LIB) \
- $(NULL)
-
-CPP_FILES = $(CPP_FILES) $(BIN_SYNERGYC_CPP)
-OBJ_FILES = $(OBJ_FILES) $(BIN_SYNERGYC_OBJ)
-PROGRAMS = $(PROGRAMS) $(BIN_SYNERGYC_EXE)
-
-# Need shell functions.
-guilibs = $(guilibs) shell32.lib
-
-# Dependency rules
-$(BIN_SYNERGYC_OBJ): $(AUTODEP)
-!if EXIST($(BIN_SYNERGYC_DST)\deps.mak)
-!include $(BIN_SYNERGYC_DST)\deps.mak
-!endif
-
-# Build rules. Use batch-mode rules if possible.
-!if DEFINED(_NMAKE_VER)
-{$(BIN_SYNERGYC_SRC)\}.cpp{$(BIN_SYNERGYC_DST)\}.obj::
-!else
-{$(BIN_SYNERGYC_SRC)\}.cpp{$(BIN_SYNERGYC_DST)\}.obj:
-!endif
- @$(ECHO) Compile in $(BIN_SYNERGYC_SRC)
- -@$(MKDIR) $(BIN_SYNERGYC_DST) 2>NUL:
- $(cpp) $(cppdebug) $(cppflags) $(cppvarsmt) /showIncludes \
- $(BIN_SYNERGYC_INC) \
- /Fo$(BIN_SYNERGYC_DST)\ \
- /Fd$(BIN_SYNERGYC_DST)\src.pdb \
- $< | $(AUTODEP) $(BIN_SYNERGYC_SRC) $(BIN_SYNERGYC_DST)
-$(BIN_SYNERGYC_RES): $(BIN_SYNERGYC_RC)
- @$(ECHO) Compile $(**F)
- -@$(MKDIR) $(BIN_SYNERGYC_DST) 2>NUL:
- $(rc) $(rcflags) $(rcvars) \
- /fo$@ \
- $**
-$(BIN_SYNERGYC_EXE): $(BIN_SYNERGYC_OBJ) $(BIN_SYNERGYC_RES) $(BIN_SYNERGYC_LIB)
- @$(ECHO) Link $(@F)
- $(link) $(ldebug) $(guilflags) $(guilibsmt) \
- /out:$@ \
- $**
- $(AUTODEP) $(BIN_SYNERGYC_SRC) $(BIN_SYNERGYC_DST) \
- $(BIN_SYNERGYC_OBJ:.obj=.d)
diff --git a/cmd/synergyc/synergyc.cpp b/cmd/synergyc/synergyc.cpp
index 45140478..e725be60 100644
--- a/cmd/synergyc/synergyc.cpp
+++ b/cmd/synergyc/synergyc.cpp
@@ -74,9 +74,11 @@ public:
m_backend(false),
m_restartable(true),
m_daemon(true),
+ m_yscroll(0),
m_logFilter(NULL),
m_display(NULL),
- m_serverAddress(NULL)
+ m_serverAddress(NULL),
+ m_logFile(NULL)
{ s_instance = this; }
~CArgs() { s_instance = NULL; }
@@ -86,10 +88,13 @@ public:
bool m_backend;
bool m_restartable;
bool m_daemon;
+ int m_yscroll;
const char* m_logFilter;
const char* m_display;
CString m_name;
CNetworkAddress* m_serverAddress;
+ const char* m_logFile;
+
};
CArgs* CArgs::s_instance = NULL;
@@ -106,7 +111,7 @@ createScreen()
#if WINAPI_MSWINDOWS
return new CScreen(new CMSWindowsScreen(false));
#elif WINAPI_XWINDOWS
- return new CScreen(new CXWindowsScreen(ARG->m_display, false));
+ return new CScreen(new CXWindowsScreen(ARG->m_display, false, ARG->m_yscroll));
#elif WINAPI_CARBON
return new CScreen(new COSXScreen(false));
#endif
@@ -134,9 +139,11 @@ createTaskBarReceiver(const CBufferedLogOutputter* logBuffer)
static CClient* s_client = NULL;
static CScreen* s_clientScreen = NULL;
static CClientTaskBarReceiver* s_taskBarReceiver = NULL;
-static double s_retryTime = 0.0;
+//static double s_retryTime = 0.0;
static bool s_suspened = false;
+#define RETRY_TIME 1.0
+
static
void
updateStatus()
@@ -155,13 +162,18 @@ static
void
resetRestartTimeout()
{
- s_retryTime = 0.0;
+ // retry time can nolonger be changed
+ //s_retryTime = 0.0;
}
static
double
nextRestartTimeout()
{
+ // retry at a constant rate (Issue 52)
+ return RETRY_TIME;
+
+ /*
// choose next restart timeout. we start with rapid retries
// then slow down.
if (s_retryTime < 1.0) {
@@ -170,19 +182,11 @@ nextRestartTimeout()
else if (s_retryTime < 3.0) {
s_retryTime = 3.0;
}
- else if (s_retryTime < 5.0) {
+ else {
s_retryTime = 5.0;
}
- else if (s_retryTime < 15.0) {
- s_retryTime = 15.0;
- }
- else if (s_retryTime < 30.0) {
- s_retryTime = 30.0;
- }
- else {
- s_retryTime = 60.0;
- }
return s_retryTime;
+ */
}
static
@@ -374,6 +378,17 @@ static
int
mainLoop()
{
+ // logging to files
+ CFileLogOutputter* fileLog = NULL;
+
+ if (ARG->m_logFile != NULL) {
+ fileLog = new CFileLogOutputter(ARG->m_logFile);
+
+ CLOG->insert(fileLog);
+
+ LOG((CLOG_DEBUG1 "Logging to file (%s) enabled", ARG->m_logFile));
+ }
+
// create socket multiplexer. this must happen after daemonization
// on unix because threads evaporate across a fork().
CSocketMultiplexer multiplexer;
@@ -407,6 +422,11 @@ mainLoop()
updateStatus();
LOG((CLOG_NOTE "stopped client"));
+ if (fileLog) {
+ CLOG->remove(fileLog);
+ delete fileLog;
+ }
+
return kExitSuccess;
}
@@ -517,6 +537,7 @@ help()
" [--debug ]"
USAGE_DISPLAY_ARG
" [--name ]"
+" [--yscroll ]"
" [--restart|--no-restart]"
" "
"\n\n"
@@ -530,9 +551,12 @@ USAGE_DISPLAY_INFO
"* --daemon run the client as a daemon.\n"
" -n, --name use screen-name instead the hostname to identify\n"
" ourself to the server.\n"
+" --yscroll defines the vertical scrolling delta, which is\n"
+" 120 by default.\n"
" -1, --no-restart do not try to restart the client if it fails for\n"
" some reason.\n"
"* --restart restart the client automatically if it fails.\n"
+" -l --log write log messages to file.\n"
" -h, --help display this help and exit.\n"
" --version display version information and exit.\n"
"\n"
@@ -618,6 +642,15 @@ parse(int argc, const char* const* argv)
}
#endif
+ else if (isArg(i, argc, argv, NULL, "--yscroll", 1)) {
+ // define scroll
+ ARG->m_yscroll = atoi(argv[++i]);
+ }
+
+ else if (isArg(i, argc, argv, "-l", "--log", 1)) {
+ ARG->m_logFile = argv[++i];
+ }
+
else if (isArg(i, argc, argv, "-1", "--no-restart")) {
// don't try to restart
ARG->m_restartable = false;
@@ -728,7 +761,6 @@ parse(int argc, const char* const* argv)
//
#if SYSAPI_WIN32
-
static bool s_hasImportantLogMessages = false;
//
diff --git a/cmd/synergyc/synergyc.ico b/cmd/synergyc/synergyc.ico
index 89f965f4..fc2e4146 100644
Binary files a/cmd/synergyc/synergyc.ico and b/cmd/synergyc/synergyc.ico differ
diff --git a/cmd/synergys/CMSWindowsServerTaskBarReceiver.cpp b/cmd/synergys/CMSWindowsServerTaskBarReceiver.cpp
index e332ccea..50bcc638 100644
--- a/cmd/synergys/CMSWindowsServerTaskBarReceiver.cpp
+++ b/cmd/synergys/CMSWindowsServerTaskBarReceiver.cpp
@@ -24,6 +24,7 @@
extern CEvent::Type getReloadConfigEvent();
extern CEvent::Type getForceReconnectEvent();
+extern CEvent::Type getResetServerEvent();
//
// CMSWindowsServerTaskBarReceiver
@@ -192,6 +193,11 @@ CMSWindowsServerTaskBarReceiver::runMenu(int x, int y)
IEventQueue::getSystemTarget()));
break;
+ case ID_SYNERGY_RESETSERVER:
+ EVENTQUEUE->addEvent(CEvent(getResetServerEvent(),
+ IEventQueue::getSystemTarget()));
+ break;
+
case IDC_TASKBAR_LOG_LEVEL_ERROR:
CLOG->setFilter(CLog::kERROR);
break;
@@ -357,7 +363,7 @@ CMSWindowsServerTaskBarReceiver::staticDlgProc(HWND hwnd,
}
else {
// get the extra window data and forward the call
- LONG data = GetWindowLongPtr(hwnd, GWLP_USERDATA);
+ LONG data = (LONG)GetWindowLongPtr(hwnd, GWLP_USERDATA);
if (data != 0) {
self = reinterpret_cast(
reinterpret_cast(data));
diff --git a/cmd/synergys/Makefile.am b/cmd/synergys/Makefile.am
deleted file mode 100644
index 4ad48ce5..00000000
--- a/cmd/synergys/Makefile.am
+++ /dev/null
@@ -1,98 +0,0 @@
-# synergy -- mouse and keyboard sharing utility
-# Copyright (C) 2002 Chris Schoeneman
-#
-# This package is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# found in the file COPYING that should have accompanied this file.
-#
-# This package 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.
-
-## Process this file with automake to produce Makefile.in
-NULL =
-
-COMMON_SOURCE_FILES = \
- CServerTaskBarReceiver.cpp \
- CServerTaskBarReceiver.h \
- synergys.cpp \
- $(NULL)
-XWINDOWS_SOURCE_FILES = \
- CXWindowsServerTaskBarReceiver.cpp \
- CXWindowsServerTaskBarReceiver.h \
- $(NULL)
-MSWINDOWS_SOURCE_FILES = \
- CMSWindowsServerTaskBarReceiver.cpp \
- CMSWindowsServerTaskBarReceiver.h \
- resource.h \
- synergys.rc \
- $(NULL)
-CARBON_SOURCE_FILES = \
- COSXServerTaskBarReceiver.cpp \
- COSXServerTaskBarReceiver.h \
- $(NULL)
-
-EXTRA_DIST = \
- Makefile.win \
- synergys.ico \
- tb_error.ico \
- tb_idle.ico \
- tb_run.ico \
- tb_wait.ico \
- $(XWINDOWS_SOURCE_FILES) \
- $(MSWINDOWS_SOURCE_FILES) \
- $(CARBON_SOURCE_FILES) \
- $(NULL)
-
-MAINTAINERCLEANFILES = \
- Makefile.in \
- $(NULL)
-
-bin_PROGRAMS = synergys
-if XWINDOWS
-synergys_SOURCES = \
- $(COMMON_SOURCE_FILES) \
- $(XWINDOWS_SOURCE_FILES) \
- $(NULL)
-endif
-if MSWINDOWS
-synergys_SOURCES = \
- $(COMMON_SOURCE_FILES) \
- $(MSWINDOWS_SOURCE_FILES) \
- $(NULL)
-endif
-if CARBON
-synergys_SOURCES = \
- $(COMMON_SOURCE_FILES) \
- $(CARBON_SOURCE_FILES) \
- $(NULL)
-synergys_LDFLAGS = \
- -framework ScreenSaver \
- -framework IOKit \
- -framework ApplicationServices \
- -framework Foundation \
- $(NULL)
-endif
-synergys_LDADD = \
- $(top_builddir)/lib/server/libserver.a \
- $(top_builddir)/lib/platform/libplatform.a \
- $(top_builddir)/lib/synergy/libsynergy.a \
- $(top_builddir)/lib/net/libnet.a \
- $(top_builddir)/lib/io/libio.a \
- $(top_builddir)/lib/mt/libmt.a \
- $(top_builddir)/lib/base/libbase.a \
- $(top_builddir)/lib/common/libcommon.a \
- $(top_builddir)/lib/arch/libarch.a \
- $(NULL)
-INCLUDES = \
- -I$(top_srcdir)/lib/common \
- -I$(top_srcdir)/lib/arch \
- -I$(top_srcdir)/lib/base \
- -I$(top_srcdir)/lib/mt \
- -I$(top_srcdir)/lib/io \
- -I$(top_srcdir)/lib/net \
- -I$(top_srcdir)/lib/synergy \
- -I$(top_srcdir)/lib/platform \
- -I$(top_srcdir)/lib/server \
- $(NULL)
diff --git a/cmd/synergys/Makefile.win b/cmd/synergys/Makefile.win
deleted file mode 100644
index 09d39958..00000000
--- a/cmd/synergys/Makefile.win
+++ /dev/null
@@ -1,89 +0,0 @@
-# synergy -- mouse and keyboard sharing utility
-# Copyright (C) 2007 Chris Schoeneman
-#
-# This package is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# found in the file COPYING that should have accompanied this file.
-#
-# This package 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.
-
-BIN_SYNERGYS_SRC = cmd\synergys
-BIN_SYNERGYS_DST = $(BUILD_DST)\$(BIN_SYNERGYS_SRC)
-BIN_SYNERGYS_EXE = "$(BUILD_DST)\synergys.exe"
-BIN_SYNERGYS_CPP = \
- "CServerTaskBarReceiver.cpp" \
- "CMSWindowsServerTaskBarReceiver.cpp" \
- "synergys.cpp" \
- $(NULL)
-BIN_SYNERGYS_OBJ = \
- "$(BIN_SYNERGYS_DST)\CServerTaskBarReceiver.obj" \
- "$(BIN_SYNERGYS_DST)\CMSWindowsServerTaskBarReceiver.obj" \
- "$(BIN_SYNERGYS_DST)\synergys.obj" \
- $(NULL)
-BIN_SYNERGYS_RC = "$(BIN_SYNERGYS_SRC)\synergys.rc"
-BIN_SYNERGYS_RES = "$(BIN_SYNERGYS_DST)\synergys.res"
-BIN_SYNERGYS_INC = \
- /I"lib\common" \
- /I"lib\arch" \
- /I"lib\base" \
- /I"lib\mt" \
- /I"lib\io" \
- /I"lib\net" \
- /I"lib\synergy" \
- /I"lib\platform" \
- /I"lib\server" \
- $(NULL)
-BIN_SYNERGYS_LIB = \
- $(LIB_SERVER_LIB) \
- $(LIB_PLATFORM_LIB) \
- $(LIB_SYNERGY_LIB) \
- $(LIB_NET_LIB) \
- $(LIB_IO_LIB) \
- $(LIB_MT_LIB) \
- $(LIB_BASE_LIB) \
- $(LIB_ARCH_LIB) \
- $(LIB_COMMON_LIB) \
- $(NULL)
-
-CPP_FILES = $(CPP_FILES) $(BIN_SYNERGYS_CPP)
-OBJ_FILES = $(OBJ_FILES) $(BIN_SYNERGYS_OBJ)
-PROGRAMS = $(PROGRAMS) $(BIN_SYNERGYS_EXE)
-
-# Need shell functions.
-guilibs = $(guilibs) shell32.lib
-
-# Dependency rules
-$(BIN_SYNERGYS_OBJ): $(AUTODEP)
-!if EXIST($(BIN_SYNERGYS_DST)\deps.mak)
-!include $(BIN_SYNERGYS_DST)\deps.mak
-!endif
-
-# Build rules. Use batch-mode rules if possible.
-!if DEFINED(_NMAKE_VER)
-{$(BIN_SYNERGYS_SRC)\}.cpp{$(BIN_SYNERGYS_DST)\}.obj::
-!else
-{$(BIN_SYNERGYS_SRC)\}.cpp{$(BIN_SYNERGYS_DST)\}.obj:
-!endif
- @$(ECHO) Compile in $(BIN_SYNERGYS_SRC)
- -@$(MKDIR) $(BIN_SYNERGYS_DST) 2>NUL:
- $(cpp) $(cppdebug) $(cppflags) $(cppvarsmt) /showIncludes \
- $(BIN_SYNERGYS_INC) \
- /Fo$(BIN_SYNERGYS_DST)\ \
- /Fd$(BIN_SYNERGYS_DST)\src.pdb \
- $< | $(AUTODEP) $(BIN_SYNERGYS_SRC) $(BIN_SYNERGYS_DST)
-$(BIN_SYNERGYS_RES): $(BIN_SYNERGYS_RC)
- @$(ECHO) Compile $(**F)
- -@$(MKDIR) $(BIN_SYNERGYS_DST) 2>NUL:
- $(rc) $(rcflags) $(rcvars) \
- /fo$@ \
- $**
-$(BIN_SYNERGYS_EXE): $(BIN_SYNERGYS_OBJ) $(BIN_SYNERGYS_RES) $(BIN_SYNERGYS_LIB)
- @$(ECHO) Link $(@F)
- $(link) $(ldebug) $(guilflags) $(guilibsmt) \
- /out:$@ \
- $**
- $(AUTODEP) $(BIN_SYNERGYS_SRC) $(BIN_SYNERGYS_DST) \
- $(BIN_SYNERGYS_OBJ:.obj=.d)
diff --git a/cmd/synergys/resource.h b/cmd/synergys/resource.h
index 0ad5868a..5720df80 100644
--- a/cmd/synergys/resource.h
+++ b/cmd/synergys/resource.h
@@ -1,40 +1,42 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Developer Studio generated include file.
-// Used by synergys.rc
-//
-#define IDS_FAILED 1
-#define IDS_INIT_FAILED 2
-#define IDS_UNCAUGHT_EXCEPTION 3
-#define IDI_SYNERGY 101
-#define IDI_TASKBAR_NOT_RUNNING 102
-#define IDI_TASKBAR_NOT_WORKING 103
-#define IDI_TASKBAR_NOT_CONNECTED 104
-#define IDI_TASKBAR_CONNECTED 105
-#define IDR_TASKBAR 107
-#define IDD_TASKBAR_STATUS 108
-#define IDC_TASKBAR_STATUS_STATUS 1000
-#define IDC_TASKBAR_STATUS_CLIENTS 1001
-#define IDC_TASKBAR_QUIT 40003
-#define IDC_TASKBAR_STATUS 40004
-#define IDC_TASKBAR_LOG 40005
-#define IDC_RELOAD_CONFIG 40006
-#define IDC_FORCE_RECONNECT 40007
-#define IDC_TASKBAR_SHOW_LOG 40008
-#define IDC_TASKBAR_LOG_LEVEL_ERROR 40009
-#define IDC_TASKBAR_LOG_LEVEL_WARNING 40010
-#define IDC_TASKBAR_LOG_LEVEL_NOTE 40011
-#define IDC_TASKBAR_LOG_LEVEL_INFO 40012
-#define IDC_TASKBAR_LOG_LEVEL_DEBUG 40013
-#define IDC_TASKBAR_LOG_LEVEL_DEBUG1 40014
-#define IDC_TASKBAR_LOG_LEVEL_DEBUG2 40015
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 109
-#define _APS_NEXT_COMMAND_VALUE 40016
-#define _APS_NEXT_CONTROL_VALUE 1003
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by synergys.rc
+//
+#define IDS_FAILED 1
+#define IDS_INIT_FAILED 2
+#define IDS_UNCAUGHT_EXCEPTION 3
+#define IDI_SYNERGY 101
+#define IDI_TASKBAR_NOT_RUNNING 102
+#define IDI_TASKBAR_NOT_WORKING 103
+#define IDI_TASKBAR_NOT_CONNECTED 104
+#define IDI_TASKBAR_CONNECTED 105
+#define IDR_TASKBAR 107
+#define IDD_TASKBAR_STATUS 108
+#define IDC_TASKBAR_STATUS_STATUS 1000
+#define IDC_TASKBAR_STATUS_CLIENTS 1001
+#define IDC_TASKBAR_QUIT 40003
+#define IDC_TASKBAR_STATUS 40004
+#define IDC_TASKBAR_LOG 40005
+#define IDC_RELOAD_CONFIG 40006
+#define IDC_FORCE_RECONNECT 40007
+#define IDC_TASKBAR_SHOW_LOG 40008
+#define IDC_TASKBAR_LOG_LEVEL_ERROR 40009
+#define IDC_TASKBAR_LOG_LEVEL_WARNING 40010
+#define IDC_TASKBAR_LOG_LEVEL_NOTE 40011
+#define IDC_TASKBAR_LOG_LEVEL_INFO 40012
+#define IDC_TASKBAR_LOG_LEVEL_DEBUG 40013
+#define IDC_TASKBAR_LOG_LEVEL_DEBUG1 40014
+#define IDC_TASKBAR_LOG_LEVEL_DEBUG2 40015
+#define ID_SYNERGY_RELOADSYSTEM 40016
+#define ID_SYNERGY_RESETSERVER 40017
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 109
+#define _APS_NEXT_COMMAND_VALUE 40018
+#define _APS_NEXT_CONTROL_VALUE 1003
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/cmd/synergys/synergys.cpp b/cmd/synergys/synergys.cpp
index 46ebb497..b3693ab4 100644
--- a/cmd/synergys/synergys.cpp
+++ b/cmd/synergys/synergys.cpp
@@ -1,1318 +1,1362 @@
-/*
- * synergy -- mouse and keyboard sharing utility
- * Copyright (C) 2002 Chris Schoeneman
- *
- * This package is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * found in the file COPYING that should have accompanied this file.
- *
- * This package 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.
- */
-
-#include "CClientListener.h"
-#include "CClientProxy.h"
-#include "CConfig.h"
-#include "CPrimaryClient.h"
-#include "CServer.h"
-#include "CScreen.h"
-#include "ProtocolTypes.h"
-#include "Version.h"
-#include "XScreen.h"
-#include "CSocketMultiplexer.h"
-#include "CTCPSocketFactory.h"
-#include "XSocket.h"
-#include "CThread.h"
-#include "CEventQueue.h"
-#include "CFunctionEventJob.h"
-#include "CLog.h"
-#include "CString.h"
-#include "CStringUtil.h"
-#include "LogOutputters.h"
-#include "CArch.h"
-#include "XArch.h"
-#include "stdfstream.h"
-#include
-
-#define DAEMON_RUNNING(running_)
-#if WINAPI_MSWINDOWS
-#include "CArchMiscWindows.h"
-#include "CMSWindowsScreen.h"
-#include "CMSWindowsUtil.h"
-#include "CMSWindowsServerTaskBarReceiver.h"
-#include "resource.h"
-#undef DAEMON_RUNNING
-#define DAEMON_RUNNING(running_) CArchMiscWindows::daemonRunning(running_)
-#elif WINAPI_XWINDOWS
-#include "CXWindowsScreen.h"
-#include "CXWindowsServerTaskBarReceiver.h"
-#elif WINAPI_CARBON
-#include "COSXScreen.h"
-#include "COSXServerTaskBarReceiver.h"
-#endif
-
-// platform dependent name of a daemon
-#if SYSAPI_WIN32
-#define DAEMON_NAME "Synergy Server"
-#elif SYSAPI_UNIX
-#define DAEMON_NAME "synergys"
-#endif
-
-// configuration file name
-#if SYSAPI_WIN32
-#define USR_CONFIG_NAME "synergy.sgc"
-#define SYS_CONFIG_NAME "synergy.sgc"
-#elif SYSAPI_UNIX
-#define USR_CONFIG_NAME ".synergy.conf"
-#define SYS_CONFIG_NAME "synergy.conf"
-#endif
-
-typedef int (*StartupFunc)(int, char**);
-static void parse(int argc, const char* const* argv);
-static bool loadConfig(const CString& pathname);
-static void loadConfig();
-
-//
-// program arguments
-//
-
-#define ARG CArgs::s_instance
-
-class CArgs {
-public:
- CArgs() :
- m_pname(NULL),
- m_backend(false),
- m_restartable(true),
- m_daemon(true),
- m_configFile(),
- m_logFilter(NULL),
- m_display(NULL),
- m_synergyAddress(NULL),
- m_config(NULL)
- { s_instance = this; }
- ~CArgs() { s_instance = NULL; }
-
-public:
- static CArgs* s_instance;
- const char* m_pname;
- bool m_backend;
- bool m_restartable;
- bool m_daemon;
- CString m_configFile;
- const char* m_logFilter;
- const char* m_display;
- CString m_name;
- CNetworkAddress* m_synergyAddress;
- CConfig* m_config;
-};
-
-CArgs* CArgs::s_instance = NULL;
-
-
-//
-// platform dependent factories
-//
-
-static
-CScreen*
-createScreen()
-{
-#if WINAPI_MSWINDOWS
- return new CScreen(new CMSWindowsScreen(true));
-#elif WINAPI_XWINDOWS
- return new CScreen(new CXWindowsScreen(ARG->m_display, true));
-#elif WINAPI_CARBON
- return new CScreen(new COSXScreen(true));
-#endif
-}
-
-static
-CServerTaskBarReceiver*
-createTaskBarReceiver(const CBufferedLogOutputter* logBuffer)
-{
-#if WINAPI_MSWINDOWS
- return new CMSWindowsServerTaskBarReceiver(
- CMSWindowsScreen::getInstance(), logBuffer);
-#elif WINAPI_XWINDOWS
- return new CXWindowsServerTaskBarReceiver(logBuffer);
-#elif WINAPI_CARBON
- return new COSXServerTaskBarReceiver(logBuffer);
-#endif
-}
-
-
-//
-// platform independent main
-//
-
-enum EServerState {
- kUninitialized,
- kInitializing,
- kInitializingToStart,
- kInitialized,
- kStarting,
- kStarted
-};
-
-static EServerState s_serverState = kUninitialized;
-static CServer* s_server = NULL;
-static CScreen* s_serverScreen = NULL;
-static CPrimaryClient* s_primaryClient = NULL;
-static CClientListener* s_listener = NULL;
-static CServerTaskBarReceiver* s_taskBarReceiver = NULL;
-static CEvent::Type s_reloadConfigEvent = CEvent::kUnknown;
-static CEvent::Type s_forceReconnectEvent = CEvent::kUnknown;
-static bool s_suspended = false;
-static CEventQueueTimer* s_timer = NULL;
-
-CEvent::Type
-getReloadConfigEvent()
-{
- return CEvent::registerTypeOnce(s_reloadConfigEvent, "reloadConfig");
-}
-
-CEvent::Type
-getForceReconnectEvent()
-{
- return CEvent::registerTypeOnce(s_forceReconnectEvent, "forceReconnect");
-}
-
-static
-void
-updateStatus()
-{
- s_taskBarReceiver->updateStatus(s_server, "");
-}
-
-static
-void
-updateStatus(const CString& msg)
-{
- s_taskBarReceiver->updateStatus(s_server, msg);
-}
-
-static
-void
-handleClientConnected(const CEvent&, void* vlistener)
-{
- CClientListener* listener = reinterpret_cast(vlistener);
- CClientProxy* client = listener->getNextClient();
- if (client != NULL) {
- s_server->adoptClient(client);
- updateStatus();
- }
-}
-
-static
-CClientListener*
-openClientListener(const CNetworkAddress& address)
-{
- CClientListener* listen =
- new CClientListener(address, new CTCPSocketFactory, NULL);
- EVENTQUEUE->adoptHandler(CClientListener::getConnectedEvent(), listen,
- new CFunctionEventJob(
- &handleClientConnected, listen));
- return listen;
-}
-
-static
-void
-closeClientListener(CClientListener* listen)
-{
- if (listen != NULL) {
- EVENTQUEUE->removeHandler(CClientListener::getConnectedEvent(), listen);
- delete listen;
- }
-}
-
-static
-void
-handleScreenError(const CEvent&, void*)
-{
- LOG((CLOG_CRIT "error on screen"));
- EVENTQUEUE->addEvent(CEvent(CEvent::kQuit));
-}
-
-
-static void handleSuspend(const CEvent& event, void*);
-static void handleResume(const CEvent& event, void*);
-
-static
-CScreen*
-openServerScreen()
-{
- CScreen* screen = createScreen();
- EVENTQUEUE->adoptHandler(IScreen::getErrorEvent(),
- screen->getEventTarget(),
- new CFunctionEventJob(
- &handleScreenError));
- EVENTQUEUE->adoptHandler(IScreen::getSuspendEvent(),
- screen->getEventTarget(),
- new CFunctionEventJob(
- &handleSuspend));
- EVENTQUEUE->adoptHandler(IScreen::getResumeEvent(),
- screen->getEventTarget(),
- new CFunctionEventJob(
- &handleResume));
- return screen;
-}
-
-static
-void
-closeServerScreen(CScreen* screen)
-{
- if (screen != NULL) {
- EVENTQUEUE->removeHandler(IScreen::getErrorEvent(),
- screen->getEventTarget());
- EVENTQUEUE->removeHandler(IScreen::getSuspendEvent(),
- screen->getEventTarget());
- EVENTQUEUE->removeHandler(IScreen::getResumeEvent(),
- screen->getEventTarget());
- delete screen;
- }
-}
-
-static
-CPrimaryClient*
-openPrimaryClient(const CString& name, CScreen* screen)
-{
- LOG((CLOG_DEBUG1 "creating primary screen"));
- return new CPrimaryClient(name, screen);
-}
-
-static
-void
-closePrimaryClient(CPrimaryClient* primaryClient)
-{
- delete primaryClient;
-}
-
-static
-void
-handleNoClients(const CEvent&, void*)
-{
- updateStatus();
-}
-
-static
-void
-handleClientsDisconnected(const CEvent&, void*)
-{
- EVENTQUEUE->addEvent(CEvent(CEvent::kQuit));
-}
-
-static
-CServer*
-openServer(const CConfig& config, CPrimaryClient* primaryClient)
-{
- CServer* server = new CServer(config, primaryClient);
- EVENTQUEUE->adoptHandler(CServer::getDisconnectedEvent(), server,
- new CFunctionEventJob(handleNoClients));
- return server;
-}
-
-static
-void
-closeServer(CServer* server)
-{
- if (server == NULL) {
- return;
- }
-
- // tell all clients to disconnect
- server->disconnect();
-
- // wait for clients to disconnect for up to timeout seconds
- double timeout = 3.0;
- CEventQueueTimer* timer = EVENTQUEUE->newOneShotTimer(timeout, NULL);
- EVENTQUEUE->adoptHandler(CEvent::kTimer, timer,
- new CFunctionEventJob(handleClientsDisconnected));
- EVENTQUEUE->adoptHandler(CServer::getDisconnectedEvent(), server,
- new CFunctionEventJob(handleClientsDisconnected));
- CEvent event;
- EVENTQUEUE->getEvent(event);
- while (event.getType() != CEvent::kQuit) {
- EVENTQUEUE->dispatchEvent(event);
- CEvent::deleteData(event);
- EVENTQUEUE->getEvent(event);
- }
- EVENTQUEUE->removeHandler(CEvent::kTimer, timer);
- EVENTQUEUE->deleteTimer(timer);
- EVENTQUEUE->removeHandler(CServer::getDisconnectedEvent(), server);
-
- // done with server
- delete server;
-}
-
-static bool initServer();
-static bool startServer();
-
-static
-void
-stopRetryTimer()
-{
- if (s_timer != NULL) {
- EVENTQUEUE->deleteTimer(s_timer);
- EVENTQUEUE->removeHandler(CEvent::kTimer, NULL);
- s_timer = NULL;
- }
-}
-
-static
-void
-retryHandler(const CEvent&, void*)
-{
- // discard old timer
- assert(s_timer != NULL);
- stopRetryTimer();
-
- // try initializing/starting the server again
- switch (s_serverState) {
- case kUninitialized:
- case kInitialized:
- case kStarted:
- assert(0 && "bad internal server state");
- break;
-
- case kInitializing:
- LOG((CLOG_DEBUG1 "retry server initialization"));
- s_serverState = kUninitialized;
- if (!initServer()) {
- EVENTQUEUE->addEvent(CEvent(CEvent::kQuit));
- }
- break;
-
- case kInitializingToStart:
- LOG((CLOG_DEBUG1 "retry server initialization"));
- s_serverState = kUninitialized;
- if (!initServer()) {
- EVENTQUEUE->addEvent(CEvent(CEvent::kQuit));
- }
- else if (s_serverState == kInitialized) {
- LOG((CLOG_DEBUG1 "starting server"));
- if (!startServer()) {
- EVENTQUEUE->addEvent(CEvent(CEvent::kQuit));
- }
- }
- break;
-
- case kStarting:
- LOG((CLOG_DEBUG1 "retry starting server"));
- s_serverState = kInitialized;
- if (!startServer()) {
- EVENTQUEUE->addEvent(CEvent(CEvent::kQuit));
- }
- break;
- }
-}
-
-static
-bool
-initServer()
-{
- // skip if already initialized or initializing
- if (s_serverState != kUninitialized) {
- return true;
- }
-
- double retryTime;
- CScreen* serverScreen = NULL;
- CPrimaryClient* primaryClient = NULL;
- try {
- CString name = ARG->m_config->getCanonicalName(ARG->m_name);
- serverScreen = openServerScreen();
- primaryClient = openPrimaryClient(name, serverScreen);
- s_serverScreen = serverScreen;
- s_primaryClient = primaryClient;
- s_serverState = kInitialized;
- updateStatus();
- return true;
- }
- catch (XScreenUnavailable& e) {
- LOG((CLOG_WARN "cannot open primary screen: %s", e.what()));
- closePrimaryClient(primaryClient);
- closeServerScreen(serverScreen);
- updateStatus(CString("cannot open primary screen: ") + e.what());
- retryTime = e.getRetryTime();
- }
- catch (XScreenOpenFailure& e) {
- LOG((CLOG_CRIT "cannot open primary screen: %s", e.what()));
- closePrimaryClient(primaryClient);
- closeServerScreen(serverScreen);
- return false;
- }
- catch (XBase& e) {
- LOG((CLOG_CRIT "failed to start server: %s", e.what()));
- closePrimaryClient(primaryClient);
- closeServerScreen(serverScreen);
- return false;
- }
-
- if (ARG->m_restartable) {
- // install a timer and handler to retry later
- assert(s_timer == NULL);
- LOG((CLOG_DEBUG "retry in %.0f seconds", retryTime));
- s_timer = EVENTQUEUE->newOneShotTimer(retryTime, NULL);
- EVENTQUEUE->adoptHandler(CEvent::kTimer, s_timer,
- new CFunctionEventJob(&retryHandler, NULL));
- s_serverState = kInitializing;
- return true;
- }
- else {
- // don't try again
- return false;
- }
-}
-
-static
-bool
-startServer()
-{
- // skip if already started or starting
- if (s_serverState == kStarting || s_serverState == kStarted) {
- return true;
- }
-
- // initialize if necessary
- if (s_serverState != kInitialized) {
- if (!initServer()) {
- // hard initialization failure
- return false;
- }
- if (s_serverState == kInitializing) {
- // not ready to start
- s_serverState = kInitializingToStart;
- return true;
- }
- assert(s_serverState == kInitialized);
- }
-
- double retryTime;
- CClientListener* listener = NULL;
- try {
- listener = openClientListener(ARG->m_config->getSynergyAddress());
- s_server = openServer(*ARG->m_config, s_primaryClient);
- s_listener = listener;
- updateStatus();
- LOG((CLOG_NOTE "started server"));
- s_serverState = kStarted;
- return true;
- }
- catch (XSocketAddressInUse& e) {
- LOG((CLOG_WARN "cannot listen for clients: %s", e.what()));
- closeClientListener(listener);
- updateStatus(CString("cannot listen for clients: ") + e.what());
- retryTime = 10.0;
- }
- catch (XBase& e) {
- LOG((CLOG_CRIT "failed to start server: %s", e.what()));
- closeClientListener(listener);
- return false;
- }
-
- if (ARG->m_restartable) {
- // install a timer and handler to retry later
- assert(s_timer == NULL);
- LOG((CLOG_DEBUG "retry in %.0f seconds", retryTime));
- s_timer = EVENTQUEUE->newOneShotTimer(retryTime, NULL);
- EVENTQUEUE->adoptHandler(CEvent::kTimer, s_timer,
- new CFunctionEventJob(&retryHandler, NULL));
- s_serverState = kStarting;
- return true;
- }
- else {
- // don't try again
- return false;
- }
-}
-
-static
-void
-stopServer()
-{
- if (s_serverState == kStarted) {
- closeClientListener(s_listener);
- closeServer(s_server);
- s_server = NULL;
- s_listener = NULL;
- s_serverState = kInitialized;
- }
- else if (s_serverState == kStarting) {
- stopRetryTimer();
- s_serverState = kInitialized;
- }
- assert(s_server == NULL);
- assert(s_listener == NULL);
-}
-
-static
-void
-cleanupServer()
-{
- stopServer();
- if (s_serverState == kInitialized) {
- closePrimaryClient(s_primaryClient);
- closeServerScreen(s_serverScreen);
- s_primaryClient = NULL;
- s_serverScreen = NULL;
- s_serverState = kUninitialized;
- }
- else if (s_serverState == kInitializing ||
- s_serverState == kInitializingToStart) {
- stopRetryTimer();
- s_serverState = kUninitialized;
- }
- assert(s_primaryClient == NULL);
- assert(s_serverScreen == NULL);
- assert(s_serverState == kUninitialized);
-}
-
-static
-void
-handleSuspend(const CEvent&, void*)
-{
- if (!s_suspended) {
- LOG((CLOG_INFO "suspend"));
- stopServer();
- s_suspended = true;
- }
-}
-
-static
-void
-handleResume(const CEvent&, void*)
-{
- if (s_suspended) {
- LOG((CLOG_INFO "resume"));
- startServer();
- s_suspended = false;
- }
-}
-
-static
-void
-reloadSignalHandler(CArch::ESignal, void*)
-{
- EVENTQUEUE->addEvent(CEvent(getReloadConfigEvent(),
- IEventQueue::getSystemTarget()));
-}
-
-static
-void
-reloadConfig(const CEvent&, void*)
-{
- LOG((CLOG_DEBUG "reload configuration"));
- if (loadConfig(ARG->m_configFile)) {
- if (s_server != NULL) {
- s_server->setConfig(*ARG->m_config);
- }
- LOG((CLOG_NOTE "reloaded configuration"));
- }
-}
-
-static
-void
-forceReconnect(const CEvent&, void*)
-{
- if (s_server != NULL) {
- s_server->disconnect();
- }
-}
-
-static
-int
-mainLoop()
-{
- // create socket multiplexer. this must happen after daemonization
- // on unix because threads evaporate across a fork().
- CSocketMultiplexer multiplexer;
-
- // create the event queue
- CEventQueue eventQueue;
-
- // if configuration has no screens then add this system
- // as the default
- if (ARG->m_config->begin() == ARG->m_config->end()) {
- ARG->m_config->addScreen(ARG->m_name);
- }
-
- // set the contact address, if provided, in the config.
- // otherwise, if the config doesn't have an address, use
- // the default.
- if (ARG->m_synergyAddress->isValid()) {
- ARG->m_config->setSynergyAddress(*ARG->m_synergyAddress);
- }
- else if (!ARG->m_config->getSynergyAddress().isValid()) {
- ARG->m_config->setSynergyAddress(CNetworkAddress(kDefaultPort));
- }
-
- // canonicalize the primary screen name
- CString primaryName = ARG->m_config->getCanonicalName(ARG->m_name);
- if (primaryName.empty()) {
- LOG((CLOG_CRIT "unknown screen name `%s'", ARG->m_name.c_str()));
- return kExitFailed;
- }
-
- // start the server. if this return false then we've failed and
- // we shouldn't retry.
- LOG((CLOG_DEBUG1 "starting server"));
- if (!startServer()) {
- return kExitFailed;
- }
-
- // handle hangup signal by reloading the server's configuration
- ARCH->setSignalHandler(CArch::kHANGUP, &reloadSignalHandler, NULL);
- EVENTQUEUE->adoptHandler(getReloadConfigEvent(),
- IEventQueue::getSystemTarget(),
- new CFunctionEventJob(&reloadConfig));
-
- // handle force reconnect event by disconnecting clients. they'll
- // reconnect automatically.
- EVENTQUEUE->adoptHandler(getForceReconnectEvent(),
- IEventQueue::getSystemTarget(),
- new CFunctionEventJob(&forceReconnect));
-
- // run event loop. if startServer() failed we're supposed to retry
- // later. the timer installed by startServer() will take care of
- // that.
- CEvent event;
- DAEMON_RUNNING(true);
- EVENTQUEUE->getEvent(event);
- while (event.getType() != CEvent::kQuit) {
- EVENTQUEUE->dispatchEvent(event);
- CEvent::deleteData(event);
- EVENTQUEUE->getEvent(event);
- }
- DAEMON_RUNNING(false);
-
- // close down
- LOG((CLOG_DEBUG1 "stopping server"));
- EVENTQUEUE->removeHandler(getForceReconnectEvent(),
- IEventQueue::getSystemTarget());
- EVENTQUEUE->removeHandler(getReloadConfigEvent(),
- IEventQueue::getSystemTarget());
- cleanupServer();
- updateStatus();
- LOG((CLOG_NOTE "stopped server"));
-
- return kExitSuccess;
-}
-
-static
-int
-daemonMainLoop(int, const char**)
-{
-#if SYSAPI_WIN32
- CSystemLogger sysLogger(DAEMON_NAME, false);
-#else
- CSystemLogger sysLogger(DAEMON_NAME, true);
-#endif
- return mainLoop();
-}
-
-static
-int
-standardStartup(int argc, char** argv)
-{
- if (!ARG->m_daemon) {
- ARCH->showConsole(false);
- }
-
- // parse command line
- parse(argc, argv);
-
- // load configuration
- loadConfig();
-
- // daemonize if requested
- if (ARG->m_daemon) {
- return ARCH->daemonize(DAEMON_NAME, &daemonMainLoop);
- }
- else {
- return mainLoop();
- }
-}
-
-static
-int
-run(int argc, char** argv, ILogOutputter* outputter, StartupFunc startup)
-{
- // general initialization
- ARG->m_synergyAddress = new CNetworkAddress;
- ARG->m_config = new CConfig;
- ARG->m_pname = ARCH->getBasename(argv[0]);
-
- // install caller's output filter
- if (outputter != NULL) {
- CLOG->insert(outputter);
- }
-
- // save log messages
- CBufferedLogOutputter logBuffer(1000);
- CLOG->insert(&logBuffer, true);
-
- // make the task bar receiver. the user can control this app
- // through the task bar.
- s_taskBarReceiver = createTaskBarReceiver(&logBuffer);
-
- // run
- int result = startup(argc, argv);
-
- // done with task bar receiver
- delete s_taskBarReceiver;
-
- // done with log buffer
- CLOG->remove(&logBuffer);
-
- delete ARG->m_config;
- delete ARG->m_synergyAddress;
- return result;
-}
-
-
-//
-// command line parsing
-//
-
-#define BYE "\nTry `%s --help' for more information."
-
-static void (*bye)(int) = &exit;
-
-static
-void
-version()
-{
- LOG((CLOG_PRINT
-"%s %s, protocol version %d.%d\n"
-"%s",
- ARG->m_pname,
- kVersion,
- kProtocolMajorVersion,
- kProtocolMinorVersion,
- kCopyright));
-}
-
-static
-void
-help()
-{
-#if WINAPI_XWINDOWS
-# define USAGE_DISPLAY_ARG \
-" [--display ]"
-# define USAGE_DISPLAY_INFO \
-" --display connect to the X server at \n"
-#else
-# define USAGE_DISPLAY_ARG
-# define USAGE_DISPLAY_INFO
-#endif
-
-#if SYSAPI_WIN32
-
-# define PLATFORM_ARGS \
-" [--daemon|--no-daemon]"
-# define PLATFORM_DESC
-# define PLATFORM_EXTRA \
-"At least one command line argument is required. If you don't otherwise\n" \
-"need an argument use `--daemon'.\n" \
-"\n"
-
-#else
-
-# define PLATFORM_ARGS \
-" [--daemon|--no-daemon]"
-# define PLATFORM_DESC
-# define PLATFORM_EXTRA
-
-#endif
-
- LOG((CLOG_PRINT
-"Usage: %s"
-" [--address ]"
-" [--config ]"
-" [--debug ]"
-USAGE_DISPLAY_ARG
-" [--name ]"
-" [--restart|--no-restart]"
-PLATFORM_ARGS
-"\n\n"
-"Start the synergy mouse/keyboard sharing server.\n"
-"\n"
-" -a, --address listen for clients on the given address.\n"
-" -c, --config use the named configuration file instead.\n"
-" -d, --debug filter out log messages with priorty below level.\n"
-" level may be: FATAL, ERROR, WARNING, NOTE, INFO,\n"
-" DEBUG, DEBUG1, DEBUG2.\n"
-USAGE_DISPLAY_INFO
-" -f, --no-daemon run the server in the foreground.\n"
-"* --daemon run the server as a daemon.\n"
-" -n, --name use screen-name instead the hostname to identify\n"
-" this screen in the configuration.\n"
-" -1, --no-restart do not try to restart the server if it fails for\n"
-" some reason.\n"
-"* --restart restart the server automatically if it fails.\n"
-PLATFORM_DESC
-" -h, --help display this help and exit.\n"
-" --version display version information and exit.\n"
-"\n"
-"* marks defaults.\n"
-"\n"
-PLATFORM_EXTRA
-"The argument for --address is of the form: [][:]. The\n"
-"hostname must be the address or hostname of an interface on the system.\n"
-"The default is to listen on all interfaces. The port overrides the\n"
-"default port, %d.\n"
-"\n"
-"If no configuration file pathname is provided then the first of the\n"
-"following to load successfully sets the configuration:\n"
-" %s\n"
-" %s\n"
-"If no configuration file can be loaded then the configuration uses its\n"
-"defaults with just the server screen.\n"
-"\n"
-"Where log messages go depends on the platform and whether or not the\n"
-"server is running as a daemon.",
- ARG->m_pname,
- kDefaultPort,
- ARCH->concatPath(
- ARCH->getUserDirectory(),
- USR_CONFIG_NAME).c_str(),
- ARCH->concatPath(
- ARCH->getSystemDirectory(),
- SYS_CONFIG_NAME).c_str()));
-}
-
-static
-bool
-isArg(int argi, int argc, const char* const* argv,
- const char* name1, const char* name2,
- int minRequiredParameters = 0)
-{
- if ((name1 != NULL && strcmp(argv[argi], name1) == 0) ||
- (name2 != NULL && strcmp(argv[argi], name2) == 0)) {
- // match. check args left.
- if (argi + minRequiredParameters >= argc) {
- LOG((CLOG_PRINT "%s: missing arguments for `%s'" BYE,
- ARG->m_pname, argv[argi], ARG->m_pname));
- bye(kExitArgs);
- }
- return true;
- }
-
- // no match
- return false;
-}
-
-static
-void
-parse(int argc, const char* const* argv)
-{
- assert(ARG->m_pname != NULL);
- assert(argv != NULL);
- assert(argc >= 1);
-
- // set defaults
- ARG->m_name = ARCH->getHostName();
-
- // parse options
- int i = 1;
- for (; i < argc; ++i) {
- if (isArg(i, argc, argv, "-d", "--debug", 1)) {
- // change logging level
- ARG->m_logFilter = argv[++i];
- }
-
- else if (isArg(i, argc, argv, "-a", "--address", 1)) {
- // save listen address
- try {
- *ARG->m_synergyAddress = CNetworkAddress(argv[i + 1],
- kDefaultPort);
- ARG->m_synergyAddress->resolve();
- }
- catch (XSocketAddress& e) {
- LOG((CLOG_PRINT "%s: %s" BYE,
- ARG->m_pname, e.what(), ARG->m_pname));
- bye(kExitArgs);
- }
- ++i;
- }
-
- else if (isArg(i, argc, argv, "-n", "--name", 1)) {
- // save screen name
- ARG->m_name = argv[++i];
- }
-
- else if (isArg(i, argc, argv, "-c", "--config", 1)) {
- // save configuration file path
- ARG->m_configFile = argv[++i];
- }
-
-#if WINAPI_XWINDOWS
- else if (isArg(i, argc, argv, "-display", "--display", 1)) {
- // use alternative display
- ARG->m_display = argv[++i];
- }
-#endif
-
- else if (isArg(i, argc, argv, "-f", "--no-daemon")) {
- // not a daemon
- ARG->m_daemon = false;
- }
-
- else if (isArg(i, argc, argv, NULL, "--daemon")) {
- // daemonize
- ARG->m_daemon = true;
- }
-
- else if (isArg(i, argc, argv, "-1", "--no-restart")) {
- // don't try to restart
- ARG->m_restartable = false;
- }
-
- else if (isArg(i, argc, argv, NULL, "--restart")) {
- // try to restart
- ARG->m_restartable = true;
- }
-
- else if (isArg(i, argc, argv, "-z", NULL)) {
- ARG->m_backend = true;
- }
-
- else if (isArg(i, argc, argv, "-h", "--help")) {
- help();
- bye(kExitSuccess);
- }
-
- else if (isArg(i, argc, argv, NULL, "--version")) {
- version();
- bye(kExitSuccess);
- }
-
- else if (isArg(i, argc, argv, "--", NULL)) {
- // remaining arguments are not options
- ++i;
- break;
- }
-
- else if (argv[i][0] == '-') {
- LOG((CLOG_PRINT "%s: unrecognized option `%s'" BYE,
- ARG->m_pname, argv[i], ARG->m_pname));
- bye(kExitArgs);
- }
-
- else {
- // this and remaining arguments are not options
- break;
- }
- }
-
- // no non-option arguments are allowed
- if (i != argc) {
- LOG((CLOG_PRINT "%s: unrecognized option `%s'" BYE,
- ARG->m_pname, argv[i], ARG->m_pname));
- bye(kExitArgs);
- }
-
- // increase default filter level for daemon. the user must
- // explicitly request another level for a daemon.
- if (ARG->m_daemon && ARG->m_logFilter == NULL) {
-#if SYSAPI_WIN32
- if (CArchMiscWindows::isWindows95Family()) {
- // windows 95 has no place for logging so avoid showing
- // the log console window.
- ARG->m_logFilter = "FATAL";
- }
- else
-#endif
- {
- ARG->m_logFilter = "NOTE";
- }
- }
-
- // set log filter
- if (!CLOG->setFilter(ARG->m_logFilter)) {
- LOG((CLOG_PRINT "%s: unrecognized log level `%s'" BYE,
- ARG->m_pname, ARG->m_logFilter, ARG->m_pname));
- bye(kExitArgs);
- }
-
- // identify system
- LOG((CLOG_INFO "%s Server on %s %s", kAppVersion, ARCH->getOSName().c_str(), ARCH->getPlatformName().c_str()));
-
-#ifdef WIN32
-#ifdef _AMD64_
- LOG((CLOG_WARN "This is an experimental x64 build of %s. Use it at your own risk.", kApplication));
-#endif
-#endif
-}
-
-static
-bool
-loadConfig(const CString& pathname)
-{
- try {
- // load configuration
- LOG((CLOG_DEBUG "opening configuration \"%s\"", pathname.c_str()));
- std::ifstream configStream(pathname.c_str());
- if (!configStream.is_open()) {
- // report failure to open configuration as a debug message
- // since we try several paths and we expect some to be
- // missing.
- LOG((CLOG_DEBUG "cannot open configuration \"%s\"",
- pathname.c_str()));
- return false;
- }
- configStream >> *ARG->m_config;
- LOG((CLOG_DEBUG "configuration read successfully"));
- return true;
- }
- catch (XConfigRead& e) {
- // report error in configuration file
- LOG((CLOG_ERR "cannot read configuration \"%s\": %s",
- pathname.c_str(), e.what()));
- }
- return false;
-}
-
-static
-void
-loadConfig()
-{
- bool loaded = false;
-
- // load the config file, if specified
- if (!ARG->m_configFile.empty()) {
- loaded = loadConfig(ARG->m_configFile);
- }
-
- // load the default configuration if no explicit file given
- else {
- // get the user's home directory
- CString path = ARCH->getUserDirectory();
- if (!path.empty()) {
- // complete path
- path = ARCH->concatPath(path, USR_CONFIG_NAME);
-
- // now try loading the user's configuration
- if (loadConfig(path)) {
- loaded = true;
- ARG->m_configFile = path;
- }
- }
- if (!loaded) {
- // try the system-wide config file
- path = ARCH->getSystemDirectory();
- if (!path.empty()) {
- path = ARCH->concatPath(path, SYS_CONFIG_NAME);
- if (loadConfig(path)) {
- loaded = true;
- ARG->m_configFile = path;
- }
- }
- }
- }
-
- if (!loaded) {
- LOG((CLOG_PRINT "%s: no configuration available", ARG->m_pname));
- bye(kExitConfig);
- }
-}
-
-
-//
-// platform dependent entry points
-//
-
-#if SYSAPI_WIN32
-
-static bool s_hasImportantLogMessages = false;
-
-//
-// CMessageBoxOutputter
-//
-// This class writes severe log messages to a message box
-//
-
-class CMessageBoxOutputter : public ILogOutputter {
-public:
- CMessageBoxOutputter() { }
- virtual ~CMessageBoxOutputter() { }
-
- // ILogOutputter overrides
- virtual void open(const char*) { }
- virtual void close() { }
- virtual void show(bool) { }
- virtual bool write(ELevel level, const char* message);
- virtual const char* getNewline() const { return ""; }
-};
-
-bool
-CMessageBoxOutputter::write(ELevel level, const char* message)
-{
- // note any important messages the user may need to know about
- if (level <= CLog::kWARNING) {
- s_hasImportantLogMessages = true;
- }
-
- // FATAL and PRINT messages get a dialog box if not running as
- // backend. if we're running as a backend the user will have
- // a chance to see the messages when we exit.
- if (!ARG->m_backend && level <= CLog::kFATAL) {
- MessageBox(NULL, message, ARG->m_pname, MB_OK | MB_ICONWARNING);
- return false;
- }
- else {
- return true;
- }
-}
-
-static
-void
-byeThrow(int x)
-{
- CArchMiscWindows::daemonFailed(x);
-}
-
-static
-int
-daemonNTMainLoop(int argc, const char** argv)
-{
- parse(argc, argv);
- ARG->m_backend = false;
- loadConfig();
- return CArchMiscWindows::runDaemon(mainLoop);
-}
-
-static
-int
-daemonNTStartup(int, char**)
-{
- CSystemLogger sysLogger(DAEMON_NAME, false);
- bye = &byeThrow;
- return ARCH->daemonize(DAEMON_NAME, &daemonNTMainLoop);
-}
-
-static
-int
-foregroundStartup(int argc, char** argv)
-{
- ARCH->showConsole(false);
-
- // parse command line
- parse(argc, argv);
-
- // load configuration
- loadConfig();
-
- // never daemonize
- return mainLoop();
-}
-
-static
-void
-showError(HINSTANCE instance, const char* title, UINT id, const char* arg)
-{
- CString fmt = CMSWindowsUtil::getString(instance, id);
- CString msg = CStringUtil::format(fmt.c_str(), arg);
- MessageBox(NULL, msg.c_str(), title, MB_OK | MB_ICONWARNING);
-}
-
-int WINAPI
-WinMain(HINSTANCE instance, HINSTANCE, LPSTR, int)
-{
- try {
- CArchMiscWindows::setIcons((HICON)LoadImage(instance,
- MAKEINTRESOURCE(IDI_SYNERGY),
- IMAGE_ICON,
- 32, 32, LR_SHARED),
- (HICON)LoadImage(instance,
- MAKEINTRESOURCE(IDI_SYNERGY),
- IMAGE_ICON,
- 16, 16, LR_SHARED));
- CArch arch(instance);
- CMSWindowsScreen::init(instance);
- CLOG;
- CThread::getCurrentThread().setPriority(-14);
- CArgs args;
-
- // set title on log window
- ARCH->openConsole((CString(kAppVersion) + " " + "Server").c_str());
-
- // windows NT family starts services using no command line options.
- // since i'm not sure how to tell the difference between that and
- // a user providing no options we'll assume that if there are no
- // arguments and we're on NT then we're being invoked as a service.
- // users on NT can use `--daemon' or `--no-daemon' to force us out
- // of the service code path.
- StartupFunc startup = &standardStartup;
- if (!CArchMiscWindows::isWindows95Family()) {
- if (__argc <= 1) {
- startup = &daemonNTStartup;
- }
- else {
- startup = &foregroundStartup;
- }
- }
-
- // send PRINT and FATAL output to a message box
- int result = run(__argc, __argv, new CMessageBoxOutputter, startup);
-
- // let user examine any messages if we're running as a backend
- // by putting up a dialog box before exiting.
- if (args.m_backend && s_hasImportantLogMessages) {
- showError(instance, args.m_pname, IDS_FAILED, "");
- }
-
- delete CLOG;
- return result;
- }
- catch (XBase& e) {
- showError(instance, __argv[0], IDS_UNCAUGHT_EXCEPTION, e.what());
- //throw;
- }
- catch (XArch& e) {
- showError(instance, __argv[0], IDS_INIT_FAILED, e.what().c_str());
- }
- catch (...) {
- showError(instance, __argv[0], IDS_UNCAUGHT_EXCEPTION, "");
- //throw;
- }
- return kExitFailed;
-}
-
-#elif SYSAPI_UNIX
-
-int
-main(int argc, char** argv)
-{
- CArgs args;
- try {
- int result;
- CArch arch;
- CLOG;
- CArgs args;
- result = run(argc, argv, NULL, &standardStartup);
- delete CLOG;
- return result;
- }
- catch (XBase& e) {
- LOG((CLOG_CRIT "Uncaught exception: %s\n", e.what()));
- throw;
- }
- catch (XArch& e) {
- LOG((CLOG_CRIT "Initialization failed: %s" BYE, e.what().c_str()));
- return kExitFailed;
- }
- catch (...) {
- LOG((CLOG_CRIT "Uncaught exception: \n"));
- throw;
- }
-}
-
-#else
-
-#error no main() for platform
-
-#endif
+/*
+ * synergy -- mouse and keyboard sharing utility
+ * Copyright (C) 2002 Chris Schoeneman
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file COPYING that should have accompanied this file.
+ *
+ * This package 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.
+ */
+
+#include "CClientListener.h"
+#include "CClientProxy.h"
+#include "CConfig.h"
+#include "CPrimaryClient.h"
+#include "CServer.h"
+#include "CScreen.h"
+#include "ProtocolTypes.h"
+#include "Version.h"
+#include "XScreen.h"
+#include "CSocketMultiplexer.h"
+#include "CTCPSocketFactory.h"
+#include "XSocket.h"
+#include "CThread.h"
+#include "CEventQueue.h"
+#include "CFunctionEventJob.h"
+#include "CLog.h"
+#include "CString.h"
+#include "CStringUtil.h"
+#include "LogOutputters.h"
+#include "CArch.h"
+#include "XArch.h"
+#include "stdfstream.h"
+#include
+
+#define DAEMON_RUNNING(running_)
+#if WINAPI_MSWINDOWS
+#include "CArchMiscWindows.h"
+#include "CMSWindowsScreen.h"
+#include "CMSWindowsUtil.h"
+#include "CMSWindowsServerTaskBarReceiver.h"
+#include "resource.h"
+#undef DAEMON_RUNNING
+#define DAEMON_RUNNING(running_) CArchMiscWindows::daemonRunning(running_)
+#elif WINAPI_XWINDOWS
+#include "CXWindowsScreen.h"
+#include "CXWindowsServerTaskBarReceiver.h"
+#elif WINAPI_CARBON
+#include "COSXScreen.h"
+#include "COSXServerTaskBarReceiver.h"
+#endif
+
+// platform dependent name of a daemon
+#if SYSAPI_WIN32
+#define DAEMON_NAME "Synergy Server"
+#elif SYSAPI_UNIX
+#define DAEMON_NAME "synergys"
+#endif
+
+// configuration file name
+#if SYSAPI_WIN32
+#define USR_CONFIG_NAME "synergy.sgc"
+#define SYS_CONFIG_NAME "synergy.sgc"
+#elif SYSAPI_UNIX
+#define USR_CONFIG_NAME ".synergy.conf"
+#define SYS_CONFIG_NAME "synergy.conf"
+#endif
+
+typedef int (*StartupFunc)(int, char**);
+static void parse(int argc, const char* const* argv);
+static bool loadConfig(const CString& pathname);
+static void loadConfig();
+
+//
+// program arguments
+//
+
+#define ARG CArgs::s_instance
+
+class CArgs {
+public:
+ CArgs() :
+ m_pname(NULL),
+ m_backend(false),
+ m_restartable(true),
+ m_daemon(true),
+ m_configFile(),
+ m_logFilter(NULL),
+ m_logFile(NULL),
+ m_display(NULL),
+ m_synergyAddress(NULL),
+ m_config(NULL)
+ { s_instance = this; }
+ ~CArgs() { s_instance = NULL; }
+
+public:
+ static CArgs* s_instance;
+ const char* m_pname;
+ bool m_backend;
+ bool m_restartable;
+ bool m_daemon;
+ CString m_configFile;
+ const char* m_logFilter;
+ const char* m_logFile;
+ const char* m_display;
+ CString m_name;
+ CNetworkAddress* m_synergyAddress;
+ CConfig* m_config;
+};
+
+CArgs* CArgs::s_instance = NULL;
+
+
+//
+// platform dependent factories
+//
+
+static
+CScreen*
+createScreen()
+{
+#if WINAPI_MSWINDOWS
+ return new CScreen(new CMSWindowsScreen(true));
+#elif WINAPI_XWINDOWS
+ return new CScreen(new CXWindowsScreen(ARG->m_display, true));
+#elif WINAPI_CARBON
+ return new CScreen(new COSXScreen(true));
+#endif
+}
+
+static
+CServerTaskBarReceiver*
+createTaskBarReceiver(const CBufferedLogOutputter* logBuffer)
+{
+#if WINAPI_MSWINDOWS
+ return new CMSWindowsServerTaskBarReceiver(
+ CMSWindowsScreen::getInstance(), logBuffer);
+#elif WINAPI_XWINDOWS
+ return new CXWindowsServerTaskBarReceiver(logBuffer);
+#elif WINAPI_CARBON
+ return new COSXServerTaskBarReceiver(logBuffer);
+#endif
+}
+
+
+//
+// platform independent main
+//
+
+enum EServerState {
+ kUninitialized,
+ kInitializing,
+ kInitializingToStart,
+ kInitialized,
+ kStarting,
+ kStarted
+};
+
+static EServerState s_serverState = kUninitialized;
+static CServer* s_server = NULL;
+static CScreen* s_serverScreen = NULL;
+static CPrimaryClient* s_primaryClient = NULL;
+static CClientListener* s_listener = NULL;
+static CServerTaskBarReceiver* s_taskBarReceiver = NULL;
+static CEvent::Type s_reloadConfigEvent = CEvent::kUnknown;
+static CEvent::Type s_forceReconnectEvent = CEvent::kUnknown;
+static CEvent::Type s_resetServerEvent = CEvent::kUnknown;
+static bool s_suspended = false;
+static CEventQueueTimer* s_timer = NULL;
+
+CEvent::Type
+getReloadConfigEvent()
+{
+ return CEvent::registerTypeOnce(s_reloadConfigEvent, "reloadConfig");
+}
+
+CEvent::Type
+getForceReconnectEvent()
+{
+ return CEvent::registerTypeOnce(s_forceReconnectEvent, "forceReconnect");
+}
+
+CEvent::Type
+getResetServerEvent()
+{
+ return CEvent::registerTypeOnce(s_resetServerEvent, "resetServer");
+}
+
+static
+void
+updateStatus()
+{
+ s_taskBarReceiver->updateStatus(s_server, "");
+}
+
+static
+void
+updateStatus(const CString& msg)
+{
+ s_taskBarReceiver->updateStatus(s_server, msg);
+}
+
+static
+void
+handleClientConnected(const CEvent&, void* vlistener)
+{
+ CClientListener* listener = reinterpret_cast(vlistener);
+ CClientProxy* client = listener->getNextClient();
+ if (client != NULL) {
+ s_server->adoptClient(client);
+ updateStatus();
+ }
+}
+
+static
+CClientListener*
+openClientListener(const CNetworkAddress& address)
+{
+ CClientListener* listen =
+ new CClientListener(address, new CTCPSocketFactory, NULL);
+ EVENTQUEUE->adoptHandler(CClientListener::getConnectedEvent(), listen,
+ new CFunctionEventJob(
+ &handleClientConnected, listen));
+ return listen;
+}
+
+static
+void
+closeClientListener(CClientListener* listen)
+{
+ if (listen != NULL) {
+ EVENTQUEUE->removeHandler(CClientListener::getConnectedEvent(), listen);
+ delete listen;
+ }
+}
+
+static
+void
+handleScreenError(const CEvent&, void*)
+{
+ LOG((CLOG_CRIT "error on screen"));
+ EVENTQUEUE->addEvent(CEvent(CEvent::kQuit));
+}
+
+
+static void handleSuspend(const CEvent& event, void*);
+static void handleResume(const CEvent& event, void*);
+
+static
+CScreen*
+openServerScreen()
+{
+ CScreen* screen = createScreen();
+ EVENTQUEUE->adoptHandler(IScreen::getErrorEvent(),
+ screen->getEventTarget(),
+ new CFunctionEventJob(
+ &handleScreenError));
+ EVENTQUEUE->adoptHandler(IScreen::getSuspendEvent(),
+ screen->getEventTarget(),
+ new CFunctionEventJob(
+ &handleSuspend));
+ EVENTQUEUE->adoptHandler(IScreen::getResumeEvent(),
+ screen->getEventTarget(),
+ new CFunctionEventJob(
+ &handleResume));
+ return screen;
+}
+
+static
+void
+closeServerScreen(CScreen* screen)
+{
+ if (screen != NULL) {
+ EVENTQUEUE->removeHandler(IScreen::getErrorEvent(),
+ screen->getEventTarget());
+ EVENTQUEUE->removeHandler(IScreen::getSuspendEvent(),
+ screen->getEventTarget());
+ EVENTQUEUE->removeHandler(IScreen::getResumeEvent(),
+ screen->getEventTarget());
+ delete screen;
+ }
+}
+
+static
+CPrimaryClient*
+openPrimaryClient(const CString& name, CScreen* screen)
+{
+ LOG((CLOG_DEBUG1 "creating primary screen"));
+ return new CPrimaryClient(name, screen);
+}
+
+static
+void
+closePrimaryClient(CPrimaryClient* primaryClient)
+{
+ delete primaryClient;
+}
+
+static
+void
+handleNoClients(const CEvent&, void*)
+{
+ updateStatus();
+}
+
+static
+void
+handleClientsDisconnected(const CEvent&, void*)
+{
+ EVENTQUEUE->addEvent(CEvent(CEvent::kQuit));
+}
+
+static
+CServer*
+openServer(const CConfig& config, CPrimaryClient* primaryClient)
+{
+ CServer* server = new CServer(config, primaryClient);
+ EVENTQUEUE->adoptHandler(CServer::getDisconnectedEvent(), server,
+ new CFunctionEventJob(handleNoClients));
+ return server;
+}
+
+static
+void
+closeServer(CServer* server)
+{
+ if (server == NULL) {
+ return;
+ }
+
+ // tell all clients to disconnect
+ server->disconnect();
+
+ // wait for clients to disconnect for up to timeout seconds
+ double timeout = 3.0;
+ CEventQueueTimer* timer = EVENTQUEUE->newOneShotTimer(timeout, NULL);
+ EVENTQUEUE->adoptHandler(CEvent::kTimer, timer,
+ new CFunctionEventJob(handleClientsDisconnected));
+ EVENTQUEUE->adoptHandler(CServer::getDisconnectedEvent(), server,
+ new CFunctionEventJob(handleClientsDisconnected));
+ CEvent event;
+ EVENTQUEUE->getEvent(event);
+ while (event.getType() != CEvent::kQuit) {
+ EVENTQUEUE->dispatchEvent(event);
+ CEvent::deleteData(event);
+ EVENTQUEUE->getEvent(event);
+ }
+ EVENTQUEUE->removeHandler(CEvent::kTimer, timer);
+ EVENTQUEUE->deleteTimer(timer);
+ EVENTQUEUE->removeHandler(CServer::getDisconnectedEvent(), server);
+
+ // done with server
+ delete server;
+}
+
+static bool initServer();
+static bool startServer();
+
+static
+void
+stopRetryTimer()
+{
+ if (s_timer != NULL) {
+ EVENTQUEUE->deleteTimer(s_timer);
+ EVENTQUEUE->removeHandler(CEvent::kTimer, NULL);
+ s_timer = NULL;
+ }
+}
+
+static
+void
+retryHandler(const CEvent&, void*)
+{
+ // discard old timer
+ assert(s_timer != NULL);
+ stopRetryTimer();
+
+ // try initializing/starting the server again
+ switch (s_serverState) {
+ case kUninitialized:
+ case kInitialized:
+ case kStarted:
+ assert(0 && "bad internal server state");
+ break;
+
+ case kInitializing:
+ LOG((CLOG_DEBUG1 "retry server initialization"));
+ s_serverState = kUninitialized;
+ if (!initServer()) {
+ EVENTQUEUE->addEvent(CEvent(CEvent::kQuit));
+ }
+ break;
+
+ case kInitializingToStart:
+ LOG((CLOG_DEBUG1 "retry server initialization"));
+ s_serverState = kUninitialized;
+ if (!initServer()) {
+ EVENTQUEUE->addEvent(CEvent(CEvent::kQuit));
+ }
+ else if (s_serverState == kInitialized) {
+ LOG((CLOG_DEBUG1 "starting server"));
+ if (!startServer()) {
+ EVENTQUEUE->addEvent(CEvent(CEvent::kQuit));
+ }
+ }
+ break;
+
+ case kStarting:
+ LOG((CLOG_DEBUG1 "retry starting server"));
+ s_serverState = kInitialized;
+ if (!startServer()) {
+ EVENTQUEUE->addEvent(CEvent(CEvent::kQuit));
+ }
+ break;
+ }
+}
+
+static
+bool
+initServer()
+{
+ // skip if already initialized or initializing
+ if (s_serverState != kUninitialized) {
+ return true;
+ }
+
+ double retryTime;
+ CScreen* serverScreen = NULL;
+ CPrimaryClient* primaryClient = NULL;
+ try {
+ CString name = ARG->m_config->getCanonicalName(ARG->m_name);
+ serverScreen = openServerScreen();
+ primaryClient = openPrimaryClient(name, serverScreen);
+ s_serverScreen = serverScreen;
+ s_primaryClient = primaryClient;
+ s_serverState = kInitialized;
+ updateStatus();
+ return true;
+ }
+ catch (XScreenUnavailable& e) {
+ LOG((CLOG_WARN "cannot open primary screen: %s", e.what()));
+ closePrimaryClient(primaryClient);
+ closeServerScreen(serverScreen);
+ updateStatus(CString("cannot open primary screen: ") + e.what());
+ retryTime = e.getRetryTime();
+ }
+ catch (XScreenOpenFailure& e) {
+ LOG((CLOG_CRIT "cannot open primary screen: %s", e.what()));
+ closePrimaryClient(primaryClient);
+ closeServerScreen(serverScreen);
+ return false;
+ }
+ catch (XBase& e) {
+ LOG((CLOG_CRIT "failed to start server: %s", e.what()));
+ closePrimaryClient(primaryClient);
+ closeServerScreen(serverScreen);
+ return false;
+ }
+
+ if (ARG->m_restartable) {
+ // install a timer and handler to retry later
+ assert(s_timer == NULL);
+ LOG((CLOG_DEBUG "retry in %.0f seconds", retryTime));
+ s_timer = EVENTQUEUE->newOneShotTimer(retryTime, NULL);
+ EVENTQUEUE->adoptHandler(CEvent::kTimer, s_timer,
+ new CFunctionEventJob(&retryHandler, NULL));
+ s_serverState = kInitializing;
+ return true;
+ }
+ else {
+ // don't try again
+ return false;
+ }
+}
+
+static
+bool
+startServer()
+{
+ // skip if already started or starting
+ if (s_serverState == kStarting || s_serverState == kStarted) {
+ return true;
+ }
+
+ // initialize if necessary
+ if (s_serverState != kInitialized) {
+ if (!initServer()) {
+ // hard initialization failure
+ return false;
+ }
+ if (s_serverState == kInitializing) {
+ // not ready to start
+ s_serverState = kInitializingToStart;
+ return true;
+ }
+ assert(s_serverState == kInitialized);
+ }
+
+ double retryTime;
+ CClientListener* listener = NULL;
+ try {
+ listener = openClientListener(ARG->m_config->getSynergyAddress());
+ s_server = openServer(*ARG->m_config, s_primaryClient);
+ s_listener = listener;
+ updateStatus();
+ LOG((CLOG_NOTE "started server"));
+ s_serverState = kStarted;
+ return true;
+ }
+ catch (XSocketAddressInUse& e) {
+ LOG((CLOG_WARN "cannot listen for clients: %s", e.what()));
+ closeClientListener(listener);
+ updateStatus(CString("cannot listen for clients: ") + e.what());
+ retryTime = 10.0;
+ }
+ catch (XBase& e) {
+ LOG((CLOG_CRIT "failed to start server: %s", e.what()));
+ closeClientListener(listener);
+ return false;
+ }
+
+ if (ARG->m_restartable) {
+ // install a timer and handler to retry later
+ assert(s_timer == NULL);
+ LOG((CLOG_DEBUG "retry in %.0f seconds", retryTime));
+ s_timer = EVENTQUEUE->newOneShotTimer(retryTime, NULL);
+ EVENTQUEUE->adoptHandler(CEvent::kTimer, s_timer,
+ new CFunctionEventJob(&retryHandler, NULL));
+ s_serverState = kStarting;
+ return true;
+ }
+ else {
+ // don't try again
+ return false;
+ }
+}
+
+static
+void
+stopServer()
+{
+ if (s_serverState == kStarted) {
+ closeClientListener(s_listener);
+ closeServer(s_server);
+ s_server = NULL;
+ s_listener = NULL;
+ s_serverState = kInitialized;
+ }
+ else if (s_serverState == kStarting) {
+ stopRetryTimer();
+ s_serverState = kInitialized;
+ }
+ assert(s_server == NULL);
+ assert(s_listener == NULL);
+}
+
+static
+void
+cleanupServer()
+{
+ stopServer();
+ if (s_serverState == kInitialized) {
+ closePrimaryClient(s_primaryClient);
+ closeServerScreen(s_serverScreen);
+ s_primaryClient = NULL;
+ s_serverScreen = NULL;
+ s_serverState = kUninitialized;
+ }
+ else if (s_serverState == kInitializing ||
+ s_serverState == kInitializingToStart) {
+ stopRetryTimer();
+ s_serverState = kUninitialized;
+ }
+ assert(s_primaryClient == NULL);
+ assert(s_serverScreen == NULL);
+ assert(s_serverState == kUninitialized);
+}
+
+static
+void
+handleSuspend(const CEvent&, void*)
+{
+ if (!s_suspended) {
+ LOG((CLOG_INFO "suspend"));
+ stopServer();
+ s_suspended = true;
+ }
+}
+
+static
+void
+handleResume(const CEvent&, void*)
+{
+ if (s_suspended) {
+ LOG((CLOG_INFO "resume"));
+ startServer();
+ s_suspended = false;
+ }
+}
+
+static
+void
+reloadSignalHandler(CArch::ESignal, void*)
+{
+ EVENTQUEUE->addEvent(CEvent(getReloadConfigEvent(),
+ IEventQueue::getSystemTarget()));
+}
+
+static
+void
+reloadConfig(const CEvent&, void*)
+{
+ LOG((CLOG_DEBUG "reload configuration"));
+ if (loadConfig(ARG->m_configFile)) {
+ if (s_server != NULL) {
+ s_server->setConfig(*ARG->m_config);
+ }
+ LOG((CLOG_NOTE "reloaded configuration"));
+ }
+}
+
+static
+void
+forceReconnect(const CEvent&, void*)
+{
+ if (s_server != NULL) {
+ s_server->disconnect();
+ }
+}
+
+// simply stops and starts the server in order to try and
+// work around issues like the sticky meta keys problem, etc
+static
+void
+resetServer(const CEvent&, void*)
+{
+ LOG((CLOG_DEBUG1 "resetting server"));
+ stopServer();
+ cleanupServer();
+ startServer();
+}
+
+static
+int
+mainLoop()
+{
+ // create socket multiplexer. this must happen after daemonization
+ // on unix because threads evaporate across a fork().
+ CSocketMultiplexer multiplexer;
+
+ // create the event queue
+ CEventQueue eventQueue;
+
+ // logging to files
+ CFileLogOutputter* fileLog = NULL;
+
+ if (ARG->m_logFile != NULL) {
+ fileLog = new CFileLogOutputter(ARG->m_logFile);
+
+ CLOG->insert(fileLog);
+
+ LOG((CLOG_DEBUG1 "Logging to file (%s) enabled", ARG->m_logFile));
+ }
+
+ // if configuration has no screens then add this system
+ // as the default
+ if (ARG->m_config->begin() == ARG->m_config->end()) {
+ ARG->m_config->addScreen(ARG->m_name);
+ }
+
+ // set the contact address, if provided, in the config.
+ // otherwise, if the config doesn't have an address, use
+ // the default.
+ if (ARG->m_synergyAddress->isValid()) {
+ ARG->m_config->setSynergyAddress(*ARG->m_synergyAddress);
+ }
+ else if (!ARG->m_config->getSynergyAddress().isValid()) {
+ ARG->m_config->setSynergyAddress(CNetworkAddress(kDefaultPort));
+ }
+
+ // canonicalize the primary screen name
+ CString primaryName = ARG->m_config->getCanonicalName(ARG->m_name);
+ if (primaryName.empty()) {
+ LOG((CLOG_CRIT "unknown screen name `%s'", ARG->m_name.c_str()));
+ return kExitFailed;
+ }
+
+ // start the server. if this return false then we've failed and
+ // we shouldn't retry.
+ LOG((CLOG_DEBUG1 "starting server"));
+ if (!startServer()) {
+ return kExitFailed;
+ }
+
+ // handle hangup signal by reloading the server's configuration
+ ARCH->setSignalHandler(CArch::kHANGUP, &reloadSignalHandler, NULL);
+ EVENTQUEUE->adoptHandler(getReloadConfigEvent(),
+ IEventQueue::getSystemTarget(),
+ new CFunctionEventJob(&reloadConfig));
+
+ // handle force reconnect event by disconnecting clients. they'll
+ // reconnect automatically.
+ EVENTQUEUE->adoptHandler(getForceReconnectEvent(),
+ IEventQueue::getSystemTarget(),
+ new CFunctionEventJob(&forceReconnect));
+
+ // to work around the sticky meta keys problem, we'll give users
+ // the option to reset the state of synergys
+ EVENTQUEUE->adoptHandler(getResetServerEvent(),
+ IEventQueue::getSystemTarget(),
+ new CFunctionEventJob(&resetServer));
+
+ // run event loop. if startServer() failed we're supposed to retry
+ // later. the timer installed by startServer() will take care of
+ // that.
+ CEvent event;
+ DAEMON_RUNNING(true);
+ EVENTQUEUE->getEvent(event);
+ while (event.getType() != CEvent::kQuit) {
+ EVENTQUEUE->dispatchEvent(event);
+ CEvent::deleteData(event);
+ EVENTQUEUE->getEvent(event);
+ }
+ DAEMON_RUNNING(false);
+
+ // close down
+ LOG((CLOG_DEBUG1 "stopping server"));
+ EVENTQUEUE->removeHandler(getForceReconnectEvent(),
+ IEventQueue::getSystemTarget());
+ EVENTQUEUE->removeHandler(getReloadConfigEvent(),
+ IEventQueue::getSystemTarget());
+ cleanupServer();
+ updateStatus();
+ LOG((CLOG_NOTE "stopped server"));
+
+ if (fileLog) {
+ CLOG->remove(fileLog);
+ delete fileLog;
+ }
+
+ return kExitSuccess;
+}
+
+static
+int
+daemonMainLoop(int, const char**)
+{
+#if SYSAPI_WIN32
+ CSystemLogger sysLogger(DAEMON_NAME, false);
+#else
+ CSystemLogger sysLogger(DAEMON_NAME, true);
+#endif
+ return mainLoop();
+}
+
+static
+int
+standardStartup(int argc, char** argv)
+{
+
+ // parse command line
+ parse(argc, argv);
+
+ // load configuration
+ loadConfig();
+
+ // daemonize if requested
+ if (ARG->m_daemon) {
+ return ARCH->daemonize(DAEMON_NAME, &daemonMainLoop);
+ }
+ else {
+ return mainLoop();
+ }
+}
+
+static
+int
+run(int argc, char** argv, ILogOutputter* outputter, StartupFunc startup)
+{
+ // general initialization
+ ARG->m_synergyAddress = new CNetworkAddress;
+ ARG->m_config = new CConfig;
+ ARG->m_pname = ARCH->getBasename(argv[0]);
+
+ // install caller's output filter
+ if (outputter != NULL) {
+ CLOG->insert(outputter);
+ }
+
+ // save log messages
+ CBufferedLogOutputter logBuffer(1000);
+ CLOG->insert(&logBuffer, true);
+
+ // make the task bar receiver. the user can control this app
+ // through the task bar.
+ s_taskBarReceiver = createTaskBarReceiver(&logBuffer);
+
+ // run
+ int result = startup(argc, argv);
+
+ // done with task bar receiver
+ delete s_taskBarReceiver;
+
+ // done with log buffer
+ CLOG->remove(&logBuffer);
+
+ delete ARG->m_config;
+ delete ARG->m_synergyAddress;
+ return result;
+}
+
+
+//
+// command line parsing
+//
+
+#define BYE "\nTry `%s --help' for more information."
+
+static void (*bye)(int) = &exit;
+
+static
+void
+version()
+{
+ LOG((CLOG_PRINT
+"%s %s, protocol version %d.%d\n"
+"%s",
+ ARG->m_pname,
+ kVersion,
+ kProtocolMajorVersion,
+ kProtocolMinorVersion,
+ kCopyright));
+}
+
+static
+void
+help()
+{
+#if WINAPI_XWINDOWS
+# define USAGE_DISPLAY_ARG \
+" [--display ]"
+# define USAGE_DISPLAY_INFO \
+" --display connect to the X server at \n"
+#else
+# define USAGE_DISPLAY_ARG
+# define USAGE_DISPLAY_INFO
+#endif
+
+#if SYSAPI_WIN32
+
+# define PLATFORM_ARGS \
+" [--daemon|--no-daemon]"
+# define PLATFORM_DESC
+# define PLATFORM_EXTRA \
+"At least one command line argument is required. If you don't otherwise\n" \
+"need an argument use `--daemon'.\n" \
+"\n"
+
+#else
+
+# define PLATFORM_ARGS \
+" [--daemon|--no-daemon]"
+# define PLATFORM_DESC
+# define PLATFORM_EXTRA
+
+#endif
+
+ LOG((CLOG_PRINT
+"Usage: %s"
+" [--address ]"
+" [--config ]"
+" [--debug ]"
+USAGE_DISPLAY_ARG
+" [--name ]"
+" [--restart|--no-restart]"
+PLATFORM_ARGS
+"\n\n"
+"Start the synergy mouse/keyboard sharing server.\n"
+"\n"
+" -a, --address listen for clients on the given address.\n"
+" -c, --config use the named configuration file instead.\n"
+" -d, --debug filter out log messages with priorty below level.\n"
+" level may be: FATAL, ERROR, WARNING, NOTE, INFO,\n"
+" DEBUG, DEBUG1, DEBUG2.\n"
+USAGE_DISPLAY_INFO
+" -f, --no-daemon run the server in the foreground.\n"
+"* --daemon run the server as a daemon.\n"
+" -n, --name use screen-name instead the hostname to identify\n"
+" this screen in the configuration.\n"
+" -1, --no-restart do not try to restart the server if it fails for\n"
+" some reason.\n"
+"* --restart restart the server automatically if it fails.\n"
+" -l --log write log messages to file.\n"
+PLATFORM_DESC
+" -h, --help display this help and exit.\n"
+" --version display version information and exit.\n"
+"\n"
+"* marks defaults.\n"
+"\n"
+PLATFORM_EXTRA
+"The argument for --address is of the form: [][:]. The\n"
+"hostname must be the address or hostname of an interface on the system.\n"
+"The default is to listen on all interfaces. The port overrides the\n"
+"default port, %d.\n"
+"\n"
+"If no configuration file pathname is provided then the first of the\n"
+"following to load successfully sets the configuration:\n"
+" %s\n"
+" %s\n"
+"If no configuration file can be loaded then the configuration uses its\n"
+"defaults with just the server screen.\n"
+"\n"
+"Where log messages go depends on the platform and whether or not the\n"
+"server is running as a daemon.",
+ ARG->m_pname,
+ kDefaultPort,
+ ARCH->concatPath(
+ ARCH->getUserDirectory(),
+ USR_CONFIG_NAME).c_str(),
+ ARCH->concatPath(
+ ARCH->getSystemDirectory(),
+ SYS_CONFIG_NAME).c_str()));
+}
+
+static
+bool
+isArg(int argi, int argc, const char* const* argv,
+ const char* name1, const char* name2,
+ int minRequiredParameters = 0)
+{
+ if ((name1 != NULL && strcmp(argv[argi], name1) == 0) ||
+ (name2 != NULL && strcmp(argv[argi], name2) == 0)) {
+ // match. check args left.
+ if (argi + minRequiredParameters >= argc) {
+ LOG((CLOG_PRINT "%s: missing arguments for `%s'" BYE,
+ ARG->m_pname, argv[argi], ARG->m_pname));
+ bye(kExitArgs);
+ }
+ return true;
+ }
+
+ // no match
+ return false;
+}
+
+static
+void
+parse(int argc, const char* const* argv)
+{
+ assert(ARG->m_pname != NULL);
+ assert(argv != NULL);
+ assert(argc >= 1);
+
+ // set defaults
+ ARG->m_name = ARCH->getHostName();
+
+ // parse options
+ int i = 1;
+ for (; i < argc; ++i) {
+ if (isArg(i, argc, argv, "-d", "--debug", 1)) {
+ // change logging level
+ ARG->m_logFilter = argv[++i];
+ }
+
+ else if (isArg(i, argc, argv, "-a", "--address", 1)) {
+ // save listen address
+ try {
+ *ARG->m_synergyAddress = CNetworkAddress(argv[i + 1],
+ kDefaultPort);
+ ARG->m_synergyAddress->resolve();
+ }
+ catch (XSocketAddress& e) {
+ LOG((CLOG_PRINT "%s: %s" BYE,
+ ARG->m_pname, e.what(), ARG->m_pname));
+ bye(kExitArgs);
+ }
+ ++i;
+ }
+
+ else if (isArg(i, argc, argv, "-n", "--name", 1)) {
+ // save screen name
+ ARG->m_name = argv[++i];
+ }
+
+ else if (isArg(i, argc, argv, "-c", "--config", 1)) {
+ // save configuration file path
+ ARG->m_configFile = argv[++i];
+ }
+
+#if WINAPI_XWINDOWS
+ else if (isArg(i, argc, argv, "-display", "--display", 1)) {
+ // use alternative display
+ ARG->m_display = argv[++i];
+ }
+#endif
+
+ else if (isArg(i, argc, argv, "-f", "--no-daemon")) {
+ // not a daemon
+ ARG->m_daemon = false;
+ }
+
+ else if (isArg(i, argc, argv, NULL, "--daemon")) {
+ // daemonize
+ ARG->m_daemon = true;
+ }
+ else if (isArg(i, argc, argv, "-l", "--log", 1)) {
+ // logging to file
+ ARG->m_logFile = argv[++i];
+ }
+
+ else if (isArg(i, argc, argv, "-1", "--no-restart")) {
+ // don't try to restart
+ ARG->m_restartable = false;
+ }
+
+ else if (isArg(i, argc, argv, NULL, "--restart")) {
+ // try to restart
+ ARG->m_restartable = true;
+ }
+
+ else if (isArg(i, argc, argv, "-z", NULL)) {
+ ARG->m_backend = true;
+ }
+
+ else if (isArg(i, argc, argv, "-h", "--help")) {
+ help();
+ bye(kExitSuccess);
+ }
+
+ else if (isArg(i, argc, argv, NULL, "--version")) {
+ version();
+ bye(kExitSuccess);
+ }
+
+ else if (isArg(i, argc, argv, "--", NULL)) {
+ // remaining arguments are not options
+ ++i;
+ break;
+ }
+
+ else if (argv[i][0] == '-') {
+ LOG((CLOG_PRINT "%s: unrecognized option `%s'" BYE,
+ ARG->m_pname, argv[i], ARG->m_pname));
+ bye(kExitArgs);
+ }
+
+ else {
+ // this and remaining arguments are not options
+ break;
+ }
+ }
+
+ // no non-option arguments are allowed
+ if (i != argc) {
+ LOG((CLOG_PRINT "%s: unrecognized option `%s'" BYE,
+ ARG->m_pname, argv[i], ARG->m_pname));
+ bye(kExitArgs);
+ }
+
+ // increase default filter level for daemon. the user must
+ // explicitly request another level for a daemon.
+ if (ARG->m_daemon && ARG->m_logFilter == NULL) {
+#if SYSAPI_WIN32
+ if (CArchMiscWindows::isWindows95Family()) {
+ // windows 95 has no place for logging so avoid showing
+ // the log console window.
+ ARG->m_logFilter = "FATAL";
+ }
+ else
+#endif
+ {
+ ARG->m_logFilter = "NOTE";
+ }
+ }
+
+ // set log filter
+ if (!CLOG->setFilter(ARG->m_logFilter)) {
+ LOG((CLOG_PRINT "%s: unrecognized log level `%s'" BYE,
+ ARG->m_pname, ARG->m_logFilter, ARG->m_pname));
+ bye(kExitArgs);
+ }
+
+ // identify system
+ LOG((CLOG_INFO "%s Server on %s %s", kAppVersion, ARCH->getOSName().c_str(), ARCH->getPlatformName().c_str()));
+
+#ifdef WIN32
+#ifdef _AMD64_
+ LOG((CLOG_WARN "This is an experimental x64 build of %s. Use it at your own risk.", kApplication));
+#endif
+#endif
+}
+
+static
+bool
+loadConfig(const CString& pathname)
+{
+ try {
+ // load configuration
+ LOG((CLOG_DEBUG "opening configuration \"%s\"", pathname.c_str()));
+ std::ifstream configStream(pathname.c_str());
+ if (!configStream.is_open()) {
+ // report failure to open configuration as a debug message
+ // since we try several paths and we expect some to be
+ // missing.
+ LOG((CLOG_DEBUG "cannot open configuration \"%s\"",
+ pathname.c_str()));
+ return false;
+ }
+ configStream >> *ARG->m_config;
+ LOG((CLOG_DEBUG "configuration read successfully"));
+ return true;
+ }
+ catch (XConfigRead& e) {
+ // report error in configuration file
+ LOG((CLOG_ERR "cannot read configuration \"%s\": %s",
+ pathname.c_str(), e.what()));
+ }
+ return false;
+}
+
+static
+void
+loadConfig()
+{
+ bool loaded = false;
+
+ // load the config file, if specified
+ if (!ARG->m_configFile.empty()) {
+ loaded = loadConfig(ARG->m_configFile);
+ }
+
+ // load the default configuration if no explicit file given
+ else {
+ // get the user's home directory
+ CString path = ARCH->getUserDirectory();
+ if (!path.empty()) {
+ // complete path
+ path = ARCH->concatPath(path, USR_CONFIG_NAME);
+
+ // now try loading the user's configuration
+ if (loadConfig(path)) {
+ loaded = true;
+ ARG->m_configFile = path;
+ }
+ }
+ if (!loaded) {
+ // try the system-wide config file
+ path = ARCH->getSystemDirectory();
+ if (!path.empty()) {
+ path = ARCH->concatPath(path, SYS_CONFIG_NAME);
+ if (loadConfig(path)) {
+ loaded = true;
+ ARG->m_configFile = path;
+ }
+ }
+ }
+ }
+
+ if (!loaded) {
+ LOG((CLOG_PRINT "%s: no configuration available", ARG->m_pname));
+ bye(kExitConfig);
+ }
+}
+
+
+//
+// platform dependent entry points
+//
+
+#if SYSAPI_WIN32
+
+static bool s_hasImportantLogMessages = false;
+
+//
+// CMessageBoxOutputter
+//
+// This class writes severe log messages to a message box
+//
+
+class CMessageBoxOutputter : public ILogOutputter {
+public:
+ CMessageBoxOutputter() { }
+ virtual ~CMessageBoxOutputter() { }
+
+ // ILogOutputter overrides
+ virtual void open(const char*) { }
+ virtual void close() { }
+ virtual void show(bool) { }
+ virtual bool write(ELevel level, const char* message);
+ virtual const char* getNewline() const { return ""; }
+};
+
+bool
+CMessageBoxOutputter::write(ELevel level, const char* message)
+{
+ // note any important messages the user may need to know about
+ if (level <= CLog::kWARNING) {
+ s_hasImportantLogMessages = true;
+ }
+
+ // FATAL and PRINT messages get a dialog box if not running as
+ // backend. if we're running as a backend the user will have
+ // a chance to see the messages when we exit.
+ if (!ARG->m_backend && level <= CLog::kFATAL) {
+ MessageBox(NULL, message, ARG->m_pname, MB_OK | MB_ICONWARNING);
+ return false;
+ }
+ else {
+ return true;
+ }
+}
+
+static
+void
+byeThrow(int x)
+{
+ CArchMiscWindows::daemonFailed(x);
+}
+
+static
+int
+daemonNTMainLoop(int argc, const char** argv)
+{
+ parse(argc, argv);
+ ARG->m_backend = false;
+ loadConfig();
+ return CArchMiscWindows::runDaemon(mainLoop);
+}
+
+static
+int
+daemonNTStartup(int, char**)
+{
+ CSystemLogger sysLogger(DAEMON_NAME, false);
+ bye = &byeThrow;
+ return ARCH->daemonize(DAEMON_NAME, &daemonNTMainLoop);
+}
+
+static
+int
+foregroundStartup(int argc, char** argv)
+{
+
+ // parse command line
+ parse(argc, argv);
+
+ // load configuration
+ loadConfig();
+
+ // never daemonize
+ return mainLoop();
+}
+
+static
+void
+showError(HINSTANCE instance, const char* title, UINT id, const char* arg)
+{
+ CString fmt = CMSWindowsUtil::getString(instance, id);
+ CString msg = CStringUtil::format(fmt.c_str(), arg);
+ MessageBox(NULL, msg.c_str(), title, MB_OK | MB_ICONWARNING);
+}
+
+int WINAPI
+WinMain(HINSTANCE instance, HINSTANCE, LPSTR, int)
+{
+ try {
+ CArchMiscWindows::setIcons((HICON)LoadImage(instance,
+ MAKEINTRESOURCE(IDI_SYNERGY),
+ IMAGE_ICON,
+ 32, 32, LR_SHARED),
+ (HICON)LoadImage(instance,
+ MAKEINTRESOURCE(IDI_SYNERGY),
+ IMAGE_ICON,
+ 16, 16, LR_SHARED));
+ CArch arch(instance);
+ CMSWindowsScreen::init(instance);
+ CLOG;
+ CThread::getCurrentThread().setPriority(-14);
+ CArgs args;
+
+ // set title on log window
+ ARCH->openConsole((CString(kAppVersion) + " " + "Server").c_str());
+
+ // windows NT family starts services using no command line options.
+ // since i'm not sure how to tell the difference between that and
+ // a user providing no options we'll assume that if there are no
+ // arguments and we're on NT then we're being invoked as a service.
+ // users on NT can use `--daemon' or `--no-daemon' to force us out
+ // of the service code path.
+ StartupFunc startup = &standardStartup;
+ if (!CArchMiscWindows::isWindows95Family()) {
+ if (__argc <= 1) {
+ startup = &daemonNTStartup;
+ }
+ else {
+ startup = &foregroundStartup;
+ }
+ }
+
+ // send PRINT and FATAL output to a message box
+ int result = run(__argc, __argv, new CMessageBoxOutputter, startup);
+
+ // let user examine any messages if we're running as a backend
+ // by putting up a dialog box before exiting.
+ if (args.m_backend && s_hasImportantLogMessages) {
+ showError(instance, args.m_pname, IDS_FAILED, "");
+ }
+
+ delete CLOG;
+ return result;
+ }
+ catch (XBase& e) {
+ showError(instance, __argv[0], IDS_UNCAUGHT_EXCEPTION, e.what());
+ //throw;
+ }
+ catch (XArch& e) {
+ showError(instance, __argv[0], IDS_INIT_FAILED, e.what().c_str());
+ }
+ catch (...) {
+ showError(instance, __argv[0], IDS_UNCAUGHT_EXCEPTION, "");
+ //throw;
+ }
+ return kExitFailed;
+}
+
+#elif SYSAPI_UNIX
+
+int
+main(int argc, char** argv)
+{
+ CArgs args;
+ try {
+ int result;
+ CArch arch;
+ CLOG;
+ CArgs args;
+ result = run(argc, argv, NULL, &standardStartup);
+ delete CLOG;
+ return result;
+ }
+ catch (XBase& e) {
+ LOG((CLOG_CRIT "Uncaught exception: %s\n", e.what()));
+ throw;
+ }
+ catch (XArch& e) {
+ LOG((CLOG_CRIT "Initialization failed: %s" BYE, e.what().c_str()));
+ return kExitFailed;
+ }
+ catch (...) {
+ LOG((CLOG_CRIT "Uncaught exception: \n"));
+ throw;
+ }
+}
+
+#else
+
+#error no main() for platform
+
+#endif
diff --git a/cmd/synergys/synergys.ico b/cmd/synergys/synergys.ico
index 89f965f4..fc2e4146 100644
Binary files a/cmd/synergys/synergys.ico and b/cmd/synergys/synergys.ico differ
diff --git a/cmd/synergys/synergys.rc b/cmd/synergys/synergys.rc
index d56a4313..860d6f54 100644
--- a/cmd/synergys/synergys.rc
+++ b/cmd/synergys/synergys.rc
@@ -1,146 +1,134 @@
-//Microsoft Developer Studio generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include
-#if !defined(IDC_STATIC)
-#define IDC_STATIC (-1)
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE DISCARDABLE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE DISCARDABLE
-BEGIN
- "#include \r\n"
- "\0"
-END
-
-3 TEXTINCLUDE DISCARDABLE
-BEGIN
- "\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-IDI_SYNERGY ICON DISCARDABLE "synergys.ico"
-IDI_TASKBAR_NOT_RUNNING ICON DISCARDABLE "tb_idle.ico"
-IDI_TASKBAR_NOT_WORKING ICON DISCARDABLE "tb_error.ico"
-IDI_TASKBAR_NOT_CONNECTED ICON DISCARDABLE "tb_wait.ico"
-IDI_TASKBAR_CONNECTED ICON DISCARDABLE "tb_run.ico"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Menu
-//
-
-IDR_TASKBAR MENU DISCARDABLE
-BEGIN
- POPUP "Synergy"
- BEGIN
- MENUITEM "Show Status", IDC_TASKBAR_STATUS
- MENUITEM "Show Log", IDC_TASKBAR_SHOW_LOG
- MENUITEM "Copy Log To Clipboard", IDC_TASKBAR_LOG
- POPUP "Set Log Level"
- BEGIN
- MENUITEM "Error", IDC_TASKBAR_LOG_LEVEL_ERROR
-
- MENUITEM "Warning", IDC_TASKBAR_LOG_LEVEL_WARNING
-
- MENUITEM "Note", IDC_TASKBAR_LOG_LEVEL_NOTE
-
- MENUITEM "Info", IDC_TASKBAR_LOG_LEVEL_INFO
-
- MENUITEM "Debug", IDC_TASKBAR_LOG_LEVEL_DEBUG
-
- MENUITEM "Debug1", IDC_TASKBAR_LOG_LEVEL_DEBUG1
-
- MENUITEM "Debug2", IDC_TASKBAR_LOG_LEVEL_DEBUG2
-
- END
- MENUITEM "Reload Configuration", IDC_RELOAD_CONFIG
- MENUITEM "Force Reconnect", IDC_FORCE_RECONNECT
- MENUITEM SEPARATOR
- MENUITEM "Quit", IDC_TASKBAR_QUIT
- END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_TASKBAR_STATUS DIALOG DISCARDABLE 0, 0, 145, 60
-STYLE DS_MODALFRAME | WS_POPUP
-FONT 8, "MS Sans Serif"
-BEGIN
- EDITTEXT IDC_TASKBAR_STATUS_STATUS,3,3,139,12,ES_AUTOHSCROLL |
- ES_READONLY | NOT WS_BORDER
- LISTBOX IDC_TASKBAR_STATUS_CLIENTS,3,17,139,40,NOT LBS_NOTIFY |
- LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_NOSEL | WS_VSCROLL |
- WS_TABSTOP
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE DISCARDABLE
-BEGIN
- IDS_FAILED "Synergy is about to quit with errors or warnings. Please check the log then click OK."
- IDS_INIT_FAILED "Synergy failed to initialize: %{1}"
- IDS_UNCAUGHT_EXCEPTION "Uncaught exception: %{1}"
-END
-
-#endif // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include \r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_SYNERGY ICON "synergys.ico"
+IDI_TASKBAR_NOT_RUNNING ICON "tb_idle.ico"
+IDI_TASKBAR_NOT_WORKING ICON "tb_error.ico"
+IDI_TASKBAR_NOT_CONNECTED ICON "tb_wait.ico"
+IDI_TASKBAR_CONNECTED ICON "tb_run.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDR_TASKBAR MENU
+BEGIN
+ POPUP "Synergy"
+ BEGIN
+ MENUITEM "Show Status", IDC_TASKBAR_STATUS
+ MENUITEM "Show Log", IDC_TASKBAR_SHOW_LOG
+ MENUITEM "Copy Log To Clipboard", IDC_TASKBAR_LOG
+ POPUP "Set Log Level"
+ BEGIN
+ MENUITEM "Error", IDC_TASKBAR_LOG_LEVEL_ERROR
+ MENUITEM "Warning", IDC_TASKBAR_LOG_LEVEL_WARNING
+ MENUITEM "Note", IDC_TASKBAR_LOG_LEVEL_NOTE
+ MENUITEM "Info", IDC_TASKBAR_LOG_LEVEL_INFO
+ MENUITEM "Debug", IDC_TASKBAR_LOG_LEVEL_DEBUG
+ MENUITEM "Debug1", IDC_TASKBAR_LOG_LEVEL_DEBUG1
+ MENUITEM "Debug2", IDC_TASKBAR_LOG_LEVEL_DEBUG2
+ END
+ MENUITEM "Reload Configuration", IDC_RELOAD_CONFIG
+ MENUITEM "Force Reconnect", IDC_FORCE_RECONNECT
+ MENUITEM "Reset Server", ID_SYNERGY_RESETSERVER
+ MENUITEM SEPARATOR
+ MENUITEM "Quit", IDC_TASKBAR_QUIT
+ END
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_TASKBAR_STATUS DIALOG 0, 0, 145, 60
+STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP
+FONT 8, "MS Sans Serif"
+BEGIN
+ EDITTEXT IDC_TASKBAR_STATUS_STATUS,3,3,139,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
+ LISTBOX IDC_TASKBAR_STATUS_CLIENTS,3,17,139,40,NOT LBS_NOTIFY | LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_NOSEL | WS_VSCROLL | WS_TABSTOP
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE
+BEGIN
+ IDS_FAILED "Synergy is about to quit with errors or warnings. Please check the log then click OK."
+ IDS_INIT_FAILED "Synergy failed to initialize: %{1}"
+ IDS_UNCAUGHT_EXCEPTION "Uncaught exception: %{1}"
+END
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/config/config.guess b/config/config.guess
deleted file mode 100644
index 6ead80a0..00000000
--- a/config/config.guess
+++ /dev/null
@@ -1,1327 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-# Free Software Foundation, Inc.
-
-timestamp='2001-08-21'
-
-# This file 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.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Written by Per Bothner .
-# Please send patches to .
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub. If it succeeds, it prints the system name on stdout, and
-# exits with 0. Otherwise, it exits with 1.
-#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
- -h, --help print this help, then exit
- -t, --time-stamp print date of last modification, then exit
- -v, --version print version number, then exit
-
-Report bugs and patches to ."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit 0 ;;
- --version | -v )
- echo "$version" ; exit 0 ;;
- --help | --h* | -h )
- echo "$usage"; exit 0 ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help" >&2
- exit 1 ;;
- * )
- break ;;
- esac
-done
-
-if test $# != 0; then
- echo "$me: too many arguments$help" >&2
- exit 1
-fi
-
-
-dummy=dummy-$$
-trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
-
-# CC_FOR_BUILD -- compiler used by this script.
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int dummy(){}" > $dummy.c ;
- for c in cc gcc c89 ; do
- ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ;
- if test $? = 0 ; then
- CC_FOR_BUILD="$c"; break ;
- fi ;
- done ;
- rm -f $dummy.c $dummy.o $dummy.rel ;
- if test x"$CC_FOR_BUILD" = x ; then
- CC_FOR_BUILD=no_compiler_found ;
- fi
- ;;
- ,,*) CC_FOR_BUILD=$CC ;;
- ,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
- PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-case "${UNAME_MACHINE}" in
- i?86)
- test -z "$VENDOR" && VENDOR=pc
- ;;
- *)
- test -z "$VENDOR" && VENDOR=unknown
- ;;
-esac
-test -f /etc/SuSE-release && VENDOR=suse
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- *:NetBSD:*:*)
- # Netbsd (nbsd) targets should (where applicable) match one or
- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
- # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
- # switched to ELF, *-*-netbsd* would select the old
- # object file format. This provides both forward
- # compatibility and a consistent mechanism for selecting the
- # object file format.
- # Determine the machine/vendor (is the vendor relevant).
- case "${UNAME_MACHINE}" in
- amiga) machine=m68k-unknown ;;
- arm32) machine=arm-unknown ;;
- atari*) machine=m68k-atari ;;
- sun3*) machine=m68k-sun ;;
- mac68k) machine=m68k-apple ;;
- macppc) machine=powerpc-apple ;;
- hp3[0-9][05]) machine=m68k-hp ;;
- ibmrt|romp-ibm) machine=romp-ibm ;;
- *) machine=${UNAME_MACHINE}-unknown ;;
- esac
- # The Operating System including object format, if it has switched
- # to ELF recently, or will in the future.
- case "${UNAME_MACHINE}" in
- i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k)
- eval $set_cc_for_build
- if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep __ELF__ >/dev/null
- then
- # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
- # Return netbsd for either. FIX?
- os=netbsd
- else
- os=netbsdelf
- fi
- ;;
- *)
- os=netbsd
- ;;
- esac
- # The OS release
- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
- # contains redundant information, the shorter form:
- # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}"
- exit 0 ;;
- alpha:OSF1:*:*)
- if test $UNAME_RELEASE = "V4.0"; then
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- fi
- # A Vn.n version is a released version.
- # A Tn.n version is a released field test version.
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- cat <$dummy.s
- .data
-\$Lformat:
- .byte 37,100,45,37,120,10,0 # "%d-%x\n"
-
- .text
- .globl main
- .align 4
- .ent main
-main:
- .frame \$30,16,\$26,0
- ldgp \$29,0(\$27)
- .prologue 1
- .long 0x47e03d80 # implver \$0
- lda \$2,-1
- .long 0x47e20c21 # amask \$2,\$1
- lda \$16,\$Lformat
- mov \$0,\$17
- not \$1,\$18
- jsr \$26,printf
- ldgp \$29,0(\$26)
- mov 0,\$16
- jsr \$26,exit
- .end main
-EOF
- eval $set_cc_for_build
- $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
- if test "$?" = 0 ; then
- case `./$dummy` in
- 0-0)
- UNAME_MACHINE="alpha"
- ;;
- 1-0)
- UNAME_MACHINE="alphaev5"
- ;;
- 1-1)
- UNAME_MACHINE="alphaev56"
- ;;
- 1-101)
- UNAME_MACHINE="alphapca56"
- ;;
- 2-303)
- UNAME_MACHINE="alphaev6"
- ;;
- 2-307)
- UNAME_MACHINE="alphaev67"
- ;;
- 2-1307)
- UNAME_MACHINE="alphaev68"
- ;;
- esac
- fi
- rm -f $dummy.s $dummy
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit 0 ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit 0 ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit 0 ;;
- Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit 0;;
- amiga:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- *:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
- exit 0 ;;
- arc64:OpenBSD:*:*)
- echo mips64el-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- arc:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- hkmips:OpenBSD:*:*)
- echo mips-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- pmax:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- sgi:OpenBSD:*:*)
- echo mips-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- wgrisc:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- *:OS/390:*:*)
- echo i370-ibm-openedition
- exit 0 ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit 0;;
- SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit 0;;
- Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
- # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit 0 ;;
- NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit 0 ;;
- sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- i86pc:SunOS:5.*:*)
- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
- Series*|S4*)
- UNAME_RELEASE=`uname -v`
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit 0 ;;
- sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit 0 ;;
- sun*:*:4.2BSD:*)
- UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
- case "`/bin/arch`" in
- sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
- ;;
- sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
- ;;
- esac
- exit 0 ;;
- aushp:SunOS:*:*)
- echo sparc-auspex-sunos${UNAME_RELEASE}
- exit 0 ;;
- sparc*:NetBSD:*)
- echo `uname -p`-unknown-netbsd${UNAME_RELEASE}
- exit 0 ;;
- atari*:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- # The situation for MiNT is a little confusing. The machine name
- # can be virtually everything (everything which is not
- # "atarist" or "atariste" at least should have a processor
- # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
- # to the lowercase version "mint" (or "freemint"). Finally
- # the system name "TOS" denotes a system which is actually not
- # MiNT. But MiNT is downward compatible to TOS, so this should
- # be no problem.
- atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit 0 ;;
- hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit 0 ;;
- *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit 0 ;;
- sun3*:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mac68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme88k:OpenBSD:*:*)
- echo m88k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
- exit 0 ;;
- RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit 0 ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- 2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix${UNAME_RELEASE}
- exit 0 ;;
- mips:*:*:UMIPS | mips:*:*:RISCos)
- sed 's/^ //' << EOF >$dummy.c
-#ifdef __cplusplus
-#include /* for printf() prototype */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
- #if defined (host_mips) && defined (MIPSEB)
- #if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
- #endif
- #endif
- exit (-1);
- }
-EOF
- eval $set_cc_for_build
- $CC_FOR_BUILD $dummy.c -o $dummy \
- && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
- && rm -f $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- echo mips-mips-riscos${UNAME_RELEASE}
- exit 0 ;;
- Motorola:PowerMAX_OS:*:*)
- echo powerpc-motorola-powermax
- exit 0 ;;
- Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit 0 ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit 0 ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit 0 ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit 0 ;;
- AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
- then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
- then
- echo m88k-dg-dgux${UNAME_RELEASE}
- else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
- fi
- else
- echo i586-dg-dgux${UNAME_RELEASE}
- fi
- exit 0 ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit 0 ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit 0 ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit 0 ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit 0 ;;
- *:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit 0 ;;
- ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
- i*86:AIX:*:*)
- echo i386-ibm-aix
- exit 0 ;;
- ia64:AIX:*:*)
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
- exit 0 ;;
- *:AIX:2:3)
- if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- sed 's/^ //' << EOF >$dummy.c
- #include
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
-EOF
- eval $set_cc_for_build
- $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- echo rs6000-ibm-aix3.2.5
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit 0 ;;
- *:AIX:*:[45])
- IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
- if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
- IBM_ARCH=rs6000
- else
- IBM_ARCH=powerpc
- fi
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit 0 ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit 0 ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit 0 ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit 0 ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit 0 ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit 0 ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit 0 ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit 0 ;;
- 9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
- 9000/[678][0-9][0-9])
- case "${HPUX_REV}" in
- 11.[0-9][0-9])
- if [ -x /usr/bin/getconf ]; then
- sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
- 532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
- 32) HP_ARCH="hppa2.0n" ;;
- 64) HP_ARCH="hppa2.0w" ;;
- esac ;;
- esac
- fi ;;
- esac
- if [ "${HP_ARCH}" = "" ]; then
- sed 's/^ //' << EOF >$dummy.c
-
- #define _HPUX_SOURCE
- #include
- #include
-
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
-
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
-EOF
- eval $set_cc_for_build
- (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
- if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
- rm -f $dummy.c $dummy
- fi ;;
- esac
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit 0 ;;
- ia64:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux${HPUX_REV}
- exit 0 ;;
- 3050*:HI-UX:*:*)
- sed 's/^ //' << EOF >$dummy.c
- #include
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
-EOF
- eval $set_cc_for_build
- $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- echo unknown-hitachi-hiuxwe2
- exit 0 ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit 0 ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit 0 ;;
- *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit 0 ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit 0 ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit 0 ;;
- i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
- else
- echo ${UNAME_MACHINE}-unknown-osf1
- fi
- exit 0 ;;
- parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit 0 ;;
- hppa*:OpenBSD:*:*)
- echo hppa-unknown-openbsd
- exit 0 ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit 0 ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit 0 ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit 0 ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit 0 ;;
- CRAY*X-MP:*:*:*)
- echo xmp-cray-unicos
- exit 0 ;;
- CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*[A-Z]90:*:*:*)
- echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
- | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
- -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
- -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*T3D:*:*:*)
- echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY-2:*:*:*)
- echo cray2-cray-unicos
- exit 0 ;;
- F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit 0 ;;
- hp300:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit 0 ;;
- sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:FreeBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit 0 ;;
- *:OpenBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- exit 0 ;;
- i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- exit 0 ;;
- i*:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
- exit 0 ;;
- i*:PW*:*)
- echo ${UNAME_MACHINE}-pc-pw32
- exit 0 ;;
- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i386-pc-interix
- exit 0 ;;
- i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
- exit 0 ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
- exit 0 ;;
- prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- *:GNU:*:*)
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit 0 ;;
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
- exit 0 ;;
- arm*:Linux:*:*)
- echo ${UNAME_MACHINE}-${VENDOR}-linux
- exit 0 ;;
- ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-${VENDOR}-linux
- exit 0 ;;
- m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-${VENDOR}-linux
- exit 0 ;;
- mips:Linux:*:*)
- case `sed -n '/^byte/s/^.*: \(.*\) endian/\1/p' < /proc/cpuinfo` in
- big) echo mips-${VENDOR}-linux && exit 0 ;;
- little) echo mipsel-${VENDOR}-linux && exit 0 ;;
- esac
- case `sed -n '/^system type/s/^.*: \([^ ]*\).*/\1/p' < /proc/cpuinfo` in
- SGI|sgi) echo mips-${VENDOR}-linux-gnu && exit 0 ;;
- esac
- ;;
- ppc:Linux:*:*|ppc64:Linux:*:*)
- echo powerpc-${VENDOR}-linux
- exit 0 ;;
- ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-gnu
- exit 0 ;;
- alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
- EV5) UNAME_MACHINE=alphaev5 ;;
- EV56) UNAME_MACHINE=alphaev56 ;;
- PCA56) UNAME_MACHINE=alphapca56 ;;
- PCA57) UNAME_MACHINE=alphapca56 ;;
- EV6) UNAME_MACHINE=alphaev6 ;;
- EV67) UNAME_MACHINE=alphaev67 ;;
- EV68*) UNAME_MACHINE=alphaev68 ;;
- esac
- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
- echo ${UNAME_MACHINE}-${VENDOR}-linux${LIBC}
- exit 0 ;;
- parisc:Linux:*:* | hppa:Linux:*:*)
- # Look for CPU level
- case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-${VENDOR}-linux ;;
- PA8*) echo hppa2.0-${VENDOR}-linux ;;
- *) echo hppa-${VENDOR}-linux ;;
- esac
- exit 0 ;;
- parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-${VENDOR}-linux
- exit 0 ;;
- s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux
- exit 0 ;;
- sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-${VENDOR}-linux
- exit 0 ;;
- sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-${VENDOR}-linux
- exit 0 ;;
- x86_64:Linux:*:*)
- echo x86_64-${VENDOR}-linux
- exit 0 ;;
- i*86:Linux:*:*)
- # The BFD linker knows what the default object file format is, so
- # first see if it will tell us. cd to the root directory to prevent
- # problems with other programs or directories called `ld' in the path.
- ld_supported_targets=`cd /; ld --help 2>&1 \
- | sed -ne '/supported targets:/!d
- s/[ ][ ]*/ /g
- s/.*supported targets: *//
- s/ .*//
- p'`
- case "$ld_supported_targets" in
- elf32-i386)
- TENTATIVE="${UNAME_MACHINE}-${VENDOR}-linux"
- ;;
- a.out-i386-linux)
- echo "${UNAME_MACHINE}-${VENDOR}-linuxaout"
- exit 0 ;;
- coff-i386)
- echo "${UNAME_MACHINE}-${VENDOR}-linuxcoff"
- exit 0 ;;
- "")
- # Either a pre-BFD a.out linker (linuxoldld) or
- # one that does not give us useful --help.
- echo "${UNAME_MACHINE}-${VENDOR}-linuxoldld"
- exit 0 ;;
- esac
- # Determine whether the default compiler is a.out or elf
- cat >$dummy.c <
-#ifdef __cplusplus
-#include /* for printf() prototype */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
-#ifdef __ELF__
-# ifdef __GLIBC__
-# if __GLIBC__ >= 2
- printf ("%s-${VENDOR}-linux\n", argv[1]);
-# else
- printf ("%s-${VENDOR}-linuxlibc1\n", argv[1]);
-# endif
-# else
- printf ("%s-${VENDOR}-linuxlibc1\n", argv[1]);
-# endif
-#else
- printf ("%s-${VENDOR}-linuxaout\n", argv[1]);
-#endif
- return 0;
-}
-EOF
- eval $set_cc_for_build
- $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
- ;;
- i*86:DYNIX/ptx:4*:*)
- # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
- # earlier versions are messed up and put the nodename in both
- # sysname and nodename.
- echo i386-sequent-sysv4
- exit 0 ;;
- i*86:UNIX_SV:4.2MP:2.*)
- # Unixware is an offshoot of SVR4, but it has its own version
- # number series starting with 2...
- # I am not positive that other SVR4 systems won't match this,
- # I just have to hope. -- rms.
- # Use sysv4.2uw... so that sysv4* matches it.
- echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
- exit 0 ;;
- i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
- UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
- if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
- else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
- fi
- exit 0 ;;
- i*86:*:5:[78]*)
- case `/bin/uname -X | grep "^Machine"` in
- *486*) UNAME_MACHINE=i486 ;;
- *Pentium) UNAME_MACHINE=i586 ;;
- *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
- esac
- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
- exit 0 ;;
- i*86:*:3.2:*)
- if test -f /usr/options/cb.name; then
- UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then
- UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
- (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
- (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
- && UNAME_MACHINE=i586
- (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
- && UNAME_MACHINE=i686
- (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
- && UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
- else
- echo ${UNAME_MACHINE}-pc-sysv32
- fi
- exit 0 ;;
- i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit 0 ;;
- pc:*:*:*)
- # Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i386.
- echo i386-pc-msdosdjgpp
- exit 0 ;;
- Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit 0 ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit 0 ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
- fi
- exit 0 ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-sysv
- exit 0 ;;
- M68*:*:R3V[567]*:*)
- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
- OS_REL=''
- test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4.3${OS_REL} && exit 0
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
- 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4 && exit 0 ;;
- m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit 0 ;;
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
- echo powerpc-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
- exit 0 ;;
- RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit 0 ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit 0 ;;
- *:SINIX-*:*:*)
- if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
- else
- echo ns32k-sni-sysv
- fi
- exit 0 ;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says
- echo i586-unisys-sysv4
- exit 0 ;;
- *:UNIX_System_V:4*:FTX*)
- # From Gerald Hewes .
- # How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit 0 ;;
- *:*:*:FTX*)
- # From seanf@swdc.stratus.com.
- echo i860-stratus-sysv4
- exit 0 ;;
- *:VOS:*:*)
- # From Paul.Green@stratus.com.
- echo hppa1.1-stratus-vos
- exit 0 ;;
- mc68*:A/UX:*:*)
- echo m68k-apple-aux${UNAME_RELEASE}
- exit 0 ;;
- news*:NEWS-OS:6*:*)
- echo mips-sony-newsos6
- exit 0 ;;
- R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
- else
- echo mips-unknown-sysv${UNAME_RELEASE}
- fi
- exit 0 ;;
- BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit 0 ;;
- BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit 0 ;;
- BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit 0 ;;
- SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
- exit 0 ;;
- SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
- exit 0 ;;
- Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
- *:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
- *:Darwin:*:*)
- echo `uname -p`-apple-darwin${UNAME_RELEASE}
- exit 0 ;;
- *:procnto*:*:* | *:QNX:[0123456789]*:*)
- if test "${UNAME_MACHINE}" = "x86pc"; then
- UNAME_MACHINE=pc
- fi
- echo `uname -p`-${UNAME_MACHINE}-nto-qnx
- exit 0 ;;
- *:QNX:*:4*)
- echo i386-pc-qnx
- exit 0 ;;
- NSR-[KW]:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk${UNAME_RELEASE}
- exit 0 ;;
- *:NonStop-UX:*:*)
- echo mips-compaq-nonstopux
- exit 0 ;;
- BS2000:POSIX*:*:*)
- echo bs2000-siemens-sysv
- exit 0 ;;
- DS/*:UNIX_System_V:*:*)
- echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
- exit 0 ;;
- *:Plan9:*:*)
- # "uname -m" is not consistent, so use $cputype instead. 386
- # is converted to i386 for consistency with other x86
- # operating systems.
- if test "$cputype" = "386"; then
- UNAME_MACHINE=i386
- else
- UNAME_MACHINE="$cputype"
- fi
- echo ${UNAME_MACHINE}-unknown-plan9
- exit 0 ;;
- i*86:OS/2:*:*)
- # If we were able to find `uname', then EMX Unix compatibility
- # is probably installed.
- echo ${UNAME_MACHINE}-pc-os2-emx
- exit 0 ;;
- *:TOPS-10:*:*)
- echo pdp10-unknown-tops10
- exit 0 ;;
- *:TENEX:*:*)
- echo pdp10-unknown-tenex
- exit 0 ;;
- KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
- echo pdp10-dec-tops20
- exit 0 ;;
- XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
- echo pdp10-xkl-tops20
- exit 0 ;;
- *:TOPS-20:*:*)
- echo pdp10-unknown-tops20
- exit 0 ;;
- *:ITS:*:*)
- echo pdp10-unknown-its
- exit 0 ;;
- i*86:XTS-300:*:STOP)
- echo ${UNAME_MACHINE}-unknown-stop
- exit 0 ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-cat >$dummy.c <
-# include
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-# include
-# if defined (BSD)
-# if BSD == 43
- printf ("vax-dec-bsd4.3\n"); exit (0);
-# else
-# if BSD == 199006
- printf ("vax-dec-bsd4.3reno\n"); exit (0);
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# endif
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# else
- printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-eval $set_cc_for_build
-$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0
-rm -f $dummy.c $dummy
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit 0 ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- c34*)
- echo c34-convex-bsd
- exit 0 ;;
- c38*)
- echo c38-convex-bsd
- exit 0 ;;
- c4*)
- echo c4-convex-bsd
- exit 0 ;;
- esac
-fi
-
-cat >&2 < in order to provide the needed
-information to handle your system.
-
-config.guess timestamp = $timestamp
-
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo = `(hostinfo) 2>/dev/null`
-/bin/universe = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/config/config.sub b/config/config.sub
deleted file mode 100644
index 83f4b015..00000000
--- a/config/config.sub
+++ /dev/null
@@ -1,1410 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-# Free Software Foundation, Inc.
-
-timestamp='2001-08-13'
-
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file 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.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Please send patches to .
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
- $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
- -h, --help print this help, then exit
- -t, --time-stamp print date of last modification, then exit
- -v, --version print version number, then exit
-
-Report bugs and patches to ."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit 0 ;;
- --version | -v )
- echo "$version" ; exit 0 ;;
- --help | --h* | -h )
- echo "$usage"; exit 0 ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help"
- exit 1 ;;
-
- *local*)
- # First pass through any local machine types.
- echo $1
- exit 0;;
-
- * )
- break ;;
- esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
- exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
- exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
- nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
- else os=; fi
- ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis)
- os=
- basic_machine=$1
- ;;
- -sim | -cisco | -oki | -wec | -winbond)
- os=
- basic_machine=$1
- ;;
- -scout)
- ;;
- -wrs)
- os=-vxworks
- basic_machine=$1
- ;;
- -chorusos*)
- os=-chorusos
- basic_machine=$1
- ;;
- -chorusrdb)
- os=-chorusrdb
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco5)
- os=-sco3.2v5
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -udk*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -lynx*)
- os=-lynxos
- ;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
- ;;
- -windowsnt*)
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
- ;;
- -psos*)
- os=-psos
- ;;
- -mint | -mint[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
- # Recognize the basic CPU types without company name.
- # Some are omitted here because they have special meanings below.
- 1750a | 580 \
- | a29k \
- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
- | c4x | clipper \
- | d10v | d30v | dsp16xx \
- | fr30 \
- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
- | i370 | i860 | i960 | ia64 \
- | m32r | m68000 | m68k | m88k | mcore \
- | mips16 | mips64 | mips64el | mips64orion | mips64orionel \
- | mips64vr4100 | mips64vr4100el | mips64vr4300 \
- | mips64vr4300el | mips64vr5000 | mips64vr5000el \
- | mipsbe | mipsel | mipsle | mipstx39 | mipstx39el \
- | mn10200 | mn10300 \
- | ns16k | ns32k \
- | openrisc \
- | pdp10 | pdp11 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
- | pyramid \
- | s390 | s390x \
- | sh | sh[34] | sh[34]eb | shbe | shle \
- | sparc | sparc64 | sparclet | sparclite | sparcv9 | sparcv9b \
- | strongarm \
- | tahoe | thumb | tic80 | tron \
- | v850 \
- | we32k \
- | x86 | xscale \
- | z8k)
- basic_machine=$basic_machine-unknown
- ;;
- m6811 | m68hc11 | m6812 | m68hc12)
- # Motorola 68HC11/12.
- basic_machine=$basic_machine-unknown
- os=-none
- ;;
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
- ;;
-
- # We use `pc' rather than `unknown'
- # because (1) that's what they normally are, and
- # (2) the word "unknown" tends to confuse beginning users.
- i*86 | x86_64)
- basic_machine=$basic_machine-pc
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
- # Recognize the basic CPU types with company name.
- 580-* \
- | a29k-* \
- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
- | alphapca5[67]-* | arc-* \
- | arm-* | armbe-* | armle-* | armv*-* \
- | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c54x-* \
- | clipper-* | cray2-* | cydra-* \
- | d10v-* | d30v-* \
- | elxsi-* \
- | f30[01]-* | f700-* | fr30-* | fx80-* \
- | h8300-* | h8500-* \
- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
- | i*86-* | i860-* | i960-* | ia64-* \
- | m32r-* \
- | m68000-* | m680[01234]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | mcore-* \
- | mips-* | mips16-* | mips64-* | mips64el-* | mips64orion-* \
- | mips64orionel-* | mips64vr4100-* | mips64vr4100el-* \
- | mips64vr4300-* | mips64vr4300el-* | mipsbe-* | mipsel-* \
- | mipsle-* | mipstx39-* | mipstx39el-* \
- | none-* | np1-* | ns16k-* | ns32k-* \
- | orion-* \
- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
- | pyramid-* \
- | romp-* | rs6000-* \
- | s390-* | s390x-* \
- | sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* \
- | sparc-* | sparc64-* | sparc86x-* | sparclite-* \
- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* \
- | t3e-* | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
- | v850-* | vax-* \
- | we32k-* \
- | x86-* | x86_64-* | xmp-* | xps100-* | xscale-* \
- | ymp-* \
- | z8k-*)
- ;;
- # Recognize the various machine names and aliases which stand
- # for a CPU type and a company and sometimes even an OS.
- 386bsd)
- basic_machine=i386-unknown
- os=-bsd
- ;;
- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
- ;;
- 3b*)
- basic_machine=we32k-att
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=-udi
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=-scout
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-unknown
- ;;
- amigaos | amigados)
- basic_machine=m68k-unknown
- os=-amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-unknown
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=-bsd
- ;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=-bsd
- ;;
- cray | ymp)
- basic_machine=ymp-cray
- os=-unicos
- ;;
- cray2)
- basic_machine=cray2-cray
- os=-unicos
- ;;
- [cjt]90)
- basic_machine=${basic_machine}-cray
- os=-unicos
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- cris | cris-* | etrax*)
- basic_machine=cris-axis
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
- ;;
- delta | 3300 | motorola-3300 | motorola-delta \
- | 3300-motorola | delta-motorola)
- basic_machine=m68k-motorola
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
- ;;
- dpx2* | dpx2*-bull)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
- ;;
- encore | umax | mmax)
- basic_machine=ns32k-encore
- ;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=-ose
- ;;
- fx2800)
- basic_machine=i860-alliant
- ;;
- genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- go32)
- basic_machine=i386-pc
- os=-go32
- ;;
- h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=-xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
- ;;
- hp3k9[0-9][0-9] | hp9[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
- ;;
- hp9k3[2-9][0-9])
- basic_machine=m68k-hp
- ;;
- hp9k6[0-9][0-9] | hp6[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k7[0-79][0-9] | hp7[0-79][0-9])
- basic_machine=hppa1.1-hp
- ;;
- hp9k78[0-9] | hp78[0-9])
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][13679] | hp8[0-9][13679])
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hppa-next)
- os=-nextstep3
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=-osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=-proelf
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
- ;;
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
- i*86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
- ;;
- i*86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv4
- ;;
- i*86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv
- ;;
- i*86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-solaris2
- ;;
- i386mach)
- basic_machine=i386-mach
- os=-mach
- ;;
- i386-vsta | vsta)
- basic_machine=i386-unknown
- os=-vsta
- ;;
- iris | iris4d)
- basic_machine=mips-sgi
- case $os in
- -irix*)
- ;;
- *)
- os=-irix4
- ;;
- esac
- ;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- m88k-omron*)
- basic_machine=m88k-omron
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- mingw32)
- basic_machine=i386-pc
- os=-mingw32
- ;;
- miniframe)
- basic_machine=m68000-convergent
- ;;
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
- mipsel*-linux*)
- basic_machine=mipsel-unknown
- ;;
- mips*-linux*)
- basic_machine=mips-unknown
- ;;
- mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
- ;;
- mips3*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
- ;;
- mmix*)
- basic_machine=mmix-knuth
- os=-mmixware
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- msdos)
- basic_machine=i386-pc
- os=-msdos
- ;;
- mvs)
- basic_machine=i370-ibm
- os=-mvs
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- netbsd386)
- basic_machine=i386-unknown
- os=-netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- os=-linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
- ;;
- news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
- ;;
- necv70)
- basic_machine=v70-nec
- os=-sysv
- ;;
- next | m*-next )
- basic_machine=m68k-next
- case $os in
- -nextstep* )
- ;;
- -ns2*)
- os=-nextstep2
- ;;
- *)
- os=-nextstep3
- ;;
- esac
- ;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=-mon960
- ;;
- nonstopux)
- basic_machine=mips-compaq
- os=-nonstopux
- ;;
- np1)
- basic_machine=np1-gould
- ;;
- nsr-tandem)
- basic_machine=nsr-tandem
- ;;
- op50n-* | op60c-*)
- basic_machine=hppa1.1-oki
- os=-proelf
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=-ose
- ;;
- os68k)
- basic_machine=m68k-none
- os=-os68k
- ;;
- pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- pbd)
- basic_machine=sparc-tti
- ;;
- pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
- ;;
- pentium | p5 | k5 | k6 | nexgen)
- basic_machine=i586-pc
- ;;
- pentiumpro | p6 | 6x86 | athlon)
- basic_machine=i686-pc
- ;;
- pentiumii | pentium2)
- basic_machine=i686-pc
- ;;
- pentium-* | p5-* | k5-* | k6-* | nexgen-*)
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumpro-* | p6-* | 6x86-* | athlon-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumii-* | pentium2-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pn)
- basic_machine=pn-gould
- ;;
- power) basic_machine=power-ibm
- ;;
- ppc) basic_machine=powerpc-unknown
- ;;
- ppc64) basic_machine=powerpc-unknown
- ;;
- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppcle | powerpclittle | ppc-le | powerpc-little)
- basic_machine=powerpcle-unknown
- ;;
- ppcle-* | powerpclittle-*)
- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64) basic_machine=powerpc64-unknown
- ;;
- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64le | powerpc64little | ppc64-le | powerpc64-little)
- basic_machine=powerpc64le-unknown
- ;;
- ppc64le-* | powerpc64little-*)
- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ps2)
- basic_machine=i386-ibm
- ;;
- pw32)
- basic_machine=i586-unknown
- os=-pw32
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- rm[46]00)
- basic_machine=mips-siemens
- ;;
- rtpc | rtpc-*)
- basic_machine=romp-ibm
- ;;
- sa29200)
- basic_machine=a29k-amd
- os=-udi
- ;;
- sequent)
- basic_machine=i386-sequent
- ;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
- ;;
- sparclite-wrs)
- basic_machine=sparclite-wrs
- os=-vxworks
- ;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
- ;;
- spur)
- basic_machine=spur-unknown
- ;;
- st2000)
- basic_machine=m68k-tandem
- ;;
- stratus)
- basic_machine=i860-stratus
- os=-sysv4
- ;;
- sun2)
- basic_machine=m68000-sun
- ;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
- ;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
- ;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
- ;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
- ;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
- ;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
- ;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
- ;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
- ;;
- sun4)
- basic_machine=sparc-sun
- ;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
- ;;
- sv1)
- basic_machine=sv1-cray
- os=-unicos
- ;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
- ;;
- t3e)
- basic_machine=t3e-cray
- os=-unicos
- ;;
- tic54x | c54x*)
- basic_machine=tic54x-unknown
- os=-coff
- ;;
- tx39)
- basic_machine=mipstx39-unknown
- ;;
- tx39el)
- basic_machine=mipstx39el-unknown
- ;;
- tower | tower-32)
- basic_machine=m68k-ncr
- ;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
- ;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
- ;;
- v810 | necv810)
- basic_machine=v810-nec
- os=-none
- ;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
- ;;
- vms)
- basic_machine=vax-dec
- os=-vms
- ;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
- ;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
- ;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
- ;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
- ;;
- w65*)
- basic_machine=w65-wdc
- os=-none
- ;;
- w89k-*)
- basic_machine=hppa1.1-winbond
- os=-proelf
- ;;
- windows32)
- basic_machine=i386-pc
- os=-windows32-msvcrt
- ;;
- xmp)
- basic_machine=xmp-cray
- os=-unicos
- ;;
- xps | xps100)
- basic_machine=xps100-honeywell
- ;;
- z8k-*-coff)
- basic_machine=z8k-unknown
- os=-sim
- ;;
- none)
- basic_machine=none-none
- os=-none
- ;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- w89k)
- basic_machine=hppa1.1-winbond
- ;;
- op50n)
- basic_machine=hppa1.1-oki
- ;;
- op60c)
- basic_machine=hppa1.1-oki
- ;;
- mips)
- case $os in
- linux*)
- basic_machine=mips-unknown
- ;;
- *)
- basic_machine=mips-mips
- ;;
- esac
- ;;
- romp)
- basic_machine=romp-ibm
- ;;
- rs6000)
- basic_machine=rs6000-ibm
- ;;
- vax)
- basic_machine=vax-dec
- ;;
- pdp10)
- # there are many clones, so DEC is not a safe bet
- basic_machine=pdp10-unknown
- ;;
- pdp11)
- basic_machine=pdp11-dec
- ;;
- we32k)
- basic_machine=we32k-att
- ;;
- sh3 | sh4 | sh3eb | sh4eb)
- basic_machine=sh-unknown
- ;;
- sparc | sparcv9 | sparcv9b)
- basic_machine=sparc-sun
- ;;
- cydra)
- basic_machine=cydra-cydrome
- ;;
- orion)
- basic_machine=orion-highlevel
- ;;
- orion105)
- basic_machine=clipper-highlevel
- ;;
- mac | mpw | mac-mpw)
- basic_machine=m68k-apple
- ;;
- pmac | pmac-mpw)
- basic_machine=powerpc-apple
- ;;
- c4x*)
- basic_machine=c4x-none
- os=-coff
- ;;
- *-unknown)
- # Make sure to match an already-canonicalized machine name.
- ;;
- *)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
- ;;
- *-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
- ;;
- *)
- ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
- # -solaris* is a basic system type, with this one exception.
- -solaris1 | -solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
- ;;
- -solaris)
- os=-solaris2
- ;;
- -svr4*)
- os=-sysv4
- ;;
- -unixware*)
- os=-sysv4.2uw
- ;;
- -gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
- ;;
- # First accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST END IN A *, to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* \
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux* | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
- | -os2* | -vos*)
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
- -qnx*)
- case $basic_machine in
- x86-* | i*86-*)
- ;;
- *)
- os=-nto$os
- ;;
- esac
- ;;
- -nto*)
- os=-nto-qnx
- ;;
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
- ;;
- -mac*)
- os=`echo $os | sed -e 's|mac|macos|'`
- ;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
- ;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
- ;;
- -opened*)
- os=-openedition
- ;;
- -wince*)
- os=-wince
- ;;
- -osfrose*)
- os=-osfrose
- ;;
- -osf*)
- os=-osf
- ;;
- -utek*)
- os=-bsd
- ;;
- -dynix*)
- os=-bsd
- ;;
- -acis*)
- os=-aos
- ;;
- -386bsd)
- os=-bsd
- ;;
- -ctix* | -uts*)
- os=-sysv
- ;;
- -ns2 )
- os=-nextstep2
- ;;
- -nsk*)
- os=-nsk
- ;;
- # Preserve the version number of sinix5.
- -sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
- ;;
- -sinix*)
- os=-sysv4
- ;;
- -triton*)
- os=-sysv3
- ;;
- -oss*)
- os=-sysv3
- ;;
- -svr4)
- os=-sysv4
- ;;
- -svr3)
- os=-sysv3
- ;;
- -sysvr4)
- os=-sysv4
- ;;
- # This must come after -sysvr4.
- -sysv*)
- ;;
- -ose*)
- os=-ose
- ;;
- -es1800*)
- os=-ose
- ;;
- -xenix)
- os=-xenix
- ;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- os=-mint
- ;;
- -none)
- ;;
- *)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
- exit 1
- ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system. Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
- *-acorn)
- os=-riscix1.2
- ;;
- arm*-rebel)
- os=-linux
- ;;
- arm*-semi)
- os=-aout
- ;;
- pdp10-*)
- os=-tops20
- ;;
- pdp11-*)
- os=-none
- ;;
- *-dec | vax-*)
- os=-ultrix4.2
- ;;
- m68*-apollo)
- os=-domain
- ;;
- i386-sun)
- os=-sunos4.0.2
- ;;
- m68000-sun)
- os=-sunos3
- # This also exists in the configure program, but was not the
- # default.
- # os=-sunos4
- ;;
- m68*-cisco)
- os=-aout
- ;;
- mips*-cisco)
- os=-elf
- ;;
- mips*-*)
- os=-elf
- ;;
- *-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
- ;;
- sparc-* | *-sun)
- os=-sunos4.1.1
- ;;
- *-be)
- os=-beos
- ;;
- *-ibm)
- os=-aix
- ;;
- *-wec)
- os=-proelf
- ;;
- *-winbond)
- os=-proelf
- ;;
- *-oki)
- os=-proelf
- ;;
- *-hp)
- os=-hpux
- ;;
- *-hitachi)
- os=-hiux
- ;;
- i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
- ;;
- *-cbm)
- os=-amigaos
- ;;
- *-dg)
- os=-dgux
- ;;
- *-dolphin)
- os=-sysv3
- ;;
- m68k-ccur)
- os=-rtu
- ;;
- m88k-omron*)
- os=-luna
- ;;
- *-next )
- os=-nextstep
- ;;
- *-sequent)
- os=-ptx
- ;;
- *-crds)
- os=-unos
- ;;
- *-ns)
- os=-genix
- ;;
- i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
- ;;
- *-gould)
- os=-sysv
- ;;
- *-highlevel)
- os=-bsd
- ;;
- *-encore)
- os=-bsd
- ;;
- *-sgi)
- os=-irix
- ;;
- *-siemens)
- os=-sysv4
- ;;
- *-masscomp)
- os=-rtu
- ;;
- f30[01]-fujitsu | f700-fujitsu)
- os=-uxpv
- ;;
- *-rom68k)
- os=-coff
- ;;
- *-*bug)
- os=-coff
- ;;
- *-apple)
- os=-macos
- ;;
- *-atari*)
- os=-mint
- ;;
- *)
- os=-none
- ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
- case $os in
- -riscix*)
- vendor=acorn
- ;;
- -sunos*)
- vendor=sun
- ;;
- -aix*)
- vendor=ibm
- ;;
- -beos*)
- vendor=be
- ;;
- -hpux*)
- vendor=hp
- ;;
- -mpeix*)
- vendor=hp
- ;;
- -hiux*)
- vendor=hitachi
- ;;
- -unos*)
- vendor=crds
- ;;
- -dgux*)
- vendor=dg
- ;;
- -luna*)
- vendor=omron
- ;;
- -genix*)
- vendor=ns
- ;;
- -mvs* | -opened*)
- vendor=ibm
- ;;
- -ptx*)
- vendor=sequent
- ;;
- -vxsim* | -vxworks*)
- vendor=wrs
- ;;
- -aux*)
- vendor=apple
- ;;
- -hms*)
- vendor=hitachi
- ;;
- -mpw* | -macos*)
- vendor=apple
- ;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- vendor=atari
- ;;
- -vos*)
- vendor=stratus
- ;;
- esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
- ;;
-esac
-
-echo $basic_machine$os
-exit 0
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/config/depcomp b/config/depcomp
deleted file mode 100644
index 65899658..00000000
--- a/config/depcomp
+++ /dev/null
@@ -1,411 +0,0 @@
-#! /bin/sh
-
-# depcomp - compile a program generating dependencies as side-effects
-# Copyright 1999, 2000 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, 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.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Alexandre Oliva .
-
-if test -z "$depmode" || test -z "$source" || test -z "$object"; then
- echo "depcomp: Variables source, object and depmode must be set" 1>&2
- exit 1
-fi
-# `libtool' can also be set to `yes' or `no'.
-
-depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`}
-tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
-
-rm -f "$tmpdepfile"
-
-# Some modes work just like other modes, but use different flags. We
-# parameterize here, but still list the modes in the big case below,
-# to make depend.m4 easier to write. Note that we *cannot* use a case
-# here, because this file can only contain one case statement.
-if test "$depmode" = hp; then
- # HP compiler uses -M and no extra arg.
- gccflag=-M
- depmode=gcc
-fi
-
-if test "$depmode" = dashXmstdout; then
- # This is just like dashmstdout with a different argument.
- dashmflag=-xM
- depmode=dashmstdout
-fi
-
-case "$depmode" in
-gcc3)
-## gcc 3 implements dependency tracking that does exactly what
-## we want. Yay! Note: for some reason libtool 1.4 doesn't like
-## it if -MD -MP comes after the -MF stuff. Hmm.
- "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- mv "$tmpdepfile" "$depfile"
- ;;
-
-gcc)
-## There are various ways to get dependency output from gcc. Here's
-## why we pick this rather obscure method:
-## - Don't want to use -MD because we'd like the dependencies to end
-## up in a subdir. Having to rename by hand is ugly.
-## (We might end up doing this anyway to support other compilers.)
-## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-## -MM, not -M (despite what the docs say).
-## - Using -M directly means running the compiler twice (even worse
-## than renaming).
- if test -z "$gccflag"; then
- gccflag=-MD,
- fi
- "$@" -Wp,"$gccflag$tmpdepfile"
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-## The second -e expression handles DOS-style file names with drive letters.
- sed -e 's/^[^:]*: / /' \
- -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the `deleted header file' problem.
-## The problem is that when a header file which appears in a .P file
-## is deleted, the dependency causes make to die (because there is
-## typically no way to rebuild the header). We avoid this by adding
-## dummy dependencies for each header file. Too bad gcc doesn't do
-## this for us directly.
- tr ' ' '
-' < "$tmpdepfile" |
-## Some versions of gcc put a space before the `:'. On the theory
-## that the space means something, we add a space to the output as
-## well.
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-hp)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-sgi)
- if test "$libtool" = yes; then
- "$@" "-Wp,-MDupdate,$tmpdepfile"
- else
- "$@" -MDupdate "$tmpdepfile"
- fi
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
-
- if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
- echo "$object : \\" > "$depfile"
-
- # Clip off the initial element (the dependent). Don't try to be
- # clever and replace this with sed code, as IRIX sed won't handle
- # lines with more than a fixed number of characters (4096 in
- # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
- # the IRIX cc adds comments like `#:fec' to the end of the
- # dependency line.
- tr ' ' '
-' < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
- tr '
-' ' ' >> $depfile
- echo >> $depfile
-
- # The second pass generates a dummy entry for each header file.
- tr ' ' '
-' < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
- >> $depfile
- else
- # The sourcefile does not contain any dependencies, so just
- # store a dummy comment line, to avoid errors with the Makefile
- # "include basename.Plo" scheme.
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
-
-aix)
- # The C for AIX Compiler uses -M and outputs the dependencies
- # in a .u file. This file always lives in the current directory.
- # Also, the AIX compiler puts `$object:' at the start of each line;
- # $object doesn't have directory information.
- stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
- tmpdepfile="$stripped.u"
- outname="$stripped.o"
- if test "$libtool" = yes; then
- "$@" -Wc,-M
- else
- "$@" -M
- fi
-
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
-
- if test -f "$tmpdepfile"; then
- # Each line is of the form `foo.o: dependent.h'.
- # Do two passes, one to just change these to
- # `$object: dependent.h' and one to simply `dependent.h:'.
- sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
- sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
- else
- # The sourcefile does not contain any dependencies, so just
- # store a dummy comment line, to avoid errors with the Makefile
- # "include basename.Plo" scheme.
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
-
-tru64)
- # The Tru64 AIX compiler uses -MD to generate dependencies as a side
- # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
- # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
- # dependencies in `foo.d' instead, so we check for that too.
- # Subdirectories are respected.
-
- tmpdepfile1="$object.d"
- tmpdepfile2=`echo "$object" | sed -e 's/.o$/.d/'`
- if test "$libtool" = yes; then
- "$@" -Wc,-MD
- else
- "$@" -MD
- fi
-
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile1" "$tmpdepfile2"
- exit $stat
- fi
-
- if test -f "$tmpdepfile1"; then
- tmpdepfile="$tmpdepfile1"
- else
- tmpdepfile="$tmpdepfile2"
- fi
- if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- # That's a space and a tab in the [].
- sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
- else
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
-
-#nosideeffect)
- # This comment above is used by automake to tell side-effect
- # dependency tracking mechanisms from slower ones.
-
-dashmstdout)
- # Important note: in order to support this mode, a compiler *must*
- # always write the proprocessed file to stdout, regardless of -o,
- # because we must use -o when running libtool.
- test -z "$dashmflag" && dashmflag=-M
- ( IFS=" "
- case " $* " in
- *" --mode=compile "*) # this is libtool, let us make it quiet
- for arg
- do # cycle over the arguments
- case "$arg" in
- "--mode=compile")
- # insert --quiet before "--mode=compile"
- set fnord "$@" --quiet
- shift # fnord
- ;;
- esac
- set fnord "$@" "$arg"
- shift # fnord
- shift # "$arg"
- done
- ;;
- esac
- "$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
- ) &
- proc=$!
- "$@"
- stat=$?
- wait "$proc"
- if test "$stat" != 0; then exit $stat; fi
- rm -f "$depfile"
- cat < "$tmpdepfile" > "$depfile"
- tr ' ' '
-' < "$tmpdepfile" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-dashXmstdout)
- # This case only exists to satisfy depend.m4. It is never actually
- # run, as this mode is specially recognized in the preamble.
- exit 1
- ;;
-
-makedepend)
- # X makedepend
- (
- shift
- cleared=no
- for arg in "$@"; do
- case $cleared in no)
- set ""; shift
- cleared=yes
- esac
- case "$arg" in
- -D*|-I*)
- set fnord "$@" "$arg"; shift;;
- -*)
- ;;
- *)
- set fnord "$@" "$arg"; shift;;
- esac
- done
- obj_suffix="`echo $object | sed 's/^.*\././'`"
- touch "$tmpdepfile"
- ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@"
- ) &
- proc=$!
- "$@"
- stat=$?
- wait "$proc"
- if test "$stat" != 0; then exit $stat; fi
- rm -f "$depfile"
- cat < "$tmpdepfile" > "$depfile"
- tail +3 "$tmpdepfile" | tr ' ' '
-' | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile" "$tmpdepfile".bak
- ;;
-
-cpp)
- # Important note: in order to support this mode, a compiler *must*
- # always write the proprocessed file to stdout, regardless of -o,
- # because we must use -o when running libtool.
- ( IFS=" "
- case " $* " in
- *" --mode=compile "*)
- for arg
- do # cycle over the arguments
- case $arg in
- "--mode=compile")
- # insert --quiet before "--mode=compile"
- set fnord "$@" --quiet
- shift # fnord
- ;;
- esac
- set fnord "$@" "$arg"
- shift # fnord
- shift # "$arg"
- done
- ;;
- esac
- "$@" -E |
- sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
- sed '$ s: \\$::' > "$tmpdepfile"
- ) &
- proc=$!
- "$@"
- stat=$?
- wait "$proc"
- if test "$stat" != 0; then exit $stat; fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- cat < "$tmpdepfile" >> "$depfile"
- sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-msvisualcpp)
- # Important note: in order to support this mode, a compiler *must*
- # always write the proprocessed file to stdout, regardless of -o,
- # because we must use -o when running libtool.
- ( IFS=" "
- case " $* " in
- *" --mode=compile "*)
- for arg
- do # cycle over the arguments
- case $arg in
- "--mode=compile")
- # insert --quiet before "--mode=compile"
- set fnord "$@" --quiet
- shift # fnord
- ;;
- esac
- set fnord "$@" "$arg"
- shift # fnord
- shift # "$arg"
- done
- ;;
- esac
- "$@" -E |
- sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
- ) &
- proc=$!
- "$@"
- stat=$?
- wait "$proc"
- if test "$stat" != 0; then exit $stat; fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
- echo " " >> "$depfile"
- . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-none)
- exec "$@"
- ;;
-
-*)
- echo "Unknown depmode $depmode" 1>&2
- exit 1
- ;;
-esac
-
-exit 0
diff --git a/config/install-sh b/config/install-sh
deleted file mode 100644
index e9de2384..00000000
--- a/config/install-sh
+++ /dev/null
@@ -1,251 +0,0 @@
-#!/bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission. M.I.T. makes no representations about the
-# suitability of this software for any purpose. It is provided "as is"
-# without express or implied warranty.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch. It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd="$cpprog"
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd="$stripprog"
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "install: no input file specified"
- exit 1
-else
- true
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d $dst ]; then
- instcmd=:
- chmodcmd=""
- else
- instcmd=mkdir
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f $src -o -d $src ]
- then
- true
- else
- echo "install: $src does not exist"
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "install: no destination specified"
- exit 1
- else
- true
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d $dst ]
- then
- dst="$dst"/`basename $src`
- else
- true
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp="${pathcomp}${1}"
- shift
-
- if [ ! -d "${pathcomp}" ] ;
- then
- $mkdirprog "${pathcomp}"
- else
- true
- fi
-
- pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd $dst &&
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename $dst`
- else
- dstfile=`basename $dst $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename $dst`
- else
- true
- fi
-
-# Make a temp file name in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd $src $dsttmp &&
-
- trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
- $doit $rmcmd -f $dstdir/$dstfile &&
- $doit $mvcmd $dsttmp $dstdir/$dstfile
-
-fi &&
-
-
-exit 0
diff --git a/config/missing b/config/missing
deleted file mode 100644
index 0a7fb5a2..00000000
--- a/config/missing
+++ /dev/null
@@ -1,283 +0,0 @@
-#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
-# Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard , 1996.
-
-# 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, 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.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-if test $# -eq 0; then
- echo 1>&2 "Try \`$0 --help' for more information"
- exit 1
-fi
-
-run=:
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
- configure_ac=configure.ac
-else
- configure_ac=configure.in
-fi
-
-case "$1" in
---run)
- # Try to run requested program, and just exit if it succeeds.
- run=
- shift
- "$@" && exit 0
- ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case "$1" in
-
- -h|--h|--he|--hel|--help)
- echo "\
-$0 [OPTION]... PROGRAM [ARGUMENT]...
-
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
-
-Options:
- -h, --help display this help and exit
- -v, --version output version information and exit
- --run try to run the given command, and emulate it if it fails
-
-Supported PROGRAM values:
- aclocal touch file \`aclocal.m4'
- autoconf touch file \`configure'
- autoheader touch file \`config.h.in'
- automake touch all \`Makefile.in' files
- bison create \`y.tab.[ch]', if possible, from existing .[ch]
- flex create \`lex.yy.c', if possible, from existing .c
- help2man touch the output file
- lex create \`lex.yy.c', if possible, from existing .c
- makeinfo touch the output file
- tar try tar, gnutar, gtar, then tar without non-portable flags
- yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
- ;;
-
- -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
- echo "missing 0.3 - GNU automake"
- ;;
-
- -*)
- echo 1>&2 "$0: Unknown \`$1' option"
- echo 1>&2 "Try \`$0 --help' for more information"
- exit 1
- ;;
-
- aclocal)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`acinclude.m4' or \`${configure_ac}'. You might want
- to install the \`Automake' and \`Perl' packages. Grab them from
- any GNU archive site."
- touch aclocal.m4
- ;;
-
- autoconf)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`${configure_ac}'. You might want to install the
- \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
- archive site."
- touch configure
- ;;
-
- autoheader)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`acconfig.h' or \`${configure_ac}'. You might want
- to install the \`Autoconf' and \`GNU m4' packages. Grab them
- from any GNU archive site."
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
- test -z "$files" && files="config.h"
- touch_files=
- for f in $files; do
- case "$f" in
- *:*) touch_files="$touch_files "`echo "$f" |
- sed -e 's/^[^:]*://' -e 's/:.*//'`;;
- *) touch_files="$touch_files $f.in";;
- esac
- done
- touch $touch_files
- ;;
-
- automake)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
- You might want to install the \`Automake' and \`Perl' packages.
- Grab them from any GNU archive site."
- find . -type f -name Makefile.am -print |
- sed 's/\.am$/.in/' |
- while read f; do touch "$f"; done
- ;;
-
- bison|yacc)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a \`.y' file. You may need the \`Bison' package
- in order for those modifications to take effect. You can get
- \`Bison' from any GNU archive site."
- rm -f y.tab.c y.tab.h
- if [ $# -ne 1 ]; then
- eval LASTARG="\${$#}"
- case "$LASTARG" in
- *.y)
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" y.tab.c
- fi
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" y.tab.h
- fi
- ;;
- esac
- fi
- if [ ! -f y.tab.h ]; then
- echo >y.tab.h
- fi
- if [ ! -f y.tab.c ]; then
- echo 'main() { return 0; }' >y.tab.c
- fi
- ;;
-
- lex|flex)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a \`.l' file. You may need the \`Flex' package
- in order for those modifications to take effect. You can get
- \`Flex' from any GNU archive site."
- rm -f lex.yy.c
- if [ $# -ne 1 ]; then
- eval LASTARG="\${$#}"
- case "$LASTARG" in
- *.l)
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" lex.yy.c
- fi
- ;;
- esac
- fi
- if [ ! -f lex.yy.c ]; then
- echo 'main() { return 0; }' >lex.yy.c
- fi
- ;;
-
- help2man)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a dependency of a manual page. You may need the
- \`Help2man' package in order for those modifications to take
- effect. You can get \`Help2man' from any GNU archive site."
-
- file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
- if test -z "$file"; then
- file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
- fi
- if [ -f "$file" ]; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo ".ab help2man is required to generate this page"
- exit 1
- fi
- ;;
-
- makeinfo)
- if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
- # We have makeinfo, but it failed.
- exit 1
- fi
-
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a \`.texi' or \`.texinfo' file, or any other file
- indirectly affecting the aspect of the manual. The spurious
- call might also be the consequence of using a buggy \`make' (AIX,
- DU, IRIX). You might want to install the \`Texinfo' package or
- the \`GNU make' package. Grab either from any GNU archive site."
- file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
- if test -z "$file"; then
- file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
- fi
- touch $file
- ;;
-
- tar)
- shift
- if test -n "$run"; then
- echo 1>&2 "ERROR: \`tar' requires --run"
- exit 1
- fi
-
- # We have already tried tar in the generic part.
- # Look for gnutar/gtar before invocation to avoid ugly error
- # messages.
- if (gnutar --version > /dev/null 2>&1); then
- gnutar ${1+"$@"} && exit 0
- fi
- if (gtar --version > /dev/null 2>&1); then
- gtar ${1+"$@"} && exit 0
- fi
- firstarg="$1"
- if shift; then
- case "$firstarg" in
- *o*)
- firstarg=`echo "$firstarg" | sed s/o//`
- tar "$firstarg" ${1+"$@"} && exit 0
- ;;
- esac
- case "$firstarg" in
- *h*)
- firstarg=`echo "$firstarg" | sed s/h//`
- tar "$firstarg" ${1+"$@"} && exit 0
- ;;
- esac
- fi
-
- echo 1>&2 "\
-WARNING: I can't seem to be able to run \`tar' with the given arguments.
- You may want to install GNU tar or Free paxutils, or check the
- command line arguments."
- exit 1
- ;;
-
- *)
- echo 1>&2 "\
-WARNING: \`$1' is needed, and you do not seem to have it handy on your
- system. You might have modified some files without having the
- proper tools for further handling them. Check the \`README' file,
- it often tells you about the needed prerequirements for installing
- this package. You may also peek at any GNU archive site, in case
- some other package would contain this missing \`$1' program."
- exit 1
- ;;
-esac
-
-exit 0
diff --git a/config/mkinstalldirs b/config/mkinstalldirs
deleted file mode 100644
index 6b3b5fc5..00000000
--- a/config/mkinstalldirs
+++ /dev/null
@@ -1,40 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman
-# Created: 1993-05-16
-# Public domain
-
-# $Id$
-
-errstatus=0
-
-for file
-do
- set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
- shift
-
- pathcomp=
- for d
- do
- pathcomp="$pathcomp$d"
- case "$pathcomp" in
- -* ) pathcomp=./$pathcomp ;;
- esac
-
- if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp"
-
- mkdir "$pathcomp" || lasterr=$?
-
- if test ! -d "$pathcomp"; then
- errstatus=$lasterr
- fi
- fi
-
- pathcomp="$pathcomp/"
- done
-done
-
-exit $errstatus
-
-# mkinstalldirs ends here
diff --git a/configure.in b/configure.in
deleted file mode 100644
index 0c439399..00000000
--- a/configure.in
+++ /dev/null
@@ -1,289 +0,0 @@
-dnl synergy -- mouse and keyboard sharing utility
-dnl Copyright (C) 2002 Chris Schoeneman
-dnl
-dnl This package is free software; you can redistribute it and/or
-dnl modify it under the terms of the GNU General Public License
-dnl found in the file COPYING that should have accompanied this file.
-dnl
-dnl This package is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-dnl GNU General Public License for more details.
-
-dnl Process this file with autoconf to produce a configure script.
-
-dnl initialize
-AC_INIT(lib/common/common.h)
-AC_CONFIG_AUX_DIR(config)
-
-dnl current version, extracted from $srcdir/lib/common/Version.h
-MAJOR_VERSION=`grep '#.*define VERSION "' $srcdir/lib/common/Version.h | sed -e 's/.*"\([0-9]*\)\.[0-9]*\.[0-9]*".*/\1/'`
-MINOR_VERSION=`grep '#.*define VERSION "' $srcdir/lib/common/Version.h | sed -e 's/.*"[0-9]*\.\([0-9]*\)\.[0-9]*".*/\1/'`
-RELEASE_VERSION=`grep '#.*define VERSION "' $srcdir/lib/common/Version.h | sed -e 's/.*"[0-9]*\.[0-9]*\.\([0-9]*\)".*/\1/'`
-
-dnl initialize automake
-AM_INIT_AUTOMAKE(synergy, $MAJOR_VERSION.$MINOR_VERSION.$RELEASE_VERSION)
-AM_CONFIG_HEADER(config.h)
-
-dnl information on the package
-
-dnl decide on platform
-ARCH_LIBS=""
-ARCH_CFLAGS=""
-AC_CANONICAL_HOST
-case $host in
-*-*-mingw32* | *-*-windows*)
- acx_host_arch="WIN32"
- acx_host_winapi="MSWINDOWS"
- ;;
-*-*-darwin*)
- acx_host_arch="UNIX"
- acx_host_winapi="CARBON"
- ;;
-*)
- acx_host_arch="UNIX"
- acx_host_winapi="XWINDOWS"
- ;;
-esac
-ARCH_CFLAGS="$ARCH_CFLAGS -DSYSAPI_$acx_host_arch=1 -DWINAPI_$acx_host_winapi=1"
-AM_CONDITIONAL(WIN32, test x$acx_host_arch = xWIN32)
-AM_CONDITIONAL(UNIX, test x$acx_host_arch = xUNIX)
-AM_CONDITIONAL(MSWINDOWS, test x$acx_host_winapi = xMSWINDOWS)
-AM_CONDITIONAL(CARBON, test x$acx_host_winapi = xCARBON)
-AM_CONDITIONAL(XWINDOWS, test x$acx_host_winapi = xXWINDOWS)
-
-dnl checks for programs
-AC_PROG_CC
-AC_PROG_CXX
-AC_PROG_RANLIB
-AC_CHECK_PROG(HAVE_DOT, dot, YES, NO)
-
-dnl AC_PROG_OBJC doesn't exist. Borrow some ideas from KDE.
-dnl AC_MSG_CHECKING(for an Objective-C compiler)
-OBJC="${CC}"
-OBJCFLAGS="${CFLAGS}"
-AC_SUBST(OBJC)
-AC_SUBST(OBJCFLAGS)
-_AM_DEPENDENCIES(OBJC)
-
-dnl do checks using C++
-AC_LANG_CPLUSPLUS
-
-dnl our files end in .cpp not .C so tests should also end in .cpp
-ac_ext=cpp
-
-dnl enable debugging or disable asserts
-AC_ARG_ENABLE([debug], [ --enable-debug enable debugging])
-if test "x$enable_debug" != xno; then
- CXXFLAGS="$CXXFLAGS -g"
-else
- CXXFLAGS="$CXXFLAGS -DNDEBUG"
-fi
-
-dnl check compiler
-ACX_CHECK_CXX
-
-dnl checks for libraries
-if test x"$acx_host_arch" = xUNIX; then
- ACX_PTHREAD(,AC_MSG_ERROR(You must have pthreads to compile synergy))
- ARCH_LIBS="$PTHREAD_LIBS $ARCH_LIBS"
- ARCH_CFLAGS="$ARCH_CFLAGS $PTHREAD_CFLAGS"
-fi
-if test x"$acx_host_winapi" = xCARBON; then
- ARCH_LIBS="-framework Carbon $ARCH_LIBS"
-fi
-ACX_CHECK_NANOSLEEP
-ACX_CHECK_INET_ATON
-
-dnl checks for header files
-AC_HEADER_STDC
-AC_CHECK_HEADERS([unistd.h sys/time.h sys/types.h locale.h wchar.h])
-AC_CHECK_HEADERS([sys/socket.h sys/select.h])
-AC_CHECK_HEADERS([sys/utsname.h])
-AC_CHECK_HEADERS([istream ostream sstream])
-AC_HEADER_TIME
-if test x"$acx_host_winapi" = xXWINDOWS; then
- AC_PATH_X
- AC_PATH_XTRA
- save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$X_CFLAGS $CPPFLAGS"
- XEXT_LDADD=
-
- AC_CHECK_LIB(Xtst,
- XTestQueryExtension,
- [XEXT_LDADD="$XEXT_LDADD -lXtst"],
- AC_MSG_ERROR(You must have the XTest library to build synergy),
- [$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
- AC_CHECK_HEADERS([X11/extensions/XTest.h],
- ,
- AC_MSG_ERROR(You must have the XTest headers to compile synergy))
-
- acx_have_xkb=no
- AC_CHECK_LIB(X11,
- XkbQueryExtension,
- [acx_have_xkb=yes],
- [acx_have_xkb=no],
- [$X_LIBS $X_EXTRA_LIBS])
- if test x"$acx_have_xkb" = xyes; then
- AC_CHECK_HEADERS([X11/XKBlib.h X11/extensions/XKBstr.h],
- [acx_have_xkb=yes],
- [acx_have_xkb=no],
- [#include ])
- if test x"$acx_have_xkb" = xyes; then
- AC_TRY_COMPILE([
- #include
- #include
- ],[
- XkbQueryExtension(0, 0, 0, 0, 0, 0);
- ],
- [acx_have_xkb=yes],
- [acx_have_xkb=no])
- fi
- fi
- if test x"$acx_have_xkb" = xyes; then
- AC_DEFINE(HAVE_XKB_EXTENSION, 1,
- [Define this if the XKB extension is available.])
- fi
-
- acx_have_xinerama=yes
- AC_CHECK_LIB(Xinerama,
- XineramaQueryExtension,
- [acx_have_xinerama=yes],
- [acx_have_xinerama=no],
- [$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
- if test x"$acx_have_xinerama" = xyes; then
- AC_CHECK_HEADERS([X11/extensions/Xinerama.h],
- [acx_have_xinerama=yes],
- [acx_have_xinerama=no],
- [#include ])
- fi
- if test x"$acx_have_xinerama" = xyes; then
- XEXT_LDADD="$XEXT_LDADD -lXinerama"
- fi
-
- X_DPMS_LDADD=
- acx_have_dpms=no
- AC_CHECK_LIB(Xext,
- DPMSQueryExtension,
- [acx_have_dpms=yes],
- [acx_have_dpms=no],
- [$X_LIBS -lX11 $X_EXTRA_LIBS])
- if test x"$acx_have_dpms" != xyes; then
- AC_CHECK_LIB(Xdpms,
- DPMSQueryExtension,
- [acx_have_dpms=yes; XDPMS_LDADD=-lXdpms],
- [acx_have_dpms=no],
- [$X_LIBS -lX11 $X_EXTRA_LIBS])
- fi
- if test x"$acx_have_dpms" = xyes; then
- AC_CHECK_HEADERS([X11/extensions/dpms.h],
- [acx_have_dpms_h=yes],
- [acx_have_dpms_h=no],
- [#include ])
- if test x"$acx_have_dpms_h" = xyes; then
- XEXT_LDADD="$XEXT_LDADD $XDPMS_LDADD"
- AC_MSG_CHECKING(for prototypes in X11/extensions/dpms.h)
- acx_have_dpms_protos=no
- AC_TRY_COMPILE([
- #include
- extern "C" {
- #include
- }
- ],[
- int s = DPMSModeOn;
- DPMSQueryExtension(0, 0, 0);
- ],
- [acx_have_dpms_protos=yes])
- AC_MSG_RESULT($acx_have_dpms_protos)
- if test x"$acx_have_dpms_protos" = xyes; then
- AC_DEFINE(HAVE_DPMS_PROTOTYPES,1,[Define if the header file declares function prototypes.])
- fi
- fi
- fi
-
- CPPFLAGS="$save_CPPFLAGS"
- ARCH_LIBS="$X_LIBS $X_PRE_LIBS $XEXT_LDADD -lXext -lX11 $X_EXTRA_LIBS $ARCH_LIBS"
- ARCH_CFLAGS="$ARCH_CFLAGS $X_CFLAGS"
-fi
-
-dnl checks for types
-AC_TYPE_SIZE_T
-ACX_CHECK_SOCKLEN_T
-
-dnl checks for structures
-AC_STRUCT_TM
-
-dnl checks for compiler characteristics
-AC_CHECK_SIZEOF(char, 1)
-AC_CHECK_SIZEOF(short, 2)
-AC_CHECK_SIZEOF(int, 2)
-AC_CHECK_SIZEOF(long, 4)
-ACX_CHECK_CXX_BOOL(,AC_MSG_ERROR(Your compiler must support bool to compile synergy))
-ACX_CHECK_CXX_EXCEPTIONS(,AC_MSG_ERROR(Your compiler must support exceptions to compile synergy))
-ACX_CHECK_CXX_CASTS(,AC_MSG_ERROR(Your compiler must support C++ casts to compile synergy))
-ACX_CHECK_CXX_MUTABLE(,AC_MSG_ERROR(Your compiler must support mutable to compile synergy))
-ACX_CHECK_CXX_STDLIB(,AC_MSG_ERROR(Your compiler must support the C++ standard library to compile synergy))
-
-dnl checks for library functions
-dnl AC_TYPE_SIGNAL
-AC_FUNC_MEMCMP
-AC_FUNC_STRFTIME
-AC_CHECK_FUNCS(gmtime_r)
-ACX_CHECK_GETPWUID_R
-AC_CHECK_FUNCS(vsnprintf)
-AC_FUNC_SELECT_ARGTYPES
-ACX_CHECK_POLL
-ACX_FUNC_ACCEPT
-dnl use AC_REPLACE_FUNCS() for stuff in string.h
-
-dnl checks for system services
-
-dnl enable maximum compiler warnings and warnings are errors.
-ACX_CXX_WARNINGS
-ACX_CXX_WARNINGS_ARE_ERRORS
-
-dnl adjust compiler and linker variables
-CXXFLAGS="$CXXFLAGS $SYNERGY_CXXFLAGS $ARCH_CFLAGS"
-OBJCXXFLAGS="$OBJCXXFLAGS $CXXFLAGS $ARCH_CFLAGS"
-LIBS="$NANOSLEEP_LIBS $INET_ATON_LIBS $ARCH_LIBS $LIBS"
-
-dnl we need to have an environment variable set when building on OS X.
-dnl i'm not sure of the right way to do that. writing 'export ...' to
-dnl the makefiles isn't portable. here we'll hijack XXXDEPMODE (where
-dnl XXX depends on the language) to insert setting the environment
-dnl variable when running the compiler. we'd like to put that in CC,
-dnl CXX and OBJC but that breaks depcomp. let's hope this works.
-if test x"$acx_host_winapi" = xCARBON; then
- MACOSX_DEPLOYMENT_TARGET="10.5"
- CCDEPMODE="MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET $CCDEPMODE"
- CXXDEPMODE="MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET $CXXDEPMODE"
- OBJCDEPMODE="MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET $OBJCDEPMODE"
-else
- MACOSX_DEPLOYMENT_TARGET="5"
- CXXDEPMODE="FOO=$MACOSX_DEPLOYMENT_TARGET $CXXDEPMODE"
-fi
-
-AC_OUTPUT([
-Makefile
-cmd/Makefile
-cmd/launcher/Makefile
-cmd/synergyc/Makefile
-cmd/synergys/Makefile
-dist/Makefile
-dist/nullsoft/Makefile
-dist/rpm/Makefile
-dist/rpm/synergy.spec
-doc/Makefile
-doc/doxygen.cfg
-lib/Makefile
-lib/arch/Makefile
-lib/base/Makefile
-lib/client/Makefile
-lib/common/Makefile
-lib/io/Makefile
-lib/mt/Makefile
-lib/net/Makefile
-lib/platform/Makefile
-lib/server/Makefile
-lib/synergy/Makefile
-])
diff --git a/dist/Makefile.am b/dist/Makefile.am
deleted file mode 100644
index 1af99c18..00000000
--- a/dist/Makefile.am
+++ /dev/null
@@ -1,26 +0,0 @@
-# synergy -- mouse and keyboard sharing utility
-# Copyright (C) 2002 Chris Schoeneman
-#
-# This package is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# found in the file COPYING that should have accompanied this file.
-#
-# This package 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.
-
-## Process this file with automake to produce Makefile.in
-NULL =
-
-SUBDIRS = \
- rpm \
- nullsoft \
- $(NULL)
-
-EXTRA_DIST = \
- $(NULL)
-
-MAINTAINERCLEANFILES = \
- Makefile.in \
- $(NULL)
diff --git a/dist/googlecode_upload.py b/dist/googlecode_upload.py
deleted file mode 100644
index 1cd142cf..00000000
--- a/dist/googlecode_upload.py
+++ /dev/null
@@ -1,247 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2006, 2007 Google Inc. All Rights Reserved.
-# Author: danderson@google.com (David Anderson)
-#
-# Script for uploading files to a Google Code project.
-#
-# This is intended to be both a useful script for people who want to
-# streamline project uploads and a reference implementation for
-# uploading files to Google Code projects.
-#
-# To upload a file to Google Code, you need to provide a path to the
-# file on your local machine, a small summary of what the file is, a
-# project name, and a valid account that is a member or owner of that
-# project. You can optionally provide a list of labels that apply to
-# the file. The file will be uploaded under the same name that it has
-# in your local filesystem (that is, the "basename" or last path
-# component). Run the script with '--help' to get the exact syntax
-# and available options.
-#
-# Note that the upload script requests that you enter your
-# googlecode.com password. This is NOT your Gmail account password!
-# This is the password you use on googlecode.com for committing to
-# Subversion and uploading files. You can find your password by going
-# to http://code.google.com/hosting/settings when logged in with your
-# Gmail account. If you have already committed to your project's
-# Subversion repository, the script will automatically retrieve your
-# credentials from there (unless disabled, see the output of '--help'
-# for details).
-#
-# If you are looking at this script as a reference for implementing
-# your own Google Code file uploader, then you should take a look at
-# the upload() function, which is the meat of the uploader. You
-# basically need to build a multipart/form-data POST request with the
-# right fields and send it to https://PROJECT.googlecode.com/files .
-# Authenticate the request using HTTP Basic authentication, as is
-# shown below.
-#
-# Licensed under the terms of the Apache Software License 2.0:
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Questions, comments, feature requests and patches are most welcome.
-# Please direct all of these to the Google Code users group:
-# http://groups.google.com/group/google-code-hosting
-
-"""Google Code file uploader script.
-"""
-
-__author__ = 'danderson@google.com (David Anderson)'
-
-import httplib
-import os.path
-import optparse
-import getpass
-import base64
-import sys
-
-
-def upload(file, project_name, user_name, password, summary, labels=None):
- """Upload a file to a Google Code project's file server.
-
- Args:
- file: The local path to the file.
- project_name: The name of your project on Google Code.
- user_name: Your Google account name.
- password: The googlecode.com password for your account.
- Note that this is NOT your global Google Account password!
- summary: A small description for the file.
- labels: an optional list of label strings with which to tag the file.
-
- Returns: a tuple:
- http_status: 201 if the upload succeeded, something else if an
- error occured.
- http_reason: The human-readable string associated with http_status
- file_url: If the upload succeeded, the URL of the file on Google
- Code, None otherwise.
- """
- # The login is the user part of user@gmail.com. If the login provided
- # is in the full user@domain form, strip it down.
- if user_name.endswith('@gmail.com'):
- user_name = user_name[:user_name.index('@gmail.com')]
-
- form_fields = [('summary', summary)]
- if labels is not None:
- form_fields.extend([('label', l.strip()) for l in labels])
-
- content_type, body = encode_upload_request(form_fields, file)
-
- upload_host = '%s.googlecode.com' % project_name
- upload_uri = '/files'
- auth_token = base64.b64encode('%s:%s'% (user_name, password))
- headers = {
- 'Authorization': 'Basic %s' % auth_token,
- 'User-Agent': 'Googlecode.com uploader v0.9.4',
- 'Content-Type': content_type,
- }
-
- server = httplib.HTTPSConnection(upload_host)
- server.request('POST', upload_uri, body, headers)
- resp = server.getresponse()
- server.close()
-
- if resp.status == 201:
- location = resp.getheader('Location', None)
- else:
- location = None
- return resp.status, resp.reason, location
-
-
-def encode_upload_request(fields, file_path):
- """Encode the given fields and file into a multipart form body.
-
- fields is a sequence of (name, value) pairs. file is the path of
- the file to upload. The file will be uploaded to Google Code with
- the same file name.
-
- Returns: (content_type, body) ready for httplib.HTTP instance
- """
- BOUNDARY = '----------Googlecode_boundary_reindeer_flotilla'
- CRLF = '\r\n'
-
- body = []
-
- # Add the metadata about the upload first
- for key, value in fields:
- body.extend(
- ['--' + BOUNDARY,
- 'Content-Disposition: form-data; name="%s"' % key,
- '',
- value,
- ])
-
- # Now add the file itself
- file_name = os.path.basename(file_path)
- f = open(file_path, 'rb')
- file_content = f.read()
- f.close()
-
- body.extend(
- ['--' + BOUNDARY,
- 'Content-Disposition: form-data; name="filename"; filename="%s"'
- % file_name,
- # The upload server determines the mime-type, no need to set it.
- 'Content-Type: application/octet-stream',
- '',
- file_content,
- ])
-
- # Finalize the form body
- body.extend(['--' + BOUNDARY + '--', ''])
-
- return 'multipart/form-data; boundary=%s' % BOUNDARY, CRLF.join(body)
-
-
-def upload_find_auth(file_path, project_name, summary, labels=None,
- user_name=None, password=None, tries=3):
- """Find credentials and upload a file to a Google Code project's file server.
-
- file_path, project_name, summary, and labels are passed as-is to upload.
-
- Args:
- file_path: The local path to the file.
- project_name: The name of your project on Google Code.
- summary: A small description for the file.
- labels: an optional list of label strings with which to tag the file.
- config_dir: Path to Subversion configuration directory, 'none', or None.
- user_name: Your Google account name.
- tries: How many attempts to make.
- """
-
- while tries > 0:
- if user_name is None:
- # Read username if not specified or loaded from svn config, or on
- # subsequent tries.
- sys.stdout.write('Please enter your googlecode.com username: ')
- sys.stdout.flush()
- user_name = sys.stdin.readline().rstrip()
- if password is None:
- # Read password if not loaded from svn config, or on subsequent tries.
- print 'Please enter your googlecode.com password.'
- print '** Note that this is NOT your Gmail account password! **'
- print 'It is the password you use to access Subversion repositories,'
- print 'and can be found here: http://code.google.com/hosting/settings'
- password = getpass.getpass()
-
- status, reason, url = upload(file_path, project_name, user_name, password,
- summary, labels)
- # Returns 403 Forbidden instead of 401 Unauthorized for bad
- # credentials as of 2007-07-17.
- if status in [httplib.FORBIDDEN, httplib.UNAUTHORIZED]:
- # Rest for another try.
- user_name = password = None
- tries = tries - 1
- else:
- # We're done.
- break
-
- return status, reason, url
-
-
-def main():
- parser = optparse.OptionParser(usage='googlecode-upload.py -s SUMMARY '
- '-p PROJECT [options] FILE')
- parser.add_option('-s', '--summary', dest='summary',
- help='Short description of the file')
- parser.add_option('-p', '--project', dest='project',
- help='Google Code project name')
- parser.add_option('-u', '--user', dest='user',
- help='Your Google Code username')
- parser.add_option('-w', '--password', dest='password',
- help='Your Google Code password')
- parser.add_option('-l', '--labels', dest='labels',
- help='An optional list of labels to attach to the file')
-
- options, args = parser.parse_args()
-
- if not options.summary:
- parser.error('File summary is missing.')
- elif not options.project:
- parser.error('Project name is missing.')
- elif len(args) < 1:
- parser.error('File to upload not provided.')
- elif len(args) > 1:
- parser.error('Only one file may be specified.')
-
- file_path = args[0]
-
- if options.labels:
- labels = options.labels.split(',')
- else:
- labels = None
-
- status, reason, url = upload_find_auth(file_path, options.project,
- options.summary, labels,
- options.user, options.password)
- if url:
- print 'The file was uploaded successfully.'
- print 'URL: %s' % url
- return 0
- else:
- print 'An error occurred. Your file was not uploaded.'
- print 'Google Code upload server said: %s (%s)' % (reason, status)
- return 1
-
-
-if __name__ == '__main__':
- sys.exit(main())
diff --git a/dist/nullsoft/Makefile.am b/dist/nullsoft/Makefile.am
deleted file mode 100644
index 120cd016..00000000
--- a/dist/nullsoft/Makefile.am
+++ /dev/null
@@ -1,24 +0,0 @@
-# synergy -- mouse and keyboard sharing utility
-# Copyright (C) 2002 Chris Schoeneman
-#
-# This package is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# found in the file COPYING that should have accompanied this file.
-#
-# This package 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.
-
-## Process this file with automake to produce Makefile.in
-NULL =
-
-EXTRA_DIST = \
- Makefile.win \
- synergy.nsi \
- dosify.c \
- $(NULL)
-
-MAINTAINERCLEANFILES = \
- Makefile.in \
- $(NULL)
diff --git a/dist/nullsoft/Makefile.win b/dist/nullsoft/Makefile.win
deleted file mode 100644
index 91aa68bb..00000000
--- a/dist/nullsoft/Makefile.win
+++ /dev/null
@@ -1,63 +0,0 @@
-# synergy -- mouse and keyboard sharing utility
-# Copyright (C) 2007 Chris Schoeneman
-#
-# This package is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# found in the file COPYING that should have accompanied this file.
-#
-# This package 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.
-
-NSIS = "$(PROGRAMFILES)\NSIS\makensis.exe"
-NSIS_FLAGS = /NOCD /V1
-
-BIN_INSTALLER_SRC = dist\nullsoft
-BIN_INSTALLER_DST = $(BUILD_DST)\$(BIN_INSTALLER_SRC)
-BIN_DOSIFY_EXE = "$(BIN_INSTALLER_DST)\dosify.exe"
-BIN_DOSIFY_C = \
- "$(BIN_INSTALLER_SRC)\dosify.c" \
- $(NULL)
-BIN_DOSIFY_OBJ = \
- "$(BIN_INSTALLER_DST)\dosify.obj" \
- $(NULL)
-
-BIN_INSTALLER_NSI = "$(BIN_INSTALLER_SRC)\synergy.nsi"
-BIN_INSTALLER_EXE = "$(BUILD_DST)\SynergyInstaller.exe"
-BIN_INSTALLER_DOCS = \
- COPYING \
- ChangeLog \
- $(NULL)
-BIN_INSTALLER_DOS_DOCS = \
- $(BUILD_DST)\COPYING.txt \
- $(BUILD_DST)\ChangeLog.txt \
- $(NULL)
-
-C_FILES = $(C_FILES) $(BIN_DOSIFY_C)
-OBJ_FILES = $(OBJ_FILES) $(BIN_DOSIFY_OBJ)
-OPTPROGRAMS = $(OPTPROGRAMS) $(BIN_DOSIFY_EXE)
-
-# Build rules.
-$(BIN_DOSIFY_OBJ): $(BIN_DOSIFY_C)
- @$(ECHO) Compile $(BIN_DOSIFY_C)
- -@$(MKDIR) $(BIN_INSTALLER_DST) 2>NUL:
- $(cc) $(cdebug) $(cflags) $(cvars) /Fo$@ /Fd$(@:.obj=.pdb) $**
-$(BIN_DOSIFY_EXE): $(BIN_DOSIFY_OBJ)
- @$(ECHO) Link $(@F)
- $(link) $(ldebug) $(conlflags) $(conlibsmt) /out:$@ $**
-
-# Convert text files from Unix to DOS format.
-$(BIN_INSTALLER_DOS_DOCS): $(BIN_DOSIFY_EXE) $(BIN_INSTALLER_DOCS)
- @$(ECHO) Convert text files to DOS format
- $(BIN_DOSIFY_EXE) "." "$(BUILD_DST)" $(BIN_INSTALLER_DOCS)
-
-# Allow installers for both debug and release.
-$(BIN_INSTALLER_EXE): $(BIN_INSTALLER_NSI) all $(BIN_INSTALLER_DOS_DOCS)
- @$(ECHO) Build $(@F)
- $(NSIS) $(NSIS_FLAGS) /DOUTPUTDIR=$(@D) /DOUTPUTFILE=$@ $(BIN_INSTALLER_NSI)
-installer: $(BIN_INSTALLER_EXE)
-debug-installer:
- @$(MAKE) /nologo /f $(MAKEFILE) DEBUG=1 installer
-release-installer:
- @$(MAKE) /nologo /f $(MAKEFILE) NODEBUG=1 installer
diff --git a/dist/nullsoft/dosify.c b/dist/nullsoft/dosify.c
deleted file mode 100644
index 95d0caee..00000000
--- a/dist/nullsoft/dosify.c
+++ /dev/null
@@ -1,99 +0,0 @@
-#include
-#include
-#include
-
-static
-char*
-concatPath(const char* dir, const char* name, const char* ext)
-{
- size_t nDir = (dir != NULL) ? strlen(dir) : 0;
- size_t nPath = nDir + 1 + strlen(name) + strlen(ext?ext:"") + 1;
- char* path = malloc(nPath);
-
- /* directory */
- if (nDir > 0 && strcmp(dir, ".") != 0) {
- strcpy(path, dir);
- if (path[nDir - 1] != '\\' && path[nDir - 1] != '/') {
- strcat(path, "\\");
- }
- }
- else {
- strcpy(path, "");
- }
-
-
- /* name */
- strcat(path, name);
-
- /* extension */
- if (ext != NULL && strrchr(name, '.') == NULL) {
- strcat(path, ext);
- }
-
- return path;
-}
-
-static
-int
-dosify(const char* srcdir, const char* dstdir, const char* name)
-{
- FILE* dFile, *sFile;
- char* dName, *sName;
-
- sName = concatPath(srcdir, name, NULL);
- dName = concatPath(dstdir, name, ".txt");
-
- sFile = fopen(sName, "rb");
- if (sFile == NULL) {
- fprintf(stderr, "Can't open \"%s\" for reading\n", sName);
- return 0;
- }
- else {
- dFile = fopen(dName, "w");
- if (dFile == NULL) {
- fclose(sFile);
- fprintf(stderr, "Can't open \"%s\" for writing\n", dName);
- return 0;
- }
- else {
- char buffer[1024];
- while (!ferror(dFile) &&
- fgets(buffer, sizeof(buffer), sFile) != NULL) {
- fprintf(dFile, "%s", buffer);
- }
- if (ferror(sFile) || ferror(dFile)) {
- fprintf(stderr,
- "Error copying \"%s\" to \"%s\"\n", sName, dName);
- fclose(dFile);
- fclose(sFile);
- _unlink(dName);
- return 0;
- }
- }
- }
-
- fclose(dFile);
- fclose(sFile);
- free(dName);
- free(sName);
- return 1;
-}
-
-#include
-int
-main(int argc, char** argv)
-{
- int i;
-
- if (argc < 3) {
- fprintf(stderr, "usage: %s [files]\n", argv[0]);
- return 1;
- }
-
- for (i = 3; i < argc; ++i) {
- if (!dosify(argv[1], argv[2], argv[i]))
- return 1;
- }
-
- return 0;
-}
diff --git a/dist/nullsoft/files/vcredist_x86_2005sp1.exe b/dist/nullsoft/files/vcredist_x86_2005sp1.exe
deleted file mode 100644
index 47f87a0e..00000000
Binary files a/dist/nullsoft/files/vcredist_x86_2005sp1.exe and /dev/null differ
diff --git a/dist/nullsoft/files/vcredist_x86_2008sp1.exe b/dist/nullsoft/files/vcredist_x86_2008sp1.exe
deleted file mode 100644
index 05d0a05e..00000000
Binary files a/dist/nullsoft/files/vcredist_x86_2008sp1.exe and /dev/null differ
diff --git a/dist/nullsoft/synergy.nsi b/dist/nullsoft/synergy.nsi
deleted file mode 100644
index 0da9078c..00000000
--- a/dist/nullsoft/synergy.nsi
+++ /dev/null
@@ -1,214 +0,0 @@
-; Synergy.nsi
-;
-; This script is based on example1.nsi, but it remember the directory,
-; has uninstall support and (optionally) installs start menu shortcuts.
-;
-; It will install makensisw.exe into a directory that the user selects,
-
-;--------------------------------
-!include "MUI2.nsh"
-
-!ifndef OUTPUTDIR
-!define OUTPUTDIR "build\Release"
-!endif
-
-SetDatablockOptimize on
-
-; The name of the installer
-!define PRODUCT "Synergy+"
-Name "${PRODUCT} 1.3.3"
-BrandingText "${PRODUCT} 1.3.3"
-
-; The file to write
-OutFile "${OUTPUTFILE}"
-
-; The default installation directory
-InstallDir $PROGRAMFILES\Synergy
-
-; Registry key to check for directory (so if you install again, it will
-; overwrite the old one automatically)
-InstallDirRegKey HKLM "Software\Synergy" "Install_Dir"
-
-;Request application privileges for Windows Vista
- RequestExecutionLevel admin
-
-!define MUI_ICON cmd\launcher\synergy.ico
-!define MUI_UNICON cmd\launcher\synergy.ico
-
-;--------------------------------
-
-; Pages
-
-;--------------------------------
-;Pages
-
- !insertmacro MUI_PAGE_LICENSE "${OUTPUTDIR}\COPYING.txt"
- !insertmacro MUI_PAGE_COMPONENTS
- !insertmacro MUI_PAGE_DIRECTORY
- !insertmacro MUI_PAGE_INSTFILES
-
- !insertmacro MUI_UNPAGE_CONFIRM
- !insertmacro MUI_UNPAGE_INSTFILES
-
-;Page components
-;Page license
-;Page directory
-;Page instfiles
-
-UninstPage uninstConfirm
-UninstPage instfiles
-;--------------------------------
-;Languages
-
- !insertmacro MUI_LANGUAGE "English"
-
-;--------------------------------
-
-; Text
-ComponentText "This will install Synergy on your computer. Select the optional components you want to install."
-DirText "Choose a directory to install Synergy to:"
-UninstallText "This will uninstall Synergy from your computer."
-LicenseText "Synergy is distributed under the GNU GPL:"
-LicenseData ${OUTPUTDIR}\COPYING.txt
-
-;--------------------------------
-
-; The stuff to install
-Section "Synergy+ (required)"
-
- SectionIn RO
-
- ; Install VC Redist fiiles
- SetOutPath $TEMP
- File "dist\nullsoft\files\vcredist_x86_2005sp1.exe"
- File "dist\nullsoft\files\vcredist_x86_2008sp1.exe"
-
- Exec '$TEMP\vcredist_x86_2005sp1.exe /q:a /c:"VCREDI~1.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "'
- Exec '$TEMP\vcredist_x86_2008sp1.exe /q:a /c:"VCREDI~1.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "'
-
-
- ; Set output path to the installation directory.
- SetOutPath $INSTDIR
-
- ; Put files there
- File "${OUTPUTDIR}\synergy.exe"
- File "${OUTPUTDIR}\synergyc.exe"
- File "${OUTPUTDIR}\synergys.exe"
- File "${OUTPUTDIR}\*.dll"
- File "${OUTPUTDIR}\COPYING.txt"
- File "${OUTPUTDIR}\ChangeLog.txt"
- File doc\PORTING
- File doc\about.html
- File doc\authors.html
- File doc\autostart.html
- File doc\banner.html
- File doc\compiling.html
- File doc\configuration.html
- File doc\contact.html
- File doc\developer.html
- File doc\faq.html
- File doc\history.html
- File doc\home.html
- File doc\index.html
- File doc\license.html
- File doc\news.html
- File doc\roadmap.html
- File doc\running.html
- File doc\security.html
- File doc\synergy.css
- File doc\tips.html
- File doc\toc.html
- File doc\trouble.html
-
- SetOutPath $INSTDIR\images
- File doc\images\logo.gif
- File doc\images\warp.gif
-
- ; Write the installation path into the registry
- WriteRegStr HKLM SOFTWARE\Synergy "Install_Dir" "$INSTDIR"
-
- ; Write the uninstall keys for Windows
- WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Synergy" "DisplayName" "Synergy"
- WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Synergy" "UninstallString" '"$INSTDIR\uninstall.exe"'
- WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Synergy" "NoModify" 1
- WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Synergy" "NoRepair" 1
- WriteUninstaller "uninstall.exe"
-
-SectionEnd
-
-; Optional section (can be disabled by the user)
-Section "Start Menu Shortcuts"
-
- CreateDirectory "$SMPROGRAMS\Synergy"
- CreateShortCut "$SMPROGRAMS\Synergy\Synergy.lnk" "$INSTDIR\synergy.exe" "" "$INSTDIR\synergy.exe" 0
- CreateShortCut "$SMPROGRAMS\Synergy\README.lnk" "$INSTDIR\index.html"
- CreateShortCut "$SMPROGRAMS\Synergy\Synergy Folder.lnk" "$INSTDIR"
- CreateShortCut "$SMPROGRAMS\Synergy\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
-
-SectionEnd
-
-; Optional section (can be disabled by the user)
-Section "Desktop Icon"
-
- CreateShortCut "$DESKTOP\Synergy.lnk" "$INSTDIR\synergy.exe" "" "$INSTDIR\synergy.exe" 0
-
-SectionEnd
-
-;--------------------------------
-
-; Uninstaller
-
-Section "Uninstall"
- ; Stop and uninstall the daemons
- ExecWait '"$INSTDIR\synergy.exe" /uninstall'
-
- ; Remove autorun registry keys for synergy
- DeleteRegKey HKLM "SYSTEM\CurrentControlSet\Services\Synergy Server"
- DeleteRegKey HKLM "SYSTEM\CurrentControlSet\Services\Synergy Client"
- DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\RunServices" "Synergy Server"
- DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\RunServices" "Synergy Client"
- DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "Synergy Server"
- DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "Synergy Client"
-
- ; not all keys will have existed, so errors WILL have happened
- ClearErrors
-
- ; Remove registry keys
- DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Synergy"
- DeleteRegKey HKLM SOFTWARE\Synergy
-
- ClearErrors
-
- ; First try to remove files that might be locked (if synergy is running)
- Delete /REBOOTOK $INSTDIR\synergy.exe
- Delete /REBOOTOK $INSTDIR\synergyc.exe
- Delete /REBOOTOK $INSTDIR\synergys.exe
- Delete /REBOOTOK $INSTDIR\synrgyhk.dll
-
- ; Remove files and directory
- Delete $INSTDIR\*.*
- RMDir $INSTDIR
-
- ; Remove shortcuts, if any
- Delete "$SMPROGRAMS\Synergy\*.*"
- Delete "$DESKTOP\Synergy.lnk"
-
- ; Remove directories used
- RMDir "$SMPROGRAMS\Synergy"
- RMDir "$INSTDIR"
-
- IfRebootFlag 0 EndOfAll
- MessageBox MB_OKCANCEL "Uninstaller needs to reboot to finish cleaning up. reboot now?" IDCANCEL NoReboot
- ClearErrors
- Reboot
- IfErrors 0 EndOfAll
- MessageBox MB_OK "Uninstaller could not reboot. Please reboot manually. Thank you."
- Abort "Uninstaller could not reboot. Please reboot manually. Thank you."
- NoReboot:
- DetailPrint ""
- DetailPrint "Uninstaller could not reboot. Please reboot manually. Thank you."
- DetailPrint ""
- SetDetailsView show
- EndOfAll:
-
-SectionEnd
diff --git a/dist/rpm/Makefile.am b/dist/rpm/Makefile.am
deleted file mode 100644
index 0e86d9ba..00000000
--- a/dist/rpm/Makefile.am
+++ /dev/null
@@ -1,22 +0,0 @@
-# synergy -- mouse and keyboard sharing utility
-# Copyright (C) 2002 Chris Schoeneman
-#
-# This package is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# found in the file COPYING that should have accompanied this file.
-#
-# This package 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.
-
-## Process this file with automake to produce Makefile.in
-NULL =
-
-EXTRA_DIST = \
- synergy.spec.in \
- $(NULL)
-
-MAINTAINERCLEANFILES = \
- Makefile.in \
- $(NULL)
diff --git a/dist/rpm/synergy.spec.in b/dist/rpm/synergy.spec.in
deleted file mode 100644
index 0d2b6f48..00000000
--- a/dist/rpm/synergy.spec.in
+++ /dev/null
@@ -1,66 +0,0 @@
-Summary: Mouse and keyboard sharing utility
-Name: @PACKAGE@
-Version: @VERSION@
-Release: 1
-License: GPL
-Packager: Chris Schoeneman
-Group: System Environment/Daemons
-Prefixes: /usr/bin
-Source: @PACKAGE@-@VERSION@.tar.gz
-Buildroot: /var/tmp/@PACKAGE@-@VERSION@-root
-
-%description
-Synergy lets you easily share a single mouse and keyboard between
-multiple computers with different operating systems, each with its
-own display, without special hardware. It's intended for users
-with multiple computers on their desk since each system uses its
-own display.
-
-%prep
-%setup
-CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=/usr
-
-%build
-make
-
-%install
-make install DESTDIR=$RPM_BUILD_ROOT
-strip $RPM_BUILD_ROOT/usr/bin/synergyc
-strip $RPM_BUILD_ROOT/usr/bin/synergys
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%files
-%defattr(-, root, root)
-/usr/bin/synergyc
-/usr/bin/synergys
-%doc AUTHORS
-%doc COPYING
-%doc ChangeLog
-%doc INSTALL
-%doc NEWS
-%doc README
-%doc doc/about.html
-%doc doc/authors.html
-%doc doc/autostart.html
-%doc doc/banner.html
-%doc doc/border.html
-%doc doc/compiling.html
-%doc doc/configuration.html
-%doc doc/contact.html
-%doc doc/developer.html
-%doc doc/faq.html
-%doc doc/history.html
-%doc doc/home.html
-%doc doc/index.html
-%doc doc/license.html
-%doc doc/news.html
-%doc doc/roadmap.html
-%doc doc/running.html
-%doc doc/security.html
-%doc doc/tips.html
-%doc doc/toc.html
-%doc doc/trouble.html
-%doc doc/synergy.css
-%doc examples/synergy.conf
diff --git a/doc/Makefile.am b/doc/Makefile.am
deleted file mode 100644
index 2efec24c..00000000
--- a/doc/Makefile.am
+++ /dev/null
@@ -1,49 +0,0 @@
-# synergy -- mouse and keyboard sharing utility
-# Copyright (C) 2002 Chris Schoeneman
-#
-# This package is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# found in the file COPYING that should have accompanied this file.
-#
-# This package 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.
-
-## Process this file with automake to produce Makefile.in
-NULL =
-
-EXTRA_DIST = \
- PORTING \
- doxygen.cfg.in \
- synergy.css \
- about.html \
- authors.html \
- autostart.html \
- banner.html \
- border.html \
- compiling.html \
- configuration.html \
- contact.html \
- developer.html \
- faq.html \
- history.html \
- home.html \
- index.html \
- license.html \
- news.html \
- roadmap.html \
- running.html \
- security.html \
- tips.html \
- toc.html \
- trouble.html \
- images/logo.gif \
- images/warp.gif \
- $(NULL)
-
-MAINTAINERCLEANFILES = \
- Makefile.in \
- doc/doxygen.cfg \
- doc/doxygen/html/* \
- $(NULL)
diff --git a/doc/PORTING b/doc/PORTING
deleted file mode 100644
index 4e2744df..00000000
--- a/doc/PORTING
+++ /dev/null
@@ -1,419 +0,0 @@
-Synergy Developer and Porting Guide
-===================================
-
-This document is under development.
-
-Code Organization
------------------
-
-The synergy source code organization is:
-
-. -- root makefiles, some standard documentation
-cmd -- program source code
- launcher -- synergy launcher for Windows
- synergyc -- synergy client
- synergys -- synergy server
-config -- stuff for autoconf/automake
-dist -- files for creating distributions
- nullsoft -- files for creating Nullsoft NSIS installer (Windows)
- rpm -- files for creating RPMs
-doc -- placeholder for documentation
-examples -- example files
-lib -- library source code
- arch -- platform dependent utility library
- base -- simple utilities
- client -- synergy client library
- common -- commonly needed header files
- io -- I/O
- mt -- multithreading
- net -- networking
- platform -- platform dependent display/window/event stuff
- server -- synergy server library
- synergy -- synergy shared client/server code library
-
-Note how the utility code required by the programs is placed into
-separate library directories. This makes the makefiles a little
-more awkward but makes for a cleaner organization. The top level
-directory has only the standard documentation files and the files
-necessary to configure and build the rest of the project.
-
-
-Coding Style Guide
-------------------
-
-Synergy uses many coding conventions. Contributed code should
-following these guidelines.
-
-- Symbol Naming
- Names always begin with a letter (never an underscore). The first
- letter of interior names are always capitalized. Acronyms should
- be all uppercase. For example: myTextAsASCII.
-
- Names come it two flavors: leading capital and leading lowercase.
- The former have the first character capitalized and the latter
- don't. In the following table, leading capital names are indicated
- by `Name' and leading lowercase names by `name'.
-
- The naming convention for various things are:
-
- * Exceptions -- X + Name XMyException
- * Interfaces -- I + Name IMyInterface
- * Template Classes -- T + Name TMyTemplate<>
- * Other Classes -- C + Name CMyClass
- * Enumerations -- E + Name EMyEnumeration
- * Constants -- k + Name kMyConstant
- * Data Members -- m_ + name m_myDataMember
- * Methods -- name myMethod
- * Functions -- name myFunction
- * Variables -- name myVariable
-
- Exceptions are types that get thrown and are generally derived
- (possibly indirectly) from XBase. Interfaces are derived (possibly
- indirectly) from IInterface and have only pure virtual functions.
- Other classes are classes that aren't exceptions or interfaces.
- Constants include global constants and enumerants.
-
- Method names should usually have the form `verbObject'. For example:
- * isGameOn()
- * getBeer()
- * pressPowerButton()
- * setChannel()
- In general, use `get' and `set' to read and write state but use `is'
- to read boolean state. Note that classes that contain only `is',
- `get', and `set' are probably plain old data; you might want to
- consider using public data members only or, better, refactor your
- design to have classes that actually do something more than just
- hold data.
-
-- File Naming
- Each class should have one source and one header file. If the
- class is named `CMyClass' then the source file should be named
- `CMyClass.cpp' and the header file `CMyClass.h'.
-
- Headers files not containing a class should have some meaningful
- name with a leading capital (e.g. `Version.h').
-
- Source files without a header file have a leading lowercase name.
- Only files containing the entry point for an application should
- lack a header file.
-
-- Dependencies
- * No circular library dependencies
- Library dependencies form an acyclic graph. Conceptually
- libraries can be arranged in layers where each library only
- references libraries in layers below it, not in the same layer
- or layers above it. The makefiles build the lowest layer
- libraries first and work upwards.
-
- * Avoid circular uses-a relationships
- When possible, design classes with one-way uses-a relationships
- and avoid cycles. This makes it easier to understand the code.
- However, sometimes it's not always practical so it is permitted.
-
- * Included files in headers
- Headers should #include only the necessary headers. In
- particular, if a class is referenced in a header file only as a
- pointer or a reference then use `class COtherClass;' instead of
- `#include "COtherClass.h".'
-
- * #include syntax
- Non-synergy header files must be included using angle brackets
- while synergy header files must be included using double quotes.
- #include "CSynergyHeader.h"
- #include
- The file name in a #include must not be a relative path unless
- it's a system header file and it's customary to use a relative
- path, e.g. `#include '. Use compiler options to
- add necessary directories to the include search path.
-
- * Included file ordering
- Files should be included in the following order:
- * Header for source file
- The first include for CMyClass.cpp must be CMyClass.h.
- * Other headers in directory, sorted alphabetically
- * Headers for each library, sorted alphabetically per library
- Include headers from the library closest in the dependency graph
- first, then the next farthest, etc. Sort alphabetically within
- each library.
- * System headers
-
-- C++
- * C++ features
- Synergy uses the following more recent C++ features:
- * bool
- * templates
- * exceptions
- * mutable
- * new scoping rules
- * the standard C++ library
-
- Do not use the following C++ features:
- * dynamic_cast
- * run time type information
- * namespaces and using (use std:: where necessary)
-
- The new scoping rules say that the scope of a variable declared
- in a for statement is limited to the for loop. For example:
-
- for (int i = 0; i < 10; ++i) {
- // i is in scope here
- }
- // i is not in scope here
-
- for (int i = -10; i < 0; ++i) {
- // an entirely new i is in scope here
- }
- // i is not in scope here
-
- This is used routinely in synergy, but only in for loops. There
- is a macro for `for' in lib/base/common.h when building under
- Microsoft Visual C++ that works around the fact that that compiler
- doesn't follow the new scoping rules. Use the macro if your
- compiler uses the old scoping rules.
-
- * Standard C++ library
- The standard C++ library containers should always be used in favor
- of custom containers wherever reasonable. std::string is used
- throughout synergy but only as the CString typedef; always use
- CString, never std::string except in the arch library. Synergy
- avoids using auto_ptr due to some portability problems. Synergy
- makes limited use of standard algorithms and streams but they can
- be freely used in new code.
-
- * Limited multiple inheritance
- Classes should inherit implementation from at most one superclass.
- Inheriting implementation from multiple classes can have unpleasant
- consequences in C++ due to it's limited capabilities. Classes can
- inherit from any number of interface classes. An interface class
- provides only pure virtual methods. Synergy breaks this rule in
- IInterface which implements the virtual destructor for convenience.
-
- * No globals
- Avoid global variables. All global variables must be static, making
- it visible only with its source file. Most uses of global variables
- are better served by static data members of a class. Global
- constants are permitted in some circumstances.
-
- Also avoid global functions. Use public static member functions in
- a class instead.
-
- These rules are violated by the main source file for each program
- (except that the globals are still static). They could easily be
- rewritten to put all the variables and functions into a class but
- there's little to be gained by that.
-
- * Private data only
- If a class is plain-old-data (i.e. it has no methods) all of its
- data members should be public. Otherwise all of its data members
- should be private, not public or protected. This makes it much
- easier to track the use of a member when reading code. Protected
- data is not allowed because `protected' is a synonym for `public
- to my subclasses' and public data is a Bad Thing. While it might
- seem okay in this limited situation, the situation is not at all
- limited since an arbitrary number of classes can be derived,
- directly or indirectly, from the class and any of those classes
- have full access to the protected data.
-
- * Plain old data
- A class that merely contains data and doesn't perform operations
- on that data (other than reads and writes) is plain old data (POD).
- POD should have only public data members and non-copy constructors.
- It must not have any methods other than constructors, not even a
- destructor or assignment operators, nor protected or private data.
- Note that this definition of POD is not the definition used in the
- C++ standard, which limits the contained data types to types that
- have no constructors, destructors, or methods.
-
- * Avoid using friend
- Avoid declaring friend functions or classes. They're sometimes
- necessary for operator overloading. If you find it necessary to
- add friends to some class C, consider creating a utility class U.
- A utility class is declared as the only friend of C and provides
- only static methods. Each method forwards to a private method on
- an object of C type (passed as a parameter to the U's method).
- This makes maintenance easier since only U has friend access to C
- and finding any call to U is trivial (they're prefixed by U::).
-
- * Don't test for NULL when using `delete' or `delete[]'
- It's unnecessary since delete does it anyway.
-
-- Makefiles
- Automake's makefiles (named Makefile.am) have a few requirements:
- * Define the following macro at the top of the file:
- NULL =
- * Lists should have one item per line and end in $(NULL). For
- example:
- EXTRA_DIST = \
- kiwi.txt \
- mango.cpp \
- papaya.h \
- $(NULL)
- Indentation must use tabs in a makefile. Line continuations
- (backslashes) should be aligned using tabs.
- * Lists of files should be sorted alphabetically in groups (e..g
- source files, header files, then other files). Lists of
- subdirectories must be in the desired build order.
-
-- Source Formatting
- Every project has its own formatting style and no style satisfies
- everyone. New code should be consistent with existing code:
-
- * All files should include the copyright and license notice
- * Use tabs to indent
- * Tabs are 4 columns
- * Lines should not extend past the 80th column
- * Open braces ({) go on same line as introducing statement
- `for (i = 0; i < 10; ++i) {' not
- for (i = 0; i < 10; ++i)
- {
- * Close braces line up with introducing statement
- * Open brace for function is on a line by itself in first column
- * Close brace for function lines up with open brace
- * Always use braces on: if, else, for, while, do, switch
- * `else {' goes on its own line
- * Always explicitly test pointers against NULL
- e.g. `if (ptr == NULL)' not `if (ptr)'
- * Always explicitly test integral values against 0
- e.g. `if (i == 0)' not `if (i)'
- * Put spaces around binary operators and after statements
- e.g. `if (a == b) {' not `if(a==b){'
- * C'tor initializers are one per line, indented one tab stop
- * Other indentation should follow existing practice
- * Use Qt style comments for extraction by doxygen (i.e. //! and /*!)
- * Mark incomplete or buggy code with `FIXME'
-
-- Other
- * calls to LOG() should always be all on one line (even past column 80)
-
-
-Class Relationships
--------------------
-
-The doxygen documentation can help in understanding the relationships
-between objects. Use `make doxygen' in the top level directory to
-create the doxygen documentation into doc/doxygen/html. You must have
-doxygen installed, of course.
-
-FIXME -- high level overview of class relationships
-
-
-Portability
------------
-
-Synergy is mostly platform independent code but necessarily has
-platform dependent parts. The mundane platform dependent parts
-come from the usual suspects: networking, multithreading, file
-system, high resolution clocks, system logging, etc. Porting
-these parts is relatively straightforward.
-
-Synergy also has more esoteric platform dependent code. The
-functions for low-level event interception and insertion,
-warping the cursor position, character to keyboard event
-translation, clipboard manipulation, and screen saver control
-are often obscure and poorly documented. Unfortunately, these
-are exactly the functions synergy requires to do its magic.
-
-Porting synergy to a new platform requires the following steps:
-
-- Setting up the build
-- Adjusting lib/common/common.h
-- Implementing lib/arch
-- Implementing lib/platform
-- Tweaks
-
-Setting up the build:
-
-The first phase is simply to create the files necessary to build the
-other files. On Unix, synergy uses autoconf/automake which produces
-a `configure' script that generates makefiles. On Windows, synergy
-uses Visual C++ workspace and project files. If you're porting to
-another Unix variant, you may need to adjust `configure.in',
-`acinclude.m4', and Unix flavor dependent code in lib/arch. Note
-especially the SYSAPI_* and WINAPI_* macro definitions in
-ARCH_CFLAGS. Exactly one of each must be defined. It should also
-add AM_CONDITIONALs if a new SYSAPI_* or WINAPI_* was added.
-
-Adjusting lib/common/common.h:
-
-The lib/common/common.h header file is included directly or indirectly
-by every other file. Its primary job is to include config.h, which
-defines macros depending on what the 'configure' script discovered
-about the system. If the platform does not use the 'configure' script
-it must define the appropriate SYSAPI_* and WINAPI_* macro. It may
-also do other platform specific setup.
-
-Adjusting lib/common/BasicTypes.h:
-
-No changes should be necessary in BasicTypes.h. However, if the
-platform's system header files define SInt8, et al. you may need
-to adjust the typedefs to match the system's definitions.
-
-Implementing lib/arch:
-
-Much platform dependent code lives in lib/arch. There are several
-interface classes there and they must all be implemented for each
-platform. See the interface header files for more information.
-
-Platforms requiring special functions should create a class named
-CArchMiscXXX where XXX is the platform name. The class should have
-only static methods. Clients can include the appropriate header
-file and make calls directly, surrounded by a suitable #ifdef/#endif.
-
-If using automake, the Makefile.am should list the system specific
-files in a XXX_SOURCE_FILES macro where XXX matches the appropriate
-AM_CONDITIONAL symbol. XXX_SOURCE_FILES must be added to EXTRA_DIST
-and the following added above the INCLUDES macro:
-
- if XXX
- libarch_a_SOURCES = \
- $(COMMON_SOURCE_FILES) \
- $(XXX_SOURCE_FILES) \
- $(NULL)
- endif
-
-Implementing lib/platform:
-
-Most of the remaining platform dependent code lives in lib/platform.
-The code there implements platform dependent window, clipboard, keyboard
-and screen saver handling. If a platform is named XXX then the following
-classes should be derived and implemented:
-
- * CXXXClipboard : IClipboard
- Provides clipboard operations. Typically, this class will
- have helper classes for converting between various clipboard
- data formats.
-
- * CXXXEventQueueBuffer : IEventQueueBuffer
- Provides operations for waiting for, posting and retrieving events.
- Also provides operations for creating and deleting timers.
-
- * CXXXKeyState : CKeyState
- Provides operations for synthesizing key events and for mapping a
- key ID to a sequence of events to generate that key.
-
- * CXXXScreen : IScreen, IPrimaryScreen, ISecondaryScreen, IPlatformScreen
- Provides screen operations.
-
- * CXXXScreenSaver : IScreenSaver
- Provides screen saver operations.
-
-If using automake, the Makefile.am should list the window system
-specific files in a XXX_SOURCE_FILES macro where XXX matches the
-appropriate AM_CONDITIONAL symbol. XXX_SOURCE_FILES must be added
-to EXTRA_DIST and the following added above the INCLUDES macro:
-
- if XXX
- libplatform_a_SOURCES = $(XXX_SOURCE_FILES)
- endif
-
-Tweaks:
-
-Finally, each platform typically requires various adjustments here
-and there. In particular, synergyc.cpp and synergys.cpp usually
-require platform dependent code for the main entry point, parsing
-arguments, and reporting errors. Also, some platforms may benefit
-from a graphical user interface front end. These are generally
-not portable and synergy doesn't provide any infrastructure for
-the code common to any platform, though it may do so someday.
-There is, however, an implementation of a GUI front end for Windows
-that serves as an example.
diff --git a/doc/about.html b/doc/about.html
deleted file mode 100644
index aadd5764..00000000
--- a/doc/about.html
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-
- About Synergy
-
-
-
-With synergy, all the computers on your desktop form a single virtual
-screen. You use the mouse and keyboard of only one of the computers
-while you use all of the monitors on all of the computers.
-You tell synergy how many screens you have and their positions relative
-to one another. Synergy then detects when the mouse moves off
-the edge of a screen and jumps it instantly to the neighboring screen.
-The keyboard works normally on each screen; input goes to whichever
-screen has the cursor.
-
-In this example, the user is moving the mouse from left to right.
-When the cursor reaches the right edge of the left screen it jumps
-instantly to the left edge of the right screen.
-
-
-
-You can arrange screens side-by-side, above and below one another,
-or any combination. You can even have a screen jump to the opposite
-edge of itself. Synergy also understands multiple screens attached
-to the same computer.
-
-Running a game and don't want synergy to jump screens? No problem.
-Just toggle Scroll Lock. Synergy keeps the cursor on the same screen
-when Scroll Lock is on. (This can be configured to another hot key.)
-
-Do you wish you could cut and paste between computers? Now you can!
-Just copy text, HTML, or an image as you normally would on one screen
-then switch to another screen and paste it. It's as if all your
-computers shared a single clipboard (and separate primary selection for
-you X11 users). It even converts newlines to each computer's native
-form so cut and paste between different operating systems works
-seamlessly. And it does it all in Unicode so any text can be copied.
-
-
-Do you use a screen saver? With synergy all your screen savers act in
-concert. When one starts they all start. When one stops they all
-stop. And, if you require a password to unlock the screen, you'll
-only have to enter a password on one screen.
-
-If you regularly use multiple computers on one desk, give synergy a
-try. You'll wonder how you ever lived without it.
-
-You can configure synergy to start automatically when the computer
-starts or when you log in. The steps to do that are different on
-each platform. Note that changing these configurations doesn't
-actually start or stop synergy. The changes take effect the next
-time you start your computer or log in.
-
-
Windows
-
-Start synergy and click the Configure... button
-by the text Automatic Startup. The
-Auto Start dialog will pop up.
-If an error occurs then correct the problem and click
-Configure again.
-
-On the Auto Start dialog you'll configure
-synergy to start or not start automatically when the computer starts
-or when you log in. You need Administrator access rights to start
-synergy automatically when the computer starts. The dialog will let
-you know if you have sufficient permission.
-
-If synergy is already configured to automatically start then there
-will be two Uninstall buttons, at most one
-of which is enabled. Click the enabled button, if any, to tell
-synergy to not start automatically.
-
-If synergy is not configured to start automatically then there will
-be two Install buttons. If you have
-sufficient permission to have synergy start automatically when the
-computer does then the Install button in the
-When Computer Starts box will be enabled.
-Click it to have synergy start for all users when the computer starts.
-In this case, synergy will be available during the login screen.
-Otherwise, click the Install button in the
-When You Log In box to have synergy
-automatically start when you log in.
-
-
Unix
-
-Synergy requires an X server. That means a server must be
-running and synergy must be authorized to connect to that server.
-It's best to have the display manager start synergy. You'll need
-the necessary (probably root) permission to modify the display
-manager configuration files. If you don't have that permission
-you can start synergy after logging in via the
-.xsession file.
-
-Typically, you need to edit three script files. The first file
-will start synergy before a user logs in, the second will kill
-that copy of synergy, and the third will start it again after
-the user logs in.
-
-The contents of the scripts varies greatly between systems so
-there's no one definite place where you should insert your edits.
-However, these scripts often exit before reaching the bottom so
-put the edits near the top of the script.
-
-The location and names of these files depend on the operating
-system and display manager you're using. A good guess for the
-location is /etc/X11. If you use kdm
-then try looking in /etc/kde3 or
-/usr/kde/version/share/config.
-Typical file names are:
-
-
-
-
xdm
kdm
gdm
-
1
xdm/Xsetup
kdm/Xsetup
gdm/Init/Default (*)
-
2
xdm/Xstartup
kdm/Xstartup
gdm/PostLogin/Default (*)
-
3
xdm/Xsession
kdm/Xsession
gdm/Sessions/Default (*, **)
-
-
-
-*) The Default file is used if no other
-suitable file is found. gdm will try
-displayname (e.g. :0)
-and hostname (e.g. somehost),
-in that order, before and instead of Default.
-
-**) gdm may use gdm/Xsession,
-xdm/Xsession or
-dm/Xsession if
-gdm/Sessions/Default doesn't exist.
-
-For a synergy client, add the following to the first file:
-
- /usr/bin/killall synergyc
- sleep 1
- /usr/bin/synergyc [<options>] synergy-server-hostname
-
-Of course, the path to synergyc depends on where you installed it
-so adjust as necessary.
-
-Add to the second file:
-
- /usr/bin/killall synergyc
- sleep 1
-
-
-And to the third file:
-
- /usr/bin/killall synergyc
- sleep 1
- /usr/bin/synergyc [<options>]synergy-server-hostname
-
-Note that <options>
-must not include
--f or --no-daemon or
-the script will never exit and you won't be able to log in.
-
-The changes are the same for the synergy server except replace
-synergyc with synergys
-and use the appropriate synergys command
-line options. Note that the
-first script is run as root so synergys will look for the configuration
-file in root's home directory then in /etc.
-Make sure it exists in one of those places or use the
---config config-pathname
-option to specify its location.
-
-Note that some display managers (xdm and kdm, but not gdm) grab
-the keyboard and do not release it until the user logs in for
-security reasons. This prevents a synergy server from sharing
-the mouse and keyboard until the user logs in. It doesn't
-prevent a synergy client from synthesizing mouse and keyboard
-input, though.
-
-If you're configuring synergy to start only after you log in then edit
-your .xsession file. Add just what you
-would add to the third file above.
-
-
Mac OS X
-
-[By Tor Slettnes]
-
-There are three different ways to automatically start Synergy
-(client or server) on Mac OS X:
-
-
-
- The first method involves creating a StartupItem
- at the system level, which is executed when the machine starts up
- or shuts down. This script will run in the background, and
- relaunch synergy as needed.
-
-
-
Pros:
-
- Synergy is persistent, so this allows for a multi-user
- setup and interactive logins.
-
-
Cons:
-
- The synergy process does not have access to the clipboard
- of the logged-in user.
-
-
-
-
-
- The second method will launch Synergy from the
- LoginWindow application, once a particular
- user has logged in.
-
-
-
Pros:
-
- The synergy process inherits the
- $SECURITYSESSIONID environment variable,
- and therefore copy/paste works.
-
-
Cons:
-
- Once the user logs out, synergy dies, and no remote
- control is possible.
-
-
-
-
-
- The third method is to launch a startup script from the
- "Startup Items" tab under System Preferences -> Accounts.
-
-
-
Pros:
-
- Does not require root (Administrator) access
-
-
Cons:
-
- Once the user logs out, synergy dies, and no remote
- control is possible.
-
-
-
-
-
-The text below describes how to implement a Synergy client using
-the first two methods simultaneously. This way, Synergy is
-always running, and the clipboard is available when someone is
-logged in. A Mac OS X Synergy server setup will be quite similar.
-
-1. Create a System Level Startup Item
-
-
-
- Open a Terminal window, and become root:
-
- $ sudo su -
-
-
-
- Create a folder for this item:
-
- # mkdir -p /Library/StartupItems/Synergy
-
-
-
- In this folder, create a new script file by the same name as
- the directory itself, Synergy. This script
- should contain the following text:
-
- However, replace synergy-server with the actual
- name or IP address of your Synergy server.
-
- Note that this scripts takes care not to start
- Synergy if another instance is currently running. This
- allows it to run in the background even when synergy is also
- started independently, e.g. from the LoginWindow
- application as described below.
-
-
- Make this script executable:
-
- # chmod 755 /Library/StartupItems/Synergy/Synergy
-
-
-
- In the same folder, create a file named
- StartupParameters.plist containing:
-
-Any errors, as well as output from Synergy, will be shown in
-your terminal window.
-
-Next time you reboot, Synergy should start automatically.
-
-2. Run Synergy When a User Logs In
-
-Each time a user successfully logs in via the console, the
-LoginWindow application creates a unique session
-cookie and stores it in the environment variable
-$SECURITYSESSIONID. For copy and paste operations
-to work, Synergy needs access to this environment variable. In
-other words, Synergy needs to be launched (directly or
-indirectly) via the LoginWindow application.
-
-However, in order to kill any synergy processes started at the
-system level (as described above), we need root access. Thus,
-launching Synergy within the User's environment (e.g. via the
-Startup Items tab in System Preferences -> Accounts) is not an
-option that work in conjunction with the method above.
-
-Fortunately, the LoginWindow application provides
-a "hook" for running a custom program (as root, with the username provided as
-the first and only argument) once a user has authenticated, but
-before the user is logged in.
-
-Unfortunately, only one such hook is available. If you have
-already installed a Login Hook, you may need to add the text
-from below to your existing script, rather than creating a new
-one.
-
-
-
- Launch a Terminal window, and become root:
-
- $ sudo su -
-
-
-
-
- Find out if a LoginHook already exists:
-
- # defaults read com.apple.loginwindow LoginHook
-
- This will either show the full path to a script or
- executable file, or the text:
-
- The domain/default pair of (com.apple.loginwindow, LoginHook) does not exist
-
- In the former case, you need to modify your existing script,
- and/or create a "superscript" which in turn calls your
- existing script plus the one we will create here.
-
- The rest of this text assumes that this item did not already
- exist, and that we will create a new script.
-
-
- Create a folder in which we will store our custom startup
- script:
-
- # mkdir -p /Library/LoginWindow
-
-
-
- In this folder, create a new script file (let's name it
- LoginHook.sh), containing the following text:
-
-
-#!/bin/sh
-prog=(/usr/local/bin/synergyc -n $(hostname -s) ip-address-of-server)
-
-### Stop any currently running Synergy client
-killall ${prog[0]##*/}
-
-### Start the new client
-exec "${prog[@]}"
-
-
-
- Make this script executable:
-
- # chmod 755 /Library/LoginWindow/LoginHook.sh
-
-
-
- Create a login hook to call the script you just created:
-
- # defaults write com.apple.loginwindow LoginHook /Library/LoginWindow/LoginHook.sh
-
-
-
-
-More information on setting up login hooks can be found at
-Apple.
-
-When running the Synergy client, you may need to use the IP
-address of the Synergy server rather than its host name.
-Specifically, unless you have listed the server in your
-local /etc/hosts file or in your local NetInfo
-database, name services (i.e. DNS) may not yet be available by the
-time you log in after power-up. synergyc will
-quit if it cannot resolve the server name.
-
-(This is not an issue with the previous method, because the
-StartupParameters.plist file specifies that this
-script should not be run until "network" is available).
-
-3. Good Luck!
-
-Remember to look in your system log on both your server and your
-client(s) for clues to any problems you may have
-(/var/log/system.log on your OS X box, typically
-/var/log/syslog on Linux boxes).
-
-so synergy can find the X11 includes and libraries.
-
-
Building
-
-
Windows
-
- Open a command prompt window (cmd.exe or command.exe). If necessary
- run vcvars.bat, created when VC++ or Visual Studio was installed. (Use
- search to find it.) It's necessary to run the file if you didn't have
- the installer set up environment variables for you. Then enter:
-
- nmake /nologo /f Makefile.win
-
- This will build the programs into build\Release.
-
-
Unix or Mac OS X
-
- Simply enter:
-
- make
-
- This will build the client and server and leave them in their
- respective source directories.
-
-
-
-
Installing
-
-
Windows
-
- You'll need NSIS,
- the Nullsoft Scriptable Install System. As in the building on Windows
- description above, enter:
-
- nmake /nologo /f Makefile.win installer
-
- to build build\Release\SynergyInstaller.exe. Run
- this to install synergy.
-
- Alternatively, you can simply copy the following files from the
- build\Release
- directory to a directory you choose (perhaps under the
- Program Files directory):
-
-
synergy.exe
-
synergyc.exe
-
synergys.exe
-
synrgyhk.dll
-
-
-
Unix or Mac OS X
-
-
- make install
-
- will install the client and server into
- /usr/local/bin unless you
- specified a different directory when you ran configure.
-
-
-
-
diff --git a/doc/configuration.html b/doc/configuration.html
deleted file mode 100644
index 6c1c8baa..00000000
--- a/doc/configuration.html
+++ /dev/null
@@ -1,686 +0,0 @@
-
-
-
-
-
-
-
- Synergy Configuration Guide
-
-
-
-
Synergy Configuration File Format
-
-The synergy server requires configuration. It will try certain
-pathnames to load the configuration file if you don't specify a
-path using the --config command line
-option. synergys --help reports those
-pathnames.
-
-The configuration file is a plain text file. Use any text editor
-to create the configuration file. The file is broken into sections
-and each section has the form:
-
- section: name
- args
- end
-
-Comments are introduced by # and continue to
-the end of the line. name must be one of the
-following:
-
-
screens
-
aliases
-
links
-
options
-
-See below for further explanation of each section type. The
-configuration file is case-sensitive so Section,
-SECTION, and section
-are all different and only the last is valid. Screen names are the
-exception; screen names are case-insensitive.
-
-The file is parsed top to bottom and names cannot be used before
-they've been defined in the screens or
-aliases sections. So the
-links and aliases
-must appear after the screens and links
-cannot refer to aliases unless the aliases
-appear before the links.
-
-
screens
-
-args is a list of screen names, one name per
-line, each followed by a colon. Names are arbitrary strings but they
-must be unique. The hostname of each computer is recommended. (This
-is the computer's network name on win32 and the name reported by the
-program hostname on Unix and OS X. Note
-that OS X may append .local to the name you
-gave your computer; e.g. somehost.local.)
-There must be a screen name for the server and each client. Each
-screen can specify a number of options. Options have the form
-name =
-value and are listed one per line
-after the screen name.
-
-Example:
-
- section: screens
- moe:
- larry:
- halfDuplexCapsLock = true
- halfDuplexNumLock = true
- curly:
- meta = alt
- end
-
-This declares three screens named moe,
-larry, and curly.
-Screen larry has half-duplex Caps Lock and
-Num Lock keys (see below) and screen curly
-converts the meta modifier key to the alt modifier key.
-
-A screen can have the following options:
-
-
halfDuplexCapsLock = {true|false}
-
- This computer has a Caps Lock key that doesn't report a
- press and a release event when the user presses it but
- instead reports a press event when it's turned on and a
- release event when it's turned off. If Caps Lock acts
- strangely on all screens then you may need to set this
- option to true
- on the server screen. If it acts strangely on one
- screen then that screen may need the option set to
- true.
-
-
halfDuplexNumLock = {true|false}
-
- This is identical to halfDuplexCapsLock
- except it applies to the Num Lock key.
-
-
halfDuplexScrollLock = {true|false}
-
- This is identical to halfDuplexCapsLock
- except it applies to the Scroll Lock key. Note that, by default,
- synergy uses Scroll Lock to keep the cursor on the current screen. That
- is, when Scroll Lock is toggled on, the cursor is locked to the screen
- that it's currently on. You can use that to prevent accidental switching.
- You can also configure other hot keys to do that; see
- lockCursorToScreen.
-
- This option works around a bug in the XTest extension
- when used in combination with Xinerama. It affects
- X11 clients only. Not all versions of the XTest
- extension are aware of the Xinerama extension. As a
- result, they do not move the mouse correctly when
- using multiple Xinerama screens. This option is
- currently true by default. If
- you know your XTest extension is Xinerama aware then set
- this option to false.
-
-
shift = {shift|ctrl|alt|meta|super|none}
- ctrl = {shift|ctrl|alt|meta|super|none}
- alt = {shift|ctrl|alt|meta|super|none}
- meta = {shift|ctrl|alt|meta|super|none}
- super = {shift|ctrl|alt|meta|super|none}
-
- Map a modifier key pressed on the server's keyboard to
- a different modifier on this client. This option only
- has an effect on a client screen; it's accepted and
- ignored on the server screen.
-
- You can map, say, the shift key to shift (the default),
- ctrl, alt, meta, super or nothing. Normally, you
- wouldn't remap shift or ctrl. You might, however, have
- an X11 server with meta bound to the Alt keys. To use
- this server effectively with a windows client, which
- doesn't use meta but uses alt extensively, you'll want
- the windows client to map meta to alt (using
- meta = alt).
-
-
-
-
aliases
-
- args is a list of screen names just like
- in the screens section except each screen
- is followed by a list of aliases, one per line, not followed
- by a colon. An alias is a screen name and must be unique. During
- screen name lookup each alias is equivalent to the screen name it
- aliases. So a client can connect using its canonical screen name
- or any of its aliases.
-
- Example:
-
- section: aliases
- larry:
- larry.stooges.com
- curly:
- shemp
- end
-
- Screen larry is also known as
- larry.stooges.com and can connect as
- either name. Screen curly is also
- known as shemp (hey, it's just an example).
-
-
links
-
- args is a list of screen names just like
- in the screens section except each screen
- is followed by a list of links, one per line. Each link has the
- form {left|right|up|down}[<range>] =
- name[<range>]. A link indicates which
- screen is adjacent in the given direction.
-
- Each side of a link can specify a range which defines a portion
- of an edge. A range on the direction is the portion of edge you can
- leave from while a range on the screen is the portion of edge you'll
- enter into. Ranges are optional and default to the entire edge. All
- ranges on a particular direction of a particular screen must not
- overlap.
-
- A <range> is written as (<start>,<end>).
- Both start and end
- are percentages in the range 0 to 100, inclusive. The start must be
- less than the end. 0 is the left or top of an edge and 100 is the
- right or bottom.
-
- Example:
-
- section: links
- moe:
- right = larry
- up(50,100) = curly(0,50)
- larry:
- left = moe
- up(0,50) = curly(50,100)
- curly:
- down(0,50) = moe
- down(50,100) = larry(0,50)
- end
-
- This indicates that screen larry is to
- the right of screen moe (so moving the
- cursor off the right edge of moe would
- make it appear at the left edge of larry),
- the left half of
- curly is above the right half of
- moe,
- moe is to the left of
- larry (edges are not necessarily symmetric
- so you have to provide both directions), the right half of
- curly is above the left half of
- larry, all of moe
- is below the left half of curly, and the
- left half of larry is below the right half of
- curly.
-
- Note that links do not have to be
- symmetrical; for instance, here the edge between
- moe and curly
- maps to different ranges depending on if you're going up or down.
- In fact links don't have to be bidirectional. You can configure
- the right of moe to go to
- larry without a link from the left of
- larry to moe.
- It's possible to configure a screen with no outgoing links; the
- cursor will get stuck on that screen unless you have a hot key
- configured to switch off of that screen.
-
-
options
-
- args is a list of lines of the form
- name = value. These set the global
- options.
-
- The server will expect each client to send a message no
- less than every N milliseconds.
- If no message arrives from a client within
- 3N seconds the server forces that
- client to disconnect.
-
- If synergy fails to detect clients disconnecting while
- the server is sleeping or vice versa, try using this
- option.
-
-
switchCorners = <corners>
-
- Synergy won't switch screens when the mouse reaches the edge of
- the screen if it's in a listed corner. The size of all corners
- is given by the switchCornerSize
- option.
-
- Corners are specified by a list using the following names:
-
-
none -- no corners
-
top-left -- the top left corner
-
top-right -- the top right corner
-
bottom-left -- the bottom left corner
-
bottom-right -- the bottom right corner
-
left -- top and bottom left corners
-
right -- top and bottom right corners
-
top -- left and right top corners
-
bottom -- left and right bottom corners
-
all -- all corners
-
-
- The first name in the list is one of the above names and defines
- the initial set of corners. Subsequent names are prefixed with
- + or - to add the corner to or remove the corner from the set,
- respectively. For example:
-
-
- all -left +top-left
-
-
- starts will all corners, removes the left corners (top and bottom)
- then adds the top-left back in, resulting in the top-left,
- bottom-left and bottom-right corners.
-
-
switchCornerSize = N
-
- Sets the size of all corners in pixels. The cursor must be within
- N pixels of the corner to be considered
- to be in the corner.
-
-
switchDelay = N
-
- Synergy won't switch screens when the mouse reaches the
- edge of a screen unless it stays on the edge for
- N
- milliseconds. This helps prevent unintentional
- switching when working near the edge of a screen.
-
-
switchDoubleTap = N
-
- Synergy won't switch screens when the mouse reaches the
- edge of a screen unless it's moved away from the edge
- and then back to the edge within N
- milliseconds. With
- the option you have to quickly tap the edge twice to
- switch. This helps prevent unintentional switching
- when working near the edge of a screen.
-
-
screenSaverSync = {true|false}
-
- If set to false then synergy
- won't synchronize screen savers. Client screen savers
- will start according to their individual configurations.
- The server screen saver won't start if there is input,
- even if that input is directed toward a client screen.
-
-
relativeMouseMoves = {true|false}
-
- If set to true then secondary
- screens move the mouse using relative rather than absolute
- mouse moves when and only when the cursor is locked to the
- screen (by Scroll Lock or a configured
- hot key).
- This is intended to make synergy work better with certain
- games. If set to false or not
- set then all mouse moves are absolute.
-
-
keystroke(key) = actions
-
- Binds the key combination key to the
- given actions. key
- is an optional list of modifiers (shift,
- control, alt,
- meta or super)
- optionally followed by a character or a key name, all separated by
- + (plus signs). You must have either
- modifiers or a character/key name or both. See below for
- valid key names.
-
- Keyboard hot keys are handled while the cursor is on the primary
- screen and secondary screens. Separate actions can be assigned
- to press and release.
-
-
mousebutton(button) = actions
-
- Binds the modifier and mouse button combination
- button to the given
- actions. button
- is an optional list of modifiers (shift,
- control, alt,
- meta or super)
- followed by a button number. The primary button (the
- left button for right handed users) is button 1, the middle button
- is 2, etc.
-
- Mouse button actions are not handled while the cursor is on the
- primary screen. You cannot use these to perform an action while
- on the primary screen. Separate actions can be assigned to press
- and release.
-
-
- You can use both the switchDelay and
- switchDoubleTap options at the same
- time. Synergy will switch when either requirement is satisfied.
-
-Actions are two lists of individual actions separated
-by commas. The two lists are separated by a semicolon. Either list can be
-empty and if the second list is empty then the semicolon is optional. The
-first list lists actions to take when the condition becomes true (e.g. the
-hot key or mouse button is pressed) and the second lists actions to take
-when the condition becomes false (e.g. the hot key or button is released).
-The condition becoming true is called activation and becoming false is
-called deactivation.
-Allowed individual actions are:
-
-
keystroke(key[,screens])
-
keyDown(key[,screens])
-
keyUp(key[,screens])
-
- Synthesizes the modifiers and key given in key
- which has the same form as described in the
- keystroke option. If given,
- screens lists the screen or screens to
- direct the event to, regardless of the active screen. If not
- given then the event is directed to the active screen only.
- (Due to a bug, keys cannot be directed to the server while on a
- client screen.)
-
- keyDown synthesizes a key press and
- keyUp synthesizes a key release.
- keystroke synthesizes a key press on
- activation and a release on deactivation and is equivalent to
- a keyDown on activation and
- keyUp on deactivation.
-
- screens is either *
- to indicate all screens or a colon (:) separated list of screen
- names. (Note that the screen name must have already been encountered
- in the configuration file so you'll probably want to put actions at
- the bottom of the file.)
-
-
mousebutton(button)
-
mouseDown(button)
-
mouseUp(button)
-
- Synthesizes the modifiers and mouse button given in
- button
- which has the same form as described in the
- mousebutton option.
-
- mouseDown synthesizes a mouse press and
- mouseUp synthesizes a mouse release.
- mousebutton synthesizes a mouse press on
- activation and a release on deactivation and is equivalent to
- a mouseDown on activation and
- mouseUp on deactivation.
-
-
lockCursorToScreen(mode)
-
- Locks the cursor to or unlocks the cursor from the active screen.
- mode can be off
- to unlock the cursor, on to lock the
- cursor, or toggle to toggle the current
- state. The default is toggle. If the
- configuration has no lockCursorToScreen
- action and Scroll Lock is not used as a hot key then Scroll Lock
- toggles cursor locking.
-
-
switchToScreen(screen)
-
- Jump to screen with name or alias screen.
-
-
switchInDirection(dir)
-
- Switch to the screen in the direction dir,
- which may be one of left,
- right, up or
- down.
-
-
keyboardBroadcast(mode[,screens])
-
- Turns broadcasting of keystrokes to multiple screens on and off. When
- turned on all key presses and releases are sent to all of the screens
- listed in screens. If not given, empty or
- * then keystrokes are broadcast to all screens.
- (However, due to a bug, keys cannot be sent to the server while on a
- client screen.)
-
- mode can be off
- to turn broadcasting off, on to turn it
- on, or toggle to toggle the current
- state. The default is toggle.
-
- screens is either *
- to indicate all screens or a colon (:) separated list of screen
- names. (Note that the screen name must have already been encountered
- in the configuration file so you'll probably want to put actions at
- the bottom of the file.)
-
- Multiple keyboardBroadcast actions may be
- configured with different screens. The most
- recently performed action defines the screens to broadcast to.
-
-
-
-Examples:
-
-
keystroke(alt+left) = switchInDirection(left)
-
- Switches to the screen to left when the left arrow key is pressed
- in combination with the Alt key.
-
-Additionally, a name of the form \uXXXX where
-XXXX is a hexadecimal number is interpreted as
-a unicode character code.
-Key and modifier names are case-insensitive. Keys that don't exist on
-the keyboard or in the default keyboard layout will not work.
-
-To avoid spam bots, the above email addresses have ".no_spam"
-hidden near the end. If you copy and paste the text be sure to
-remove it.
-
-Please check the
-
-bug list before reporting a bug. You may also find answers at the
-synergy forums.
-Emails for help asking questions answered on this site will go unanswered.
-
-Synergy is reasonably well commented so reading the source code
-should be enough to understand particular pieces. See the
-doc/PORTING
-file in the synergy source code for more high-level information.
-
-
How it works
-
-The theory behind synergy is simple: the server captures mouse,
-keyboard, clipboard, and screen saver events and forwards them to
-one or more clients. If input is directed to the server itself
-then the input is delivered normally. In practice, however, many
-complications arise.
-
-First, different keyboard mappings can produce different characters.
-Synergy attempts to generate the same character on the client as
-would've been generated on the server, including appropriate modifier
-keys (like Control and Alt). Non-character keys like Shift are also
-synthesized if possible. Sometimes the client simply cannot create
-the character or doesn't have a corresponding non-character key and
-synergy must discard the event. Note that synergy won't necessarily
-synthesize an event for the corresponding key on the client's
-keyboard. For example, if the client or server can't distinguish
-between the left and right shift keys then synergy can't be certain
-to synthesize the shift on the same side of the keyboard as the user
-pressed.
-
-Second, different systems have different clipboards and clipboard
-formats. The X window system has a system-wide selection and
-clipboard (and yet other buffers) while Microsoft Windows has only
-a system-wide clipboard. Synergy has to choose which of these
-buffers correspond to one another. Furthermore, different systems
-use different text encodings and line breaks. Synergy mediates and
-converts between them.
-
-Finally, there are no standards across operating systems for some
-operations that synergy requires. Among these are: intercepting
-and synthesizing events; enabling, disabling, starting and stopping
-the screen saver; detecting when the screen saver starts; reading
-and writing the clipboard(s).
-
-All this means that synergy must be customized to each operating
-system (or windowing system in the case of X windows). Synergy
-breaks platform differences into two groups. The first includes
-the mundane platform dependent things: file system stuff,
-multithreading, network I/O, multi-byte and wide character
-conversion, time and sleeping, message display and logging, and
-running a process detached from a terminal. This code lives in
-lib/arch.
-
-The second includes screen and window management handling, user
-event handling, event synthesis, the clipboards, and the screen
-saver. This code lives in lib/platform.
-
-For both groups, there are particular classes or interfaces that
-must be inherited and implemented for each platform. See the
-doc/PORTING file in the synergy source
-code for more information.
-
-
Auto-generated Documentation
-
-Synergy can automatically generate documentation from the comments
-in the code using doxygen.
-Use make doxygen to build it yourself
-from the source code into the doc/doxygen/html
-directory.
-
-
-
-
-
diff --git a/doc/doxygen.cfg.in b/doc/doxygen.cfg.in
deleted file mode 100644
index 4abf52f9..00000000
--- a/doc/doxygen.cfg.in
+++ /dev/null
@@ -1,898 +0,0 @@
-# Doxyfile 1.2.13.1
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-# TAG = value [value, ...]
-# For lists items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# General configuration options
-#---------------------------------------------------------------------------
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
-# by quotes) that should identify the project.
-
-PROJECT_NAME = @PACKAGE@
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER = @VERSION@
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY = doc/doxygen
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French,
-# German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Polish,
-# Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish.
-
-OUTPUT_LANGUAGE = English
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL = NO
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC = NO
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES = YES
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these class will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES = NO
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF = YES
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited
-# members of a class in the documentation of that class as if those members were
-# ordinary class members. Constructors, destructors and assignment operators of
-# the base classes will not be shown.
-
-INLINE_INHERITED_MEMB = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. It is allowed to use relative paths in the argument list.
-
-STRIP_FROM_PATH =
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS = YES
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower case letters. If set to YES upper case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# users are adviced to set this option to NO.
-
-CASE_SENSE_NAMES = YES
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful is your file systems
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES = NO
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS = YES
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES = YES
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like the Qt-style comments (thus requiring an
-# explict @brief command for a brief description.
-
-JAVADOC_AUTOBRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# reimplements.
-
-INHERIT_DOCS = YES
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE = 4
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST = YES
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES =
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or define consist of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and defines in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES = 30
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
-# only. Doxygen will then generate output that is more tailored for C.
-# For instance some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C = NO
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED = YES
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text.
-
-WARN_FORMAT =
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT = .
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp
-# *.h++ *.idl
-
-FILE_PATTERNS = *.cpp *.h
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE =
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories.
-
-EXCLUDE_PATTERNS =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command , where
-# is the value of the INPUT_FILTER tag, and is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output.
-
-INPUT_FILTER =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse.
-
-FILTER_SOURCE_FILES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-
-SOURCE_BROWSER = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES = NO
-
-# If the REFERENCED_BY_RELATION tag is set to YES (the default)
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES (the default)
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX = YES
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX = 3
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT =
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header.
-
-HTML_HEADER =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER =
-
-# The HTML_STYLESHEET tag can be used to specify a user defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet
-
-HTML_STYLESHEET =
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the Html help documentation and to the tree view.
-
-TOC_EXPAND = NO
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
-
-DISABLE_INDEX = NO
-
-# This tag can be used to set the number of enum values (range [1..20])
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE = 4
-
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript and frames is required (for instance Mozilla, Netscape 4.0+,
-# or Internet explorer 4.0+). Note that for large projects the tree generation
-# can take a very long time. In such cases it is better to disable this feature.
-# Windows users are probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT =
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, a4wide, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS = NO
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX = NO
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimised for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT =
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assigments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT =
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION =
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_XML = NO
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION = YES
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_PREDEFINED tags.
-
-EXPAND_ONLY_PREDEF = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed.
-
-PREDEFINED =
-
-# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all function-like macros that are alone
-# on a line and do not end with a semicolon. Such function macros are typically
-# used for boiler-plate code, and will confuse the parser if not removed.
-
-SKIP_FUNCTION_MACROS = YES
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES tag can be used to specify one or more tagfiles.
-
-TAGFILES =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS = NO
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or
-# super classes. Setting the tag to NO turns the diagrams off. Note that this
-# option is superceded by the HAVE_DOT option below. This is only a fallback. It is
-# recommended to install and use dot, since it yield more powerful graphs.
-
-CLASS_DIAGRAMS = NO
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT = @HAVE_DOT@
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH = YES
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS = YES
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH = YES
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY = YES
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-
-DOT_PATH =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS =
-
-# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than
-# this value, doxygen will try to truncate the graph, so that it fits within
-# the specified constraint. Beware that most browsers cannot cope with very
-# large images.
-
-MAX_DOT_GRAPH_WIDTH = 1024
-
-# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than
-# this value, doxygen will try to truncate the graph, so that it fits within
-# the specified constraint. Beware that most browsers cannot cope with very
-# large images.
-
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermedate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP = YES
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME =
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL =
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL =
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH =
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH =
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS =
diff --git a/doc/faq.html b/doc/faq.html
deleted file mode 100644
index b9696391..00000000
--- a/doc/faq.html
+++ /dev/null
@@ -1,266 +0,0 @@
-
-
-
-
-
-
-
- Synergy Frequently Asked Questions
-
-
-
-
Why doesn't ctrl+alt+del work on secondary screens?
-
- Synergy isn't able to capture ctrl+alt+del on PC compatible
- primary screens because it's handled completely differently than
- other keystrokes. However, when the mouse is on a client
- screen, pressing ctrl+alt+pause will simulate ctrl+alt+del
- on the client. (A client running on Windows NT, 2000, or XP
- must be configured to autostart when the computer starts for
- this to work.)
-
- On a primary screen running on an OS X system, you can use
- ctrl+command+del. Using the pause key isn't necessary since OS X
- doesn't treat ctrl+command+del differently. And using the pause
- key isn't usually possible because there isn't one on most OS X
- systems. Use command instead of option/alt because
- the command key, not the option/alt key, maps to alt on windows.
- The reason is because the command key is in the same physical
- location and performs the same general function (menu shortcuts)
- as alt on a windows system. This mapping can be modified in
- the configuration.
-
- On mac laptops, the key labeled "delete" is actually backspace
- and ctrl+command+delete won't work. However fn+delete really
- is delete so fn+ctrl+command+delete will act as ctrl+alt+del
- on a windows secondary screen.
-
-
Can the server and client be using different operating systems?
-
- Yes. The synergy network protocol is platform neutral so
- synergy doesn't care what operating systems are running on
- the server and clients.
-
-
What's the difference between synergy and
-x2x, x2vnc, etc?
-
- Unlike x2x, synergy supports any number of computers and
- it doesn't require X on Microsoft Windows platforms. It
- also has more advanced clipboard support and synchronizes
- screensavers. x2vnc is also limited to two computers,
- requires the separate vnc package, and is really only
- appropriate for using an X system to control a non-X system.
- However, the right tool for the job is whatever tool works
- best for you.
-
-
What does "Cannot initialize hook library" mean?
-
- This error can occur on a synergy server running on a
- Microsoft Windows operating system. It means that synergy
- is already running or possibly was not shut down properly.
- If it's running then first end the synergy task. If it's
- not then try logging off and back on or rebooting then
- starting synergy again.
-
-
What security/encryption does synergy provide?
-
- Synergy provides no built-in encryption or authentication.
- Given that, synergy should not be used on or over any untrusted
- network, especially the Internet. It's generally fine for home
- networks. Future versions may provide built-in encryption and
- authentication.
-
- Strong encryption and authentication is available through SSH
- (secure shell). Run the SSH daemon (i.e. server) on the same
- computer that you run the synergy server. It requires no
- special configuration to support synergy. On each synergy
- client system, run SSH with port forwarding:
-
- where server-hostname is the name of the
- SSH/synergy server.
- Once ssh authenticates itself, start the synergy client
- normally except use localhost or
- 127.0.0.1 as the server's
- address. SSH will then encrypt all communication on behalf of
- synergy. Authentication is handled by the SSH authentication.
-
- A free implementation of SSH for Linux and many Unix systems is
- OpenSSH. For
- Windows there's a port of OpenSSH using
- Cygwin.
-
-
What should I call my screens in the configuration?
-
- You can use any unique name in the configuration file for each
- screen but it's easiest to use the hostname of the computer.
- That's the computer name not including the domain. For example,
- a computer with the fully qualified domain name xyz.foo.com has
- the hostname xyz. There should also be an alias for xyz to
- xyz.foo.com. If you don't use the computer's hostname, you
- have to tell synergy the name of the screen using a command line
- option, or the startup dialog on Windows.
-
- Some systems are configured to report the fully qualified domain
- name as the hostname. For those systems it will be easier to use
- the FQDN as the screen name. Also note that a Mac OS X system
- named xyz may report its hostname as
- xyz.local. If that's the case for you
- then use xyz.local as the screen name.
-
-
Why do my Caps-Lock, Num-Lock, Scroll-Lock keys act funny?
-
- Some systems treat the Caps-Lock, Num-Lock, and Scroll-Lock keys
- differently than all the others. Whereas most keys report going down
- when physically pressed and going up when physically released, on
- these systems the Caps-Lock and Num-Lock keys report going down
- when being activated and going up when being deactivated. That
- is, when you press and release, say, Caps-Lock to activate it, it
- only reports going down, and when you press and release to
- deactivate it, it only reports going up. This confuses synergy.
-
- You can solve the problem by changing your configuration file.
- In the screens section, following each screen that has the
- problem, any or all of these lines as appropriate:
-
- Then restart synergy on the server or reload the configuration.
-
-
Can synergy share the display in addition to the mouse and keyboard?
-
- No. Synergy is a KM solution not a KVM (keyboard, video, mouse)
- solution. However, future versions will probably support KVM.
- Hopefully, this will make synergy suitable for managing large
- numbers of headless servers.
-
-
Can synergy do drag and drop between computers?
-
- No. That's a very cool idea and it'll be explored. However, it's
- also clearly difficult and may take a long time to implement.
-
-
Does AltGr/Mode-Switch/ISO_Level3_Shift work?
-
- Yes, as of 1.0.12 synergy has full support for AltGr/Mode-switch.
- That includes support for most (all?) European keyboard layouts.
- All systems should be using the same keyboard layout, though, for
- all characters to work. (Any character missing from a client's
- layout cannot be generated by synergy.) There is experimental
- support for ISO_Level3_Shift in 1.1.3.
-
-
Why isn't synergy ported to platform XYZ?
-
- Probably because the developers don't have access to platform XYZ
- and/or are unfamiliar with development on XYZ. Also, synergy has
- inherently non-portable aspects so there's a not insignificant
- effort involved in porting.
-
-
My client can't connect. What's wrong?
-
- A common mistake when starting the client is to give the wrong
- server host name. The last synergyc command line option (Unix)
- or the "Server Host Name" edit field (Windows) should be the
- host name (or IP address) of the server not the client's host
- name. If you get the error connection failed: cannot connect
- socket followed by the attempt to connect was forcefully
- rejected or connection refused then the server isn't started,
- can't bind the address, or the client is connecting to the wrong
- host name/address or port. See the
- troublshooting page for more help.
-
- to the configure command line? Solaris puts
- the X11 includes and libraries in an unusual place and the above lets
- synergy find them.
-
-
The screen saver never starts. Why not?
-
- If the synergy server is on X Windows then the screen saver will
- not start while the mouse is on a client screen. This is a
- consequence of how X Windows, synergy and xscreensaver work.
-
-
I can't switch screens anymore for no apparent reason. Why?
-
- This should not happen with 1.1.3 and up. Earlier versions of
- synergy would not allow switching screens when a key was down and
- sometimes it would believe a key was down when it was not.
-
-
I get the error 'Xlib: No protocol specified'. Why?
-
- You're running synergy without authorization to connect to the
- X display. Typically the reason is running synergy as root when
- logged in as non-root. Just run synergy as the same user that's
- logged in.
-
-
The cursor goes to secondary screen but won't come back. Why?
-
- Your configuration is incorrect. You must indicate the neighbors
- of every screen. Just because you've configured 'Apple' to be to
- the left of 'Orange' does not mean that 'Orange' is to the right
- of 'Apple'. You must provide both in the configuration.
-
-
The cursor wraps from one edge of the screen to the opposite. Why?
-
- Because you told it to. If you list 'Orange' to be to the left of
- 'Orange' then moving the mouse off the left edge of 'Orange' will
- make it jump to the right edge. Remove the offending line from the
- configuration if you don't want that behavior.
-
-
How do I stop my game from minimizing when I leave the screen?
-
- Many full screen applications, particularly games, automatically
- minimize when they're no longer the active (foreground) application
- on Microsoft Windows. The synergy server normally becomes the foreground
- when you switch to another screen in order to more reliably capture all
- user input causing those full screen applications to minimize. To
- prevent synergy from stealing the foreground just click "Options..."
- and check "Don't take foreground window on Windows servers." If you
- turn this on then be aware that synergy may not function correctly when
- certain programs, particularly the command prompt, are the foreground
- when you switch to other screens. Simply make a different program the
- foreground before switching to work around that.
-
-The first incarnation of synergy was CosmoSynergy, created by
-Richard Lee and Adam Feder then at Cosmo Software, Inc., a
-subsidiary of SGI (nee Silicon Graphics, Inc.), at the end of
-1996. They wrote it, and Chris Schoeneman contributed, to
-solve a problem: most of the engineers in Cosmo Software had
-both an Irix and a Windows box on their desks and switchboxes
-were expensive and annoying. CosmoSynergy was a great success
-but Cosmo Software declined to productize it and the company
-was later closed.
-
-Synergy is a from-scratch reimplementation of CosmoSynergy.
-It provides most of the features of the original and adds a
-few improvements.
-
-synergy: [noun] a mutually advantageous conjunction of distinct elements
-
-Synergy lets you easily share a single mouse and keyboard between
-multiple computers with different operating systems, each with its
-own display, without special hardware. It's intended for users
-with multiple computers on their desk since each system uses its
-own monitor(s).
-
-Redirecting the mouse and keyboard is as simple as moving the mouse
-off the edge of your screen. Synergy also merges the clipboards of
-all the systems into one, allowing cut-and-paste between systems.
-Furthermore, it synchronizes screen savers so they all start and stop
-together and, if screen locking is enabled, only one screen requires
-a password to unlock them all. Learn more
-about how it works.
-
Microsoft Windows 95, Windows 98, Windows Me (the Windows 95 family)
-
Microsoft Windows NT, Windows 2000, Windows XP (the Windows NT family)
-
Mac OS X 10.2 or higher
-
Unix
-
-
X Windows version 11 revision 4 or up
-
XTEST extension
- (use "xdpyinfo | grep XTEST" to check for XTEST)
-
-
-All systems must support TCP/IP networking.
-
-"Unix" includes Linux, Solaris, Irix and other variants. Synergy has
-only been extensively tested on Linux and may not work completely or
-at all on other versions of Unix. Patches are welcome (including
-patches that package binaries) at the
-patches page.
-
-The Mac OS X port is incomplete. It does not synchronize the screen saver,
-only text clipboard data works (i.e. HTML and bitmap data do not work),
-the cursor won't hide when not on the screen, and there may be problems
-with mouse wheel acceleration. Other problems should be
-filed as bugs.
-
-Synergy is copyright (C) 2002 Chris Schoeneman.
-Synergy is distributed under the GNU GENERAL PUBLIC LICENSE.
-
-
GNU GENERAL PUBLIC LICENSE
-Version 2, June 1991
-
-Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-
-
Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
-
GNU GENERAL PUBLIC LICENSE
-TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-
-
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-
-
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE
-IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE
-COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM
-"AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
-IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
-ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED
-TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY
-WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED
-ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
-SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF
-THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT
-LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR
-LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
-PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH
-HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
Hot key screen switching now restores last cursor position
-
Fixed loss of hot keys when reloading configuration
-
Fixed autorepeating on win32 (no longer sending repeating key releases)
-
Fixed autorepeating on X11 (non-repeating keys were repeating)
-
Fixed AltGr issues on X11
-
Fixed modifier mapping bug on OS X client (caused wrong characters)
-
Fixed one way for modifiers to get stuck active on all platforms
-
Fixed bugs in win32 GUI
-
Removed alloca() from unix code (should fix FreeBSD build)
-
Added more debugging output for network problems
-
Fixed failure to detect some errors on X11
-
-
-Mar-22-2006 - Synergy 1.3.0 released
-
-Made following additions:
-
-
Console window on win32 can now be closed (reopened from tray menu)
-
Can now change logging level on the fly from win32 tray menu
-
Added client keep alive (lost connections are now detected reliably)
-
Added support for linking portions of screen edges
-
Added version number to UI in win32
-
Added GUI for hot key configuration on win32
-
Hot keys can now perform actions on press and/or release
-
Added key down, key up, mouse down, and mouse up hot key actions
-
Key actions can be directed to particular screens
-
Hot keys can each perform multiple actions
-
-
-Made following fixes:
-
-
Fixed AltGr key mappings (again)
-
Fixed assertion when pasting on X11
-
Fixed modifier keys in VMware on X11
-
OS X server now treats sends option/alt as AltGr or super depending on key
-
Improved handling of AltGr on win32
-
Fixed not removing client when connection is lost
-
Clients now detect loss of connection to server and reconnect
-
Fixed mouse jumping on OS X multimonitor systems
-
Closing console on win32 no longer quits synergy
-
Fixed Num Lock breaking certain keys
-
Fixed Scroll Lock not locking cursor to screen
-
Fixed mapping of delete key on X11
-
Fixed loss of clipboard after a particular copy/paste sequence
-
Fixed compatibility with windows 95/98/Me (ToUnicodeEx)
-
Fixed bad argument to function on OS X
-
Fixed error parsing comments in configuration
-
Fixed autorepeat on win32 servers
-
Fixed X11 keyboard focus bug when reentering screen
-
Fixed (suppressed) hot key autorepeating
-
Fixed mousebutton action when Caps/Num/Scroll Lock were on
-
Added documentation on firewalls
-
Fixed documentation formatting on IE6
-
-
-Hot keys support has one known major bug: key actions cannot be directed
-to the server (primary) screen. The configuration file syntax has changed
-from earlier versions; users will have to modify the configurations by
-hand.
-
-Dec-18-2005 - Synergy 1.2.7 released
-
-Made following changes:
-
-
Added preliminary support for configurable hot keys (Lorenz Schori)
-
Major rewrite of keyboard handling code
-
Fixed non-US keyboard handling (AltGr and ISO_Level3_Shift)
-
Now supporting all installed keyboard layouts simultaneously
-
Fixed bug in handling remapped caps-lock on X11
-
Fixed control and alt keys getting stuck on on X11
-
Fixed desktop focus problems requiring extra clicks on win32
-
Fixed alt key event getting passed to server when on client on win32
-
Synergy would prevent alt+numpad character entry; this is fixed
-
Fixed suppression of xscreensaver 2.21 on X11
-
Fixed middle mouse button dragging on OSX server (Brian Kendall)
-
Fixed caps/num/scroll lock toggles getting out of sync
-
Enhanced support for converting clipboard text to the Latin-1 encoding
-
Added autostart documentation for KDE users
-
Added more details about using Terminal for OSX users
-
Fixed crash when using --help on certain platforms
-
-
-The hot key support is known to have bugs. The configuration file
-syntax for hot keys is likely to change and the documentation for it
-is minimal. The graphical UI on windows does not provide any support
-for editing hot keys.
-
-Nov-12-2005 - Synergy 1.2.6 released
-
-Made following changes:
-
-
Fixed permission problem saving autostart configuration in win32 launcher
-
Disabled buggy fix for loss of clipboard change detection
-
Restored pthread signal autoconf code
-
-
-Oct-17-2005 - Synergy 1.2.5 released
-
-Made following changes:
-
-
Win32 launcher now saves configuration automatically
-
Fixed failure to save autostart configuration on win32
-
Fixed output bottom-right configuration flag
-
Now properly releasing keys when leaving a client screen
-
Fixed stuck-Alt on win32
-
Fixed 64-bit problem with clipboard on X11
-
Fixed BadAtom bug on X11
-
Fixed loss of detection of clipboard changes on win32
-
Added support for the MightyMouse
-
Added support for buttons 4 and 5 on OSX
-
Now shutting down win32 services when uninstalling
-
-
-Aug-07-2005 - Synergy 1.2.4 released
-
-Made following changes:
-
-
Fixed gcc 4.0 warnings
-
Fixed autoconf/automake problems
-
Fixed scroll-lock on X windows
-
Added option to suppress foreground window grabbing on win32
-
Fixed --daemon option on win32 client
-
Fixed --no-restart on client
-
Updated OS X autostart documentation
-
-
-Jul-27-2005 - Synergy 1.2.3 released
-
-Made following changes:
-
-
Added OS X screensaver synchronization support (Lorenz Schori)
-
Added OS X sleep support (Lorenz Schori)
-
Added OS X fast user switching support (Lorenz Schori)
-
Fixed international keyboard support on OS X (Lorenz Schori)
-
Now capturing global hotkeys (e.g. cmd+tab, etc) on OS X (Lorenz Schori)
-
Added support for SO_REUSEADDR (Don Eisele)
-
Added "dead" corners feature
-
Fixed "resource temporarily unavailable" warning when quiting on OS X
-
Win32 now defaults to WARNING log level to avoid console window
-
Now disabling foreground window on win32 when leaving server (Brent Priddy)
-
-
-Jan-26-2005 - Synergy 1.2.2 released
-
-Made following changes:
-
-
Fixed major OS X modifier key handling bug
-
Fixed handling of ISO_Level3_Shift on X11
-
-
-Jan-04-2005 - Synergy 1.2.1 released
-
-Made following changes:
-
-
Fixed major OS X keyboard handling bug
-
Fixed some minor documentation bugs
-
-
-Dec-30-2004 - Synergy 1.2.0 released
-
-Made following changes:
-
-
Improved support for moving laptops between networks (Brent Priddy)
-
Added ISO_Level3_Shift support on X windows
-
Now doing PageUp/PageDown if no mouse wheel on X windows (Tom Chadwick)
-
Fixed handling of number pad number keys on Windows 95/98/Me
-
Fixed handling of non-existant 4th and 5th mouse buttons on Windows
-
Added support for Unicode keyboard layouts on OS X
-
Fixed memory leak on OS X
-
Added OS X autostart documentation (Tor Slettnes)
-
-
-Nov-12-2004 - Synergy 1.1.10 released
-
-Made following changes:
-
-
Fixed race in condition variable wrapper; caused synergy to hang randomly
-
Fixed modifier key and caps-lock handling on OSX
-
System info log message now filtered like all other messages
-
-
-Nov-07-2004 - Synergy 1.1.9 released
-
-Made following changes:
-
-
Fixed compiler error on gcc 3.4 and later
-
Worked around minor gcc -O3 compiler bug
-
Now logging system info at startup
-
Config file errors now logged as errors rather than debug warnings
-
Added half-duplex scroll lock option
-
Fixed tracking of half-duplex toggle key state
-
Now accepting screen names ending in dot (.) for OS X convenience
-
OS X key mapping now loaded from system resources rather than hard coded
-
Fixed multimonitor OS X pimary screen bug; multimon OS X should now work
-
Added experimental workaround for laggy mouse when running linux -> OS X
-
Fixed bug in win32 installer packaging
-
Fixed unrequested continuous mouse wheel scrolling on win32
-
Added win32 GUI to set server address to listen on
-
Fixed resource leak on win32
-
Fixed screensaver detection on windows 2000 and XP
-
Fixed flickering mouse on multimon windows NT/2000/XP
-
Fixed quiting when powerdvd stops playing (may fix other situations, too)
-
Added tray icon menu item to force clients to reconnect
-
Fixed handling of number pad keys with num-lock off on win32
-
Fixed shift key not working when a console windows has focus on win32 server
-
Improved configure of Xinerama and DPMS
-
Improved portability (removed recursive mutexes and _*_SOURCE defines)
-
Now handling DPMS headers without prototypes
-
Fixed dead key and AltGr+shift handling on X11
-
Fixed use of freed memory on unix
-
Fixed AltGr mapping to Ctrl and not Ctrl+Alt on X11 without Alt_R mapped
-
Worked around win32 command prompt stealing shift key events
-
Fixed handling of pause key on win32
-
Fixed handling of backslash on win32 internation keyboard mapping
-
Fixed handling of ctrl and alt keys on NT/2k/XP
-
Fixed XCode project (removed cross-compile)
-
Worked around select() bug in OS X
-
Worked around bug in ifstream on OS X
-
Fixed handling of modifier keys on OS X synergy server
-
Fixed handling of space key on OS X synergy server
-
Fixed handling of key autorepeat on OS X server
-
Fixed mouse wheel drift on OS X client
-
Reorganized documentation and converted to HTML
-
-
-Jun-13-2004 - Synergy 1.1.7 released
-
-Made following changes:
-
-
Added OS X precompiled header file forgotten in last build
-
Fixed bug in fix for 'unexpected async reply' on X11
-
Removed dependency on "browser" service on win32
-
Fixed assertion failure when connection fails immediately
-
Fixed failure to connect on AIX
-
Fixed error in conversion from multibyte to wide characters
-
Maybe fixed win32 screen saver detection
-
-
-May-26-2004 - Synergy 1.1.6 released
-
-Made following changes:
-
-
Added preliminary Mac OS X support (client and server)
-
Fixed ctrl+alt+del emulation on win32
-
Fixed ctrl+alt+del on win32 server acting on both client and server
-
Fixed handling of screen resolution changes on win32
-
Fixed 'unexpected async reply' on X11
-
Added dependency to win32 service to avoid startup race condition
-
Fixed reference count bug
-
Keyboard input focus now restored on X11 (fixes loss of input in some games)
-
-
-The OS X port does not yet support:
-
-
HTML and bitmap clipboard data
-
Screen saver synchronization
-
Non-US English keyboards
-
-
-May-05-2004 - Synergy 1.1.5 released
-
-Made following changes:
-
-
No longer switching screens when a mouse button is down
-
Worked around win32 mouse hook bug, fixing switch on double tap
-
Added support for HTML and bitmap (image/bmp) clipboard data
-
Physical mouse no longer necessary on win32 secondary screens to see cursor
-
Added experimental relative mouse moves on secondary screen option
-
Fixed win32 lock up when closing server with clients still connected
-
Fixed bug in handling duplicate connections
-
Fixed pthread mutex initialization
-
Made synergy dependent on NetBT on win32 (for service startup order)
-
Automake fixes; now mostly works on darwin and MinGW
-
Fixed builds on Solaris 9, FreeBSD, and OpenBSD
-
Partial support for MSYS/MinGW builds (NOT COMPLETE)
-
Partial merge of OS X port (NOT COMPLETE)
-
-
-Mar-31-2004 - Synergy 1.1.4 released
-
-Made following changes:
-
-
Fixed lookup of hosts by name of win32
-
Reverted tray icon code to 1.0.15 version; seems to fix the bugs
-
Fixed crash when caps, num, or scroll lock not in key map on X11
-
Fixed double tap and wait to switch features
-
-
-Mar-28-2004 - Synergy 1.1.3 released
-
-Made following changes:
-
-
Major code refactoring; reduced use of threads, added event queue
-
Removed unused HTTP support code
-
No longer interfering with mouse when scroll lock is toggled on
-
Fixed minor mispositioning of mouse on win32
-
Unix portability fixes
-
Added support for power management
-
Improved keyboard handling and bug fixes
-
Fixed dead key handling
-
-
-Note: the tray icon on windows is known to not work correctly when
-running the synergy server on Windows 95/95/Me.
-
-Aug-24-2003 - Synergy 1.0.14 released
-
-Made following changes:
-
-
Fixed bugs in setting win32 process/thread priority
-
Fixed resource leak in opening win32 system log
-
Fixed win32 launcher not getting non-default advanced options
-
Synergy log copied to clipboard now transferred to other screens
-
Hack to work around lesstif clipboard removed (fixes pasting on X)
-
-
-Jul-20-2003 - Synergy 1.0.12 released
-
-Made following changes:
-
-This release finally completes support for non-ASCII characters,
-fully supporting most (all?) European keyboard layouts including
-dead key composition. This release includes changes from several
-experimental versions (1.0.9, 1.0.11, 1.1.0, 1.1.1, 1.1.2, and
-1.1.3).
-
-Made following changes:
-
-
Added non-ASCII support to win32 and X11
-
Added dead key support to win32 and X11
-
Fixed AltGr handling
-
Added ctrl+alt+del simulation using ctrl+alt+pause
-
Fixed loss of key event when user releases ctrl+alt+del
-
Fixed incorrect synthesis of pointer-keys event on X11
-
Fixed Xinerama support
-
Made some clipboard fixes on win32 and X11
-
Add tray icon menu item to copy log to clipboard
-
Fixed mouse warping on unconnected client
-
Stopped unconnected client from filling up event logs
-
-
-May-10-2003 - Synergy 1.0.8 released
-
-Made following changes:
-
-
-
Fixed hook forwarding (fixing interaction with objectbar)
-
Fixed "Windows" key handling and added support Win+E, Win+F, etc
-
Added win 95/98/me support for Alt+Tab, Alt+Esc, Ctrl+Esc
-
Fixed scroll lock locking to server screen
-
Fixed screen flashing on X11 and Windows
-
Fixed compile problem on 64 bit systems
-
Fixed Xinerama support
-
Now allowing screen names that include underscores
-
Improved non-ASCII key handling on Windows
-
Fixed lagginess
-
Fixed failure to capture all mouse input on Windows
-
Fixed auto-repeat bugs on X11
-
Added option to disable screen saver synchronization
-
Added support for 4th and 5th mouse buttons on Windows
-
Added support for "Internet" and "Multimedia" keys
-
Fixed jumping from client to itself (mouse wrapping)
-
-
-Apr-26-2003 - Added roadmap
-
-There's now a roadmap for Synergy
-describing the plans for further development.
-
-Apr-26-2003 - Added Paypal donation page
-
-There's now a donate button for those
-who'd like to make a monetary contribution to the further
-development of Synergy.
-
-Apr-26-2003 - Development update
-
-Synergy 1.0.8 will include fixes for the following problems.
-These are already fixed and some are in development version 1.0.7.
-
-
-
Mouse events at edge of screen are stolen
-
Windows key doesn't work on clients
-
Alt+[Shift+]Tab, Alt+[Shift+]Esc, Ctrl+Esc don't work on Win 95/98/Me
-
Scroll lock doesn't lock to Windows server screen
-
Screen flashes every 5 seconds on some X11 systems
-
Synergy doesn't work properly with Xinerama
-
Screen names with underscores are not allowed
-
-
-Synergy 1.0.8 will probably include fixes for these problems:
-
-
-
AltGr/Mode_switch doesn't work
-
Non-ASCII keys aren't supported
-
Synergy performs badly on a busy Windows system
-
Unexpected key repeats on X11 clients
-
-
-Synergy 1.0.8 should be available in the first half of May.
-
-Mar-27-2003 - Synergy 1.0.6 released
-
-Made following changes:
-
-
-
Added tray icon on win32
-
Fixed multi-monitor support on win32
-
Fixed win32 screen saver detection on NT/2k/XP
-
Added per-screen options to remap modifier keys
-
Added global options for restricting screen jumping
-
Added global option for detecting unresponsive clients
-
Added more logging for why screen jump won't happen
-
Fixed problem sending the CLIPBOARD to motif/lesstif apps
-
Win32 launcher now remembers non-config-file state
-
-
-In addition, the version number scheme has been changed. Given a
-version number X.Y.Z, release versions will always have Y and Z
-even while development versions will have Y and Z odd.
-
-Mar-27-2003 - Synergy featured in Linux Journal.
-
-The April 2003 issue of Linux Journal includes an article on Synergy.
-Written by Chris Schoeneman, it describes configuring synergy between
-two linux systems.
-
-Mar-27-2003 - Contributions to Synergy.
-
-Many thanks to Girard Thibaut for providing a version of the win32
-launch dialog translated into French. I hope to integrate these
-changes into future releases.
-
-Thanks also to "wrhodes" who provided source files for
-building an InstallShield installer for Synergy. They'll be
-integrated into an upcoming release.
-
-Feb-18-2003 - Synergy 1.0.3 released
-
-Made following changes:
-
-
-
Added support for X11 keymaps with only uppercase letters
-
Reduced frequency of large cursor jumps when leaving win32 server
-
Changed cursor motion on win32 multimon to relative moves only
-
-
-Jan-25-2003 - Synergy 1.0.2 released
-
-Made following changes:
-
-
-
Fixed out-of-bounds array lookup in the BSD and Windows network code
-
Added ability to set screen options from Windows launch dialog
-
-
-Jan-22-2003 - Synergy 1.0.1 released
-
-Made following changes:
-
-
-
Fixed running as a service on Windows NT family
-
-
-Jan-20-2003 - Synergy 1.0.0 released
-
-Made following changes:
-
-
-
Refactored to centralize platform dependent code
-
Added support for mouse wheel on Windows NT (SP3 and up)
-
Portability improvements
-
Added more documentation
-
Fixes for working with xscreensaver
-
Fixes for circular screen links
-
-
-This release has been tested on Linux and Windows. It builds and
-is believed to run on Solaris and FreeBSD. It is believed to
-build and run on Irix and AIX. It builds but does not work on
-MacOS X.
-
-Dec-25-2002 - Synergy 0.9.14 released
-
-Made following changes:
-
-
-
Fixed solaris compile problems (untested)
-
Fixed irix compile problems (untested)
-
Fixed windows client not reconnecting when server dies bug
-
Fixed loss of ctrl+alt from windows server to non-windows clients
-
Fixed handling of password protected windows client screen saver
-
Now handling any number of pointer buttons on X11
-
Toggle key states now restored when leaving clients
-
Added support for per-screen config options
-
Added config options for half-duplex toggle keys on X11
-
Enabled class diagrams in doxygen documentation
-
-
-Nov-05-2002 - Synergy 0.9.13 released
-
-Made following changes:
-
-
-
Fixed solaris compile problems (untested)
-
Fixed MacOS X compile problems (semi-functional)
-
Fixed gcc-3.2 compile problems
-
Fixed some thread startup and shutdown bugs
-
Server now quits if bind() fails with an error other than in use
-
Fixed bug in moving mouse on Win98 without multiple monitors
-
Fixed bug in handling TCP socket errors on read and write
-
Fixed spurious screen saver activation on X11
-
Unix platforms can now read Win32 configuration files
-
Minor error reporting fixes
-
-
-Sep-14-2002 - Synergy 0.9.12 released
-
-Made following changes:
-
-
-
Win32 was not reporting log messages properly when run from synergy.exe
-
Network error messages weren't reporting useful information
-
Synergy won't build on gcc 3.2; added workaround for known problem
-
X11 wasn't handling some keys/key combinations correctly
-
Added option to change logging level when testing from synergy.exe
-
-
-Sep-04-2002 - Synergy 0.9.11 released
-
-Fixed following bugs:
-
-
-
Worked around missing SendInput() on windows 95/NT 4 prior to SP3
-
Fixed keyboard mapping on X11 synergy client
-
-
-Sep-02-2002 - Synergy 0.9.10 released
-
-Fixed following bugs:
-
-
-
The Pause/Break and keypad Enter buttons were not working correctly on windows
-
Configuration options were being lost on windows after a reboot
-
Added support for AltGr/ModeSwitch keys
-
Added support for auto-start on windows when not administrator
-
Improved autoconf
-
Added workaround for lack of sstream header on g++ 2.95.
-
-
-Aug-18-2002 - Synergy 0.9.9 released
-
-Fixed three bugs:
-
-
-
The PrintScrn button was not working correctly on windows
-
The Win32 server could hang when a client disconnected
-
Using the mouse wheel could hang the X server
-
-
-Aug-11-2002 - Synergy 0.9.8 released
-
-Supports any number of clients under Linux or Windows 95 or NT4
-or later. Includes mouse and keyboard sharing, clipboard
-synchronization and screen saver synchronization. Supports ASCII
-keystrokes, 5 button mouse with wheel, and Unicode text clipboard
-format.
-
-This page describes the planned development of Synergy. There are
-no dates or deadlines. Instead, you'll find the features to come
-and the rough order they'll arrive.
-
-
Short term
-
-Synergy should work seamlessly. When it works correctly, it works
-transparently so you don't even think about it. When it breaks,
-you're forced out of the illusion of a unified desktop. The first
-priority is fixing those bugs that break the illusion.
-
-Some of these bugs are pretty minor and some people would rather
-have new features first. But I'd rather fix the current
-foundation before building on it. That's not to say features
-won't get added until after bug fixes; sometimes it's just too
-tempting to code up a feature.
-
-The highest priority feature is currently splitting synergy into
-front-ends and a back-end. The back-end does the real work. The
-front-ends are console, GUI, or background applications that
-communicate with the back-end, either controlling it or receiving
-notifications from it.
-
-On win32, there'd be a front-end for the tray icon and a dialog to
-start, stop, and control the back-end. OS X and X11 would have
-similar front-ends. Splitting out the front-end has the added
-benefit on X11 of keeping the back-end totally independent of
-choice of GUI toolkit (KDE, Gnome, etc.)
-
-One can also imagine a front-end that does nothing but put monitors
-into power-saving mode when the cursor is not on them. If you have
-one monitor auto-senses two inputs, this would automatically switch
-the display when you move the cursor to one screen or another.
-
-
Medium term
-
-Some features fit well into Synergy's current design and may simply
-enhance it's current capabilities.
-
-
-
Configurable hot key to pop up a screen switch menu
-
Configure screen saver synchronization on or off
-
Graphical interface configuration and control on all platforms
-
Graphical status feedback on all platforms
-
More supported clipboard formats (particularly rich text)
-
-
-A popup menu would be new for Synergy, which currently doesn't have
-to do any drawing. That opens up many possibilities. Ideally,
-front-ends request hot keys from the back-end and then tell the back
-end what to do when they're invoked. This keeps the back-end
-independent of the user interface.
-
-
Long term
-
-Two features stand out as long term goals:
-
-
-
Support N computers on
-M monitors
-
Drag and drop across computers
-
-
-The first feature means sharing a monitor or monitors the way the
-keyboard and mouse are shared. With this, Synergy would be a full
-KVM solution. Not only would it support a few computers sharing
-one screen (still using the mouse to roll from one screen to
-another), but it should also support dozens of computers to provide
-a solution for server farm administrators. In this capacity, it
-may need to support text (as opposed to bitmap graphics) screens.
-
-The second feature would enhance the unified desktop illusion. It
-would make it possible to drag a file and possibly other objects
-to another screen. The object would be copied (or moved). I expect
-this to be a very tricky feature.
-
-Synergy lets you use one keyboard and mouse across multiple computers.
-To do so it requires that all the computers are connected to each other
-via TCP/IP networking. Most systems come with this installed.
-
-
Step 1 - Choose a server
-
-The first step is to pick which keyboard and mouse you want to share.
-The computer with that keyboard and mouse is called the "primary
-screen" and it runs the synergy server. All of the other computers
-are "secondary screens" and run the synergy client.
-
-
Step 2 - Install the software
-
-Second, you install the software. Choose the appropriate package
-and install it. For example, on Windows you would run
-SynergyInstaller. You must install the
-software on all the computers that will share the mouse and keyboard
-(clients and server). On OS X you'll just have a folder with some
-documentation and two programs. You can put this folder anywhere.
-
-
Step 3 - Configure and start the server
-
-Next you configure the server. You'll tell synergy the name of
-the primary and secondary screens, which screens are next to which,
-and choose desired options. On Windows there's a dialog box for
-setting the configuration. On other systems you'll create a simple
-text file.
-
-
-Note that when you tell synergy that screen A
-is to the left of screen B this does not
-imply that B is to the right of
-A. You must explicitly indicate both
-relations. If you don't do both then when you're running synergy you'll
-find you're unable to leave one of the screens.
-
-Windows
-On Windows run synergy by double clicking on the
-synergy file. This brings up a dialog.
-Configure the server:
-
-
Click the Share this computer's keyboard and mouse (server) radio button
-
Click the Screens & Links Configure... button
-
Click the + button to add the server to the
- Screens list
-
-
Enter the name of server (the computer's name is the recommended name)
-
Optionally enter other names the server is known by
-
Click OK
-
-
Use the + button to add your other computers
-
-
Using a computer's name as its screen name is recommended
-
Choose desired screen options on the Add Screen dialog
-
-
Use the controls under Links to link screens together
-
-
Click (once) on the server's name in the Screens list
-
Choose the screen to the left of the server; use ---
- if there is no screen to the left of the server
-
Choose the screens to the right, above and below the server
-
Repeat the above steps for all the other screens
-
-
Click OK to close the Screens & Links dialog
-
Use Options... to set desired options
-
If the server's screen name is not the server's computer name:
-
-
Click Advanced...
-
Enter the server's screen name next to
- Screen Name
-
Click OK
-
-
-
-Now click Test. The server will start and
-you'll see a console window with log messages telling you about synergy's
-progress. If an error occurs you'll get one or more dialog boxes telling
-you what the errors are; read the errors to determine the problem then
-correct them and try Test again. See Step 5
-for typical errors.
-
-Unix or Mac OS X
-Create a text file named synergy.conf with the
-following:
-
- section: screens
- screen1:
- screen2:
- end
- section: links
- screen1:
- right = screen2
- screen2:
- left = screen1
- end
-
-Replace each occurrence of screen1 with the host name
-of the primary screen computer (as reported by the
-hostname program) and screen2
-with the host name of a secondary screen computer. In the above example,
-screen2 is to the right of
-screen1 and screen1 is to the
-left of screen2. If necessary you should replace
-right and left with
-left, right,
-up, or down. If you
-have more than two computers you can add those too: add each computer's host
-name in the screens section and add the
-appropriate links. See the configuration
-guide for more configuration possibilities.
-
-Now start the server. Normally synergy wants to run "in the background."
-It detaches from the terminal and doesn't have a visible window, effectively
-disappearing from view. Until you're sure your configuration works, you
-should start synergy "in the foreground" using the -f
-command line option.
-
-On unix type the command below in a shell. If synergys is not in your
-PATH then use the full pathname.
-
- synergys -f --config synergy.conf
-
-On OS X open Terminal in the Utilities folder in the Applications folder.
-Drag the synergys program from the synergy folder onto the Terminal window.
-The path to the synergys program will appear. Add the following to the
-same line, type a space at the end of the line but don't press enter:
-
- -f --config
-
-Now drag the synergy.conf file onto the Terminal window and press enter.
-Check the reported messages for errors. Use ctrl+c to stop synergy if
-it didn't stop automatically, correct any problems, and start it again.
-
-
Step 4 - Start the clients
-
-Next you start the client on each computer that will share the server's
-keyboard and mouse.
-
-Windows
-On Windows run synergy by double clicking on the
-synergy file. This brings up a dialog.
-Configure the client:
-
-
Click the Use another computer's shared keyboard and mouse (client) radio button
-
Enter the server's computer name next to Other Computer's Host Name
-
-
This is not the server's screen name, unless you made that the
- server's host name as recommended
-
-
If the client's screen name is not the client's computer name:
-
-
Click Advanced...
-
Enter the client's screen name next to Screen Name
-
Click OK
-
-
-
-Now click Test.
-
-Unix or Mac OS X
-To start a client on unix, enter the following:
-
- synergyc -f server-host-name
-
-where server-host-name is replaced by the host
-name of the computer running the synergy server. If synergyc is not in
-your PATH then use the full pathname.
-
-On OS X open Terminal in the Utilities folder in the Applications folder.
-Drag the synergyc program from the synergy folder onto the Terminal window.
-The path to the synergys program will appear. Add the following to the
-same line and press enter:
-
- -f server-host-name
-
-
-When you added the client to the server's configuration you chose a
-name for the client. If that name was not client's host name then
-you must tell the client the name you used. Instead of the above
-command use this instead:
-
- synergyc -f --name nameserver-host-name
-
-where name is the name for the client in
-the server's configuration. (On OS X drag the synergyc program to the
-Terminal window rather than typing synergyc.)
-
-
Step 5 - Test
-
-Clients should immediately report a successful connection or one or
-more error messages. Some typical problems and possible solutions are
-below. See the troubleshooting and the
-FAQ pages for more help.
-
-
failed to open screen (X11 only)
-
- Check permission to open the X display;
- check that the DISPLAY environment variable is set
- use the --display command line option.
-
-
address already in use
-
- Another program (maybe another copy of synergy) is using the synergy port;
- stop the other program or choose a different port in the
- Advanced... dialog. If you change the port
- you must make the same change on all of the clients, too.
-
-
connection forcefully rejected
-
- The synergy client successfully contacted the server but synergy wasn't
- running or it's running on a different port. You may also see this if
- there's a firewall blocking the host or port. Make sure synergy is
- running on the server and check for a firewall.
-
-
already connected
-
- Check that the synergy client isn't already running.
-
-
refused client
-
- Add the client to the server's configuration file.
-
-
connection timed out
-
- Check that server-host-name is correct.
- Check that you don't have a firewall blocking the server or synergy port.
-
-
connection failed
-
- Check that server-host-name is correct.
-
-
-If you get the error "Xlib: No protocol specified"
-you're probably running synergy as root while logged in as another user.
-X11 may prevent this for security reasons. Either run synergy as the same
-user that's logged in or (not recommended) use
-"xhost +" to allow anyone to connect
-to the display.
-
-When successful you should be able to move the mouse off the appropriate
-edges of your server's screen and have it appear on a client screen.
-Try to move the mouse to each screen and check all the configured links.
-Check the mouse buttons and wheel and try the keyboard on each client.
-You can also cut-and-paste text, HTML, and images across computers (HTML
-and images are not supported on OS X yet).
-
-
Step 6 - Run
-
-Once everything works correctly, stop all the clients then the server.
-Then start the server with the Start button
-on Windows and without the -f option on Unix
-and Mac OS X. Finally start the clients similarly. On Windows before
-clicking Start you may want to set the
-Logging Level to
-Warning so the logging window doesn't pop
-up (because you currently can't close it, just minimize it).
-
-You can also configure synergy to start automatically when your computer
-starts or when you log in. See the autostart
-guide for more information.
-
-
Command Line Options Guide
-
-Common Command Line Options
-The following options are supported by synergys
-and synergyc.
-
-
-
-d,
-
--debug level
-
use debugging level level
-
-
-
-
--daemon
-
run as a daemon (Unix) or background (Windows)
-
-
-
-f,
-
--no-daemon
-
run in the foreground
-
-
-
-
--display display
-
connect to X server at display (X11 only)
-
-
-
-n,
-
--name name
-
use name instead of the hostname
-
-
-
-
--restart
-
automatically restart on failures
-
-
-
-1,
-
--no-restart
-
do not restart on failure
-
-
-
-h,
-
--help
-
print help and exit
-
-
-
-
--version
-
print version information and exit
-
-
-
-Debug levels are from highest to lowest: FATAL,
-ERROR, WARNING,
-NOTE, INFO,
-DEBUG, DEBUG1, and
-DEBUG2. Only messages at or above the given
-level are logged. Messages are logged to a terminal window when
-running in the foreground. Unix logs messages to syslog when running
-as a daemon. The Windows NT family logs messages to the event log
-when running as a service. The Windows 95 family shows FATAL log
-messages in a message box and others in a terminal window when running
-as a service.
-
-The --name option lets the client or server
-use a name other than its hostname for its screen. This name is used
-when checking the configuration.
-
-Neither the client nor server will automatically restart if an error
-occurs that is sure to happen every time. For example, the server
-will exit immediately if it can't find itself in the configuration.
-On X11 both the client and server will also terminate if the
-connection to the X server is lost (usually because it died).
-
-hostname is a hostname or IP address of a network
-interface on the server system (e.g. somehost
-or 192.168.1.100). port
-is a port number from 1 to 65535. hostname defaults to
-the system's hostname and port defaults to 24800.
-
-Client Command Line Options
-
-
- synergyc [options] address[:port]
-
-address is the hostname or IP address of
-the server and port is the optional network
-port on the server to connect to. The client accepts the
-common options.
-
-
-
-
diff --git a/doc/security.html b/doc/security.html
deleted file mode 100644
index c8013c27..00000000
--- a/doc/security.html
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-
- Synergy Network Security Guide
-
-
-
-
Authentication and Encryption
-Synergy does not do any authentication or encryption. Any computer
-can connect to the synergy server if it provides a screen name known
-to the server, and all data is transferred between the server and the
-clients unencrypted which means that anyone can, say, extract the
-key presses used to type a password. Therefore, synergy should not
-be used on untrusted networks.
-
-However, there are tools that can add authentication and encryption
-to synergy without modifying either those tools or synergy. One
-such tool is SSH (which stands for secure shell). A free implementation
-of SSH is called OpenSSH and runs
-on Linux, many Unixes, and Windows (in combination with
-Cygwin).
-
-
Configuring the Server
-Install the OpenSSH server on the same computer as the synergy server.
-Configure the OpenSSH server as usual (synergy doesn't demand any
-special options in OpenSSH) and start it. Start the synergy server as
-usual; the synergy server requires no special options to work with
-OpenSSH.
-
-
Configuring the Clients
-Install the OpenSSH client on each synergy client computer. Then, on
-each client, start the OpenSSH client using port forwarding:
-
-The server-hostname is the name or address
-of the computer with the OpenSSH and synergy servers.
-The 24800 is the default network port used by synergy; if you use
-a different port then replace both instances of 24800 with the port
-number that you use. Finally, start the synergy client normally
-except use localhost as the server host
-name. For example:
-
- Be aware that not all keystrokes can be handled by synergy. In
- particular, ctrl+alt+del is not handled. However, synergy can
- convert ctrl+alt+pause into ctrl+alt+del on the client side.
- (Synergy must be configured to autostart when the computer starts
- on the client for this to work on the Windows NT family.) Some
- non-standard keys may not work, especially "multimedia" buttons,
- though several are correctly handled.
-
-
- A screen can be its own neighbor. That allows a screen to "wrap".
- For example, if a configuration linked the left and right sides of
- a screen to itself then moving off the left of the screen would put
- the mouse at the right of the screen and vice versa.
-
-
- You cannot switch screens when the Scroll Lock is toggled on. Use
- this to prevent unintentional switching. You can configure other
- hot keys to do this instead; see
- lockCursorToScreen.
-
-
- Turn off mouse driven virtual desktop switching on X windows. It
- will interfere with synergy. Use keyboard shortcuts instead.
-
-
- Synergy's screen saver synchronization works best with xscreensaver
- under X windows. Synergy works better with xscreensaver if it is
- using one of the screen saver extensions. Prior to xscreensaver 4.0
- you can use -mit-extension,
- -sgi-extension, or
- -xidle-extension
- command line options to enable an extension (assuming your server has
- the extension). Starting with 4.0 you must enable the corresponding
- option in your .xscreensaver file.
-
-
- Synergy automatically converts newlines in clipboard text (Unix
- expects \n to end each line while Windows
- expects \r\n).
-
-
- Clients can be started and stopped at any time. When a screen is
- not connected, the mouse will jump over that screen as if the mouse
- had moved all the way across it and jumped to the next screen.
-
-
- A client's keyboard and mouse are fully functional while synergy is
- running. You can use them in case synergy locks up.
-
-
- Strong authentication and encryption is available by using SSH. See
- the security guide for more information.
- Synergy does not otherwise provide secure communications and it should
- not be used on or over untrusted networks.
-
-
- Synergy doesn't work if a 16-bit Windows application has the focus
- on Windows 95/98/Me. This is due to limitations of Windows. One
- commonly used 16-bit application is the command prompt
- (command.exe)
- and this includes synergy's log window when running in test mode.
-
-
diff --git a/doc/todo.html b/doc/todo.html
deleted file mode 100644
index 02a12a07..00000000
--- a/doc/todo.html
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
-
- Synergy To Do List
-
-
-
Synergy To Do List
-
-This page describes the planned development of Synergy. There are
-no dates or deadlines. Instead, you'll find the features to come
-and the rough order they can be expected to arrive.
-
-
-
Short term
-
-Synergy should work seamlessly. When it works correctly, it works
-transparently so you don't even think about it. When it breaks,
-you're forced out of the illusion of a unified desktop. The first
-priority is fixing those bugs that break the illusion.
-
-
-Some of these bugs are pretty minor and some people would rather
-have new features first. But I'd rather fix the current
-foundation before building on it. That's not to say features
-won't get added until after bug fixes; sometimes it's just too
-tempting to code up a feature.
-
-
-
Medium term
-
-Some features fit well into Synergy's current design and may simply
-enhance it's current capabilities.
-
-
Configurable hot key screen switching
-
Configurable hot key to lock to a screen
-
Configurable hot key to pop up a screen switch menu
-
Configure screen saver synchronization on or off
-
Graphical interface configuration and control on all platforms
-
Graphical status feedback on all platforms
-
More supported clipboard formats (particularly rich text)
-
-
-
-
Long term
-
-Two features stand out as long term goals:
-
-
Support N computers on
-M monitors
-
Drag and drop across computers
-
-
-
-The first feature means sharing a monitor or monitors the way the
-keyboard and mouse are shared. With this, Synergy would be a full
-KVM solution. Not only would it support a few computers sharing
-one screen (still using the mouse to roll from one screen to
-another), but it should also support dozens of computers to provide
-a solution for server farm administrators. In this capacity, it
-may need to support text (as opposed to bitmap graphics) screens.
-
-
-The second feature would enhance the unified desktop illusion. It
-would make it possible to drag a file and possibly other objects
-to another screen. The object would be copied (or moved). I expect
-this to be a very tricky feature.
-
-There's an error in the configuration file. This error is always
-accompanied by another message describing the problem. Use that
-message and the configuration documentation
-to determine the fix.
-
-
Connection forcefully rejected
-
-The client was able to contact the server computer but the server was
-not listening for clients. Possible reasons are:
-
-
-
The client is using the wrong server
-
-Make sure the client is using the hostname or IP address of the computer
-running the synergy server.
-
-
Synergy isn't running on the server
-
-Make sure the synergy server is running on the server computer. Make
-sure the server is ready to accept connections. If another program is
-using synergy's port (24800 by default) then synergy can't start unless
-you specify a different port.
-
-
The client is using the wrong port
-
-Synergy uses port 24800 by default but you can specify a different port.
-If you do use a different port you must use that port on the server and
-all clients.
-
-
-
Connection timed out
-
-The most likely reasons for this are:
-
-
-
A firewall
-
-A firewall is a program or device that deliberately blocks network
-connections for security reasons. Typically, they'll silently drop
-packets they don't want rather than sending a rejection to the sender.
-This makes it more difficult for intruders to break in.
-
-When synergy traffic hits a firewall and gets dropped, eventually the
-synergy client will give up waiting for a response and time out. To
-allow synergy traffic through first find all the firewalls on the
-network between and on the synergy client and server computers.
-
-A firewall on the server or any network device between the server and
-any client should allow packets to TCP port 24800. (Port 24800 is the
-default; use whichever port you've selected.) You'll have to consult
-the manual for your operating system, device, or firewall software to
-find out how to do this.
-
-Usually you'll won't need to adjust a firewall on client machines.
-That's because firewalls normally allow incoming traffic on any port
-they've initiated a connection on. The reasoning is, of course, if
-you started a conversation you probably want to hear the reply.
-
-
The network is down or busy
-
-Correct the network problem and try again. You might try
-ping to see if the two computers can see
-each other on the network.
-
-
The server is frozen
-
-If the synergy server is running but locked up or very busy then the
-client may get this message. If the server is locked up then you'll
-probably have to restart it. If it's just very busy then the client
-should successfully connect automatically once the server settles down.
-
-
-
Cannot listen for clients
-
-Synergy tried to start listening for clients but the network port is
-unavailable for some reason. Typical reasons are:
-
-
-
No network devices
-
-You must have a TCP/IP network device installed and enabled to use
-synergy.
-
-
A synergy server is already running
-
-Check that a synergy server isn't already running.
-
-
Another program is using synergy's port
-
-Only one program at a time can listen for connections on a given port.
-If the specific error is that the address is already in use and you've
-ruled out the other causes, then it's likely another program is already
-using synergy's port. By default synergy uses port 24800. Try having
-synergy use a different port number, like 24801 or 24900. Note that
-the server and all clients must use the same port number. Alternatively,
-find the other program and stop it or have it use another port.
-
-
-
Unknown screen name "XXX"
-
-This error can be reported when reading the configuration; see
-cannot read configuration. If the configuration
-was read successfully and you get this error then it means that the
-server's screen is not in the configuration. All screens must be listed
-in the configuration.
-
-A common reason for this is when you haven't used the system's hostname
-as its screen name. By default, synergy uses the hostname as the screen
-name. If you used a different screen name in the configuration then you
-must tell synergy what that name is. Let's say the hostname is
-frederick but the configuration defines a screen
-named fred. Then you must tell the server
-that its screen name is fred by using the
---name fred command line option or setting
-the screen name in the advanced options dialog to
-fred.
-
-Alternatively, you can specify one name as an alias of another. See
-the configuration documentation
-for details.
-
-Another common reason for this is a mismatch between what you think the
-hostname is and what synergy thinks it is. Typically this is a problem
-with fully qualified domain names (FQDN). Perhaps you think your system
-is named fred but synergy thinks it's
-fred.nowhere.com or
-fred.local. You can use either solution above
-to fix this.
-
-
Server refused client with name "XXX"
- A client with name "XXX" is not in the map
-
-The client is using a screen name not in the server's configuration.
-This is essentially the same problem as Unknown
-screen name "XXX" and has the same solutions: specify another
-screen name or add an alias.
-
-
Server already has a connected client with name "XXX"
- A client with name "XXX" is already connected
-
-This happens when:
-
-
-
Two clients try use the same screen name
-
-Each client must have a unique screen name. Configure at least one
-client to use a different screen name.
-
-
One client reconnects without cleanly disconnecting
-
-It's possible for a client to disconnect without the server knowing,
-usually by being disconnected from the network or possibly by going
-to sleep or even crashing. The server is left thinking the client is
-still connected so when the client reconnects the server will think
-this is a different client using the same name. Synergy will usually
-detect and correct this problem within a few seconds. If it doesn't
-then restart the server.
-
-
-
Server has incompatible version
-
-You're using different versions of synergy on the client and server.
-You should use the same version on all systems.
-
-
The cursor goes to secondary screen but won't come back
-