version 0.2.5 v0.2.5
authorMats Johannesson <devel@bredband.net>
Thu, 26 Jun 2008 18:45:35 +0000 (14:45 -0400)
committerAristeu Rozanski <arozansk@redhat.com>
Thu, 26 Jun 2008 18:45:35 +0000 (14:45 -0400)
[Absolutely no new functionality! A pure maintenance release to prevent
trouble. Ticked off a todo-list based on user experiences and their snafus]

* Erased the useless code in the src-expresskeysconf directory. When or
if a graphical utility is written it should have a fresh start.

* Populated the auto-generated Gimp section of the configuration file
with a more complete set of keycodes (a collection which I use myself).
This was done in order to help people's understanding of the fields.

Updated the USAGE file with this Gimp information, close to the bottom,
since there was no easy way to auto-write a description in the configuration
file itself.

* Changed the expresskeys-reread.sh and expresskeys-terminate.sh scripts
in the old-extra directory so they won't use any hardcoded program paths,
except for the #!/bin/sh trigger. I thought that I had used the canonical
paths, but distributions apparently shuffle stuff around willy-nilly.

* Threw in a basic trap/filtering routine in config_read.c which silently
swallows illegal keycodes from the low region - below 9 [Escape] - unless
the program is run in verbose (-v) mode. Then it spits out a "keycode IGNORED"
message when the configuration file is read. Xlib crashes the program when
fed unsavory keycodes, so more work can be done in this area.

* Implemented a ./configure discovery section where a dummy file is
compiled and linked for each of libX11.so libXext.so libXi.so libXtst.so
X11/Xlib.h X11/Xutil.h X11/extensions/XInput.h and X11/extensions/XTest.h
Missing dependencies are thus quickly spotted and a comprehensible error
message delivered. A section dealing with dependencies has also been added
at the end of the INSTALL file.

The discovery section can be ogled in the configure.in file of the
root directory. I almost went mad before nailing a working piece like:

echo $'#include <X11/Xlib.h>\nmain(){}'|$CC -L$XLIBDIR -xc - -o dum 2>/dev/null
if test $? != 0 ; then
   echo "Can not include <X11/Xlib.h> header file!"
   SOMEERROR=1
else
   echo "Xlib.h OK"
fi

So simple looking and yet so hard to produce...

* Included the following text block in the runtime help, the README and
the USAGE file (and now here ;-)

"Please direct any bug reports or questions to the top address in
the AUTHORS file. This program is _not_ a linuxwacom project."

41 files changed:
BUGS
ChangeLog
ChangeLog.2 [new file with mode: 0644]
INSTALL
Makefile.in
NEWS
README
USAGE
aclocal.m4
configure
configure.in
depcomp
install-sh
missing
old-extra/Makefile-expresskeysconf
old-extra/Makefile-top
old-extra/expresskeys-reread.sh
old-extra/expresskeys-terminate.sh
src-expresskeys/Makefile.in
src-expresskeys/config_read.c
src-expresskeys/config_write.c
src-expresskeys/event_loop.c
src-expresskeys/exec_shell.c
src-expresskeys/get_device.c
src-expresskeys/globals.c
src-expresskeys/globals.h
src-expresskeys/main_setup.c
src-expresskeys/on_error.c
src-expresskeys/on_signal.c
src-expresskeys/pen_mode.c
src-expresskeys/reg_events.c
src-expresskeysconf/Makefile.am
src-expresskeysconf/Makefile.in
src-expresskeysconf/config_read-conf.c [deleted file]
src-expresskeysconf/event_loop-conf.c [deleted file]
src-expresskeysconf/globals-conf.c [deleted file]
src-expresskeysconf/globals-conf.h [deleted file]
src-expresskeysconf/main_dummy.c [new file with mode: 0644]
src-expresskeysconf/main_setup-conf.c [deleted file]
src-expresskeysconf/on_error-conf.c [deleted file]
src-expresskeysconf/on_signal-conf.c [deleted file]

diff --git a/BUGS b/BUGS
index 4e67ffd..3e8c8f9 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -13,6 +13,11 @@ written in a field line. Possibly other cases.
 clean_up_exit. It becomes a normal EXIT_OK signal for any controlling
 parent.
 
+! Should check that only valid keycodes (and our fake ones) are used
+in a program definition. It is only partially fixed by filtering out
+anything below the keycode 9 [Esc]. Should ignore erroneous spaces in
+the class name field.
+
 _Possible bugs, unmarked_
 
 ! In eg Gimp, if expresskeys is started with the option to handle a pen,
@@ -34,10 +39,6 @@ Reason, totally unknown...
 
 _Known bugs, unmarked_
 
-! Should check that only valid keycodes (and our fake ones) are used
-in a program definition. Should ignore erroneous spaces in the class
-name field.
-
 ! Pressing a pad button with one program window in focus, moving the
 focus to another program window and then releasing the button, leaves
 the first program in a confused mind regarding the keyboard state.
