diff --git a/nodist/addheader b/nodist/addheader deleted file mode 100755 index 3411aab0..00000000 --- a/nodist/addheader +++ /dev/null @@ -1,96 +0,0 @@ -#!/bin/sh -# add header to file. intended to add copyright info to files. -# -# usage: addheader - -# choose comment character -ext=`echo $2 | sed -e 's/.*\.\([^.]*\)$/\1/'` -case $ext in - c|cpp|h) - openComment='/*' - closeComment=' */' - innerComment=' * ' - ;; - am) - openComment='' - closeComment='' - innerComment='# ' - ;; - m4) - openComment='' - closeComment='' - innerComment='dnl ' - ;; - in) - if test $2 = "configure.in"; then - openComment='' - closeComment='' - innerComment='dnl ' - fi - ;; - *) - ;; -esac -if test -z "$innerComment"; then - echo Unrecognized extension $ext. Exiting. - exit 1 -fi - -# create awk program to strip old header. we have to use a heuristic -# to determine what's a header. we'll strip any continuous comment -# at the start of a file that includes a line with `Copyright'. -body=".$$.ahb" -ocMatch=`echo "$openComment" | sed -e 's/\*/\\\\*/g' -e 's#/#\\\\/#g'` -ccMatch=`echo "$closeComment" | sed -e 's/\*/\\\\*/g' -e 's/^ +/ */' -e 's#/#\\\\/#g'` -icMatch=`echo "$innerComment" | sed -e 's/\*/\\\\*/g' -e 's#/#\\\\/#g'` -awkGetHeader="m==4" -if test -n "$ocMatch"; then - awkGetHeader="$awkGetHeader;m==0 && /${ocMatch}/{m=1}" -else - awkGetHeader="BEGIN{m=1};$awkGetHeader" -fi -if test -n "$ccMatch"; then - awkGetHeader="$awkGetHeader;m==1 && /^${icMatch}/{m=2}" - awkGetHeader="$awkGetHeader;/${ccMatch}/{m=4}" -else - awkGetHeader="m==3 && !/^${icMatch}/{m=4};$awkGetHeader" - awkGetHeader="$awkGetHeader;m==1 && /^${icMatch}/{m=3}" -fi - -# strip old header -awk "$awkGetHeader" $2 > $body -if test $? -ne 0; then - rm -f $body - echo "can't parse file" -fi - -# if body is empty then there was no header -if test ! -s $body; then - cp $2 $body -else - fLength=`cat $2 | wc -l` - bLength=`cat $body | wc -l` - hLength=`expr $fLength - $bLength` - crLine=`grep -n -i "copyright" $2 | sed -e 's/:.*//'` - test -z "$crLine" && crLine=`expr $hLength + 1` - if test $crLine -gt $hLength; then - # no copyright in header - cp $2 $body - fi -fi - -# add new header -echo -n "" > $2 -if test -n "$openComment"; then - echo "$openComment" >> $2 -fi -cat $1 | sed -e "s/^/$innerComment/" >> $2 -if test -n "$closeComment"; then - echo "$closeComment" >> $2 -fi -head -1 $body | tr '\t' ' ' | grep "^ *$" > /dev/null -if test $? -eq 1; then - echo "" >> $2 -fi -cat $body >> $2 -rm -f $body diff --git a/nodist/copyright b/nodist/copyright deleted file mode 100644 index 9e64584b..00000000 --- a/nodist/copyright +++ /dev/null @@ -1,11 +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. diff --git a/nodist/notes b/nodist/notes deleted file mode 100644 index ec9f5296..00000000 --- a/nodist/notes +++ /dev/null @@ -1,488 +0,0 @@ -edit FIXME's in: - PORTING - -make man pages - docbook? - should have makefile target to build these - remove line from BUGS about missing man pages - ---- -not removing all doxygen generated files in dist-clean or maintainer-clean - should remove them all in dist-clean - ---- -check for cancellation points: - following functions may be interrupted (returning -1, errno=EINTR): - read(), write(), ioctl(), select(), poll(), pause(), connect(), - accept(), syslog(), TCP operations - creat(), close(), getmsg(), putmsg(), msgrcv(), msgsnd(), - recv(), send(), wait(), waitpid(), wait3(), sigpause() - should ensure that we handle EINTR anywhere these are called. in - particular we must call testCancel() (should do that anyway) and - sometimes restart the call. - make sure unbounded time win32 calls do testCancel(). - ---- -not handling large motif selections - don't know protocol for transfer - ---- -not handling international characters - ---- -CServer::setConfig() should update network ports - if the server address or http address change then the old ports - should be closed and new ones opened. - ---- -try to determine X11 keyboard quirks automatically - in particular, set the half-duplex flags - maybe KBD extension will help determine this - -bug with half-duplex keys - win32 server sent num-lock to grace - grace converts to half-duplex so only synthesizes key down - now grace starts server and is locked to screen - grace should ignore half duplex keys when seeing if locked to screen - ---- -HTTP stuff - no way to save config using HTTP - should have a button or a page to force save of config - or just save config every time it's changed - should use authentication (at least basic) - provide way to kill/restart server via HTTP - provide way to query why locked to screen? - handy for debugging at least - - bug in updating screens - saw a goofy set of screens after update - i think the config was similar to: - A B - C - D E - ---- -win32: - need icon - provide taskbar icon - provide control panel? - -win32 service: - need message table for proper event reporting - -desktop switcher program failure when running synergy as service - returns access denied from CreateDesktop() - don't know why - ---- -hot keys - should have keyboard shortcuts to jump to screens - ---- -should switch to user nobody (or something similar) if running as root - for security reasons - will make it impossible to overwrite /etc/synergy.conf - if that file is only root writable (as it should be) - ---- -xscreensaver won't start if pointer on secondary screen - unless using MIT or SGI screen saver extensions - otherwise it cannot know when to stop the screen saver - cos it can't grab mouse and keyboard - ---- -all screensavers hidden when showing win32 screensaver lock window - win32 kills the screen saver and shows the lock window - synergy thinks the screen saver is dead (cos the process is) - deactivates secondary screen screen savers - user is constrained to locked display, though - also, we don't detect screen saver restarting if user doesn't unlock screen - ---- -not distinguishing between caps lock and shift lock - In Caps Lock mode, the alphabetic keys send their uppercase (shifted) char- - acter when pressed alone. For Caps Lock mode, pressing and releasing the - lock key turns on the mode and pressing and releasing the lock key again - turns off the mode. In Shift Lock mode, all keys on the main keypad send - their shifted character when pressed alone. For Shift Lock mode, pressing - and releasing the Lock key turns on the mode, and pressing and releasing - either the Lock or the Shift key turns off the mode. - ---- -need timeout on CXWindowsClipboard::CReply objects - should flush replies that are too old - assumption is that requestor is broken - ---- -avoid fullscreen transparent window on win32 - using CBT hook to discard activation/focus messages - but it's not being called when we lose keyboard input - also, we sometimes don't get the keyboard input to start with - ---- -keyboard hook problems (win32) - now passing keyboard events through in most cases - this fixes problem on isabel where toggle lights don't toggle - and num-lock behaved incorrectly (generated wrong keys). - seems the DefWindowProc() needed to process the keys - unfortunately, keys sometimes leak into wrong app. seems related - to times when we don't get the keyboard input. key events are - not delivered to app on primary until cursor returns to primary. - no idea how that's possible. - current have some code to check active window and reset it in - keyboard hook. that code doesn't work. - seem to be having problems with windows key now, too. looks like - a down is sent but not the corresponding up so secondary system - thinks the key is always down. - ---- -key events sent to console on win me (95/98?) are very slow - 1/4 to 1/2 second delay before key up is processed - key up log message is also delayed - console causing a system-wide delay? - ---- -adjust thread priorities on win32 - maybe remove changes altogether - currently isabel starts single-stepping mouse when dragging window - sometimes it goes normal speed but it's mostly very slow - even a very high priority doesn't seem to help - haven't tried real-time priority - a very high priority on client fixes delay when typing into console - is it the output console causing the slowness? - ---- -results: - X primary - ctrl+alt+keypad_add, ctrl+alt_keypad_minus -> eaten by primary X server - ctrl+alt+backspace probably eaten by primary X server if so configured - ctrl+alt+delete probably eaten locally - probably underneath primary X server too - Win32 desktop -> X laptop - eaten global hot keys: - ctrl+alt+delete -> task manager (or logon or reboot) - alt+[shift+]tab -> cycle through tasks - alt+[shift+]esc -> cycle windows - ctrl+esc -> start menu - windows+R -> run dialog - windows+M -> minimize all - windows+shift+M -> undo minimize all - windows+F1 -> help - windows+E -> explorer - windows+F -> find files - windows+ctrl+F -> find computer - windows+tab -> cycle through taskbar buttons - windows+break -> system properties - not eaten: - alt+space -> system menu - shift+F10 -> context menu - app key -> context menu - misc: - accessibility shortcuts: not eaten but dialogs appear anyway - X laptop -> Win32 desktop - check: - shift+tab -> okay - alt+[shift+]tab -> okay - alt+[shift+]esc -> okay - ctrl+esc -> start menu -> okay - ctrl+esc, esc, shift+F10 -> toolbar context menu -> okay - F10 -> activate menu in explorer -> okay - shift+F10 -> context menu -> okay - alt+space -> context menu -> okay - alt+hyphen -> MDI window menu -> okay - alt+letter -> open corresponding menu -> okay - alt+F6 -> switch between windows in single program -> okay - shift+insert CD-ROM -> bypass auto-run - check accessibility shortcuts -> does not work - check accessibility features - sticky keys -> no - filter keys -> no - toggle keys -> no - mouse keys -> no - high contrast -> no - X desktop -> win32 - check: - shift+tab - windows+R -> run dialog - windows+M -> minimize all - windows+shift+M -> minimize all - windows+F1 -> help - windows+E -> explorer - windows+F -> find files - windows+ctrl+F -> find computer - windows+tab -> cycle through taskbar buttons - windows+break -> system properties - app key -> context menu - Win32 -> Win32 - alt+F6 -> eaten (isabel to audrey, but not audrey to isabel) - check accessibility shortcuts work on secondary - check accessibility features work on secondary - ---- -Accessibility Shortcuts - - Key Result - ------------------------------------------------------------------- - Tap SHIFT 5 times Toggles StickyKeys on and off. - - Press down and hold the right Toggles FilterKeys on and off. - SHIFT key for 8 seconds - - Press down and hold the NUM LOCK Toggles ToggleKeys on and off. - key for 5 seconds - - Left ALT+left SHIFT+NUM LOCK Toggles MouseKeys on and off. - - Left ALT+left SHIFT+PRINT SCREEN Toggles High Contrast on and off. - ---- -disable ctrl+alt+del info: - SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, TRUE, &dummy, 0) - fools system into thinking screen saver is running - that disables ctrl+alt+del, alt+tab, ctrl+esc - dunno if keystrokes are queued - may be limited to win 95/98/me - win nt sp 3 and above: - low-level keyboard hook is called before ctrl+esc, alt+tab, alt+esc - use that to capture and disable - seems that low-level hook is notified of ctrl+alt+del but can't stop it - win nt sp 2 and below - ctrl+esc can be disabled by replacing task manager (dunno how) - RegisterHotKey() can be used to catch alt+tab and alt+esc - only while app is running, of course - win nt - keyboard filter driver can capture keys (see win NT DDK) - http://216.239.51.100/search?q=cache:q-f03UHhFMMC:www.thescarms.com/VBasic/StopReBoot.asp+alt%2Btab+disable&hl=en - some info on changing keyboard scan code mapping - can be used to disable keys but looks like reboot is required - ---- -Q179905 - suggestion for bypassing hook code when called by debugger. - may prevent system from getting locked up when debugging. - ---- -win32 rel notes: - HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows\NoInteractiveServices - can prevent an interactive service from running interactively. - how can we tell if we're not running interactively? - even if not interactive we can use MessageBox() to alert user - use MB_SERVICE_NOTIFICATION flag - must use a separate thread in initialization if called from handler - must close dialog if CTRL_LOGOFF_EVENT is received - see SetConsoleCtrlHandler() and CLog (which uses it) - maybe possible to get around NoInteractiveServices - modify DACLs on windows station/desktops to impersonate logged on user - see "Interacting with the User by a Win32 Service" - ---- -unix release notes: - restarting fails to connect until a user logs in: - Xlib: no protocol specified - this is caused by login manager - all clients are rejected, except those started by manager itself - workaround is to have synergy started by login manager - should then use --no-restart, though that's not necessary - affects client and server - cannot switch screens on login screen: - xdm,kdm grab keyboard for duration of login screen - synergy cannot switch unless it can grab keyboard - gdm doesn't appear to grab keyboard or mouse for duration - affects server, only - -=== feedback === -send all toggle states instead of (individual) toggle ups/downs (gspencer) - Actually, Teleffect already does that too, but what I meant was that - each time the state of a "toggle" key (caps lock, scroll lock, num lock) - changes on the master, I think it should force the client to take on - that state, instead of just toggling on the client. That way when Word - (on the client) helpfullly turns off the caps lock, it doesn't get - toggled back on when I turn off the caps lock on the master. Ideally, - it would just notice that Word turned off the caps lock on the client - and turn it off on the master (and all other clients) too, but I think - that's probably too complicated to implement. - -double clicking NT binaries fails (liz) - add note to README or use separate binaries for services. client - would also need a dialog to query options. server would probably - need one too. use dialogs if there are no command line args. - -how to exit (liz) - no good way to exit on windows - -win32 console disappears too quickly (liz) - maybe show a message box if exiting to due an error - -better support for reloading configuration (liz) - use SIGHUP on unix - use an app message on win32 - provide access through a control panel or taskbar icon - -non-functional on ctrl+alt+del screen in win2k (kurt) - i suppose it must be when win2k is the client. mouse input wasn't - working. keyboard probably didn't work either. - ---- -automake stuff - rebuild: - * 'touch NEWS README AUTHORS ChangeLog' - * 'touch stamp-h' - * 'aclocal' - creates aclocal.m4 - * 'autoheader' - creates config.h.in - * 'autoconf' - creates configure from configure.in - * 'automake' - Creates Makefile.in from Makefile.am - * './configure' - creates Makefile from Makefile.in - * 'make' - - funky functions: - snprintf -- ick! - some return negative value -- no problem - some return truncated length -- uh oh - some return buffer length without truncation -- huh? - some actually overrun the buffer -- must not build on those! - - use AC_LIBOBJ(function) for missing/broken functions - adds function.c to build - must add @LIBOBJS@ to *_LIBADD - or AC_REPLACE_FUNCS(function ...) - automatically calls AC_LIBOBJ for missing functions - use AC_CHECK_FUNC or AC_CHECK_FUNCS to detect missing functions - use AC_CHECK_LIB first if function not in std C lib - - AC_FUNC_MEMCMP -- adds memcmp.o to LIBOBJS if memcmp is broken - AC_FUNC_STRFTIME -- check for strftime(), define HAVE_STRFTIME - AC_FUNC_VPRINTF -- check for vprintf(), define HAVE_VPRINTF - also checks for _doprnt(), define HAVE_DOPRNT - - #if STDC_HEADERS - # include - #else - # if !HAVE_STRCHR - # define strchr index - # define strrchr rindex - # endif - char *strchr (), *strrchr (); - # if !HAVE_MEMCPY - # define memcpy(d, s, n) bcopy ((s), (d), (n)) - # define memmove(d, s, n) bcopy ((s), (d), (n)) - # endif - #endif - -must provide fallbacks for stuff: - non-reentrant functions: - put (shared) lock around non-reentrant function - provide reentrant API - gethostbyaddr - gethostbyname - getprotobyname - getprotobynumber - getservbyname - getservbyport - gmtime - getpwuid - strerror - string/memory functions: - memcpy - memcmp - memmove - memset - strcat - strcmp - strcpy - strrchr - -used library functions: - accept - bind - chdir - close - connect - dup - exit - fcntl -* fork - fprintf -* free - getenv - gethostbyaddr - gethostbyname - gethostname - getpeername - getprotobyname - getprotobynumber - getpwuid_r - getservbyname - getservbyport - getsockname - getsockopt - gettimeofday - getuid - inet_addr - inet_ntoa - ioctl - listen -* malloc - mbrtowc - mbsinit - memcpy -! memcmp - memmove - memset - nanosleep - open - openlog - poll - read - recv - recvfrom - send - sendto - setsid - setsockopt - shutdown - sigaction - sigaddset - sigemptyset - sigwait - socket - sprintf - strcat - strcmp - strcpy - strerror - strrchr - strtol - sysconf - syslog - umask - vsnprintf - wcrtomb - write - -included files - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -these put stuff in std::. replace with .h versions or use std::? - 3 #include - 3 #include - 1 #include - 3 #include - 4 #include - 12 #include - 1 #include - -can we use AC_REPLACE_FUNCS and only build the missing function files -in a single directory. do we have to have a separate configure.in -script to do that? diff --git a/nodist/p4tolog b/nodist/p4tolog deleted file mode 100755 index 43d0fe71..00000000 --- a/nodist/p4tolog +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh -# convert p4 logs to ChangeLog -# -# usage: p4tolog [file[revRange] ...] -# -# changes are written to stdout - -# location of perforce client -#P4=/home/perforce/bin/p4 -P4=/usr/local/bin/p4 - -prefix="//depot/project/synergy/" -while [ -n "$1" ]; do - case "$1" in - -p) - # get depot filespec prefix to strip - prefix="$2" - shift - ;; - *) - break - ;; - esac - shift -done - -# escape slashes in prefix -prefix=`echo $prefix | sed -e 's#/#\\\\/#g'` - -# get relevant changes -changes=`$P4 changes $* | sed -e 's/Change \([0-9]*\).*/\1/'` -if test -z "$changes"; then - echo "No changes" - exit 0 -fi - -# convert each change -for change in $changes; do - $P4 describe -s $change | head -1 | \ - sed -e 's/.*by \([^ @]*\)[^ ]* on \([^ ]*\) \([^ ]*\)/\2 \3 \1/' - $P4 describe -s $change | \ - awk 'p==1 && !/^$/;/^Affected/{p=1}' | \ - sed -e 's/^[^ ]* \([^#]*\)#.*$/\1/' | sed -e "s/^$prefix//" - echo - $P4 describe -s $change | \ - awk 'p==1 && !/^$/;/^$/{if (p==1) exit; else p=1}' | \ - sed -e 's/^.//' - echo - echo "----------" -done