debian/changelog | 6 ++ xkbcomp/ChangeLog | 12 +++++ xkbcomp/config.h.in | 3 + xkbcomp/configure | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++ xkbcomp/configure.ac | 1 xkbcomp/parseutils.c | 12 +++++ xkbcomp/xkbparse.c | 2 xkbcomp/xkbparse.y | 2 8 files changed, 141 insertions(+), 2 deletions(-)
New commits: commit 129c9b283867442ead2833b993dea2ed63b02d7f Author: Julien Cristau <jcris...@debian.org> Date: Fri Jul 9 19:53:33 2010 +0100 Pull an xkbcomp fix from git, thanks to Alexandre Isoard for the report. diff --git a/debian/changelog b/debian/changelog index 11526d3..d13ed63 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +x11-xkb-utils (7.5+4) unstable; urgency=low + + * Pull an xkbcomp fix from git, thanks to Alexandre Isoard for the report. + + -- Julien Cristau <jcris...@debian.org> Fri, 09 Jul 2010 19:53:29 +0100 + x11-xkb-utils (7.5+3) unstable; urgency=low * debian/rules: add get-tarballs target. diff --git a/xkbcomp/ChangeLog b/xkbcomp/ChangeLog index 7f1a062..15ccfbb 100644 --- a/xkbcomp/ChangeLog +++ b/xkbcomp/ChangeLog @@ -1,3 +1,15 @@ +commit a281386fa887e6bf4110840779aed46dd0ac89b6 +Author: Daniel Stone <dan...@fooishbar.org> +Date: Fri Jul 9 19:34:29 2010 +0100 + + Fix parsing of 0x1a2b3c4d-style symbols + + Raw keysyms were not getting parsed correctly, due to forgetting to add + the code to libX11, forgetting to add the backwards-compat code for old + libX11s, and then stuffing the lexing up anyway. Yeesh. + + Signed-off-by: Daniel Stone <dan...@fooishbar.org> + commit 0b04ecbb7a6afb223c91d3b15baab0bc48542281 Author: Daniel Stone <dan...@fooishbar.org> Date: Tue Jun 15 19:26:19 2010 +0100 diff --git a/xkbcomp/config.h.in b/xkbcomp/config.h.in index d60fda1..2b2b039 100644 --- a/xkbcomp/config.h.in +++ b/xkbcomp/config.h.in @@ -3,6 +3,9 @@ /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H +/* Define to 1 if you have the <limits.h> header file. */ +#undef HAVE_LIMITS_H + /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H diff --git a/xkbcomp/configure b/xkbcomp/configure index 5cd33af..377ef53 100755 --- a/xkbcomp/configure +++ b/xkbcomp/configure @@ -1782,6 +1782,99 @@ $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_func + +# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists, giving a warning if it cannot be compiled using +# the include files in INCLUDES and setting the cache variable VAR +# accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( cat <<\_ASBOX +## ---------------------------------------------------------------------- ## +## Report this to https://bugs.freedesktop.org/enter_bug.cgi?product=xorg ## +## ---------------------------------------------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_header_mongrel cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. @@ -5390,6 +5483,18 @@ _ACEOF fi done +for ac_header in limits.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "limits.h" "ac_cv_header_limits_h" "$ac_includes_default" +if test "x$ac_cv_header_limits_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIMITS_H 1 +_ACEOF + +fi + +done + # Checks for pkg-config packages diff --git a/xkbcomp/configure.ac b/xkbcomp/configure.ac index 3ad342c..6ed68c6 100644 --- a/xkbcomp/configure.ac +++ b/xkbcomp/configure.ac @@ -41,6 +41,7 @@ AC_PROG_INSTALL AC_CHECK_FUNCS([strdup strcasecmp]) +AC_CHECK_HEADERS([limits.h]) # Checks for pkg-config packages PKG_CHECK_MODULES(XKBCOMP, x11 xkbfile) diff --git a/xkbcomp/parseutils.c b/xkbcomp/parseutils.c index d59e3fb..3242965 100644 --- a/xkbcomp/parseutils.c +++ b/xkbcomp/parseutils.c @@ -30,6 +30,10 @@ #include <X11/keysym.h> #include <X11/extensions/XKBgeom.h> #include <X11/Xalloca.h> +#ifdef HAVE_LIMITS_H +#include <limits.h> +#endif +#include <stdlib.h> XkbFile *rtrnValue; @@ -623,6 +627,7 @@ int LookupKeysym(char *str, KeySym * sym_rtrn) { KeySym sym; + char *tmp; if ((!str) || (uStrCaseCmp(str, "any") == 0) || (uStrCaseCmp(str, "nosymbol") == 0)) @@ -642,6 +647,13 @@ LookupKeysym(char *str, KeySym * sym_rtrn) *sym_rtrn = sym; return 1; } + if (strlen(str) > 2 && str[0] == '0' && str[1] == 'x') { + sym = strtoul(str, &tmp, 16); + if (sym != ULONG_MAX && (!tmp || *tmp == '\0')) { + *sym_rtrn = sym; + return 1; + } + } return 0; } diff --git a/xkbcomp/xkbparse.c b/xkbcomp/xkbparse.c index 585ed66..e19307d 100644 --- a/xkbcomp/xkbparse.c +++ b/xkbcomp/xkbparse.c @@ -3193,7 +3193,7 @@ yyreduce: #line 727 "xkbparse.y" { if ((yyvsp[(1) - (1)].ival)<10) { (yyval.str)= malloc(2); (yyval.str)[0]= '0' + (yyvsp[(1) - (1)].ival); (yyval.str)[1]= '\0'; } - else { (yyval.str)= malloc(17); snprintf((yyval.str), 17, "%x", (yyvsp[(1) - (1)].ival)); } + else { (yyval.str)= malloc(19); snprintf((yyval.str), 19, "0x%x", (yyvsp[(1) - (1)].ival)); } } break; diff --git a/xkbcomp/xkbparse.y b/xkbcomp/xkbparse.y index 862acd8..d73b92a 100644 --- a/xkbcomp/xkbparse.y +++ b/xkbcomp/xkbparse.y @@ -726,7 +726,7 @@ KeySym : IDENT { $$= strdup(scanBuf); } | Integer { if ($1<10) { $$= malloc(2); $$[0]= '0' + $1; $$[1]= '\0'; } - else { $$= malloc(17); snprintf($$, 17, "%x", $1); } + else { $$= malloc(19); snprintf($$, 19, "0x%x", $1); } } ; -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1oxioa-0004zx...@alioth.debian.org