aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2013-09-30 09:00:43 +0200
committermarha <marha@users.sourceforge.net>2013-09-30 09:00:43 +0200
commit3aaead2ee2e0f925b33c1ccbde7fa3c0b119d064 (patch)
treeb5487ebc7c6056e0b248afc471edf40b90a3b0b4
parent1245204b2091d108a8688ff7f749f2c6cc830381 (diff)
parenta12cf779e828ec70da714832e1eaa730119fe10c (diff)
downloadvcxsrv-3aaead2ee2e0f925b33c1ccbde7fa3c0b119d064.tar.gz
vcxsrv-3aaead2ee2e0f925b33c1ccbde7fa3c0b119d064.tar.bz2
vcxsrv-3aaead2ee2e0f925b33c1ccbde7fa3c0b119d064.zip
Merge remote-tracking branch 'origin/released'
* origin/released: git update fontconfig mesa libXau pixman xkeyboard-config 30 Sep 2013
-rw-r--r--fontconfig/Makefile.am4
-rw-r--r--fontconfig/conf.d/Makefile.am2
-rw-r--r--fontconfig/configure.ac6
-rw-r--r--fontconfig/src/fcarch.c4
-rw-r--r--fontconfig/src/fccache.c3
-rw-r--r--fontconfig/src/fccompat.c4
-rw-r--r--fontconfig/src/fchash.c3
-rw-r--r--fontconfig/src/fcstat.c3
-rw-r--r--libXau/AuFileName.c6
-rw-r--r--mesalib/configure.ac43
-rw-r--r--mesalib/src/glsl/ast_to_hir.cpp2
-rw-r--r--mesalib/src/glsl/glsl_parser.yy8
-rw-r--r--mesalib/src/glsl/glsl_parser_extras.cpp8
-rwxr-xr-xmesalib/src/glsl/glsl_parser_extras.h10
-rw-r--r--mesalib/src/mapi/glapi/gen/AMD_performance_monitor.xml87
-rw-r--r--mesalib/src/mapi/glapi/gen/Makefile.am1
-rwxr-xr-xmesalib/src/mapi/glapi/gen/gl_API.xml2
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_genexec.py1
-rw-r--r--mesalib/src/mesa/Android.libmesa_dricore.mk3
-rw-r--r--mesalib/src/mesa/Makefile.sources1
-rw-r--r--mesalib/src/mesa/SConscript1
-rw-r--r--mesalib/src/mesa/drivers/dri/Android.mk3
-rw-r--r--mesalib/src/mesa/main/context.c2
-rw-r--r--mesalib/src/mesa/main/core.h3
-rw-r--r--mesalib/src/mesa/main/dd.h24
-rw-r--r--mesalib/src/mesa/main/extensions.c1
-rw-r--r--mesalib/src/mesa/main/mtypes.h88
-rw-r--r--mesalib/src/mesa/main/performance_monitor.c609
-rw-r--r--mesalib/src/mesa/main/performance_monitor.h85
-rw-r--r--mesalib/src/mesa/main/teximage.c6
-rw-r--r--mesalib/src/mesa/main/texobj.c9
-rw-r--r--mesalib/src/mesa/main/texobj.h3
-rw-r--r--mesalib/src/mesa/main/texparam.c2
-rw-r--r--mesalib/src/mesa/program/Android.mk3
-rw-r--r--mesalib/src/mesa/state_tracker/st_cb_eglimage.c2
-rw-r--r--mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp9
-rw-r--r--mesalib/src/mesa/state_tracker/st_manager.c2
-rw-r--r--pixman/pixman/pixman-bits-image.c767
-rw-r--r--pixman/pixman/pixman-fast-path.c808
-rw-r--r--pixman/pixman/pixman-ssse3.c41
-rw-r--r--pixman/test/blitters-test.c3
-rw-r--r--pixman/test/utils.c19
-rw-r--r--xorg-server/xkeyboard-config/AUTHORS7
-rw-r--r--xorg-server/xkeyboard-config/BUGS70
-rw-r--r--xorg-server/xkeyboard-config/CREDITS3
-rw-r--r--xorg-server/xkeyboard-config/symbols/am29
-rw-r--r--xorg-server/xkeyboard-config/symbols/ara21
-rw-r--r--xorg-server/xkeyboard-config/symbols/az8
-rw-r--r--xorg-server/xkeyboard-config/symbols/ca13
-rw-r--r--xorg-server/xkeyboard-config/symbols/cd.in23
-rw-r--r--xorg-server/xkeyboard-config/symbols/ch11
-rw-r--r--xorg-server/xkeyboard-config/symbols/cm2
-rw-r--r--xorg-server/xkeyboard-config/symbols/de7
-rw-r--r--xorg-server/xkeyboard-config/symbols/es11
-rw-r--r--xorg-server/xkeyboard-config/symbols/fr157
-rw-r--r--xorg-server/xkeyboard-config/symbols/fujitsu_vndr/us1
-rw-r--r--xorg-server/xkeyboard-config/symbols/gb4
-rw-r--r--xorg-server/xkeyboard-config/symbols/hp_vndr/us5
-rw-r--r--xorg-server/xkeyboard-config/symbols/in5
-rw-r--r--xorg-server/xkeyboard-config/symbols/it12
-rw-r--r--xorg-server/xkeyboard-config/symbols/jp60
-rw-r--r--xorg-server/xkeyboard-config/symbols/la43
-rw-r--r--xorg-server/xkeyboard-config/symbols/lv3
-rw-r--r--xorg-server/xkeyboard-config/symbols/macintosh_vndr/ch25
-rw-r--r--xorg-server/xkeyboard-config/symbols/macintosh_vndr/de16
-rw-r--r--xorg-server/xkeyboard-config/symbols/macintosh_vndr/dk30
-rw-r--r--xorg-server/xkeyboard-config/symbols/macintosh_vndr/fi6
-rw-r--r--xorg-server/xkeyboard-config/symbols/macintosh_vndr/fr2
-rw-r--r--xorg-server/xkeyboard-config/symbols/macintosh_vndr/gb2
-rw-r--r--xorg-server/xkeyboard-config/symbols/macintosh_vndr/it3
-rw-r--r--xorg-server/xkeyboard-config/symbols/macintosh_vndr/latam4
-rw-r--r--xorg-server/xkeyboard-config/symbols/macintosh_vndr/nl6
-rw-r--r--xorg-server/xkeyboard-config/symbols/macintosh_vndr/no20
-rw-r--r--xorg-server/xkeyboard-config/symbols/macintosh_vndr/pt7
-rw-r--r--xorg-server/xkeyboard-config/symbols/macintosh_vndr/se20
-rw-r--r--xorg-server/xkeyboard-config/symbols/macintosh_vndr/us11
-rw-r--r--xorg-server/xkeyboard-config/symbols/md10
-rw-r--r--xorg-server/xkeyboard-config/symbols/mm2
-rw-r--r--xorg-server/xkeyboard-config/symbols/mn2
-rw-r--r--xorg-server/xkeyboard-config/symbols/mv13
-rw-r--r--xorg-server/xkeyboard-config/symbols/nec_vndr/jp2
-rw-r--r--xorg-server/xkeyboard-config/symbols/nl7
-rw-r--r--xorg-server/xkeyboard-config/symbols/no33
-rw-r--r--xorg-server/xkeyboard-config/symbols/nokia_vndr/su-8w5
-rw-r--r--xorg-server/xkeyboard-config/symbols/pc41
-rw-r--r--xorg-server/xkeyboard-config/symbols/pk109
-rw-r--r--xorg-server/xkeyboard-config/symbols/pl13
-rw-r--r--xorg-server/xkeyboard-config/symbols/pt3
-rw-r--r--xorg-server/xkeyboard-config/symbols/ro10
-rw-r--r--xorg-server/xkeyboard-config/symbols/rs2
-rw-r--r--xorg-server/xkeyboard-config/symbols/se22
-rw-r--r--xorg-server/xkeyboard-config/symbols/sharp_vndr/sl-c3x003
-rw-r--r--xorg-server/xkeyboard-config/symbols/sharp_vndr/ws003sh3
-rw-r--r--xorg-server/xkeyboard-config/symbols/sharp_vndr/ws007sh3
-rw-r--r--xorg-server/xkeyboard-config/symbols/sharp_vndr/ws011sh3
-rw-r--r--xorg-server/xkeyboard-config/symbols/sharp_vndr/ws020sh3
-rw-r--r--xorg-server/xkeyboard-config/symbols/sony_vndr/us4
-rw-r--r--xorg-server/xkeyboard-config/symbols/sy11
-rw-r--r--xorg-server/xkeyboard-config/symbols/tw19
-rw-r--r--xorg-server/xkeyboard-config/symbols/ua3
-rw-r--r--xorg-server/xkeyboard-config/symbols/uz6
-rw-r--r--xorg-server/xkeyboard-config/symbols/vn3
-rw-r--r--xorg-server/xkeyboard-config/symbols/xfree68_vndr/amiga3
-rw-r--r--xorg-server/xkeyboard-config/symbols/xfree68_vndr/ataritt3
104 files changed, 2111 insertions, 1568 deletions
diff --git a/fontconfig/Makefile.am b/fontconfig/Makefile.am
index d310b4b62..2b949e439 100644
--- a/fontconfig/Makefile.am
+++ b/fontconfig/Makefile.am
@@ -90,12 +90,14 @@ $(srcdir)/ChangeLog:
.PHONY: ChangeLog
+FC_CONFIGDIR = $(subst $(BASECONFIGDIR)/,,$(CONFIGDIR))
+
fonts.conf: fonts.conf.in Makefile
sed \
-e 's,@FC_CACHEDIR\@,$(FC_CACHEDIR),g' \
-e 's,@FC_DEFAULT_FONTS\@,$(FC_DEFAULT_FONTS),g' \
-e 's,@FC_FONTPATH\@,$(FC_FONTPATH),g' \
- -e 's,@CONFIGDIR\@,$(CONFIGDIR),g' \
+ -e 's,@CONFIGDIR\@,$(FC_CONFIGDIR),g' \
-e 's,@PACKAGE\@,$(PACKAGE),g' \
-e 's,@VERSION\@,$(VERSION),g' \
$(srcdir)/$@.in > $@.tmp && \
diff --git a/fontconfig/conf.d/Makefile.am b/fontconfig/conf.d/Makefile.am
index e1fab5061..d61756b81 100644
--- a/fontconfig/conf.d/Makefile.am
+++ b/fontconfig/conf.d/Makefile.am
@@ -45,7 +45,7 @@ CONF_LINKS = \
EXTRA_DIST = $(template_DATA) $(DOC_SOURCES)
CLEANFILES = $(DOC_FILES)
-configdir=$(CONFIGDIR)
+configdir = $(CONFIGDIR)
config_DATA = $(DOC_FILES)
templatedir = $(TEMPLATEDIR)
diff --git a/fontconfig/configure.ac b/fontconfig/configure.ac
index 952e73766..4b631bd53 100644
--- a/fontconfig/configure.ac
+++ b/fontconfig/configure.ac
@@ -588,7 +588,7 @@ no|yes)
esac
case "$configdir" in
no|yes)
- configdir='${baseconfigdir}'/conf.d
+ configdir='${BASECONFIGDIR}'/conf.d
;;
*)
;;
@@ -605,13 +605,9 @@ TEMPLATEDIR=${templatedir}
BASECONFIGDIR=${baseconfigdir}
CONFIGDIR=${configdir}
XMLDIR=${xmldir}
-AC_SUBST(templatedir)
AC_SUBST(TEMPLATEDIR)
-AC_SUBST(baseconfigdir)
AC_SUBST(BASECONFIGDIR)
-AC_SUBST(configdir)
AC_SUBST(CONFIGDIR)
-AC_SUBST(xmldir)
AC_SUBST(XMLDIR)
diff --git a/fontconfig/src/fcarch.c b/fontconfig/src/fcarch.c
index 21516ff05..398f4bbfc 100644
--- a/fontconfig/src/fcarch.c
+++ b/fontconfig/src/fcarch.c
@@ -23,10 +23,6 @@
#include <stdio.h>
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#include "fcint.h"
#include "fcarch.h"
diff --git a/fontconfig/src/fccache.c b/fontconfig/src/fccache.c
index e02d49e8f..3568595ed 100644
--- a/fontconfig/src/fccache.c
+++ b/fontconfig/src/fccache.c
@@ -20,9 +20,6 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
#include "fcint.h"
#include "fcarch.h"
#include <stdio.h>
diff --git a/fontconfig/src/fccompat.c b/fontconfig/src/fccompat.c
index ce4af5d0d..b685fade3 100644
--- a/fontconfig/src/fccompat.c
+++ b/fontconfig/src/fccompat.c
@@ -25,10 +25,6 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "fcint.h"
#include <errno.h>
diff --git a/fontconfig/src/fchash.c b/fontconfig/src/fchash.c
index 7216beead..38300028c 100644
--- a/fontconfig/src/fchash.c
+++ b/fontconfig/src/fchash.c
@@ -23,9 +23,6 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
#include "fcint.h"
#include <stdio.h>
#include <string.h>
diff --git a/fontconfig/src/fcstat.c b/fontconfig/src/fcstat.c
index 0263a0082..1f37cacf8 100644
--- a/fontconfig/src/fcstat.c
+++ b/fontconfig/src/fcstat.c
@@ -20,9 +20,6 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
#include "fcint.h"
#include "fcarch.h"
#include <dirent.h>
diff --git a/libXau/AuFileName.c b/libXau/AuFileName.c
index 93335bc0f..e5ad5a372 100644
--- a/libXau/AuFileName.c
+++ b/libXau/AuFileName.c
@@ -69,12 +69,14 @@ XauFileName (void)
return NULL;
}
size = strlen (name) + strlen(&slashDotXauthority[1]) + 2;
- if (size > bsize) {
+ if ((size > bsize) || (buf == NULL)) {
if (buf)
free (buf);
buf = malloc (size);
- if (!buf)
+ if (!buf) {
+ bsize = 0;
return NULL;
+ }
if (!atexit_registered) {
atexit(free_filename_buffer);
diff --git a/mesalib/configure.ac b/mesalib/configure.ac
index 4c99603cc..1f0a646a6 100644
--- a/mesalib/configure.ac
+++ b/mesalib/configure.ac
@@ -1344,10 +1344,7 @@ AC_ARG_WITH([clang-libdir],
[CLANG_LIBDIR="$withval"],
[CLANG_LIBDIR=""])
-LIBCLC_INCLUDEDIR=`pkg-config --variable=includedir libclc`
-LIBCLC_LIBEXECDIR=`pkg-config --variable=libexecdir libclc`
-AC_SUBST([LIBCLC_INCLUDEDIR])
-AC_SUBST([LIBCLC_LIBEXECDIR])
+PKG_CHECK_EXISTS([libclc], [have_libclc=yes], [have_libclc=no])
if test "x$enable_opencl" = xyes; then
if test "x$with_gallium_drivers" = x; then
@@ -1358,8 +1355,16 @@ if test "x$enable_opencl" = xyes; then
AC_MSG_ERROR([gcc >= 4.6 is required to build clover])
fi
- if test "x$LIBCLC_INCLUDEDIR" == x || test "x$LIBCLC_LIBEXECDIR" == x; then
- AC_MSG_ERROR([pkg-config cannot use libclc.pc which is required to build clover])
+ if test "x$have_libclc" = xno; then
+ AC_MSG_ERROR([pkg-config cannot find libclc.pc which is required to build clover.
+ Make sure the directory containing libclc.pc is specified in your
+ PKG_CONFIG_PATH environment variable.
+ By default libclc.pc is installed to /usr/local/share/pkgconfig/])
+ else
+ LIBCLC_INCLUDEDIR=`pkg-config --variable=includedir libclc`
+ LIBCLC_LIBEXECDIR=`pkg-config --variable=libexecdir libclc`
+ AC_SUBST([LIBCLC_INCLUDEDIR])
+ AC_SUBST([LIBCLC_LIBEXECDIR])
fi
GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS clover"
@@ -1767,7 +1772,7 @@ if test "x$with_gallium_drivers" != x; then
PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
gallium_require_llvm "Gallium R300"
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
- gallium_check_st "radeon/drm" "dri-r300" "" "" "xvmc-r300" "vdpau-r300"
+ gallium_check_st "radeon/drm" "r300/dri" "" "" "r300/xvmc" "r300/vdpau"
;;
xr600)
HAVE_GALLIUM_R600=yes
@@ -1785,7 +1790,7 @@ if test "x$with_gallium_drivers" != x; then
if test "x$enable_opencl" = xyes; then
LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
fi
- gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600"
+ gallium_check_st "radeon/drm" "r600/dri" "r600/xorg" "" "r600/xvmc" "r600/vdpau"
;;
xradeonsi)
HAVE_GALLIUM_RADEONSI=yes
@@ -1793,7 +1798,7 @@ if test "x$with_gallium_drivers" != x; then
gallium_require_drm_loader
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS radeonsi"
radeon_llvm_check
- gallium_check_st "radeon/drm" "dri-radeonsi" "xorg-radeonsi" "" "" "vdpau-radeonsi" ""
+ gallium_check_st "radeon/drm" "radeonsi/dri" "radeonsi/xorg" "" "" "radeonsi/vdpau" ""
;;
xnouveau)
HAVE_GALLIUM_NOUVEAU=yes
@@ -2032,9 +2037,6 @@ AC_CONFIG_FILES([Makefile
src/gallium/targets/dri-i915/Makefile
src/gallium/targets/dri-ilo/Makefile
src/gallium/targets/dri-nouveau/Makefile
- src/gallium/targets/dri-r300/Makefile
- src/gallium/targets/dri-r600/Makefile
- src/gallium/targets/dri-radeonsi/Makefile
src/gallium/targets/dri-swrast/Makefile
src/gallium/targets/dri-vmwgfx/Makefile
src/gallium/targets/egl-static/Makefile
@@ -2043,21 +2045,24 @@ AC_CONFIG_FILES([Makefile
src/gallium/targets/osmesa/Makefile
src/gallium/targets/osmesa/osmesa.pc
src/gallium/targets/pipe-loader/Makefile
+ src/gallium/targets/radeonsi/dri/Makefile
+ src/gallium/targets/radeonsi/vdpau/Makefile
+ src/gallium/targets/radeonsi/xorg/Makefile
+ src/gallium/targets/r300/dri/Makefile
+ src/gallium/targets/r300/vdpau/Makefile
+ src/gallium/targets/r300/xvmc/Makefile
+ src/gallium/targets/r600/dri/Makefile
+ src/gallium/targets/r600/vdpau/Makefile
+ src/gallium/targets/r600/xorg/Makefile
+ src/gallium/targets/r600/xvmc/Makefile
src/gallium/targets/libgl-xlib/Makefile
src/gallium/targets/vdpau-nouveau/Makefile
- src/gallium/targets/vdpau-r300/Makefile
- src/gallium/targets/vdpau-r600/Makefile
- src/gallium/targets/vdpau-radeonsi/Makefile
src/gallium/targets/vdpau-softpipe/Makefile
src/gallium/targets/xa-vmwgfx/Makefile
src/gallium/targets/xa-vmwgfx/xatracker.pc
src/gallium/targets/xorg-i915/Makefile
src/gallium/targets/xorg-nouveau/Makefile
- src/gallium/targets/xorg-r600/Makefile
- src/gallium/targets/xorg-radeonsi/Makefile
src/gallium/targets/xvmc-nouveau/Makefile
- src/gallium/targets/xvmc-r300/Makefile
- src/gallium/targets/xvmc-r600/Makefile
src/gallium/targets/xvmc-softpipe/Makefile
src/gallium/tests/trivial/Makefile
src/gallium/tests/unit/Makefile
diff --git a/mesalib/src/glsl/ast_to_hir.cpp b/mesalib/src/glsl/ast_to_hir.cpp
index 2316cf8e5..0859d9e00 100644
--- a/mesalib/src/glsl/ast_to_hir.cpp
+++ b/mesalib/src/glsl/ast_to_hir.cpp
@@ -2842,7 +2842,7 @@ ast_declarator_list::hir(exec_list *instructions,
* any extension that adds the 'layout' keyword.
*/
if (!state->is_version(130, 300)
- && !state->ARB_explicit_attrib_location_enable
+ && !state->has_explicit_attrib_location()
&& !state->ARB_fragment_coord_conventions_enable) {
if (this->type->qualifier.flags.q.out) {
_mesa_glsl_error(& loc, state,
diff --git a/mesalib/src/glsl/glsl_parser.yy b/mesalib/src/glsl/glsl_parser.yy
index fa6e2053a..912931a47 100644
--- a/mesalib/src/glsl/glsl_parser.yy
+++ b/mesalib/src/glsl/glsl_parser.yy
@@ -1200,7 +1200,7 @@ layout_qualifier_id:
}
/* See also interface_block_layout_qualifier. */
- if (!$$.flags.i && state->ARB_uniform_buffer_object_enable) {
+ if (!$$.flags.i && state->has_uniform_buffer_objects()) {
if (strcmp($1, "std140") == 0) {
$$.flags.q.std140 = 1;
} else if (strcmp($1, "shared") == 0) {
@@ -1262,7 +1262,7 @@ layout_qualifier_id:
{
memset(& $$, 0, sizeof($$));
- if (state->ARB_explicit_attrib_location_enable) {
+ if (state->has_explicit_attrib_location()) {
if (strcmp("location", $1) == 0) {
$$.flags.q.explicit_location = 1;
@@ -1328,7 +1328,7 @@ layout_qualifier_id:
{
$$ = $1;
/* Layout qualifiers for ARB_uniform_buffer_object. */
- if ($$.flags.q.uniform && !state->ARB_uniform_buffer_object_enable) {
+ if ($$.flags.q.uniform && !state->has_uniform_buffer_objects()) {
_mesa_glsl_error(& @1, state,
"#version 140 / GL_ARB_uniform_buffer_object "
"layout qualifier `%s' is used", $1);
@@ -2138,7 +2138,7 @@ basic_interface_block:
block->declarations.push_degenerate_list_at_head(& $4->link);
if ($1.flags.q.uniform) {
- if (!state->ARB_uniform_buffer_object_enable) {
+ if (!state->has_uniform_buffer_objects()) {
_mesa_glsl_error(& @1, state,
"#version 140 / GL_ARB_uniform_buffer_object "
"required for defining uniform blocks");
diff --git a/mesalib/src/glsl/glsl_parser_extras.cpp b/mesalib/src/glsl/glsl_parser_extras.cpp
index cac5a18e4..e9922fc14 100644
--- a/mesalib/src/glsl/glsl_parser_extras.cpp
+++ b/mesalib/src/glsl/glsl_parser_extras.cpp
@@ -299,14 +299,6 @@ _mesa_glsl_parse_state::process_version_directive(YYLTYPE *locp, int version,
break;
}
}
-
- if (this->language_version >= 140) {
- this->ARB_uniform_buffer_object_enable = true;
- }
-
- if (this->language_version == 300 && this->es_shader) {
- this->ARB_explicit_attrib_location_enable = true;
- }
}
extern "C" {
diff --git a/mesalib/src/glsl/glsl_parser_extras.h b/mesalib/src/glsl/glsl_parser_extras.h
index 597e5427b..3a228fde7 100755
--- a/mesalib/src/glsl/glsl_parser_extras.h
+++ b/mesalib/src/glsl/glsl_parser_extras.h
@@ -125,6 +125,16 @@ struct _mesa_glsl_parse_state {
return check_version(130, 300, locp, "bit-wise operations are forbidden");
}
+ bool has_explicit_attrib_location() const
+ {
+ return ARB_explicit_attrib_location_enable || is_version(330, 300);
+ }
+
+ bool has_uniform_buffer_objects() const
+ {
+ return ARB_uniform_buffer_object_enable || is_version(140, 300);
+ }
+
void process_version_directive(YYLTYPE *locp, int version,
const char *ident);
diff --git a/mesalib/src/mapi/glapi/gen/AMD_performance_monitor.xml b/mesalib/src/mapi/glapi/gen/AMD_performance_monitor.xml
new file mode 100644
index 000000000..b96b263db
--- /dev/null
+++ b/mesalib/src/mapi/glapi/gen/AMD_performance_monitor.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0"?>
+<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
+
+<OpenGLAPI>
+
+<category name="GL_AMD_performance_monitor" number="360">
+
+ <function name="GetPerfMonitorGroupsAMD" offset="assign">
+ <param name="numGroups" type="GLint *"/>
+ <param name="groupsSize" type="GLsizei"/>
+ <param name="groups" type="GLuint *"/>
+ </function>
+
+ <function name="GetPerfMonitorCountersAMD" offset="assign">
+ <param name="group" type="GLuint"/>
+ <param name="numCounters" type="GLint *"/>
+ <param name="maxActiveCounters" type="GLint *"/>
+ <param name="countersSize" type="GLsizei"/>
+ <param name="counters" type="GLuint *"/>
+ </function>
+
+ <function name="GetPerfMonitorGroupStringAMD" offset="assign">
+ <param name="group" type="GLuint"/>
+ <param name="bufSize" type="GLsizei"/>
+ <param name="length" type="GLsizei *"/>
+ <param name="groupString" type="GLchar *"/>
+ </function>
+
+ <function name="GetPerfMonitorCounterStringAMD" offset="assign">
+ <param name="group" type="GLuint"/>
+ <param name="counter" type="GLuint"/>
+ <param name="bufSize" type="GLsizei"/>
+ <param name="length" type="GLsizei *"/>
+ <param name="counterString" type="GLchar *"/>
+ </function>
+
+ <function name="GetPerfMonitorCounterInfoAMD" offset="assign">
+ <param name="group" type="GLuint"/>
+ <param name="counter" type="GLuint"/>
+ <param name="pname" type="GLenum"/>
+ <param name="data" type="GLvoid *"/>
+ </function>
+
+ <function name="GenPerfMonitorsAMD" offset="assign">
+ <param name="n" type="GLsizei"/>
+ <param name="monitors" type="GLuint *"/>
+ </function>
+
+ <function name="DeletePerfMonitorsAMD" offset="assign">
+ <param name="n" type="GLsizei"/>
+ <param name="monitors" type="GLuint *"/>
+ </function>
+
+ <function name="SelectPerfMonitorCountersAMD" offset="assign">
+ <param name="monitor" type="GLuint"/>
+ <param name="enable" type="GLboolean"/>
+ <param name="group" type="GLuint"/>
+ <param name="numCounters" type="GLint"/>
+ <param name="counterList" type="GLuint *"/>
+ </function>
+
+ <function name="BeginPerfMonitorAMD" offset="assign">
+ <param name="monitor" type="GLuint"/>
+ </function>
+
+ <function name="EndPerfMonitorAMD" offset="assign">
+ <param name="monitor" type="GLuint"/>
+ </function>
+
+ <function name="GetPerfMonitorCounterDataAMD" offset="assign">
+ <param name="monitor" type="GLuint"/>
+ <param name="pname" type="GLenum"/>
+ <param name="dataSize" type="GLsizei"/>
+ <param name="data" type="GLuint *"/>
+ <param name="bytesWritten" type="GLint *"/>
+ </function>
+
+ <enum name="COUNTER_TYPE_AMD" value="0x8BC0"/>
+ <enum name="COUNTER_RANGE_AMD" value="0x8BC1"/>
+ <enum name="UNSIGNED_INT64_AMD" value="0x8BC2"/>
+ <enum name="PECENTAGE_AMD" value="0x8BC3"/>
+ <enum name="PERFMON_RESULT_AVAILABLE_AMD" value="0x8BC4"/>
+ <enum name="PERFMON_RESULT_SIZE_AMD" value="0x8BC5"/>
+ <enum name="PERFMON_RESULT_AMD" value="0x8BC6"/>
+</category>
+
+</OpenGLAPI>
diff --git a/mesalib/src/mapi/glapi/gen/Makefile.am b/mesalib/src/mapi/glapi/gen/Makefile.am
index d4fbd3511..9b9b99505 100644
--- a/mesalib/src/mapi/glapi/gen/Makefile.am
+++ b/mesalib/src/mapi/glapi/gen/Makefile.am
@@ -115,6 +115,7 @@ API_XML = \
ARB_texture_storage.xml \
ARB_vertex_array_object.xml \
AMD_draw_buffers_blend.xml \
+ AMD_performance_monitor.xml \
ARB_vertex_type_2_10_10_10_rev.xml \
APPLE_object_purgeable.xml \
APPLE_vertex_array_object.xml \
diff --git a/mesalib/src/mapi/glapi/gen/gl_API.xml b/mesalib/src/mapi/glapi/gen/gl_API.xml
index dad30dc16..c65dd3cef 100755
--- a/mesalib/src/mapi/glapi/gen/gl_API.xml
+++ b/mesalib/src/mapi/glapi/gen/gl_API.xml
@@ -12890,6 +12890,8 @@
<enum name="FRAMEBUFFER_SRGB_CAPABLE_EXT" value="0x8DBA"/>
</category>
+<xi:include href="AMD_performance_monitor.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
<category name="GL_APPLE_texture_range" number="367">
<enum name="TEXTURE_STORAGE_HINT_APPLE" count="1" value="0x85BC">
<size name="TexParameteriv" mode="get"/>
diff --git a/mesalib/src/mapi/glapi/gen/gl_genexec.py b/mesalib/src/mapi/glapi/gen/gl_genexec.py
index be82f9089..a074c2348 100644
--- a/mesalib/src/mapi/glapi/gen/gl_genexec.py
+++ b/mesalib/src/mapi/glapi/gen/gl_genexec.py
@@ -82,6 +82,7 @@ header = """/**
#include "main/matrix.h"
#include "main/multisample.h"
#include "main/objectlabel.h"
+#include "main/performance_monitor.h"
#include "main/pixel.h"
#include "main/pixelstore.h"
#include "main/points.h"
diff --git a/mesalib/src/mesa/Android.libmesa_dricore.mk b/mesalib/src/mesa/Android.libmesa_dricore.mk
index 00c06943c..3679b50ba 100644
--- a/mesalib/src/mesa/Android.libmesa_dricore.mk
+++ b/mesalib/src/mesa/Android.libmesa_dricore.mk
@@ -49,9 +49,6 @@ ifeq ($(TARGET_ARCH),x86)
endif # x86
endif # MESA_ENABLE_ASM
-LOCAL_CFLAGS := \
- $(patsubst %,-DFEATURE_%=1,$(MESA_ENABLED_APIS))
-
LOCAL_C_INCLUDES := \
$(call intermediates-dir-for STATIC_LIBRARIES,libmesa_program,,) \
$(MESA_TOP)/src/mapi \
diff --git a/mesalib/src/mesa/Makefile.sources b/mesalib/src/mesa/Makefile.sources
index 122ea8e3a..ff242b4ab 100644
--- a/mesalib/src/mesa/Makefile.sources
+++ b/mesalib/src/mesa/Makefile.sources
@@ -65,6 +65,7 @@ MAIN_FILES = \
$(SRCDIR)main/objectlabel.c \
$(SRCDIR)main/pack.c \
$(SRCDIR)main/pbo.c \
+ $(SRCDIR)main/performance_monitor.c \
$(SRCDIR)main/pixel.c \
$(SRCDIR)main/pixelstore.c \
$(SRCDIR)main/pixeltransfer.c \
diff --git a/mesalib/src/mesa/SConscript b/mesalib/src/mesa/SConscript
index 2cdb79c46..9b7712faf 100644
--- a/mesalib/src/mesa/SConscript
+++ b/mesalib/src/mesa/SConscript
@@ -97,6 +97,7 @@ main_sources = [
'main/objectlabel.c',
'main/pack.c',
'main/pbo.c',
+ 'main/performance_monitor.c',
'main/pixel.c',
'main/pixelstore.c',
'main/pixeltransfer.c',
diff --git a/mesalib/src/mesa/drivers/dri/Android.mk b/mesalib/src/mesa/drivers/dri/Android.mk
index 88629531a..9adf0b386 100644
--- a/mesalib/src/mesa/drivers/dri/Android.mk
+++ b/mesalib/src/mesa/drivers/dri/Android.mk
@@ -32,9 +32,6 @@ MESA_DRI_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/dri
MESA_DRI_MODULE_UNSTRIPPED_PATH := $(TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED)/dri
MESA_DRI_CFLAGS := \
- -DFEATURE_GL=1 \
- -DFEATURE_ES1=1 \
- -DFEATURE_ES2=1 \
-DHAVE_ANDROID_PLATFORM
MESA_DRI_C_INCLUDES := \
diff --git a/mesalib/src/mesa/main/context.c b/mesalib/src/mesa/main/context.c
index 58f42cc5b..310518c92 100644
--- a/mesalib/src/mesa/main/context.c
+++ b/mesalib/src/mesa/main/context.c
@@ -105,6 +105,7 @@
#include "macros.h"
#include "matrix.h"
#include "multisample.h"
+#include "performance_monitor.h"
#include "pixel.h"
#include "pixelstore.h"
#include "points.h"
@@ -764,6 +765,7 @@ init_attrib_groups(struct gl_context *ctx)
_mesa_init_lighting( ctx );
_mesa_init_matrix( ctx );
_mesa_init_multisample( ctx );
+ _mesa_init_performance_monitors( ctx );
_mesa_init_pixel( ctx );
_mesa_init_pixelstore( ctx );
_mesa_init_point( ctx );
diff --git a/mesalib/src/mesa/main/core.h b/mesalib/src/mesa/main/core.h
index 0ba0db8a3..73ed01c25 100644
--- a/mesalib/src/mesa/main/core.h
+++ b/mesalib/src/mesa/main/core.h
@@ -31,8 +31,7 @@
* The public header of core mesa.
*
* This file is the (only) public header of core mesa. It is supposed to be
- * used by GLX, WGL, and GLSL. It is important that headers directly or
- * indirectly included here do not perform feature tests (#if FEATURE_xxx).
+ * used by GLX, WGL, and GLSL.
*/
diff --git a/mesalib/src/mesa/main/dd.h b/mesalib/src/mesa/main/dd.h
index c1d9b2c95..0806e41a0 100644
--- a/mesalib/src/mesa/main/dd.h
+++ b/mesalib/src/mesa/main/dd.h
@@ -645,6 +645,30 @@ struct dd_function_table {
void (*WaitQuery)(struct gl_context *ctx, struct gl_query_object *q);
/*@}*/
+ /**
+ * \name Performance monitors
+ */
+ /*@{*/
+ struct gl_perf_monitor_object * (*NewPerfMonitor)(struct gl_context *ctx);
+ void (*DeletePerfMonitor)(struct gl_context *ctx,
+ struct gl_perf_monitor_object *m);
+ GLboolean (*BeginPerfMonitor)(struct gl_context *ctx,
+ struct gl_perf_monitor_object *m);
+
+ /** Stop an active performance monitor, discarding results. */
+ void (*ResetPerfMonitor)(struct gl_context *ctx,
+ struct gl_perf_monitor_object *m);
+ void (*EndPerfMonitor)(struct gl_context *ctx,
+ struct gl_perf_monitor_object *m);
+ GLboolean (*IsPerfMonitorResultAvailable)(struct gl_context *ctx,
+ struct gl_perf_monitor_object *m);
+ void (*GetPerfMonitorResult)(struct gl_context *ctx,
+ struct gl_perf_monitor_object *m,
+ GLsizei dataSize,
+ GLuint *data,
+ GLint *bytesWritten);
+ /*@}*/
+
/**
* \name Vertex Array objects
diff --git a/mesalib/src/mesa/main/extensions.c b/mesalib/src/mesa/main/extensions.c
index 34615e3e0..eb9362059 100644
--- a/mesalib/src/mesa/main/extensions.c
+++ b/mesalib/src/mesa/main/extensions.c
@@ -291,6 +291,7 @@ static const struct extension extension_table[] = {
{ "GL_3DFX_texture_compression_FXT1", o(TDFX_texture_compression_FXT1), GL, 1999 },
{ "GL_AMD_conservative_depth", o(ARB_conservative_depth), GL, 2009 },
{ "GL_AMD_draw_buffers_blend", o(ARB_draw_buffers_blend), GL, 2009 },
+ { "GL_AMD_performance_monitor", o(AMD_performance_monitor), GL, 2007 },
{ "GL_AMD_seamless_cubemap_per_texture", o(AMD_seamless_cubemap_per_texture), GL, 2009 },
{ "GL_AMD_shader_stencil_export", o(ARB_shader_stencil_export), GL, 2009 },
{ "GL_AMD_vertex_shader_layer", o(AMD_vertex_shader_layer), GL, 2012 },
diff --git a/mesalib/src/mesa/main/mtypes.h b/mesalib/src/mesa/main/mtypes.h
index 448946c03..d82672dc9 100644
--- a/mesalib/src/mesa/main/mtypes.h
+++ b/mesalib/src/mesa/main/mtypes.h
@@ -34,6 +34,8 @@
#define MTYPES_H
+#include <stdint.h> /* uint32_t */
+
#include "main/glheader.h"
#include "main/config.h"
#include "glapi/glapi.h"
@@ -1778,6 +1780,89 @@ struct gl_transform_feedback_state
/**
+ * A "performance monitor" as described in AMD_performance_monitor.
+ */
+struct gl_perf_monitor_object
+{
+ GLboolean Active;
+
+ /**
+ * A list of groups with currently active counters.
+ *
+ * ActiveGroups[g] == n if there are n counters active from group 'g'.
+ */
+ unsigned *ActiveGroups;
+
+ /**
+ * An array of bitsets, subscripted by group ID, then indexed by counter ID.
+ *
+ * Checking whether counter 'c' in group 'g' is active can be done via:
+ *
+ * BITSET_TEST(ActiveCounters[g], c)
+ */
+ GLuint **ActiveCounters;
+};
+
+
+union gl_perf_monitor_counter_value
+{
+ float f;
+ uint64_t u64;
+ uint32_t u32;
+};
+
+
+struct gl_perf_monitor_counter
+{
+ /** Human readable name for the counter. */
+ const char *Name;
+
+ /**
+ * Data type of the counter. Valid values are FLOAT, UNSIGNED_INT,
+ * UNSIGNED_INT64_AMD, and PERCENTAGE_AMD.
+ */
+ GLenum Type;
+
+ /** Minimum counter value. */
+ union gl_perf_monitor_counter_value Minimum;
+
+ /** Maximum counter value. */
+ union gl_perf_monitor_counter_value Maximum;
+};
+
+
+struct gl_perf_monitor_group
+{
+ /** Human readable name for the group. */
+ const char *Name;
+
+ /**
+ * Maximum number of counters in this group which can be active at the
+ * same time.
+ */
+ GLuint MaxActiveCounters;
+
+ /** Array of counters within this group. */
+ const struct gl_perf_monitor_counter *Counters;
+ GLuint NumCounters;
+};
+
+
+/**
+ * Context state for AMD_performance_monitor.
+ */
+struct gl_perf_monitor_state
+{
+ /** Array of performance monitor groups (indexed by group ID) */
+ const struct gl_perf_monitor_group *Groups;
+ GLuint NumGroups;
+
+ /** The table of all performance monitors. */
+ struct _mesa_HashTable *Monitors;
+};
+
+
+/**
* Names of the various vertex/fragment program register files, etc.
*
* NOTE: first four tokens must fit into 2 bits (see t_vb_arbprogram.c)
@@ -3176,6 +3261,7 @@ struct gl_extensions
GLboolean EXT_vertex_array_bgra;
GLboolean OES_standard_derivatives;
/* vendor extensions */
+ GLboolean AMD_performance_monitor;
GLboolean AMD_seamless_cubemap_per_texture;
GLboolean AMD_vertex_shader_layer;
GLboolean APPLE_object_purgeable;
@@ -3639,6 +3725,8 @@ struct gl_context
struct gl_transform_feedback_state TransformFeedback;
+ struct gl_perf_monitor_state PerfMonitor;
+
struct gl_buffer_object *CopyReadBuffer; /**< GL_ARB_copy_buffer */
struct gl_buffer_object *CopyWriteBuffer; /**< GL_ARB_copy_buffer */
diff --git a/mesalib/src/mesa/main/performance_monitor.c b/mesalib/src/mesa/main/performance_monitor.c
new file mode 100644
index 000000000..8dfa8261e
--- /dev/null
+++ b/mesalib/src/mesa/main/performance_monitor.c
@@ -0,0 +1,609 @@
+/*
+ * Copyright © 2012 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+/**
+ * \file performance_monitor.c
+ * Core Mesa support for the AMD_performance_monitor extension.
+ *
+ * In order to implement this extension, start by defining two enums:
+ * one for Groups, and one for Counters. These will be used as indexes into
+ * arrays, so they should start at 0 and increment from there.
+ *
+ * Counter IDs need to be globally unique. That is, you can't have counter 7
+ * in group A and counter 7 in group B. A global enum of all available
+ * counters is a convenient way to guarantee this.
+ */
+
+#include <stdbool.h>
+#include "glheader.h"
+#include "context.h"
+#include "enums.h"
+#include "hash.h"
+#include "macros.h"
+#include "mtypes.h"
+#include "performance_monitor.h"
+#include "bitset.h"
+#include "ralloc.h"
+
+void
+_mesa_init_performance_monitors(struct gl_context *ctx)
+{
+ ctx->PerfMonitor.Monitors = _mesa_NewHashTable();
+ ctx->PerfMonitor.NumGroups = 0;
+ ctx->PerfMonitor.Groups = NULL;
+}
+
+static struct gl_perf_monitor_object *
+new_performance_monitor(struct gl_context *ctx, GLuint index)
+{
+ unsigned i;
+ struct gl_perf_monitor_object *m = ctx->Driver.NewPerfMonitor(ctx);
+
+ if (m == NULL)
+ return NULL;
+
+ m->ActiveGroups =
+ rzalloc_array(NULL, unsigned, ctx->PerfMonitor.NumGroups);
+
+ m->ActiveCounters =
+ ralloc_array(NULL, BITSET_WORD *, ctx->PerfMonitor.NumGroups);
+
+ if (m->ActiveGroups == NULL || m->ActiveCounters == NULL)
+ goto fail;
+
+ for (i = 0; i < ctx->PerfMonitor.NumGroups; i++) {
+ const struct gl_perf_monitor_group *g = &ctx->PerfMonitor.Groups[i];
+
+ m->ActiveCounters[i] = rzalloc_array(m->ActiveCounters, BITSET_WORD,
+ BITSET_WORDS(g->NumCounters));
+ if (m->ActiveCounters[i] == NULL)
+ goto fail;
+ }
+
+ return m;
+
+fail:
+ ralloc_free(m->ActiveGroups);
+ ralloc_free(m->ActiveCounters);
+ ctx->Driver.DeletePerfMonitor(ctx, m);
+ return NULL;
+}
+
+static inline struct gl_perf_monitor_object *
+lookup_monitor(struct gl_context *ctx, GLuint id)
+{
+ return (struct gl_perf_monitor_object *)
+ _mesa_HashLookup(ctx->PerfMonitor.Monitors, id);
+}
+
+static inline const struct gl_perf_monitor_group *
+get_group(const struct gl_context *ctx, GLuint id)
+{
+ if (id >= ctx->PerfMonitor.NumGroups)
+ return NULL;
+
+ return &ctx->PerfMonitor.Groups[id];
+}
+
+static inline const struct gl_perf_monitor_counter *
+get_counter(const struct gl_perf_monitor_group *group_obj, GLuint id)
+{
+ if (id >= group_obj->NumCounters)
+ return NULL;
+
+ return &group_obj->Counters[id];
+}
+
+/*****************************************************************************/
+
+void GLAPIENTRY
+_mesa_GetPerfMonitorGroupsAMD(GLint *numGroups, GLsizei groupsSize,
+ GLuint *groups)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ if (numGroups != NULL)
+ *numGroups = ctx->PerfMonitor.NumGroups;
+
+ if (groupsSize > 0 && groups != NULL) {
+ unsigned i;
+ unsigned n = MIN2(groupsSize, ctx->PerfMonitor.NumGroups);
+
+ /* We just use the index in the Groups array as the ID. */
+ for (i = 0; i < n; i++)
+ groups[i] = i;
+ }
+}
+
+void GLAPIENTRY
+_mesa_GetPerfMonitorCountersAMD(GLuint group, GLint *numCounters,
+ GLint *maxActiveCounters,
+ GLsizei countersSize, GLuint *counters)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ const struct gl_perf_monitor_group *group_obj = get_group(ctx, group);
+ if (group_obj == NULL) {
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glGetPerfMonitorCountersAMD(invalid group)");
+ return;
+ }
+
+ if (maxActiveCounters != NULL)
+ *maxActiveCounters = group_obj->MaxActiveCounters;
+
+ if (numCounters != NULL)
+ *numCounters = group_obj->NumCounters;
+
+ if (counters != NULL) {
+ unsigned i;
+ unsigned n = MIN2(group_obj->NumCounters, countersSize);
+ for (i = 0; i < n; i++) {
+ /* We just use the index in the Counters array as the ID. */
+ counters[i] = i;
+ }
+ }
+}
+
+void GLAPIENTRY
+_mesa_GetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize,
+ GLsizei *length, GLchar *groupString)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ const struct gl_perf_monitor_group *group_obj = get_group(ctx, group);
+
+ if (group_obj == NULL) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGetPerfMonitorGroupStringAMD");
+ return;
+ }
+
+ if (bufSize == 0) {
+ /* Return the number of characters that would be required to hold the
+ * group string, excluding the null terminator.
+ */
+ if (length != NULL)
+ *length = strlen(group_obj->Name);
+ } else {
+ if (length != NULL)
+ *length = MIN2(strlen(group_obj->Name), bufSize);
+ if (groupString != NULL)
+ strncpy(groupString, group_obj->Name, bufSize);
+ }
+}
+
+void GLAPIENTRY
+_mesa_GetPerfMonitorCounterStringAMD(GLuint group, GLuint counter,
+ GLsizei bufSize, GLsizei *length,
+ GLchar *counterString)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ const struct gl_perf_monitor_group *group_obj;
+ const struct gl_perf_monitor_counter *counter_obj;
+
+ group_obj = get_group(ctx, group);
+
+ if (group_obj == NULL) {
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glGetPerfMonitorCounterStringAMD(invalid group)");
+ return;
+ }
+
+ counter_obj = get_counter(group_obj, counter);
+
+ if (counter_obj == NULL) {
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glGetPerfMonitorCounterStringAMD(invalid counter)");
+ return;
+ }
+
+ if (bufSize == 0) {
+ /* Return the number of characters that would be required to hold the
+ * counter string, excluding the null terminator.
+ */
+ if (length != NULL)
+ *length = strlen(counter_obj->Name);
+ } else {
+ if (length != NULL)
+ *length = MIN2(strlen(counter_obj->Name), bufSize);
+ if (counterString != NULL)
+ strncpy(counterString, counter_obj->Name, bufSize);
+ }
+}
+
+void GLAPIENTRY
+_mesa_GetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname,
+ GLvoid *data)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ const struct gl_perf_monitor_group *group_obj;
+ const struct gl_perf_monitor_counter *counter_obj;
+
+ group_obj = get_group(ctx, group);
+
+ if (group_obj == NULL) {
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glGetPerfMonitorCounterInfoAMD(invalid group)");
+ return;
+ }
+
+ counter_obj = get_counter(group_obj, counter);
+
+ if (counter_obj == NULL) {
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glGetPerfMonitorCounterInfoAMD(invalid counter)");
+ return;
+ }
+
+ switch (pname) {
+ case GL_COUNTER_TYPE_AMD:
+ *((GLenum *) data) = counter_obj->Type;
+ break;
+
+ case GL_COUNTER_RANGE_AMD:
+ switch (counter_obj->Type) {
+ case GL_FLOAT:
+ case GL_PERCENTAGE_AMD: {
+ float *f_data = data;
+ f_data[0] = counter_obj->Minimum.f;
+ f_data[1] = counter_obj->Maximum.f;
+ break;
+ }
+ case GL_UNSIGNED_INT: {
+ uint32_t *u32_data = data;
+ u32_data[0] = counter_obj->Minimum.u32;
+ u32_data[1] = counter_obj->Maximum.u32;
+ break;
+ }
+ case GL_UNSIGNED_INT64_AMD: {
+ uint64_t *u64_data = data;
+ u64_data[0] = counter_obj->Minimum.u64;
+ u64_data[1] = counter_obj->Maximum.u64;
+ break;
+ }
+ default:
+ assert(!"Should not get here: invalid counter type");
+ }
+ break;
+
+ default:
+ _mesa_error(ctx, GL_INVALID_ENUM,
+ "glGetPerfMonitorCounterInfoAMD(pname)");
+ return;
+ }
+}
+
+void GLAPIENTRY
+_mesa_GenPerfMonitorsAMD(GLsizei n, GLuint *monitors)
+{
+ GLuint first;
+ GET_CURRENT_CONTEXT(ctx);
+
+ if (MESA_VERBOSE & VERBOSE_API)
+ _mesa_debug(ctx, "glGenPerfMonitorsAMD(%d)\n", n);
+
+ if (n < 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGenPerfMonitorsAMD(n < 0)");
+ return;
+ }
+
+ if (monitors == NULL)
+ return;
+
+ /* We don't actually need them to be contiguous, but this is what
+ * the rest of Mesa does, so we may as well.
+ */
+ first = _mesa_HashFindFreeKeyBlock(ctx->PerfMonitor.Monitors, n);
+ if (first) {
+ GLsizei i;
+ for (i = 0; i < n; i++) {
+ struct gl_perf_monitor_object *m =
+ new_performance_monitor(ctx, first + i);
+ if (!m) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glGenPerfMonitorsAMD");
+ return;
+ }
+ monitors[i] = first + i;
+ _mesa_HashInsert(ctx->PerfMonitor.Monitors, first + i, m);
+ }
+ } else {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glGenPerfMonitorsAMD");
+ return;
+ }
+}
+
+void GLAPIENTRY
+_mesa_DeletePerfMonitorsAMD(GLsizei n, GLuint *monitors)
+{
+ GLint i;
+ GET_CURRENT_CONTEXT(ctx);
+
+ if (MESA_VERBOSE & VERBOSE_API)
+ _mesa_debug(ctx, "glDeletePerfMonitorsAMD(%d)\n", n);
+
+ if (n < 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glDeletePerfMonitorsAMD(n < 0)");
+ return;
+ }
+
+ if (monitors == NULL)
+ return;
+
+ for (i = 0; i < n; i++) {
+ struct gl_perf_monitor_object *m = lookup_monitor(ctx, monitors[i]);
+
+ if (m) {
+ /* Give the driver a chance to stop the monitor if it's active. */
+ if (m->Active)
+ ctx->Driver.ResetPerfMonitor(ctx, m);
+
+ _mesa_HashRemove(ctx->PerfMonitor.Monitors, monitors[i]);
+ ralloc_free(m->ActiveGroups);
+ ralloc_free(m->ActiveCounters);
+ ctx->Driver.DeletePerfMonitor(ctx, m);
+ } else {
+ /* "INVALID_VALUE error will be generated if any of the monitor IDs
+ * in the <monitors> parameter to DeletePerfMonitorsAMD do not
+ * reference a valid generated monitor ID."
+ */
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glDeletePerfMonitorsAMD(invalid monitor)");
+ }
+ }
+}
+
+void GLAPIENTRY
+_mesa_SelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable,
+ GLuint group, GLint numCounters,
+ GLuint *counterList)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ unsigned i;
+ struct gl_perf_monitor_object *m;
+ const struct gl_perf_monitor_group *group_obj;
+
+ m = lookup_monitor(ctx, monitor);
+
+ /* "INVALID_VALUE error will be generated if the <monitor> parameter to
+ * SelectPerfMonitorCountersAMD does not reference a monitor created by
+ * GenPerfMonitorsAMD."
+ */
+ if (m == NULL) {
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glSelectPerfMonitorCountersAMD(invalid monitor)");
+ return;
+ }
+
+ group_obj = get_group(ctx, group);
+
+ /* "INVALID_VALUE error will be generated if the <group> parameter to
+ * GetPerfMonitorCountersAMD, GetPerfMonitorCounterStringAMD,
+ * GetPerfMonitorCounterStringAMD, GetPerfMonitorCounterInfoAMD, or
+ * SelectPerfMonitorCountersAMD does not reference a valid group ID."
+ */
+ if (group_obj == NULL) {
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glSelectPerfMonitorCountersAMD(invalid group)");
+ return;
+ }
+
+ /* "INVALID_VALUE error will be generated if the <numCounters> parameter to
+ * SelectPerfMonitorCountersAMD is less than 0."
+ */
+ if (numCounters < 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glSelectPerfMonitorCountersAMD(numCounters < 0)");
+ return;
+ }
+
+ /* "When SelectPerfMonitorCountersAMD is called on a monitor, any outstanding
+ * results for that monitor become invalidated and the result queries
+ * PERFMON_RESULT_SIZE_AMD and PERFMON_RESULT_AVAILABLE_AMD are reset to 0."
+ */
+ ctx->Driver.ResetPerfMonitor(ctx, m);
+
+ /* Sanity check the counter ID list. */
+ for (i = 0; i < numCounters; i++) {
+ if (counterList[i] >= group_obj->NumCounters) {
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glSelectPerfMonitorCountersAMD(invalid counter ID)");
+ return;
+ }
+ }
+
+ if (enable) {
+ /* Enable the counters */
+ for (i = 0; i < numCounters; i++) {
+ ++m->ActiveGroups[group];
+ BITSET_SET(m->ActiveCounters[group], counterList[i]);
+ }
+ } else {
+ /* Disable the counters */
+ for (i = 0; i < numCounters; i++) {
+ --m->ActiveGroups[group];
+ BITSET_CLEAR(m->ActiveCounters[group], counterList[i]);
+ }
+ }
+}
+
+void GLAPIENTRY
+_mesa_BeginPerfMonitorAMD(GLuint monitor)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ struct gl_perf_monitor_object *m = lookup_monitor(ctx, monitor);
+
+ if (m == NULL) {
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glBeginPerfMonitorAMD(invalid monitor)");
+ return;
+ }
+
+ /* "INVALID_OPERATION error will be generated if BeginPerfMonitorAMD is
+ * called when a performance monitor is already active."
+ */
+ if (m->Active) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glBeginPerfMonitor(already active)");
+ return;
+ }
+
+ /* The driver is free to return false if it can't begin monitoring for
+ * any reason. This translates into an INVALID_OPERATION error.
+ */
+ if (ctx->Driver.BeginPerfMonitor(ctx, m)) {
+ m->Active = true;
+ } else {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glBeginPerfMonitor(driver unable to begin monitoring)");
+ }
+}
+
+void GLAPIENTRY
+_mesa_EndPerfMonitorAMD(GLuint monitor)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ struct gl_perf_monitor_object *m = lookup_monitor(ctx, monitor);
+
+ if (m == NULL) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glEndPerfMonitorAMD(invalid monitor)");
+ return;
+ }
+
+ /* "INVALID_OPERATION error will be generated if EndPerfMonitorAMD is called
+ * when a performance monitor is not currently started."
+ */
+ if (!m->Active) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glBeginPerfMonitor(not active)");
+ return;
+ }
+
+ ctx->Driver.EndPerfMonitor(ctx, m);
+
+ m->Active = false;
+}
+
+/**
+ * Return the number of bytes needed to store a monitor's result.
+ */
+static unsigned
+perf_monitor_result_size(const struct gl_context *ctx,
+ const struct gl_perf_monitor_object *m)
+{
+ unsigned group, counter;
+ unsigned size = 0;
+
+ for (group = 0; group < ctx->PerfMonitor.NumGroups; group++) {
+ const struct gl_perf_monitor_group *g = &ctx->PerfMonitor.Groups[group];
+ for (counter = 0; counter < g->NumCounters; counter++) {
+ const struct gl_perf_monitor_counter *c = &g->Counters[counter];
+
+ if (!BITSET_TEST(m->ActiveCounters[group], counter))
+ continue;
+
+ size += sizeof(uint32_t); /* Group ID */
+ size += sizeof(uint32_t); /* Counter ID */
+ size += _mesa_perf_monitor_counter_size(c);
+ }
+ }
+ return size;
+}
+
+void GLAPIENTRY
+_mesa_GetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname,
+ GLsizei dataSize, GLuint *data,
+ GLint *bytesWritten)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ struct gl_perf_monitor_object *m = lookup_monitor(ctx, monitor);
+
+ if (m == NULL) {
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glGetPerfMonitorCounterDataAMD(invalid monitor)");
+ return;
+ }
+
+ /* "It is an INVALID_OPERATION error for <data> to be NULL." */
+ if (data == NULL) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glGetPerfMonitorCounterDataAMD(data == NULL)");
+ return;
+ }
+
+ /* We need at least enough room for a single value. */
+ if (dataSize < sizeof(GLuint)) {
+ if (bytesWritten != NULL)
+ *bytesWritten = 0;
+ return;
+ }
+
+ /* AMD appears to return 0 for all queries unless a result is available. */
+ if (!ctx->Driver.IsPerfMonitorResultAvailable(ctx, m)) {
+ *data = 0;
+ if (bytesWritten != NULL)
+ *bytesWritten = sizeof(GLuint);
+ return;
+ }
+
+ switch (pname) {
+ case GL_PERFMON_RESULT_AVAILABLE_AMD:
+ *data = 1;
+ if (bytesWritten != NULL)
+ *bytesWritten = sizeof(GLuint);
+ break;
+ case GL_PERFMON_RESULT_SIZE_AMD:
+ *data = perf_monitor_result_size(ctx, m);
+ if (bytesWritten != NULL)
+ *bytesWritten = sizeof(GLuint);
+ break;
+ case GL_PERFMON_RESULT_AMD:
+ ctx->Driver.GetPerfMonitorResult(ctx, m, dataSize, data, bytesWritten);
+ break;
+ default:
+ _mesa_error(ctx, GL_INVALID_ENUM,
+ "glGetPerfMonitorCounterDataAMD(pname)");
+ }
+}
+
+/**
+ * Returns how many bytes a counter's value takes up.
+ */
+unsigned
+_mesa_perf_monitor_counter_size(const struct gl_perf_monitor_counter *c)
+{
+ switch (c->Type) {
+ case GL_FLOAT:
+ case GL_PERCENTAGE_AMD:
+ return sizeof(GLfloat);
+ case GL_UNSIGNED_INT:
+ return sizeof(GLuint);
+ case GL_UNSIGNED_INT64_AMD:
+ return sizeof(uint64_t);
+ default:
+ assert(!"Should not get here: invalid counter type");
+ return 0;
+ }
+}
diff --git a/mesalib/src/mesa/main/performance_monitor.h b/mesalib/src/mesa/main/performance_monitor.h
new file mode 100644
index 000000000..a852a4184
--- /dev/null
+++ b/mesalib/src/mesa/main/performance_monitor.h
@@ -0,0 +1,85 @@
+/*
+ * Copyright © 2012 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+/**
+ * \file performance_monitor.h
+ * Core Mesa support for the AMD_performance_monitor extension.
+ */
+
+#pragma once
+#ifndef PERFORMANCE_MONITOR_H
+#define PERFORMANCE_MONITOR_H
+
+#include "glheader.h"
+
+extern void
+_mesa_init_performance_monitors(struct gl_context *ctx);
+
+extern void GLAPIENTRY
+_mesa_GetPerfMonitorGroupsAMD(GLint *numGroups, GLsizei groupsSize,
+ GLuint *groups);
+
+extern void GLAPIENTRY
+_mesa_GetPerfMonitorCountersAMD(GLuint group, GLint *numCounters,
+ GLint *maxActiveCounters,
+ GLsizei countersSize, GLuint *counters);
+
+extern void GLAPIENTRY
+_mesa_GetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize,
+ GLsizei *length, GLchar *groupString);
+
+extern void GLAPIENTRY
+_mesa_GetPerfMonitorCounterStringAMD(GLuint group, GLuint counter,
+ GLsizei bufSize, GLsizei *length,
+ GLchar *counterString);
+
+extern void GLAPIENTRY
+_mesa_GetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname,
+ GLvoid *data);
+
+extern void GLAPIENTRY
+_mesa_GenPerfMonitorsAMD(GLsizei n, GLuint *monitors);
+
+extern void GLAPIENTRY
+_mesa_DeletePerfMonitorsAMD(GLsizei n, GLuint *monitors);
+
+extern void GLAPIENTRY
+_mesa_SelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable,
+ GLuint group, GLint numCounters,
+ GLuint *counterList);
+
+extern void GLAPIENTRY
+_mesa_BeginPerfMonitorAMD(GLuint monitor);
+
+extern void GLAPIENTRY
+_mesa_EndPerfMonitorAMD(GLuint monitor);
+
+extern void GLAPIENTRY
+_mesa_GetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname,
+ GLsizei dataSize, GLuint *data,
+ GLint *bytesWritten);
+
+unsigned
+_mesa_perf_monitor_counter_size(const struct gl_perf_monitor_counter *);
+
+#endif
diff --git a/mesalib/src/mesa/main/teximage.c b/mesalib/src/mesa/main/teximage.c
index c1261138d..e6cae0034 100644
--- a/mesalib/src/mesa/main/teximage.c
+++ b/mesalib/src/mesa/main/teximage.c
@@ -3179,7 +3179,7 @@ teximage(struct gl_context *ctx, GLboolean compressed, GLuint dims,
_mesa_update_fbo_texture(ctx, texObj, face, level);
- _mesa_dirty_texobj(ctx, texObj, GL_TRUE);
+ _mesa_dirty_texobj(ctx, texObj);
}
}
_mesa_unlock_texture(ctx, texObj);
@@ -3298,7 +3298,7 @@ _mesa_EGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image)
ctx->Driver.EGLImageTargetTexture2D(ctx, target,
texObj, texImage, image);
- _mesa_dirty_texobj(ctx, texObj, GL_TRUE);
+ _mesa_dirty_texobj(ctx, texObj);
}
_mesa_unlock_texture(ctx, texObj);
@@ -3569,7 +3569,7 @@ copyteximage(struct gl_context *ctx, GLuint dims,
_mesa_update_fbo_texture(ctx, texObj, face, level);
- _mesa_dirty_texobj(ctx, texObj, GL_TRUE);
+ _mesa_dirty_texobj(ctx, texObj);
}
}
_mesa_unlock_texture(ctx, texObj);
diff --git a/mesalib/src/mesa/main/texobj.c b/mesalib/src/mesa/main/texobj.c
index cc2c786bb..abd30c563 100644
--- a/mesalib/src/mesa/main/texobj.c
+++ b/mesalib/src/mesa/main/texobj.c
@@ -715,20 +715,17 @@ _mesa_cube_complete(const struct gl_texture_object *texObj)
/**
* Mark a texture object dirty. It forces the object to be incomplete
- * and optionally forces the context to re-validate its state.
+ * and forces the context to re-validate its state.
*
* \param ctx GL context.
* \param texObj texture object.
- * \param invalidate_state also invalidate context state.
*/
void
-_mesa_dirty_texobj(struct gl_context *ctx, struct gl_texture_object *texObj,
- GLboolean invalidate_state)
+_mesa_dirty_texobj(struct gl_context *ctx, struct gl_texture_object *texObj)
{
texObj->_BaseComplete = GL_FALSE;
texObj->_MipmapComplete = GL_FALSE;
- if (invalidate_state)
- ctx->NewState |= _NEW_TEXTURE;
+ ctx->NewState |= _NEW_TEXTURE;
}
diff --git a/mesalib/src/mesa/main/texobj.h b/mesalib/src/mesa/main/texobj.h
index 0df088ce4..55091a642 100644
--- a/mesalib/src/mesa/main/texobj.h
+++ b/mesalib/src/mesa/main/texobj.h
@@ -126,8 +126,7 @@ extern GLboolean
_mesa_cube_complete(const struct gl_texture_object *texObj);
extern void
-_mesa_dirty_texobj(struct gl_context *ctx, struct gl_texture_object *texObj,
- GLboolean invalidate_state);
+_mesa_dirty_texobj(struct gl_context *ctx, struct gl_texture_object *texObj);
extern struct gl_texture_object *
_mesa_get_fallback_texture(struct gl_context *ctx, gl_texture_index tex);
diff --git a/mesalib/src/mesa/main/texparam.c b/mesalib/src/mesa/main/texparam.c
index 757ae80ec..31723c377 100644
--- a/mesalib/src/mesa/main/texparam.c
+++ b/mesalib/src/mesa/main/texparam.c
@@ -256,7 +256,7 @@ static inline void
incomplete(struct gl_context *ctx, struct gl_texture_object *texObj)
{
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
- _mesa_dirty_texobj(ctx, texObj, GL_TRUE);
+ _mesa_dirty_texobj(ctx, texObj);
}
diff --git a/mesalib/src/mesa/program/Android.mk b/mesalib/src/mesa/program/Android.mk
index 3f974ea27..29a1b6a63 100644
--- a/mesalib/src/mesa/program/Android.mk
+++ b/mesalib/src/mesa/program/Android.mk
@@ -71,9 +71,6 @@ $(intermediates)/program/program_parse.tab.h: $(intermediates)/program/program_p
$(intermediates)/program/lex.yy.c: $(LOCAL_PATH)/program_lexer.l
$(local-l-to-c)
-LOCAL_CFLAGS := \
- $(patsubst %,-DFEATURE_%=1,$(MESA_ENABLED_APIS))
-
LOCAL_C_INCLUDES := \
$(intermediates) \
$(MESA_TOP)/src/mapi \
diff --git a/mesalib/src/mesa/state_tracker/st_cb_eglimage.c b/mesalib/src/mesa/state_tracker/st_cb_eglimage.c
index b871cdd19..7484cb4f1 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_eglimage.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_eglimage.c
@@ -132,7 +132,7 @@ st_bind_surface(struct gl_context *ctx, GLenum target,
stObj->depth0 = 1;
stObj->surface_format = ps->format;
- _mesa_dirty_texobj(ctx, texObj, GL_TRUE);
+ _mesa_dirty_texobj(ctx, texObj);
}
static void
diff --git a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index 271cf0523..53838b391 100644
--- a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -1944,6 +1944,14 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
/* note: we have to reorder the three args here */
emit(ir, TGSI_OPCODE_LRP, result_dst, op[2], op[1], op[0]);
break;
+ case ir_triop_csel:
+ if (this->ctx->Const.NativeIntegers)
+ emit(ir, TGSI_OPCODE_UCMP, result_dst, op[0], op[1], op[2]);
+ else {
+ op[0].negate = ~op[0].negate;
+ emit(ir, TGSI_OPCODE_CMP, result_dst, op[0], op[1], op[2]);
+ }
+ break;
case ir_unop_pack_snorm_2x16:
case ir_unop_pack_unorm_2x16:
case ir_unop_pack_half_2x16:
@@ -1970,7 +1978,6 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
case ir_binop_vector_extract:
case ir_triop_vector_insert:
case ir_binop_ldexp:
- case ir_triop_csel:
/* This operation is not supported, or should have already been handled.
*/
assert(!"Invalid ir opcode in glsl_to_tgsi_visitor::visit()");
diff --git a/mesalib/src/mesa/state_tracker/st_manager.c b/mesalib/src/mesa/state_tracker/st_manager.c
index b1fd91a0e..8158450dc 100644
--- a/mesalib/src/mesa/state_tracker/st_manager.c
+++ b/mesalib/src/mesa/state_tracker/st_manager.c
@@ -545,7 +545,7 @@ st_context_teximage(struct st_context_iface *stctxi,
stObj->depth0 = depth;
stObj->surface_format = pipe_format;
- _mesa_dirty_texobj(ctx, texObj, GL_TRUE);
+ _mesa_dirty_texobj(ctx, texObj);
_mesa_unlock_texture(ctx, texObj);
return TRUE;
diff --git a/pixman/pixman/pixman-bits-image.c b/pixman/pixman/pixman-bits-image.c
index 7b9a97335..f9121a365 100644
--- a/pixman/pixman/pixman-bits-image.c
+++ b/pixman/pixman/pixman-bits-image.c
@@ -137,221 +137,6 @@ bits_image_fetch_pixel_bilinear (bits_image_t *image,
return bilinear_interpolation (tl, tr, bl, br, distx, disty);
}
-static uint32_t *
-bits_image_fetch_bilinear_no_repeat_8888 (pixman_iter_t *iter,
- const uint32_t *mask)
-{
-
- pixman_image_t * ima = iter->image;
- int offset = iter->x;
- int line = iter->y++;
- int width = iter->width;
- uint32_t * buffer = iter->buffer;
-
- bits_image_t *bits = &ima->bits;
- pixman_fixed_t x_top, x_bottom, x;
- pixman_fixed_t ux_top, ux_bottom, ux;
- pixman_vector_t v;
- uint32_t top_mask, bottom_mask;
- uint32_t *top_row;
- uint32_t *bottom_row;
- uint32_t *end;
- uint32_t zero[2] = { 0, 0 };
- uint32_t one = 1;
- int y, y1, y2;
- int disty;
- int mask_inc;
- int w;
-
- /* reference point is the center of the pixel */
- v.vector[0] = pixman_int_to_fixed (offset) + pixman_fixed_1 / 2;
- v.vector[1] = pixman_int_to_fixed (line) + pixman_fixed_1 / 2;
- v.vector[2] = pixman_fixed_1;
-
- if (!pixman_transform_point_3d (bits->common.transform, &v))
- return iter->buffer;
-
- ux = ux_top = ux_bottom = bits->common.transform->matrix[0][0];
- x = x_top = x_bottom = v.vector[0] - pixman_fixed_1/2;
-
- y = v.vector[1] - pixman_fixed_1/2;
- disty = pixman_fixed_to_bilinear_weight (y);
-
- /* Load the pointers to the first and second lines from the source
- * image that bilinear code must read.
- *
- * The main trick in this code is about the check if any line are
- * outside of the image;
- *
- * When I realize that a line (any one) is outside, I change
- * the pointer to a dummy area with zeros. Once I change this, I
- * must be sure the pointer will not change, so I set the
- * variables to each pointer increments inside the loop.
- */
- y1 = pixman_fixed_to_int (y);
- y2 = y1 + 1;
-
- if (y1 < 0 || y1 >= bits->height)
- {
- top_row = zero;
- x_top = 0;
- ux_top = 0;
- }
- else
- {
- top_row = bits->bits + y1 * bits->rowstride;
- x_top = x;
- ux_top = ux;
- }
-
- if (y2 < 0 || y2 >= bits->height)
- {
- bottom_row = zero;
- x_bottom = 0;
- ux_bottom = 0;
- }
- else
- {
- bottom_row = bits->bits + y2 * bits->rowstride;
- x_bottom = x;
- ux_bottom = ux;
- }
-
- /* Instead of checking whether the operation uses the mast in
- * each loop iteration, verify this only once and prepare the
- * variables to make the code smaller inside the loop.
- */
- if (!mask)
- {
- mask_inc = 0;
- mask = &one;
- }
- else
- {
- /* If have a mask, prepare the variables to check it */
- mask_inc = 1;
- }
-
- /* If both are zero, then the whole thing is zero */
- if (top_row == zero && bottom_row == zero)
- {
- memset (buffer, 0, width * sizeof (uint32_t));
- return iter->buffer;
- }
- else if (bits->format == PIXMAN_x8r8g8b8)
- {
- if (top_row == zero)
- {
- top_mask = 0;
- bottom_mask = 0xff000000;
- }
- else if (bottom_row == zero)
- {
- top_mask = 0xff000000;
- bottom_mask = 0;
- }
- else
- {
- top_mask = 0xff000000;
- bottom_mask = 0xff000000;
- }
- }
- else
- {
- top_mask = 0;
- bottom_mask = 0;
- }
-
- end = buffer + width;
-
- /* Zero fill to the left of the image */
- while (buffer < end && x < pixman_fixed_minus_1)
- {
- *buffer++ = 0;
- x += ux;
- x_top += ux_top;
- x_bottom += ux_bottom;
- mask += mask_inc;
- }
-
- /* Left edge
- */
- while (buffer < end && x < 0)
- {
- uint32_t tr, br;
- int32_t distx;
-
- tr = top_row[pixman_fixed_to_int (x_top) + 1] | top_mask;
- br = bottom_row[pixman_fixed_to_int (x_bottom) + 1] | bottom_mask;
-
- distx = pixman_fixed_to_bilinear_weight (x);
-
- *buffer++ = bilinear_interpolation (0, tr, 0, br, distx, disty);
-
- x += ux;
- x_top += ux_top;
- x_bottom += ux_bottom;
- mask += mask_inc;
- }
-
- /* Main part */
- w = pixman_int_to_fixed (bits->width - 1);
-
- while (buffer < end && x < w)
- {
- if (*mask)
- {
- uint32_t tl, tr, bl, br;
- int32_t distx;
-
- tl = top_row [pixman_fixed_to_int (x_top)] | top_mask;
- tr = top_row [pixman_fixed_to_int (x_top) + 1] | top_mask;
- bl = bottom_row [pixman_fixed_to_int (x_bottom)] | bottom_mask;
- br = bottom_row [pixman_fixed_to_int (x_bottom) + 1] | bottom_mask;
-
- distx = pixman_fixed_to_bilinear_weight (x);
-
- *buffer = bilinear_interpolation (tl, tr, bl, br, distx, disty);
- }
-
- buffer++;
- x += ux;
- x_top += ux_top;
- x_bottom += ux_bottom;
- mask += mask_inc;
- }
-
- /* Right Edge */
- w = pixman_int_to_fixed (bits->width);
- while (buffer < end && x < w)
- {
- if (*mask)
- {
- uint32_t tl, bl;
- int32_t distx;
-
- tl = top_row [pixman_fixed_to_int (x_top)] | top_mask;
- bl = bottom_row [pixman_fixed_to_int (x_bottom)] | bottom_mask;
-
- distx = pixman_fixed_to_bilinear_weight (x);
-
- *buffer = bilinear_interpolation (tl, 0, bl, 0, distx, disty);
- }
-
- buffer++;
- x += ux;
- x_top += ux_top;
- x_bottom += ux_bottom;
- mask += mask_inc;
- }
-
- /* Zero fill to the left of the image */
- while (buffer < end)
- *buffer++ = 0;
-
- return iter->buffer;
-}
-
static force_inline uint32_t
bits_image_fetch_pixel_convolution (bits_image_t *image,
pixman_fixed_t x,
@@ -720,472 +505,6 @@ bits_image_fetch_general (pixman_iter_t *iter,
return buffer;
}
-typedef uint32_t (* convert_pixel_t) (const uint8_t *row, int x);
-
-static force_inline void
-bits_image_fetch_separable_convolution_affine (pixman_image_t * image,
- int offset,
- int line,
- int width,
- uint32_t * buffer,
- const uint32_t * mask,
-
- convert_pixel_t convert_pixel,
- pixman_format_code_t format,
- pixman_repeat_t repeat_mode)
-{
- bits_image_t *bits = &image->bits;
- pixman_fixed_t *params = image->common.filter_params;
- int cwidth = pixman_fixed_to_int (params[0]);
- int cheight = pixman_fixed_to_int (params[1]);
- int x_off = ((cwidth << 16) - pixman_fixed_1) >> 1;
- int y_off = ((cheight << 16) - pixman_fixed_1) >> 1;
- int x_phase_bits = pixman_fixed_to_int (params[2]);
- int y_phase_bits = pixman_fixed_to_int (params[3]);
- int x_phase_shift = 16 - x_phase_bits;
- int y_phase_shift = 16 - y_phase_bits;
- pixman_fixed_t vx, vy;
- pixman_fixed_t ux, uy;
- pixman_vector_t v;
- int k;
-
- /* reference point is the center of the pixel */
- v.vector[0] = pixman_int_to_fixed (offset) + pixman_fixed_1 / 2;
- v.vector[1] = pixman_int_to_fixed (line) + pixman_fixed_1 / 2;
- v.vector[2] = pixman_fixed_1;
-
- if (!pixman_transform_point_3d (image->common.transform, &v))
- return;
-
- ux = image->common.transform->matrix[0][0];
- uy = image->common.transform->matrix[1][0];
-
- vx = v.vector[0];
- vy = v.vector[1];
-
- for (k = 0; k < width; ++k)
- {
- pixman_fixed_t *y_params;
- int satot, srtot, sgtot, sbtot;
- pixman_fixed_t x, y;
- int32_t x1, x2, y1, y2;
- int32_t px, py;
- int i, j;
-
- if (mask && !mask[k])
- goto next;
-
- /* Round x and y to the middle of the closest phase before continuing. This
- * ensures that the convolution matrix is aligned right, since it was
- * positioned relative to a particular phase (and not relative to whatever
- * exact fraction we happen to get here).
- */
- x = ((vx >> x_phase_shift) << x_phase_shift) + ((1 << x_phase_shift) >> 1);
- y = ((vy >> y_phase_shift) << y_phase_shift) + ((1 << y_phase_shift) >> 1);
-
- px = (x & 0xffff) >> x_phase_shift;
- py = (y & 0xffff) >> y_phase_shift;
-
- x1 = pixman_fixed_to_int (x - pixman_fixed_e - x_off);
- y1 = pixman_fixed_to_int (y - pixman_fixed_e - y_off);
- x2 = x1 + cwidth;
- y2 = y1 + cheight;
-
- satot = srtot = sgtot = sbtot = 0;
-
- y_params = params + 4 + (1 << x_phase_bits) * cwidth + py * cheight;
-
- for (i = y1; i < y2; ++i)
- {
- pixman_fixed_t fy = *y_params++;
-
- if (fy)
- {
- pixman_fixed_t *x_params = params + 4 + px * cwidth;
-
- for (j = x1; j < x2; ++j)
- {
- pixman_fixed_t fx = *x_params++;
- int rx = j;
- int ry = i;
-
- if (fx)
- {
- pixman_fixed_t f;
- uint32_t pixel, mask;
- uint8_t *row;
-
- mask = PIXMAN_FORMAT_A (format)? 0 : 0xff000000;
-
- if (repeat_mode != PIXMAN_REPEAT_NONE)
- {
- repeat (repeat_mode, &rx, bits->width);
- repeat (repeat_mode, &ry, bits->height);
-
- row = (uint8_t *)bits->bits + bits->rowstride * 4 * ry;
- pixel = convert_pixel (row, rx) | mask;
- }
- else
- {
- if (rx < 0 || ry < 0 || rx >= bits->width || ry >= bits->height)
- {
- pixel = 0;
- }
- else
- {
- row = (uint8_t *)bits->bits + bits->rowstride * 4 * ry;
- pixel = convert_pixel (row, rx) | mask;
- }
- }
-
- f = ((pixman_fixed_32_32_t)fx * fy + 0x8000) >> 16;
- srtot += (int)RED_8 (pixel) * f;
- sgtot += (int)GREEN_8 (pixel) * f;
- sbtot += (int)BLUE_8 (pixel) * f;
- satot += (int)ALPHA_8 (pixel) * f;
- }
- }
- }
- }
-
- satot = (satot + 0x8000) >> 16;
- srtot = (srtot + 0x8000) >> 16;
- sgtot = (sgtot + 0x8000) >> 16;
- sbtot = (sbtot + 0x8000) >> 16;
-
- satot = CLIP (satot, 0, 0xff);
- srtot = CLIP (srtot, 0, 0xff);
- sgtot = CLIP (sgtot, 0, 0xff);
- sbtot = CLIP (sbtot, 0, 0xff);
-
- buffer[k] = (satot << 24) | (srtot << 16) | (sgtot << 8) | (sbtot << 0);
-
- next:
- vx += ux;
- vy += uy;
- }
-}
-
-static const uint8_t zero[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
-
-static force_inline void
-bits_image_fetch_bilinear_affine (pixman_image_t * image,
- int offset,
- int line,
- int width,
- uint32_t * buffer,
- const uint32_t * mask,
-
- convert_pixel_t convert_pixel,
- pixman_format_code_t format,
- pixman_repeat_t repeat_mode)
-{
- pixman_fixed_t x, y;
- pixman_fixed_t ux, uy;
- pixman_vector_t v;
- bits_image_t *bits = &image->bits;
- int i;
-
- /* reference point is the center of the pixel */
- v.vector[0] = pixman_int_to_fixed (offset) + pixman_fixed_1 / 2;
- v.vector[1] = pixman_int_to_fixed (line) + pixman_fixed_1 / 2;
- v.vector[2] = pixman_fixed_1;
-
- if (!pixman_transform_point_3d (image->common.transform, &v))
- return;
-
- ux = image->common.transform->matrix[0][0];
- uy = image->common.transform->matrix[1][0];
-
- x = v.vector[0];
- y = v.vector[1];
-
- for (i = 0; i < width; ++i)
- {
- int x1, y1, x2, y2;
- uint32_t tl, tr, bl, br;
- int32_t distx, disty;
- int width = image->bits.width;
- int height = image->bits.height;
- const uint8_t *row1;
- const uint8_t *row2;
-
- if (mask && !mask[i])
- goto next;
-
- x1 = x - pixman_fixed_1 / 2;
- y1 = y - pixman_fixed_1 / 2;
-
- distx = pixman_fixed_to_bilinear_weight (x1);
- disty = pixman_fixed_to_bilinear_weight (y1);
-
- y1 = pixman_fixed_to_int (y1);
- y2 = y1 + 1;
- x1 = pixman_fixed_to_int (x1);
- x2 = x1 + 1;
-
- if (repeat_mode != PIXMAN_REPEAT_NONE)
- {
- uint32_t mask;
-
- mask = PIXMAN_FORMAT_A (format)? 0 : 0xff000000;
-
- repeat (repeat_mode, &x1, width);
- repeat (repeat_mode, &y1, height);
- repeat (repeat_mode, &x2, width);
- repeat (repeat_mode, &y2, height);
-
- row1 = (uint8_t *)bits->bits + bits->rowstride * 4 * y1;
- row2 = (uint8_t *)bits->bits + bits->rowstride * 4 * y2;
-
- tl = convert_pixel (row1, x1) | mask;
- tr = convert_pixel (row1, x2) | mask;
- bl = convert_pixel (row2, x1) | mask;
- br = convert_pixel (row2, x2) | mask;
- }
- else
- {
- uint32_t mask1, mask2;
- int bpp;
-
- /* Note: PIXMAN_FORMAT_BPP() returns an unsigned value,
- * which means if you use it in expressions, those
- * expressions become unsigned themselves. Since
- * the variables below can be negative in some cases,
- * that will lead to crashes on 64 bit architectures.
- *
- * So this line makes sure bpp is signed
- */
- bpp = PIXMAN_FORMAT_BPP (format);
-
- if (x1 >= width || x2 < 0 || y1 >= height || y2 < 0)
- {
- buffer[i] = 0;
- goto next;
- }
-
- if (y2 == 0)
- {
- row1 = zero;
- mask1 = 0;
- }
- else
- {
- row1 = (uint8_t *)bits->bits + bits->rowstride * 4 * y1;
- row1 += bpp / 8 * x1;
-
- mask1 = PIXMAN_FORMAT_A (format)? 0 : 0xff000000;
- }
-
- if (y1 == height - 1)
- {
- row2 = zero;
- mask2 = 0;
- }
- else
- {
- row2 = (uint8_t *)bits->bits + bits->rowstride * 4 * y2;
- row2 += bpp / 8 * x1;
-
- mask2 = PIXMAN_FORMAT_A (format)? 0 : 0xff000000;
- }
-
- if (x2 == 0)
- {
- tl = 0;
- bl = 0;
- }
- else
- {
- tl = convert_pixel (row1, 0) | mask1;
- bl = convert_pixel (row2, 0) | mask2;
- }
-
- if (x1 == width - 1)
- {
- tr = 0;
- br = 0;
- }
- else
- {
- tr = convert_pixel (row1, 1) | mask1;
- br = convert_pixel (row2, 1) | mask2;
- }
- }
-
- buffer[i] = bilinear_interpolation (
- tl, tr, bl, br, distx, disty);
-
- next:
- x += ux;
- y += uy;
- }
-}
-
-static force_inline void
-bits_image_fetch_nearest_affine (pixman_image_t * image,
- int offset,
- int line,
- int width,
- uint32_t * buffer,
- const uint32_t * mask,
-
- convert_pixel_t convert_pixel,
- pixman_format_code_t format,
- pixman_repeat_t repeat_mode)
-{
- pixman_fixed_t x, y;
- pixman_fixed_t ux, uy;
- pixman_vector_t v;
- bits_image_t *bits = &image->bits;
- int i;
-
- /* reference point is the center of the pixel */
- v.vector[0] = pixman_int_to_fixed (offset) + pixman_fixed_1 / 2;
- v.vector[1] = pixman_int_to_fixed (line) + pixman_fixed_1 / 2;
- v.vector[2] = pixman_fixed_1;
-
- if (!pixman_transform_point_3d (image->common.transform, &v))
- return;
-
- ux = image->common.transform->matrix[0][0];
- uy = image->common.transform->matrix[1][0];
-
- x = v.vector[0];
- y = v.vector[1];
-
- for (i = 0; i < width; ++i)
- {
- int width, height, x0, y0;
- const uint8_t *row;
-
- if (mask && !mask[i])
- goto next;
-
- width = image->bits.width;
- height = image->bits.height;
- x0 = pixman_fixed_to_int (x - pixman_fixed_e);
- y0 = pixman_fixed_to_int (y - pixman_fixed_e);
-
- if (repeat_mode == PIXMAN_REPEAT_NONE &&
- (y0 < 0 || y0 >= height || x0 < 0 || x0 >= width))
- {
- buffer[i] = 0;
- }
- else
- {
- uint32_t mask = PIXMAN_FORMAT_A (format)? 0 : 0xff000000;
-
- if (repeat_mode != PIXMAN_REPEAT_NONE)
- {
- repeat (repeat_mode, &x0, width);
- repeat (repeat_mode, &y0, height);
- }
-
- row = (uint8_t *)bits->bits + bits->rowstride * 4 * y0;
-
- buffer[i] = convert_pixel (row, x0) | mask;
- }
-
- next:
- x += ux;
- y += uy;
- }
-}
-
-static force_inline uint32_t
-convert_a8r8g8b8 (const uint8_t *row, int x)
-{
- return *(((uint32_t *)row) + x);
-}
-
-static force_inline uint32_t
-convert_x8r8g8b8 (const uint8_t *row, int x)
-{
- return *(((uint32_t *)row) + x);
-}
-
-static force_inline uint32_t
-convert_a8 (const uint8_t *row, int x)
-{
- return *(row + x) << 24;
-}
-
-static force_inline uint32_t
-convert_r5g6b5 (const uint8_t *row, int x)
-{
- return convert_0565_to_0888 (*((uint16_t *)row + x));
-}
-
-#define MAKE_SEPARABLE_CONVOLUTION_FETCHER(name, format, repeat_mode) \
- static uint32_t * \
- bits_image_fetch_separable_convolution_affine_ ## name (pixman_iter_t *iter, \
- const uint32_t * mask) \
- { \
- bits_image_fetch_separable_convolution_affine ( \
- iter->image, \
- iter->x, iter->y++, \
- iter->width, \
- iter->buffer, mask, \
- convert_ ## format, \
- PIXMAN_ ## format, \
- repeat_mode); \
- \
- return iter->buffer; \
- }
-
-#define MAKE_BILINEAR_FETCHER(name, format, repeat_mode) \
- static uint32_t * \
- bits_image_fetch_bilinear_affine_ ## name (pixman_iter_t *iter, \
- const uint32_t * mask) \
- { \
- bits_image_fetch_bilinear_affine (iter->image, \
- iter->x, iter->y++, \
- iter->width, \
- iter->buffer, mask, \
- convert_ ## format, \
- PIXMAN_ ## format, \
- repeat_mode); \
- return iter->buffer; \
- }
-
-#define MAKE_NEAREST_FETCHER(name, format, repeat_mode) \
- static uint32_t * \
- bits_image_fetch_nearest_affine_ ## name (pixman_iter_t *iter, \
- const uint32_t * mask) \
- { \
- bits_image_fetch_nearest_affine (iter->image, \
- iter->x, iter->y++, \
- iter->width, \
- iter->buffer, mask, \
- convert_ ## format, \
- PIXMAN_ ## format, \
- repeat_mode); \
- return iter->buffer; \
- }
-
-#define MAKE_FETCHERS(name, format, repeat_mode) \
- MAKE_NEAREST_FETCHER (name, format, repeat_mode) \
- MAKE_BILINEAR_FETCHER (name, format, repeat_mode) \
- MAKE_SEPARABLE_CONVOLUTION_FETCHER (name, format, repeat_mode)
-
-MAKE_FETCHERS (pad_a8r8g8b8, a8r8g8b8, PIXMAN_REPEAT_PAD)
-MAKE_FETCHERS (none_a8r8g8b8, a8r8g8b8, PIXMAN_REPEAT_NONE)
-MAKE_FETCHERS (reflect_a8r8g8b8, a8r8g8b8, PIXMAN_REPEAT_REFLECT)
-MAKE_FETCHERS (normal_a8r8g8b8, a8r8g8b8, PIXMAN_REPEAT_NORMAL)
-MAKE_FETCHERS (pad_x8r8g8b8, x8r8g8b8, PIXMAN_REPEAT_PAD)
-MAKE_FETCHERS (none_x8r8g8b8, x8r8g8b8, PIXMAN_REPEAT_NONE)
-MAKE_FETCHERS (reflect_x8r8g8b8, x8r8g8b8, PIXMAN_REPEAT_REFLECT)
-MAKE_FETCHERS (normal_x8r8g8b8, x8r8g8b8, PIXMAN_REPEAT_NORMAL)
-MAKE_FETCHERS (pad_a8, a8, PIXMAN_REPEAT_PAD)
-MAKE_FETCHERS (none_a8, a8, PIXMAN_REPEAT_NONE)
-MAKE_FETCHERS (reflect_a8, a8, PIXMAN_REPEAT_REFLECT)
-MAKE_FETCHERS (normal_a8, a8, PIXMAN_REPEAT_NORMAL)
-MAKE_FETCHERS (pad_r5g6b5, r5g6b5, PIXMAN_REPEAT_PAD)
-MAKE_FETCHERS (none_r5g6b5, r5g6b5, PIXMAN_REPEAT_NONE)
-MAKE_FETCHERS (reflect_r5g6b5, r5g6b5, PIXMAN_REPEAT_REFLECT)
-MAKE_FETCHERS (normal_r5g6b5, r5g6b5, PIXMAN_REPEAT_NORMAL)
-
static void
replicate_pixel_32 (bits_image_t * bits,
int x,
@@ -1381,92 +700,6 @@ static const fetcher_info_t fetcher_info[] =
bits_image_fetch_untransformed_float
},
-#define FAST_BILINEAR_FLAGS \
- (FAST_PATH_NO_ALPHA_MAP | \
- FAST_PATH_NO_ACCESSORS | \
- FAST_PATH_HAS_TRANSFORM | \
- FAST_PATH_AFFINE_TRANSFORM | \
- FAST_PATH_X_UNIT_POSITIVE | \
- FAST_PATH_Y_UNIT_ZERO | \
- FAST_PATH_NONE_REPEAT | \
- FAST_PATH_BILINEAR_FILTER)
-
- { PIXMAN_a8r8g8b8,
- FAST_BILINEAR_FLAGS,
- bits_image_fetch_bilinear_no_repeat_8888,
- _pixman_image_get_scanline_generic_float
- },
-
- { PIXMAN_x8r8g8b8,
- FAST_BILINEAR_FLAGS,
- bits_image_fetch_bilinear_no_repeat_8888,
- _pixman_image_get_scanline_generic_float
- },
-
-#define GENERAL_BILINEAR_FLAGS \
- (FAST_PATH_NO_ALPHA_MAP | \
- FAST_PATH_NO_ACCESSORS | \
- FAST_PATH_HAS_TRANSFORM | \
- FAST_PATH_AFFINE_TRANSFORM | \
- FAST_PATH_BILINEAR_FILTER)
-
-#define GENERAL_NEAREST_FLAGS \
- (FAST_PATH_NO_ALPHA_MAP | \
- FAST_PATH_NO_ACCESSORS | \
- FAST_PATH_HAS_TRANSFORM | \
- FAST_PATH_AFFINE_TRANSFORM | \
- FAST_PATH_NEAREST_FILTER)
-
-#define GENERAL_SEPARABLE_CONVOLUTION_FLAGS \
- (FAST_PATH_NO_ALPHA_MAP | \
- FAST_PATH_NO_ACCESSORS | \
- FAST_PATH_HAS_TRANSFORM | \
- FAST_PATH_AFFINE_TRANSFORM | \
- FAST_PATH_SEPARABLE_CONVOLUTION_FILTER)
-
-#define SEPARABLE_CONVOLUTION_AFFINE_FAST_PATH(name, format, repeat) \
- { PIXMAN_ ## format, \
- GENERAL_SEPARABLE_CONVOLUTION_FLAGS | FAST_PATH_ ## repeat ## _REPEAT, \
- bits_image_fetch_separable_convolution_affine_ ## name, \
- _pixman_image_get_scanline_generic_float \
- },
-
-#define BILINEAR_AFFINE_FAST_PATH(name, format, repeat) \
- { PIXMAN_ ## format, \
- GENERAL_BILINEAR_FLAGS | FAST_PATH_ ## repeat ## _REPEAT, \
- bits_image_fetch_bilinear_affine_ ## name, \
- _pixman_image_get_scanline_generic_float \
- },
-
-#define NEAREST_AFFINE_FAST_PATH(name, format, repeat) \
- { PIXMAN_ ## format, \
- GENERAL_NEAREST_FLAGS | FAST_PATH_ ## repeat ## _REPEAT, \
- bits_image_fetch_nearest_affine_ ## name, \
- _pixman_image_get_scanline_generic_float \
- },
-
-#define AFFINE_FAST_PATHS(name, format, repeat) \
- SEPARABLE_CONVOLUTION_AFFINE_FAST_PATH(name, format, repeat) \
- BILINEAR_AFFINE_FAST_PATH(name, format, repeat) \
- NEAREST_AFFINE_FAST_PATH(name, format, repeat)
-
- AFFINE_FAST_PATHS (pad_a8r8g8b8, a8r8g8b8, PAD)
- AFFINE_FAST_PATHS (none_a8r8g8b8, a8r8g8b8, NONE)
- AFFINE_FAST_PATHS (reflect_a8r8g8b8, a8r8g8b8, REFLECT)
- AFFINE_FAST_PATHS (normal_a8r8g8b8, a8r8g8b8, NORMAL)
- AFFINE_FAST_PATHS (pad_x8r8g8b8, x8r8g8b8, PAD)
- AFFINE_FAST_PATHS (none_x8r8g8b8, x8r8g8b8, NONE)
- AFFINE_FAST_PATHS (reflect_x8r8g8b8, x8r8g8b8, REFLECT)
- AFFINE_FAST_PATHS (normal_x8r8g8b8, x8r8g8b8, NORMAL)
- AFFINE_FAST_PATHS (pad_a8, a8, PAD)
- AFFINE_FAST_PATHS (none_a8, a8, NONE)
- AFFINE_FAST_PATHS (reflect_a8, a8, REFLECT)
- AFFINE_FAST_PATHS (normal_a8, a8, NORMAL)
- AFFINE_FAST_PATHS (pad_r5g6b5, r5g6b5, PAD)
- AFFINE_FAST_PATHS (none_r5g6b5, r5g6b5, NONE)
- AFFINE_FAST_PATHS (reflect_r5g6b5, r5g6b5, REFLECT)
- AFFINE_FAST_PATHS (normal_r5g6b5, r5g6b5, NORMAL)
-
/* Affine, no alpha */
{ PIXMAN_any,
(FAST_PATH_NO_ALPHA_MAP | FAST_PATH_HAS_TRANSFORM | FAST_PATH_AFFINE_TRANSFORM),
diff --git a/pixman/pixman/pixman-fast-path.c b/pixman/pixman/pixman-fast-path.c
index 5d52b4a57..b06d1b27d 100644
--- a/pixman/pixman/pixman-fast-path.c
+++ b/pixman/pixman/pixman-fast-path.c
@@ -2269,8 +2269,7 @@ typedef struct
typedef struct
{
- line_t line0;
- line_t line1;
+ line_t lines[2];
pixman_fixed_t y;
pixman_fixed_t x;
uint64_t data[1];
@@ -2352,29 +2351,19 @@ fast_fetch_bilinear_cover (pixman_iter_t *iter, const uint32_t *mask)
dist_y = pixman_fixed_to_bilinear_weight (info->y);
dist_y <<= (8 - BILINEAR_INTERPOLATION_BITS);
- line0 = &info->line0;
- line1 = &info->line1;
+ line0 = &info->lines[y0 & 0x01];
+ line1 = &info->lines[y1 & 0x01];
- if (line0->y != y0 || line1->y != y1)
+ if (line0->y != y0)
{
- if (line0->y == y1 || line1->y == y0)
- {
- line_t tmp = *line0;
- *line0 = *line1;
- *line1 = tmp;
- }
-
- if (line0->y != y0)
- {
- fetch_horizontal (
- &iter->image->bits, line0, y0, fx, ux, iter->width);
- }
+ fetch_horizontal (
+ &iter->image->bits, line0, y0, fx, ux, iter->width);
+ }
- if (line1->y != y1)
- {
- fetch_horizontal (
- &iter->image->bits, line1, y1, fx, ux, iter->width);
- }
+ if (line1->y != y1)
+ {
+ fetch_horizontal (
+ &iter->image->bits, line1, y1, fx, ux, iter->width);
}
for (i = 0; i < iter->width; ++i)
@@ -2470,10 +2459,10 @@ fast_bilinear_cover_iter_init (pixman_iter_t *iter, const pixman_iter_info_t *it
* because COVER_CLIP_BILINEAR ensures that we will only
* be asked to fetch lines in the [0, height) interval
*/
- info->line0.y = -1;
- info->line0.buffer = &(info->data[0]);
- info->line1.y = -1;
- info->line1.buffer = &(info->data[width]);
+ info->lines[0].y = -1;
+ info->lines[0].buffer = &(info->data[0]);
+ info->lines[1].y = -1;
+ info->lines[1].buffer = &(info->data[width]);
iter->get_scanline = fast_fetch_bilinear_cover;
iter->fini = bilinear_cover_iter_fini;
@@ -2492,6 +2481,687 @@ fail:
iter->fini = NULL;
}
+static uint32_t *
+bits_image_fetch_bilinear_no_repeat_8888 (pixman_iter_t *iter,
+ const uint32_t *mask)
+{
+
+ pixman_image_t * ima = iter->image;
+ int offset = iter->x;
+ int line = iter->y++;
+ int width = iter->width;
+ uint32_t * buffer = iter->buffer;
+
+ bits_image_t *bits = &ima->bits;
+ pixman_fixed_t x_top, x_bottom, x;
+ pixman_fixed_t ux_top, ux_bottom, ux;
+ pixman_vector_t v;
+ uint32_t top_mask, bottom_mask;
+ uint32_t *top_row;
+ uint32_t *bottom_row;
+ uint32_t *end;
+ uint32_t zero[2] = { 0, 0 };
+ uint32_t one = 1;
+ int y, y1, y2;
+ int disty;
+ int mask_inc;
+ int w;
+
+ /* reference point is the center of the pixel */
+ v.vector[0] = pixman_int_to_fixed (offset) + pixman_fixed_1 / 2;
+ v.vector[1] = pixman_int_to_fixed (line) + pixman_fixed_1 / 2;
+ v.vector[2] = pixman_fixed_1;
+
+ if (!pixman_transform_point_3d (bits->common.transform, &v))
+ return iter->buffer;
+
+ ux = ux_top = ux_bottom = bits->common.transform->matrix[0][0];
+ x = x_top = x_bottom = v.vector[0] - pixman_fixed_1/2;
+
+ y = v.vector[1] - pixman_fixed_1/2;
+ disty = pixman_fixed_to_bilinear_weight (y);
+
+ /* Load the pointers to the first and second lines from the source
+ * image that bilinear code must read.
+ *
+ * The main trick in this code is about the check if any line are
+ * outside of the image;
+ *
+ * When I realize that a line (any one) is outside, I change
+ * the pointer to a dummy area with zeros. Once I change this, I
+ * must be sure the pointer will not change, so I set the
+ * variables to each pointer increments inside the loop.
+ */
+ y1 = pixman_fixed_to_int (y);
+ y2 = y1 + 1;
+
+ if (y1 < 0 || y1 >= bits->height)
+ {
+ top_row = zero;
+ x_top = 0;
+ ux_top = 0;
+ }
+ else
+ {
+ top_row = bits->bits + y1 * bits->rowstride;
+ x_top = x;
+ ux_top = ux;
+ }
+
+ if (y2 < 0 || y2 >= bits->height)
+ {
+ bottom_row = zero;
+ x_bottom = 0;
+ ux_bottom = 0;
+ }
+ else
+ {
+ bottom_row = bits->bits + y2 * bits->rowstride;
+ x_bottom = x;
+ ux_bottom = ux;
+ }
+
+ /* Instead of checking whether the operation uses the mast in
+ * each loop iteration, verify this only once and prepare the
+ * variables to make the code smaller inside the loop.
+ */
+ if (!mask)
+ {
+ mask_inc = 0;
+ mask = &one;
+ }
+ else
+ {
+ /* If have a mask, prepare the variables to check it */
+ mask_inc = 1;
+ }
+
+ /* If both are zero, then the whole thing is zero */
+ if (top_row == zero && bottom_row == zero)
+ {
+ memset (buffer, 0, width * sizeof (uint32_t));
+ return iter->buffer;
+ }
+ else if (bits->format == PIXMAN_x8r8g8b8)
+ {
+ if (top_row == zero)
+ {
+ top_mask = 0;
+ bottom_mask = 0xff000000;
+ }
+ else if (bottom_row == zero)
+ {
+ top_mask = 0xff000000;
+ bottom_mask = 0;
+ }
+ else
+ {
+ top_mask = 0xff000000;
+ bottom_mask = 0xff000000;
+ }
+ }
+ else
+ {
+ top_mask = 0;
+ bottom_mask = 0;
+ }
+
+ end = buffer + width;
+
+ /* Zero fill to the left of the image */
+ while (buffer < end && x < pixman_fixed_minus_1)
+ {
+ *buffer++ = 0;
+ x += ux;
+ x_top += ux_top;
+ x_bottom += ux_bottom;
+ mask += mask_inc;
+ }
+
+ /* Left edge
+ */
+ while (buffer < end && x < 0)
+ {
+ uint32_t tr, br;
+ int32_t distx;
+
+ tr = top_row[pixman_fixed_to_int (x_top) + 1] | top_mask;
+ br = bottom_row[pixman_fixed_to_int (x_bottom) + 1] | bottom_mask;
+
+ distx = pixman_fixed_to_bilinear_weight (x);
+
+ *buffer++ = bilinear_interpolation (0, tr, 0, br, distx, disty);
+
+ x += ux;
+ x_top += ux_top;
+ x_bottom += ux_bottom;
+ mask += mask_inc;
+ }
+
+ /* Main part */
+ w = pixman_int_to_fixed (bits->width - 1);
+
+ while (buffer < end && x < w)
+ {
+ if (*mask)
+ {
+ uint32_t tl, tr, bl, br;
+ int32_t distx;
+
+ tl = top_row [pixman_fixed_to_int (x_top)] | top_mask;
+ tr = top_row [pixman_fixed_to_int (x_top) + 1] | top_mask;
+ bl = bottom_row [pixman_fixed_to_int (x_bottom)] | bottom_mask;
+ br = bottom_row [pixman_fixed_to_int (x_bottom) + 1] | bottom_mask;
+
+ distx = pixman_fixed_to_bilinear_weight (x);
+
+ *buffer = bilinear_interpolation (tl, tr, bl, br, distx, disty);
+ }
+
+ buffer++;
+ x += ux;
+ x_top += ux_top;
+ x_bottom += ux_bottom;
+ mask += mask_inc;
+ }
+
+ /* Right Edge */
+ w = pixman_int_to_fixed (bits->width);
+ while (buffer < end && x < w)
+ {
+ if (*mask)
+ {
+ uint32_t tl, bl;
+ int32_t distx;
+
+ tl = top_row [pixman_fixed_to_int (x_top)] | top_mask;
+ bl = bottom_row [pixman_fixed_to_int (x_bottom)] | bottom_mask;
+
+ distx = pixman_fixed_to_bilinear_weight (x);
+
+ *buffer = bilinear_interpolation (tl, 0, bl, 0, distx, disty);
+ }
+
+ buffer++;
+ x += ux;
+ x_top += ux_top;
+ x_bottom += ux_bottom;
+ mask += mask_inc;
+ }
+
+ /* Zero fill to the left of the image */
+ while (buffer < end)
+ *buffer++ = 0;
+
+ return iter->buffer;
+}
+
+typedef uint32_t (* convert_pixel_t) (const uint8_t *row, int x);
+
+static force_inline void
+bits_image_fetch_separable_convolution_affine (pixman_image_t * image,
+ int offset,
+ int line,
+ int width,
+ uint32_t * buffer,
+ const uint32_t * mask,
+
+ convert_pixel_t convert_pixel,
+ pixman_format_code_t format,
+ pixman_repeat_t repeat_mode)
+{
+ bits_image_t *bits = &image->bits;
+ pixman_fixed_t *params = image->common.filter_params;
+ int cwidth = pixman_fixed_to_int (params[0]);
+ int cheight = pixman_fixed_to_int (params[1]);
+ int x_off = ((cwidth << 16) - pixman_fixed_1) >> 1;
+ int y_off = ((cheight << 16) - pixman_fixed_1) >> 1;
+ int x_phase_bits = pixman_fixed_to_int (params[2]);
+ int y_phase_bits = pixman_fixed_to_int (params[3]);
+ int x_phase_shift = 16 - x_phase_bits;
+ int y_phase_shift = 16 - y_phase_bits;
+ pixman_fixed_t vx, vy;
+ pixman_fixed_t ux, uy;
+ pixman_vector_t v;
+ int k;
+
+ /* reference point is the center of the pixel */
+ v.vector[0] = pixman_int_to_fixed (offset) + pixman_fixed_1 / 2;
+ v.vector[1] = pixman_int_to_fixed (line) + pixman_fixed_1 / 2;
+ v.vector[2] = pixman_fixed_1;
+
+ if (!pixman_transform_point_3d (image->common.transform, &v))
+ return;
+
+ ux = image->common.transform->matrix[0][0];
+ uy = image->common.transform->matrix[1][0];
+
+ vx = v.vector[0];
+ vy = v.vector[1];
+
+ for (k = 0; k < width; ++k)
+ {
+ pixman_fixed_t *y_params;
+ int satot, srtot, sgtot, sbtot;
+ pixman_fixed_t x, y;
+ int32_t x1, x2, y1, y2;
+ int32_t px, py;
+ int i, j;
+
+ if (mask && !mask[k])
+ goto next;
+
+ /* Round x and y to the middle of the closest phase before continuing. This
+ * ensures that the convolution matrix is aligned right, since it was
+ * positioned relative to a particular phase (and not relative to whatever
+ * exact fraction we happen to get here).
+ */
+ x = ((vx >> x_phase_shift) << x_phase_shift) + ((1 << x_phase_shift) >> 1);
+ y = ((vy >> y_phase_shift) << y_phase_shift) + ((1 << y_phase_shift) >> 1);
+
+ px = (x & 0xffff) >> x_phase_shift;
+ py = (y & 0xffff) >> y_phase_shift;
+
+ x1 = pixman_fixed_to_int (x - pixman_fixed_e - x_off);
+ y1 = pixman_fixed_to_int (y - pixman_fixed_e - y_off);
+ x2 = x1 + cwidth;
+ y2 = y1 + cheight;
+
+ satot = srtot = sgtot = sbtot = 0;
+
+ y_params = params + 4 + (1 << x_phase_bits) * cwidth + py * cheight;
+
+ for (i = y1; i < y2; ++i)
+ {
+ pixman_fixed_t fy = *y_params++;
+
+ if (fy)
+ {
+ pixman_fixed_t *x_params = params + 4 + px * cwidth;
+
+ for (j = x1; j < x2; ++j)
+ {
+ pixman_fixed_t fx = *x_params++;
+ int rx = j;
+ int ry = i;
+
+ if (fx)
+ {
+ pixman_fixed_t f;
+ uint32_t pixel, mask;
+ uint8_t *row;
+
+ mask = PIXMAN_FORMAT_A (format)? 0 : 0xff000000;
+
+ if (repeat_mode != PIXMAN_REPEAT_NONE)
+ {
+ repeat (repeat_mode, &rx, bits->width);
+ repeat (repeat_mode, &ry, bits->height);
+
+ row = (uint8_t *)bits->bits + bits->rowstride * 4 * ry;
+ pixel = convert_pixel (row, rx) | mask;
+ }
+ else
+ {
+ if (rx < 0 || ry < 0 || rx >= bits->width || ry >= bits->height)
+ {
+ pixel = 0;
+ }
+ else
+ {
+ row = (uint8_t *)bits->bits + bits->rowstride * 4 * ry;
+ pixel = convert_pixel (row, rx) | mask;
+ }
+ }
+
+ f = ((pixman_fixed_32_32_t)fx * fy + 0x8000) >> 16;
+ srtot += (int)RED_8 (pixel) * f;
+ sgtot += (int)GREEN_8 (pixel) * f;
+ sbtot += (int)BLUE_8 (pixel) * f;
+ satot += (int)ALPHA_8 (pixel) * f;
+ }
+ }
+ }
+ }
+
+ satot = (satot + 0x8000) >> 16;
+ srtot = (srtot + 0x8000) >> 16;
+ sgtot = (sgtot + 0x8000) >> 16;
+ sbtot = (sbtot + 0x8000) >> 16;
+
+ satot = CLIP (satot, 0, 0xff);
+ srtot = CLIP (srtot, 0, 0xff);
+ sgtot = CLIP (sgtot, 0, 0xff);
+ sbtot = CLIP (sbtot, 0, 0xff);
+
+ buffer[k] = (satot << 24) | (srtot << 16) | (sgtot << 8) | (sbtot << 0);
+
+ next:
+ vx += ux;
+ vy += uy;
+ }
+}
+
+static const uint8_t zero[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
+
+static force_inline void
+bits_image_fetch_bilinear_affine (pixman_image_t * image,
+ int offset,
+ int line,
+ int width,
+ uint32_t * buffer,
+ const uint32_t * mask,
+
+ convert_pixel_t convert_pixel,
+ pixman_format_code_t format,
+ pixman_repeat_t repeat_mode)
+{
+ pixman_fixed_t x, y;
+ pixman_fixed_t ux, uy;
+ pixman_vector_t v;
+ bits_image_t *bits = &image->bits;
+ int i;
+
+ /* reference point is the center of the pixel */
+ v.vector[0] = pixman_int_to_fixed (offset) + pixman_fixed_1 / 2;
+ v.vector[1] = pixman_int_to_fixed (line) + pixman_fixed_1 / 2;
+ v.vector[2] = pixman_fixed_1;
+
+ if (!pixman_transform_point_3d (image->common.transform, &v))
+ return;
+
+ ux = image->common.transform->matrix[0][0];
+ uy = image->common.transform->matrix[1][0];
+
+ x = v.vector[0];
+ y = v.vector[1];
+
+ for (i = 0; i < width; ++i)
+ {
+ int x1, y1, x2, y2;
+ uint32_t tl, tr, bl, br;
+ int32_t distx, disty;
+ int width = image->bits.width;
+ int height = image->bits.height;
+ const uint8_t *row1;
+ const uint8_t *row2;
+
+ if (mask && !mask[i])
+ goto next;
+
+ x1 = x - pixman_fixed_1 / 2;
+ y1 = y - pixman_fixed_1 / 2;
+
+ distx = pixman_fixed_to_bilinear_weight (x1);
+ disty = pixman_fixed_to_bilinear_weight (y1);
+
+ y1 = pixman_fixed_to_int (y1);
+ y2 = y1 + 1;
+ x1 = pixman_fixed_to_int (x1);
+ x2 = x1 + 1;
+
+ if (repeat_mode != PIXMAN_REPEAT_NONE)
+ {
+ uint32_t mask;
+
+ mask = PIXMAN_FORMAT_A (format)? 0 : 0xff000000;
+
+ repeat (repeat_mode, &x1, width);
+ repeat (repeat_mode, &y1, height);
+ repeat (repeat_mode, &x2, width);
+ repeat (repeat_mode, &y2, height);
+
+ row1 = (uint8_t *)bits->bits + bits->rowstride * 4 * y1;
+ row2 = (uint8_t *)bits->bits + bits->rowstride * 4 * y2;
+
+ tl = convert_pixel (row1, x1) | mask;
+ tr = convert_pixel (row1, x2) | mask;
+ bl = convert_pixel (row2, x1) | mask;
+ br = convert_pixel (row2, x2) | mask;
+ }
+ else
+ {
+ uint32_t mask1, mask2;
+ int bpp;
+
+ /* Note: PIXMAN_FORMAT_BPP() returns an unsigned value,
+ * which means if you use it in expressions, those
+ * expressions become unsigned themselves. Since
+ * the variables below can be negative in some cases,
+ * that will lead to crashes on 64 bit architectures.
+ *
+ * So this line makes sure bpp is signed
+ */
+ bpp = PIXMAN_FORMAT_BPP (format);
+
+ if (x1 >= width || x2 < 0 || y1 >= height || y2 < 0)
+ {
+ buffer[i] = 0;
+ goto next;
+ }
+
+ if (y2 == 0)
+ {
+ row1 = zero;
+ mask1 = 0;
+ }
+ else
+ {
+ row1 = (uint8_t *)bits->bits + bits->rowstride * 4 * y1;
+ row1 += bpp / 8 * x1;
+
+ mask1 = PIXMAN_FORMAT_A (format)? 0 : 0xff000000;
+ }
+
+ if (y1 == height - 1)
+ {
+ row2 = zero;
+ mask2 = 0;
+ }
+ else
+ {
+ row2 = (uint8_t *)bits->bits + bits->rowstride * 4 * y2;
+ row2 += bpp / 8 * x1;
+
+ mask2 = PIXMAN_FORMAT_A (format)? 0 : 0xff000000;
+ }
+
+ if (x2 == 0)
+ {
+ tl = 0;
+ bl = 0;
+ }
+ else
+ {
+ tl = convert_pixel (row1, 0) | mask1;
+ bl = convert_pixel (row2, 0) | mask2;
+ }
+
+ if (x1 == width - 1)
+ {
+ tr = 0;
+ br = 0;
+ }
+ else
+ {
+ tr = convert_pixel (row1, 1) | mask1;
+ br = convert_pixel (row2, 1) | mask2;
+ }
+ }
+
+ buffer[i] = bilinear_interpolation (
+ tl, tr, bl, br, distx, disty);
+
+ next:
+ x += ux;
+ y += uy;
+ }
+}
+
+static force_inline void
+bits_image_fetch_nearest_affine (pixman_image_t * image,
+ int offset,
+ int line,
+ int width,
+ uint32_t * buffer,
+ const uint32_t * mask,
+
+ convert_pixel_t convert_pixel,
+ pixman_format_code_t format,
+ pixman_repeat_t repeat_mode)
+{
+ pixman_fixed_t x, y;
+ pixman_fixed_t ux, uy;
+ pixman_vector_t v;
+ bits_image_t *bits = &image->bits;
+ int i;
+
+ /* reference point is the center of the pixel */
+ v.vector[0] = pixman_int_to_fixed (offset) + pixman_fixed_1 / 2;
+ v.vector[1] = pixman_int_to_fixed (line) + pixman_fixed_1 / 2;
+ v.vector[2] = pixman_fixed_1;
+
+ if (!pixman_transform_point_3d (image->common.transform, &v))
+ return;
+
+ ux = image->common.transform->matrix[0][0];
+ uy = image->common.transform->matrix[1][0];
+
+ x = v.vector[0];
+ y = v.vector[1];
+
+ for (i = 0; i < width; ++i)
+ {
+ int width, height, x0, y0;
+ const uint8_t *row;
+
+ if (mask && !mask[i])
+ goto next;
+
+ width = image->bits.width;
+ height = image->bits.height;
+ x0 = pixman_fixed_to_int (x - pixman_fixed_e);
+ y0 = pixman_fixed_to_int (y - pixman_fixed_e);
+
+ if (repeat_mode == PIXMAN_REPEAT_NONE &&
+ (y0 < 0 || y0 >= height || x0 < 0 || x0 >= width))
+ {
+ buffer[i] = 0;
+ }
+ else
+ {
+ uint32_t mask = PIXMAN_FORMAT_A (format)? 0 : 0xff000000;
+
+ if (repeat_mode != PIXMAN_REPEAT_NONE)
+ {
+ repeat (repeat_mode, &x0, width);
+ repeat (repeat_mode, &y0, height);
+ }
+
+ row = (uint8_t *)bits->bits + bits->rowstride * 4 * y0;
+
+ buffer[i] = convert_pixel (row, x0) | mask;
+ }
+
+ next:
+ x += ux;
+ y += uy;
+ }
+}
+
+static force_inline uint32_t
+convert_a8r8g8b8 (const uint8_t *row, int x)
+{
+ return *(((uint32_t *)row) + x);
+}
+
+static force_inline uint32_t
+convert_x8r8g8b8 (const uint8_t *row, int x)
+{
+ return *(((uint32_t *)row) + x);
+}
+
+static force_inline uint32_t
+convert_a8 (const uint8_t *row, int x)
+{
+ return *(row + x) << 24;
+}
+
+static force_inline uint32_t
+convert_r5g6b5 (const uint8_t *row, int x)
+{
+ return convert_0565_to_0888 (*((uint16_t *)row + x));
+}
+
+#define MAKE_SEPARABLE_CONVOLUTION_FETCHER(name, format, repeat_mode) \
+ static uint32_t * \
+ bits_image_fetch_separable_convolution_affine_ ## name (pixman_iter_t *iter, \
+ const uint32_t * mask) \
+ { \
+ bits_image_fetch_separable_convolution_affine ( \
+ iter->image, \
+ iter->x, iter->y++, \
+ iter->width, \
+ iter->buffer, mask, \
+ convert_ ## format, \
+ PIXMAN_ ## format, \
+ repeat_mode); \
+ \
+ return iter->buffer; \
+ }
+
+#define MAKE_BILINEAR_FETCHER(name, format, repeat_mode) \
+ static uint32_t * \
+ bits_image_fetch_bilinear_affine_ ## name (pixman_iter_t *iter, \
+ const uint32_t * mask) \
+ { \
+ bits_image_fetch_bilinear_affine (iter->image, \
+ iter->x, iter->y++, \
+ iter->width, \
+ iter->buffer, mask, \
+ convert_ ## format, \
+ PIXMAN_ ## format, \
+ repeat_mode); \
+ return iter->buffer; \
+ }
+
+#define MAKE_NEAREST_FETCHER(name, format, repeat_mode) \
+ static uint32_t * \
+ bits_image_fetch_nearest_affine_ ## name (pixman_iter_t *iter, \
+ const uint32_t * mask) \
+ { \
+ bits_image_fetch_nearest_affine (iter->image, \
+ iter->x, iter->y++, \
+ iter->width, \
+ iter->buffer, mask, \
+ convert_ ## format, \
+ PIXMAN_ ## format, \
+ repeat_mode); \
+ return iter->buffer; \
+ }
+
+#define MAKE_FETCHERS(name, format, repeat_mode) \
+ MAKE_NEAREST_FETCHER (name, format, repeat_mode) \
+ MAKE_BILINEAR_FETCHER (name, format, repeat_mode) \
+ MAKE_SEPARABLE_CONVOLUTION_FETCHER (name, format, repeat_mode)
+
+MAKE_FETCHERS (pad_a8r8g8b8, a8r8g8b8, PIXMAN_REPEAT_PAD)
+MAKE_FETCHERS (none_a8r8g8b8, a8r8g8b8, PIXMAN_REPEAT_NONE)
+MAKE_FETCHERS (reflect_a8r8g8b8, a8r8g8b8, PIXMAN_REPEAT_REFLECT)
+MAKE_FETCHERS (normal_a8r8g8b8, a8r8g8b8, PIXMAN_REPEAT_NORMAL)
+MAKE_FETCHERS (pad_x8r8g8b8, x8r8g8b8, PIXMAN_REPEAT_PAD)
+MAKE_FETCHERS (none_x8r8g8b8, x8r8g8b8, PIXMAN_REPEAT_NONE)
+MAKE_FETCHERS (reflect_x8r8g8b8, x8r8g8b8, PIXMAN_REPEAT_REFLECT)
+MAKE_FETCHERS (normal_x8r8g8b8, x8r8g8b8, PIXMAN_REPEAT_NORMAL)
+MAKE_FETCHERS (pad_a8, a8, PIXMAN_REPEAT_PAD)
+MAKE_FETCHERS (none_a8, a8, PIXMAN_REPEAT_NONE)
+MAKE_FETCHERS (reflect_a8, a8, PIXMAN_REPEAT_REFLECT)
+MAKE_FETCHERS (normal_a8, a8, PIXMAN_REPEAT_NORMAL)
+MAKE_FETCHERS (pad_r5g6b5, r5g6b5, PIXMAN_REPEAT_PAD)
+MAKE_FETCHERS (none_r5g6b5, r5g6b5, PIXMAN_REPEAT_NONE)
+MAKE_FETCHERS (reflect_r5g6b5, r5g6b5, PIXMAN_REPEAT_REFLECT)
+MAKE_FETCHERS (normal_r5g6b5, r5g6b5, PIXMAN_REPEAT_NORMAL)
+
#define IMAGE_FLAGS \
(FAST_PATH_STANDARD_FLAGS | FAST_PATH_ID_TRANSFORM | \
FAST_PATH_BITS_IMAGE | FAST_PATH_SAMPLES_COVER_CLIP_NEAREST)
@@ -2521,6 +3191,92 @@ static const pixman_iter_info_t fast_iters[] =
NULL, NULL
},
+#define FAST_BILINEAR_FLAGS \
+ (FAST_PATH_NO_ALPHA_MAP | \
+ FAST_PATH_NO_ACCESSORS | \
+ FAST_PATH_HAS_TRANSFORM | \
+ FAST_PATH_AFFINE_TRANSFORM | \
+ FAST_PATH_X_UNIT_POSITIVE | \
+ FAST_PATH_Y_UNIT_ZERO | \
+ FAST_PATH_NONE_REPEAT | \
+ FAST_PATH_BILINEAR_FILTER)
+
+ { PIXMAN_a8r8g8b8,
+ FAST_BILINEAR_FLAGS,
+ ITER_NARROW | ITER_SRC,
+ NULL, bits_image_fetch_bilinear_no_repeat_8888, NULL
+ },
+
+ { PIXMAN_x8r8g8b8,
+ FAST_BILINEAR_FLAGS,
+ ITER_NARROW | ITER_SRC,
+ NULL, bits_image_fetch_bilinear_no_repeat_8888, NULL
+ },
+
+#define GENERAL_BILINEAR_FLAGS \
+ (FAST_PATH_NO_ALPHA_MAP | \
+ FAST_PATH_NO_ACCESSORS | \
+ FAST_PATH_HAS_TRANSFORM | \
+ FAST_PATH_AFFINE_TRANSFORM | \
+ FAST_PATH_BILINEAR_FILTER)
+
+#define GENERAL_NEAREST_FLAGS \
+ (FAST_PATH_NO_ALPHA_MAP | \
+ FAST_PATH_NO_ACCESSORS | \
+ FAST_PATH_HAS_TRANSFORM | \
+ FAST_PATH_AFFINE_TRANSFORM | \
+ FAST_PATH_NEAREST_FILTER)
+
+#define GENERAL_SEPARABLE_CONVOLUTION_FLAGS \
+ (FAST_PATH_NO_ALPHA_MAP | \
+ FAST_PATH_NO_ACCESSORS | \
+ FAST_PATH_HAS_TRANSFORM | \
+ FAST_PATH_AFFINE_TRANSFORM | \
+ FAST_PATH_SEPARABLE_CONVOLUTION_FILTER)
+
+#define SEPARABLE_CONVOLUTION_AFFINE_FAST_PATH(name, format, repeat) \
+ { PIXMAN_ ## format, \
+ ITER_NARROW | ITER_SRC, \
+ GENERAL_SEPARABLE_CONVOLUTION_FLAGS | FAST_PATH_ ## repeat ## _REPEAT, \
+ NULL, bits_image_fetch_separable_convolution_affine_ ## name, NULL \
+ },
+
+#define BILINEAR_AFFINE_FAST_PATH(name, format, repeat) \
+ { PIXMAN_ ## format, \
+ ITER_NARROW | ITER_SRC, \
+ GENERAL_BILINEAR_FLAGS | FAST_PATH_ ## repeat ## _REPEAT, \
+ NULL, bits_image_fetch_bilinear_affine_ ## name, NULL, \
+ },
+
+#define NEAREST_AFFINE_FAST_PATH(name, format, repeat) \
+ { PIXMAN_ ## format, \
+ ITER_NARROW | ITER_SRC, \
+ GENERAL_NEAREST_FLAGS | FAST_PATH_ ## repeat ## _REPEAT, \
+ NULL, bits_image_fetch_nearest_affine_ ## name, NULL \
+ },
+
+#define AFFINE_FAST_PATHS(name, format, repeat) \
+ SEPARABLE_CONVOLUTION_AFFINE_FAST_PATH(name, format, repeat) \
+ BILINEAR_AFFINE_FAST_PATH(name, format, repeat) \
+ NEAREST_AFFINE_FAST_PATH(name, format, repeat)
+
+ AFFINE_FAST_PATHS (pad_a8r8g8b8, a8r8g8b8, PAD)
+ AFFINE_FAST_PATHS (none_a8r8g8b8, a8r8g8b8, NONE)
+ AFFINE_FAST_PATHS (reflect_a8r8g8b8, a8r8g8b8, REFLECT)
+ AFFINE_FAST_PATHS (normal_a8r8g8b8, a8r8g8b8, NORMAL)
+ AFFINE_FAST_PATHS (pad_x8r8g8b8, x8r8g8b8, PAD)
+ AFFINE_FAST_PATHS (none_x8r8g8b8, x8r8g8b8, NONE)
+ AFFINE_FAST_PATHS (reflect_x8r8g8b8, x8r8g8b8, REFLECT)
+ AFFINE_FAST_PATHS (normal_x8r8g8b8, x8r8g8b8, NORMAL)
+ AFFINE_FAST_PATHS (pad_a8, a8, PAD)
+ AFFINE_FAST_PATHS (none_a8, a8, NONE)
+ AFFINE_FAST_PATHS (reflect_a8, a8, REFLECT)
+ AFFINE_FAST_PATHS (normal_a8, a8, NORMAL)
+ AFFINE_FAST_PATHS (pad_r5g6b5, r5g6b5, PAD)
+ AFFINE_FAST_PATHS (none_r5g6b5, r5g6b5, NONE)
+ AFFINE_FAST_PATHS (reflect_r5g6b5, r5g6b5, REFLECT)
+ AFFINE_FAST_PATHS (normal_r5g6b5, r5g6b5, NORMAL)
+
{ PIXMAN_null },
};
diff --git a/pixman/pixman/pixman-ssse3.c b/pixman/pixman/pixman-ssse3.c
index 34763e20b..680d6b95a 100644
--- a/pixman/pixman/pixman-ssse3.c
+++ b/pixman/pixman/pixman-ssse3.c
@@ -43,8 +43,7 @@ typedef struct
typedef struct
{
- line_t line0;
- line_t line1;
+ line_t lines[2];
pixman_fixed_t y;
pixman_fixed_t x;
uint64_t data[1];
@@ -172,29 +171,19 @@ ssse3_fetch_bilinear_cover (pixman_iter_t *iter, const uint32_t *mask)
y0 = pixman_fixed_to_int (info->y);
y1 = y0 + 1;
- line0 = &info->line0;
- line1 = &info->line1;
+ line0 = &info->lines[y0 & 0x01];
+ line1 = &info->lines[y1 & 0x01];
- if (line0->y != y0 || line1->y != y1)
+ if (line0->y != y0)
{
- if (line0->y == y1 || line1->y == y0)
- {
- line_t tmp = *line0;
- *line0 = *line1;
- *line1 = tmp;
- }
-
- if (line0->y != y0)
- {
- ssse3_fetch_horizontal (
- &iter->image->bits, line0, y0, fx, ux, iter->width);
- }
+ ssse3_fetch_horizontal (
+ &iter->image->bits, line0, y0, fx, ux, iter->width);
+ }
- if (line1->y != y1)
- {
- ssse3_fetch_horizontal (
- &iter->image->bits, line1, y1, fx, ux, iter->width);
- }
+ if (line1->y != y1)
+ {
+ ssse3_fetch_horizontal (
+ &iter->image->bits, line1, y1, fx, ux, iter->width);
}
dist_y = pixman_fixed_to_bilinear_weight (info->y);
@@ -308,10 +297,10 @@ ssse3_bilinear_cover_iter_init (pixman_iter_t *iter, const pixman_iter_info_t *i
* because COVER_CLIP_BILINEAR ensures that we will only
* be asked to fetch lines in the [0, height) interval
*/
- info->line0.y = -1;
- info->line0.buffer = ALIGN (&(info->data[0]));
- info->line1.y = -1;
- info->line1.buffer = ALIGN (info->line0.buffer + width);
+ info->lines[0].y = -1;
+ info->lines[0].buffer = ALIGN (&(info->data[0]));
+ info->lines[1].y = -1;
+ info->lines[1].buffer = ALIGN (info->lines[0].buffer + width);
iter->get_scanline = ssse3_fetch_bilinear_cover;
iter->fini = ssse3_bilinear_cover_iter_fini;
diff --git a/pixman/test/blitters-test.c b/pixman/test/blitters-test.c
index af948350b..920cbbbd7 100644
--- a/pixman/test/blitters-test.c
+++ b/pixman/test/blitters-test.c
@@ -244,7 +244,7 @@ test_composite (int testnum, int verbose)
int w, h;
pixman_op_t op;
pixman_format_code_t src_fmt, dst_fmt, mask_fmt;
- uint32_t *dstbuf, *srcbuf, *maskbuf;
+ uint32_t *srcbuf, *maskbuf;
uint32_t crc32;
int max_width, max_height, max_extra_stride;
FLOAT_REGS_CORRUPTION_DETECTOR_START ();
@@ -291,7 +291,6 @@ test_composite (int testnum, int verbose)
dst_height = pixman_image_get_height (dst_img);
dst_stride = pixman_image_get_stride (dst_img);
- dstbuf = pixman_image_get_data (dst_img);
srcbuf = pixman_image_get_data (src_img);
src_x = prng_rand_n (src_width);
diff --git a/pixman/test/utils.c b/pixman/test/utils.c
index 34007476b..0cd982e73 100644
--- a/pixman/test/utils.c
+++ b/pixman/test/utils.c
@@ -251,6 +251,7 @@ print_image (pixman_image_t *image)
int width, height, stride;
pixman_format_code_t format;
uint8_t *buffer;
+ int s;
width = pixman_image_get_width (image);
height = pixman_image_get_height (image);
@@ -258,13 +259,12 @@ print_image (pixman_image_t *image)
format = pixman_image_get_format (image);
buffer = (uint8_t *)pixman_image_get_data (image);
- if (stride < 0)
- stride = - stride;
+ s = (stride >= 0)? stride : - stride;
printf ("---\n");
for (i = 0; i < height; i++)
{
- for (j = 0; j < stride; j++)
+ for (j = 0; j < s; j++)
{
if (j == (width * PIXMAN_FORMAT_BPP (format) + 7) / 8)
printf ("| ");
@@ -297,11 +297,12 @@ image_endian_swap (pixman_image_t *img)
for (i = 0; i < height; i++)
{
uint8_t *line_data = (uint8_t *)data + stride * i;
-
+ int s = (stride >= 0)? stride : - stride;
+
switch (bpp)
{
case 1:
- for (j = 0; j < stride; j++)
+ for (j = 0; j < s; j++)
{
line_data[j] =
((line_data[j] & 0x80) >> 7) |
@@ -315,13 +316,13 @@ image_endian_swap (pixman_image_t *img)
}
break;
case 4:
- for (j = 0; j < stride; j++)
+ for (j = 0; j < s; j++)
{
line_data[j] = (line_data[j] >> 4) | (line_data[j] << 4);
}
break;
case 16:
- for (j = 0; j + 2 <= stride; j += 2)
+ for (j = 0; j + 2 <= s; j += 2)
{
char t1 = line_data[j + 0];
char t2 = line_data[j + 1];
@@ -331,7 +332,7 @@ image_endian_swap (pixman_image_t *img)
}
break;
case 24:
- for (j = 0; j + 3 <= stride; j += 3)
+ for (j = 0; j + 3 <= s; j += 3)
{
char t1 = line_data[j + 0];
char t2 = line_data[j + 1];
@@ -343,7 +344,7 @@ image_endian_swap (pixman_image_t *img)
}
break;
case 32:
- for (j = 0; j + 4 <= stride; j += 4)
+ for (j = 0; j + 4 <= s; j += 4)
{
char t1 = line_data[j + 0];
char t2 = line_data[j + 1];
diff --git a/xorg-server/xkeyboard-config/AUTHORS b/xorg-server/xkeyboard-config/AUTHORS
index 451e9c08d..1b4b7b672 100644
--- a/xorg-server/xkeyboard-config/AUTHORS
+++ b/xorg-server/xkeyboard-config/AUTHORS
@@ -1,8 +1,15 @@
+== Initiator and maintainer:
Сергей Удальцов (Sergey Udaltsov) <svu@users.sourceforge.net>
+== Major contributions by:
Andriy Rysin <arysin@myrealbox.com>
Denis Barbier <barbier@linuxfr.org>
Frank Murphy <murphyf+xfree86@f-m.fm>
Ivan Pascal <pascal@info.tsu.ru>
Nicolas Mailhot <nicolas.mailhot@laposte.net>
Данило Шеган <dsegan@gmx.net>
+
+== Substantial contributions by:
+Ivan A Derzhanski <iad@math.bas.bg>
+Runa Aruna <runa_aruna@yahoo.com>
+Frédéric BOITEUX <fboiteux@calistel.com>
diff --git a/xorg-server/xkeyboard-config/BUGS b/xorg-server/xkeyboard-config/BUGS
deleted file mode 100644
index cb48ff636..000000000
--- a/xorg-server/xkeyboard-config/BUGS
+++ /dev/null
@@ -1,70 +0,0 @@
--- Freedesktop.ORG
-
-http://freedesktop.org/bugzilla/show_bug.cgi?id=320
-http://bugs.xfree86.org/show_bug.cgi?id=1155
-
- DONE: Added microsoftprousb
-
-http://freedesktop.org/bugzilla/show_bug.cgi?id=326
-http://bugs.xfree86.org/show_bug.cgi?id=1227
-
- ?: Which of 'inet' files is right?
-
-http://freedesktop.org/bugzilla/show_bug.cgi?id=365
-
- DONE: Two keysyms swapped in us(intl)
-
-http://freedesktop.org/bugzilla/show_bug.cgi?id=371
-
- ?: What exactly is broken? Some patch would be nice
-
-http://freedesktop.org/bugzilla/show_bug.cgi?id=458
-
- DONE: Changed Farsi to Iranian
-
-http://freedesktop.org/bugzilla/show_bug.cgi?id=463
-
- ?: Don't know how to fix, really. Let's see.
-
-http://freedesktop.org/bugzilla/show_bug.cgi?id=496
-
- DONE: Added Gyration Compact Keyboard
-
-http://freedesktop.org/bugzilla/show_bug.cgi?id=574
-
- DONE: The patch applied
-
-http://freedesktop.org/bugzilla/show_bug.cgi?id=587
-
- ?: Which of altwin options should be included?
- Some part of meta_win is already there
-
-http://freedesktop.org/bugzilla/show_bug.cgi?id=630
-
- DONE: Logitech iTouch Cordless Keyboard (model Y-RB6) added
-
-http://freedesktop.org/bugzilla/show_bug.cgi?id=666
-
- DONE: Long ago added alt_super_win
-
-http://freedesktop.org/bugzilla/show_bug.cgi?id=711
-
- DONE: Added Super Power Multimedia Keyboard
-
-http://freedesktop.org/bugzilla/show_bug.cgi?id=743
-
- DONE: Armenian fixed
-
-http://freedesktop.org/bugzilla/show_bug.cgi?id=744
-
- DONE: Model a4techKB21 added
-
-http://freedesktop.org/bugzilla/show_bug.cgi?id=926
-
- TODO:
--- GNOME
-
-http://bugzilla.gnome.org/show_bug.cgi?id=144646
-http://bugs.xfree86.org/show_bug.cgi?id=1415
-
- DONE: Fixed, thanks to Dmitry
diff --git a/xorg-server/xkeyboard-config/CREDITS b/xorg-server/xkeyboard-config/CREDITS
deleted file mode 100644
index 7a05b27ec..000000000
--- a/xorg-server/xkeyboard-config/CREDITS
+++ /dev/null
@@ -1,3 +0,0 @@
-Ivan A Derzhanski <iad@math.bas.bg>
-Runa Aruna <runa_aruna@yahoo.com>
-Fr?d?ric BOITEUX <fboiteux@calistel.com>
diff --git a/xorg-server/xkeyboard-config/symbols/am b/xorg-server/xkeyboard-config/symbols/am
index abe6e1270..c3be81db0 100644
--- a/xorg-server/xkeyboard-config/symbols/am
+++ b/xorg-server/xkeyboard-config/symbols/am
@@ -5,10 +5,9 @@ xkb_symbols "basic" {
name[Group1]= "Armenian";
- // Alphanumeric section
- key <TLDE> { [ 0x100055d, 0x100055c ] };
- key <LSGT> { [ question, 0x100058a ] };
- key <BKSL> { [ guillemotright, guillemotleft ] };
+ key <TLDE> { [ 0x100055d, 0x100055c ] };
+ key <LSGT> { [ question, 0x100058a ] };
+ key <BKSL> { [ guillemotright, guillemotleft]};
key <AE01> { [ 0x1000586, 0x1000556 ] };
key <AE02> { [ 0x1000571, 0x1000541 ] };
@@ -23,7 +22,6 @@ xkb_symbols "basic" {
key <AE11> { [ 0x1000567, 0x1000537 ] };
key <AE12> { [ 0x1000572, 0x1000542 ] };
-
key <AD01> { [ 0x1000573, 0x1000543 ] };
key <AD02> { [ 0x1000583, 0x1000553 ] };
key <AD03> { [ 0x1000562, 0x1000532 ] };
@@ -152,23 +150,22 @@ xkb_symbols "eastern" {
// This is the closer phonetic transliteration for Eastern Armenian
// than the Windows XP layout for Eastern Armenian, which seems
- // to have contained a bug, with the reversal of 'g' for keh and 'c' for gim
- // Also, AE01 (the colon) has been replaced with the Armenian_full_stop and
- // capital AE07 (ken) with the Armenian ligature ew
+ // to have contained a bug, with the reversal of 'g' for keh and 'c' for gim.
+ // Also, AE01 (the colon) has been replaced with the Armenian_full_stop,
+ // and capital AE07 (ken) with the Armenian ligature ew.
key <TLDE> { [ Armenian_separation_mark, Armenian_exclam ] };
-// key <AE01> { [ colon, KP_1 ] };
- key <AE01> { [ Armenian_full_stop, KP_1 ] };
+ key <AE01> { [ Armenian_full_stop, KP_1 ] };
key <AE02> { [ Armenian_dza, Armenian_DZA ] };
key <AE03> { [ Armenian_hi, Armenian_HI ] };
- key <AE04> { [ Armenian_accent, KP_3 ] };
- key <AE05> { [ comma, KP_4 ] };
- key <AE06> { [ minus, KP_9 ] };
+ key <AE04> { [ Armenian_accent, KP_3 ] };
+ key <AE05> { [ comma, KP_4 ] };
+ key <AE06> { [ minus, KP_9 ] };
key <AE07> { [ period, Armenian_ligature_ew ] };
key <AE08> { [ guillemotleft, parenleft ] };
key <AE09> { [ guillemotright, parenright ] };
key <AE10> { [ Armenian_o, Armenian_O ] };
- key <AE11> { [ Armenian_ra, Armenian_RA ] };
+ key <AE11> { [ Armenian_ra, Armenian_RA ] };
key <AE12> { [ Armenian_zhe, Armenian_ZHE ] };
key <LatQ> { [ Armenian_khe, Armenian_KHE ] };
@@ -204,8 +201,8 @@ xkb_symbols "eastern" {
key <LatB> { [ Armenian_ben, Armenian_BEN ] };
key <LatN> { [ Armenian_nu, Armenian_NU ] };
key <LatM> { [ Armenian_men, Armenian_MEN ] };
- key <AB08> { [ Armenian_sha, Armenian_SHA ] };
- key <AB09> { [ Armenian_ghat, Armenian_GHAT ] };
+ key <AB08> { [ Armenian_sha, Armenian_SHA ] };
+ key <AB09> { [ Armenian_ghat, Armenian_GHAT ] };
key <AB10> { [ Armenian_tsa, Armenian_TSA ] };
};
diff --git a/xorg-server/xkeyboard-config/symbols/ara b/xorg-server/xkeyboard-config/symbols/ara
index 1944b25ce..f39fddb56 100644
--- a/xorg-server/xkeyboard-config/symbols/ara
+++ b/xorg-server/xkeyboard-config/symbols/ara
@@ -61,8 +61,6 @@ xkb_symbols "basic" {
key <AB08> { [ Arabic_waw, comma ] };
key <AB09> { [ Arabic_zain, period ] };
key <AB10> { [ Arabic_zah, Arabic_question_mark ] };
-
- // End alphanumeric section
};
partial alphanumeric_keys
@@ -117,7 +115,7 @@ xkb_symbols "digits_KP" {
key <KP2> { [ KP_Down, 0x1000662 ] }; //
key <KP3> { [ KP_Next, 0x1000663 ] }; //
- key <KP0> { [ KP_Insert, 0x1000660 ] }; //
+ key <KP0> { [ KP_Insert, 0x1000660 ] }; //
};
partial alphanumeric_keys
@@ -235,8 +233,6 @@ xkb_symbols "buckwalter" {
// ARABIC FULL STOP (Urdu)
key <AB09> { [ 0x10006d4, Arabic_hamzaonalef ] };
key <AB10> { [ VoidSymbol, Arabic_question_mark ] };
-
- // End alphanumeric section
};
partial alphanumeric_keys
@@ -244,21 +240,21 @@ xkb_symbols "olpc" {
include "ara(basic)"
- // As part of the olpc design some changes were made to the Arabic
+ // As part of the OLPC design, some changes were made to the Arabic
// keyboard design. Major changes are:
//
- // * Removed the lam-alef single character. Poeple type as they
+ // * Removed the lam-alef single character. People type as they
// pronounce, and lam-alef is just a visual formatting of the
// sequence and is not often used on the keyboard. It is
// similar to the Allah single character, which is also not on
// the keyboard.
// * Moved the following keys:
- // o Thal from TLDE to AB05: Due to space limitation on the
- // keybaord, but also accessibility
- // o Shadda from TLDE to AD05
+ // o Thal from TLDE to AB05: due to space limitation on the
+ // keyboard, but also accessibility.
+ // o Shadda from TLDE to AD05.
// * Placed currency letters on number keys and moved the ^ and &
- // characters to lower keys (This change is worth revisiting
- // before end of test period)
+ // characters to lower keys. (This change is worth revisiting
+ // before end of test period).
key <TLDE> { [ grave, asciitilde ] };
@@ -287,7 +283,6 @@ xkb_symbols "olpc" {
key <BKSL> { [ backslash, bar ] };
-
// REH isolated form?
key <AB03> { [ Arabic_hamzaonwaw, Arabic_kasra ] };
key <AB04> { [ Arabic_ra, Arabic_kasratan ] };
diff --git a/xorg-server/xkeyboard-config/symbols/az b/xorg-server/xkeyboard-config/symbols/az
index 3c399cf96..2dab93a3c 100644
--- a/xorg-server/xkeyboard-config/symbols/az
+++ b/xorg-server/xkeyboard-config/symbols/az
@@ -1,5 +1,4 @@
-// based on:
-// symbols definition for a very simple Azerbaidjani keyboard layout.
+// Symbols definition for a very simple Azerbaidjani keyboard layout.
// 2001 - Pablo Saratxaga <pablo@mandrakesoft.com>
partial default alphanumeric_keys
@@ -32,9 +31,8 @@ xkb_symbols "latin" {
key <AB08> { [ ccedilla, Ccedilla ] };
key <AB09> { [ scedilla, Scedilla ] };
key <AB10> { [ period, comma ] };
- // End alphanumeric section
- include "level3(ralt_switch)"
+ include "level3(ralt_switch)"
};
partial alphanumeric_keys
@@ -87,6 +85,4 @@ xkb_symbols "cyrillic" {
key <AB08> {[ Cyrillic_be, Cyrillic_BE ] };
key <AB09> {[ Cyrillic_o_bar, Cyrillic_O_bar ] };
key <AB10> {[ period, comma ] };
-
- // End alphanumeric section
};
diff --git a/xorg-server/xkeyboard-config/symbols/ca b/xorg-server/xkeyboard-config/symbols/ca
index e93995302..b039c48ff 100644
--- a/xorg-server/xkeyboard-config/symbols/ca
+++ b/xorg-server/xkeyboard-config/symbols/ca
@@ -323,8 +323,6 @@ xkb_symbols "ike" {
key <TLDE> { [ 0x0100157b, 0x01001575 ] };
key <LSGT> { [ 0x01001579, 0x01001577 ] };
key <BKSL> { [ backslash, bar ] };
-
-// End alphanumeric section
};
partial
@@ -477,13 +475,11 @@ xkb_symbols "eng" {
partial alphanumeric_keys
xkb_symbols "kut" {
- //Ejective U0313 and compose accents are from shs layout
+ // Ejective U0313 and acute accents are taken from shs layout.
include "ca(shs)"
name[Group1]= "Kutenai";
- // Alphanumeric section
-
// Alveolar Click
key <AD05> { [ t, T,U01C2 ,U01C2 ] };
@@ -505,7 +501,6 @@ xkb_symbols "kut" {
// Secwepemctsin keyboard for X11
// written by Neskie Manuel <neskiem@gmail.com>
-
partial alphanumeric_keys
xkb_symbols "shs" {
@@ -513,9 +508,9 @@ xkb_symbols "shs" {
name[Group1]= "Secwepemctsin";
- //Using Dead key to get COMBINING COMMA ABOVE for ejectives on
- //q, l, t, s, m, g, k, p, w, y, r
- //XCompose key is used for the other accute and grave.
+ // Using a "dead key" to get a COMBINING COMMA ABOVE
+ // for ejectives on q, l, t, s, m, g, k, p, w, y, r.
+ // The Compose key is used for the other acutes and grave.
key <AB08> { [ comma, less, U0313 ] };
key <AC01> { [ a, A, aacute, Aacute ] };
diff --git a/xorg-server/xkeyboard-config/symbols/cd.in b/xorg-server/xkeyboard-config/symbols/cd.in
index a4f2fa2d2..384422ac4 100644
--- a/xorg-server/xkeyboard-config/symbols/cd.in
+++ b/xorg-server/xkeyboard-config/symbols/cd.in
@@ -8,9 +8,8 @@ xkb_symbols "basic" {
key.type[Group1] = "FOUR_LEVEL";
- // Alphanumeric section
- // TILDE, COMBINING TILDE
- key <TLDE> { [ grave, asciitilde, 0x01000303] };
+ // GRAVE, TILDE, COMBINING TILDE
+ key <TLDE> { [ grave, asciitilde, 0x01000303 ] };
key <AE01> { [ ampersand, 1, numbersign ] };
key <AE02> { [0x01000301, 2, at ] };
key <AE03> { [0x01000300, 3, guillemotleft ] };
@@ -34,8 +33,8 @@ xkb_symbols "basic" {
key <AD08> { [ i, I, 0x01000268, 0x01000197 ] };
key <AD09> { [ o, O, oslash, Ooblique ] };
key <AD10> { [ p, P ] };
- key <AD11> { [0x0100025B, 0x01000190, asciicircum ] };
- key <AD12> { [ asterisk, asciicircum, dollar ] };
+ key <AD11> { [0x0100025B, 0x01000190, asciicircum ] };
+ key <AD12> { [ asterisk, asciicircum, dollar ] };
key <AC01> { [ q, Q ] };
key <AC02> { [ s, S ] };
@@ -47,22 +46,22 @@ xkb_symbols "basic" {
key <AC08> { [ k, K ] };
key <AC09> { [ l, L ] };
key <AC10> { [ m, M ] };
- key <AC11> { [0x01000254, 0x01000186 ] };
- key <LSGT> { [ backslash, bar ] };
+ key <AC11> { [0x01000254, 0x01000186 ] };
+ key <LSGT> { [ backslash, bar ] };
key <AB01> { [ w, W ] };
key <AB02> { [ x, X ] };
key <AB03> { [ c, C ] };
key <AB04> { [ v, V ] };
key <AB05> { [ b, B ] };
- key <AB06> { [ n, N, 0x0100014B, 0x0100014A ] };
- key <AB07> { [ comma, question, 0x01000327 ] };
+ key <AB06> { [ n, N, 0x0100014B, 0x0100014A ] };
+ key <AB07> { [ comma, question, 0x01000327 ] };
key <AB08> { [ semicolon, period ] };
key <AB09> { [ colon, slash ] };
- key <AB10> { [ exclam, apostrophe, 0x01002019 ] };
- key <BKSL> { [ quotedbl, backslash, bar ] };
+ key <AB10> { [ exclam, apostrophe, 0x01002019 ] };
+ key <BKSL> { [ quotedbl, backslash, bar ] };
- // SPACE, SPACE, SPACE, NO-BREAK SPACE, SPACE
+ // SPACE, SPACE, NO-BREAK SPACE, NARROW NO_BREAK SPACE
key <SPCE> { [ space, space, nobreakspace, 0x0100202F ] };
include "level3(ralt_switch)"
diff --git a/xorg-server/xkeyboard-config/symbols/ch b/xorg-server/xkeyboard-config/symbols/ch
index 989a2df27..59174076e 100644
--- a/xorg-server/xkeyboard-config/symbols/ch
+++ b/xorg-server/xkeyboard-config/symbols/ch
@@ -2,9 +2,8 @@ partial default alphanumeric_keys
xkb_symbols "basic" {
include "latin"
-
- // Alphanumeric section
name[Group1]= "German (Switzerland)";
+
key <TLDE> { [ section, degree ] };
key <AE01> { [ 1, plus, bar, exclamdown ] };
key <AE02> { [ 2, quotedbl, at, oneeighth ] };
@@ -78,9 +77,6 @@ xkb_symbols "de_nodeadkeys" {
partial alphanumeric_keys
xkb_symbols "fr" {
- // Describes the differences between a very simple US/ASCII
- // keyboard and a very simple Swiss/French keybaord
-
include "ch(basic)"
name[Group1]= "French (Switzerland)";
@@ -130,8 +126,6 @@ xkb_symbols "de_mac" {
name[Group1]= "German (Switzerland, Macintosh)";
- // Alphanumeric section
-
key <AE01> { [ 1, plus, plusminus, infinity ] };
key <AE02> { [ 2, quotedbl, leftdoublequotemark, rightdoublequotemark ] };
key <AE03> { [ 3, asterisk, numbersign, leftcaret ] };
@@ -195,9 +189,6 @@ xkb_symbols "de_mac" {
partial alphanumeric_keys
xkb_symbols "fr_mac" {
- // Describes the differences between a very simple US/ASCII
- // keyboard and a very simple Swiss/French keybaord
-
include "ch(de_mac)"
name[Group1]= "French (Switzerland, Macintosh)";
diff --git a/xorg-server/xkeyboard-config/symbols/cm b/xorg-server/xkeyboard-config/symbols/cm
index 9b2da163c..cdc8577e0 100644
--- a/xorg-server/xkeyboard-config/symbols/cm
+++ b/xorg-server/xkeyboard-config/symbols/cm
@@ -42,7 +42,6 @@ xkb_symbols "basic" {
name[Group1]="English (Cameroon)";
- // Alphanumeric section
key <TLDE> { [ grave, asciitilde ] };
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, at ] };
@@ -93,7 +92,6 @@ xkb_symbols "basic" {
key <AB10> { [ slash, U003F ] };
key <BKSL> { [ backslash, bar ] };
- // End alphanumeric section
};
partial alphanumeric_keys
diff --git a/xorg-server/xkeyboard-config/symbols/de b/xorg-server/xkeyboard-config/symbols/de
index adc60ed36..01bde5d20 100644
--- a/xorg-server/xkeyboard-config/symbols/de
+++ b/xorg-server/xkeyboard-config/symbols/de
@@ -485,7 +485,6 @@ xkb_symbols "mac" {
include "de"
name[Group1]= "German (Macintosh)";
- // Alphanumeric section
key <AE01> { [ 1, exclam, exclamdown, at ] };
key <AE05> { [ 5, percent, bracketleft ] };
key <AE06> { [ 6, ampersand, bracketright ] };
@@ -512,9 +511,9 @@ xkb_symbols "mac_nodeadkeys" {
// modify the standard German mac layout to not have any dead keys
include "de(mac)"
name[Group1]= "German (Macintosh, eliminate dead keys)";
- key <AE04> { [ 4, dollar, onequarter, currency ] };
key <TLDE> { [ asciicircum, degree, notsign ] };
+ key <AE04> { [ 4, dollar, onequarter, currency ] };
key <AE12> { [ acute, grave, cedilla ] };
key <AD11> { [ udiaeresis, Udiaeresis, diaeresis ] };
key <AD12> { [ plus, asterisk, asciitilde, macron ] };
@@ -598,7 +597,7 @@ xkb_symbols "ru" {
name[Group1]= "Russian (Germany, phonetic)";
-key.type[group1]="FOUR_LEVEL_ALPHABETIC";
+ key.type[group1]="FOUR_LEVEL_ALPHABETIC";
key <LatA> { [ Cyrillic_a, Cyrillic_A ] };
key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
@@ -725,8 +724,6 @@ xkb_symbols "hu" {
key <AE12> { [ acute, grave, oacute, Oacute ] };
key <BKSL> { [numbersign, apostrophe, grave, grave ] };
key <TLDE> { [asciicircum, degree, notsign, notsign ] };
-
-
};
partial alphanumeric_keys
diff --git a/xorg-server/xkeyboard-config/symbols/es b/xorg-server/xkeyboard-config/symbols/es
index ea4a28b1f..4196762a6 100644
--- a/xorg-server/xkeyboard-config/symbols/es
+++ b/xorg-server/xkeyboard-config/symbols/es
@@ -1,6 +1,4 @@
-// based on a keyboard
-// Modified for a real Spanish Keyboard by Jon Tombs
-//
+// Modified for a real Spanish keyboard by Jon Tombs.
partial default alphanumeric_keys
xkb_symbols "basic" {
@@ -66,7 +64,6 @@ xkb_symbols "dvorak" {
name[Group1]="Spanish (Dvorak)";
- // Alphanumeric section
key <TLDE> {[ masculine, ordfeminine, backslash, degree ]};
key <AE01> {[ 1, exclam, bar, onesuperior ]};
key <AE02> {[ 2, quotedbl, at, twosuperior ]};
@@ -146,13 +143,8 @@ xkb_symbols "ast" {
// Copied from macintosh_vndr/es
partial alphanumeric_keys
xkb_symbols "mac" {
-
- // Describes the differences between a very simple mac_US
- // keyboard and a very simple Spanish keybaord
-
include "es"
name[Group1]= "Spanish (Macintosh)";
-
};
partial alphanumeric_keys
@@ -230,7 +222,6 @@ xkb_symbols "olpcm" {
key <AA06> { [ bracketleft, braceleft, ccedilla, Ccedilla ] };
key <AA07> { [ bracketright, braceright ] };
-
include "level3(ralt_switch)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/fr b/xorg-server/xkeyboard-config/symbols/fr
index 1bf007e77..71b20b44b 100644
--- a/xorg-server/xkeyboard-config/symbols/fr
+++ b/xorg-server/xkeyboard-config/symbols/fr
@@ -1,5 +1,3 @@
-// based on a keyboard map from an 'xkb/symbols/fr' file
-
partial default alphanumeric_keys
xkb_symbols "basic" {
@@ -109,13 +107,13 @@ xkb_symbols "nodeadkeys" {
// © 2003-2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
//
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
-// │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃
+// │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃
// │ ² ¹ │ & ˇ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃ arrière┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃ ┃ A Æ │ Z  │ E ¢ │ R Ê │ T Þ │ Y Ÿ │ U Û │ I Î │ O Œ │ P Ô │ ¨ ˚ │ £ Ø ┃Entrée ┃
// ┃Tab ↹ ┃ a æ │ z â │ e € │ r ê │ t þ │ y ÿ │ u û │ i î │ o œ │ p ô │ ^ ~ │ $ ø ┃ ⏎ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
-// ┃ ┃ Q Ä │ S „ │ D Ë │ F ‚ │ G ¥ │ H Ð │ J Ü │ K Ï │ L Ŀ │ M Ö │ % Ù │ µ ̄ ┃ ┃
+// ┃ ┃ Q Ä │ S „ │ D Ë │ F ‚ │ G ¥ │ H Ð │ J Ü │ K Ï │ L Ŀ │ M Ö │ % Ù │ µ ̄ ┃ ┃
// ┃Maj ⇬ ┃ q ä │ s ß │ d ë │ f ‘ │ g ’ │ h ð │ j ü │ k ï │ l ŀ │ m ö │ ù ' │ * ` ┃ ┃
// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
// ┃ ┃ > ≥ │ W “ │ X ” │ C ® │ V ← │ B ↑ │ N → │ ? … │ . . │ / ∕ │ § − ┃ ┃
@@ -136,7 +134,7 @@ xkb_symbols "oss" {
name[Group1]="French (alternative)";
// First row
- key <TLDE> { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ² ³ ¹ ¸
+ key <TLDE> { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ² ³ ¹ ¸
key <AE01> { [ ampersand, 1, dead_caron, dead_ogonek ] }; // & 1 ˇ ̨
key <AE02> { [ eacute, 2, asciitilde, Eacute ] }; // é 2 ~ É
key <AE03> { [ quotedbl, 3, numbersign, dead_breve ] }; // " 3 # ˘
@@ -147,7 +145,7 @@ xkb_symbols "oss" {
key <AE08> { [ underscore, 8, backslash, trademark ] }; // _ 8 \ ™
key <AE09> { [ ccedilla, 9, asciicircum, Ccedilla ] }; // ç 9 ^ Ç
key <AE10> { [ agrave, 0, at, Agrave ] }; // à 0 @ À
- key <AE11> { [ parenright, degree, bracketright, notequal ] }; // ) ° ] ≠
+ key <AE11> { [ parenright, degree, bracketright, notequal ] }; // ) ° ] ≠
key <AE12> { [ equal, plus, braceright, plusminus ] }; // = + } ±
// Second row
@@ -166,7 +164,7 @@ xkb_symbols "oss" {
// Third row
key <AC01> { [ q, Q, adiaeresis, Adiaeresis ] }; // q Q ä Ä
- key <AC02> { [ s, S, ssharp, doublelowquotemark ] }; // s S ß „
+ key <AC02> { [ s, S, ssharp, doublelowquotemark ] }; // s S ß „
key <AC03> { [ d, D, ediaeresis, Ediaeresis ] }; // d D ë Ë
key <AC04> { [ f, F, leftsinglequotemark, singlelowquotemark ] }; // f F ‘ ‚
key <AC05> { [ g, G, rightsinglequotemark, yen ] }; // g G ’ ¥
@@ -207,16 +205,16 @@ xkb_symbols "oss_latin9" {
key <AE03> { [ quotedbl, 3, numbersign, dead_tilde ] }; // " 3 # ~
key <AE04> { [ apostrophe, 4, braceleft, underscore ] }; // ' 4 { _
key <AE05> { [ parenleft, 5, bracketleft, minus ] }; // ( 5 [ -
- key <AE06> { [ minus, 6, bar, minus ] }; // - 6 | -
- key <AE08> { [ underscore, 8, backslash, backslash ] }; // _ 8 \ \
+ key <AE06> { [ minus, 6, bar, minus ] }; // - 6 | -
+ key <AE08> { [ underscore, 8, backslash, backslash ] }; // _ 8 \ \
key <AE11> { [ parenright, degree, bracketright, equal ] }; // ) ° ] =
// Third row
- key <AC02> { [ s, S, ssharp, guillemotleft ] }; // s S ß «
+ key <AC02> { [ s, S, ssharp, guillemotleft ] }; // s S ß «
key <AC04> { [ f, F, apostrophe, apostrophe ] }; // f F ' '
key <AC05> { [ g, G, apostrophe, yen ] }; // g G ' ¥
- key <AC09> { [ l, L, periodcentered, periodcentered ] }; // l L · ·
- key <BKSL> { [ asterisk, mu, dead_grave, dead_circumflex ] }; // * µ ` ^
+ key <AC09> { [ l, L, periodcentered, periodcentered ] }; // l L · ·
+ key <BKSL> { [ asterisk, mu, dead_grave, dead_circumflex ] }; // * µ ` ^
// Fourth row
key <LSGT> { [ less, greater, less, greater ] }; // < > < >
@@ -238,15 +236,12 @@ xkb_symbols "oss_Sundeadkeys" {
include "fr(oss)"
- // First row
- key <TLDE> { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ¹ ² ³ ¸
+ key <TLDE> { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ¹ ² ³ ¸
- // Second row
- key <AD11> { [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ] }; // ^ ̈ ̃ ˚
+ key <AD11> { [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ] }; // ^ ̈ ̃ ˚
- //Third row
- key <AC11> { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù
- key <BKSL> { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄
+ key <AC11> { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù
+ key <BKSL> { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄
};
partial alphanumeric_keys
@@ -266,12 +261,11 @@ xkb_symbols "oss_nodeadkeys" {
name[Group1]="French (alternative, eliminate dead keys)";
- key <TLDE> { [ twosuperior, threesuperior, onesuperior, cedilla ] }; // ² ³ ¹ ¸
+ key <TLDE> { [ twosuperior, threesuperior, onesuperior, cedilla ] }; // ² ³ ¹ ¸
key <AE01> { [ ampersand, 1, caron, ogonek ] }; // & 1 ˇ ̨
key <AE03> { [ quotedbl, 3, numbersign, breve ] }; // " 3 # ˘
- // Second row
- key <AD11> { [ asciicircum, diaeresis, asciitilde, Aring ] }; // ^ ̈ ̃ Å
+ key <AD11> { [ asciicircum, diaeresis, asciitilde, Aring ] }; // ^ ̈ ̃ Å
key <AC11> { [ ugrave, percent, acute, Ugrave ] }; // ù % ' Ù
key <BKSL> { [ asterisk, mu, grave, macron ] }; // * µ ` ̄
};
@@ -286,16 +280,16 @@ xkb_symbols "oss_nodeadkeys" {
// This layout has long been distributed and refined outside official channels.
// To this day it remains more feature-rich and popular than the 'fr' layout.
//
-// This file is derived from an original version by Guylhem Aznar. The
-// original version is always available from:
+// This layout is derived from an original version by Guylhem Aznar.
+// The original version is always available from:
// http://en.tldp.org/HOWTO/Francophones-HOWTO.html
// and is distributed under a GPL license.
//
// The author has given permission for this derived version to be distributed
// under the standard XFree86 license. He would like all changes to this
-// version be send to him at <clavier @ externe.net> so he can sync the
-// identically named linux console map (kbd, linux-console) and this
-// fileout-of-tree GPL version.
+// version to be sent to him at <clavier @ externe.net>, so he can sync
+// the identically named linux console map (kbd, linux-console) and his
+// out-of-tree GPL version.
//
// Now follows the keyboard design description in French.
// (If you can't read it you probably have no business changing this file anyway:)
@@ -331,15 +325,16 @@ xkb_symbols "oss_nodeadkeys" {
//
// (^) : accent circonflexe,
// Shift+(^) : tréma,
-// Shift+AltGr (^) : tilde,
-// AltGr (1) : accent aigu,
-// AltGr (7) : accent grave
+// Shift+AltGr+(^) : tilde,
+// AltGr+(1) : accent aigu,
+// AltGr+(7) : accent grave
//
// Pour s'en servir, procéder comme avec l'accent circonflexe & le tréma
// sur les vielles machines à écrire :
//
-// AltGr (1) puis e : é
-// Shift+AltGr (1) puis e : É ...
+// AltGr+(1) puis e : é
+// AltGr+(1) puis E : É
+//
partial alphanumeric_keys
xkb_symbols "latin9" {
@@ -418,7 +413,6 @@ xkb_symbols "latin9_Sundeadkeys" {
key <AE01> { [ ampersand, 1, dead_acute, periodcentered ] };
key <AE07> { [ egrave, 7, dead_grave, Egrave ] };
key <AD11> { [ dead_circumflex, dead_diaeresis, dead_tilde, apostrophe ] };
-
};
partial alphanumeric_keys
@@ -451,22 +445,22 @@ xkb_symbols "latin9_nodeadkeys" {
// by Frédéric Boiteux <fboiteux at free dot fr>
//
// Bépo layout (1.0rc2 version) for a pc105 keyboard (french) :
-// ┌────┐
-// │ S A│ S = Shift, A = AltGr + Shift
-// │ s a│ s = normal, a = AltGr
-// └────┘
+// ┌─────┐
+// │ S A │ S = Shift, A = AltGr + Shift
+// │ s a │ s = normal, a = AltGr
+// └─────┘
//
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ # ¶ │ 1 „ │ 2 “ │ 3 ” │ 4 ≤ │ 5 ≥ │ 6 │ 7 ¬ │ 8 ¼ │ 9 ½ │ 0 ¾ │ ° ′ │ ` ″ ┃ ⌫ Retour┃
// │ $ – │ " — │ « < │ » > │ ( [ │ ) ] │ @ ^ │ + ± │ - − │ / ÷ │ * × │ = ≠ │ % ‰ ┃ arrière┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃ ┃ B ¦ │ É ˝ │ P § │ O Œ │ È ` │ ! │ V │ D Ð │ L │ J IJ │ Z Ə │ W ┃Entrée ┃
-// ┃Tab ↹ ┃ b | │ é ˊ │ p & │ o œ │ è ` │ ˆ ¡ │ v ˇ │ d ð │ l / │ j ij │ z ə │ w ̆ ┃ ⏎ ┃
+// ┃Tab ↹ ┃ b | │ é ˊ │ p & │ o œ │ è ` │ ˆ ¡ │ v ˇ │ d ð │ l / │ j ij │ z ə │ w ̆ ┃ ⏎ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
-// ┃ ┃ A Æ │ U Ù │ I ˙ │ E ¤ │ ; ̛ │ C ſ │ T Þ │ S ẞ │ R ™ │ N │ M º │ Ç , ┃ ┃
-// ┃Maj ⇬ ┃ a æ │ u ù │ i ̈ │ e € │ , ’ │ c © │ t þ │ s ß │ r ® │ n ˜ │ m ¯ │ ç ¸ ┃ ┃
+// ┃ ┃ A Æ │ U Ù │ I ˙ │ E ¤ │ ; ̛ │ C ſ │ T Þ │ S ẞ │ R ™ │ N │ M º │ Ç , ┃ ┃
+// ┃Maj ⇬ ┃ a æ │ u ù │ i ̈ │ e € │ , ’ │ c © │ t þ │ s ß │ r ® │ n ˜ │ m ¯ │ ç ¸ ┃ ┃
// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
-// ┃ ┃ Ê │ À │ Y ‘ │ X ’ │ : · │ K │ ? ̉ │ Q ̣ │ G │ H ‡ │ F ª ┃ ┃
+// ┃ ┃ Ê │ À │ Y ‘ │ X ’ │ : · │ K │ ? ̉ │ Q ̣ │ G │ H ‡ │ F ª ┃ ┃
// ┃Shift ⇧┃ ê / │ à \ │ y { │ x } │ . … │ k ~ │ ' ¿ │ q ˚ │ g µ │ h † │ f ˛ ┃Shift ⇧ ┃
// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
// ┃ ┃ ┃ ┃ Espace inséc. Espace inséc. fin ┃ ┃ ┃ ┃
@@ -692,10 +686,10 @@ xkb_symbols "dvorak" {
// Copyright © 2009 Dominique Pellé <dominique.pelle@gmail.com>
// Version: 0.1
//
-// ┌────┐
-// │ S A│ S = Reol = Shift, A = ArErl + Pennlizherenn = AltGr + Shift
-// │ s a│ s = normal, a = AltGr
-// └────┘
+// ┌─────┐
+// │ S A │ S = Reol = Shift, A = ArErl + Pennlizherenn = AltGr + Shift
+// │ s a │ s = normal, a = ArErl = AltGr
+// └─────┘
//
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ $ Γ │ 1 Δ │ 2 Θ │ 3 Λ │ 4 Ξ │ 5 Π │ 6 Σ │ 7 Φ │ 8 Ψ │ 9 Ç │ 0 Ω │ ° ß │ + ¬ ┃ ⌫ Souzañ┃
@@ -789,20 +783,20 @@ xkb_symbols "bre" {
// Occitan layout
// Author : 2009 Thomas Metz <tmetz @ free.fr>
-// Derivated from the layout defined at http://www.panoccitan.org
+// Derived from the layout defined at http://www.panoccitan.org
// Version: 0.1
-// From OSS french keyboard :
+// Differences from OSS French keyboard :
// - add á, í, ò, ó et ú, Á, Í, Ò, Ó, Ú, ñ, Ñ
// - change position of æ, ü, î, û, œ, ô, ö, ï, â, ë
-//
+//
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
-// │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃
+// │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃
// │ ² ¹ │ & ˇ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃ arrière┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃ ┃ A Á │ Z Æ │ E ¢ │ R Ê │ T Ë │ Y Û │ U Ú │ I Í │ O Ó │ P Ò │ ¨ Œ │ £ Ø ┃Entrée ┃
// ┃Tab ↹ ┃ a á │ z æ │ e € │ r ê │ t ë │ y û │ u ú │ i í │ o ó │ p ò │ ^ œ │ $ ø ┃ ⏎ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
-// ┃ ┃ Q Ä │ S „ │ D Â │ F ‚ │ G ¥ │ H Ü │ J Î │ K Ï │ L Ô │ M Ö │ % Ù │ µ ̄ ┃ ┃
+// ┃ ┃ Q Ä │ S „ │ D Â │ F ‚ │ G ¥ │ H Ü │ J Î │ K Ï │ L Ô │ M Ö │ % Ù │ µ ̄ ┃ ┃
// ┃Maj ⇬ ┃ q ä │ s ß │ d â │ f ‘ │ g ’ │ h ü │ j î │ k ï │ l ô │ m ö │ ù ' │ * ` ┃ ┃
// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
// ┃ ┃ > ≥ │ W “ │ X ” │ C ® │ V ← │ B ↑ │ N Ñ │ ? … │ . . │ / ∕ │ § − ┃ ┃
@@ -818,26 +812,8 @@ xkb_symbols "oci" {
name[Group1]= "Occitan";
- // First row
- key <TLDE> { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ² ³ ¹ ¸
- key <AE01> { [ ampersand, 1, dead_caron, dead_ogonek ] }; // & 1 ˇ ̨
- key <AE02> { [ eacute, 2, asciitilde, Eacute ] }; // é 2 ~ É
- key <AE03> { [ quotedbl, 3, numbersign, dead_breve ] }; // " 3 # ˘
- key <AE04> { [ apostrophe, 4, braceleft, 0x1002014 ] }; // ' 4 { — (tiret cadratin)
- key <AE05> { [ parenleft, 5, bracketleft, 0x1002013 ] }; // ( 5 [ – (tiret demi-cadratin)
- key <AE06> { [ minus, 6, bar, 0x1002011 ] }; // - 6 | ‑ (tiret insécable)
- key <AE07> { [ egrave, 7, grave, Egrave ] }; // è 7 ` È
- key <AE08> { [ underscore, 8, backslash, trademark ] }; // _ 8 \ ™
- key <AE09> { [ ccedilla, 9, asciicircum, Ccedilla ] }; // ç 9 ^ Ç
- key <AE10> { [ agrave, 0, at, Agrave ] }; // à 0 @ À
- key <AE11> { [ parenright, degree, bracketright, notequal ] }; // ) ° ] ≠
- key <AE12> { [ equal, plus, braceright, plusminus ] }; // = + } ±
-
- // Second row
key <AD01> { [ a, A, aacute, Aacute ] }; // a A á Á
key <AD02> { [ z, Z, ae, AE ] }; // z Z æ Æ
- key <AD03> { [ e, E, EuroSign, cent ] }; // e E € ¢
- key <AD04> { [ r, R, ecircumflex, Ecircumflex ] }; // r R ê Ê
key <AD05> { [ t, T, ediaeresis, Ediaeresis ] }; // t T ë Ë
key <AD06> { [ y, Y, ucircumflex, Ucircumflex ] }; // y Y û Û
key <AD07> { [ u, U, uacute, Uacute ] }; // u U ú Ú
@@ -845,41 +821,22 @@ xkb_symbols "oci" {
key <AD09> { [ o, O, oacute, Oacute ] }; // o O ó Ó
key <AD10> { [ p, P, ograve, Ograve ] }; // p P ò Ò
key <AD11> { [ dead_circumflex, dead_diaeresis, oe, OE ] }; // ^ ̈ ̃ œ Œ
- key <AD12> { [ dollar, sterling, oslash, Ooblique ] }; // $ £ ø Ø
- // Third row
- key <AC01> { [ q, Q, adiaeresis, Adiaeresis ] }; // q Q ä Ä
- key <AC02> { [ s, S, ssharp, doublelowquotemark ] }; // s S ß „
- key <AC03> { [ d, D, acircumflex, Acircumflex ] }; // d D â Â
- key <AC04> { [ f, F, leftsinglequotemark, singlelowquotemark ] }; // f F ‘ ‚
- key <AC05> { [ g, G, rightsinglequotemark, yen ] }; // g G ’ ¥
+ key <AC03> { [ d, D, acircumflex, Acircumflex ] }; // d D â Â
key <AC06> { [ h, H, udiaeresis, Udiaeresis ] }; // h H ü Ü
- key <AC07> { [ j, J, icircumflex, Icircumflex] }; // j J î Î
- key <AC08> { [ k, K, idiaeresis, Idiaeresis] }; // k K ï Ï
+ key <AC07> { [ j, J, icircumflex, Icircumflex ] }; // j J î Î
+ key <AC08> { [ k, K, idiaeresis, Idiaeresis ] }; // k K ï Ï
key <AC09> { [ l, L, ocircumflex, Ocircumflex ] }; // l L ô Ô
- key <AC10> { [ m, M, odiaeresis, Odiaeresis ] }; // m M ö Ö
- key <AC11> { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù
- key <BKSL> { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄
- // Fourth row
- key <LSGT> { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ≤ ≥
- key <AB01> { [ w, W, guillemotleft, leftdoublequotemark ] }; // w W « “
- key <AB02> { [ x, X, guillemotright, rightdoublequotemark ] }; // x X » ”
- key <AB03> { [ c, C, copyright, registered ] }; // c C © ®
- key <AB04> { [ v, V, rightarrow, leftarrow ] }; // v V → ←
- key <AB05> { [ b, B, downarrow, uparrow ] }; // b B ↓ ↑
- key <AB06> { [ n, N, ntilde, Ntilde ] }; // n N ñ Ñ
- key <AB07> { [ comma, question, questiondown, 0x1002026 ] }; // , ? ¿ …
- key <AB08> { [ semicolon, period, multiply, 0x10022C5 ] }; // ; . × ⋅
- key <AB09> { [ colon, slash, division, 0x1002215 ] }; // : / ÷ ∕
- key <AB10> { [ exclam, section, exclamdown, 0x1002212 ] }; // ! § ¡ −
+ key <AB04> { [ v, V, rightarrow, leftarrow ] }; // v V → ←
+ key <AB06> { [ n, N, ntilde, Ntilde ] }; // n N ñ Ñ
};
// Marc.Shapiro@inria.fr 19-sep-1998
// modifications : Etienne Herlent <eherlent@linux-france.org> june 2000
// adapted to the new input layer :
// Martin Costabel <costabel@wanadoo.fr> 3-jan-2001
-// adapted for Latin9 alphabet (ISO-8859-15):
+// adapted for Latin9 alphabet (ISO-8859-15):
// Etienne Herlent <eherlent@linux-france.org> march 2005
// This map is an almost-complete mapping of the standard French
@@ -903,8 +860,7 @@ xkb_symbols "mac" {
name[Group1]= "French (Macintosh)";
- // Alphanumeric section
- key <TLDE> { [ at, numbersign, periodcentered, Ydiaeresis ] }; // MISSING: Ydiaeresis; eherlent : ok in Latin9
+ key <TLDE> { [ at, numbersign, periodcentered, Ydiaeresis ] }; // MISSING: Ydiaeresis; eherlent : ok in Latin9
key <AE01> { [ ampersand, 1, VoidSymbol, dead_acute ] }; // MISSING: Apple
key <AE02> { [ eacute, 2, ediaeresis, Eacute ] };
key <AE03> { [ quotedbl, 3, VoidSymbol, VoidSymbol ] }; // CHECK all quotemarks
@@ -920,19 +876,19 @@ xkb_symbols "mac" {
key <AE12> { [ minus, underscore, emdash, endash ] }; // CHECK dashes
key <AD01> { [ a, A, ae, AE ] };
- key <AD02> { [ z, Z, Acircumflex, Aring ] };
+ key <AD02> { [ z, Z, Acircumflex, Aring ] };
key <AD03> { [ e, E, ecircumflex, Ecircumflex ] };
key <AD04> { [ r, R, registered, currency ] };
key <AD05> { [ t, T, VoidSymbol, VoidSymbol ] };
key <AD06> { [ y, Y, Uacute, Ydiaeresis ] }; // MISSING: Ydiaeresis; eherlent : ok in Latin9
key <AD07> { [ u, U, VoidSymbol, ordfeminine ] }; // MISSING: ordmasculine?
key <AD08> { [ i, I, icircumflex, idiaeresis ] };
- key <AD09> { [ o, O, oe, OE ] }; // MISSING: oe, OE lacking in Latin1; eherlent ok in Latin9
+ key <AD09> { [ o, O, oe, OE ] }; // MISSING: oe, OE lacking in Latin1; eherlent ok in Latin9
key <AD10> { [ p, P, VoidSymbol, VoidSymbol ] };
key <AD11> { [dead_circumflex,dead_diaeresis, ocircumflex, Ocircumflex ] };
- key <AD12> { [ dollar, asterisk, EuroSign, yen ] }; // eherlent : EuroSign in Latin9
+ key <AD12> { [ dollar, asterisk, EuroSign, yen ] }; // eherlent : EuroSign in Latin9
- key <AC01> { [ q, Q, acircumflex, Agrave ] };
+ key <AC01> { [ q, Q, acircumflex, Agrave ] };
key <AC02> { [ s, S, Ograve, VoidSymbol ] };
key <AC03> { [ d, D, VoidSymbol, VoidSymbol ] };
key <AC04> { [ f, F, VoidSymbol, periodcentered ] }; // MISSING: oblong script f??
@@ -946,7 +902,7 @@ xkb_symbols "mac" {
key <BKSL> { [ dead_grave, sterling, at, numbersign ] };
key <LSGT> { [ less, greater, VoidSymbol, VoidSymbol ] };
- key <AB01> { [ w, W, VoidSymbol, VoidSymbol ] }; // MISSING: half-guillemot (single angle bracket)
+ key <AB01> { [ w, W, VoidSymbol, VoidSymbol ] }; // MISSING: half-guillemot (single angle bracket)
key <AB02> { [ x, X, VoidSymbol, VoidSymbol ] }; // CHECK similarequal; MISSING: extra-slanted slash
key <AB03> { [ c, C, copyright, cent ] };
key <AB04> { [ v, V, diamond, leftradical ] }; // CHECK diamond, leftradical
@@ -958,7 +914,6 @@ xkb_symbols "mac" {
key <AB10> { [ equal, plus, VoidSymbol, plusminus ] };
key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
- // End alphanumeric section
key <KPDL> { [ comma,KP_Decimal ] };
diff --git a/xorg-server/xkeyboard-config/symbols/fujitsu_vndr/us b/xorg-server/xkeyboard-config/symbols/fujitsu_vndr/us
index b856393fd..30661dbb2 100644
--- a/xorg-server/xkeyboard-config/symbols/fujitsu_vndr/us
+++ b/xorg-server/xkeyboard-config/symbols/fujitsu_vndr/us
@@ -133,7 +133,6 @@ xkb_symbols {
key <KP00> { [ KP_0 ] };
// End "Keypad" section
- // begin modifier mappings
modifier_map Shift { Shift_R };
modifier_map Mod1 { Meta_L, Meta_R };
modifier_map Mod2 { Mode_switch };
diff --git a/xorg-server/xkeyboard-config/symbols/gb b/xorg-server/xkeyboard-config/symbols/gb
index 10372afcd..949b2491f 100644
--- a/xorg-server/xkeyboard-config/symbols/gb
+++ b/xorg-server/xkeyboard-config/symbols/gb
@@ -74,7 +74,6 @@ xkb_symbols "extd" {
name[Group1]="English (UK, extended WinKeys)";
- // Alphanumeric section
key <TLDE> { [ dead_grave, notsign, brokenbar, NoSymbol ] };
key <AE02> { [ 2, quotedbl, dead_diaeresis, onehalf ] };
@@ -96,7 +95,6 @@ xkb_symbols "extd" {
key <BKSL> { [ numbersign, asciitilde, dead_tilde, NoSymbol ] };
key <LSGT> { [ backslash, bar, NoSymbol, NoSymbol ] };
- // End alphanumeric section
include "level3(ralt_switch)"
};
@@ -172,8 +170,6 @@ xkb_symbols "mac" {
key <TLDE> { [ section, plusminus ] };
key <LSGT> { [ grave, asciitilde ] };
- // End alphanumeric section
-
include "level3(ralt_switch)"
include "level3(enter_switch)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/hp_vndr/us b/xorg-server/xkeyboard-config/symbols/hp_vndr/us
index aedda92d2..8bbe2e606 100644
--- a/xorg-server/xkeyboard-config/symbols/hp_vndr/us
+++ b/xorg-server/xkeyboard-config/symbols/hp_vndr/us
@@ -69,8 +69,9 @@ xkb_symbols "hil" {
key <DOWN> { [ Down ] };
key <UP> { [ Up ] };
key <RGHT> { [ Right ]};
+ // End "Editing" section
- // End "Editing" section, begin "Keypad"
+ // Begin "Keypad" section
key <KPMU> { [ KP_Multiply ]};
key <KPDV> { [ KP_Divide ]};
key <KPAD> { [ KP_Add ]};
@@ -95,8 +96,6 @@ xkb_symbols "hil" {
key <KPDL> { [ KP_Decimal ] };
// End "Keypad" section
-
- // begin modifier mappings
modifier_map Shift { Shift_R };
modifier_map Mod1 { Meta_L, Meta_R };
modifier_map Mod2 { Alt_L };
diff --git a/xorg-server/xkeyboard-config/symbols/in b/xorg-server/xkeyboard-config/symbols/in
index 5336232d1..9f0594928 100644
--- a/xorg-server/xkeyboard-config/symbols/in
+++ b/xorg-server/xkeyboard-config/symbols/in
@@ -163,7 +163,6 @@ xkb_symbols "bolnagri" {
key <AB09> { [ period, U093C ] }; // period: period, nukta
key <AB10> { [ slash, question ] };
- // begin modifier mappings
// modifier_map Shift { Shift_L };
// modifier_map Lock { Caps_Lock };
// modifier_map Control{ Control_L };
@@ -911,7 +910,6 @@ xkb_symbols "mal_lalitha" {
key <AB09> { [ period, U003E ] }; // period: period
key <AB10> { [ slash, question ] };
- // begin modifier mappings
// modifier_map Shift { Shift_L };
// modifier_map Lock { Caps_Lock };
// modifier_map Control{ Control_L };
@@ -1518,9 +1516,8 @@ xkb_symbols "jhelum" {
key <AB07> { [ U0A2E, U0A2E ] }; // M: ma
key <AB08> { [ comma, U262C ] };// comma: comma, dev abbreviation sign
key <AB09> { [ period, U0A74 ] }; // period: period, nukta
- key <AB10> { [ slash, question ] };
+ key <AB10> { [ slash, question ] };
-// begin modifier mappings
// modifier_map Shift { Shift_L };
// modifier_map Lock { Caps_Lock };
// modifier_map Control{ Control_L };
diff --git a/xorg-server/xkeyboard-config/symbols/it b/xorg-server/xkeyboard-config/symbols/it
index f0336e58b..d2a5461b5 100644
--- a/xorg-server/xkeyboard-config/symbols/it
+++ b/xorg-server/xkeyboard-config/symbols/it
@@ -67,7 +67,6 @@ xkb_symbols "mac" {
name[Group1]= "Italian (Macintosh)";
- // Alphanumeric section
key <LSGT> { [ less, greater ] };
key <TLDE> { [ at, numbersign, periodcentered ] };
key <AE01> { [ ampersand, 1, guillemotleft,guillemotright ] };
@@ -120,8 +119,6 @@ xkb_symbols "mac" {
key <AB09> { [ colon, slash, bar, backslash ] };
key <AB10> { [ ograve, exclam, exclamdown ] };
- // End alphanumeric section
-
include "kpdl(dot)"
include "level3(ralt_switch)"
};
@@ -132,8 +129,8 @@ partial alphanumeric_keys
xkb_symbols "geo" {
include "it"
include "ge(basic)"
-
name[Group1]= "Georgian (Italy)";
+
key <TLDE> { [ backslash, bar, notsign, brokenbar ] };
key <AE01> { [ 1, exclam, onesuperior ] };
key <AE02> { [ 2, quotedbl, twosuperior, dead_doubleacute ] };
@@ -145,10 +142,10 @@ xkb_symbols "geo" {
key <AE08> { [ 8, parenleft, bracketleft ] };
key <AE09> { [ 9, parenright ] };
key <AE10> { [ 0, equal, braceright, dead_ogonek ] };
- key <AE11> { [apostrophe, question, grave, questiondown ] };
+ key <AE11> { [ apostrophe, question, grave, questiondown ] };
key <AE12> { [ igrave, asciicircum, asciitilde, dead_circumflex ] };
- key <AD03> { [0x010010d4, E, EuroSign ] };
+ key <AD03> { [ 0x010010d4, E, EuroSign ] };
key <AD11> { [ egrave, eacute, bracketleft, braceleft ] };
key <AD12> { [ plus, asterisk, bracketright, braceright ] };
@@ -179,8 +176,6 @@ xkb_symbols "us" {
name[Group1]= "Italian (US keyboard with Italian letters)";
- // Alphanumeric section
-
key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
key <AE01> { [ 1, exclam, onesuperior ] };
key <AE02> { [ 2, at, twosuperior ] };
@@ -295,7 +290,6 @@ xkb_symbols "ibm" {
include "level3(ralt_switch)"
include "kpdl(comma)"
-
};
diff --git a/xorg-server/xkeyboard-config/symbols/jp b/xorg-server/xkeyboard-config/symbols/jp
index 72985fd3e..dfb56b7c2 100644
--- a/xorg-server/xkeyboard-config/symbols/jp
+++ b/xorg-server/xkeyboard-config/symbols/jp
@@ -1,22 +1,19 @@
-// based on:
-// symbols for a Japanese 106 keyboard(by tsuka@kawalab.dnj.ynu.ac.jp)
+// Symbols for Japanese 106-keys keyboards (by tsuka@kawalab.dnj.ynu.ac.jp).
-// jp106 keyboard map
partial default alphanumeric_keys
xkb_symbols "106" {
+
include "jp(common)"
name[Group1]= "Japanese";
key <AE10> { [ 0, asciitilde ] };
- key <AE13> { [ backslash, bar ] };
+ key <AE13> { [ backslash, bar ] };
};
-// common latin part of jp keyboard map
partial hidden alphanumeric_keys
xkb_symbols "common" {
- // "Common" keys for jp 106/109A layout
+ // "Common" keys for jp 106/109A layouts.
- // Alphanumeric section
key <HZTG> {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1]= [ Zenkaku_Hankaku, Kanji ]
@@ -81,29 +78,28 @@ xkb_symbols "common" {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1]= [ Henkan, Mode_switch ]
};
+
key <HKTG> {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1]= [ Hiragana_Katakana, Romaji ]
};
key <EISU> {
- type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ Eisu_toggle ]
+ type[Group1]="PC_ALT_LEVEL2",
+ symbols[Group1]= [ Eisu_toggle ]
};
key <KANA> {
- type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ Hiragana_Katakana ]
+ type[Group1]="PC_ALT_LEVEL2",
+ symbols[Group1]= [ Hiragana_Katakana ]
};
-
key <PRSC> {
- type[Group1]= "PC_ALT_LEVEL2",
- symbols[Group1]= [ Print, Execute ]
+ type[Group1]= "PC_ALT_LEVEL2",
+ symbols[Group1]= [ Print, Execute ]
};
};
-// OADG109A map
partial alphanumeric_keys
xkb_symbols "OADG109A" {
@@ -111,7 +107,7 @@ xkb_symbols "OADG109A" {
name[Group1]= "Japanese (OADG 109A)";
key <AE10> { [ 0 ] };
- key <AE13> { [ yen, bar ] };
+ key <AE13> { [ yen, bar ] };
};
// 86 keys with kana map
@@ -126,8 +122,8 @@ xkb_symbols "kana86" {
include "jp(OADG109A)"
name[Group1]= "Japanese (Kana 86)";
- key <ESC> { [ Escape ] };
- key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
+ key <ESC> { [ Escape ] };
+ key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
key <BKSP> { [ BackSpace ] };
key <TAB> { [ Tab, ISO_Left_Tab ] };
key <RTRN> { [ Return ] };
@@ -137,9 +133,9 @@ xkb_symbols "kana86" {
key <LALT> { [ Alt_L ] };
key <SPCE> { [ space ] };
key <RALT> { [ Alt_R ] };
-// for compatability with other keyboards connected at the same time
- key <RWIN> { [ Super_R ] };
- key <RCTL> { [ Control_R ] };
+ // For compatibility with other keyboards connected at the same time:
+ key <RWIN> { [ Super_R ] };
+ key <RCTL> { [ Control_R ] };
};
partial alphanumeric_keys
@@ -147,11 +143,11 @@ xkb_symbols "kana" {
name[Group1]= "Japanese (Kana)";
- // Alphanumeric section
key <HZTG> {
type[Group1]="PC_ALT_LEVEL2",
symbols[Group1]= [ Zenkaku_Hankaku, Kanji ]
};
+
key <AE01> { [ kana_NU ] };
key <AE02> { [ kana_FU ] };
key <AE03> { [ kana_A, kana_a ] };
@@ -176,7 +172,7 @@ xkb_symbols "kana" {
key <AD08> { [ kana_NI ] };
key <AD09> { [ kana_RA ] };
key <AD10> { [ kana_SE ] };
- key <AD11> { [ voicedsound ] };
+ key <AD11> { [ voicedsound ] };
key <AD12> { [ semivoicedsound, kana_openingbracket ] };
key <CAPS> { [ Eisu_toggle, Caps_Lock ] };
@@ -217,21 +213,19 @@ xkb_symbols "kana" {
symbols[Group1]= [ Hiragana_Katakana, Romaji ]
};
- // End alphanumeric section
-
key <PRSC> {
- type[Group1]= "PC_ALT_LEVEL2",
- symbols[Group1]= [ Print, Execute ]
+ type[Group1]= "PC_ALT_LEVEL2",
+ symbols[Group1]= [ Print, Execute ]
};
};
partial alphanumeric_keys
xkb_symbols "nicola_f_bs" {
key <BKSP> {
- type="",
- symbols[Group1]= [ bracketright, braceright ]
+ type="",
+ symbols[Group1]= [ bracketright, braceright ]
};
- key <AE10> { [ 0,underscore ] };
+ key <AE10> { [ 0, underscore ] };
key <AD11> { [ colon, asterisk ] };
key <AC11> { [ BackSpace, BackSpace ] };
key <AC12> { [ Escape ] };
@@ -241,7 +235,7 @@ xkb_symbols "nicola_f_bs" {
// Copied from macintosh_vndr/jp
partial alphanumeric_keys
xkb_symbols "mac" {
- name[Group1] = "Japanese (Macintosh)";
+ name[Group1]= "Japanese (Macintosh)";
include "jp(kana)"
replace key <CAPS> { [ Caps_Lock ] };
@@ -254,13 +248,13 @@ xkb_symbols "hztg_escape" {
partial alphanumeric_keys
xkb_symbols "dvorak" {
- name[Group1] = "Japanese (Dvorak)";
+ name[Group1]= "Japanese (Dvorak)";
include "jp(OADG109A)"
key <AE11> { [ at, grave ] };
key <AD01> { [ colon, asterisk ] };
- key <AD02> { [ comma, less ] };
+ key <AD02> { [ comma, less ] };
key <AD03> { [ period, greater ] };
key <AD04> { [ p, P ] };
key <AD05> { [ y, Y ] };
diff --git a/xorg-server/xkeyboard-config/symbols/la b/xorg-server/xkeyboard-config/symbols/la
index dc101bc22..b302f5e71 100644
--- a/xorg-server/xkeyboard-config/symbols/la
+++ b/xorg-server/xkeyboard-config/symbols/la
@@ -3,13 +3,11 @@
partial default alphanumeric_keys
xkb_symbols "basic" {
- // Describes the differences between a very simple US/ASCII
- // keyboard and a Lao keyboard
- // This keymap uses the Lao keyboard standard [kind of] widely used inLaos
+ // This keymap describes the Lao keyboard standard,
+ // which is [kind of] widely used in Laos.
name[Group1]= "Lao";
- // Alphanumeric section
key <TLDE> { [ 0x100200D ]};
key <AE01> { [ 0x1000ea2, 0x1000ed1 ]};
key <AE01> { [ 0x1000ea2, 0x1000ed1 ]};
@@ -37,7 +35,7 @@ xkb_symbols "basic" {
key <AD10> { [ 0x1000e8d, 0x1000ebd ]};
key <AD11> { [ 0x1000e9a, minus ]};
key <AD12> { [ 0x1000ea5, braceright ]};
- key <BKSL> { [ 0x1000edc, 0x1000edd ]};
+ key <BKSL> { [ 0x1000edc, 0x1000edd ]};
key <AC01> { [ 0x1000eb1 ]};
key <AC02> { [ 0x1000eab, semicolon ]};
@@ -61,27 +59,23 @@ xkb_symbols "basic" {
key <AB08> { [ 0x1000ea1, grave ]};
key <AB09> { [ 0x1000ec3, dollar ]};
key <AB10> { [ 0x1000e9d, parenright ]};
-
};
+
partial
xkb_symbols "stea" {
- // Describes the differences between a very simple US/ASCII
- // keyboard and a Lao keyboard
- // This keymap uses the proposed Lao keyboard standard by the
- // PAN Localization Project
+ // This keymap describes the proposed Lao keyboard standard by
+ // the PAN Localization Project.
// Science Technology and Environment Agency of Lao PDR
// National University Computer and Emergency Science of Pakistan
// International Development Research Center
- // Caveat: assigning multiple codepoints to a single key doesn't
- // work in XKB. Therefor the combining codepoint assignments
+ // Caveat: assigning multiple codepoints to a single key doesn't
+ // work in XKB. Therefore the combining codepoint assignments
// have been omitted.
-
name[Group1]= "Lao (STEA proposed standard layout)";
- // Alphanumeric section
key <TLDE> { [ quotedbl, apostrophe ]};
key <AE01> { [ 0x1000ea2, 1, 0x1000ed1 ]};
key <AE02> { [ 0x1000e9f, 2, 0x1000ed2 ]};
@@ -94,23 +88,23 @@ xkb_symbols "stea" {
key <AE09> { [ 0x1000e88, 7, 0x1000ed9 ]};
key <AE10> { [ 0x1000e82, 8, 0x1000ed0 ]};
key <AE11> { [ 0x1000e8a, 9 ]};
- key <AE12> { [ 0x1000ecd ]};
+ key <AE12> { [ 0x1000ecd ]};
- key <AD01> { [ 0x1000ebb ]};
+ key <AD01> { [ 0x1000ebb ]};
key <AD02> { [ 0x1000ec4, 0 ]};
key <AD03> { [ 0x1000eb3, asterisk ]};
key <AD04> { [ 0x1000e9e, underscore ]};
key <AD05> { [ 0x1000eb0, plus ]};
- key <AD06> { [ 0x1000eb4 ]};
- key <AD07> { [ 0x1000eb5 ]};
+ key <AD06> { [ 0x1000eb4 ]};
+ key <AD07> { [ 0x1000eb5 ]};
key <AD08> { [ 0x1000eae, 0x1000ea3 ]};
key <AD09> { [ 0x1000e99, 0x1000edc ]};
- key <AD10> { [ 0x1000e8d, 0x1000ebd ]};
- key <AD11> { [ 0x1000e9a, minus ]};
- key <AD12> { [ 0x1000ea5 ]};
+ key <AD10> { [ 0x1000e8d, 0x1000ebd ]};
+ key <AD11> { [ 0x1000e9a, minus ]};
+ key <AD12> { [ 0x1000ea5 ]};
key <BKSL> { [ slash, backslash ]};
- key <AC01> { [ 0x1000eb1 ]};
+ key <AC01> { [ 0x1000eb1 ]};
key <AC02> { [ 0x1000eab, semicolon ]};
key <AC03> { [ 0x1000e81, period ]};
key <AC04> { [ 0x1000e94, comma ]};
@@ -126,8 +120,8 @@ xkb_symbols "stea" {
key <AB02> { [ 0x1000e9b, parenleft ]};
key <AB03> { [ 0x1000ec1, 0x1000eaf ]};
key <AB04> { [ 0x1000ead, x ]};
- key <AB05> { [ 0x1000eb6 ]};
- key <AB06> { [ 0x1000eb7 ]};
+ key <AB05> { [ 0x1000eb6 ]};
+ key <AB06> { [ 0x1000eb7 ]};
key <AB07> { [ 0x1000e97, 0x1000ec6 ]};
key <AB08> { [ 0x1000ea1, 0x1000edd ]};
key <AB09> { [ 0x1000ec3, dollar ]};
@@ -138,5 +132,4 @@ xkb_symbols "stea" {
key <KPDL> { [ comma, period ]};
include "level3(ralt_switch)"
-
};
diff --git a/xorg-server/xkeyboard-config/symbols/lv b/xorg-server/xkeyboard-config/symbols/lv
index 0eee7deea..4b0ba6c04 100644
--- a/xorg-server/xkeyboard-config/symbols/lv
+++ b/xorg-server/xkeyboard-config/symbols/lv
@@ -1,4 +1,3 @@
-// $XKeyboardConfig$
// Latvian keymap version 1.1
// Copyright (C) Dmitry Golubev <lastguru@mail.ru>, 2003-2004
//
@@ -29,7 +28,7 @@
// Modified by Aldis Berjoza <aldis@bsdroot.lv>, 12 april 2011
// Changes:
-// * Added Latvian Ergonomic, Latvian Adapted and Latvian Modernd variants
+// * Added Latvian Ergonomic, Latvian Adapted and Latvian Modern variants
// Author of this work is Valdis Vītoliņš
// http://odo.lv/LatvianKeyboard
// http://odo.lv/Recipes/LatvianKeyboard#HErgonomiskC481stastatC5ABrasuzlikC5A1anauzLinuxdatora%22
diff --git a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/ch b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/ch
index 54b61d215..7948ab19d 100644
--- a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/ch
+++ b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/ch
@@ -8,21 +8,19 @@ xkb_symbols "extended" {
name[Group1]= "Switzerland - German, Mac";
- // Alphanumeric section
-
- key <AE01> { [ 1, plus, plusminus, infinity ] };
- key <AE02> { [ 2, quotedbl, leftdoublequotemark, rightdoublequotemark ] };
+ key <AE01> { [ 1, plus, plusminus, infinity ] };
+ key <AE02> { [ 2, quotedbl, leftdoublequotemark, rightdoublequotemark ] };
key <AE03> { [ 3, asterisk, numbersign, leftcaret ] };
// not displayed here
key <AE04> { [ 4, ccedilla, Ccedilla, slash ] };
key <AE05> { [ 5, percent, bracketleft ] };
key <AE06> { [ 6, ampersand, bracketright ] };
- key <AE07> { [ 7, slash, bar, backslash ] };
+ key <AE07> { [ 7, slash, bar, backslash ] };
key <AE08> { [ 8, parenleft, braceleft, Ograve ] };
key <AE09> { [ 9, parenright, braceright, Ocircumflex ] };
key <AE10> { [ 0, equal, notequal, Uacute ] };
- key <AE11> { [ apostrophe, question, questiondown, NoSymbol ] };
- key <AE12> { [ dead_circumflex,dead_grave, dead_acute, asciicircum ] };
+ key <AE11> { [ apostrophe, question, questiondown, NoSymbol ] };
+ key <AE12> { [ dead_circumflex,dead_grave, dead_acute, asciicircum ] };
key <AD01> { [ q, Q, oe, OE ] };
key <AD02> { [ w, W, Greek_SIGMA, Aacute ] };
key <AD03> { [ e, E, EuroSign, Ediaeresis ] };
@@ -33,8 +31,8 @@ xkb_symbols "extended" {
key <AD08> { [ i, I, exclamdown, idotless ] };
key <AD09> { [ o, O, oslash, Ooblique ] };
key <AD10> { [ p, P, Greek_pi, Greek_PI ] };
- key <AD11> { [ udiaeresis, egrave, section, ydiaeresis ] };
- key <AD12> { [ dead_diaeresis, exclam, grave, apostrophe ] };
+ key <AD11> { [ udiaeresis, egrave, section, ydiaeresis ] };
+ key <AD12> { [ dead_diaeresis, exclam, grave, apostrophe ] };
key <AC01> { [ a, A, aring, Aring ] };
key <AC02> { [ s, S, ssharp, NoSymbol ] };
// ligature fl
@@ -60,11 +58,11 @@ xkb_symbols "extended" {
key <AB08> { [ comma, semicolon, guillemotleft, guillemotright ] };
key <AB09> { [ period, colon, ellipsis, division ] };
key <AB10> { [ minus, underscore, hyphen, emdash ] };
- key <TLDE> { [ section, degree, NoSymbol, NoSymbol ] };
+ key <TLDE> { [ section, degree, NoSymbol, NoSymbol ] };
// ligature fi // per mille
key <SPCE> { [ space, nobreakspace, nobreakspace ] };
- key <LSGT> { [ less, greater, lessthanequal, greaterthanequal ] };
- key <BKSL> { [ dollar, sterling, paragraph, enfilledcircbullet ] };
+ key <LSGT> { [ less, greater, lessthanequal, greaterthanequal ] };
+ key <BKSL> { [ dollar, sterling, paragraph, enfilledcircbullet ] };
include "kpdl(comma)"
include "level3(ralt_switch)"
@@ -78,9 +76,6 @@ xkb_symbols "de" {
partial alphanumeric_keys
xkb_symbols "fr" {
- // Describes the differences between a very simple US/ASCII
- // keyboard and a very simple Swiss/French keybaord
-
include "macintosh_vndr/ch(extended)"
name[Group1]= "Switzerland - French, Mac";
diff --git a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/de b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/de
index da5bc7772..66da8281e 100644
--- a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/de
+++ b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/de
@@ -4,12 +4,11 @@ default partial alphanumeric_keys
xkb_symbols "basic" {
// Describes the differences between a very simple US/ASCII
- // keyboard and a very simple German keybaord
+ // keyboard and a simple German keyboard.
include "latin"
name[Group1]= "Germany - Mac";
- // Alphanumeric section
key <TLDE> { [ dead_circumflex, degree, notsign ] };
key <AE01> { [ 1, exclam, exclamdown, at ] };
key <AE02> { [ 2, quotedbl, twosuperior ] };
@@ -53,7 +52,6 @@ xkb_symbols "basic" {
include "kpdl(comma)"
include "level3(ralt_switch)"
-
};
partial alphanumeric_keys
@@ -62,14 +60,14 @@ xkb_symbols "Sundeadkeys" {
include "macintosh_vndr/de(basic)"
name[Group1]= "Germany - Mac, Sun dead keys";
- key <TLDE> { [ SunFA_Circum, degree, notsign ] };
- key <AE12> { [ SunFA_Acute, SunFA_Grave, SunFA_Cedilla ] };
+ key <TLDE> { [ SunFA_Circum, degree, notsign ] };
+ key <AE12> { [ SunFA_Acute, SunFA_Grave, SunFA_Cedilla ] };
key <AD11> { [ udiaeresis, Udiaeresis, SunFA_Diaeresis ] };
- key <AD12> { [ plus, asterisk, SunFA_Tilde, dead_macron ] };
- key <AC10> { [ odiaeresis, Odiaeresis, SunFA_Acute ] };
- key <AC11> { [ adiaeresis, Adiaeresis, SunFA_Circum ] };
+ key <AD12> { [ plus, asterisk, SunFA_Tilde, dead_macron ] };
+ key <AC10> { [ odiaeresis, Odiaeresis, SunFA_Acute ] };
+ key <AC11> { [ adiaeresis, Adiaeresis, SunFA_Circum ] };
- key <BKSL> { [ numbersign, acute, SunFA_Grave ] };
+ key <BKSL> { [ numbersign, acute, SunFA_Grave ] };
};
partial alphanumeric_keys
diff --git a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/dk b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/dk
index 11e38598c..e464519e0 100644
--- a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/dk
+++ b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/dk
@@ -21,26 +21,24 @@ xkb_symbols "basic" {
key <AE08> { [ 8, parenleft, bracketleft, guillemotleft ]};
key <AE09> { [ 9, parenright, bracketright, guillemotright ]};
key <AE10> { [ 0, equal, braceright, degree ]};
+ key <AE11> { [ plus, question, plusminus, questiondown ]};
+ key <AE12> { [ dead_acute, dead_grave, bar, brokenbar ]};
+ key <AB03> { [ c, C, copyright, NoSymbol ]};
key <AB08> { [ comma, semicolon, dead_cedilla, dead_ogonek ]};
key <AB09> { [ period, colon, periodcentered, dead_abovedot ]};
- key <AB03> { [ c, C, copyright, NoSymbol ]};
key <AB10> { [ minus, underscore, hyphen, macron ]};
- key <AC01> { [ a, A, ordfeminine, masculine ]};
- key <AC03> { [ d, D, eth, ETH ]};
- key <AD03> { [ e, E, EuroSign, cent ]};
- key <AD04> { [ r, R, registered, NoSymbol ]};
- key <AD05> { [ t, T, thorn, THORN ]};
- key <AD08> { [ i, I, NoSymbol, NoSymbol ]};
- key <AD09> { [ o, O, oe, OE ]};
- key <AC10> { [ ae, AE ]};
- key <AE11> { [ plus, question, plusminus, questiondown ]};
+ key <AC01> { [ a, A, ordfeminine, masculine ]};
+ key <AC03> { [ d, D, eth, ETH ]};
+ key <AC10> { [ ae, AE ]};
key <AC11> { [ oslash, Ooblique ]};
- key <BKSL> { [ apostrophe, asterisk, dead_doubleacute, multiply ]};
+ key <AD03> { [ e, E, EuroSign, cent ]};
+ key <AD04> { [ r, R, registered, NoSymbol ]};
+ key <AD05> { [ t, T, thorn, THORN ]};
+ key <AD08> { [ i, I, NoSymbol, NoSymbol ]};
+ key <AD09> { [ o, O, oe, OE ]};
key <AD11> { [ aring, Aring ]};
- key <AE12> { [ dead_acute, dead_grave, bar, brokenbar ]};
- key <AD12> { [ dead_diaeresis, dead_circumflex, dead_tilde, dead_caron ]};
-
- // End alphanumeric section
+ key <AD12> { [ dead_diaeresis, dead_circumflex, dead_tilde, dead_caron ]};
+ key <BKSL> { [ apostrophe, asterisk, dead_doubleacute, multiply ]};
include "eurosign(e)"
include "level3(ralt_switch)"
@@ -52,7 +50,7 @@ xkb_symbols "nodeadkeys" {
name[Group1]= "Denmark - Mac, eliminate dead keys";
key <AE12> { [ acute, grave, bar, ogonek ] };
- key <AD12> { [ diaeresis, asciicircum, asciitilde, dead_macron ] };
+ key <AD12> { [ diaeresis, asciicircum, asciitilde, dead_macron ] };
};
partial alphanumeric_keys
diff --git a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/fi b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/fi
index 7a865d2bc..842c7b6cf 100644
--- a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/fi
+++ b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/fi
@@ -1,15 +1,9 @@
partial default alphanumeric_keys
xkb_symbols "basic" {
-
- // Describes the differences between a very simple mac_US
- // keyboard and a very simple Swedish(Finland) keybaord
-
include "macintosh_vndr/se(basic)" // for consistent naming
name[Group1]= "Finland - Mac";
-
};
-
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "macintosh_vndr/se(basic)" // for consistent naming
diff --git a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/fr b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/fr
index 9a8f8de23..b2c9354e0 100644
--- a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/fr
+++ b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/fr
@@ -33,7 +33,6 @@ xkb_symbols "extended" {
key <ESC> { [ Escape ] };
- // Alphanumeric section
key <TLDE> { [ at, numbersign, periodcentered, Ydiaeresis ] };
key <ENTR> { [ KP_Enter ] };
key <AE01> { [ ampersand, 1, VoidSymbol, dead_acute ] }; // MISSING: Apple
@@ -91,7 +90,6 @@ xkb_symbols "extended" {
key <AB10> { [ equal, plus, notequal, plusminus ] };
key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
- // End alphanumeric section
include "level3(ralt_switch)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/gb b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/gb
index 4e4248561..f85078aaa 100644
--- a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/gb
+++ b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/gb
@@ -12,8 +12,6 @@ xkb_symbols "basic" {
key <AE03> { [ 3, sterling, numbersign ] };
key <TLDE> { [ section, plusminus ] };
key <LSGT> { [ grave, asciitilde ] };
-
- // End alphanumeric section
include "level3(ralt_switch)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/it b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/it
index 2438231cd..3784b0e05 100644
--- a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/it
+++ b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/it
@@ -2,7 +2,6 @@ xkb_symbols "extended" {
name[Group1]= "Italy - Mac";
- // Alphanumeric section
key <LSGT> { [ less, greater ] };
key <TLDE> { [ at, numbersign, periodcentered ] };
key <AE01> { [ ampersand, 1, guillemotleft,guillemotright ] };
@@ -55,8 +54,6 @@ xkb_symbols "extended" {
key <AB09> { [ colon, slash, bar, backslash ] };
key <AB10> { [ ograve, exclam, exclamdown ] };
- // End alphanumeric section
-
include "kpdl(dot)"
include "level3(ralt_switch)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/latam b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/latam
index dcb9db624..485f12720 100644
--- a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/latam
+++ b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/latam
@@ -2,7 +2,7 @@ partial default alphanumeric_keys
xkb_symbols "basic" {
// Describes the differences between a very simple mac_US
- // keyboard and a very simple Spanish keybaord
+ // keyboard and a very simple Spanish keyboard.
include "latin"
name[Group1]= "Latin American - Mac";
@@ -31,7 +31,5 @@ xkb_symbols "basic" {
key <AC11> { [ semicolon, colon ] };
key <BKSL> { [ apostrophe, quotedbl ] };
- // End alphanumeric section
-
include "level3(ralt_switch)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/nl b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/nl
index 5eb66c444..ad0ee4bf2 100644
--- a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/nl
+++ b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/nl
@@ -1,15 +1,9 @@
partial default alphanumeric_keys
xkb_symbols "basic" {
- // Describes the differences between a very simple mac_US
- // keyboard and a very simple netherland keybaord
-
include "latin"
name[Group1]= "Netherlands - Mac";
include "level3(ralt_switch)"
-
-// do just nothing
-
};
diff --git a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/no b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/no
index fb0cb74a2..53e62cf6d 100644
--- a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/no
+++ b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/no
@@ -2,7 +2,7 @@ partial default alphanumeric_keys
xkb_symbols "basic" {
// Describes the differences between a very simple en_US
- // keyboard and a very simple Norwegian keybaord
+ // keyboard and a very simple Norwegian keyboard.
include "latin"
@@ -10,28 +10,26 @@ xkb_symbols "basic" {
key <TLDE> { [ bar, section ] };
key <AE02> { [ 2, quotedbl, at, oneeighth ] };
+ key <AE03> { [ 3, numbersign, sterling, sterling ] };
key <AE04> { [ 4, currency, dollar, dollar ] };
- key <AE03> { [ 3, numbersign, sterling, sterling ] };
key <AE06> { [ 6, ampersand ] };
key <AE07> { [ 7, slash, bar, backslash ] };
- key <AE08> { [ 8, parenleft, bracketleft, braceleft ] };
- key <AE09> { [ 9, parenright, bracketright, braceright ] };
+ key <AE08> { [ 8, parenleft, bracketleft, braceleft ] };
+ key <AE09> { [ 9, parenright, bracketright, braceright ] };
key <AE10> { [ 0, equal ] };
+ key <AE11> { [ plus, question ] };
+ key <AE12> { [ dead_grave, dead_acute, acute, dead_ogonek ] };
key <AB08> { [ comma, semicolon ] };
key <AB09> { [ period, colon ] };
key <AB10> { [ minus, underscore ] };
- key <AC10> { [ oslash, Ooblique, odiaeresis, Odiaeresis ] };
- key <AE11> { [ plus, question ] };
+ key <AC10> { [ oslash, Ooblique, odiaeresis, Odiaeresis ] };
key <AC11> { [ ae, AE ] };
key <AD11> { [ aring, Aring ] };
- key <AE12> { [ dead_grave, dead_acute, acute, dead_ogonek ] };
- key <AD12> { [ diaeresis, asciicircum, asciitilde, dead_macron ] };
+ key <AD12> { [ diaeresis, asciicircum, asciitilde, dead_macron ] };
key <BKSL> { [ at, asterisk ] };
key <LSGT> { [ less, greater ] };
- // End alphanumeric section
-
include "eurosign(e)"
include "level3(ralt_switch)"
};
@@ -45,6 +43,6 @@ xkb_symbols "nodeadkeys" {
name[Group1]= "Norway - Mac, eliminate dead keys";
key <AE12> { [ grave, acute, acute, ogonek ] };
- key <AD12> { [ diaeresis, asciicircum, asciitilde, macron ] };
+ key <AD12> { [ diaeresis, asciicircum, asciitilde, macron ] };
};
diff --git a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/pt b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/pt
index 01ac86d85..f5b56a2c2 100644
--- a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/pt
+++ b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/pt
@@ -4,7 +4,7 @@ partial default alphanumeric_keys
xkb_symbols "basic" {
// Describes the differences between a very simple en_US
- // keyboard and a very simple Portuguese keybaord
+ // keyboard and a very simple Portuguese keyboard.
include "latin"
@@ -12,8 +12,8 @@ xkb_symbols "basic" {
key <LSGT> { [ less, greater, bar, brokenbar ] };
key <AE02> { [ 2, quotedbl, at, oneeighth ] };
- key <AE04> { [ 4, dollar, section, dollar ] };
- key <AE03> { [ 3, numbersign, sterling, sterling ] };
+ key <AE03> { [ 3, numbersign, sterling, sterling ] };
+ key <AE04> { [ 4, dollar, section, dollar ] };
key <AE06> { [ 6, ampersand ] };
key <AE07> { [ 7, slash ] };
key <AE08> { [ 8, parenleft, bracketleft, braceleft ] };
@@ -29,7 +29,6 @@ xkb_symbols "basic" {
key <AC12> { [ backslash, bar ] };
key <AD11> { [ masculine, ordfeminine ] };
key <AD12> { [ dead_acute, dead_grave ] };
- // End alphanumeric section
include "eurosign(e)"
include "level3(ralt_switch)"
diff --git a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/se b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/se
index d2d05f248..beb226fa3 100644
--- a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/se
+++ b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/se
@@ -2,7 +2,7 @@ partial default alphanumeric_keys
xkb_symbols "basic" {
// Describes the differences between a very simple en_US
- // keyboard and a very simple Swedish(Sweden) keybaord
+ // keyboard and a very simple Swedish(Sweden) keyboard.
include "latin"
@@ -11,25 +11,25 @@ xkb_symbols "basic" {
key <TLDE> { [ section, degree ] };
key <AE01> { [ 1, exclam, copyright, exclamdown ] };
- key <AE02> { [ 2, quotedbl, at, oneeighth ] };
+ key <AE02> { [ 2, quotedbl, at, oneeighth ] };
key <AE03> { [ 3, numbersign, sterling, yen ] };
- key <AE04> { [ 4, currency, dollar, cent ] };
+ key <AE04> { [ 4, currency, dollar, cent ] };
key <AE06> { [ 6, ampersand ] };
- key <AE07> { [ 7, slash, bar, backslash ] };
+ key <AE07> { [ 7, slash, bar, backslash ] };
key <AE08> { [ 8, parenleft, bracketleft, braceleft ] };
key <AE09> { [ 9, parenright, bracketright, braceright ] };
key <AB08> { [ comma, semicolon ] };
key <AE10> { [ 0, equal ] };
+ key <AE11> { [ plus, question ] };
+ key <AE12> { [ acute, grave ] };
key <AB09> { [ period, colon ] };
key <AB10> { [ minus, underscore ] };
- key <AC10> { [ odiaeresis, Odiaeresis, oslash, Ooblique ] };
- key <AE11> { [ plus, question ] };
- key <AC11> { [ adiaeresis, Adiaeresis, ae, AE ] };
+ key <AC10> { [ odiaeresis, Odiaeresis, oslash, Ooblique ] };
+ key <AC11> { [ adiaeresis, Adiaeresis, ae, AE ] };
key <AD11> { [ aring, Aring ] };
- key <AE12> { [ acute, grave ] };
key <AD12> { [ diaeresis, asciicircum, asciitilde ] };
- key <BKSL> { [ apostrophe, asterisk, at ] };
- key <LSGT> { [ less, greater, bar, brokenbar ] };
+ key <BKSL> { [ apostrophe, asterisk, at ] };
+ key <LSGT> { [ less, greater, bar, brokenbar ] };
include "kpdl(comma)"
include "eurosign(e)"
diff --git a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/us b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/us
index d0cf5600b..81e4b77b9 100644
--- a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/us
+++ b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/us
@@ -5,7 +5,6 @@ xkb_symbols "extended" {
name[Group1]= "USA";
key <ESC> { [ Escape ] };
- // Alphanumeric section
key <TLDE> { [ grave, asciitilde ] };
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, at ] };
@@ -58,13 +57,11 @@ xkb_symbols "extended" {
key <AB10> { [ slash, question ] };
key <SPCE> { [ space ] };
- // End alphanumeric section
-
include "eurosign(e)"
include "keypad"
- key <KPEQ> { [ equal ] };
+ key <KPEQ> { [ equal ] };
};
hidden
@@ -104,11 +101,11 @@ xkb_symbols "oldmac" {
key <RGHT> { [ Right ] };
// End "Editing" section
- key <BKSP> { [ BackSpace ] };
- key <TAB> { [ Tab, ISO_Left_Tab ] };
+ key <BKSP> { [ BackSpace ] };
+ key <TAB> { [ Tab, ISO_Left_Tab ] };
key <RTRN> { [ Return ] };
key <CAPS> { [ Caps_Lock ] };
- key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
+ key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
// Begin "Modifier" section
key <LFSH> { [ Shift_L ] };
diff --git a/xorg-server/xkeyboard-config/symbols/md b/xorg-server/xkeyboard-config/symbols/md
index f7700e930..18b32fdee 100644
--- a/xorg-server/xkeyboard-config/symbols/md
+++ b/xorg-server/xkeyboard-config/symbols/md
@@ -30,12 +30,10 @@ xkb_symbols "basic" {
partial alphanumeric_keys
xkb_symbols "gag" {
-include "level3(ralt_switch)"
-include "us(basic)"
+ include "us(basic)"
-name[Group1]="Moldavian (Gagauz)";
+ name[Group1]="Moldavian (Gagauz)";
- // Alphanumeric section
key <TLDE> { [ grave, asciitilde ] };
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, quotedbl, at ] };
@@ -87,6 +85,6 @@ name[Group1]="Moldavian (Gagauz)";
key <AB10> { [ period, greater, slash ] };
key <BKSL> { [ backslash, bar ] };
- // End alphanumeric section
-
+
+ include "level3(ralt_switch)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/mm b/xorg-server/xkeyboard-config/symbols/mm
index 8ab8f0de2..060e76ade 100644
--- a/xorg-server/xkeyboard-config/symbols/mm
+++ b/xorg-server/xkeyboard-config/symbols/mm
@@ -2,7 +2,6 @@ partial default alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Burmese";
- // Alphanumeric section
key <TLDE> { [ U1050, U100E, grave, asciitilde ] };
key <AE01> { [ U1041, U100D, 1, exclam ] };
key <AE02> { [ U1042, U1052, 2, at ] };
@@ -54,5 +53,4 @@ xkb_symbols "basic" {
key <AB10> { [ slash, question ] };
key <BKSL> { [ U104F, U1051, backslash, bar ] };
- // End alphanumeric section
};
diff --git a/xorg-server/xkeyboard-config/symbols/mn b/xorg-server/xkeyboard-config/symbols/mn
index 279514a4a..943cc0c1f 100644
--- a/xorg-server/xkeyboard-config/symbols/mn
+++ b/xorg-server/xkeyboard-config/symbols/mn
@@ -60,8 +60,6 @@ xkb_symbols "basic" {
key <AB09> { [ Cyrillic_ve, Cyrillic_VE, guillemotright ] };
key <AB10> { [ Cyrillic_yu, Cyrillic_YU, backslash ] };
- // End alphanumeric section
-
key <SPCE> { [ space, space, nobreakspace ] };
include "level3(ralt_switch)"
diff --git a/xorg-server/xkeyboard-config/symbols/mv b/xorg-server/xkeyboard-config/symbols/mv
index e82b1e873..5c9177b06 100644
--- a/xorg-server/xkeyboard-config/symbols/mv
+++ b/xorg-server/xkeyboard-config/symbols/mv
@@ -1,7 +1,4 @@
-//
-// NOTES:
-//
-//Keymap for thaana/divehi script (divehi language)
+// Keymap for Thaana/Dhivehi script (Dhivehi language).
partial default alphanumeric_keys
xkb_symbols "basic" {
@@ -32,12 +29,9 @@ xkb_symbols "basic" {
key <AD08> { [ 0x10007A8, 0x10007A9 ] };
key <AD09> { [ 0x10007AE, 0x10007AF ] };
key <AD10> { [ 0x1000795, division ] };
-// The following brackets are as they appear on the US_en keyboard.
-//Please verify whether the names used are correct. I referred to keysymdef.h
key <AD11> { [ bracketleft, braceleft ] };
key <AD12> { [ bracketright, braceright ] };
-
key <AC01> { [ 0x10007A6, 0x10007A7 ] };
key <AC02> { [ 0x1000790, 0x1000781 ] };
key <AC03> { [ 0x100078B, 0x1000791 ] };
@@ -53,7 +47,6 @@ xkb_symbols "basic" {
key <LSGT> { [ bar, brokenbar ] };
key <AB01> { [ 0x1000792, 0x10007A1 ] };
-//multiply sign is the same as the algebraic symbol which looks like an italicized x. I am presuming its the same thing here. If not, please substitute an 'x' instead
key <AB02> { [ multiply, 0x1000798 ] };
key <AB03> { [ 0x1000797, 0x100079D ] };
key <AB04> { [ 0x1000788, 0x10007A5 ] };
@@ -64,10 +57,6 @@ xkb_symbols "basic" {
key <AB09> { [ period, greater ] };
key <AB10> { [ slash, Arabic_question_mark ] };
- // End alphanumeric section
-
- // Begin modifier mappings
-
modifier_map Shift { Shift_L };
modifier_map Lock { Caps_Lock };
modifier_map Control{ Control_L };
diff --git a/xorg-server/xkeyboard-config/symbols/nec_vndr/jp b/xorg-server/xkeyboard-config/symbols/nec_vndr/jp
index 6a9c32832..2931f3ad5 100644
--- a/xorg-server/xkeyboard-config/symbols/nec_vndr/jp
+++ b/xorg-server/xkeyboard-config/symbols/nec_vndr/jp
@@ -93,7 +93,6 @@ default xkb_symbols "pc98" {
key <NFER> { [ Muhenkan ] };
key <SPCE> { [ space ] };
key <XFER> { [ Henkan, Kanji ] };
-
// End alphanumeric section
// Begin "Function" section
@@ -154,7 +153,6 @@ default xkb_symbols "pc98" {
// key <KPEN> { [ KP_Enter ] };
// End "Keypad" section
- // begin modifier mappings
modifier_map Shift { Shift_L };
modifier_map Lock { Caps_Lock };
modifier_map Control{ Control_L };
diff --git a/xorg-server/xkeyboard-config/symbols/nl b/xorg-server/xkeyboard-config/symbols/nl
index 5e3940b99..ed25af68f 100644
--- a/xorg-server/xkeyboard-config/symbols/nl
+++ b/xorg-server/xkeyboard-config/symbols/nl
@@ -120,7 +120,6 @@ xkb_symbols "Sundeadkeys" {
// For naming consistency
include "nl(basic)"
-
};
partial alphanumeric_keys
@@ -136,17 +135,11 @@ xkb_symbols "sundeadkeys" {
partial alphanumeric_keys
xkb_symbols "mac" {
- // Describes the differences between a very simple mac_US
- // keyboard and a very simple netherland keybaord
-
include "latin"
name[Group1]= "Dutch (Macintosh)";
include "level3(ralt_switch)"
-
-// do just nothing
-
};
// EXTRAS:
diff --git a/xorg-server/xkeyboard-config/symbols/no b/xorg-server/xkeyboard-config/symbols/no
index 208d1ecb2..5e4cffdcf 100644
--- a/xorg-server/xkeyboard-config/symbols/no
+++ b/xorg-server/xkeyboard-config/symbols/no
@@ -11,11 +11,11 @@ xkb_symbols "basic" {
name[Group1]="Norwegian";
- key <AB09> { [ period, colon, ellipsis, periodcentered ] };
+ key <AB09> { [ period, colon, ellipsis, periodcentered ] };
key <AB10> { [ minus, underscore, endash, emdash ] };
key <AD04> { [ r, R, registered, trademark ] };
- key <AD10> { [ p, P, Greek_pi, Greek_PI ] };
- key <AE05> { [ 5, percent, onehalf, 0x1002030 ] };
+ key <AD10> { [ p, P, Greek_pi, Greek_PI ] };
+ key <AE05> { [ 5, percent, onehalf, 0x1002030 ] };
key <AE11> { [ plus, question, plusminus, questiondown ] };
key <AE12> { [ backslash, dead_grave, dead_acute, notsign ] };
@@ -45,7 +45,7 @@ xkb_symbols "nodeadkeys" {
name[Group1]="Norwegian (eliminate dead keys)";
key <AE12> { [ backslash, grave, acute, ogonek ] };
- key <AD12> { [ diaeresis, asciicircum, asciitilde, macron ] };
+ key <AD12> { [ diaeresis, asciicircum, asciitilde, macron ] };
key <AC10> { [ oslash, Ooblique, acute, doubleacute ] };
key <AC11> { [ ae, AE, asciicircum, caron ] };
key <AB08> { [ comma, semicolon, cedilla, ogonek ] };
@@ -64,7 +64,7 @@ xkb_symbols "dvorak" {
key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
key <AE02> { [ 2, quotedbl, at, twosuperior ] };
key <AE03> { [ 3, numbersign, sterling, threesuperior ] };
- key <AE04> { [ 4, currency, dollar,onequarter ] };
+ key <AE04> { [ 4, currency, dollar, onequarter ] };
key <AE05> { [ 5, percent, onehalf, onehalf ] };
key <AE06> { [ 6, ampersand, threequarters, threequarters ] };
key <AE07> { [ 7, slash, braceleft, division ] };
@@ -72,7 +72,7 @@ xkb_symbols "dvorak" {
key <AE09> { [ 9, parenright, bracketright ] };
key <AE10> { [ 0, equal, braceright ] };
key <AE11> { [ plus, question, plusminus, questiondown ] };
- key <AE12> { [ backslash, grave, dead_acute, dead_grave ] };
+ key <AE12> { [ backslash, grave, dead_acute, dead_grave ] };
key <AD01> { [ aring, Aring, braceright, bracketright ] };
key <AD02> { [ comma, semicolon, dead_cedilla, cedilla ] };
@@ -104,18 +104,17 @@ xkb_symbols "dvorak" {
include "level3(ralt_switch)"
};
-// based on
-// Northern Sami keyboards for Finland, Norway and Sweden
-//
-// Describes the differences between a very simple en_US
-// keyboard and a Norwegian Northern Sami keyboard (with
-// dead key support) according to the spec on
-// http://www.hum.uit.no/a/trond/se-lat9-no-keys.html
-// Written by Børre Gaup <boerre.gaup@pc.nu>
-//
-
partial alphanumeric_keys
xkb_symbols "smi" {
+
+ // Northern Sami keyboards for Finland, Norway and Sweden
+ //
+ // Describes the differences between a very simple en_US
+ // keyboard and a Norwegian Northern Sami keyboard (with
+ // dead-key support) according to the spec on
+ // http://www.hum.uit.no/a/trond/se-lat9-no-keys.html
+ // Written by Børre Gaup <boerre.gaup@pc.nu>.
+
include "latin"
name[Group1]= "Northern Saami (Norway)";
@@ -191,7 +190,7 @@ partial alphanumeric_keys
xkb_symbols "mac" {
// Describes the differences between a very simple en_US
- // keyboard and a very simple Norwegian keybaord
+ // keyboard and a very simple Norwegian keyboard.
include "latin(type4)"
name[Group1]= "Norwegian (Macintosh)";
diff --git a/xorg-server/xkeyboard-config/symbols/nokia_vndr/su-8w b/xorg-server/xkeyboard-config/symbols/nokia_vndr/su-8w
index 441b3fee3..029906d47 100644
--- a/xorg-server/xkeyboard-config/symbols/nokia_vndr/su-8w
+++ b/xorg-server/xkeyboard-config/symbols/nokia_vndr/su-8w
@@ -428,13 +428,13 @@ xkb_symbols "base" {
key <FK11> { [ F10 ] };
key <FK12> { [ F12 ] };
- // begin modifier mappings
+ // Begin modifier mappings
modifier_map Shift { Shift_L, Shift_R };
modifier_map Lock { Caps_Lock };
modifier_map Control{ Control_L, Control_R };
modifier_map Mod2 { Num_Lock };
- // Fake keys for virtual<->real modifiers mapping
+ // Fake keys for virtual<->real modifiers mapping:
key <LVL3> { [ ISO_Level3_Shift ] };
key <MDSW> { [ Mode_switch ] };
modifier_map Mod5 { <LVL3>, <MDSW> };
@@ -450,6 +450,7 @@ xkb_symbols "base" {
key <HYPR> { [ NoSymbol, Hyper_L ] };
modifier_map Mod4 { <HYPR> };
+ // End modifier mappings
key <INS> { [ Insert ] };
key <DELE> { [ Delete ] };
diff --git a/xorg-server/xkeyboard-config/symbols/pc b/xorg-server/xkeyboard-config/symbols/pc
index d25970963..20bb92f31 100644
--- a/xorg-server/xkeyboard-config/symbols/pc
+++ b/xorg-server/xkeyboard-config/symbols/pc
@@ -1,14 +1,14 @@
default partial alphanumeric_keys modifier_keys
xkb_symbols "pc105" {
- key <ESC> { [ Escape ] };
+ key <ESC> { [ Escape ] };
- // the extra key on most European keyboards
- key <LSGT> { [ less, greater, bar, brokenbar ] };
+ // The extra key on many European keyboards:
+ key <LSGT> { [ less, greater, bar, brokenbar ] };
- // these keys are common to all layouts
- key <BKSL> { [ backslash, bar ] };
- key <SPCE> { [ space ] };
+ // The following keys are common to all layouts.
+ key <BKSL> { [ backslash, bar ] };
+ key <SPCE> { [ space ] };
include "srvr_ctrl(fkey2vt)"
include "pc(editing)"
@@ -17,32 +17,28 @@ xkb_symbols "pc105" {
key <BKSP> { [ BackSpace, BackSpace ] };
key <TAB> { [ Tab, ISO_Left_Tab ] };
- key <RTRN> { [ Return ] };
+ key <RTRN> { [ Return ] };
- key <CAPS> { [ Caps_Lock ] };
+ key <CAPS> { [ Caps_Lock ] };
+ key <NMLK> { [ Num_Lock ] };
- key <NMLK> { [ Num_Lock ] };
-
- key <LFSH> { [ Shift_L ] };
- key <LCTL> { [ Control_L ] };
-
- key <LWIN> { [ Super_L ] };
-
- key <RTSH> { [ Shift_R ] };
- key <RCTL> { [ Control_R ] };
-
- key <RWIN> { [ Super_R ] };
+ key <LFSH> { [ Shift_L ] };
+ key <LCTL> { [ Control_L ] };
+ key <LWIN> { [ Super_L ] };
+ key <RTSH> { [ Shift_R ] };
+ key <RCTL> { [ Control_R ] };
+ key <RWIN> { [ Super_R ] };
key <MENU> { [ Menu ] };
- // begin modifier mappings
+ // Beginning of modifier mappings.
modifier_map Shift { Shift_L, Shift_R };
modifier_map Lock { Caps_Lock };
modifier_map Control{ Control_L, Control_R };
modifier_map Mod2 { Num_Lock };
modifier_map Mod4 { Super_L, Super_R };
- // Fake keys for virtual<->real modifiers mapping
+ // Fake keys for virtual<->real modifiers mapping:
key <LVL3> { [ ISO_Level3_Shift ] };
key <MDSW> { [ Mode_switch ] };
modifier_map Mod5 { <LVL3>, <MDSW> };
@@ -58,6 +54,7 @@ xkb_symbols "pc105" {
key <HYPR> { [ NoSymbol, Hyper_L ] };
modifier_map Mod4 { <HYPR> };
+ // End of modifier mappings.
key <OUTP> { [ XF86Display ] };
key <KITG> { [ XF86KbdLightOnOff ] };
@@ -71,7 +68,7 @@ xkb_symbols "editing" {
type= "PC_ALT_LEVEL2",
symbols[Group1]= [ Print, Sys_Req ]
};
- key <SCLK> { [ Scroll_Lock ] };
+ key <SCLK> { [ Scroll_Lock ] };
key <PAUS> {
type= "PC_CONTROL_LEVEL2",
symbols[Group1]= [ Pause, Break ]
diff --git a/xorg-server/xkeyboard-config/symbols/pk b/xorg-server/xkeyboard-config/symbols/pk
index abf2f6695..de800d4c7 100644
--- a/xorg-server/xkeyboard-config/symbols/pk
+++ b/xorg-server/xkeyboard-config/symbols/pk
@@ -2,10 +2,9 @@
// Developed by:
// Zaeem Arshad <zaeem@linux.net.pk>
// Last update: 2004-03-12
-//Notice:
-//Alt key combinations are yet to be put in. The unavailable keys are those which do not have a corresponding //glyph in unicode.
-
-// based on a keyboard map from an 'xkb/symbols/ur' file
+// Notice:
+// Alt-key combinations are yet to be put in. The unavailable keys are
+// those which do not have a corresponding glyph in Unicode.
partial default alphanumeric_keys
xkb_symbols "urd-phonetic" {
@@ -38,27 +37,27 @@ xkb_symbols "urd-phonetic" {
key <AD11> { [ 0x100005d , 0x100007D ] };
key <AD12> { [ 0x100005b , 0x100007B ] };
- key <AC01> { [ 0x1000627 , 0x1000622 ] };
+ key <AC01> { [ 0x1000627 , 0x1000622 ] };
key <AC02> { [ 0x1000633 , 0x1000635 ] };
key <AC03> { [ 0x100062f , 0x1000688 ] };
- key <AC04> { [ 0x1000641 , 0x1000651 ] };
+ key <AC04> { [ 0x1000641 , 0x1000651 ] };
key <AC05> { [ 0x10006af , 0x100063a ] };
- key <AC06> { [ 0x100062D, 0x10006BE ] };
+ key <AC06> { [ 0x100062D , 0x10006BE ] };
key <AC07> { [ 0x100062c , 0x1000636 ] };
key <AC08> { [ 0x10006a9 , 0x100062e ] };
- key <AC09> { [ 0x1000644 , 0x1000654 ] };
+ key <AC09> { [ 0x1000644 , 0x1000654 ] };
key <AC10> { [ 0x100061b , 0x100003a ] };
- key <AC11> { [ 0x1000027 , 0x1000022 ] };
- key <BKSL> { [ 0x100005C, 0x100007C ] };
+ key <AC11> { [ 0x1000027 , 0x1000022 ] };
+ key <BKSL> { [ 0x100005C , 0x100007C ] };
- key <LSGT> { [ bar , brokenbar ] };
- key <AB01> { [ 0x1000632 , 0x1000630, 0x100200E ] };
+ key <LSGT> { [ bar , brokenbar ] };
+ key <AB01> { [ 0x1000632 , 0x1000630, 0x100200E ] };
key <AB02> { [ 0x1000634 , 0x1000698, 0x100202A ] };
- key <AB03> { [ 0x1000686 , 0x100062b, 0x100202D ] };
+ key <AB03> { [ 0x1000686 , 0x100062b, 0x100202D ] };
key <AB04> { [ 0x1000637 , 0x1000638, 0x100202C ] };
key <AB05> { [ 0x1000628 , 0x100002e, 0x100202E ] };
key <AB06> { [ 0x1000646 , 0x10006ba, 0x100202B ] };
- key <AB07> { [ 0x1000645 , 0x1000658, 0x100200F ] };
+ key <AB07> { [ 0x1000645 , 0x1000658, 0x100200F ] };
key <AB08> { [ 0x100060c , 0x100003c ] };
key <AB09> { [ 0x10006d4 , 0x100003E ] };
key <AB10> { [ 0x100002f , 0x100061f ] };
@@ -66,8 +65,6 @@ xkb_symbols "urd-phonetic" {
// key <RALT> { [ Mode_switch, Multi_key ] };
include "level3(ralt_switch)"
-
- // End alphanumeric section
};
partial alphanumeric_keys
@@ -77,61 +74,60 @@ xkb_symbols "urd-crulp" {
// www.crulp.org phonetic v1.1
key <TLDE> { [ 0x100007E , 0x100064B ] };
- key <AE01> { [ 0x10006F1 , 0x1000031, 0x1000021 ] };
+ key <AE01> { [ 0x10006F1 , 0x1000031, 0x1000021 ] };
key <AE02> { [ 0x10006F2 , 0x1000032, 0x1000040 ] };
key <AE03> { [ 0x10006F3 , 0x1000033, 0x1000023 ] };
key <AE04> { [ 0x10006F4 , 0x1000034 ] };
key <AE05> { [ 0x10006F5 , 0x1000035, 0x100066A ] };
- key <AE06> { [ 0x10006F6 , 0x1000036 ] };
- key <AE07> { [ 0x10006F7 , 0x1000037, 0x1000026 ] };
+ key <AE06> { [ 0x10006F6 , 0x1000036 ] };
+ key <AE07> { [ 0x10006F7 , 0x1000037, 0x1000026 ] };
key <AE08> { [ 0x10006F8 , 0x1000038, 0x100002A ] };
key <AE09> { [ 0x10006F9 , 0x1000039, 0x1000029 ] };
key <AE10> { [ 0x10006F0 , 0x1000030, 0x1000028 ] };
- key <AE11> { [ 0x100002D , 0x100005F ] };
+
+ key <AE11> { [ 0x100002D , 0x100005F ] };
key <AE12> { [ 0x100003D , 0x100002B ] };
- key <AD01> { [ 0x1000642 , 0x1000652 ] };
- key <AD02> { [ 0x1000648 , 0x1000651, 0x1000602 ] };
+ key <AD01> { [ 0x1000642 , 0x1000652 ] };
+ key <AD02> { [ 0x1000648 , 0x1000651, 0x1000602 ] };
key <AD03> { [ 0x1000639 , 0x1000670, 0x1000656 ] };
key <AD04> { [ 0x1000631 , 0x1000691, 0x1000613 ] };
key <AD05> { [ 0x100062a , 0x1000679, 0x1000614 ] };
key <AD06> { [ 0x10006d2 , 0x100064E, 0x1000601 ] };
key <AD07> { [ 0x1000621 , 0x1000626, 0x1000654 ] };
- key <AD08> { [ 0x10006cc , 0x1000650, 0x1000611 ] };
+ key <AD08> { [ 0x10006cc , 0x1000650, 0x1000611 ] };
key <AD09> { [ 0x10006c1 , 0x10006c3 ] };
- key <AD10> { [ 0x100067e , 0x100064f, 0x1000657 ] };
+ key <AD10> { [ 0x100067e , 0x100064f, 0x1000657 ] };
key <AD11> { [ 0x100005d , 0x100007D ] };
key <AD12> { [ 0x100005b , 0x100007B ] };
- key <AC01> { [ 0x1000627 , 0x1000622, 0x100FDF2 ] };
- key <AC02> { [ 0x1000633 , 0x1000635, 0x1000610 ] };
- key <AC03> { [ 0x100062f , 0x1000688, 0x100FDFA ] };
- key <AC04> { [ 0x1000641 , 0x1000651 ] };
+ key <AC01> { [ 0x1000627 , 0x1000622, 0x100FDF2 ] };
+ key <AC02> { [ 0x1000633 , 0x1000635, 0x1000610 ] };
+ key <AC03> { [ 0x100062f , 0x1000688, 0x100FDFA ] };
+ key <AC04> { [ 0x1000641 , 0x1000651 ] };
key <AC05> { [ 0x10006af , 0x100063a ] };
- key <AC06> { [ 0x100062D, 0x10006BE, 0x1000612 ] };
+ key <AC06> { [ 0x100062D , 0x10006BE, 0x1000612 ] };
key <AC07> { [ 0x100062c , 0x1000636, 0x100FDFB ] };
key <AC08> { [ 0x10006a9 , 0x100062e ] };
- key <AC09> { [ 0x1000644 , 0x1000654 ] };
+ key <AC09> { [ 0x1000644 , 0x1000654 ] };
key <AC10> { [ 0x100061b , 0x100003a ] };
- key <AC11> { [ 0x1000027 , 0x1000022 ] };
- key <BKSL> { [ 0x100005C, 0x100007C ] };
+ key <AC11> { [ 0x1000027 , 0x1000022 ] };
+ key <BKSL> { [ 0x100005C , 0x100007C ] };
- key <LSGT> { [ bar , brokenbar ] };
- key <AB01> { [ 0x1000632 , 0x1000630, 0x100060F ] };
+ key <LSGT> { [ bar , brokenbar ] };
+ key <AB01> { [ 0x1000632 , 0x1000630, 0x100060F ] };
key <AB02> { [ 0x1000634 , 0x1000698, 0x100060E ] };
- key <AB03> { [ 0x1000686 , 0x100062b, 0x1000603 ] };
+ key <AB03> { [ 0x1000686 , 0x100062b, 0x1000603 ] };
key <AB04> { [ 0x1000637 , 0x1000638 ] };
- key <AB05> { [ 0x1000628 , 0x100002e, 0x100FDFD ] };
- key <AB06> { [ 0x1000646 , 0x10006ba, 0x1000600 ] };
- key <AB07> { [ 0x1000645 , 0x1000658 ] };
+ key <AB05> { [ 0x1000628 , 0x100002e, 0x100FDFD ] };
+ key <AB06> { [ 0x1000646 , 0x10006ba, 0x1000600 ] };
+ key <AB07> { [ 0x1000645 , 0x1000658 ] };
key <AB08> { [ 0x100060c , 0x100003c, 0x100003C ] };
key <AB09> { [ 0x10006d4 , 0x100066B, 0x100003E ] };
- key <AB10> { [ 0x100002f , 0x100061F ] };
+ key <AB10> { [ 0x100002f , 0x100061F ] };
// key <RALT> { [ Mode_switch, Multi_key ] };
include "level3(ralt_switch)"
-
- // End alphanumeric section
};
@@ -151,12 +147,12 @@ xkb_symbols "urd-nla" {
key <AE08> { [ 0x1000038 , 0x100066D ] };
key <AE09> { [ 0x1000039 , 0x1000029 ] };
key <AE10> { [ 0x1000030 , 0x1000028 ] };
- key <AE11> { [ 0x100002D , 0x100005F ] };
+ key <AE11> { [ 0x100002D , 0x100005F ] };
key <AE12> { [ 0x100003D , 0x100002B ] };
key <AD01> { [ 0x1000637 , 0x1000638, 0x100200D ] };
- key <AD02> { [ 0x1000635 , 0x1000636, 0x100200C ] };
+ key <AD02> { [ 0x1000635 , 0x1000636, 0x100200C ] };
key <AD03> { [ 0x10006BE , 0x1000630 ] };
- key <AD04> { [ 0x100062F , 0x1000688 ] };
+ key <AD04> { [ 0x100062F , 0x1000688 ] };
key <AD05> { [ 0x1000679 , 0x100062B ] };
key <AD06> { [ 0x100067E , 0x1000651 ] };
key <AD07> { [ 0x100062A , 0x10006C3 ] };
@@ -176,13 +172,13 @@ xkb_symbols "urd-nla" {
key <AC08> { [ 0x10006a9 , 0x10006AF ] };
key <AC09> { [ 0x10006CC , 0x100064A ] };
key <AC10> { [ 0x100061b , 0x100003a ] };
- key <AC11> { [ 0x1000027 , 0x1000022 ] };
- key <BKSL> { [ 0x100005C , 0x100007C ] };
+ key <AC11> { [ 0x1000027 , 0x1000022 ] };
+ key <BKSL> { [ 0x100005C , 0x100007C ] };
key <LSGT> { [ bar , brokenbar ] };
- key <AB01> { [ 0x1000642 , 0x100200D, 0x100200E ] };
+ key <AB01> { [ 0x1000642 , 0x100200D, 0x100200E ] };
key <AB02> { [ 0x1000641 , 0x100200C, 0x100202A ] };
- key <AB03> { [ 0x10006D2 , 0x10006D3, 0x100202D ] };
+ key <AB03> { [ 0x10006D2 , 0x10006D3, 0x100202D ] };
key <AB04> { [ 0x1000633 , 0x100200E, 0x100202C ] };
key <AB05> { [ 0x1000634 , 0x1000624, 0x100202E ] };
key <AB06> { [ 0x100063A , 0x1000626, 0x100202B ] };
@@ -191,10 +187,7 @@ xkb_symbols "urd-nla" {
key <AB09> { [ 0x10006d4 , 0x100003C ] };
key <AB10> { [ 0x100002F , 0x100061f ] };
-
include "level3(ralt_switch)"
-
- // End alphanumeric section
};
partial alphanumeric_keys
@@ -202,7 +195,7 @@ xkb_symbols "snd" {
name[Group1]= "Sindhi";
// www.bhurgri.com
- key <TLDE> { [ 0x1002019, 0x1002018 ] };
+ key <TLDE> { [ 0x1002019, 0x1002018 ] };
key <AE01> { [ 1, exclam, 0x1000610 ] };
key <AE02> { [ 2, 0x1000670, 0x1000611 ] };
key <AE03> { [ 3, 0x1000621, 0x1000613 ] };
@@ -253,9 +246,7 @@ xkb_symbols "snd" {
key <AB09> { [ period, 0x100201D, 0x10006D4 ] };
key <AB10> { [ 0x1000626, Arabic_question_mark, 0x100002F ] };
- include "level3(ralt_switch)"
-
- // End alphanumeric section
+ include "level3(ralt_switch)"
};
partial alphanumeric_keys
@@ -306,10 +297,10 @@ xkb_symbols "ara" {
key <AC08> { [ 0x10006a9 , 0x100062e ] };
key <AC09> { [ 0x1000644 , 0x1000613 ] };
key <AC10> { [ 0x100061b , 0x100003a ] };
- key <AC11> { [ 0x1000670 , 0x1000022 ] };
- key <BKSL> { [ 0x100060e , 0x1000614 ] };
+ key <AC11> { [ 0x1000670 , 0x1000022 ] };
+ key <BKSL> { [ 0x100060e , 0x1000614 ] };
- key <LSGT> { [ bar , brokenbar ] };
+ key <LSGT> { [ bar , brokenbar ] };
key <AB01> { [ 0x1000632 , 0x1000630 ] };
key <AB02> { [ 0x1000634 , 0x1000698 ] };
key <AB03> { [ 0x1000686 , 0x100062b ] };
@@ -320,8 +311,6 @@ xkb_symbols "ara" {
key <AB08> { [ 0x100060c , 0x1000650 ] };
key <AB09> { [ 0x10006d4 , 0x100064e ] };
key <AB10> { [ 0x1000003 , 0x100061f ] };
-
- // End alphanumeric section
};
partial alphanumeric_keys
diff --git a/xorg-server/xkeyboard-config/symbols/pl b/xorg-server/xkeyboard-config/symbols/pl
index 4c8ed1d5c..e2559b3ac 100644
--- a/xorg-server/xkeyboard-config/symbols/pl
+++ b/xorg-server/xkeyboard-config/symbols/pl
@@ -80,9 +80,6 @@ xkb_symbols "legacy" {
partial alphanumeric_keys
xkb_symbols "qwertz" {
- // Describes the differences between a very simple en_US
- // keyboard and a very simple QWERTZ Polish keybaord
-
include "latin(type3)"
name[Group1]="Polish (qwertz)";
@@ -152,11 +149,7 @@ xkb_symbols "dvorak" {
include "kpdl(comma)"
- // this to allow writing ALL CAPS with a Shift key
include "level3(ralt_switch)"
-
- // use one of compose:* options to choose Multi_key, if you will,
- // or layout +level3(ralt_switch_multikey) to revert standard behaviour
};
// Default Polish keymap with Polish quotes on quotemark key
@@ -222,7 +215,7 @@ xkb_symbols "dvp" {
// upper row, left side
- // // upper row, right side
+ // upper row, right side
key <AD08> { [ c, C, cacute, Cacute ] };
key <AD10> { [ l, L, lstroke, Lstroke ] };
@@ -247,11 +240,7 @@ xkb_symbols "dvp" {
include "kpdl(comma)"
- // this to allow writing ALL CAPS with a Shift key
include "level3(ralt_switch)"
-
- // use one of compose:* options to choose Multi_key, if you will,
- // or layout +level3(ralt_switch_multikey) to revert standard behaviour
};
// Silesian keyboard layout by Grzegorz Kulik <poslunsku@gmail.com>
diff --git a/xorg-server/xkeyboard-config/symbols/pt b/xorg-server/xkeyboard-config/symbols/pt
index b2e0b1255..010445570 100644
--- a/xorg-server/xkeyboard-config/symbols/pt
+++ b/xorg-server/xkeyboard-config/symbols/pt
@@ -63,9 +63,6 @@ xkb_symbols "nodeadkeys" {
partial alphanumeric_keys
xkb_symbols "mac" {
- // Describes the differences between a very simple en_US
- // keyboard and a very simple Portuguese keybaord
-
include "pt"
name[Group1]= "Portuguese (Macintosh)";
diff --git a/xorg-server/xkeyboard-config/symbols/ro b/xorg-server/xkeyboard-config/symbols/ro
index eea515995..46e275b72 100644
--- a/xorg-server/xkeyboard-config/symbols/ro
+++ b/xorg-server/xkeyboard-config/symbols/ro
@@ -120,8 +120,8 @@ xkb_symbols "std" {
partial alphanumeric_keys
xkb_symbols "std_cedilla" {
- // Variant of the "std" layout with cedillas.
- // Implements S and T with cedillas as in ISO-8859-2.
+ // Variant of the "std" layout using cedillas instead of commas.
+ // It implements S and T with cedillas as in ISO-8859-2.
// Included for compatibility reasons.
include "ro(std)"
@@ -136,14 +136,13 @@ xkb_symbols "std_cedilla" {
partial alphanumeric_keys
xkb_symbols "winkeys" {
// Describes the differences between a very simple US/ASCII
- // keyboard and a very simple Romanian keybaord
+ // keyboard and a simple Romanian keyboard.
// Created by Manfred Pohler, <Manfred.Pohler@t-online.de> (C) 2003
include "latin"
name[Group1]="Romanian (WinKeys)";
- // Alphanumeric section
key <TLDE> { [ bracketright, bracketleft ] };
key <AE01> { [ 1, exclam, asciitilde, asciitilde ] };
@@ -184,12 +183,9 @@ xkb_symbols "winkeys" {
key <BKSL> { [ acircumflex, Acircumflex ] };
- // End alphanumeric section, begin "Keypad"
include "kpdl(comma)"
- // End "Keypad" section
include "level3(ralt_switch)"
-
};
partial
diff --git a/xorg-server/xkeyboard-config/symbols/rs b/xorg-server/xkeyboard-config/symbols/rs
index 0a08c6211..b0d69ac18 100644
--- a/xorg-server/xkeyboard-config/symbols/rs
+++ b/xorg-server/xkeyboard-config/symbols/rs
@@ -108,7 +108,7 @@ xkb_symbols "cyralpha" {
key <AC11> { [ Serbian_tshe, Serbian_TSHE, any,any ] }; // ' "
key <BKSL> { [ Cyrillic_zhe, Cyrillic_ZHE, any,any ] }; // \ |
- key <AB01> { [ U0455, U0405, any,any ] }; // z
+ key <AB01> { [ Cyrillic_zhe, Cyrillic_ZHE, any,any ] }; // z
key <AB02> { [ Cyrillic_dzhe, Cyrillic_DZHE, any,any ] }; // x
key <AB03> { [ Cyrillic_tse, Cyrillic_TSE, any,any ] }; // c
key <AB04> { [ Cyrillic_ve, Cyrillic_VE, any,any ] }; // v
diff --git a/xorg-server/xkeyboard-config/symbols/se b/xorg-server/xkeyboard-config/symbols/se
index 04ce1d206..ef5e797ba 100644
--- a/xorg-server/xkeyboard-config/symbols/se
+++ b/xorg-server/xkeyboard-config/symbols/se
@@ -42,7 +42,6 @@ xkb_symbols "nodeadkeys" {
name[Group1]="Swedish (eliminate dead keys)";
key <AE12> { [ acute, grave, plusminus, notsign ] };
-
};
// Swedish Dvorak
@@ -158,14 +157,7 @@ xkb_symbols "rus_nodeadkeys" {
};
xkb_symbols "smi" {
-
- // Describes the differences between a Norwegian Northern Sami
- // (keyboard with dead key support) and a Swedish/Finnish Sami
- // keyboard according to the specs at:
- // http://www.hum.uit.no/a/trond/se-lat9-sefi-keys.html
-
include "fi(smi)"
-
name[Group1]= "Northern Saami (Sweden)";
};
@@ -174,7 +166,7 @@ partial alphanumeric_keys
xkb_symbols "mac" {
// Describes the differences between a very simple en_US
- // keyboard and a very simple Swedish(Sweden) keybaord
+ // keyboard and a very simple Swedish(Sweden) keyboard.
include "latin"
name[Group1]= "Swedish (Macintosh)";
@@ -188,17 +180,17 @@ xkb_symbols "mac" {
key <AE07> { [ 7, slash, bar, backslash ] };
key <AE08> { [ 8, parenleft, bracketleft, braceleft ] };
key <AE09> { [ 9, parenright, bracketright, braceright ] };
- key <AB08> { [ comma, semicolon ] };
key <AE10> { [ 0, equal ] };
- key <AB09> { [ period, colon ] };
- key <AB10> { [ minus, underscore ] };
- key <AC10> { [ odiaeresis, Odiaeresis, oslash, Ooblique ] };
key <AE11> { [ plus, question ] };
- key <AC11> { [ adiaeresis, Adiaeresis, ae, AE ] };
- key <AD11> { [ aring, Aring ] };
key <AE12> { [ acute, grave ] };
+ key <AD11> { [ aring, Aring ] };
key <AD12> { [ diaeresis, asciicircum, asciitilde ] };
+ key <AC10> { [ odiaeresis, Odiaeresis, oslash, Ooblique ] };
+ key <AC11> { [ adiaeresis, Adiaeresis, ae, AE ] };
key <BKSL> { [ apostrophe, asterisk, at ] };
+ key <AB08> { [ comma, semicolon ] };
+ key <AB09> { [ period, colon ] };
+ key <AB10> { [ minus, underscore ] };
include "kpdl(comma)"
include "level3(ralt_switch)"
diff --git a/xorg-server/xkeyboard-config/symbols/sharp_vndr/sl-c3x00 b/xorg-server/xkeyboard-config/symbols/sharp_vndr/sl-c3x00
index d72f9f9f9..312384000 100644
--- a/xorg-server/xkeyboard-config/symbols/sharp_vndr/sl-c3x00
+++ b/xorg-server/xkeyboard-config/symbols/sharp_vndr/sl-c3x00
@@ -5,7 +5,6 @@ partial default alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Sharp SL-C3x00";
- // Upper row
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, quotedbl ] };
key <AE03> { [ 3, numbersign ] };
@@ -60,9 +59,7 @@ xkb_symbols "basic" {
key <SPCE> { [ space ] };
key <AB08> { [ comma, slash, less ] };
key <AB09> { [ period, question, greater ] };
- // End alphanumeric section
- // keypad
key <UP> { [ Up, Up, Prior ] };
key <LEFT> { [ Left, Left, Home ] };
key <DOWN> { [ Down, Down, Next ] };
diff --git a/xorg-server/xkeyboard-config/symbols/sharp_vndr/ws003sh b/xorg-server/xkeyboard-config/symbols/sharp_vndr/ws003sh
index 575058ea7..25a55f1d5 100644
--- a/xorg-server/xkeyboard-config/symbols/sharp_vndr/ws003sh
+++ b/xorg-server/xkeyboard-config/symbols/sharp_vndr/ws003sh
@@ -4,7 +4,6 @@ partial default alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Sharp WS003SH";
- // Upper row
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, quotedbl ] };
key <AE03> { [ 3, numbersign ] };
@@ -59,9 +58,7 @@ xkb_symbols "basic" {
key <LCTL> { [ Control_L ] };
key <SPCE> { [ space ] };
- // End alphanumeric section
- // keypad
key <UP> { [ Up, Up, Prior ] };
key <LEFT> { [ Left, Left, Home ] };
key <DOWN> { [ Down, Down, Next ] };
diff --git a/xorg-server/xkeyboard-config/symbols/sharp_vndr/ws007sh b/xorg-server/xkeyboard-config/symbols/sharp_vndr/ws007sh
index 57a075171..4dd08af2d 100644
--- a/xorg-server/xkeyboard-config/symbols/sharp_vndr/ws007sh
+++ b/xorg-server/xkeyboard-config/symbols/sharp_vndr/ws007sh
@@ -4,7 +4,6 @@ partial default alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Sharp WS007SH";
- // Upper row
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, quotedbl ] };
key <AE03> { [ 3, numbersign ] };
@@ -59,9 +58,7 @@ xkb_symbols "basic" {
key <LCTL> { [ Control_L ] };
key <SPCE> { [ space ] };
- // End alphanumeric section
- // keypad
key <UP> { [ Up, Up, Prior ] };
key <LEFT> { [ Left, Left, Home ] };
key <DOWN> { [ Down, Down, Next ] };
diff --git a/xorg-server/xkeyboard-config/symbols/sharp_vndr/ws011sh b/xorg-server/xkeyboard-config/symbols/sharp_vndr/ws011sh
index 45976dff9..df230f6a5 100644
--- a/xorg-server/xkeyboard-config/symbols/sharp_vndr/ws011sh
+++ b/xorg-server/xkeyboard-config/symbols/sharp_vndr/ws011sh
@@ -4,7 +4,6 @@ partial default alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Sharp WS011SH";
- // Upper row
key <HZTG> {
type[Group1] = "THREE_LEVEL",
symbols[Group1] = [ Zenkaku_Hankaku, Zenkaku_Hankaku, exclam ]
@@ -53,7 +52,6 @@ xkb_symbols "basic" {
key <LCTL> { [ Control_L ] };
key <SPCE> { [ space ] };
- // End alphanumeric section
key <UP> { [ Up, Up, Prior ] };
key <LEFT> { [ Left, Left, Home ] };
@@ -62,7 +60,6 @@ xkb_symbols "basic" {
key <ESC> { [ Escape ] };
- // keypad
key <KP1> { [ 1 ] };
key <KP2> { [ 2 ] };
key <KP3> { [ 3 ] };
diff --git a/xorg-server/xkeyboard-config/symbols/sharp_vndr/ws020sh b/xorg-server/xkeyboard-config/symbols/sharp_vndr/ws020sh
index 5231e1483..0bde5f0a9 100644
--- a/xorg-server/xkeyboard-config/symbols/sharp_vndr/ws020sh
+++ b/xorg-server/xkeyboard-config/symbols/sharp_vndr/ws020sh
@@ -4,7 +4,6 @@ partial default alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Sharp WS020SH";
- // Upper row
key <HZTG> {
type[Group1]="THREE_LEVEL",
symbols[Group1]= [ Zenkaku_Hankaku, Zenkaku_Hankaku, exclam ]
@@ -53,9 +52,7 @@ xkb_symbols "basic" {
key <LCTL> { [ Control_L ] };
key <SPCE> { [ space ] };
- // End alphanumeric section
- // keypad
key <UP> { [ Up, Up, Prior ] };
key <LEFT> { [ Left, Left, Home ] };
key <DOWN> { [ Down, Down, Next ] };
diff --git a/xorg-server/xkeyboard-config/symbols/sony_vndr/us b/xorg-server/xkeyboard-config/symbols/sony_vndr/us
index e91ca11b2..69102bfba 100644
--- a/xorg-server/xkeyboard-config/symbols/sony_vndr/us
+++ b/xorg-server/xkeyboard-config/symbols/sony_vndr/us
@@ -27,7 +27,7 @@
xkb_symbols "nwp5461" {
include "us(basic)"
- key <LALT> { [ Alt_L, Meta_L ] };
+ key <LALT> { [ Alt_L, Meta_L ] };
key <RTSH> { [ Shift_R ] };
key <AB11> { [ NoSymbol ] };
@@ -84,8 +84,6 @@ xkb_symbols "nwp5461" {
key <KPTB> { [ KP_Tab ] };
// End "Keypad" section
-
- // begin modifier mappings
modifier_map Shift { Shift_R };
modifier_map Mod3 { Alt_L };
};
diff --git a/xorg-server/xkeyboard-config/symbols/sy b/xorg-server/xkeyboard-config/symbols/sy
index 1a82f0e6e..aa6ce82f4 100644
--- a/xorg-server/xkeyboard-config/symbols/sy
+++ b/xorg-server/xkeyboard-config/symbols/sy
@@ -59,13 +59,9 @@ xkb_symbols "syc" {
key <AB09> { [ 0x1000719, Arabic_semicolon ] };
key <AB10> { [ 0x1000707, Arabic_question_mark ] };
- // End Alphanumeric Section
-
- // Space
+ // Space plus zero-width non-joiner:
include "nbsp(zwnj2)"
- // Begin Modifier Mappings
-
modifier_map Shift { Shift_L, Shift_R };
modifier_map Lock { Caps_Lock };
modifier_map Control{ Control_L, Control_R };
@@ -130,11 +126,6 @@ xkb_symbols "syc_phonetic" {
key <AB09> { [ 0x100002E, Arabic_semicolon ] };
key <AB10> { [ 0x1000707, Arabic_question_mark ] };
- // End Alphanumeric Section
-
-
- // Begin Modifier Mappings
-
modifier_map Shift { Shift_L, Shift_R };
modifier_map Lock { Caps_Lock };
modifier_map Control{ Control_L, Control_R };
diff --git a/xorg-server/xkeyboard-config/symbols/tw b/xorg-server/xkeyboard-config/symbols/tw
index e97c0b60b..c01024a81 100644
--- a/xorg-server/xkeyboard-config/symbols/tw
+++ b/xorg-server/xkeyboard-config/symbols/tw
@@ -1,5 +1,3 @@
-// $XKeyboardConfig$
-
partial default alphanumeric_keys
xkb_symbols "tw" {
@@ -7,7 +5,6 @@ xkb_symbols "tw" {
include "us(basic)"
- // Alphanumeric section
key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
key <AE01> { [ 1, exclam, U030D, exclamdown ] };
key <AE02> { [ 2, at, U0358, twosuperior ] };
@@ -52,25 +49,25 @@ xkb_symbols "tw" {
partial alphanumeric_keys
xkb_symbols "indigenous" {
- name[Group1]= "Taiwanese (indigenous)";
+ name[Group1]= "Taiwanese (indigenous)";
- include "tw(tw)"
+ include "tw(tw)"
- key <AC11> { [ U02BC, quotedbl, apostrophe, dead_doubleacute ] };
+ key <AC11> { [ U02BC, quotedbl, apostrophe, dead_doubleacute ] };
- include "level3(ralt_switch)"
+ include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "saisiyat" {
- name[Group1]= "Saisiyat (Taiwan)";
+ name[Group1]= "Saisiyat (Taiwan)";
- include "tw(indigenous)"
+ include "tw(indigenous)"
- key <AC10> { [ U02D0, colon, semicolon, dead_diaeresis ] };
+ key <AC10> { [ U02D0, colon, semicolon, dead_diaeresis ] };
- include "level3(ralt_switch)"
+ include "level3(ralt_switch)"
};
// EXTRAS:
diff --git a/xorg-server/xkeyboard-config/symbols/ua b/xorg-server/xkeyboard-config/symbols/ua
index ddfe11f9f..f7a2a59a4 100644
--- a/xorg-server/xkeyboard-config/symbols/ua
+++ b/xorg-server/xkeyboard-config/symbols/ua
@@ -99,8 +99,7 @@ xkb_symbols "legacy" {
key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] };
key <AB10> { [ slash, question ] };
- key <LSGT> { [ slash, bar ] };
- // End alphanumeric section
+ key <LSGT> { [ slash, bar ] };
};
partial alphanumeric_keys
diff --git a/xorg-server/xkeyboard-config/symbols/uz b/xorg-server/xkeyboard-config/symbols/uz
index d0e3c04b6..f0e07ede1 100644
--- a/xorg-server/xkeyboard-config/symbols/uz
+++ b/xorg-server/xkeyboard-config/symbols/uz
@@ -47,9 +47,9 @@ xkb_symbols "cyrillic" {
key <AE10> { [ 0, parenright ] };
key <BKSL> { [ backslash, bar ] };
key <AB10> { [ period, comma ] };
- key <LSGT> { [ slash, bar ] };
+ key <LSGT> { [ slash, bar ] };
-key.type[group1]="ALPHABETIC";
+ key.type[group1]="ALPHABETIC";
key <AE11> { [Cyrillic_ghe_bar, Cyrillic_GHE_bar ] };
key <AE12> { [Cyrillic_ha_descender, Cyrillic_HA_descender ] };
@@ -86,8 +86,6 @@ key.type[group1]="ALPHABETIC";
key <AB07> { [Cyrillic_softsign,Cyrillic_SOFTSIGN ] };
key <AB08> { [ Cyrillic_be, Cyrillic_BE ] };
key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] };
-
- // End alphanumeric section
};
partial alphanumeric_keys
diff --git a/xorg-server/xkeyboard-config/symbols/vn b/xorg-server/xkeyboard-config/symbols/vn
index c5e4c118b..58eb595da 100644
--- a/xorg-server/xkeyboard-config/symbols/vn
+++ b/xorg-server/xkeyboard-config/symbols/vn
@@ -15,7 +15,6 @@ xkb_symbols "basic" {
name[Group1]= "Vietnamese";
- // Alphanumeric section
key <TLDE> { [ grave, asciitilde ] };
key <AE01> { [ abreve, Abreve ] };
key <AE02> { [ acircumflex, Acircumflex ] };
@@ -33,7 +32,5 @@ xkb_symbols "basic" {
key <AD11> { [ uhorn, Uhorn ] };
key <AD12> { [ ohorn, Ohorn ] };
- // End alphanumeric section
-
include "level3(ralt_switch)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/xfree68_vndr/amiga b/xorg-server/xkeyboard-config/symbols/xfree68_vndr/amiga
index 46d48a27e..f785288bb 100644
--- a/xorg-server/xkeyboard-config/symbols/xfree68_vndr/amiga
+++ b/xorg-server/xkeyboard-config/symbols/xfree68_vndr/amiga
@@ -113,10 +113,9 @@ default xkb_symbols "usa1" {
key <KP0> { [ KP_0, KP_Insert ] };
key <KPDC> { [ KP_Decimal, KP_Delete ] };
- key <KPEN> { [ KP_Enter ] };
+ key <KPEN> { [ KP_Enter ] };
// End "Keypad" section
- // begin modifier mappings
modifier_map Shift { Shift_L, Shift_R };
modifier_map Lock { Caps_Lock };
modifier_map Control{ Control_L };
diff --git a/xorg-server/xkeyboard-config/symbols/xfree68_vndr/ataritt b/xorg-server/xkeyboard-config/symbols/xfree68_vndr/ataritt
index 65048bde4..0ceb3ed13 100644
--- a/xorg-server/xkeyboard-config/symbols/xfree68_vndr/ataritt
+++ b/xorg-server/xkeyboard-config/symbols/xfree68_vndr/ataritt
@@ -1,6 +1,7 @@
default xkb_symbols "us" {
name[Group1]= "US/ASCII";
+
key <ESC> { [ Escape ] };
// Alphanumeric section
@@ -112,7 +113,6 @@ default xkb_symbols "us" {
key <KPEN> { [ KP_Enter ] };
// End "Keypad" section
- // begin modifier mappings
modifier_map Shift { Shift_L, Shift_R };
modifier_map Lock { Caps_Lock };
modifier_map Control{ Control_L };
@@ -124,7 +124,6 @@ xkb_symbols "de" {
name[Group1]= "German";
- // Alphanumeric section
key <AE02> { [ 2, quotedbl ] };
key <AE03> { [ 3, section ] };
key <AE06> { [ 6, ampersand ] };