index f002dd1..cbc50d2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 
-_Version 0.2.4 23 Aug 2005_
-
-* Began code transfer/reuse from src-expresskeys to src-expresskeysconf
-as a scaffold for some kind of graphical utility. Long way to go...
-
-* Explained the X "xev" program and keycodes a little better in
-the USAGE file.
-
-* Put a warning regarding the X program "xmodmap" in the BUGS and
-in the USAGE file.
-
-* Cleaned up gcc warnings on a x86_64 system.
-
-_Data Type Sizes (for my own reference)_
-
-Type           x86     x86_64
-
-char           8       8
-short          16      16
-int            32      32
-long           32      64
-long long      64      64
-float          32      32
-double         64      64
-long double    96      128
-void*          32      64
-
-In short, a programmer should NOT assume that:
-sizeof(int) == sizeof(long) == sizeof(void*)
-
-
-_Version 0.2.3 13 May 2005_
-
-* The project now uses the GNU Autotools to:
-"./configure", "make" and "make install".
-
-* Print out a version number with the "Usage" info if the program is
-run with an empty command line.
-
-* Corrected the Blender entry (undo/redo in both edit and object mode).
-Yes, that's a cryptic line ;-) Try Blender for yourself. Next version,
-(2.37) due this month or so, will be something extra.
-
-
-_Version 0.2.2 5 May 2005_
-
-* Included an example of how to use an external program through
-the simple "system" command (see exec_shell.c). The sample
-"xsetwacom" utilization (pen pressure sensitivity) is not particularly
-exciting as a new feature, but nevertheless an opening for future
-implementations.
-
-It's hard to imagine someone wasting three full expresskeys to get
-a comfortable workflow, but here you are:
-
-Keycode field value (regular button only, not touch strips or Plus)
-1001 <-- Pen sensitivity gets lower with each press, until roll over.
-1002 <-- Pen sensitivity is set to wacom default, a middle curve.
-1003 <-- Pen sensitivity gets higher with each press, until roll over.
-
-A pen name must be specified on the command line, of course.
-
-Since both the 1001 and 1003 flip over in a carousel fashion at the
-top and bottom values, you could manage the operation with only one
-button. But if you go too far, there are 6 presses to be made until
-next rendezvous in the 7 state circle. Not good.
-
-The curve values are picked from how the "wacomcpl" program sets them
-(the tcl utility) in Feel -> Sensitivity [1 to 7].
-
-I've refrained from documenting the 1001 - 1003 in the USAGE file, and
-a new configuration file won't have them listed in the header. The real
-world usability is too limited, I feel. Better things will hopefully
-come in the future.
-
-The old pen mode toggle code could be rewritten so it was handled by
-this external xsetwacom functionality, in good *nix tradition of reuse.
-But what if the user environment doesn't have the xsetwacom program
-installed? Better leave the code as is, I think.
-
--------------------------------------------------------------------------
-Speaking of the future, this 0.2.2 version will be the last one (from me
-at least) for quite some time. When I began the project, more than 1 1/2
-months ago, it was out of pure necessity. I had a brand new (expensive)
-Wacom tablet with semi functional hardware. Extensive web searches didn't
-reveal any program to unlock the enticing ExpressKeys and Touch Strips,
-so I reluctantly opened a C language book and set to work.
-
-I never planned to enter the "programmer" domain in earnest. Neither
-did I anticipate a perpetual development. When the job was done, it
-would be done...
-
-And now it's done, from my point of view. Core functions are rather
-complete, and the program runs without hiccups. Ideas have dried up
-and I am frankly getting bored with code hacking. Now I want to USE
-the tablet, finally.
-
-The code is free as in beer and freedom. If anyone feels like expanding
-or even forking it, just do so (according to the GPL). There's the whole
-bag of internationalization, installation and graphical configuration
-left to a fresh mind. I'm too tired right now.
-
-Though, I'll dive in again if a pressing issue turns up ;-)
-
-Bye for now,
-Mats
--------------------------------------------------------------------------
-
-
-_Version 0.2.1 2 May 2005_
-
-* Added support for faking mouse button events. Denis DerSarkisian
-sent a function called "fake_event" (top of event_loop.c) which
-in essence acts like a traffic cop, steering true keycodes to
-XTestFakeKeyEvent and a set of false ones to XTestFakeButtonEvent.
-The fake codes can be entered as 991 to 997 in the configuration
-file, simulating mouse buttons 1 to 7.
-
-Only existing mouse buttons, defined through the driver of the
-active core pointer, can be simulated. I added discovery code to
-prevent a crash if someone tries to use a nonexistent mouse button
-in the range 1 to 7.
-
-The code author wanted his touch strips to act like a mouse's scroll
-wheel through the use of mouse buttons 4 - 5 (Up/Down) and 6 - 7
-(Left/Right). I only have a three button mouse, the Wacom puck is
-not a core pointer, but can make good use of the new functionality
-in eg the web browser Opera:
-
-[...]
-20 Right Pad - Button 14:      993             # Button 14
-21 Right Pad - Button 14 Plus: 991             # Extra key
-[...]
-24 Right Pad - Button 16:      991             # Button 16
-25 Right Pad - Button 16 Plus: 993             # Extra key
-[...]
-
-With those definitions I step backwards (14) and forwards (16) in
-the visited page history. Opera's "forward" can also take me to
-the "Next" linked page, so it's very convenient when having a long
-reading session.
-
-* Expanded the "-v" (verbose mode) printing to cover more execution
-points and be a lot more detailed.
-
-* Racked my brain and added some more knowledge to the BUGS file.
-
-
-_Version 0.2.0 29 April 2005_
-
-(NOTE: A version of this archive was pulled from the website after a
-few hours of exposure on April 28, based on the suspicion that it
-contained a corrupt file due to some file system issues on my machine.
-Both fears were unfounded. I've spent this interim on further
-restructuring of the text files outside of the code directories)
-
-* New configuration file format. Incompatible with the old one, hence
-the version bump from 0.1 to 0.2
-
-Move/rename the old file and run the program to get a new. Then edit...
-
-The old format was basically just a transcript of how a C structure
-is initialized. It had nothing in common with how a configuration
-file in *nix should be construed.
-
-Rules for the new configuration file is: Blank lines and everything
-after a "#" is discarded. Full program records begin and end with
-a double percentage sign "%%". A program field begins after a colon ":".
-The program names must be within two double quotes "". Like so:
-
-"A ProgramName" <-- OK
-" A ProgramName" or "A ProgramName " <-- NOT-OK
-
-This is in accordance with the old rule about how to deal with spaces
-in that field.
-
-I can only vouch for parsing sanity if each line in the file is kept
-below 160 bytes in length (see the BUGS file). That's the equiv of
-two old style terminal lines. If you want more, change the MAXBUFFER
-value in globals.h
-
-* Another command line option: "-v". Will turn on the be_verbose flag
-which prints info to the screen from plenty of program execution points.
-An aid for debugging, or just checking out the runtime state.
-
-* Got rid of the ugly switch routines in event_loop.c and config_read.c.
-I've done extensive benchmarking and see no difference in code speed.
-Advantage, apart from code simplicity, is that the compiled program
-size was reduced by ca 4000 bytes - before the 0.2.0 additions.
-
-
-_Version 0.1.4 24 April 2005_
-
-* Memory bugfix. Running the program under Valgrind to catch memory
-leaks and other errors I finally saw the reason for me needing
-heap_protect kludges. Doing XFreeDeviceList on a structure and then
-reading data from the freed memory only works through luck...
-
-* Took the opportunity to free lingering memory allocations at program
-exit. It's not strictly necessary since the OS should reclaim it all,
-but looks nice in the Valgrind summary. There's still one left that
-I can't find the souce of. It belongs to XextCreateExtension apparently.
-
-* Bugfix: Had forgotten to close the error.log after writing to it in
-the exit_on_error function. Also, that function shouldn't do a final
-exit(EXIT_KO) but instead jump to clean_up_exit(SIGTERM). However,
-doing that it won't return the EXIT_KO to any parent. I'd have to
-change the signal handling to achieve this.
-
-* Bugfix: The config file version tag was meant to look like:
-
-Version: 1
-
-and nothing else, for now... The confusion and uncertainty stems from
-doing this before a final format has been chosen. There are many factors
-to consider, so bear with me.
-
-* Reverted to the "expresskeys" base name on compile output and shell
-files. When writing code it's more convenient with a short name, but
-any final product should have a consistent naming.
-
-
-_Version 0.1.3 21 April 2005_
-
-* Just internal code cleanup/restructuring after having begun reading
-"The Art of Unix Programming" by Eric Steven Raymond:
-http://www.catb.org/~esr/writings/taoup/html/
-
-* Now tags a new configuration file with a version number according to
-his advice: "Always, _always_ either include a version number, or ...".
-Expect more internal changes when I'm done reading. In an already
-existing configuration file you'll have to add it manually. Put a:
-
-Config File Version 1:
-
-on a line by itself at the very top.
-
-
-_Version 0.1.2 20 April 2005_
-
-* Signal handling in place. Not much in itself, but:
-
-* Re-reads the configuration file upon receipt of the signal SIGUSR1.
-Do a "kill -USR1 <pid-of-ekeys>" after a config file edit. That's USR
-and the digit 1. I've also modified USR2 to do the same thing, for
-now at least.
-
-Included is a shell script called ekeys-reread.sh which does it for you
-if ekeys is running in daemon mode. Also included is ekeys-terminate.sh
-which replaces the former ekeys-kill.sh (a bit smarter).
-
-* The program will now refuse to start if it detects another instance
-running. Only works if there is a pid-file to examine of course.
-A pid-file left by a crash (will never happen...) and not connected
-with any process by that number is ignored, and the program continues.
-
-* A properly terminated program deletes the pid-file upon exit. Proper
-means a normal "kill <pid>", "killall ekeys", "kill -TERM <pid>" etc.
-Doing a brutal "kill -9 <pid>" or if the program crashes (cough, cough)
-will leave the pid-file undeleted.
-
-* Any error, encountered by the code, which terminates the program is
-written to the file "error.log" as well as to the screen. A restart
-truncates the file (it becomes size 0). This means that there always
-will be an error.log present, but empty in normal cases.
-
-
-_Version 0.1.1 17 April 2005_
-
-* Now reads an external configuration file at program launch. It
-searches in the user home directory under the hidden "/.expresskeys"
-directory. File is called "expresskeys.conf". If none is found, or
-the directory doesn't exist yet, it makes the dir, then creates and
-populates a minimal file from an internal list. The original "default",
-"Gimp", "Blender" and "XTerm" entries. It then goes on and reads in
-that file immediately. A limit of 64 different program definitions
-has been set (easily altered in the code). It's way more than most
-would need, since the "default" is fine for a huge group of programs.
-
-Rules for the configuration file is: Don't use { or } in comments,
-and preferably keep comments outside of program definitions. The
-comma (,) inside a definition is still used to separate all the
-fields. Program names don't need the embracing quotes "" but I
-kept the default list using them. Since spaces are accepted as part
-of a class name, make sure there are no space _before or after_ the
-name, prior to the terminating field comma:
-
-{"A ProgramName", or {A ProgramName,    <-- OK
-{"A ProgramName" , or { A ProgramName,  <-- NOT-OK
-
-The extra space/s would become part of the class name. Not what you want.
-If you absolutely must put some space before the comma, use TAB instead.
-Those are discarded while parsing the string.
-
-* Pen handling is now specified on the command line, eg:
-
-ekeys pad stylus
-
-The value for pen mode switch in the configuration file is still 999.
-
-Yes, "ekeys" :-) I changed the compile output to that name. The code
-tarball will still be named expresskeys though. Doing a web search
-revealed it to be rather unique to the Intuos3, while ekeys turned
-up music hardware and relatives. But, naturally, feel free to name it
-badzilla or VincentVanGogh instead. Program behaviour is not dependent
-on the file name.
-
-* Another command line change, to make it run in the background:
-
-ekeys pad stylus -d
-
-It then runs in "daemon" mode. The difference between pushing it
-with a terminating & or letting internal code "fork" it is beyond
-most peoples interest. I can already hear the snores building up...
-But in terms of how I've coded stuff it still matters.
-
-If the program is launched into daemon mode, it writes out another
-file in the configuration directory: "expresskeys.pid". A
-process identification (PID) is a unique number, separating the
-program from all the other stuff you have running. The number can
-be used, for example, to do an easy kill.
-
-I've included a simple shell script (called ekeys-kill.sh) which reads the
-expresskeys.pid and tries to kill whatever process that has the pid,
-so do a "ps aux | grep ekeys" beforehand to be sure it's running
-(and don't confuse your "grep ekeys" with an actual "ekeys" instance).
-Add a line to start ekeys directly after a kill and you have an easy
-path when doing config file changes. The pid file is not automatically
-deleted by internal code on exit (yet).
-
-* For any programmer out there, or curious user, I've now filled the
-code with comments. It had to be done at some point...
-
-
-_Version 0.1.0 5 April 2005_
-
-Just internal changes. A massive rewrite to get rid of cruft, and
-put my own stink on the whole code structure. Ah yes, I then GPL-d
-the result...
+_Version 0.2.5 7 Feb 2006_
+
+[Absolutely no new functionality! A pure maintenance release to prevent
+trouble. Ticked off a todo-list based on user experiences and their snafus]
+
+* Erased the useless code in the src-expresskeysconf directory. When or
+if a graphical utility is written it should have a fresh start.
+
+* Populated the auto-generated Gimp section of the configuration file
+with a more complete set of keycodes (a collection which I use myself).
+This was done in order to help people's understanding of the fields.
+
+Updated the USAGE file with this Gimp information, close to the bottom,
+since there was no easy way to auto-write a description in the configuration
+file itself.
+
+* Changed the expresskeys-reread.sh and expresskeys-terminate.sh scripts
+in the old-extra directory so they won't use any hardcoded program paths,
+except for the #!/bin/sh trigger. I thought that I had used the canonical
+paths, but distributions apparently shuffle stuff around willy-nilly.
+
+* Threw in a basic trap/filtering routine in config_read.c which silently
+swallows illegal keycodes from the low region - below 9 [Escape] - unless
+the program is run in verbose (-v) mode. Then it spits out a "keycode IGNORED"
+message when the configuration file is read. Xlib crashes the program when
+fed unsavory keycodes, so more work can be done in this area.
+
+* Implemented a ./configure discovery section where a dummy file is
+compiled and linked for each of libX11.so libXext.so libXi.so libXtst.so
+X11/Xlib.h X11/Xutil.h X11/extensions/XInput.h and X11/extensions/XTest.h
+Missing dependencies are thus quickly spotted and a comprehensible error
+message delivered. A section dealing with dependencies has also been added
+at the end of the INSTALL file.
+
+The discovery section can be ogled in the configure.in file of the
+root directory. I almost went mad before nailing a working piece like:
+
+echo $'#include <X11/Xlib.h>\nmain(){}'|$CC -L$XLIBDIR -xc - -o dum 2>/dev/null
+if test $? != 0 ; then
+   echo "Can not include <X11/Xlib.h> header file!"
+   SOMEERROR=1
+else
+   echo "Xlib.h OK"
+fi
+
+So simple looking and yet so hard to produce...
+
+* Included the following text block in the runtime help, the README and
+the USAGE file (and now here ;-)
+
+"Please direct any bug reports or questions to the top address in
+the AUTHORS file. This program is _not_ a linuxwacom project."
 
diff --git a/ChangeLog.2 b/ChangeLog.2
new file mode 100644 (file)
index 0000000..f002dd1
--- /dev/null
@@ -0,0 +1,341 @@
+
+_Version 0.2.4 23 Aug 2005_
+
+* Began code transfer/reuse from src-expresskeys to src-expresskeysconf
+as a scaffold for some kind of graphical utility. Long way to go...
+
+* Explained the X "xev" program and keycodes a little better in
+the USAGE file.
+
+* Put a warning regarding the X program "xmodmap" in the BUGS and
+in the USAGE file.
+
+* Cleaned up gcc warnings on a x86_64 system.
+
+_Data Type Sizes (for my own reference)_
+
+Type           x86     x86_64
+
+char           8       8
+short          16      16
+int            32      32
+long           32      64
+long long      64      64
+float          32      32
+double         64      64
+long double    96      128
+void*          32      64
+
+In short, a programmer should NOT assume that:
+sizeof(int) == sizeof(long) == sizeof(void*)
+
+
+_Version 0.2.3 13 May 2005_
+
+* The project now uses the GNU Autotools to:
+"./configure", "make" and "make install".
+
+* Print out a version number with the "Usage" info if the program is
+run with an empty command line.
+
+* Corrected the Blender entry (undo/redo in both edit and object mode).
+Yes, that's a cryptic line ;-) Try Blender for yourself. Next version,
+(2.37) due this month or so, will be something extra.
+
+
+_Version 0.2.2 5 May 2005_
+
+* Included an example of how to use an external program through
+the simple "system" command (see exec_shell.c). The sample
+"xsetwacom" utilization (pen pressure sensitivity) is not particularly
+exciting as a new feature, but nevertheless an opening for future
+implementations.
+
+It's hard to imagine someone wasting three full expresskeys to get
+a comfortable workflow, but here you are:
+
+Keycode field value (regular button only, not touch strips or Plus)
+1001 <-- Pen sensitivity gets lower with each press, until roll over.
+1002 <-- Pen sensitivity is set to wacom default, a middle curve.
+1003 <-- Pen sensitivity gets higher with each press, until roll over.
+
+A pen name must be specified on the command line, of course.
+
+Since both the 1001 and 1003 flip over in a carousel fashion at the
+top and bottom values, you could manage the operation with only one
+button. But if you go too far, there are 6 presses to be made until
+next rendezvous in the 7 state circle. Not good.
+
+The curve values are picked from how the "wacomcpl" program sets them
+(the tcl utility) in Feel -> Sensitivity [1 to 7].
+
+I've refrained from documenting the 1001 - 1003 in the USAGE file, and
+a new configuration file won't have them listed in the header. The real
+world usability is too limited, I feel. Better things will hopefully
+come in the future.
+
+The old pen mode toggle code could be rewritten so it was handled by
+this external xsetwacom functionality, in good *nix tradition of reuse.
+But what if the user environment doesn't have the xsetwacom program
+installed? Better leave the code as is, I think.
+
+-------------------------------------------------------------------------
+Speaking of the future, this 0.2.2 version will be the last one (from me
+at least) for quite some time. When I began the project, more than 1 1/2
+months ago, it was out of pure necessity. I had a brand new (expensive)
+Wacom tablet with semi functional hardware. Extensive web searches didn't
+reveal any program to unlock the enticing ExpressKeys and Touch Strips,
+so I reluctantly opened a C language book and set to work.
+
+I never planned to enter the "programmer" domain in earnest. Neither
+did I anticipate a perpetual development. When the job was done, it
+would be done...
+
+And now it's done, from my point of view. Core functions are rather
+complete, and the program runs without hiccups. Ideas have dried up
+and I am frankly getting bored with code hacking. Now I want to USE
+the tablet, finally.
+
+The code is free as in beer and freedom. If anyone feels like expanding
+or even forking it, just do so (according to the GPL). There's the whole
+bag of internationalization, installation and graphical configuration
+left to a fresh mind. I'm too tired right now.
+
+Though, I'll dive in again if a pressing issue turns up ;-)
+
+Bye for now,
+Mats
+-------------------------------------------------------------------------
+
+
+_Version 0.2.1 2 May 2005_
+
+* Added support for faking mouse button events. Denis DerSarkisian
+sent a function called "fake_event" (top of event_loop.c) which
+in essence acts like a traffic cop, steering true keycodes to
+XTestFakeKeyEvent and a set of false ones to XTestFakeButtonEvent.
+The fake codes can be entered as 991 to 997 in the configuration
+file, simulating mouse buttons 1 to 7.
+
+Only existing mouse buttons, defined through the driver of the
+active core pointer, can be simulated. I added discovery code to
+prevent a crash if someone tries to use a nonexistent mouse button
+in the range 1 to 7.
+
+The code author wanted his touch strips to act like a mouse's scroll
+wheel through the use of mouse buttons 4 - 5 (Up/Down) and 6 - 7
+(Left/Right). I only have a three button mouse, the Wacom puck is
+not a core pointer, but can make good use of the new functionality
+in eg the web browser Opera:
+
+[...]
+20 Right Pad - Button 14:      993             # Button 14
+21 Right Pad - Button 14 Plus: 991             # Extra key
+[...]
+24 Right Pad - Button 16:      991             # Button 16
+25 Right Pad - Button 16 Plus: 993             # Extra key
+[...]
+
+With those definitions I step backwards (14) and forwards (16) in
+the visited page history. Opera's "forward" can also take me to
+the "Next" linked page, so it's very convenient when having a long
+reading session.
+
+* Expanded the "-v" (verbose mode) printing to cover more execution
+points and be a lot more detailed.
+
+* Racked my brain and added some more knowledge to the BUGS file.
+
+
+_Version 0.2.0 29 April 2005_
+
+(NOTE: A version of this archive was pulled from the website after a
+few hours of exposure on April 28, based on the suspicion that it
+contained a corrupt file due to some file system issues on my machine.
+Both fears were unfounded. I've spent this interim on further
+restructuring of the text files outside of the code directories)
+
+* New configuration file format. Incompatible with the old one, hence
+the version bump from 0.1 to 0.2
+
+Move/rename the old file and run the program to get a new. Then edit...
+
+The old format was basically just a transcript of how a C structure
+is initialized. It had nothing in common with how a configuration
+file in *nix should be construed.
+
+Rules for the new configuration file is: Blank lines and everything
+after a "#" is discarded. Full program records begin and end with
+a double percentage sign "%%". A program field begins after a colon ":".
+The program names must be within two double quotes "". Like so:
+
+"A ProgramName" <-- OK
+" A ProgramName" or "A ProgramName " <-- NOT-OK
+
+This is in accordance with the old rule about how to deal with spaces
+in that field.
+
+I can only vouch for parsing sanity if each line in the file is kept
+below 160 bytes in length (see the BUGS file). That's the equiv of
+two old style terminal lines. If you want more, change the MAXBUFFER
+value in globals.h
+
+* Another command line option: "-v". Will turn on the be_verbose flag
+which prints info to the screen from plenty of program execution points.
+An aid for debugging, or just checking out the runtime state.
+
+* Got rid of the ugly switch routines in event_loop.c and config_read.c.
+I've done extensive benchmarking and see no difference in code speed.
+Advantage, apart from code simplicity, is that the compiled program
+size was reduced by ca 4000 bytes - before the 0.2.0 additions.
+
+
+_Version 0.1.4 24 April 2005_
+
+* Memory bugfix. Running the program under Valgrind to catch memory
+leaks and other errors I finally saw the reason for me needing
+heap_protect kludges. Doing XFreeDeviceList on a structure and then
+reading data from the freed memory only works through luck...
+
+* Took the opportunity to free lingering memory allocations at program
+exit. It's not strictly necessary since the OS should reclaim it all,
+but looks nice in the Valgrind summary. There's still one left that
+I can't find the souce of. It belongs to XextCreateExtension apparently.
+
+* Bugfix: Had forgotten to close the error.log after writing to it in
+the exit_on_error function. Also, that function shouldn't do a final
+exit(EXIT_KO) but instead jump to clean_up_exit(SIGTERM). However,
+doing that it won't return the EXIT_KO to any parent. I'd have to
+change the signal handling to achieve this.
+
+* Bugfix: The config file version tag was meant to look like:
+
+Version: 1
+
+and nothing else, for now... The confusion and uncertainty stems from
+doing this before a final format has been chosen. There are many factors
+to consider, so bear with me.
+
+* Reverted to the "expresskeys" base name on compile output and shell
+files. When writing code it's more convenient with a short name, but
+any final product should have a consistent naming.
+
+
+_Version 0.1.3 21 April 2005_
+
+* Just internal code cleanup/restructuring after having begun reading
+"The Art of Unix Programming" by Eric Steven Raymond:
+http://www.catb.org/~esr/writings/taoup/html/
+
+* Now tags a new configuration file with a version number according to
+his advice: "Always, _always_ either include a version number, or ...".
+Expect more internal changes when I'm done reading. In an already
+existing configuration file you'll have to add it manually. Put a:
+
+Config File Version 1:
+
+on a line by itself at the very top.
+
+
+_Version 0.1.2 20 April 2005_
+
+* Signal handling in place. Not much in itself, but:
+
+* Re-reads the configuration file upon receipt of the signal SIGUSR1.
+Do a "kill -USR1 <pid-of-ekeys>" after a config file edit. That's USR
+and the digit 1. I've also modified USR2 to do the same thing, for
+now at least.
+
+Included is a shell script called ekeys-reread.sh which does it for you
+if ekeys is running in daemon mode. Also included is ekeys-terminate.sh
+which replaces the former ekeys-kill.sh (a bit smarter).
+
+* The program will now refuse to start if it detects another instance
+running. Only works if there is a pid-file to examine of course.
+A pid-file left by a crash (will never happen...) and not connected
+with any process by that number is ignored, and the program continues.
+
+* A properly terminated program deletes the pid-file upon exit. Proper
+means a normal "kill <pid>", "killall ekeys", "kill -TERM <pid>" etc.
+Doing a brutal "kill -9 <pid>" or if the program crashes (cough, cough)
+will leave the pid-file undeleted.
+
+* Any error, encountered by the code, which terminates the program is
+written to the file "error.log" as well as to the screen. A restart
+truncates the file (it becomes size 0). This means that there always
+will be an error.log present, but empty in normal cases.
+
+
+_Version 0.1.1 17 April 2005_
+
+* Now reads an external configuration file at program launch. It
+searches in the user home directory under the hidden "/.expresskeys"
+directory. File is called "expresskeys.conf". If none is found, or
+the directory doesn't exist yet, it makes the dir, then creates and
+populates a minimal file from an internal list. The original "default",
+"Gimp", "Blender" and "XTerm" entries. It then goes on and reads in
+that file immediately. A limit of 64 different program definitions
+has been set (easily altered in the code). It's way more than most
+would need, since the "default" is fine for a huge group of programs.
+
+Rules for the configuration file is: Don't use { or } in comments,
+and preferably keep comments outside of program definitions. The
+comma (,) inside a definition is still used to separate all the
+fields. Program names don't need the embracing quotes "" but I
+kept the default list using them. Since spaces are accepted as part
+of a class name, make sure there are no space _before or after_ the
+name, prior to the terminating field comma:
+
+{"A ProgramName", or {A ProgramName,    <-- OK
+{"A ProgramName" , or { A ProgramName,  <-- NOT-OK
+
+The extra space/s would become part of the class name. Not what you want.
+If you absolutely must put some space before the comma, use TAB instead.
+Those are discarded while parsing the string.
+
+* Pen handling is now specified on the command line, eg:
+
+ekeys pad stylus
+
+The value for pen mode switch in the configuration file is still 999.
+
+Yes, "ekeys" :-) I changed the compile output to that name. The code
+tarball will still be named expresskeys though. Doing a web search
+revealed it to be rather unique to the Intuos3, while ekeys turned
+up music hardware and relatives. But, naturally, feel free to name it
+badzilla or VincentVanGogh instead. Program behaviour is not dependent
+on the file name.
+
+* Another command line change, to make it run in the background:
+
+ekeys pad stylus -d
+
+It then runs in "daemon" mode. The difference between pushing it
+with a terminating & or letting internal code "fork" it is beyond
+most peoples interest. I can already hear the snores building up...
+But in terms of how I've coded stuff it still matters.
+
+If the program is launched into daemon mode, it writes out another
+file in the configuration directory: "expresskeys.pid". A
+process identification (PID) is a unique number, separating the
+program from all the other stuff you have running. The number can
+be used, for example, to do an easy kill.
+
+I've included a simple shell script (called ekeys-kill.sh) which reads the
+expresskeys.pid and tries to kill whatever process that has the pid,
+so do a "ps aux | grep ekeys" beforehand to be sure it's running
+(and don't confuse your "grep ekeys" with an actual "ekeys" instance).
+Add a line to start ekeys directly after a kill and you have an easy
+path when doing config file changes. The pid file is not automatically
+deleted by internal code on exit (yet).
+
+* For any programmer out there, or curious user, I've now filled the
+code with comments. It had to be done at some point...
+
+
+_Version 0.1.0 5 April 2005_
+
+Just internal changes. A massive rewrite to get rid of cruft, and
+put my own stink on the whole code structure. Ah yes, I then GPL-d
+the result...
+
diff --git a/INSTALL b/INSTALL
index 3d40cea..41e7c45 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,7 @@
 
-Just type:
+(Look at the end of this file if there is a problem compiling)
+
+Normally just type:
 
 ./configure
 make
@@ -27,3 +29,19 @@ GNU Autotools fail for some reason, those are easier to understand and
 edit. Then just copy them over to each Makefile in the source directories.
 Type "make" and copy the binary to a suitable location.
 
+--------------------------------------------------------------------------
+
+Problems?
+
+Make sure that the dependencies for compiling this program are met.
+Apart from the normal libraries and header files used for any
+program development, we need what loosely can be called an
+"X development environment". Specifically the following libraries
+must be available for linking: libX11.so libXext.so libXi.so and
+libXtst.so Header files from X that we must be able to include are:
+X11/Xlib.h X11/Xutil.h X11/extensions/XInput.h and X11/extensions/XTest.h
+Some distributions do not provide this environment by default and
+therefore require additional packages to be installed before
+compiling. Example names from one distribution are libxi-dev and
+libxtst-dev for the xinput and xtest packages.
+
index 4dd22c6..a1f30fb 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -208,13 +208,7 @@ uninstall-info-am:
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-       @failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
+       @set fnord $$MAKEFLAGS; amf=$$2; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
        list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -226,7 +220,7 @@ $(RECURSIVE_TARGETS):
            local_target="$$target"; \
          fi; \
          (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-         || eval $$failcom; \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
        done; \
        if test "$$dot_seen" = "no"; then \
          $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
@@ -234,13 +228,7 @@ $(RECURSIVE_TARGETS):
 
 mostlyclean-recursive clean-recursive distclean-recursive \
 maintainer-clean-recursive:
-       @failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
+       @set fnord $$MAKEFLAGS; amf=$$2; \
        dot_seen=no; \
        case "$@" in \
          distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
@@ -261,7 +249,7 @@ maintainer-clean-recursive:
            local_target="$$target"; \
          fi; \
          (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-         || eval $$failcom; \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
        done && test -z "$$fail"
 tags-recursive:
        list='$(SUBDIRS)'; for subdir in $$list; do \
diff --git a/NEWS b/NEWS
index 757b6ee..896d873 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,5 @@
 
 _Changes since last version. Executive summary_
 
-- Cleaned up gcc warnings on a x86_64 system.
+- Maintenance release for trouble prevention.
 
diff --git a/README b/README
index 5972805..1bc542c 100644 (file)
--- a/README
+++ b/README
@@ -5,6 +5,9 @@ Pen Display. Latest version can be found at:
 
 http://web.telia.com/~u46133770/wacom/index.html
 
+Please direct any bug reports or questions to the top address in
+the AUTHORS file. This program is _not_ a linuxwacom project.
+
 The USAGE file lists all the important and current key points for
 program configuration and execution.
 
diff --git a/USAGE b/USAGE
index d68306d..517c88c 100644 (file)
--- a/USAGE
+++ b/USAGE
@@ -1,3 +1,7 @@
+
+Please direct any bug reports or questions to the top address in
+the AUTHORS file. This program is _not_ a linuxwacom project.
+
 ///////////////////////////////////////////////////////////////////////////
 
 Important: If you use the linuxwacom-0.6.7-beta or in the future
@@ -237,12 +241,31 @@ used to separate and define the program blocks.
 
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
-The "Gimp" entry has the touch strips turned on by default. The keycodes
-used are:
-20 = "+" = Gimp Zoom In. Left/Right touch strip up motion
-61 = "-" = Gimp Zoom Out. Left/Right touch strip down motion.
+The "Gimp" entry has the touch strips turned on by default, and I've
+populated it with keycodes that I actually use myself. This was done to
+minimize confusion about how to fill in the fields. As it stands, they
+are (for my Swedish keyboard):
+
+20 = "+" = Gimp Zoom In. Left touch strip up motion
+61 = "-" = Gimp Zoom Out. Left touch strip down motion
+
+64 = "Alt" plus 20 = "+" = Gimp Next Brush. Right touch strip up motion
+64 = "Alt" plus 61 = "-" = Gimp Previous Brush. Right touch strip down motion
+
+(The above has been configured through the Gimp menu: File -> Preferences ->
+Interface -> Configure Keyboard Shortcuts -> Context)
+
+50 = "Shift" = Button 9
+64 = "Alt"   = Button 10 (Holding this, copies Right touch strip to Left!)
+37 = "Ctrl"  = Button 11
+65 = "Space" = Button 12
+
+37 = "Ctrl" plus 29 = "y" = Gimp Redo. Button 13
+37 = "Ctrl" plus 52 = "z" = Gimp Undo. Button 14
+999 = "Pen Mode Toggle" = Button 15
+65 = "Space" = Button 16
 
-The "Blender" entry is a private choice for the 3D program blender...
+The "Blender" entry is similarly a private choice for the 3D program blender.
 
 I felt, and feel, that an "XTerm" is too important a window to have _any_
 interference from the pad. But observe that I want to be able to switch
index 2b84dd9..fa31882 100644 (file)
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.9.5 -*- Autoconf -*-
+# generated automatically by aclocal 1.9.4 -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005  Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+# Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
-# Copyright (C) 2002, 2003, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
+#                                                        -*- Autoconf -*-
+# Copyright (C) 2002, 2003  Free Software Foundation, Inc.
+# Generated from amversion.in; do not edit by hand.
+
+# 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
 
 # AM_AUTOMAKE_VERSION(VERSION)
 # ----------------------------
@@ -28,15 +40,26 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
 # Call AM_AUTOMAKE_VERSION so it can be traced.
 # This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-        [AM_AUTOMAKE_VERSION([1.9.5])])
+        [AM_AUTOMAKE_VERSION([1.9.4])])
 
-# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
+# AM_AUX_DIR_EXPAND
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
+# Copyright (C) 2001, 2003 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.
 
 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
 # $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
@@ -83,16 +106,26 @@ AC_PREREQ([2.50])dnl
 am_aux_dir=`cd $ac_aux_dir && pwd`
 ])
 
-# AM_CONDITIONAL                                            -*- Autoconf -*-
+# AM_CONDITIONAL                                              -*- Autoconf -*-
 
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
+# Copyright (C) 1997, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
 
-# serial 7
+# 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.
+
+# serial 6
 
 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
 # -------------------------------------
@@ -116,15 +149,26 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
+# serial 7                                             -*- Autoconf -*-
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
 # Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
 
-# serial 8
+# 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.
+
 
 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
@@ -133,6 +177,7 @@ fi])])
 # CC etc. in the Makefile, will ask for an AC_PROG_CC use...
 
 
+
 # _AM_DEPENDENCIES(NAME)
 # ----------------------
 # See how the compiler implements dependency checking.
@@ -272,16 +317,27 @@ AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
 AC_SUBST([AMDEPBACKSLASH])
 ])
 
-# Generate code to set up dependency tracking.              -*- Autoconf -*-
+# Generate code to set up dependency tracking.   -*- Autoconf -*-
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+#   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.
 
-#serial 3
+#serial 2
 
 # _AM_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
@@ -340,31 +396,54 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
      [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
 ])
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
+# Like AC_CONFIG_HEADER, but automatically create stamp file. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003 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.
 
