Removed files that should not be distributed.
This commit is contained in:
parent
460b751aba
commit
1becc0f29a
|
@ -1,96 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# add header to file. intended to add copyright info to files.
|
|
||||||
#
|
|
||||||
# usage: addheader <file-with-header> <file-to-modify>
|
|
||||||
|
|
||||||
# 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
|
|
|
@ -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.
|
|
488
nodist/notes
488
nodist/notes
|
@ -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 <string.h>
|
|
||||||
#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 <arpa/inet.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <pthread.h>
|
|
||||||
#include <pwd.h>
|
|
||||||
#include <shlobj.h>
|
|
||||||
#include <signal.h>
|
|
||||||
#include <sys/ioctl.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/wait.h>
|
|
||||||
#include <syslog.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
these put stuff in std::. replace with .h versions or use std::?
|
|
||||||
3 #include <cctype>
|
|
||||||
3 #include <cerrno>
|
|
||||||
1 #include <clocale>
|
|
||||||
3 #include <cstdio>
|
|
||||||
4 #include <cstdlib>
|
|
||||||
12 #include <cstring>
|
|
||||||
1 #include <ctime>
|
|
||||||
|
|
||||||
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?
|
|
|
@ -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
|
|
Loading…
Reference in New Issue