hal: Branch 'master'

Richard Hughes hughsient at kemper.freedesktop.org
Sun Jul 22 18:50:46 EEST 2007


 Makefile.am                     |    2 
 configure.in                    |    1 
 tools/Makefile.am               |    9 +
 tools/hal-setup-keymap-keys.txt |  348 ++++++++++++++++++++++++++++++++++++++++
 tools/keymap-check.sh           |   70 ++++++++
 5 files changed, 429 insertions(+), 1 deletion(-)

New commits:
diff-tree d7b1c28054d5679a7abe65a0df8c24723783de6e (from a9ed9e4516020c107db694a54edbfde178a84483)
Author: Richard Hughes <richard at hughsie.com>
Date:   Sun Jul 22 16:46:24 2007 +0100

    add keymap validator
    
    Add a tool to check the keymaps for invalid entries.
    This should stop the checkins of keymaps where there is
    a spelling mistake of the keyname.
    This works with and without a checked out hal directory

diff --git a/Makefile.am b/Makefile.am
index 5450dd6..aba7b17 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,6 @@
 ## Process this file with automake to produce Makefile.in
 
-SUBDIRS = fdi
+SUBDIRS = fdi tools
 
 MAINTAINERCLEANFILES = ChangeLog
 
diff --git a/configure.in b/configure.in
index 587ebbc..7442a11 100644
--- a/configure.in
+++ b/configure.in
@@ -69,6 +69,7 @@ fdi/information/20thirdparty/Makefile
 fdi/preprobe/Makefile
 fdi/preprobe/10osvendor/Makefile
 fdi/preprobe/20thirdparty/Makefile
+tools/Makefile
 ])
 
 dnl ==========================================================================