-# serial 8
+# 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.
+
+# serial 7
 
 # AM_CONFIG_HEADER is obsolete.  It has been replaced by AC_CONFIG_HEADERS.
 AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
 
-# Do all the work for Automake.                             -*- Autoconf -*-
+# Do all the work for Automake.                            -*- Autoconf -*-
+
+# This macro actually does too much some checks are only needed if
+# your package does certain things.  But this isn't really a big deal.
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
 # Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
 
-# serial 12
+# 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 macro actually does too much.  Some checks are only needed if
-# your package does certain things.  But this isn't really a big deal.
+# 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.
+
+# serial 11
 
 # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
 # AM_INIT_AUTOMAKE([OPTIONS])
@@ -466,27 +545,51 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
 # AM_PROG_INSTALL_SH
 # ------------------
 # Define $install_sh.
+
+# Copyright (C) 2001, 2003 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.
+
 AC_DEFUN([AM_PROG_INSTALL_SH],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
 install_sh=${install_sh-"$am_aux_dir/install-sh"}
 AC_SUBST(install_sh)])
 
-# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
+#                                                          -*- Autoconf -*-
+# Copyright (C) 2003  Free Software Foundation, Inc.
 
-# serial 2
+# 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.
+
+# serial 1
 
 # Check whether the underlying file-system supports filenames
 # with a leading dot.  For instance MS-DOS doesn't.
