xf86-input-acecad 1.2.1
This commit is contained in:
parent
c57cdcb660
commit
5212aa9d2c
@ -1,45 +1,488 @@
|
|||||||
2006-04-06 Adam Jackson <ajax@freedesktop.org>
|
commit 38ba390f775e2f6001c8887328c5b925f623308a
|
||||||
|
Author: Julien Cristau <jcristau@debian.org>
|
||||||
|
Date: Fri Sep 7 02:17:29 2007 +0200
|
||||||
|
|
||||||
* configure.ac:
|
Bump to 1.2.1
|
||||||
* src/acecad.c:
|
|
||||||
Unlibcwrap and bump server version requirement. Bump to 1.1.0.
|
|
||||||
|
|
||||||
2005-12-20 Kevin E. Martin <kem-at-freedesktop-dot-org>
|
commit 8bcc6d22889cc40c6b7d1582f87d4b2a816167ab
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@sun.com>
|
||||||
|
Date: Tue Aug 28 17:31:54 2007 -0700
|
||||||
|
|
||||||
|
Make compatible with new input ABI
|
||||||
|
|
||||||
|
commit 171d4c8dc6136aa8c14aedd0ee107d6ba957de04
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Mon Jul 9 11:03:00 2007 +0200
|
||||||
|
|
||||||
|
Don't crash X when the tablet wasn't found.
|
||||||
|
|
||||||
|
X would crash when switching to console if the acecad module was loaded but the tablet had not been configured.
|
||||||
|
|
||||||
|
Fix by properly freeing structures before returning NULL in PreInit()
|
||||||
|
|
||||||
|
commit c69e2c95b9eb2381709c9de14957d24ab919b5bc
|
||||||
|
Author: Matthieu Herrb <matthieu@deville.herrb.com>
|
||||||
|
Date: Wed May 30 23:34:13 2007 -0600
|
||||||
|
|
||||||
|
fix build on BSD systems.
|
||||||
|
|
||||||
|
commit 62bce174e7a3c896fabe40813639e479d9652452
|
||||||
|
Author: Matthieu Herrb <matthieu@deville.herrb.com>
|
||||||
|
Date: Wed May 30 23:33:56 2007 -0600
|
||||||
|
|
||||||
|
Add .gitignore
|
||||||
|
|
||||||
|
commit 1af7e022be2bcbcf50d12c0c3847a853a911347c
|
||||||
|
Author: Paul Vojta <vojta@Math.Berkeley.EDU>
|
||||||
|
Date: Mon Apr 30 11:45:53 2007 -0700
|
||||||
|
|
||||||
|
Off-by-one (and comment) fix.
|
||||||
|
|
||||||
|
Just a quick patch:
|
||||||
|
|
||||||
|
commit cc6bc3b848dfa312baf0cf4037b3e600d59a8f7e
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Sun Apr 29 05:09:41 2007 +0200
|
||||||
|
|
||||||
|
Bump to 1.2.0.
|
||||||
|
|
||||||
|
commit 405fac1dd34bbbfa8a2dd1a0ac2664871d914e1f
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Sun Apr 29 05:02:03 2007 +0200
|
||||||
|
|
||||||
|
Simplify flag setup.
|
||||||
|
|
||||||
|
commit ac08aacf4693e2ed824c15c9d243e7e9c5750cc3
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Sun Apr 29 04:44:27 2007 +0200
|
||||||
|
|
||||||
|
More whitespace/coding style cleanups.
|
||||||
|
|
||||||
|
commit 9b9b1d03609996dc3220870fa6e226c46c888c83
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Sun Apr 29 04:42:04 2007 +0200
|
||||||
|
|
||||||
|
Centralize the success code for the probe routine.
|
||||||
|
|
||||||
|
commit 93736ac2bf92ad342255a64120c2685f4074a0e9
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Sat Apr 28 15:32:32 2007 +0200
|
||||||
|
|
||||||
|
Keep track of device availability.
|
||||||
|
|
||||||
|
Don't spam the log with errors about the device not being available, just inform the user when the device is available again.
|
||||||
|
|
||||||
|
commit c471639adfba3e7c24c95b24da287147f86bd3d1
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Sat Apr 28 15:10:25 2007 +0200
|
||||||
|
|
||||||
|
NOTAVAIL macro to check if errno means device not available.
|
||||||
|
|
||||||
|
Define (and use) a NOTAVAIL macro that checks errno against ENODEV, ENXIO and ENOENT, instead of checking manually against ENODEV only.
|
||||||
|
|
||||||
|
commit 81e37b4b042b824654b4bf2353732741cf49bce7
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Sat Apr 28 14:42:20 2007 +0200
|
||||||
|
|
||||||
|
Make acecadAutoDev into a flag.
|
||||||
|
|
||||||
|
Introduce AUTODEV_FLAG for the flags field in AceCadPrivateRec to tell if we are autodetecting devices or not, instead of having a separate acecadAutoDev field.
|
||||||
|
|
||||||
|
commit bda0ee988acbae97dc908574c1247cf1ceb5b3c9
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Sat Apr 28 14:36:12 2007 +0200
|
||||||
|
|
||||||
|
Make acecadUSB into a flag.
|
||||||
|
|
||||||
|
Introduce USB_FLAG for the flags field in AceCadPrivateRec to tell if we have a USB device or not, instead of having a separate acecadUSB field.
|
||||||
|
|
||||||
|
commit 2b88cc3642a94a58e777d8a931f7bbe9f16e9b93
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Sat Apr 28 14:27:58 2007 +0200
|
||||||
|
|
||||||
|
More whitespace cleanup.
|
||||||
|
|
||||||
|
commit 1d8e61f461fef959212d5a05cac70a590927ec20
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Sat Apr 28 14:25:22 2007 +0200
|
||||||
|
|
||||||
|
More coding style cleanups.
|
||||||
|
|
||||||
|
commit e5704a3484bb8cc3f295431ff2e50e3e628db0c7
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Sat Apr 28 14:19:49 2007 +0200
|
||||||
|
|
||||||
|
Add missing newlines in a couple of messages.
|
||||||
|
|
||||||
|
commit a8350a018d50f2a0e2adcf6ec8c76f6ab412dd16
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Sat Apr 28 05:29:41 2007 +0200
|
||||||
|
|
||||||
|
Whitespace cleanup.
|
||||||
|
|
||||||
|
commit 46b34bec71949b815b1372464b887da134378ae8
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Sat Apr 28 05:10:39 2007 +0200
|
||||||
|
|
||||||
|
De-spammify AceCadAutoDevProbe().
|
||||||
|
|
||||||
|
Demote X_ERRORs in AceCadAutoDevProbe() to X_WARNINGs, and add an X-style
|
||||||
|
verbosity parameter. This is set to 0 during initial probe, and to 4 during
|
||||||
|
runtime probes.
|
||||||
|
|
||||||
|
commit 41941cb9e2365b27196805c22424dc9ad694806f
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Sat Apr 28 04:55:26 2007 +0200
|
||||||
|
|
||||||
|
Re-probe on device not found on input if auto-dev is active.
|
||||||
|
|
||||||
|
If USBReadInput() fails because the device is not being found, and auto-dev is
|
||||||
|
active, try re-probing for the device. The only downside of this procedure is
|
||||||
|
that the log may get spammed a lot as long as no device can be found.
|
||||||
|
|
||||||
|
commit 838980da1cf5073ce0d532f94358cfc951e3b1c4
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Sat Apr 28 03:43:04 2007 +0200
|
||||||
|
|
||||||
|
Re-probe for device if DeviceOn fails and auto-dev is active.
|
||||||
|
|
||||||
|
If DeviceOn does not find the device and auto-dev is active, run the probe
|
||||||
|
again to try to find the new location of the device (if present).
|
||||||
|
|
||||||
|
commit dba3190cb5e5c041c6b5811fa9efd1f0a5931fb6
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Sat Apr 28 03:09:17 2007 +0200
|
||||||
|
|
||||||
|
Device autodetection via sysfs.
|
||||||
|
|
||||||
|
If support for sysfs is compiled in and the libsysfs library is found, the
|
||||||
|
acecad driver will now try to autodetect the device via sysfs at first. If this
|
||||||
|
fails, it will probe /dev/input/eventX devices.
|
||||||
|
|
||||||
|
Currently the Name option is ignored during sysfs detection: the first possibly
|
||||||
|
valid candidate is accepted without further checks.
|
||||||
|
|
||||||
|
commit 4f738d5eee947d5e4bd27f4ecdf198c5718ca53a
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Fri Apr 27 14:40:43 2007 +0200
|
||||||
|
|
||||||
|
"Name" option to configure autodev detection string.
|
||||||
|
|
||||||
|
The string we look for when probing event devices can now be configured with
|
||||||
|
the "Name" option.
|
||||||
|
|
||||||
|
commit 947aa75cf284b651c77ae1f0431cae0c3c3d3d05
|
||||||
|
Merge: 581635e... 805ccfb...
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Fri Apr 27 12:23:44 2007 +0200
|
||||||
|
|
||||||
|
Merge branch 'master' into autodev
|
||||||
|
|
||||||
|
commit 805ccfb003d7e8d71da18210186217583df710b1
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Fri Apr 27 00:30:58 2007 +0200
|
||||||
|
|
||||||
|
Add autogen.sh and autogenerate ChangeLog to dist
|
||||||
|
|
||||||
|
Get rid of the manually maintained ChangeLog and put in some rules to
|
||||||
|
autogenerate it from git logs, following the xorg/lib/libXi example.
|
||||||
|
|
||||||
|
Also add ChangeLog and autogen.sh to the dist files.
|
||||||
|
|
||||||
|
commit 558f80d3d4c21ddd5fa1981574c449bc4d86ddfa
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Fri Apr 27 00:01:54 2007 +0200
|
||||||
|
|
||||||
|
Add autoconf check for linux/input.h
|
||||||
|
|
||||||
|
Since X went modular, we cannot rely on LINUX_INPUT being defined even when the
|
||||||
|
Linux input subsystem is available. Fix: add an autoconf rule that checks for
|
||||||
|
linux/input.h and define LINUX_INPUT if the header is found.
|
||||||
|
|
||||||
|
commit 581635e2fc5563b2697d51e3aeec046918d8caee
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Thu Apr 26 13:33:51 2007 +0200
|
||||||
|
|
||||||
|
Initial support for device autodetection.
|
||||||
|
|
||||||
|
When the "Device" option is missing or set to "auto-dev" the acecad module will
|
||||||
|
attempt autodetection of the correct device.
|
||||||
|
|
||||||
|
Currently, it will probe all /dev/input/eventX nodes until one is found that
|
||||||
|
reports a device name that begins with "ACECAD".
|
||||||
|
|
||||||
|
commit c6b21d102908104ffe9b6103894f8c8fcf2ae7f4
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Thu Apr 26 03:04:06 2007 +0200
|
||||||
|
|
||||||
|
Uniformize messages.
|
||||||
|
|
||||||
|
Use xf86Msg, prepending local->name when possible and upcasing ACECAD (as per
|
||||||
|
their site, and to differentiate from the software company).
|
||||||
|
|
||||||
|
Also reduce verbosity by using xf86MsgVerb with verbosity 4 for messages which
|
||||||
|
are not of interest for users.
|
||||||
|
|
||||||
|
commit 4fb81ff8b0828294b3e1d0c63c67dca318ee7959
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Thu Apr 26 02:16:10 2007 +0200
|
||||||
|
|
||||||
|
We always have config.h.
|
||||||
|
|
||||||
|
Quoting Alan Coopersmith from http://lists.x.org/archives/xorg/2007-April/024058.html
|
||||||
|
|
||||||
|
> Now that we are no longer sharing source with the monolith, should
|
||||||
|
> all the #ifdef HAVE_CONFIG_H's be removed and just always include
|
||||||
|
> config.h now?
|
||||||
|
|
||||||
|
commit e3499189b91725e09e25a468f21612e805dfa89d
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Tue Apr 24 22:00:47 2007 +0200
|
||||||
|
|
||||||
|
Use autoconfigured package version if possible.
|
||||||
|
|
||||||
|
commit 7fe06dc37595a39e0298d9123a669d06df934c35
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Tue Apr 24 15:28:51 2007 +0200
|
||||||
|
|
||||||
|
Bump to 1.1.1.
|
||||||
|
|
||||||
|
commit 7665457d70a37c3187b3dfcc54a7f15058e8acba
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Tue Apr 24 13:35:52 2007 +0200
|
||||||
|
|
||||||
|
Support 2.6.x kernels.
|
||||||
|
|
||||||
|
commit 1eae0e35655ffddb8a203a51bb1e2aa53928a87e
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Tue Apr 24 12:44:58 2007 +0200
|
||||||
|
|
||||||
|
Use the proper MessageType for probed, default, info and error messages.
|
||||||
|
|
||||||
|
commit 9ab58ae1001a399907458d236b1f725e3503ee90
|
||||||
|
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
|
||||||
|
Date: Tue Apr 24 12:38:38 2007 +0200
|
||||||
|
|
||||||
|
Clean up defines, and add an include to fix compilation when LINUX_INPUT is defined
|
||||||
|
|
||||||
|
commit 190e38f513ed645b1662441a4b90eaf778878316
|
||||||
|
Author: Adam Jackson <ajax@nwnk.net>
|
||||||
|
Date: Fri Apr 7 16:16:33 2006 +0000
|
||||||
|
|
||||||
|
Bump to 1.1.0.
|
||||||
|
|
||||||
|
commit a128e04d9240409cf8c9a9c92671f374959c60d0
|
||||||
|
Author: Adam Jackson <ajax@nwnk.net>
|
||||||
|
Date: Fri Apr 7 16:13:56 2006 +0000
|
||||||
|
|
||||||
|
Unlibcwrap and bump server version requirement.
|
||||||
|
|
||||||
|
commit aaec49a8e42193e0d7f68132f01e8d802ecee27c
|
||||||
|
Author: Kevin E Martin <kem@kem.org>
|
||||||
|
Date: Wed Dec 21 02:29:55 2005 +0000
|
||||||
|
|
||||||
* configure.ac:
|
|
||||||
Update package version for X11R7 release.
|
Update package version for X11R7 release.
|
||||||
|
|
||||||
2005-12-14 Kevin E. Martin <kem-at-freedesktop-dot-org>
|
commit e5dd84c88172873a99f12798cc00e59c5185afc7
|
||||||
|
Author: Adam Jackson <ajax@nwnk.net>
|
||||||
|
Date: Mon Dec 19 16:25:49 2005 +0000
|
||||||
|
|
||||||
|
Stub COPYING files
|
||||||
|
|
||||||
|
commit 2e050d849b72a5119790641fe6b7a83f5e6f15f0
|
||||||
|
Author: Kevin E Martin <kem@kem.org>
|
||||||
|
Date: Thu Dec 15 00:24:13 2005 +0000
|
||||||
|
|
||||||
* configure.ac:
|
|
||||||
Update package version number for final X11R7 release candidate.
|
Update package version number for final X11R7 release candidate.
|
||||||
|
|
||||||
2005-12-06 Kevin E. Martin <kem-at-freedesktop-dot-org>
|
commit 8df008ad5451a0afc4576be121e112ae43c5a4bf
|
||||||
|
Author: Kevin E Martin <kem@kem.org>
|
||||||
|
Date: Tue Dec 6 22:48:27 2005 +0000
|
||||||
|
|
||||||
* man/Makefile.am:
|
|
||||||
Change *man_SOURCES ==> *man_PRE to fix autotools warnings.
|
Change *man_SOURCES ==> *man_PRE to fix autotools warnings.
|
||||||
|
|
||||||
2005-12-03 Kevin E. Martin <kem-at-freedesktop-dot-org>
|
commit a3e290213ce7ce920145a4a7368e052f09768164
|
||||||
|
Author: Kevin E Martin <kem@kem.org>
|
||||||
|
Date: Sat Dec 3 05:49:29 2005 +0000
|
||||||
|
|
||||||
* configure.ac:
|
|
||||||
Update package version number for X11R7 RC3 release.
|
Update package version number for X11R7 RC3 release.
|
||||||
|
|
||||||
2005-12-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
|
commit 31963eae0d36ca43f103a885430b39626021aa94
|
||||||
|
Author: Kevin E Martin <kem@kem.org>
|
||||||
|
Date: Fri Dec 2 02:16:04 2005 +0000
|
||||||
|
|
||||||
* configure.ac:
|
|
||||||
Remove extraneous AC_MSG_RESULT.
|
Remove extraneous AC_MSG_RESULT.
|
||||||
|
|
||||||
2005-11-29 Adam Jackson <ajax@freedesktop.org>
|
commit 295f696a950f0883c040969a7381be1b16275674
|
||||||
|
Author: Adam Jackson <ajax@nwnk.net>
|
||||||
|
Date: Tue Nov 29 23:29:53 2005 +0000
|
||||||
|
|
||||||
* configure.ac:
|
|
||||||
Only build dlloader modules by default.
|
Only build dlloader modules by default.
|
||||||
|
|
||||||
2005-11-09 Kevin E. Martin <kem-at-freedesktop-dot-org>
|
commit b8075ef13db08347876dd74b06bd5d05be00d9ff
|
||||||
|
Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
|
||||||
|
Date: Mon Nov 28 22:04:05 2005 +0000
|
||||||
|
|
||||||
|
Change *mandir targets to use new *_MAN_DIR variables set by xorg-macros.m4
|
||||||
|
update to fix bug #5167 (Linux prefers *.1x man pages in man1 subdir)
|
||||||
|
|
||||||
|
commit cab1f00c4f2d2b2a12260c078b06a30bd03b8d35
|
||||||
|
Author: Eric Anholt <anholt@freebsd.org>
|
||||||
|
Date: Mon Nov 21 10:49:00 2005 +0000
|
||||||
|
|
||||||
|
Add .cvsignores for drivers.
|
||||||
|
|
||||||
|
commit 9f164337b4c0ff7f3189f50033f5635550fbe598
|
||||||
|
Author: Kevin E Martin <kem@kem.org>
|
||||||
|
Date: Wed Nov 9 21:15:10 2005 +0000
|
||||||
|
|
||||||
* configure.ac:
|
|
||||||
Update package version number for X11R7 RC2 release.
|
Update package version number for X11R7 RC2 release.
|
||||||
|
|
||||||
2005-11-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
|
commit 37f29b066c955b9ef85b95f39ed4ca9c4c799da9
|
||||||
|
Author: Kevin E Martin <kem@kem.org>
|
||||||
|
Date: Tue Nov 1 15:08:48 2005 +0000
|
||||||
|
|
||||||
* configure.ac:
|
|
||||||
Update pkgcheck depedencies to work with separate build roots.
|
Update pkgcheck depedencies to work with separate build roots.
|
||||||
|
|
||||||
|
commit 0d5c65828cbda96688234ca98de51748cc6a7a9c
|
||||||
|
Author: Kevin E Martin <kem@kem.org>
|
||||||
|
Date: Wed Oct 19 02:47:59 2005 +0000
|
||||||
|
|
||||||
|
Update package version number for RC1 release.
|
||||||
|
|
||||||
|
commit 48e99a4438d6e4c869cae23f2bcf17504b36f12b
|
||||||
|
Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
|
||||||
|
Date: Tue Oct 18 00:01:50 2005 +0000
|
||||||
|
|
||||||
|
Use @DRIVER_MAN_SUFFIX@ instead of $(DRIVER_MAN_SUFFIX) in macro
|
||||||
|
substitutions to work better with BSD make
|
||||||
|
|
||||||
|
commit 9cd8523d3047eb00e9d1f90158d932c8c9c8d511
|
||||||
|
Author: Adam Jackson <ajax@nwnk.net>
|
||||||
|
Date: Mon Oct 17 22:57:25 2005 +0000
|
||||||
|
|
||||||
|
More 1.7 braindamage: define EXTRA_DIST in terms of @DRIVER_NAME@ instead
|
||||||
|
of indirectly
|
||||||
|
|
||||||
|
commit 33d7ef77bdc4d55c01f50f9a29ac660703c0e380
|
||||||
|
Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
|
||||||
|
Date: Mon Oct 17 00:08:53 2005 +0000
|
||||||
|
|
||||||
|
Use sed & cpp to substitute variables in driver man pages
|
||||||
|
|
||||||
|
commit 262151fd3f961ee1dc065943eff62e7c27823340
|
||||||
|
Author: Daniel Stone <daniel@fooishbar.org>
|
||||||
|
Date: Thu Aug 18 09:03:36 2005 +0000
|
||||||
|
|
||||||
|
Update autogen.sh to one that does objdir != srcdir.
|
||||||
|
|
||||||
|
commit 3e83d76e4315468df9c85b7a917508e5e0adc8e6
|
||||||
|
Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
|
||||||
|
Date: Wed Aug 10 14:07:21 2005 +0000
|
||||||
|
|
||||||
|
Don\'t lose existing CFLAGS in all the input drivers and some of the video
|
||||||
|
drivers
|
||||||
|
|
||||||
|
commit 81612155b583e3fbaff7af662edf7353cfb0da8e
|
||||||
|
Author: Kevin E Martin <kem@kem.org>
|
||||||
|
Date: Fri Jul 29 21:22:39 2005 +0000
|
||||||
|
|
||||||
|
Various changes preparing packages for RC0:
|
||||||
|
- Verify and update package version numbers as needed
|
||||||
|
- Implement versioning scheme
|
||||||
|
- Change bug address to point to bugzilla bug entry form
|
||||||
|
- Disable loadable i18n in libX11 by default (use --enable-loadable-i18n to
|
||||||
|
reenable it)
|
||||||
|
- Fix makedepend to use pkgconfig and pass distcheck
|
||||||
|
- Update build script to build macros first
|
||||||
|
- Update modular Xorg version
|
||||||
|
|
||||||
|
commit 01f7b4b23a52439aab8262d3a500f3339be04eb3
|
||||||
|
Author: Kevin E Martin <kem@kem.org>
|
||||||
|
Date: Wed Jul 13 20:03:20 2005 +0000
|
||||||
|
|
||||||
|
Make the module dir configurable
|
||||||
|
|
||||||
|
commit b458a723e098531da7dbfac39747dc34df431831
|
||||||
|
Author: Kevin E Martin <kem@kem.org>
|
||||||
|
Date: Wed Jul 13 02:20:57 2005 +0000
|
||||||
|
|
||||||
|
Update all input drivers to pass distcheck
|
||||||
|
|
||||||
|
commit f603ac2e59944b7f75ff82803c67f2ce02321646
|
||||||
|
Author: Adam Jackson <ajax@nwnk.net>
|
||||||
|
Date: Tue Jul 12 06:15:07 2005 +0000
|
||||||
|
|
||||||
|
Build skeletons for input drivers. Should basically work.
|
||||||
|
|
||||||
|
commit 0b74a6722cf7c0e24bf31720cfa4ce0eb1a479d2
|
||||||
|
Author: Adam Jackson <ajax@nwnk.net>
|
||||||
|
Date: Mon Jul 11 02:37:58 2005 +0000
|
||||||
|
|
||||||
|
Prep input drivers for modularizing by adding guarded #include "config.h"
|
||||||
|
|
||||||
|
commit a02a441079feb7cc208c4d4e190d3c47819fd59f
|
||||||
|
Author: Adam Jackson <ajax@nwnk.net>
|
||||||
|
Date: Tue Jun 28 20:54:21 2005 +0000
|
||||||
|
|
||||||
|
Bug #1565: Don't delete the driver twice. (Stéphane VOLTZ)
|
||||||
|
|
||||||
|
commit 0702e4b5b996f7ce959d2252318c5da86f6138a2
|
||||||
|
Author: Adam Jackson <ajax@nwnk.net>
|
||||||
|
Date: Sat Jun 25 21:17:00 2005 +0000
|
||||||
|
|
||||||
|
Bug #3626: _X_EXPORT tags for video and input drivers.
|
||||||
|
|
||||||
|
commit cb1938aa46fcab41ec663568fea22a89b32afe45
|
||||||
|
Author: Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk>
|
||||||
|
Date: Sat Dec 4 00:43:10 2004 +0000
|
||||||
|
|
||||||
|
Encoding of numerous files changed to UTF-8
|
||||||
|
|
||||||
|
commit 08ad8a93ee169525543da9aa044939024122e67f
|
||||||
|
Author: Egbert Eich <eich@suse.de>
|
||||||
|
Date: Fri Apr 23 19:54:02 2004 +0000
|
||||||
|
|
||||||
|
Merging XORG-CURRENT into trunk
|
||||||
|
|
||||||
|
commit eeeab6dfebe29f84947449a2123afcf673f74cbf
|
||||||
|
Author: Egbert Eich <eich@suse.de>
|
||||||
|
Date: Sun Mar 14 08:33:47 2004 +0000
|
||||||
|
|
||||||
|
Importing vendor version xf86-4_4_99_1 on Sun Mar 14 00:26:39 PST 2004
|
||||||
|
|
||||||
|
commit f45bf39ec0655879f922e30ce40a4d848bbe5c53
|
||||||
|
Author: Egbert Eich <eich@suse.de>
|
||||||
|
Date: Wed Mar 3 12:12:30 2004 +0000
|
||||||
|
|
||||||
|
Importing vendor version xf86-4_4_0 on Wed Mar 3 04:09:24 PST 2004
|
||||||
|
|
||||||
|
commit a4df6cf595d031007f7126d321350de13d6aaac2
|
||||||
|
Author: Egbert Eich <eich@suse.de>
|
||||||
|
Date: Thu Feb 26 13:36:00 2004 +0000
|
||||||
|
|
||||||
|
readding XFree86's cvs IDs
|
||||||
|
|
||||||
|
commit 0a754ffa019f081a194cb28b3d12968bf4522bab
|
||||||
|
Author: Egbert Eich <eich@suse.de>
|
||||||
|
Date: Thu Feb 26 09:23:33 2004 +0000
|
||||||
|
|
||||||
|
Importing vendor version xf86-4_3_99_903 on Wed Feb 26 01:21:00 PST 2004
|
||||||
|
|
||||||
|
commit e50d70f38e90bde903c91dcd6f47cf01165fe977
|
||||||
|
Author: Kaleb Keithley <kaleb@freedesktop.org>
|
||||||
|
Date: Tue Nov 25 19:28:46 2003 +0000
|
||||||
|
|
||||||
|
XFree86 4.3.99.16 Bring the tree up to date for the Cygwin folks
|
||||||
|
|
||||||
|
commit 350b2d1c6157e75ab8e5374164cd68f9b6b5eea7
|
||||||
|
Author: Kaleb Keithley <kaleb@freedesktop.org>
|
||||||
|
Date: Fri Nov 14 16:48:56 2003 +0000
|
||||||
|
|
||||||
|
XFree86 4.3.0.1
|
||||||
|
|
||||||
|
commit 249fcdd8f49a8a922ee1eb88cbd8a01e8929328f
|
||||||
|
Author: Kaleb Keithley <kaleb@freedesktop.org>
|
||||||
|
Date: Fri Nov 14 16:48:56 2003 +0000
|
||||||
|
|
||||||
|
Initial revision
|
||||||
|
@ -20,3 +20,14 @@
|
|||||||
|
|
||||||
AUTOMAKE_OPTIONS = foreign
|
AUTOMAKE_OPTIONS = foreign
|
||||||
SUBDIRS = src man
|
SUBDIRS = src man
|
||||||
|
|
||||||
|
EXTRA_DIST = autogen.sh ChangeLog
|
||||||
|
|
||||||
|
CLEANFILES = ChangeLog
|
||||||
|
|
||||||
|
.PHONY: ChangeLog
|
||||||
|
|
||||||
|
ChangeLog:
|
||||||
|
(GIT_DIR=$(top_srcdir)/.git git-log > .changelog.tmp && mv .changelog.tmp ChangeLog; rm -f .changelog.tmp) || (touch ChangeLog; echo 'git directory not found: installing possibly empty changelog.' >&2)
|
||||||
|
|
||||||
|
dist-hook: ChangeLog
|
||||||
|
12
driver/xf86-input-acecad/autogen.sh
Normal file
12
driver/xf86-input-acecad/autogen.sh
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
srcdir=`dirname $0`
|
||||||
|
test -z "$srcdir" && srcdir=.
|
||||||
|
|
||||||
|
ORIGDIR=`pwd`
|
||||||
|
cd $srcdir
|
||||||
|
|
||||||
|
autoreconf -v --install || exit 1
|
||||||
|
cd $ORIGDIR || exit $?
|
||||||
|
|
||||||
|
$srcdir/configure --enable-maintainer-mode "$@"
|
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
AC_PREREQ(2.57)
|
AC_PREREQ(2.57)
|
||||||
AC_INIT([xf86-input-acecad],
|
AC_INIT([xf86-input-acecad],
|
||||||
1.1.0,
|
1.2.1,
|
||||||
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
|
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
|
||||||
xf86-input-acecad)
|
xf86-input-acecad)
|
||||||
|
|
||||||
@ -85,6 +85,12 @@ AC_SUBST([CFLAGS])
|
|||||||
|
|
||||||
# Checks for header files.
|
# Checks for header files.
|
||||||
AC_HEADER_STDC
|
AC_HEADER_STDC
|
||||||
|
AC_HEADER_CHECK([linux/input.h],
|
||||||
|
[AC_DEFINE([LINUX_INPUT], [1], [Using the Linux input subsystem])]
|
||||||
|
)
|
||||||
|
AC_HEADER_CHECK([sysfs/libsysfs.h],
|
||||||
|
[AC_DEFINE([LINUX_SYSFS], [1], [Using sysfs to probe devices])]
|
||||||
|
)
|
||||||
|
|
||||||
XORG_MANPAGE_SECTIONS
|
XORG_MANPAGE_SECTIONS
|
||||||
XORG_RELEASE_VERSION
|
XORG_RELEASE_VERSION
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# depcomp - compile a program generating dependencies as side-effects
|
# depcomp - compile a program generating dependencies as side-effects
|
||||||
|
|
||||||
scriptversion=2005-07-09.11
|
scriptversion=2006-10-15.18
|
||||||
|
|
||||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
|
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software
|
||||||
|
# Foundation, Inc.
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -91,7 +92,20 @@ gcc3)
|
|||||||
## gcc 3 implements dependency tracking that does exactly what
|
## gcc 3 implements dependency tracking that does exactly what
|
||||||
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||||
## it if -MD -MP comes after the -MF stuff. Hmm.
|
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||||
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
|
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
|
||||||
|
## the command line argument order; so add the flags where they
|
||||||
|
## appear in depend2.am. Note that the slowdown incurred here
|
||||||
|
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
|
||||||
|
*) set fnord "$@" "$arg" ;;
|
||||||
|
esac
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
done
|
||||||
|
"$@"
|
||||||
stat=$?
|
stat=$?
|
||||||
if test $stat -eq 0; then :
|
if test $stat -eq 0; then :
|
||||||
else
|
else
|
||||||
@ -276,6 +290,46 @@ icc)
|
|||||||
rm -f "$tmpdepfile"
|
rm -f "$tmpdepfile"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
hp2)
|
||||||
|
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
|
||||||
|
# compilers, which have integrated preprocessors. The correct option
|
||||||
|
# to use with these is +Maked; it writes dependencies to a file named
|
||||||
|
# 'foo.d', which lands next to the object file, wherever that
|
||||||
|
# happens to be.
|
||||||
|
# Much of this is similar to the tru64 case; see comments there.
|
||||||
|
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||||
|
test "x$dir" = "x$object" && dir=
|
||||||
|
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
tmpdepfile1=$dir$base.d
|
||||||
|
tmpdepfile2=$dir.libs/$base.d
|
||||||
|
"$@" -Wc,+Maked
|
||||||
|
else
|
||||||
|
tmpdepfile1=$dir$base.d
|
||||||
|
tmpdepfile2=$dir$base.d
|
||||||
|
"$@" +Maked
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
|
||||||
|
do
|
||||||
|
test -f "$tmpdepfile" && break
|
||||||
|
done
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
|
||||||
|
# Add `dependent.h:' lines.
|
||||||
|
sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
|
||||||
|
else
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile" "$tmpdepfile2"
|
||||||
|
;;
|
||||||
|
|
||||||
tru64)
|
tru64)
|
||||||
# The Tru64 compiler uses -MD to generate dependencies as a side
|
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||||
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
||||||
@ -288,13 +342,13 @@ tru64)
|
|||||||
|
|
||||||
if test "$libtool" = yes; then
|
if test "$libtool" = yes; then
|
||||||
# With Tru64 cc, shared objects can also be used to make a
|
# With Tru64 cc, shared objects can also be used to make a
|
||||||
# static library. This mecanism is used in libtool 1.4 series to
|
# static library. This mechanism is used in libtool 1.4 series to
|
||||||
# handle both shared and static libraries in a single compilation.
|
# 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.4, dependencies were output in $dir.libs/$base.lo.d.
|
||||||
#
|
#
|
||||||
# With libtool 1.5 this exception was removed, and libtool now
|
# With libtool 1.5 this exception was removed, and libtool now
|
||||||
# generates 2 separate objects for the 2 libraries. These two
|
# generates 2 separate objects for the 2 libraries. These two
|
||||||
# compilations output dependencies in in $dir.libs/$base.o.d and
|
# compilations output dependencies in $dir.libs/$base.o.d and
|
||||||
# in $dir$base.o.d. We have to check for both files, because
|
# in $dir$base.o.d. We have to check for both files, because
|
||||||
# one of the two compilations can be disabled. We should prefer
|
# 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
|
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# install - install a program, script, or datafile
|
# install - install a program, script, or datafile
|
||||||
|
|
||||||
scriptversion=2005-05-14.22
|
scriptversion=2006-10-14.15
|
||||||
|
|
||||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||||
@ -39,15 +39,24 @@ scriptversion=2005-05-14.22
|
|||||||
# when there is no Makefile.
|
# when there is no Makefile.
|
||||||
#
|
#
|
||||||
# This script is compatible with the BSD install script, but was written
|
# This script is compatible with the BSD install script, but was written
|
||||||
# from scratch. It can only install one file at a time, a restriction
|
# from scratch.
|
||||||
# shared with many OS's install programs.
|
|
||||||
|
nl='
|
||||||
|
'
|
||||||
|
IFS=" "" $nl"
|
||||||
|
|
||||||
# set DOITPROG to echo to test this script
|
# set DOITPROG to echo to test this script
|
||||||
|
|
||||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||||
doit="${DOITPROG-}"
|
doit="${DOITPROG-}"
|
||||||
|
if test -z "$doit"; then
|
||||||
|
doit_exec=exec
|
||||||
|
else
|
||||||
|
doit_exec=$doit
|
||||||
|
fi
|
||||||
|
|
||||||
# put in absolute paths if you don't have them in your path; or use env. vars.
|
# Put in absolute file names if you don't have them in your path;
|
||||||
|
# or use environment vars.
|
||||||
|
|
||||||
mvprog="${MVPROG-mv}"
|
mvprog="${MVPROG-mv}"
|
||||||
cpprog="${CPPROG-cp}"
|
cpprog="${CPPROG-cp}"
|
||||||
@ -58,7 +67,13 @@ stripprog="${STRIPPROG-strip}"
|
|||||||
rmprog="${RMPROG-rm}"
|
rmprog="${RMPROG-rm}"
|
||||||
mkdirprog="${MKDIRPROG-mkdir}"
|
mkdirprog="${MKDIRPROG-mkdir}"
|
||||||
|
|
||||||
chmodcmd="$chmodprog 0755"
|
posix_glob=
|
||||||
|
posix_mkdir=
|
||||||
|
|
||||||
|
# Desired mode of installed file.
|
||||||
|
mode=0755
|
||||||
|
|
||||||
|
chmodcmd=$chmodprog
|
||||||
chowncmd=
|
chowncmd=
|
||||||
chgrpcmd=
|
chgrpcmd=
|
||||||
stripcmd=
|
stripcmd=
|
||||||
@ -95,7 +110,7 @@ Environment variables override the default commands:
|
|||||||
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
|
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
|
||||||
"
|
"
|
||||||
|
|
||||||
while test -n "$1"; do
|
while test $# -ne 0; do
|
||||||
case $1 in
|
case $1 in
|
||||||
-c) shift
|
-c) shift
|
||||||
continue;;
|
continue;;
|
||||||
@ -111,9 +126,15 @@ while test -n "$1"; do
|
|||||||
|
|
||||||
--help) echo "$usage"; exit $?;;
|
--help) echo "$usage"; exit $?;;
|
||||||
|
|
||||||
-m) chmodcmd="$chmodprog $2"
|
-m) mode=$2
|
||||||
shift
|
shift
|
||||||
shift
|
shift
|
||||||
|
case $mode in
|
||||||
|
*' '* | *' '* | *'
|
||||||
|
'* | *'*'* | *'?'* | *'['*)
|
||||||
|
echo "$0: invalid mode: $mode" >&2
|
||||||
|
exit 1;;
|
||||||
|
esac
|
||||||
continue;;
|
continue;;
|
||||||
|
|
||||||
-o) chowncmd="$chownprog $2"
|
-o) chowncmd="$chownprog $2"
|
||||||
@ -136,9 +157,19 @@ while test -n "$1"; do
|
|||||||
|
|
||||||
--version) echo "$0 $scriptversion"; exit $?;;
|
--version) echo "$0 $scriptversion"; exit $?;;
|
||||||
|
|
||||||
*) # When -d is used, all remaining arguments are directories to create.
|
--) shift
|
||||||
|
break;;
|
||||||
|
|
||||||
|
-*) echo "$0: invalid option: $1" >&2
|
||||||
|
exit 1;;
|
||||||
|
|
||||||
|
*) break;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if test $# -ne 0 && test -z "$dir_arg$dstarg"; then
|
||||||
|
# When -d is used, all remaining arguments are directories to create.
|
||||||
# When -t is used, the destination is already specified.
|
# When -t is used, the destination is already specified.
|
||||||
test -n "$dir_arg$dstarg" && break
|
|
||||||
# Otherwise, the last argument is the destination. Remove it from $@.
|
# Otherwise, the last argument is the destination. Remove it from $@.
|
||||||
for arg
|
for arg
|
||||||
do
|
do
|
||||||
@ -150,11 +181,9 @@ while test -n "$1"; do
|
|||||||
shift # arg
|
shift # arg
|
||||||
dstarg=$arg
|
dstarg=$arg
|
||||||
done
|
done
|
||||||
break;;
|
fi
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if test -z "$1"; then
|
if test $# -eq 0; then
|
||||||
if test -z "$dir_arg"; then
|
if test -z "$dir_arg"; then
|
||||||
echo "$0: no input file specified." >&2
|
echo "$0: no input file specified." >&2
|
||||||
exit 1
|
exit 1
|
||||||
@ -164,6 +193,33 @@ if test -z "$1"; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test -z "$dir_arg"; then
|
||||||
|
trap '(exit $?); exit' 1 2 13 15
|
||||||
|
|
||||||
|
# Set umask so as not to create temps with too-generous modes.
|
||||||
|
# However, 'strip' requires both read and write access to temps.
|
||||||
|
case $mode in
|
||||||
|
# Optimize common cases.
|
||||||
|
*644) cp_umask=133;;
|
||||||
|
*755) cp_umask=22;;
|
||||||
|
|
||||||
|
*[0-7])
|
||||||
|
if test -z "$stripcmd"; then
|
||||||
|
u_plus_rw=
|
||||||
|
else
|
||||||
|
u_plus_rw='% 200'
|
||||||
|
fi
|
||||||
|
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
||||||
|
*)
|
||||||
|
if test -z "$stripcmd"; then
|
||||||
|
u_plus_rw=
|
||||||
|
else
|
||||||
|
u_plus_rw=,u+rw
|
||||||
|
fi
|
||||||
|
cp_umask=$mode$u_plus_rw;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
for src
|
for src
|
||||||
do
|
do
|
||||||
# Protect names starting with `-'.
|
# Protect names starting with `-'.
|
||||||
@ -173,15 +229,11 @@ do
|
|||||||
|
|
||||||
if test -n "$dir_arg"; then
|
if test -n "$dir_arg"; then
|
||||||
dst=$src
|
dst=$src
|
||||||
src=
|
dstdir=$dst
|
||||||
|
test -d "$dstdir"
|
||||||
|
dstdir_status=$?
|
||||||
|
else
|
||||||
|
|
||||||
if test -d "$dst"; then
|
|
||||||
mkdircmd=:
|
|
||||||
chmodcmd=
|
|
||||||
else
|
|
||||||
mkdircmd=$mkdirprog
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||||
# might cause directories to be created, which would be especially bad
|
# might cause directories to be created, which would be especially bad
|
||||||
# if $src (and thus $dsttmp) contains '*'.
|
# if $src (and thus $dsttmp) contains '*'.
|
||||||
@ -208,53 +260,188 @@ do
|
|||||||
echo "$0: $dstarg: Is a directory" >&2
|
echo "$0: $dstarg: Is a directory" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
dst=$dst/`basename "$src"`
|
dstdir=$dst
|
||||||
|
dst=$dstdir/`basename "$src"`
|
||||||
|
dstdir_status=0
|
||||||
|
else
|
||||||
|
# Prefer dirname, but fall back on a substitute if dirname fails.
|
||||||
|
dstdir=`
|
||||||
|
(dirname "$dst") 2>/dev/null ||
|
||||||
|
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||||
|
X"$dst" : 'X\(//\)[^/]' \| \
|
||||||
|
X"$dst" : 'X\(//\)$' \| \
|
||||||
|
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
|
||||||
|
echo X"$dst" |
|
||||||
|
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||||||
|
s//\1/
|
||||||
|
q
|
||||||
|
}
|
||||||
|
/^X\(\/\/\)[^/].*/{
|
||||||
|
s//\1/
|
||||||
|
q
|
||||||
|
}
|
||||||
|
/^X\(\/\/\)$/{
|
||||||
|
s//\1/
|
||||||
|
q
|
||||||
|
}
|
||||||
|
/^X\(\/\).*/{
|
||||||
|
s//\1/
|
||||||
|
q
|
||||||
|
}
|
||||||
|
s/.*/./; q'
|
||||||
|
`
|
||||||
|
|
||||||
|
test -d "$dstdir"
|
||||||
|
dstdir_status=$?
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# This sed command emulates the dirname command.
|
obsolete_mkdir_used=false
|
||||||
dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
|
|
||||||
|
|
||||||
# Make sure that the destination directory exists.
|
if test $dstdir_status != 0; then
|
||||||
|
case $posix_mkdir in
|
||||||
|
'')
|
||||||
|
# Create intermediate dirs using mode 755 as modified by the umask.
|
||||||
|
# This is like FreeBSD 'install' as of 1997-10-28.
|
||||||
|
umask=`umask`
|
||||||
|
case $stripcmd.$umask in
|
||||||
|
# Optimize common cases.
|
||||||
|
*[2367][2367]) mkdir_umask=$umask;;
|
||||||
|
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
||||||
|
|
||||||
# Skip lots of stat calls in the usual case.
|
*[0-7])
|
||||||
if test ! -d "$dstdir"; then
|
mkdir_umask=`expr $umask + 22 \
|
||||||
defaultIFS='
|
- $umask % 100 % 40 + $umask % 20 \
|
||||||
'
|
- $umask % 10 % 4 + $umask % 2
|
||||||
IFS="${IFS-$defaultIFS}"
|
`;;
|
||||||
|
*) mkdir_umask=$umask,go-w;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# With -d, create the new directory with the user-specified mode.
|
||||||
|
# Otherwise, rely on $mkdir_umask.
|
||||||
|
if test -n "$dir_arg"; then
|
||||||
|
mkdir_mode=-m$mode
|
||||||
|
else
|
||||||
|
mkdir_mode=
|
||||||
|
fi
|
||||||
|
|
||||||
|
posix_mkdir=false
|
||||||
|
case $umask in
|
||||||
|
*[123567][0-7][0-7])
|
||||||
|
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
||||||
|
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||||
|
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||||
|
|
||||||
|
if (umask $mkdir_umask &&
|
||||||
|
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
if test -z "$dir_arg" || {
|
||||||
|
# Check for POSIX incompatibilities with -m.
|
||||||
|
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||||
|
# other-writeable bit of parent directory when it shouldn't.
|
||||||
|
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||||
|
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||||
|
case $ls_ld_tmpdir in
|
||||||
|
d????-?r-*) different_mode=700;;
|
||||||
|
d????-?--*) different_mode=755;;
|
||||||
|
*) false;;
|
||||||
|
esac &&
|
||||||
|
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||||
|
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||||
|
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
then posix_mkdir=:
|
||||||
|
fi
|
||||||
|
rmdir "$tmpdir/d" "$tmpdir"
|
||||||
|
else
|
||||||
|
# Remove any dirs left behind by ancient mkdir implementations.
|
||||||
|
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||||
|
fi
|
||||||
|
trap '' 0;;
|
||||||
|
esac;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if
|
||||||
|
$posix_mkdir && (
|
||||||
|
umask $mkdir_umask &&
|
||||||
|
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||||
|
)
|
||||||
|
then :
|
||||||
|
else
|
||||||
|
|
||||||
|
# The umask is ridiculous, or mkdir does not conform to POSIX,
|
||||||
|
# or it failed possibly due to a race condition. Create the
|
||||||
|
# directory the slow way, step by step, checking for races as we go.
|
||||||
|
|
||||||
|
case $dstdir in
|
||||||
|
/*) prefix=/ ;;
|
||||||
|
-*) prefix=./ ;;
|
||||||
|
*) prefix= ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case $posix_glob in
|
||||||
|
'')
|
||||||
|
if (set -f) 2>/dev/null; then
|
||||||
|
posix_glob=true
|
||||||
|
else
|
||||||
|
posix_glob=false
|
||||||
|
fi ;;
|
||||||
|
esac
|
||||||
|
|
||||||
oIFS=$IFS
|
oIFS=$IFS
|
||||||
# Some sh's can't handle IFS=/ for some reason.
|
IFS=/
|
||||||
IFS='%'
|
$posix_glob && set -f
|
||||||
set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
|
set fnord $dstdir
|
||||||
shift
|
shift
|
||||||
|
$posix_glob && set +f
|
||||||
IFS=$oIFS
|
IFS=$oIFS
|
||||||
|
|
||||||
pathcomp=
|
prefixes=
|
||||||
|
|
||||||
while test $# -ne 0 ; do
|
for d
|
||||||
pathcomp=$pathcomp$1
|
do
|
||||||
shift
|
test -z "$d" && continue
|
||||||
if test ! -d "$pathcomp"; then
|
|
||||||
$mkdirprog "$pathcomp"
|
prefix=$prefix$d
|
||||||
# mkdir can fail with a `File exist' error in case several
|
if test -d "$prefix"; then
|
||||||
# install-sh are creating the directory concurrently. This
|
prefixes=
|
||||||
# is OK.
|
else
|
||||||
test -d "$pathcomp" || exit
|
if $posix_mkdir; then
|
||||||
|
(umask=$mkdir_umask &&
|
||||||
|
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||||
|
# Don't fail if two instances are running concurrently.
|
||||||
|
test -d "$prefix" || exit 1
|
||||||
|
else
|
||||||
|
case $prefix in
|
||||||
|
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||||
|
*) qprefix=$prefix;;
|
||||||
|
esac
|
||||||
|
prefixes="$prefixes '$qprefix'"
|
||||||
fi
|
fi
|
||||||
pathcomp=$pathcomp/
|
fi
|
||||||
|
prefix=$prefix/
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if test -n "$prefixes"; then
|
||||||
|
# Don't fail if two instances are running concurrently.
|
||||||
|
(umask $mkdir_umask &&
|
||||||
|
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||||
|
test -d "$dstdir" || exit 1
|
||||||
|
obsolete_mkdir_used=true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -n "$dir_arg"; then
|
if test -n "$dir_arg"; then
|
||||||
$doit $mkdircmd "$dst" \
|
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
|
||||||
&& { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
|
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
|
||||||
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
|
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
|
||||||
&& { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
|
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
|
||||||
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
|
|
||||||
|
|
||||||
else
|
else
|
||||||
dstfile=`basename "$dst"`
|
|
||||||
|
|
||||||
# Make a couple of temp file names in the proper directory.
|
# Make a couple of temp file names in the proper directory.
|
||||||
dsttmp=$dstdir/_inst.$$_
|
dsttmp=$dstdir/_inst.$$_
|
||||||
@ -262,10 +449,9 @@ do
|
|||||||
|
|
||||||
# Trap to clean up those temp files at exit.
|
# Trap to clean up those temp files at exit.
|
||||||
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||||
trap '(exit $?); exit' 1 2 13 15
|
|
||||||
|
|
||||||
# Copy the file name to the temp name.
|
# Copy the file name to the temp name.
|
||||||
$doit $cpprog "$src" "$dsttmp" &&
|
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
|
||||||
|
|
||||||
# and set any options; do chmod last to preserve setuid bits.
|
# and set any options; do chmod last to preserve setuid bits.
|
||||||
#
|
#
|
||||||
@ -276,10 +462,10 @@ do
|
|||||||
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
|
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
|
||||||
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
|
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
|
||||||
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
|
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
|
||||||
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
|
&& { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
|
||||||
|
|
||||||
# Now rename the file to the real destination.
|
# Now rename the file to the real destination.
|
||||||
{ $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
|
{ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \
|
||||||
|| {
|
|| {
|
||||||
# The rename failed, perhaps because mv can't rename something else
|
# The rename failed, perhaps because mv can't rename something else
|
||||||
# to itself, or perhaps because mv is so ancient that it does not
|
# to itself, or perhaps because mv is so ancient that it does not
|
||||||
@ -291,11 +477,12 @@ do
|
|||||||
# reasons. In this case, the final cleanup might fail but the new
|
# reasons. In this case, the final cleanup might fail but the new
|
||||||
# file should still install successfully.
|
# file should still install successfully.
|
||||||
{
|
{
|
||||||
if test -f "$dstdir/$dstfile"; then
|
if test -f "$dst"; then
|
||||||
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
|
$doit $rmcmd -f "$dst" 2>/dev/null \
|
||||||
|| $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
|
|| { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \
|
||||||
|
&& { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\
|
||||||
|| {
|
|| {
|
||||||
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
|
echo "$0: cannot unlink or rename $dst" >&2
|
||||||
(exit 1); exit 1
|
(exit 1); exit 1
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -304,16 +491,13 @@ do
|
|||||||
} &&
|
} &&
|
||||||
|
|
||||||
# Now rename the file to the real destination.
|
# Now rename the file to the real destination.
|
||||||
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
|
$doit $mvcmd "$dsttmp" "$dst"
|
||||||
}
|
}
|
||||||
}
|
} || exit 1
|
||||||
fi || { (exit 1); exit 1; }
|
|
||||||
done
|
|
||||||
|
|
||||||
# The final little trick to "correctly" pass the exit status to the exit trap.
|
trap '' 0
|
||||||
{
|
fi
|
||||||
(exit 0); exit 0
|
done
|
||||||
}
|
|
||||||
|
|
||||||
# Local variables:
|
# Local variables:
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Common stub for a few missing GNU programs while installing.
|
# Common stub for a few missing GNU programs while installing.
|
||||||
|
|
||||||
scriptversion=2005-06-08.21
|
scriptversion=2006-05-10.23
|
||||||
|
|
||||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
|
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
|
||||||
# Free Software Foundation, Inc.
|
# Free Software Foundation, Inc.
|
||||||
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||||
|
|
||||||
@ -33,6 +33,8 @@ if test $# -eq 0; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
run=:
|
run=:
|
||||||
|
sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
|
||||||
|
sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
|
||||||
|
|
||||||
# In the cases where this matters, `missing' is being run in the
|
# In the cases where this matters, `missing' is being run in the
|
||||||
# srcdir already.
|
# srcdir already.
|
||||||
@ -44,7 +46,7 @@ fi
|
|||||||
|
|
||||||
msg="missing on your system"
|
msg="missing on your system"
|
||||||
|
|
||||||
case "$1" in
|
case $1 in
|
||||||
--run)
|
--run)
|
||||||
# Try to run requested program, and just exit if it succeeds.
|
# Try to run requested program, and just exit if it succeeds.
|
||||||
run=
|
run=
|
||||||
@ -77,6 +79,7 @@ Supported PROGRAM values:
|
|||||||
aclocal touch file \`aclocal.m4'
|
aclocal touch file \`aclocal.m4'
|
||||||
autoconf touch file \`configure'
|
autoconf touch file \`configure'
|
||||||
autoheader touch file \`config.h.in'
|
autoheader touch file \`config.h.in'
|
||||||
|
autom4te touch the output file, or create a stub one
|
||||||
automake touch all \`Makefile.in' files
|
automake touch all \`Makefile.in' files
|
||||||
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||||
flex create \`lex.yy.c', if possible, from existing .c
|
flex create \`lex.yy.c', if possible, from existing .c
|
||||||
@ -106,7 +109,7 @@ esac
|
|||||||
# Now exit if we have it, but it failed. Also exit now if we
|
# Now exit if we have it, but it failed. Also exit now if we
|
||||||
# don't have it and --version was passed (most likely to detect
|
# don't have it and --version was passed (most likely to detect
|
||||||
# the program).
|
# the program).
|
||||||
case "$1" in
|
case $1 in
|
||||||
lex|yacc)
|
lex|yacc)
|
||||||
# Not GNU programs, they don't have --version.
|
# Not GNU programs, they don't have --version.
|
||||||
;;
|
;;
|
||||||
@ -135,7 +138,7 @@ esac
|
|||||||
|
|
||||||
# If it does not exist, or fails to run (possibly an outdated version),
|
# If it does not exist, or fails to run (possibly an outdated version),
|
||||||
# try to emulate it.
|
# try to emulate it.
|
||||||
case "$1" in
|
case $1 in
|
||||||
aclocal*)
|
aclocal*)
|
||||||
echo 1>&2 "\
|
echo 1>&2 "\
|
||||||
WARNING: \`$1' is $msg. You should only need it if
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
@ -164,7 +167,7 @@ WARNING: \`$1' is $msg. You should only need it if
|
|||||||
test -z "$files" && files="config.h"
|
test -z "$files" && files="config.h"
|
||||||
touch_files=
|
touch_files=
|
||||||
for f in $files; do
|
for f in $files; do
|
||||||
case "$f" in
|
case $f in
|
||||||
*:*) touch_files="$touch_files "`echo "$f" |
|
*:*) touch_files="$touch_files "`echo "$f" |
|
||||||
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
||||||
*) touch_files="$touch_files $f.in";;
|
*) touch_files="$touch_files $f.in";;
|
||||||
@ -192,8 +195,8 @@ WARNING: \`$1' is needed, but is $msg.
|
|||||||
You can get \`$1' as part of \`Autoconf' from any GNU
|
You can get \`$1' as part of \`Autoconf' from any GNU
|
||||||
archive site."
|
archive site."
|
||||||
|
|
||||||
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
|
file=`echo "$*" | sed -n "$sed_output"`
|
||||||
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
|
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||||
if test -f "$file"; then
|
if test -f "$file"; then
|
||||||
touch $file
|
touch $file
|
||||||
else
|
else
|
||||||
@ -214,25 +217,25 @@ WARNING: \`$1' $msg. You should only need it if
|
|||||||
in order for those modifications to take effect. You can get
|
in order for those modifications to take effect. You can get
|
||||||
\`Bison' from any GNU archive site."
|
\`Bison' from any GNU archive site."
|
||||||
rm -f y.tab.c y.tab.h
|
rm -f y.tab.c y.tab.h
|
||||||
if [ $# -ne 1 ]; then
|
if test $# -ne 1; then
|
||||||
eval LASTARG="\${$#}"
|
eval LASTARG="\${$#}"
|
||||||
case "$LASTARG" in
|
case $LASTARG in
|
||||||
*.y)
|
*.y)
|
||||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||||
if [ -f "$SRCFILE" ]; then
|
if test -f "$SRCFILE"; then
|
||||||
cp "$SRCFILE" y.tab.c
|
cp "$SRCFILE" y.tab.c
|
||||||
fi
|
fi
|
||||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||||
if [ -f "$SRCFILE" ]; then
|
if test -f "$SRCFILE"; then
|
||||||
cp "$SRCFILE" y.tab.h
|
cp "$SRCFILE" y.tab.h
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
if [ ! -f y.tab.h ]; then
|
if test ! -f y.tab.h; then
|
||||||
echo >y.tab.h
|
echo >y.tab.h
|
||||||
fi
|
fi
|
||||||
if [ ! -f y.tab.c ]; then
|
if test ! -f y.tab.c; then
|
||||||
echo 'main() { return 0; }' >y.tab.c
|
echo 'main() { return 0; }' >y.tab.c
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
@ -244,18 +247,18 @@ WARNING: \`$1' is $msg. You should only need it if
|
|||||||
in order for those modifications to take effect. You can get
|
in order for those modifications to take effect. You can get
|
||||||
\`Flex' from any GNU archive site."
|
\`Flex' from any GNU archive site."
|
||||||
rm -f lex.yy.c
|
rm -f lex.yy.c
|
||||||
if [ $# -ne 1 ]; then
|
if test $# -ne 1; then
|
||||||
eval LASTARG="\${$#}"
|
eval LASTARG="\${$#}"
|
||||||
case "$LASTARG" in
|
case $LASTARG in
|
||||||
*.l)
|
*.l)
|
||||||
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||||
if [ -f "$SRCFILE" ]; then
|
if test -f "$SRCFILE"; then
|
||||||
cp "$SRCFILE" lex.yy.c
|
cp "$SRCFILE" lex.yy.c
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
if [ ! -f lex.yy.c ]; then
|
if test ! -f lex.yy.c; then
|
||||||
echo 'main() { return 0; }' >lex.yy.c
|
echo 'main() { return 0; }' >lex.yy.c
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
@ -267,11 +270,9 @@ WARNING: \`$1' is $msg. You should only need it if
|
|||||||
\`Help2man' package in order for those modifications to take
|
\`Help2man' package in order for those modifications to take
|
||||||
effect. You can get \`Help2man' from any GNU archive site."
|
effect. You can get \`Help2man' from any GNU archive site."
|
||||||
|
|
||||||
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
file=`echo "$*" | sed -n "$sed_output"`
|
||||||
if test -z "$file"; then
|
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||||
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
|
if test -f "$file"; then
|
||||||
fi
|
|
||||||
if [ -f "$file" ]; then
|
|
||||||
touch $file
|
touch $file
|
||||||
else
|
else
|
||||||
test -z "$file" || exec >$file
|
test -z "$file" || exec >$file
|
||||||
@ -289,11 +290,17 @@ WARNING: \`$1' is $msg. You should only need it if
|
|||||||
DU, IRIX). You might want to install the \`Texinfo' package or
|
DU, IRIX). You might want to install the \`Texinfo' package or
|
||||||
the \`GNU make' package. Grab either from any GNU archive site."
|
the \`GNU make' package. Grab either from any GNU archive site."
|
||||||
# The file to touch is that specified with -o ...
|
# The file to touch is that specified with -o ...
|
||||||
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
file=`echo "$*" | sed -n "$sed_output"`
|
||||||
|
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||||
if test -z "$file"; then
|
if test -z "$file"; then
|
||||||
# ... or it is the one specified with @setfilename ...
|
# ... or it is the one specified with @setfilename ...
|
||||||
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||||
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
|
file=`sed -n '
|
||||||
|
/^@setfilename/{
|
||||||
|
s/.* \([^ ]*\) *$/\1/
|
||||||
|
p
|
||||||
|
q
|
||||||
|
}' $infile`
|
||||||
# ... or it is derived from the source name (dir/f.texi becomes f.info)
|
# ... or it is derived from the source name (dir/f.texi becomes f.info)
|
||||||
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
|
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
|
||||||
fi
|
fi
|
||||||
@ -317,13 +324,13 @@ WARNING: \`$1' is $msg. You should only need it if
|
|||||||
fi
|
fi
|
||||||
firstarg="$1"
|
firstarg="$1"
|
||||||
if shift; then
|
if shift; then
|
||||||
case "$firstarg" in
|
case $firstarg in
|
||||||
*o*)
|
*o*)
|
||||||
firstarg=`echo "$firstarg" | sed s/o//`
|
firstarg=`echo "$firstarg" | sed s/o//`
|
||||||
tar "$firstarg" "$@" && exit 0
|
tar "$firstarg" "$@" && exit 0
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
case "$firstarg" in
|
case $firstarg in
|
||||||
*h*)
|
*h*)
|
||||||
firstarg=`echo "$firstarg" | sed s/h//`
|
firstarg=`echo "$firstarg" | sed s/h//`
|
||||||
tar "$firstarg" "$@" && exit 0
|
tar "$firstarg" "$@" && exit 0
|
||||||
|
@ -25,9 +25,7 @@
|
|||||||
*/
|
*/
|
||||||
/* $XFree86: xc/programs/Xserver/hw/xfree86/input/acecad/acecad.c,v 1.4 2003/10/30 00:40:45 dawes Exp $ */
|
/* $XFree86: xc/programs/Xserver/hw/xfree86/input/acecad/acecad.c,v 1.4 2003/10/30 00:40:45 dawes Exp $ */
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#endif
|
|
||||||
|
|
||||||
#define _ACECAD_C_
|
#define _ACECAD_C_
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
@ -37,6 +35,10 @@
|
|||||||
#ifdef LINUX_INPUT
|
#ifdef LINUX_INPUT
|
||||||
#include <asm/types.h>
|
#include <asm/types.h>
|
||||||
#include <linux/input.h>
|
#include <linux/input.h>
|
||||||
|
#ifndef EV_SYN
|
||||||
|
#define EV_SYN EV_RST
|
||||||
|
#define SYN_REPORT 0
|
||||||
|
#endif
|
||||||
#ifdef BUS_PCI
|
#ifdef BUS_PCI
|
||||||
#undef BUS_PCI
|
#undef BUS_PCI
|
||||||
#endif
|
#endif
|
||||||
@ -47,7 +49,9 @@
|
|||||||
|
|
||||||
#include <misc.h>
|
#include <misc.h>
|
||||||
#include <xf86.h>
|
#include <xf86.h>
|
||||||
|
#ifndef NEED_XF86_TYPES
|
||||||
#define NEED_XF86_TYPES
|
#define NEED_XF86_TYPES
|
||||||
|
#endif
|
||||||
#include <xf86_OSproc.h>
|
#include <xf86_OSproc.h>
|
||||||
#include <xisb.h>
|
#include <xisb.h>
|
||||||
#include <xf86Xinput.h>
|
#include <xf86Xinput.h>
|
||||||
@ -57,6 +61,21 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
#ifdef LINUX_INPUT
|
||||||
|
#include <fcntl.h>
|
||||||
|
#ifdef LINUX_SYSFS
|
||||||
|
#include <sysfs/libsysfs.h>
|
||||||
|
#include <dlfcn.h>
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Previously found in xf86Xinput.h */
|
||||||
|
#ifdef DBG
|
||||||
|
#undef DBG
|
||||||
|
#endif
|
||||||
|
#define DBG(lvl, f) {if ((lvl) <= xf86GetVerbosity()) f;}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Local Headers
|
* Local Headers
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
@ -70,7 +89,6 @@
|
|||||||
* Local Variables
|
* Local Variables
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#define SYSCALL(call) while(((call) == -1) && (errno == EINTR))
|
|
||||||
#undef read
|
#undef read
|
||||||
#define read(a,b,c) xf86ReadSerial((a),(b),(c))
|
#define read(a,b,c) xf86ReadSerial((a),(b),(c))
|
||||||
|
|
||||||
@ -96,7 +114,7 @@ static XF86ModuleVersionInfo VersionRec =
|
|||||||
MODINFOSTRING1,
|
MODINFOSTRING1,
|
||||||
MODINFOSTRING2,
|
MODINFOSTRING2,
|
||||||
XORG_VERSION_CURRENT,
|
XORG_VERSION_CURRENT,
|
||||||
1, 1, 0,
|
PACKAGE_VERSION_MAJOR, PACKAGE_VERSION_MINOR, PACKAGE_VERSION_PATCHLEVEL,
|
||||||
ABI_CLASS_XINPUT,
|
ABI_CLASS_XINPUT,
|
||||||
ABI_XINPUT_VERSION,
|
ABI_XINPUT_VERSION,
|
||||||
MOD_CLASS_XINPUT,
|
MOD_CLASS_XINPUT,
|
||||||
@ -164,13 +182,160 @@ IsUSBLine(int fd)
|
|||||||
SYSCALL(err = ioctl(fd, EVIOCGVERSION, &version));
|
SYSCALL(err = ioctl(fd, EVIOCGVERSION, &version));
|
||||||
|
|
||||||
if (!err) {
|
if (!err) {
|
||||||
xf86Msg(X_CONFIG,"Kernel Input driver version is %d.%d.%d\n",
|
xf86MsgVerb(X_PROBED, 4, "Kernel Input driver version is %d.%d.%d\n",
|
||||||
version >> 16, (version >> 8) & 0xff, version & 0xff);
|
version >> 16, (version >> 8) & 0xff, version & 0xff);
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
|
xf86MsgVerb(X_PROBED, 4, "No Kernel Input driver found\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Heavily inspired by synaptics/eventcomm.c */
|
||||||
|
|
||||||
|
#define DEV_INPUT_EVENT "/dev/input/event"
|
||||||
|
#define EV_DEV_NAME_MAXLEN 64
|
||||||
|
#define SET_EVENT_NUM(str, num) \
|
||||||
|
snprintf(str, EV_DEV_NAME_MAXLEN, "%s%d", DEV_INPUT_EVENT, num)
|
||||||
|
|
||||||
|
static Bool
|
||||||
|
fd_query_acecad(int fd, char *ace_name) {
|
||||||
|
char name[256] = "Unknown";
|
||||||
|
int cmp_at = strlen(ace_name);
|
||||||
|
if (cmp_at > 255)
|
||||||
|
cmp_at = 255;
|
||||||
|
ioctl(fd, EVIOCGNAME(sizeof(name)), name);
|
||||||
|
name[cmp_at] = '\0';
|
||||||
|
if (xf86NameCmp(name, ace_name) == 0)
|
||||||
|
return TRUE;
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char ace_name_default[7] = "acecad";
|
||||||
|
|
||||||
|
#ifdef LINUX_SYSFS
|
||||||
|
static char usb_bus_name[4] = "usb";
|
||||||
|
static char acecad_driver_name[11] = "usb_acecad";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static Bool
|
||||||
|
AceCadAutoDevProbe(LocalDevicePtr local, int verb)
|
||||||
|
{
|
||||||
|
/* We are trying to find the right eventX device */
|
||||||
|
int i = 0;
|
||||||
|
Bool have_evdev = FALSE;
|
||||||
|
int noent_cnt = 0;
|
||||||
|
const int max_skip = 10;
|
||||||
|
char *ace_name = xf86FindOptionValue(local->options, "Name");
|
||||||
|
char fname[EV_DEV_NAME_MAXLEN];
|
||||||
|
int np;
|
||||||
|
|
||||||
|
#ifdef LINUX_SYSFS
|
||||||
|
struct sysfs_bus *usb_bus = NULL;
|
||||||
|
struct sysfs_driver *acecad_driver = NULL;
|
||||||
|
struct sysfs_device *candidate = NULL;
|
||||||
|
char *link = NULL;
|
||||||
|
struct dlist *devs = NULL;
|
||||||
|
struct dlist *links = NULL;
|
||||||
|
unsigned int major = 0, minor = 0;
|
||||||
|
void *libsysfs = NULL;
|
||||||
|
|
||||||
|
if (libsysfs = dlopen("libsysfs.so", RTLD_NOW | RTLD_GLOBAL)) {
|
||||||
|
xf86MsgVerb(X_INFO, verb, "%s: querying sysfs for Acecad tablets\n", local->name);
|
||||||
|
usb_bus = sysfs_open_bus(usb_bus_name);
|
||||||
|
if (usb_bus) {
|
||||||
|
xf86MsgVerb(X_PROBED, 4, "%s: usb bus opened\n", local->name);
|
||||||
|
acecad_driver = sysfs_get_bus_driver(usb_bus, acecad_driver_name);
|
||||||
|
if (acecad_driver) {
|
||||||
|
xf86MsgVerb(X_PROBED, 4, "%s: usb_acecad driver opened\n", local->name);
|
||||||
|
devs = sysfs_get_driver_devices(acecad_driver);
|
||||||
|
if (devs) {
|
||||||
|
xf86MsgVerb(X_PROBED, 4, "%s: usb_acecad devices retrieved\n", local->name);
|
||||||
|
dlist_for_each_data(devs, candidate, struct sysfs_device) {
|
||||||
|
xf86MsgVerb(X_PROBED, 4, "%s: device %s at %s\n", local->name, candidate->name, candidate->path);
|
||||||
|
links = sysfs_open_link_list(candidate->path);
|
||||||
|
dlist_for_each_data(links, link, char) {
|
||||||
|
if (sscanf(link, "input:event%d", &i) == 1) {
|
||||||
|
xf86MsgVerb(X_PROBED, 4, "%s: device %s at %s: %s\n", local->name, candidate->name, candidate->path, link);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sysfs_close_list(links);
|
||||||
|
if (i > 0) /* We found something */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
xf86MsgVerb(X_WARNING, 4, "%s: no usb_acecad devices found\n", local->name);
|
||||||
|
} else
|
||||||
|
xf86MsgVerb(X_WARNING, 4, "%s: usb_acecad driver not found\n", local->name);
|
||||||
|
} else
|
||||||
|
xf86MsgVerb(X_WARNING, 4, "%s: usb bus not found\n", local->name);
|
||||||
|
sysfs_close_bus(usb_bus);
|
||||||
|
dlclose(libsysfs);
|
||||||
|
|
||||||
|
if (i > 0) {
|
||||||
|
/* We found something */
|
||||||
|
np = SET_EVENT_NUM(fname, i);
|
||||||
|
if (np < 0 || np >= EV_DEV_NAME_MAXLEN) {
|
||||||
|
xf86MsgVerb(X_WARNING, verb, "%s: unable to manage event device %d\n", local->name, i);
|
||||||
|
} else {
|
||||||
|
goto ProbeFound;
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
xf86MsgVerb(X_WARNING, verb, "%s: no Acecad devices found via sysfs\n", local->name);
|
||||||
|
} else
|
||||||
|
xf86MsgVerb(X_WARNING, 4, "%s: libsysfs not found\n", local->name);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (!ace_name)
|
||||||
|
ace_name = ace_name_default;
|
||||||
|
|
||||||
|
xf86MsgVerb(X_INFO, verb, "%s: probing event devices for Acecad tablets\n", local->name);
|
||||||
|
for (i = 0; ; i++) {
|
||||||
|
int fd = -1;
|
||||||
|
Bool is_acecad;
|
||||||
|
|
||||||
|
np = SET_EVENT_NUM(fname, i);
|
||||||
|
if (np < 0 || np >= EV_DEV_NAME_MAXLEN) {
|
||||||
|
xf86MsgVerb(X_WARNING, verb, "%s: too many devices, giving up %d\n", local->name, i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
SYSCALL(fd = open(fname, O_RDONLY));
|
||||||
|
if (fd < 0) {
|
||||||
|
if (errno == ENOENT) {
|
||||||
|
if (++noent_cnt >= max_skip)
|
||||||
|
break;
|
||||||
|
else
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
noent_cnt = 0;
|
||||||
|
have_evdev = TRUE;
|
||||||
|
is_acecad = fd_query_acecad(fd, ace_name);
|
||||||
|
SYSCALL(close(fd));
|
||||||
|
if (is_acecad) {
|
||||||
|
goto ProbeFound;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
xf86MsgVerb(X_WARNING, verb, "%s: no Acecad event device found (checked %d nodes, no device name started with '%s')\n",
|
||||||
|
local->name, i + 1, ace_name);
|
||||||
|
if (i <= max_skip)
|
||||||
|
xf86MsgVerb(X_WARNING, verb, "%s: The /dev/input/event* device nodes seem to be missing\n",
|
||||||
|
local->name);
|
||||||
|
if (i > max_skip && !have_evdev)
|
||||||
|
xf86MsgVerb(X_WARNING, verb, "%s: The evdev kernel module seems to be missing\n", local->name);
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
ProbeFound:
|
||||||
|
xf86Msg(X_PROBED, "%s auto-dev sets device to %s\n",
|
||||||
|
local->name, fname);
|
||||||
|
xf86ReplaceStrOption(local->options, "Device", fname);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static InputInfoPtr
|
static InputInfoPtr
|
||||||
@ -179,6 +344,7 @@ AceCadPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
|
|||||||
LocalDevicePtr local = xf86AllocateInput(drv, 0);
|
LocalDevicePtr local = xf86AllocateInput(drv, 0);
|
||||||
AceCadPrivatePtr priv = xcalloc (1, sizeof(AceCadPrivateRec));
|
AceCadPrivatePtr priv = xcalloc (1, sizeof(AceCadPrivateRec));
|
||||||
int speed;
|
int speed;
|
||||||
|
int msgtype;
|
||||||
char *s;
|
char *s;
|
||||||
|
|
||||||
if ((!local) || (!priv))
|
if ((!local) || (!priv))
|
||||||
@ -187,9 +353,11 @@ AceCadPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
|
|||||||
memset(priv, 0, sizeof(AceCadPrivateRec));
|
memset(priv, 0, sizeof(AceCadPrivateRec));
|
||||||
|
|
||||||
local->name = dev->identifier;
|
local->name = dev->identifier;
|
||||||
local->type_name = "AceCad Tablet";
|
local->type_name = "ACECAD Tablet";
|
||||||
local->flags = XI86_POINTER_CAPABLE | XI86_SEND_DRAG_EVENTS;
|
local->flags = XI86_POINTER_CAPABLE | XI86_SEND_DRAG_EVENTS;
|
||||||
|
#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) == 0
|
||||||
local->motion_history_proc = xf86GetMotionEvents;
|
local->motion_history_proc = xf86GetMotionEvents;
|
||||||
|
#endif
|
||||||
local->control_proc = NULL;
|
local->control_proc = NULL;
|
||||||
local->close_proc = CloseProc;
|
local->close_proc = CloseProc;
|
||||||
local->switch_mode = NULL;
|
local->switch_mode = NULL;
|
||||||
@ -208,33 +376,52 @@ AceCadPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
|
|||||||
|
|
||||||
priv->acecadInc = xf86SetIntOption(local->options, "Increment", 0 );
|
priv->acecadInc = xf86SetIntOption(local->options, "Increment", 0 );
|
||||||
|
|
||||||
|
s = xf86FindOptionValue(local->options, "Device");
|
||||||
|
if (!s || (s && (xf86NameCmp(s, "auto-dev") == 0))) {
|
||||||
|
#ifdef LINUX_INPUT
|
||||||
|
priv->flags |= AUTODEV_FLAG;
|
||||||
|
if (!AceCadAutoDevProbe(local, 0))
|
||||||
|
{
|
||||||
|
xf86Msg(X_ERROR, "%s: unable to find device\n", local->name);
|
||||||
|
goto SetupProc_fail;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
xf86Msg(X_NOT_IMPLEMENTED, "%s: device autodetection not implemented, sorry\n", local->name);
|
||||||
|
goto SetupProc_fail;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
local->fd = xf86OpenSerial (local->options);
|
local->fd = xf86OpenSerial (local->options);
|
||||||
if (local->fd == -1)
|
if (local->fd == -1)
|
||||||
{
|
{
|
||||||
xf86Msg(X_ERROR,"AceCad driver unable to open device\n");
|
xf86Msg(X_ERROR, "%s: unable to open device\n", local->name);
|
||||||
goto SetupProc_fail;
|
goto SetupProc_fail;
|
||||||
}
|
}
|
||||||
xf86ErrorFVerb( 6, "tty port opened successfully\n" );
|
xf86ErrorFVerb( 6, "tty port opened successfully\n" );
|
||||||
|
|
||||||
#ifdef LINUX_INPUT
|
#ifdef LINUX_INPUT
|
||||||
if (IsUSBLine(local->fd)) {
|
if (IsUSBLine(local->fd)) {
|
||||||
priv->acecadUSB=1;
|
priv->flags |= USB_FLAG;
|
||||||
|
|
||||||
local->read_input = USBReadInput;
|
local->read_input = USBReadInput;
|
||||||
|
|
||||||
if (USBQueryHardware(local) != Success)
|
if (USBQueryHardware(local) != Success)
|
||||||
{
|
{
|
||||||
ErrorF ("Unable to query/initialize AceCad hardware.\n");
|
xf86Msg(X_ERROR, "%s: unable to query/initialize hardware (not an %s?).\n", local->name, local->type_name);
|
||||||
goto SetupProc_fail;
|
goto SetupProc_fail;
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
priv->acecadUSB=0;
|
|
||||||
|
|
||||||
local->read_input = ReadInput;
|
local->read_input = ReadInput;
|
||||||
|
|
||||||
|
msgtype = X_DEFAULT;
|
||||||
|
if (xf86FindOptionValue(local->options, "ReportSpeed")) {
|
||||||
|
msgtype = X_CONFIG;
|
||||||
speed = xf86SetIntOption(local->options, "ReportSpeed", 85 );
|
speed = xf86SetIntOption(local->options, "ReportSpeed", 85 );
|
||||||
|
} else {
|
||||||
|
speed = 85;
|
||||||
|
}
|
||||||
|
|
||||||
switch (speed)
|
switch (speed)
|
||||||
{
|
{
|
||||||
@ -253,10 +440,11 @@ AceCadPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
|
|||||||
default:
|
default:
|
||||||
priv->acecadReportSpeed = 'R';
|
priv->acecadReportSpeed = 'R';
|
||||||
speed = 85;
|
speed = 85;
|
||||||
xf86Msg(X_CONFIG, "Acecad Tablet: ReportSpeed possible values:\n 120, 85, 10, 2 \n");
|
xf86Msg(X_ERROR, "%s: ReportSpeed value %d invalid. Possible values: 120, 85, 10, 2. Defaulting to 85\n", local->name, speed);
|
||||||
|
msgtype = X_DEFAULT;
|
||||||
}
|
}
|
||||||
|
|
||||||
xf86Msg(X_CONFIG, "Acecad Tablet report %d points/s\n", speed);
|
xf86Msg(msgtype, "%s report %d points/s\n", local->name, speed);
|
||||||
|
|
||||||
priv->buffer = XisbNew (local->fd, 200);
|
priv->buffer = XisbNew (local->fd, 200);
|
||||||
|
|
||||||
@ -265,22 +453,19 @@ AceCadPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
|
|||||||
*/
|
*/
|
||||||
if (QueryHardware(priv) != Success)
|
if (QueryHardware(priv) != Success)
|
||||||
{
|
{
|
||||||
xf86Msg(X_ERROR,"Unable to query/initialize AceCad hardware.\n");
|
xf86Msg(X_ERROR, "%s: unable to query/initialize hardware (not an %s?).\n", local->name, local->type_name);
|
||||||
goto SetupProc_fail;
|
goto SetupProc_fail;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
s = xf86FindOptionValue(local->options, "Mode");
|
s = xf86FindOptionValue(local->options, "Mode");
|
||||||
if (s && (xf86NameCmp(s, "Relative") == 0))
|
msgtype = s ? X_CONFIG : X_DEFAULT;
|
||||||
|
if (!(s && (xf86NameCmp(s, "relative") == 0)))
|
||||||
{
|
{
|
||||||
priv->flags = priv->flags & ~ABSOLUTE_FLAG;
|
priv->flags |= ABSOLUTE_FLAG;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
priv->flags = priv->flags | ABSOLUTE_FLAG;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
xf86Msg(X_CONFIG, "Acecad Tablet is in %s mode\n",(priv->flags & ABSOLUTE_FLAG) ? "absolute" : "relative");
|
xf86Msg(msgtype, "%s is in %s mode\n", local->name, (priv->flags & ABSOLUTE_FLAG) ? "absolute" : "relative");
|
||||||
DBG (9, XisbTrace (priv->buffer, 1));
|
DBG (9, XisbTrace (priv->buffer, 1));
|
||||||
|
|
||||||
local->history_size = xf86SetIntOption(local->options , "HistorySize", 0);
|
local->history_size = xf86SetIntOption(local->options , "HistorySize", 0);
|
||||||
@ -301,7 +486,7 @@ AceCadPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
|
|||||||
}
|
}
|
||||||
RemoveEnabledDevice (local->fd);
|
RemoveEnabledDevice (local->fd);
|
||||||
local->fd = -1;
|
local->fd = -1;
|
||||||
return (local);
|
return local;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If something went wrong, cleanup and return NULL
|
* If something went wrong, cleanup and return NULL
|
||||||
@ -311,9 +496,13 @@ AceCadPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
|
|||||||
xf86CloseSerial (local->fd);
|
xf86CloseSerial (local->fd);
|
||||||
if ((priv) && (priv->buffer))
|
if ((priv) && (priv->buffer))
|
||||||
XisbFree (priv->buffer);
|
XisbFree (priv->buffer);
|
||||||
if (priv)
|
if (priv) {
|
||||||
xfree (priv);
|
xfree (priv);
|
||||||
return (NULL);
|
if (local)
|
||||||
|
local->private = NULL;
|
||||||
|
}
|
||||||
|
xf86DeleteInput(local, 0);
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Bool
|
static Bool
|
||||||
@ -340,7 +529,7 @@ DeviceControl (DeviceIntPtr dev, int mode)
|
|||||||
RetValue = BadValue;
|
RetValue = BadValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
return( RetValue );
|
return RetValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Bool
|
static Bool
|
||||||
@ -350,23 +539,30 @@ DeviceOn (DeviceIntPtr dev)
|
|||||||
LocalDevicePtr local = (LocalDevicePtr) dev->public.devicePrivate;
|
LocalDevicePtr local = (LocalDevicePtr) dev->public.devicePrivate;
|
||||||
AceCadPrivatePtr priv = (AceCadPrivatePtr) (local->private);
|
AceCadPrivatePtr priv = (AceCadPrivatePtr) (local->private);
|
||||||
|
|
||||||
xf86Msg(X_CONFIG, "Acecad Tablet Device On\n");
|
xf86MsgVerb(X_INFO, 4, "%s Device On\n", local->name);
|
||||||
|
|
||||||
local->fd = xf86OpenSerial(local->options);
|
local->fd = xf86OpenSerial(local->options);
|
||||||
if (local->fd == -1)
|
if (local->fd == -1)
|
||||||
{
|
{
|
||||||
xf86Msg(X_WARNING, "%s: cannot open input device\n", local->name);
|
xf86Msg(X_WARNING, "%s: cannot open input device %s: %s\n", local->name, xf86FindOptionValue(local->options, "Device"), strerror(errno));
|
||||||
return (!Success);
|
priv->flags &= ~AVAIL_FLAG;
|
||||||
|
#ifdef LINUX_INPUT
|
||||||
|
if ((priv->flags & AUTODEV_FLAG) && AceCadAutoDevProbe(local, 4))
|
||||||
|
local->fd = xf86OpenSerial(local->options);
|
||||||
|
if (local->fd == -1)
|
||||||
|
#endif
|
||||||
|
return !Success;
|
||||||
}
|
}
|
||||||
|
priv->flags |= AVAIL_FLAG;
|
||||||
|
|
||||||
|
|
||||||
if (priv->acecadUSB==0){
|
if (!(priv->flags & USB_FLAG)) {
|
||||||
priv->buffer = XisbNew(local->fd, 200);
|
priv->buffer = XisbNew(local->fd, 200);
|
||||||
if (!priv->buffer)
|
if (!priv->buffer)
|
||||||
{
|
{
|
||||||
xf86CloseSerial(local->fd);
|
xf86CloseSerial(local->fd);
|
||||||
local->fd = -1;
|
local->fd = -1;
|
||||||
return (!Success);
|
return !Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Rets qu'a l'envoyer a la tablette */
|
/* Rets qu'a l'envoyer a la tablette */
|
||||||
@ -377,7 +573,7 @@ DeviceOn (DeviceIntPtr dev)
|
|||||||
xf86FlushInput(local->fd);
|
xf86FlushInput(local->fd);
|
||||||
xf86AddEnabledDevice (local);
|
xf86AddEnabledDevice (local);
|
||||||
dev->public.on = TRUE;
|
dev->public.on = TRUE;
|
||||||
return (Success);
|
return Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Bool
|
static Bool
|
||||||
@ -386,6 +582,7 @@ DeviceOff (DeviceIntPtr dev)
|
|||||||
LocalDevicePtr local = (LocalDevicePtr) dev->public.devicePrivate;
|
LocalDevicePtr local = (LocalDevicePtr) dev->public.devicePrivate;
|
||||||
AceCadPrivatePtr priv = (AceCadPrivatePtr) (local->private);
|
AceCadPrivatePtr priv = (AceCadPrivatePtr) (local->private);
|
||||||
|
|
||||||
|
xf86MsgVerb(X_INFO, 4, "%s Device Off\n", local->name);
|
||||||
|
|
||||||
if (local->fd != -1)
|
if (local->fd != -1)
|
||||||
{
|
{
|
||||||
@ -401,21 +598,25 @@ DeviceOff (DeviceIntPtr dev)
|
|||||||
|
|
||||||
xf86RemoveEnabledDevice (local);
|
xf86RemoveEnabledDevice (local);
|
||||||
dev->public.on = FALSE;
|
dev->public.on = FALSE;
|
||||||
return (Success);
|
return Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Bool
|
static Bool
|
||||||
DeviceClose (DeviceIntPtr dev)
|
DeviceClose (DeviceIntPtr dev)
|
||||||
{
|
{
|
||||||
xf86Msg(X_CONFIG, "Acecad Tablet Device Close\n");
|
LocalDevicePtr local = (LocalDevicePtr) dev->public.devicePrivate;
|
||||||
return (Success);
|
|
||||||
|
xf86MsgVerb(X_INFO, 4, "%s Device Close\n", local->name);
|
||||||
|
|
||||||
|
return Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
ControlProc(DeviceIntPtr device,
|
ControlProc(DeviceIntPtr dev, PtrCtrl *ctrl)
|
||||||
PtrCtrl *ctrl)
|
|
||||||
{
|
{
|
||||||
xf86Msg(X_CONFIG, "Acecad Tablet Control Proc\n");
|
LocalDevicePtr local = (LocalDevicePtr) dev->public.devicePrivate;
|
||||||
|
|
||||||
|
xf86MsgVerb(X_INFO, 4, "%s Control Proc\n", local->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Bool
|
static Bool
|
||||||
@ -427,24 +628,23 @@ DeviceInit (DeviceIntPtr dev)
|
|||||||
unsigned char map[] =
|
unsigned char map[] =
|
||||||
{0, 1, 2, 3};
|
{0, 1, 2, 3};
|
||||||
|
|
||||||
xf86Msg(X_CONFIG, "Acecad Tablet Device Init\n");
|
xf86MsgVerb(X_INFO, 4, "%s Init\n", local->name);
|
||||||
|
|
||||||
/* 3 boutons */
|
/* 3 boutons */
|
||||||
if (InitButtonClassDeviceStruct (dev, 3, map) == FALSE)
|
if (InitButtonClassDeviceStruct (dev, 3, map) == FALSE)
|
||||||
{
|
{
|
||||||
ErrorF ("Unable to allocate AceCad ButtonClassDeviceStruct\n");
|
xf86Msg(X_ERROR, "%s: unable to allocate ButtonClassDeviceStruct\n", local->name);
|
||||||
return !Success;
|
return !Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (InitFocusClassDeviceStruct (dev) == FALSE)
|
if (InitFocusClassDeviceStruct (dev) == FALSE)
|
||||||
{
|
{
|
||||||
ErrorF("Unable to allocate AceCad FocusClassDeviceStruct\n");
|
xf86Msg(X_ERROR, "%s: unable to allocate FocusClassDeviceStruct\n", local->name);
|
||||||
return !Success;
|
return !Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (InitPtrFeedbackClassDeviceStruct(dev,
|
if (InitPtrFeedbackClassDeviceStruct(dev, ControlProc) == FALSE) {
|
||||||
ControlProc) == FALSE) {
|
xf86Msg(X_ERROR, "%s: unable to init ptr feedback\n", local->name);
|
||||||
ErrorF("unable to init ptr feedback\n");
|
|
||||||
return !Success;
|
return !Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -455,7 +655,7 @@ DeviceInit (DeviceIntPtr dev)
|
|||||||
((priv->flags & ABSOLUTE_FLAG)? Absolute: Relative)|OutOfProximity)
|
((priv->flags & ABSOLUTE_FLAG)? Absolute: Relative)|OutOfProximity)
|
||||||
== FALSE)
|
== FALSE)
|
||||||
{
|
{
|
||||||
ErrorF ("Unable to allocate AceCad ValuatorClassDeviceStruct\n");
|
xf86Msg(X_ERROR, "%s: unable to allocate ValuatorClassDeviceStruct\n", local->name);
|
||||||
return !Success;
|
return !Success;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -487,7 +687,7 @@ DeviceInit (DeviceIntPtr dev)
|
|||||||
|
|
||||||
if (InitProximityClassDeviceStruct (dev) == FALSE)
|
if (InitProximityClassDeviceStruct (dev) == FALSE)
|
||||||
{
|
{
|
||||||
ErrorF ("Unable to allocate ProximityClassDeviceStruct\n");
|
xf86Msg(X_ERROR, "%s: unable to allocate ProximityClassDeviceStruct\n", local->name);
|
||||||
return !Success;
|
return !Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -512,9 +712,9 @@ DeviceInit (DeviceIntPtr dev)
|
|||||||
priv->acecadInc = 1;
|
priv->acecadInc = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
xf86Msg(X_CONFIG, "Acecad Tablet Increment: %d\n",priv->acecadInc);
|
xf86Msg(X_INFO, "%s Increment: %d\n", local->name, priv->acecadInc);
|
||||||
|
|
||||||
return (Success);
|
return Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -525,7 +725,7 @@ ReadInput (LocalDevicePtr local)
|
|||||||
int is_core_pointer, is_absolute;
|
int is_core_pointer, is_absolute;
|
||||||
AceCadPrivatePtr priv = (AceCadPrivatePtr) (local->private);
|
AceCadPrivatePtr priv = (AceCadPrivatePtr) (local->private);
|
||||||
|
|
||||||
/*xf86Msg(X_CONFIG, "Acecad Tablet Read Input\n");*/
|
/*xf86Msg(X_INFO, "ACECAD Tablet Read Input\n");*/
|
||||||
|
|
||||||
is_absolute = (priv->flags & ABSOLUTE_FLAG);
|
is_absolute = (priv->flags & ABSOLUTE_FLAG);
|
||||||
is_core_pointer = xf86IsCorePointer(local->dev);
|
is_core_pointer = xf86IsCorePointer(local->dev);
|
||||||
@ -568,7 +768,7 @@ ReadInput (LocalDevicePtr local)
|
|||||||
if (!(priv->acecadOldProximity))
|
if (!(priv->acecadOldProximity))
|
||||||
if (!is_core_pointer)
|
if (!is_core_pointer)
|
||||||
{
|
{
|
||||||
/*xf86Msg(X_CONFIG, "Acecad Tablet ProxIN %d %d %d\n",x, y, z);*/
|
/*xf86Msg(X_INFO, "ACECAD Tablet ProxIN %d %d %d\n",x, y, z);*/
|
||||||
xf86PostProximityEvent(local->dev, 1, 0, 3 , x, y, z);
|
xf86PostProximityEvent(local->dev, 1, 0, 3 , x, y, z);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -577,24 +777,20 @@ ReadInput (LocalDevicePtr local)
|
|||||||
{
|
{
|
||||||
if (is_absolute || priv->acecadOldProximity)
|
if (is_absolute || priv->acecadOldProximity)
|
||||||
{
|
{
|
||||||
/*xf86Msg(X_CONFIG, "Acecad Tablet Motion %d %d %d\n", x, y, z);*/
|
/*xf86Msg(X_INFO, "ACECAD Tablet Motion %d %d %d\n", x, y, z);*/
|
||||||
xf86PostMotionEvent(local->dev, is_absolute, 0, 3, x, y, z);
|
xf86PostMotionEvent(local->dev, is_absolute, 0, 3, x, y, z);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (priv->acecadOldButtons != buttons)
|
if (priv->acecadOldButtons != buttons)
|
||||||
{
|
{
|
||||||
int delta;
|
int delta = buttons ^ priv->acecadOldButtons;
|
||||||
|
|
||||||
delta = buttons ^ priv->acecadOldButtons;
|
|
||||||
while (delta)
|
while (delta)
|
||||||
{
|
{
|
||||||
int id;
|
int id = ffs(delta);
|
||||||
|
|
||||||
id=ffs(delta);
|
|
||||||
delta &= ~(1 << (id-1));
|
delta &= ~(1 << (id-1));
|
||||||
|
|
||||||
/*xf86Msg(X_CONFIG, "Acecad Tablet Button %d 0x%x\n",id,(buttons&(1<<(id-1))));*/
|
/*xf86Msg(X_INFO, "ACECAD Tablet Button %d 0x%x\n",id,(buttons&(1<<(id-1))));*/
|
||||||
xf86PostButtonEvent(local->dev, is_absolute, id, (buttons&(1<<(id-1))), 0, 3, x, y,z);
|
xf86PostButtonEvent(local->dev, is_absolute, id, (buttons&(1<<(id-1))), 0, 3, x, y,z);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -610,13 +806,13 @@ ReadInput (LocalDevicePtr local)
|
|||||||
if (!is_core_pointer)
|
if (!is_core_pointer)
|
||||||
if (priv->acecadOldProximity)
|
if (priv->acecadOldProximity)
|
||||||
{
|
{
|
||||||
/*xf86Msg(X_CONFIG, "Acecad Tablet ProxOUT %d %d %d\n",x, y, z);*/
|
/*xf86Msg(X_INFO, "ACECAD Tablet ProxOUT %d %d %d\n",x, y, z);*/
|
||||||
xf86PostProximityEvent(local->dev, 0, 0, 3, x,y,z);
|
xf86PostProximityEvent(local->dev, 0, 0, 3, x,y,z);
|
||||||
}
|
}
|
||||||
priv->acecadOldProximity = 0;
|
priv->acecadOldProximity = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*xf86Msg(X_CONFIG, "Acecad Tablet Sortie Read Input\n");*/
|
/*xf86Msg(X_INFO, "ACECAD Tablet Sortie Read Input\n");*/
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef LINUX_INPUT
|
#ifdef LINUX_INPUT
|
||||||
@ -633,21 +829,44 @@ USBReadInput (LocalDevicePtr local)
|
|||||||
int z = priv->acecadOldZ;
|
int z = priv->acecadOldZ;
|
||||||
int prox = priv->acecadOldProximity;
|
int prox = priv->acecadOldProximity;
|
||||||
int buttons = priv->acecadOldButtons;
|
int buttons = priv->acecadOldButtons;
|
||||||
int is_core_pointer;
|
int is_core_pointer = xf86IsCorePointer(local->dev);
|
||||||
|
/* Is autodev active? */
|
||||||
is_core_pointer = xf86IsCorePointer(local->dev);
|
int autodev = priv->flags & AUTODEV_FLAG;
|
||||||
|
/* Was the device available last time we checked? */
|
||||||
|
int avail = priv->flags & AVAIL_FLAG;
|
||||||
|
|
||||||
SYSCALL(len = read(local->fd, eventbuf, sizeof(eventbuf)));
|
SYSCALL(len = read(local->fd, eventbuf, sizeof(eventbuf)));
|
||||||
|
|
||||||
if (len <= 0) {
|
if (len <= 0) {
|
||||||
ErrorF("Error reading wacom device : %s\n", strerror(errno));
|
if (avail) {
|
||||||
|
xf86Msg(X_ERROR, "%s: error reading device %s: %s\n", local->name, xf86FindOptionValue(local->options, "Device"), strerror(errno));
|
||||||
|
}
|
||||||
|
if (NOTAVAIL) {
|
||||||
|
priv->flags &= ~AVAIL_FLAG;
|
||||||
|
if(autodev) {
|
||||||
|
if (AceCadAutoDevProbe(local, 4)) {
|
||||||
|
DeviceOff(local->dev);
|
||||||
|
DeviceOn(local->dev);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
|
} else {
|
||||||
|
if (!avail) {
|
||||||
|
/* If the device wasn't available last time we checked */
|
||||||
|
xf86Msg(X_INFO, "%s: device %s is available again\n", local->name, xf86FindOptionValue(local->options, "Device"));
|
||||||
|
priv->flags |= AVAIL_FLAG;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (event = (struct input_event *)eventbuf;
|
for (event = (struct input_event *)eventbuf;
|
||||||
event < (struct input_event *)(eventbuf+len); event++) {
|
event < (struct input_event *)(eventbuf+len); event++) {
|
||||||
|
|
||||||
switch (event->type) {
|
switch (event->type) {
|
||||||
|
case EV_SYN: /* 2.6.x */
|
||||||
|
if (event->code != SYN_REPORT)
|
||||||
|
xf86Msg(X_ERROR, "%s: unknown EV_SYN code %d\n", local->name, event->code);
|
||||||
|
break;
|
||||||
case EV_ABS:
|
case EV_ABS:
|
||||||
switch (event->code) {
|
switch (event->code) {
|
||||||
case ABS_X:
|
case ABS_X:
|
||||||
@ -688,11 +907,15 @@ USBReadInput (LocalDevicePtr local)
|
|||||||
}
|
}
|
||||||
break; /* EV_KEY */
|
break; /* EV_KEY */
|
||||||
default:
|
default:
|
||||||
xf86Msg(X_ERROR, "UNKNOWN event->code=%d\n", event->code);
|
xf86Msg(X_ERROR, "%s: unknown event type/code %d/%d\n", local->name, event->type, event->code);
|
||||||
} /* switch event->type */
|
} /* switch event->type */
|
||||||
|
|
||||||
/* ABS_MISC is the event terminator */
|
/* Linux Kernel 2.6.x sends EV_SYN/SYN_REPORT as an event terminator,
|
||||||
if (event->type != EV_ABS || event->code != ABS_MISC) {
|
* whereas 2.4.x sends EV_ABS/ABS_MISC. We have to support both.
|
||||||
|
*/
|
||||||
|
if (!( (event->type == EV_SYN && event->code == SYN_REPORT) ||
|
||||||
|
(event->type == EV_ABS && event->code == ABS_MISC)
|
||||||
|
)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -709,14 +932,10 @@ USBReadInput (LocalDevicePtr local)
|
|||||||
|
|
||||||
if (priv->acecadOldButtons != buttons)
|
if (priv->acecadOldButtons != buttons)
|
||||||
{
|
{
|
||||||
int delta;
|
int delta = buttons ^ priv->acecadOldButtons;
|
||||||
|
|
||||||
delta = buttons ^ priv->acecadOldButtons;
|
|
||||||
while (delta)
|
while (delta)
|
||||||
{
|
{
|
||||||
int id;
|
int id = ffs(delta);
|
||||||
|
|
||||||
id=ffs(delta);
|
|
||||||
delta &= ~(1 << (id-1));
|
delta &= ~(1 << (id-1));
|
||||||
|
|
||||||
xf86PostButtonEvent(local->dev, 1, id, (buttons&(1<<(id-1))), 0, 3, x, y,z);
|
xf86PostButtonEvent(local->dev, 1, id, (buttons&(1<<(id-1))), 0, 3, x, y,z);
|
||||||
@ -739,7 +958,7 @@ USBReadInput (LocalDevicePtr local)
|
|||||||
priv->acecadOldZ = z;
|
priv->acecadOldZ = z;
|
||||||
priv->acecadOldProximity = prox;
|
priv->acecadOldProximity = prox;
|
||||||
}
|
}
|
||||||
/*xf86Msg(X_CONFIG, "Acecad Tablet Sortie Read Input\n");*/
|
/*xf86Msg(X_INFO, "ACECAD Tablet Sortie Read Input\n");*/
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -754,17 +973,9 @@ CloseProc (LocalDevicePtr local)
|
|||||||
* to simulate mouse events.
|
* to simulate mouse events.
|
||||||
*/
|
*/
|
||||||
static Bool
|
static Bool
|
||||||
ConvertProc (LocalDevicePtr local,
|
ConvertProc (LocalDevicePtr local, int first, int num,
|
||||||
int first,
|
int v0, int v1, int v2, int v3, int v4, int v5,
|
||||||
int num,
|
int *x, int *y)
|
||||||
int v0,
|
|
||||||
int v1,
|
|
||||||
int v2,
|
|
||||||
int v3,
|
|
||||||
int v4,
|
|
||||||
int v5,
|
|
||||||
int *x,
|
|
||||||
int *y)
|
|
||||||
{
|
{
|
||||||
AceCadPrivatePtr priv = (AceCadPrivatePtr)(local->private);
|
AceCadPrivatePtr priv = (AceCadPrivatePtr)(local->private);
|
||||||
|
|
||||||
@ -776,8 +987,7 @@ ConvertProc (LocalDevicePtr local,
|
|||||||
|
|
||||||
static Bool
|
static Bool
|
||||||
ReverseConvertProc (LocalDevicePtr local,
|
ReverseConvertProc (LocalDevicePtr local,
|
||||||
int x,
|
int x, int y,
|
||||||
int y,
|
|
||||||
int *valuators)
|
int *valuators)
|
||||||
{
|
{
|
||||||
AceCadPrivatePtr priv = (AceCadPrivatePtr)(local->private);
|
AceCadPrivatePtr priv = (AceCadPrivatePtr)(local->private);
|
||||||
@ -816,20 +1026,20 @@ QueryHardware (AceCadPrivatePtr priv)
|
|||||||
XisbBlockDuration (priv->buffer, 1000000);
|
XisbBlockDuration (priv->buffer, 1000000);
|
||||||
NewPacket (priv);
|
NewPacket (priv);
|
||||||
|
|
||||||
/*xf86Msg(X_CONFIG, "Acecad Tablet init envoyé \n");*/
|
/*xf86Msg(X_CONFIG, "ACECAD Tablet init envoyé \n");*/
|
||||||
|
|
||||||
if ((AceCadGetPacket (priv) == Success))
|
if ((AceCadGetPacket (priv) == Success))
|
||||||
{
|
{
|
||||||
priv->acecadMaxX = (int)priv->packet[1] + ((int)priv->packet[2] << 7);
|
priv->acecadMaxX = (int)priv->packet[1] + ((int)priv->packet[2] << 7);
|
||||||
priv->acecadMaxY = (int)priv->packet[3] + ((int)priv->packet[4] << 7);
|
priv->acecadMaxY = (int)priv->packet[3] + ((int)priv->packet[4] << 7);
|
||||||
priv->acecadMaxZ = 512;
|
priv->acecadMaxZ = 512;
|
||||||
xf86Msg(X_CONFIG, "Acecad Tablet MaxX:%d MaxY:%d\n",priv->acecadMaxX,priv->acecadMaxY);
|
xf86Msg(X_PROBED, "ACECAD Tablet MaxX:%d MaxY:%d\n", priv->acecadMaxX, priv->acecadMaxY);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return (!Success);
|
return !Success;
|
||||||
|
|
||||||
/*xf86Msg(X_CONFIG, "Acecad Tablet query hardware fini \n");*/
|
/*xf86Msg(X_INFO, "ACECAD Tablet query hardware fini \n");*/
|
||||||
return (Success);
|
return Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define BITS_PER_LONG (sizeof(long) * 8)
|
#define BITS_PER_LONG (sizeof(long) * 8)
|
||||||
@ -849,7 +1059,7 @@ USBQueryHardware (LocalDevicePtr local)
|
|||||||
char name[256] = "Unknown";
|
char name[256] = "Unknown";
|
||||||
|
|
||||||
ioctl(local->fd, EVIOCGNAME(sizeof(name)), name);
|
ioctl(local->fd, EVIOCGNAME(sizeof(name)), name);
|
||||||
xf86Msg(X_CONFIG, "Kernel Input device name: \"%s\"\n", name);
|
xf86MsgVerb(X_PROBED, 4, "Kernel Input device name: \"%s\"\n", name);
|
||||||
|
|
||||||
memset(bit, 0, sizeof(bit));
|
memset(bit, 0, sizeof(bit));
|
||||||
ioctl(local->fd, EVIOCGBIT(0, EV_MAX), bit[0]);
|
ioctl(local->fd, EVIOCGBIT(0, EV_MAX), bit[0]);
|
||||||
@ -878,8 +1088,8 @@ USBQueryHardware (LocalDevicePtr local)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
xf86Msg(X_CONFIG, "Acecad Tablet MaxX:%d MaxY:%d MaxZ:%d\n",priv->acecadMaxX,priv->acecadMaxY,priv->acecadMaxZ);
|
xf86Msg(X_PROBED, "ACECAD Tablet MaxX:%d MaxY:%d MaxZ:%d\n", priv->acecadMaxX, priv->acecadMaxY, priv->acecadMaxZ);
|
||||||
return (Success);
|
return Success;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -905,7 +1115,7 @@ AceCadGetPacket (AceCadPrivatePtr priv)
|
|||||||
if (count++ > 500)
|
if (count++ > 500)
|
||||||
{
|
{
|
||||||
NewPacket (priv);
|
NewPacket (priv);
|
||||||
return (!Success);
|
return !Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (c & PHASING_BIT)
|
if (c & PHASING_BIT)
|
||||||
@ -918,13 +1128,13 @@ AceCadGetPacket (AceCadPrivatePtr priv)
|
|||||||
count = ACECAD_PACKET_SIZE - 1;
|
count = ACECAD_PACKET_SIZE - 1;
|
||||||
while (count-- && (c = XisbRead(priv->buffer)) >= 0)
|
while (count-- && (c = XisbRead(priv->buffer)) >= 0)
|
||||||
{
|
{
|
||||||
/*xf86Msg(X_CONFIG, "Push %2.2x\n",(char) c);*/
|
/*xf86Msg(X_INFO, "Push %2.2x\n",(char) c);*/
|
||||||
priv->packet[priv->packeti++] = c;
|
priv->packet[priv->packeti++] = c;
|
||||||
}
|
}
|
||||||
XisbBlockDuration (priv->buffer, 0);
|
XisbBlockDuration (priv->buffer, 0);
|
||||||
if(c > 0)
|
if(c > 0)
|
||||||
return (Success);
|
return Success;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return (!Success);
|
return !Success;
|
||||||
}
|
}
|
||||||
|
@ -57,6 +57,11 @@
|
|||||||
#define COORD_BITS 0x7f
|
#define COORD_BITS 0x7f
|
||||||
|
|
||||||
#define ABSOLUTE_FLAG 1
|
#define ABSOLUTE_FLAG 1
|
||||||
|
#define USB_FLAG 2
|
||||||
|
#define AUTODEV_FLAG 4
|
||||||
|
#define AVAIL_FLAG 8
|
||||||
|
|
||||||
|
#define NOTAVAIL ((errno == ENODEV) || (errno == ENXIO) || (errno == ENOENT))
|
||||||
|
|
||||||
#define milisleep(ms) xf86usleep (ms * 1000)
|
#define milisleep(ms) xf86usleep (ms * 1000)
|
||||||
|
|
||||||
@ -77,7 +82,6 @@ typedef struct
|
|||||||
int acecadMaxY; /* max Y value */
|
int acecadMaxY; /* max Y value */
|
||||||
int acecadMaxZ; /* max Y value */
|
int acecadMaxZ; /* max Y value */
|
||||||
char acecadReportSpeed; /* report speed */
|
char acecadReportSpeed; /* report speed */
|
||||||
int acecadUSB; /*USB flag*/
|
|
||||||
int flags; /* various flags */
|
int flags; /* various flags */
|
||||||
int packeti; /* number of bytes read */
|
int packeti; /* number of bytes read */
|
||||||
int PacketSize; /* number of bytes read */
|
int PacketSize; /* number of bytes read */
|
||||||
@ -109,6 +113,8 @@ static InputInfoPtr AceCadPreInit(InputDriverPtr, IDevPtr , int);
|
|||||||
static void USBReadInput (LocalDevicePtr);
|
static void USBReadInput (LocalDevicePtr);
|
||||||
static Bool USBQueryHardware (LocalDevicePtr);
|
static Bool USBQueryHardware (LocalDevicePtr);
|
||||||
static int IsUSBLine(int);
|
static int IsUSBLine(int);
|
||||||
|
static Bool fd_query_acecad(int, char*);
|
||||||
|
static Bool AceCadAutoDevProbe(LocalDevicePtr, int);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user