diff --git a/tools/Makefile.am b/tools/Makefile.am
new file mode 100644
index 0000000..1c3861f
--- /dev/null
+++ b/tools/Makefile.am
@@ -0,0 +1,9 @@
+check:
+	$(srcdir)/keymap-check.sh; 
+
+clean-local :
+	rm -f *~
+
+EXTRA_DIST =						\
+	keymap-check.sh
+
diff --git a/tools/hal-setup-keymap-keys.txt b/tools/hal-setup-keymap-keys.txt
new file mode 100644
index 0000000..172f8dc
--- /dev/null
+++ b/tools/hal-setup-keymap-keys.txt
@@ -0,0 +1,348 @@
+RESERVED
+ESC
+1
+2
+3
+4
+5
+6
+7
+8
+9
+0
+MINUS
+EQUAL
+BACKSPACE
+TAB
+Q
+W
+E
+R
+T
+Y
+U
+I
+O
+P
+LEFTBRACE
+RIGHTBRACE
+ENTER
+LEFTCTRL
+A
+S
+D
+F
+G
+H
+J
+K
+L
+SEMICOLON
+APOSTROPHE
+GRAVE
+LEFTSHIFT
+BACKSLASH
+Z
+X
+C
+V
+B
+N
+M
+COMMA
+DOT
+SLASH
+RIGHTSHIFT
+KPASTERISK
+LEFTALT
+SPACE
+CAPSLOCK
+F1
+F2
+F3
+F4
+F5
+F6
+F7
+F8
+F9
+F10
+NUMLOCK
+SCROLLLOCK
+KP7
+KP8
+KP9
+KPMINUS
+KP4
+KP5
+KP6
+KPPLUS
+KP1
+KP2
+KP3
+KP0
+KPDOT
+ZENKAKUHANKAKU
+102ND
+F11
+F12
+RO
+KATAKANA
+HIRAGANA
+HENKAN
+KATAKANAHIRAGANA
+MUHENKAN
+KPJPCOMMA
+KPENTER
+RIGHTCTRL
+KPSLASH
+SYSRQ
+RIGHTALT
+LINEFEED
+HOME
+UP
+PAGEUP
+LEFT
+RIGHT
+END
+DOWN
+PAGEDOWN
+INSERT
+DELETE
+MACRO
+MUTE
+VOLUMEDOWN
+VOLUMEUP
+POWER
+KPEQUAL
+KPPLUSMINUS
+PAUSE
+KPCOMMA
+HANGEUL
+HANGUEL
+HANJA
+YEN
+LEFTMETA
+RIGHTMETA
+COMPOSE
+STOP
+AGAIN
+PROPS
+UNDO
+FRONT
+COPY
+OPEN
+PASTE
+FIND
+CUT
+HELP
+MENU
+CALC
+SETUP
+SLEEP
+WAKEUP
+FILE
+SENDFILE
+DELETEFILE
+XFER
+PROG1
+PROG2
+WWW
+MSDOS
+COFFEE
+SCREENLOCK
+DIRECTION
+CYCLEWINDOWS
+MAIL
+BOOKMARKS
+COMPUTER
+BACK
+FORWARD
+CLOSECD
+EJECTCD
+EJECTCLOSECD
+NEXTSONG
+PLAYPAUSE
+PREVIOUSSONG
+STOPCD
+RECORD
+REWIND
+PHONE
+ISO
+CONFIG
+HOMEPAGE
+REFRESH
+EXIT
+MOVE
+EDIT
+SCROLLUP
+SCROLLDOWN
+KPLEFTPAREN
+KPRIGHTPAREN
+NEW
+REDO
+F13
+F14
+F15
+F16
+F17
+F18
+F19
+F20
+F21
+F22
+F23
+F24
+PLAYCD
+PAUSECD
+PROG3
+PROG4
+SUSPEND
+CLOSE
+PLAY
+FASTFORWARD
+BASSBOOST
+PRINT
+HP
+CAMERA
+SOUND
+QUESTION
+EMAIL
+CHAT
+SEARCH
+CONNECT
+FINANCE
+SPORT
+SHOP
+ALTERASE
+CANCEL
+BRIGHTNESSDOWN
+BRIGHTNESSUP
+MEDIA
+SWITCHVIDEOMODE
+KBDILLUMTOGGLE
+KBDILLUMDOWN
+KBDILLUMUP
+SEND
+REPLY
+FORWARDMAIL
+SAVE
+DOCUMENTS
+BATTERY
+BLUETOOTH
+WLAN
+UNKNOWN
+OK
+SELECT
+GOTO
+CLEAR
+POWER2
+OPTION
+INFO
+TIME
+VENDOR
+ARCHIVE
+PROGRAM
+CHANNEL
+FAVORITES
+EPG
+PVR
+MHP
+LANGUAGE
+TITLE
+SUBTITLE
+ANGLE
+ZOOM
+MODE
+KEYBOARD
+SCREEN
+PC
+TV
+TV2
+VCR
+VCR2
+SAT
+SAT2
+CD
+TAPE
+RADIO
+TUNER
+PLAYER
+TEXT
+DVD
+AUX
+MP3
+AUDIO
+VIDEO
+DIRECTORY
+LIST
+MEMO
+CALENDAR
+RED
+GREEN
+YELLOW
+BLUE
+CHANNELUP
+CHANNELDOWN
+FIRST
+LAST
+AB
+NEXT
+RESTART
+SLOW
+SHUFFLE
+BREAK
+PREVIOUS
+DIGITS
+TEEN
+TWEN
+VIDEOPHONE
+GAMES
+ZOOMIN
+ZOOMOUT
+ZOOMRESET
+WORDPROCESSOR
+EDITOR
+SPREADSHEET
+GRAPHICSEDITOR
+PRESENTATION
+DATABASE
+NEWS
+VOICEMAIL
+ADDRESSBOOK
+MESSENGER
+DISPLAYTOGGLE
+DEL_EOL
+DEL_EOS
+INS_LINE
+DEL_LINE
+FN
+FN_ESC
+FN_F1
+FN_F2
+FN_F3
+FN_F4
+FN_F5
+FN_F6
+FN_F7
+FN_F8
+FN_F9
+FN_F10
+FN_F11
+FN_F12
+FN_1
+FN_2
+FN_D
+FN_E
+FN_F
+FN_S
+FN_B
+BRL_DOT1
+BRL_DOT2
+BRL_DOT3
+BRL_DOT4
+BRL_DOT5
+BRL_DOT6
+BRL_DOT7
+BRL_DOT8
+MIN_INTERESTING
diff --git a/tools/keymap-check.sh b/tools/keymap-check.sh
new file mode 100755
index 0000000..7254fbd
--- /dev/null
+++ b/tools/keymap-check.sh
@@ -0,0 +1,70 @@
+#!/bin/sh
+# Copyright Richard Hughes <richard at hughsie.com>
+
+# checks to see if the keycode is in the quirk keymap list
+isin ()
+{
+	got="0"
+	for query in `cat /tmp/quirk-keymap-list.txt`
+	do
+		if [ "$query" = "$1" ]; then
+			got="1"
+		fi
+	done
+	echo "$got"
+}
+
+# processes each line of the fdi file
+get_line ()
+{
+	cat "$1" | grep "input.keymap.data" | while read line
+	do
+		data=`echo "${line}" | cut -d":" -f2 | cut -d"<" -f1`
+		found=`isin $data`
+		if [ "$found" = "0" ]; then
+			echo "$data "
+		fi
+	done
+}
+
+# processes each line of the fdi file
+get_files ()
+{
+	find "../fdi/information/10freedesktop/" -name '30-keymap-*.fdi'  | while read file
+	do
+		status="ok"
+		ret=`get_line "${file}"`
+		if [ ! -z "$ret" ]; then
+			status="FAILED"
+			retval=1
+		fi
+		echo "Validate keycode in ${file} : ${status}"
+		if [ ! -z "$ret" ]; then
+			echo "$ret" | xargs
+		fi
+	done
+}
+
+retval=0
+
+# look for a hal install with gperf
+fqpath="../../hal/tools/hal-setup-keymap-keys.txt"
+if [ ! -e "$fqpath" ]; then
+	echo "HAL keymap source not found, falling back to local db"
+	# fall back to local version
+	fqpath="hal-setup-keymap-keys.txt"
+fi
+
+# make lowercase and save in /tmp
+cat "$fqpath" | tr '[A-Z]' '[a-z]' | sort > /tmp/quirk-keymap-list.txt
+
+echo "Validating keycodes..."
+result=`get_files`
+echo "$result"
+
+if [ ! -z "`echo $result | grep FAILED`" ]; then
+	retval=1
+fi
+
+exit $retval
+


More information about the hal-commit mailing list