@@ -501,17 +604,28 @@ fi
 rmdir .tst 2>/dev/null
 AC_SUBST([am__leading_dot])])
 
-# Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
+# Add --enable-maintainer-mode option to configure.
 # From Jim Meyering
 
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004
 # Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
 
-# serial 4
+# 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.
+
+# serial 3
 
 AC_DEFUN([AM_MAINTAINER_MODE],
 [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
@@ -530,15 +644,26 @@ AC_DEFUN([AM_MAINTAINER_MODE],
 
 AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
 
-# Check to see how 'make' treats includes.                 -*- Autoconf -*-
+# Check to see how 'make' treats includes.     -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
+# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
 
-# serial 3
+# 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.
+
+# serial 2
 
 # AM_MAKE_INCLUDE()
 # -----------------
@@ -582,16 +707,27 @@ AC_MSG_RESULT([$_am_result])
 rm -f confinc confmf
 ])
 
-# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
+#  -*- Autoconf -*-
 
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
 
-# serial 4
+# Copyright (C) 1997, 1999, 2000, 2001, 2003 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.
+
+# serial 3
 
 # AM_MISSING_PROG(NAME, PROGRAM)
 # ------------------------------
@@ -617,16 +753,27 @@ else
 fi
 ])
 
-# Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
 # AM_PROG_MKDIR_P
 # ---------------
 # Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
-#
+
+# Copyright (C) 2003, 2004 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.
+
 # Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
 # created by `make install' are always world readable, even if the
 # installer happens to have an overly restrictive umask (e.g. 077).
@@ -680,15 +827,26 @@ else
 fi
 AC_SUBST([mkdir_p])])
 
-# Helper functions for option handling.                     -*- Autoconf -*-
+# Helper functions for option handling.                    -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
+# Copyright (C) 2001, 2002, 2003  Free Software Foundation, Inc.
 
-# serial 3
+# 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.
+
+# serial 2
 
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
@@ -713,16 +871,28 @@ AC_DEFUN([_AM_SET_OPTIONS],
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Check to make sure that the build environment is sane.    -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
-# Free Software Foundation, Inc.
 #
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
+# Check to make sure that the build environment is sane.
+#
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003 Free Software Foundation, Inc.
 
-# serial 4
+# 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.
+
+# serial 3
 
 # AM_SANITY_CHECK
 # ---------------
@@ -765,14 +935,25 @@ Check your system clock])
 fi
 AC_MSG_RESULT(yes)])
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
 # AM_PROG_INSTALL_STRIP
-# ---------------------
+
+# Copyright (C) 2001, 2003 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.
+
 # One issue with vendor `install' (even GNU) is that you can't
 # specify the program used to strip binaries.  This is especially
 # annoying in cross-compiling environments, where the build's strip
@@ -795,13 +976,25 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
+# Copyright (C) 2004  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.
+
+# serial 1
 
-# serial 2
 
 # _AM_PROG_TAR(FORMAT)
 # --------------------
index e182258..0a71d6c 100755 (executable)
--- a/configure
+++ b/configure
@@ -810,7 +810,8 @@ Optional Features:
   --enable-dependency-tracking   do not reject slow dependency extractors
   --enable-expresskeys    Enable building expresskeys [default=yes]
   --enable-expresskeysconf
-                          Enable building expresskeysconf [default=no]
+                          Enable building a non-working dummy file
+                          [default=no]
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
@@ -1572,7 +1573,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE=expresskeys
- VERSION=0.2.3
+ VERSION=0.2.5
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2877,6 +2878,94 @@ echo "${ECHO_T}not found - tried $XLIBDIR" >&6
 fi
 
 
+if test x$ENV_XLIB != xno; then
+
+SOMEERROR=0
+
+echo $'\nChecking the X compiling environment in detail...\n'
+
+echo $'main(){}'|$CC -L$XLIBDIR -lX11 -xc - -o dum 2> /dev/null
+if test $? != 0 ; then
+   echo "Can not link with X11 (libX11.so) library!"
+   SOMEERROR=1
+else
+   echo "X11 OK"
+fi
+
+echo $'main(){}'|$CC -L$XLIBDIR -lXext -xc - -o dum 2> /dev/null
+if test $? != 0 ; then
+   echo "Can not link with Xext (libXext.so) library!"
+   SOMEERROR=1
+else
+   echo "Xext OK"
+fi
+
+echo $'main(){}'|$CC -L$XLIBDIR -lXi -xc - -o dum 2> /dev/null
+if test $? != 0 ; then
+   echo "Can not link with Xi (libXi.so) library!"
+   SOMEERROR=1
+else
+   echo "Xi OK"
+fi
+
+echo $'main(){}'|$CC -L$XLIBDIR -lXtst -xc - -o dum 2> /dev/null
+if test $? != 0 ; then
+   echo "Can not link with Xtst (libXtst.so) library!"
+   SOMEERROR=1
+else
+   echo "Xtst OK"
+fi
+
+echo $'#include <X11/Xlib.h>\nmain(){}'|$CC -L$XLIBDIR -xc - -o dum 2> /dev/null
+if test $? != 0 ; then
+   echo "Can not include <X11/Xlib.h> header file!"
+   SOMEERROR=1
+else
+   echo "Xlib.h OK"
+fi
+
+echo $'#include <X11/Xutil.h>\nmain(){}'|$CC -L$XLIBDIR -xc - -o dum 2> /dev/null
+if test $? != 0 ; then
+   echo "Can not include <X11/Xutil.h> header file!"
+   SOMEERROR=1
+else
+   echo "Xutil.h OK"
+fi
+
+echo $'#include <X11/extensions/XInput.h>\nmain(){}'|$CC -L$XLIBDIR -xc - -o dum 2>/dev/null
+if test $? != 0 ; then
+   echo "Can not include <X11/extensions/XInput.h> header file!"
+   SOMEERROR=1
+else
+   echo "XInput.h OK"
+fi
+
+echo $'#include <X11/extensions/XTest.h>\nmain(){}'|$CC -L$XLIBDIR -xc - -o dum 2>/dev/null
+if test $? != 0 ; then
+   echo "Can not include <X11/extensions/XTest.h> header file!"
+   SOMEERROR=1
+else
+   echo "XTest.h OK"
+fi
+
+rm -f dum
+
+if test $SOMEERROR != 0 ; then
+   echo $'\nThe X compiling environment is NOT complete!
+Some linux distributions omit parts of, or sometimes
+the whole, X development environment. Based on the
+error message(s) above you should be able to hunt down
+which package(s) you need to install. For example, one
+distribution call their xinput and xtest packages
+libxi-dev and libxtst-dev\n'
+   exit
+else
+   echo $'\nThe X compiling environment seems to be all OK\n'
+fi
+
+fi
+
+
 
 EXPRESSKEYS_DEFAULT=yes
 OPTION_EXPRESSKEYS=no
@@ -2892,7 +2981,11 @@ if test "$enable_expresskeys" != "no"; then
                echo "***"; echo "*** WARNING:";
                echo "*** expresskeys requires Xlib environment."
                echo "*** expresskeys will not be built."
+                echo "*** Try ./configure --with-xlib=/some/directory"
+                echo "*** if your Xlib environment is nonstandard."
+                echo "*** By default we look for /usr/X11R6/lib"
                echo "***"
+                exit
        else
                OPTION_EXPRESSKEYS=yes
                EXPRESSKEYS_LIBS="-L$XLIBDIR -lX11 -lXi -lXtst"
@@ -2915,7 +3008,11 @@ if test "$enable_expresskeysconf" != "no"; then
                echo "***"; echo "*** WARNING:";
                echo "*** expresskeysconf requires Xlib environment."
                echo "*** expresskeysconf will not be built."
+                echo "*** Try ./configure --with-xlib=/some/directory"
+                echo "*** if your Xlib environment is nonstandard."
+                echo "*** By default we look for /usr/X11R6/lib"
                echo "***"
+                exit
        else
                OPTION_EXPRESSKEYSCONF=yes
                EXPRESSKEYSCONF_LIBS="-L$XLIBDIR -lX11"
@@ -4345,7 +4442,7 @@ echo "  BUILD ENVIRONMENT:"
 echo "            Xlib - $ENV_XLIB $XLIBDIR"
 echo ""
 echo "  BUILD OPTIONS:"
-echo " expresskeysconf - $OPTION_EXPRESSKEYSCONF <-- OBS Not ready yet!"
+echo " expresskeysconf - $OPTION_EXPRESSKEYSCONF <-- (Non-working dummy file)"
 echo "     expresskeys - $OPTION_EXPRESSKEYS"
 echo "----------------------------------------"
 echo ""
index 7dac395..ea7e373 100644 (file)
@@ -4,7 +4,7 @@ dnl --- Style and most code below nicked from the linuxwacom package ;-) ---
 
 AC_INIT(src-expresskeys/main_setup.c)
 AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(expresskeys, 0.2.3)
+AM_INIT_AUTOMAKE(expresskeys, 0.2.5)
 AM_MAINTAINER_MODE
 AC_PROG_CC
 
@@ -43,6 +43,95 @@ else
        ENV_XLIB=no
        AC_MSG_RESULT(not found - tried $XLIBDIR)
 fi
+
+dnl --- Make sure we can use all required X libraries and header files ---
+
+if test x$ENV_XLIB != xno; then
+
+SOMEERROR=0
+
+echo $'\nChecking the X compiling environment in detail...\n'
+
+echo $'main(){}'|$CC -L$XLIBDIR -lX11 -xc - -o dum 2> /dev/null
+if test $? != 0 ; then
+   echo "Can not link with X11 (libX11.so) library!"
+   SOMEERROR=1
+else
+   echo "X11 OK"
+fi
+
+echo $'main(){}'|$CC -L$XLIBDIR -lXext -xc - -o dum 2> /dev/null
+if test $? != 0 ; then
+   echo "Can not link with Xext (libXext.so) library!"
+   SOMEERROR=1
+else
+   echo "Xext OK"
+fi
+
+echo $'main(){}'|$CC -L$XLIBDIR -lXi -xc - -o dum 2> /dev/null
+if test $? != 0 ; then
+   echo "Can not link with Xi (libXi.so) library!"
+   SOMEERROR=1
+else
+   echo "Xi OK"
+fi
+
+echo $'main(){}'|$CC -L$XLIBDIR -lXtst -xc - -o dum 2> /dev/null
+if test $? != 0 ; then
+   echo "Can not link with Xtst (libXtst.so) library!"
+   SOMEERROR=1
+else
+   echo "Xtst OK"
+fi
+
+echo $'#include <X11/Xlib.h>\nmain(){}'|$CC -L$XLIBDIR -xc - -o dum 2> /dev/null
+if test $? != 0 ; then
+   echo "Can not include <X11/Xlib.h> header file!"
+   SOMEERROR=1
+else
+   echo "Xlib.h OK"
+fi
+
+echo $'#include <X11/Xutil.h>\nmain(){}'|$CC -L$XLIBDIR -xc - -o dum 2> /dev/null
+if test $? != 0 ; then
+   echo "Can not include <X11/Xutil.h> header file!"
+   SOMEERROR=1
+else
+   echo "Xutil.h OK"
+fi
+
+echo $'#include <X11/extensions/XInput.h>\nmain(){}'|$CC -L$XLIBDIR -xc - -o dum 2>/dev/null
+if test $? != 0 ; then
+   echo "Can not include <X11/extensions/XInput.h> header file!"
+   SOMEERROR=1
+else
+   echo "XInput.h OK"
+fi
+
+echo $'#include <X11/extensions/XTest.h>\nmain(){}'|$CC -L$XLIBDIR -xc - -o dum 2>/dev/null
+if test $? != 0 ; then
+   echo "Can not include <X11/extensions/XTest.h> header file!"
+   SOMEERROR=1
+else
+   echo "XTest.h OK"
+fi
+
+rm -f dum
+
+if test $SOMEERROR != 0 ; then
+   echo $'\nThe X compiling environment is NOT complete!
+Some linux distributions omit parts of, or sometimes
+the whole, X development environment. Based on the
+error message(s) above you should be able to hunt down
+which package(s) you need to install. For example, one
+distribution call their xinput and xtest packages
+libxi-dev and libxtst-dev\n'
+   exit
+else
+   echo $'\nThe X compiling environment seems to be all OK\n'
+fi
+
+fi
 ])
 
 dnl --- End function for checking Xlib development environment ---
@@ -63,7 +152,11 @@ if test "$enable_expresskeys" != "no"; then
                echo "***"; echo "*** WARNING:";
                echo "*** expresskeys requires Xlib environment."
                echo "*** expresskeys will not be built."
+                echo "*** Try ./configure --with-xlib=/some/directory"
+                echo "*** if your Xlib environment is nonstandard."
+                echo "*** By default we look for /usr/X11R6/lib"
                echo "***"
+                exit
        else
                OPTION_EXPRESSKEYS=yes
                EXPRESSKEYS_LIBS="-L$XLIBDIR -lX11 -lXi -lXtst"
@@ -76,14 +169,18 @@ dnl --- Check if we should build expresskeysconf (default no - not ready) ---
 EXPRESSKEYSCONF_DEFAULT=no
 OPTION_EXPRESSKEYSCONF=no
 AC_ARG_ENABLE(expresskeysconf,
-AC_HELP_STRING([--enable-expresskeysconf], [Enable building expresskeysconf [[default=no]]]),
+AC_HELP_STRING([--enable-expresskeysconf], [Enable building a non-working dummy file [[default=no]]]),
        , enable_expresskeysconf=$EXPRESSKEYSCONF_DEFAULT)
 if test "$enable_expresskeysconf" != "no"; then
        if test x$ENV_XLIB != xyes; then
                echo "***"; echo "*** WARNING:";
                echo "*** expresskeysconf requires Xlib environment."
                echo "*** expresskeysconf will not be built."
+                echo "*** Try ./configure --with-xlib=/some/directory"
+                echo "*** if your Xlib environment is nonstandard."
+                echo "*** By default we look for /usr/X11R6/lib"
                echo "***"
+                exit
        else
                OPTION_EXPRESSKEYSCONF=yes
                EXPRESSKEYSCONF_LIBS="-L$XLIBDIR -lX11"
@@ -111,7 +208,7 @@ echo "  BUILD ENVIRONMENT:"
 echo "            Xlib - $ENV_XLIB $XLIBDIR"
 echo ""
 echo "  BUILD OPTIONS:"
-echo " expresskeysconf - $OPTION_EXPRESSKEYSCONF <-- OBS Not ready yet!"
+echo " expresskeysconf - $OPTION_EXPRESSKEYSCONF <-- (Non-working dummy file)"
 echo "     expresskeys - $OPTION_EXPRESSKEYS"
 echo "----------------------------------------"
 echo ""
diff --git a/depcomp b/depcomp
index ffcd540..11e2d3b 100755 (executable)
--- a/depcomp
+++ b/depcomp
@@ -1,9 +1,9 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2005-02-09.22
+scriptversion=2004-05-31.23
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004 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
@@ -50,11 +50,11 @@ Environment variables:
 
 Report bugs to <bug-automake@gnu.org>.
 EOF
-    exit $?
+    exit 0
     ;;
   -v | --v*)
     echo "depcomp $scriptversion"
-    exit $?
+    exit 0
     ;;
 esac
 
@@ -287,43 +287,36 @@ tru64)
    base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
 
    if test "$libtool" = yes; then
-      # With Tru64 cc, shared objects can also be used to make a
-      # static library.  This mecanism is used in libtool 1.4 series to
-      # handle both shared and static libraries in a single compilation.
-      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
-      #
-      # With libtool 1.5 this exception was removed, and libtool now
-      # generates 2 separate objects for the 2 libraries.  These two
-      # compilations output dependencies in in $dir.libs/$base.o.d and
-      # in $dir$base.o.d.  We have to check for both files, because
-      # one of the two compilations can be disabled.  We should prefer
-      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
-      # automatically cleaned when .libs/ is deleted, while ignoring
-      # the former would cause a distcleancheck panic.
-      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
-      tmpdepfile2=$dir$base.o.d          # libtool 1.5
-      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
-      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
+      # Dependencies are output in .lo.d with libtool 1.4.
+      # With libtool 1.5 they are output both in $dir.libs/$base.o.d
+      # and in $dir.libs/$base.o.d and $dir$base.o.d.  We process the
+      # latter, because the former will be cleaned when $dir.libs is
+      # erased.
+      tmpdepfile1="$dir.libs/$base.lo.d"
+      tmpdepfile2="$dir$base.o.d"
+      tmpdepfile3="$dir.libs/$base.d"
       "$@" -Wc,-MD
    else
-      tmpdepfile1=$dir$base.o.d
-      tmpdepfile2=$dir$base.d
-      tmpdepfile3=$dir$base.d
-      tmpdepfile4=$dir$base.d
+      tmpdepfile1="$dir$base.o.d"
+      tmpdepfile2="$dir$base.d"
+      tmpdepfile3="$dir$base.d"
       "$@" -MD
    fi
 
    stat=$?
    if test $stat -eq 0; then :
    else
-      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
       exit $stat
    fi
 
-   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
-   do
-     test -f "$tmpdepfile" && break
-   done
+   if test -f "$tmpdepfile1"; then
+      tmpdepfile="$tmpdepfile1"
+   elif test -f "$tmpdepfile2"; then
+      tmpdepfile="$tmpdepfile2"
+   else
+      tmpdepfile="$tmpdepfile3"
+   fi
    if test -f "$tmpdepfile"; then
       sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
       # That's a tab and a space in the [].
index 1a83534..6ebe46d 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2005-02-02.21
+scriptversion=2004-12-17.09
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -109,7 +109,7 @@ while test -n "$1"; do
         shift
         continue;;
 
-    --help) echo "$usage"; exit $?;;
+    --help) echo "$usage"; exit 0;;
 
     -m) chmodcmd="$chmodprog $2"
         shift
@@ -134,7 +134,7 @@ while test -n "$1"; do
        shift
        continue;;
 
-    --version) echo "$0 $scriptversion"; exit $?;;
+    --version) echo "$0 $scriptversion"; exit 0;;
 
     *)  # When -d is used, all remaining arguments are directories to create.
        # When -t is used, the destination is already specified.
diff --git a/missing b/missing
index 09edd88..64b5f90 100755 (executable)
--- a/missing
+++ b/missing
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Common stub for a few missing GNU programs while installing.
 
-scriptversion=2005-02-08.22
+scriptversion=2004-09-07.08
 
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004
 #   Free Software Foundation, Inc.
 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
@@ -87,12 +87,12 @@ Supported PROGRAM values:
   yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
 
 Send bug reports to <bug-automake@gnu.org>."
-    exit $?
+    exit 0
     ;;
 
   -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
     echo "missing $scriptversion (GNU Automake)"
-    exit $?
+    exit 0
     ;;
 
   -*)
@@ -288,14 +288,10 @@ WARNING: \`$1' is $msg.  You should only need it if
          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."
-    # The file to touch is that specified with -o ...
     file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
     if test -z "$file"; then
-      # ... or it is the one specified with @setfilename ...
-      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
-      # ... or it is derived from the source name (dir/f.texi becomes f.info)
-      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
+      file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
     fi
     touch $file
     ;;
index a69f938..5c48663 100644 (file)
@@ -8,8 +8,7 @@ LIBS = -lX11
 
 TARGET = expresskeysconf
 
-SRCS = globals-conf.c config_read-conf.c on_error-conf.c on_signal-conf.c \
-       event_loop-conf.c main_setup-conf.c
+SRCS = main_dummy.c
 
 OBJS = $(SRCS:.c=.o)
 ALL =  $(SRCS)
index 288db46..d4f5a3e 100644 (file)
@@ -1,10 +1,10 @@
 
 all:
-#      $(MAKE) -C src-expresskeys
-#      mv src-expresskeys/expresskeys .
+       $(MAKE) -C src-expresskeys
+       mv src-expresskeys/expresskeys .
 
-       $(MAKE) -C src-expresskeysconf
-       mv src-expresskeysconf/expresskeysconf .
+#      $(MAKE) -C src-expresskeysconf
+#      mv src-expresskeysconf/expresskeysconf .
 clean:
        rm -f expresskeys expresskeysconf src-expresskeys/*.o src-expresskeysconf/*.o
 
index c81bdfc..b01c5f5 100755 (executable)
@@ -6,11 +6,11 @@ if [ -f ~/.expresskeys/expresskeys.pid ]; then
 
    echo "Re-reading expresskeys config file."
 
-   /bin/kill -USR1 `/bin/cat ~/.expresskeys/expresskeys.pid | /bin/head -n 1`
+   kill -USR1 `cat ~/.expresskeys/expresskeys.pid | head -n 1`
 
 else
 
-   echo "expresskeys doesn't seem to be running..."
+   echo "expresskeys doesn't seem to be running as a daemon..."
 
 fi
 
index 9a5f197..3b10dfa 100755 (executable)
@@ -6,9 +6,9 @@ if [ -f ~/.expresskeys/expresskeys.pid ]; then
 
    echo "Will try to terminate expresskeys."
 
-   /bin/kill -TERM `/bin/cat ~/.expresskeys/expresskeys.pid | /bin/head -n 1`
+   kill -TERM `cat ~/.expresskeys/expresskeys.pid | head -n 1`
 
-   /bin/sleep 1
+   sleep 1
 
    if ! [ -f ~/.expresskeys/expresskeys.pid ]; then
       echo "Success!"
@@ -18,7 +18,7 @@ if [ -f ~/.expresskeys/expresskeys.pid ]; then
 
 else
 
-   echo "expresskeys doesn't seem to be running..."
+   echo "expresskeys doesn't seem to be running as a daemon..."
 
 fi
 
index 6ed00ca..92d6933 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
index 4450dac..2b9574f 100644 (file)
@@ -1,7 +1,7 @@
 /*
  config_read.c -- Support ExpressKeys & Touch Strips on a Wacom Intuos3 tablet.
  
- Copyright (C) 2005 - Mats Johannesson
+ Copyright (C) 2005-2006 - Mats Johannesson
  
  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
@@ -95,7 +95,8 @@ int read_file_config(int *ip, FILE *fp)
    between record start "%%" and record end "%%". Recognize field beginnings
    by a colon ":". Each full record is written to a global memory structure,
    while partial records are discarded and excessive fields are truncated.
-   No sanity check on program names or keycode functionality is performed
+   No sanity check on program names is performed and only a basic control
+   of the keycodes is in place - it filters out anything below 9 [Esc]. 
    A global counter variable of full record instances is updated before the
    function exits to reflect the new state. */
 
@@ -150,7 +151,28 @@ int read_file_config(int *ip, FILE *fp)
                                                                                token = strtok(buffer, ":");
                                                                                token = strtok(NULL, ignore);
                                                                                strcpy(buffer, token);
-                                                                               *field_index = atoi(buffer);
+
+/* FIXME Only a basic control of the keycodes is in place - it filters out anything below 9 [Esc] and above 0 */
+
+                                                                               if (field_index == &p->handle_touch) {
+                                                                                       if ((atoi(buffer) == 1) || (atoi(buffer) == 0)) {
+                                                                                               *field_index = atoi(buffer);
+                                                                                       } else {
+                                                                                               *field_index = 0;
+                                                                                               if (be_verbose) {
+                                                                                                       fprintf(stderr, "Illegal keycode (not 0 or 1) in Handle Touch Strips field <-- keycode IGNORED\n");
+                                                                                               }
+                                                                                       }
+                                                                               } else {
+                                                                                       if ((atoi(buffer) > 8) || (atoi(buffer) == 0)) {
+                                                                                               *field_index = atoi(buffer);
+                                                                                       } else {
+                                                                                               *field_index = 0;
+                                                                                               if (be_verbose) {
+                                                                                                       fprintf(stderr, "Illegal keycode (not 0 or above 8) encountered in a field <-- keycode IGNORED\n");
+                                                                                               }
+                                                                                       }
+                                                                               }
                                                                                field_index++;
                                                                                num_field++;
                                                                        }
index eb9dd01..fc1e6fa 100644 (file)
@@ -1,7 +1,7 @@
 /*
  config_write.c -- Support ExpressKeys & Touch Strips on a Wacom Intuos3 tablet.
  
- Copyright (C) 2005 - Mats Johannesson
+ Copyright (C) 2005-2006 - Mats Johannesson
  
  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
index bc4da3d..7c50068 100644 (file)
@@ -1,7 +1,7 @@
 /*
  event_loop.c -- Support ExpressKeys & Touch Strips on a Wacom Intuos3 tablet.
  
- Copyright (C) 2005 - Mats Johannesson, Denis DerSarkisian
+ Copyright (C) 2005-2006 - Mats Johannesson, Denis DerSarkisian
  
  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
index 414f0a6..e80eef5 100644 (file)
@@ -1,7 +1,7 @@
 /*
  exec_shell.c -- Support ExpressKeys & Touch Strips on a Wacom Intuos3 tablet.
  
- Copyright (C) 2005 - Mats Johannesson
+ Copyright (C) 2005-2006 - Mats Johannesson
  
  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
index 043b71a..2542d8c 100644 (file)
@@ -1,7 +1,7 @@
 /*
  get_device.c -- Support ExpressKeys & Touch Strips on a Wacom Intuos3 tablet.
  
- Copyright (C) 2005 - Mats Johannesson
+ Copyright (C) 2005-2006 - Mats Johannesson
  
  Based on xinput.c 1996 by Frederic Lepied (xinput-1.2)
  
index fe171bc..2ea89d2 100644 (file)
@@ -1,7 +1,7 @@
 /*
  globals.c -- Support ExpressKeys & Touch Strips on a Wacom Intuos3 tablet.
  
- Copyright (C) 2005 - Mats Johannesson
+ Copyright (C) 2005-2006 - Mats Johannesson
  
  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
@@ -29,7 +29,7 @@ XDevice *pad_device;
 XDevice *pen_device;
 
 char *our_prog_name;
-char *our_prog_version = "0.2.4"; /* Our version. Remember to change it! */
+char *our_prog_version = "0.2.5"; /* Our version. Remember to change it! */
 char *pen_name;
 char *total_config_dir;
 char *total_config_file;
@@ -78,15 +78,15 @@ struct program internal_list[] = {
 /*             l_touch_up      l_touch_up_plus l_touch_down    l_touch_down_plus */
                20,             0,              61,             0,
 /*             r_touch_up      r_touch_up_plus r_touch_down    r_touch_down_plus */
-               20,             0,              61,             0,
+               64,             20,             64,             61,
 /*             key_9           key_9_plus      key_10          key_10_plus */
                50,             0,              64,             0,
 /*             key_11          key_11_plus     key_12          key_12_plus */
                37,             0,              65,             0,
 /*             key_13          key_13_plus     key_14          key_14_plus */
-               50,             0,              64,             0,
+               37,             29,             37,             52,
 /*             key_15          key_15_plus     key_16          key_16_plus */
-               37,             0,              65,             0       },
+               999,            0,              65,             0       },
 
 /*     Name    handle_touch */
 {"Blender",    1,
index 688711d..ef58a47 100644 (file)
@@ -1,7 +1,7 @@
 /*
  globals.h -- Support ExpressKeys & Touch Strips on a Wacom Intuos3 tablet.
  
- Copyright (C) 2005 - Mats Johannesson
+ Copyright (C) 2005-2006 - Mats Johannesson
  
  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
index e7eb2d1..d1131ec 100644 (file)
@@ -1,7 +1,7 @@
 /*
  main_setup.c -- Support ExpressKeys & Touch Strips on a Wacom Intuos3 tablet.
  
- Copyright (C) 2005 - Mats Johannesson
+ Copyright (C) 2005-2006 - Mats Johannesson
  
  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
@@ -156,10 +156,13 @@ int main (int argc, char *argv[])
                fprintf(stderr, "Where the pad name is mandatory. Specify a pen name\n");
                fprintf(stderr, "if you want the program to handle pen mode switches.\n");
                fprintf(stderr, "Use -d to make the program a daemon (run in the background).\n");
-               fprintf(stderr, "Use -v to print info to the screen at many execution points\n");
+               fprintf(stderr, "Use -v to print info to the screen at many execution points.\n");
                fprintf(stderr, "\n");
                fprintf(stderr, "Example: %s pad stylus -d\n", our_prog_name);
                fprintf(stderr, "\n");
+               fprintf(stderr, "Please direct any bug reports or questions to the top address\n");
+               fprintf(stderr, "in the AUTHORS file. This program is _not_ a linuxwacom project.\n");
+               fprintf(stderr, "\n");
                exit_on_error(errorfp, "", "", "");
        }
 
index 4aee05f..09d31e5 100644 (file)
@@ -1,7 +1,7 @@
 /*
  on_error.c -- Support ExpressKeys & Touch Strips on a Wacom Intuos3 tablet.
  
- Copyright (C) 2005 - Mats Johannesson
+ Copyright (C) 2005-2006 - Mats Johannesson
  
  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
index 7ef1d09..2438a4a 100644 (file)
@@ -1,7 +1,7 @@
 /*
  on_signal.c -- Support ExpressKeys & Touch Strips on a Wacom Intuos3 tablet.
  
- Copyright (C) 2005 - Mats Johannesson
+ Copyright (C) 2005-2006 - Mats Johannesson
  
  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
index a048ea4..903ff41 100644 (file)
@@ -1,7 +1,7 @@
 /*
  pen_mode.c -- Support ExpressKeys & Touch Strips on a Wacom Intuos3 tablet.
  
- Copyright (C) 2005 - Mats Johannesson
+ Copyright (C) 2005-2006 - Mats Johannesson
  
  Based on setmode.c 1996 by Frederic Lepied (xinput-1.2)
  
@@ -45,6 +45,7 @@ int toggle_pen_mode(Display *display, char *name)
                pen_device = XOpenDevice(display, pen_info->id);
                pen_open = 1;
        }
+       
        if ((pen_device) && (pen_open)) {
                XSetDeviceMode(display, pen_device, pen_mode);
                return 0;
index b6a75d8..335ddba 100644 (file)
@@ -1,7 +1,7 @@
 /*
  reg_events.c -- Support ExpressKeys & Touch Strips on a Wacom Intuos3 tablet.
  
- Copyright (C) 2005 - Mats Johannesson
+ Copyright (C) 2005-2006 - Mats Johannesson
  
  Based on test.c 1996 by Frederic Lepied (xinput-1.2)
  
index 1302f5f..6efaa0f 100644 (file)
@@ -4,8 +4,7 @@ AM_CFLAGS = -Wall
 
 bin_PROGRAMS = expresskeysconf
 
-expresskeysconf_SOURCES = main_setup-conf.c globals-conf.c globals-conf.h \
-       config_read-conf.c on_error-conf.c on_signal-conf.c event_loop-conf.c
+expresskeysconf_SOURCES = main_dummy.c
 
 expresskeysconf_LDFLAGS = @EXPRESSKEYSCONF_LIBS@
 
index a1766a3..d5c9991 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -49,10 +49,7 @@ CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(bindir)"
 binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
-am_expresskeysconf_OBJECTS = main_setup-conf.$(OBJEXT) \
-       globals-conf.$(OBJEXT) config_read-conf.$(OBJEXT) \
-       on_error-conf.$(OBJEXT) on_signal-conf.$(OBJEXT) \
-       event_loop-conf.$(OBJEXT)
+am_expresskeysconf_OBJECTS = main_dummy.$(OBJEXT)
 expresskeysconf_OBJECTS = $(am_expresskeysconf_OBJECTS)
 expresskeysconf_LDADD = $(LDADD)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
@@ -143,9 +140,7 @@ sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
 AM_CFLAGS = -Wall
-expresskeysconf_SOURCES = main_setup-conf.c globals-conf.c globals-conf.h \
-       config_read-conf.c on_error-conf.c on_signal-conf.c event_loop-conf.c
-
+expresskeysconf_SOURCES = main_dummy.c
 expresskeysconf_LDFLAGS = @EXPRESSKEYSCONF_LIBS@
 all: all-am
 
@@ -213,12 +208,7 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/config_read-conf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/event_loop-conf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/globals-conf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main_setup-conf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/on_error-conf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/on_signal-conf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main_dummy.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
diff --git a/src-expresskeysconf/config_read-conf.c b/src-expresskeysconf/config_read-conf.c
deleted file mode 100644 (file)
index d0f7869..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- config_read-conf.c -- Support ExpressKeys & Touch Strips on a Wacom Intuos3 tablet.
- Copyright (C) 2005 - Mats Johannesson
- 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 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.
-*/
-
-#include "globals-conf.h"
-
-/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- Function reads a configuration file containing program names and
- definitions of which keys that should be mapped to pad buttons and
- touch strips. It takes a file pointer and a pointer to a global
- structure as input. Returns nothing unless an error occured.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
-
-int read_file_config(int *ip, FILE *fp)
-{
-
-       struct program *p;
-       
-       /* Convert to long for x86_64 systems */
-       p = (void *)(long)*ip;
-
-       int num_record = 0;
-       int num_field = 0;
-       
-       int *field_index = 0;
-
-       char buffer [MAXBUFFER];
-       char line_buffer [MAXBUFFER];
-       const char ignore[] = " \t\n";
-       const char *delimiter_first, *delimiter_last;
-       char *token;
-
-/* Begin by making sure that the Config File Version number is present before
-   a record begins. We exit if it's lacking or the number doesn't match up */
-
-/* FIXME Unpredictable behaviour on lines longer than MAXBUFFER etc. See BUGS */
-
-       while ((fgets(line_buffer, MAXBUFFER, fp)) != NULL) {
-               if ((delimiter_first = (strchr(line_buffer, '#'))) != NULL) {
-                       strncpy(buffer, line_buffer, ((delimiter_first) - (line_buffer)));
-                       strncpy(buffer + ((delimiter_first) - (line_buffer)), "\0", 1);
-                       strcpy(line_buffer, buffer);
-               }
-               if ((delimiter_first = (strchr(line_buffer, '%'))) != NULL &&
-               (delimiter_last = (strrchr(line_buffer, '%'))) != NULL &&
-               (delimiter_last != delimiter_first)) {
-                       return 3;
-               }
-               if ((delimiter_first = (strchr(line_buffer, ':'))) != NULL) {
-                       strcpy(buffer, line_buffer);
-                       token = strtok(buffer, ":");
-                       token = strtok(NULL, ignore);
-                       strcpy(buffer, token);
-                       if (be_verbose) {
-                               fprintf(stderr, "Config File Version on disk = %s Expected = %d\n", buffer, CONFIG_VERSION);
-                       }
-                       if ((atoi(buffer)) != CONFIG_VERSION) {
-                               return 3;
-                       }
-                       break;
-               }
-       }
-
-/* Read the config file in one go from top to bottom. Parse out the info
-   between record start "%%" and record end "%%". Recognize field beginnings
-   by a colon ":". Each full record is written to a global memory structure,
-   while partial records are discarded and excessive fields are truncated.
-   No sanity check on program names or keycode functionality is performed
-   A global counter variable of full record instances is updated before the
-   function exits to reflect the new state. */
-
-/* FIXME Unpredictable behaviour on lines longer than MAXBUFFER etc. See BUGS */
-
-       while ((fgets(line_buffer, MAXBUFFER, fp)) != NULL) {
-               if (num_record < MAXRECORDS) {
-                       if ((delimiter_first = (strchr(line_buffer, '#'))) != NULL) {
-                               strncpy(buffer, line_buffer, ((delimiter_first) - (line_buffer)));
-                               strncpy(buffer + ((delimiter_first) - (line_buffer)), "\0", 1);
-                               strcpy(line_buffer, buffer);
-                       }
-                       if ((delimiter_first = (strchr(line_buffer, '%'))) == NULL &&
-                       (delimiter_last = (strrchr(line_buffer, '%'))) == NULL &&
-                       (delimiter_last == delimiter_first)) {
-                               if ((delimiter_first = (strchr(line_buffer, ':'))) != NULL) {
-                                       if ((delimiter_first = (strchr(line_buffer, '"'))) != NULL) {
-                                               strcpy(buffer, line_buffer);
-                                               token = strtok(buffer, "\t\n");
-                                               while ((delimiter_first = (strchr(token, '"'))) == NULL) {
-                                                       token = strtok(NULL, "\t\n");
-                                               }
-                                               if (((delimiter_last = (strrchr(token, '"'))) != NULL) &&
-                                               (delimiter_last != delimiter_first)) {
-                                                       strncpy(buffer, delimiter_first+1, ((delimiter_last) - (delimiter_first + 1)));
-                                                       strncpy(buffer + ((delimiter_last) - (delimiter_first + 1)), "\0", 1);
-                                                       if ((p->class_name = (char *)malloc(strlen(buffer)+1)) == NULL) {
-                                                               return 2;
-                                                       }
-                                                       sprintf(p->class_name, "%s", buffer);
-                                                       if (be_verbose) {
-                                                               fprintf(stderr, "PGR RECNAME = %s\n", buffer);
-                                                       }
-                                                       field_index = &p->handle_touch;
-
-/* FIXME Unpredictable behaviour on lines longer than MAXBUFFER etc. See BUGS */
-
-                                                       while ((fgets(line_buffer, MAXBUFFER, fp)) != NULL) {
-                                                               if ((delimiter_first = (strchr(line_buffer, '%'))) != NULL &&
-                                                               (delimiter_last = (strrchr(line_buffer, '%'))) != NULL &&
-                                                               (delimiter_last != delimiter_first)) {
-                                                                       break;
-                                                               }
-                                                               if (num_field < MAXFIELDS) {
-                                                                       if ((delimiter_first = (strchr(line_buffer, '#'))) != NULL) {
-                                                                               strncpy(buffer, line_buffer, ((delimiter_first) - (line_buffer)));
-                                                                               strncpy(buffer + ((delimiter_first) - (line_buffer)), "\0", 1);
-                                                                               strcpy(line_buffer, buffer);
-                                                                       }
-                                                                       if ((delimiter_first = (strchr(line_buffer, ':'))) != NULL) {
-                                                                               strcpy(buffer, line_buffer);
-                                                                               token = strtok(buffer, ":");
-                                                                               token = strtok(NULL, ignore);
-                                                                               strcpy(buffer, token);
-                                                                               *field_index = atoi(buffer);
-                                                                               field_index++;
-                                                                               num_field++;
-                                                                       }
-                                                               }
-                                                       }
-                                                       if (num_field == MAXFIELDS) {
-                                                               num_record++;
-                                                               p++;
-                                                       } else {
-                                                               if (be_verbose) {
-                                                                       fprintf(stderr, "%s skipped! (fields were too few)\n", p->class_name);
-                                                               }
-                                                               free(p->class_name);
-                                                       }
-                                                       num_field = 0;
-                                               }
-                                       }
-                               }
-                       }
-               }
-       }
-       if (!num_record) {
-               return 1;
-       }
-       num_list = num_record;
-
-       if (be_verbose) {
-               fprintf(stderr, "PGR RECORDS = %d\n", num_list);
-       }
-
-       return 0;
-}
-
-/* End Code */
-
diff --git a/src-expresskeysconf/event_loop-conf.c b/src-expresskeysconf/event_loop-conf.c
deleted file mode 100644 (file)
index e5b6cac..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- event_loop-conf.c -- Support ExpressKeys & Touch Strips on a Wacom Intuos3 tablet.
- Copyright (C) 2005 - Mats Johannesson
- 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 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.
-*/
-
-#include "globals-conf.h"
-
-/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- Function waits perpetually for the X server
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
-
-int use_events(Display *display)
-{
-
-       return 0;
-       /*exit(EXIT_OK);*/
-}
-
-/* End code */
-
diff --git a/src-expresskeysconf/globals-conf.c b/src-expresskeysconf/globals-conf.c
deleted file mode 100644 (file)
index 0d8fc07..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- globals-conf.c -- Support ExpressKeys & Touch Strips on a Wacom Intuos3 tablet.
- Copyright (C) 2005 - Mats Johannesson
- 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 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.
-*/
-
-#include "globals-conf.h"
-
-Display *display;
-
-char *our_prog_name;
-char *our_prog_version = "0.2.4"; /* Our version. Remember to change it! */
-char *total_config_dir;
-char *total_config_file;
-char *total_pid_file;
-char *total_error_file;
-char *config_dir = "/.expresskeys";    /* This is where in the user home */
-char *config_file = "/expresskeys.conf";/* directory we will look, */
-char *pid_file = "/expresskeys.pid";   /* and what the different status */
-char *error_file = "/error_conf.log";  /* files are called */
-
-int screen;
-int be_verbose = 0; /* Run silently per default */
-int num_list = 0;
-
-/* Allocate space for a list of program definitions (config file based) */
-
-struct program external_list [MAXRECORDS];
-
-/* End Code */
-
diff --git a/src-expresskeysconf/globals-conf.h b/src-expresskeysconf/globals-conf.h
deleted file mode 100644 (file)
index ccc4cec..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- globals-conf.h -- Support ExpressKeys & Touch Strips on a Wacom Intuos3 tablet.
- Copyright (C) 2005 - Mats Johannesson
- 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 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.
-*/
-
-/* Standard Program includes */
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-/* For the basename call */
-#include <libgen.h>
-/* For the mkdir call */
-#include <sys/stat.h>
-/* For the mkdir and kill calls */
-#include <sys/types.h>
-/* For the signal and kill calls */
-#include <signal.h>
-
-/* Standard X includes */
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-
-/* Our internal defines */
-#define EXIT_OK 0
-#define EXIT_KO 1
-#define NON_VALID -1
-#define MAXRECORDS 64  /* Max program definitions to handle (enough? ;-) */
-#define MAXFIELDS 25   /* Max entries (minus program name) in each record */
-#define MAXBUFFER 160  /* Scratch buffer. Two full terminal lines */
-#define CONFIG_VERSION 2 /* Config file version - for future format changes */
-
-/* Our global variables */
-extern char *our_prog_name;    /* This program's file name */
-extern char *our_prog_version; /* Our version. Change it in globals-conf.c! */
-extern char *total_config_dir; /* The "~/" of the user, plus our config_dir */
-extern char *total_config_file;        /* total_config_dir plus config_file */
-extern char *total_pid_file;   /* total_config_dir plus pid_file */
-extern char *total_error_file; /* total_config_dir plus error_file */
-extern char *config_dir;       /* Set to a dot directory: .expresskeys */
-extern char *config_file;      /* Set to expresskeys.conf */
-extern char *pid_file;         /* Set to expresskeys.pid */
-extern char *error_file;       /* Set to error_conf.log */
-
-extern int screen;     /* Active screen. An X thing */
-extern int num_list;   /* Number of programs we currently handle */
-
-extern int be_verbose; /* Flag to see if we should be spitting out info */
-
-/* Global X functions */
-extern Display *display;       /* Active display. An X thing */
-
-/* Our global (internal) functions */
-extern int read_file_config(int *ip, FILE *fp);
-extern int use_events(Display *display);
-extern void exit_on_error(FILE *fp, char *string1, char *string2, char *string3);
-extern void clean_up_exit(int signum);
-
-/* Our global structures */
-/* The external_list is initialized from a file read */
-extern struct program {
-       char *class_name;
-       int handle_touch;
-       int l_touch_up;
-       int l_touch_up_plus;
-       int l_touch_down;
-       int l_touch_down_plus;
-       int r_touch_up;
-       int r_touch_up_plus;
-       int r_touch_down;
-       int r_touch_down_plus;
-       int key_9;
-       int key_9_plus;
-       int key_10;
-       int key_10_plus;
-       int key_11;
-       int key_11_plus;
-       int key_12;
-       int key_12_plus;
-       int key_13;
-       int key_13_plus;
-       int key_14;
-       int key_14_plus;
-       int key_15;
-       int key_15_plus;
-       int key_16;
-       int key_16_plus;
-}external_list [];
-
-/* End Code */
-
diff --git a/src-expresskeysconf/main_dummy.c b/src-expresskeysconf/main_dummy.c
new file mode 100644 (file)
index 0000000..c58abbf
--- /dev/null
@@ -0,0 +1,5 @@
+int main (int argc, char *argv[])
+{
+       return 0;
+}
+
diff --git a/src-expresskeysconf/main_setup-conf.c b/src-expresskeysconf/main_setup-conf.c
deleted file mode 100644 (file)
index 8b06ec6..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- main_setup-conf.c -- Support ExpressKeys & Touch Strips on a Wacom Intuos3 tablet.
- Copyright (C) 2005 - Mats Johannesson
- 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 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.
-*/
-
-#include "globals-conf.h"
-
-int main (int argc, char *argv[])
-{
-
-       our_prog_name = basename(argv[0]);
-
-       struct program *p;
-
-       int i = 0;
-       int len = 0;
-
-       FILE *fp = NULL;
-       FILE *errorfp = NULL;
-
-/* Prelaunch sanity checks: See if X is OK */
-
-       if ((display = XOpenDisplay(NULL)) == NULL) {
-               exit_on_error(errorfp, "%s ERROR: Can not connect to your X Server\n", our_prog_name, "");
-       }
-       screen = DefaultScreen(display);
-
-/* Locate the home directory of the user running this program */
-
-       char *user_homedir;
-       if ((user_homedir = getenv("HOME")) == NULL) {
-               exit_on_error(errorfp, "%s ERROR: Can not find your HOME directory!\n", our_prog_name, "");
-       }
-
-/* Concatenate the home directory string with the string of our expected
-   configuration file directory. The address to the whole string is then
-   copied to a global pointer, so we won't have to perform this part again */
-
-       char *total_config_dir_block;
-       len = strlen(user_homedir) + strlen(config_dir) + 1;
-       if ((total_config_dir_block = (char *)malloc(len)) == NULL) {
-               exit_on_error(errorfp, "%s ERROR: Memory allocation trouble at stage 1!\n", our_prog_name, "");
-       }
-       sprintf(total_config_dir_block, "%s%s", user_homedir, config_dir);
-       total_config_dir = total_config_dir_block;
-
-/* Concatenate the full path with the config file name. Store address */
-
-       char *total_config_file_block;
-       len = strlen(total_config_dir) + strlen(config_file) + 1;
-       if ((total_config_file_block = (char *)malloc(len)) == NULL) {
-               exit_on_error(errorfp, "%s ERROR: Memory allocation trouble at stage 2!\n", our_prog_name, "");
-       }
-       sprintf(total_config_file_block, "%s%s", total_config_dir, config_file);
-       total_config_file = total_config_file_block;
-
-/* Concatenate the full path with the pid file name. Store address */
-
-       char *total_pid_file_block;
-       len = strlen(total_config_dir) + strlen(pid_file) + 1;
-       if ((total_pid_file_block = (char *)malloc(len)) == NULL) {
-               exit_on_error(errorfp, "%s ERROR: Memory allocation trouble at stage 3!\n", our_prog_name, "");
-       }
-       sprintf(total_pid_file_block, "%s%s", total_config_dir, pid_file);
-       total_pid_file = total_pid_file_block;
-
-/* Concatenate the full path with the error file name. Store address */
-
-       char *total_error_file_block;
-       len = strlen(total_config_dir) + strlen(error_file) + 1;
-       if ((total_error_file_block = (char *)malloc(len)) == NULL) {
-               exit_on_error(errorfp, "%s ERROR: Memory allocation trouble at stage 4!\n", our_prog_name, "");
-       }
-       sprintf(total_error_file_block, "%s%s", total_config_dir, error_file);
-       total_error_file = total_error_file_block;
-
-/* Try to open the the configuration directory for reading, just as a
-   test to see if it exists. A failure here can mean many things, but we
-   then try to create it as a means to rule out a true lack of existence */
-
-       if ((fp = fopen(total_config_dir, "r")) == NULL) {
-               if ((mkdir(total_config_dir, 0777)) == NON_VALID) {
-                       exit_on_error(errorfp, "%s ERROR: Can not read or create %s\n", our_prog_name, total_config_dir);
-               }
-       } else {
-               fclose(fp);
-       }
-
-/* Open (and truncate) an error log for future reference */
-
-       if ((errorfp = fopen(total_error_file, "w")) == NULL) {
-               exit_on_error(errorfp, "%s ERROR: Can not open %s in write mode\n", our_prog_name, total_error_file);
-       }
-
-/* Set a flag if we should run in verbose mode */
-
-       if (argc > 1) {
-               for (i = 1; i < argc; i++) {
-                       if (strcmp(argv[i], "-v") == 0) {
-                               be_verbose = 1;
-                               break;
-                       }
-               }
-       }
-
-       if (be_verbose) {
-               fprintf(stderr, "PGR VERSION = %s\n", our_prog_version);
-               fprintf(stderr, "USR HOMEDIR = %s\n", user_homedir);
-               fprintf(stderr, "THE CNF-DIR = %s\n", total_config_dir);
-               fprintf(stderr, "THE CNFFILE = %s\n", total_config_file);
-               fprintf(stderr, "THE PIDFILE = %s\n", total_pid_file);
-               fprintf(stderr, "OUR LOGFILE = %s\n", total_error_file);
-       }
-
-/* Read in an existing configuration file */
-
-       p = external_list;
-       if ((fp = fopen(total_config_file, "r")) == NULL) {
-               exit_on_error(errorfp, "%s ERROR: Can not open %s in read mode\n", our_prog_name, total_config_file);
-       } else {
-               switch (read_file_config((void *)&p, fp)){
-                       
-                       case 0:
-                       fclose(fp);
-                       break;
-
-                       case 1:
-                       fclose(fp);
-                       exit_on_error(errorfp, "%s ERROR: No complete record found in %s\n", our_prog_name, total_config_file);
-                       
-                       case 2:
-                       fclose(fp);
-                       exit_on_error(errorfp, "%s ERROR: Memory allocation error while parsing %s\n", our_prog_name, total_config_file);
-
-                       case 3:
-                       fclose(fp);
-                       exit_on_error(errorfp, "%s ERROR: Config File Version %d not found\n", our_prog_name, (void *)CONFIG_VERSION);
-
-                       default:
-                       fclose(fp);
-                       exit_on_error(errorfp, "%s ERROR: Unknown error while parsing %s\n", our_prog_name, total_config_file);
-               }
-       }
-
-/* Replace some of the normal signal handlers with our own functions.
-   All the normal program exits should first clean up a bit */
-
-       if ((signal(SIGINT, clean_up_exit) == SIG_ERR)
-               || (signal(SIGHUP, clean_up_exit) == SIG_ERR)
-               || (signal(SIGTERM, clean_up_exit) == SIG_ERR)) {
-               exit_on_error(errorfp, "%s ERROR: Failed to modify signal handling!\n", our_prog_name, "");
-       }
-
-       use_events(display); /* <-- Our true launch! The event loop */
-       exit_on_error(errorfp, "", "", "");
-
-       exit(EXIT_OK); /* We should never reach this */
-
-}
-
-/* End Code */
-
diff --git a/src-expresskeysconf/on_error-conf.c b/src-expresskeysconf/on_error-conf.c
deleted file mode 100644 (file)
index 40b0547..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- on_error-conf.c -- Support ExpressKeys & Touch Strips on a Wacom Intuos3 tablet.
- Copyright (C) 2005 - Mats Johannesson
- 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 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.
-*/
-
-#include "globals-conf.h"
-
-/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- Function prints out the error strings from a caller and terminates
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
-
-void exit_on_error(FILE *fp, char *string1, char *string2, char *string3)
-{
-
-       if (fp) {
-               fprintf(fp, string1, string2, string3);
-               fclose(fp);
-       }
-
-       fprintf(stderr, string1, string2, string3);
-       clean_up_exit(SIGTERM);
-
-/* FIXME Drops the state EXIT_KO when calling clean_up_exit, becomes EXIT_OK */
-
-}
-
-/* End Code */
-
diff --git a/src-expresskeysconf/on_signal-conf.c b/src-expresskeysconf/on_signal-conf.c
deleted file mode 100644 (file)
index 03eb49d..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- on_signal-conf.c -- Support ExpressKeys & Touch Strips on a Wacom Intuos3 tablet.
- Copyright (C) 2005 - Mats Johannesson
- 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 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.
-*/
-
-#include "globals-conf.h"
-
-/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- Function acts as a signal handler replacement for SIGINT, SIGHUP and
- SIGTERM. All are normal exit signals. We want to trap them in order to
- perform some house keeping pre-exit. Mostly to free memory.
- Since it takes care of several signals, it could get invoked recursively
- if some other signal comes in. We use this "volatile" variable to track
- the case. At the end we restore the default signal handler and raise it
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
-
-volatile sig_atomic_t clean_up_exit_in_progress = 0;
-void clean_up_exit(int signum)
-{
-       int i;
-       struct program *p;
-       p = external_list;
-
-       if (clean_up_exit_in_progress) {
-               raise(signum);
-       }
-       clean_up_exit_in_progress = 1;
-       
-       if (total_config_dir) {
-               free(total_config_dir);
-       }
-
-       if (total_config_file) {
-               free(total_config_file);
-       }
-
-       if (total_pid_file) {
-               free(total_pid_file);
-       }
-
-       if (total_error_file) {
-               free(total_error_file);
-       }
-
-       if (num_list) {
-               for (i = 0; i < num_list; i++, p++) {
-                       free(p->class_name);
-               }
-       }
-
-       if (display) {
-               XCloseDisplay(display);
-       }
-
-       signal(signum, SIG_DFL);
-       raise(signum);
-}
-
-/* End Code */
-