2019-02-05  Chris Feng	<chris.w.feng@gmail.com>

	Bump version to 0.17

2019-02-05  Chris Feng	<chris.w.feng@gmail.com>

	Update copyright year to 2019

2018-12-28  adisbladis	<adisbladis@gmail.com>

	Fix startup using non-posix shells

	* xcb.el (xcb:create-auth-info): Use lisp for string substitution
	instead of shell

2018-10-14  Chris Feng	<chris.w.feng@gmail.com>

	Bump version to 0.16

2018-09-23  Chris Feng	<chris.w.feng@gmail.com>

	Eliminate a compile warning with `xcb:deftypealias'

	* xcb-types.el (xcb:deftypealias): Use variable property instead of
	`defvaralias'/`indirect-variable' to store the fundamental type.

2018-09-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	Simplify debugging and fix dynamic-scoping `eval'

	* xcb-types.el (xcb:debug): New global minor mode to replace
	`xcb:debug-on' and `xcb:debug-toggle'.
	(xcb:-log): Use it.

	* xcb-types.el (xcb:deftypealias): Use lexical-scoping `eval'.

2018-09-09  Chris Feng	<chris.w.feng@gmail.com>

	; Minor fixes for Calvo's patch set.

2018-09-04  Adrián Medraño Calvo	<adrian@medranocalvo.com>

	Command for toggling debugging output

	* xcb-types.el (xcb:-debug-toggle): New function for toggling debugging
	output.

2018-09-04  Adrián Medraño Calvo	<adrian@medranocalvo.com>

	Print backtrace upon event listener errors

	* xcb.el (xcb:-process-events): Output backtrace of erroring event 
	listeners when `xcb:debug-on' is enabled.

2018-09-04  Adrián Medraño Calvo	<adrian@medranocalvo.com>

	* xcb.el (xcb:-cache-request): Avoid logging large objects

2018-09-04  Adrián Medraño Calvo	<adrian@medranocalvo.com>

	* xcb-types.el (slot-unbound): Correct mistyped message

2018-09-04  Adrián Medraño Calvo	<adrian@medranocalvo.com>

	Print log output to an XELB-specific messages buffer

	Using `message' to log debugging information is cumbersome, as the 
	output appears constantly in the minibuffer, obscuring prompts and other
	information.  In the case of long messages, it might resize the
	minibuffer, which causes EXWM to perform additional actions due to the
	log output.

	This change reimplements XELB debug logging using a separate buffer
	(*XELB-DEBUG*).	 Basic functionality, like scrolling when point is at
	the end of the buffer is maintained.

	* xcb-types.el (exwm--log): Use `xcb-debug-message' instead of
	`message'.  Prefix all messages with the name of the function. Make
	FORMAT-STRING argument optional.  Support toggling debug output at
	runtime.

	* xcb-debug.el: New file.
	(xcb-debug-buffer): New variable holding the buffer where debug messages
	are output to.
	(xcb-debug-message): New function printing a message to
	`xcb-debug-buffer'.
	(xcb-debug-backtrace): New function printing a backtrace.
	(xcb-debug-backtrace-on-error): New function printing a backtrace upon
	error.
	(xcb-debug--clear, xcb-debug--mark): New functions.

2018-09-02  Chris Feng	<chris.w.feng@gmail.com>

	Revisit event cache timely

	; Previously events are only sent to listeners in
	; `xcb:-connection-filter'.  But with `event-lock' this process can be
	; skipped when `event-lock' is hold elsewhere.	With such non-blocking
	; lock this process should get rechecked whenever `event-lock' is
	; released.

	* xcb.el (xcb:-process-events): New method for processing cached events.
	(xcb:-connection-filter, xcb:flush, xcb:-+reply, xcb:aux:sync): Use it.

2018-08-19  Chris Feng	<chris.w.feng@gmail.com>

	Eliminate compile warnings

2018-07-18  Chris Feng	<chris.w.feng@gmail.com>

	Bump version to 0.15

2018-06-18  Chris Feng	<chris.w.feng@gmail.com>

	Fix `xcb:unmarshal' for <switch>

	* el_client.el (xelb-parse-list): Place list placeholder after the real
	one so that to be correctly referred by <switch>.
	(xelb-parse-switch): Never flatten the condition list for <case>.

	* xcb-types.el (xcb:unmarshal of xcb:-struct): Stop after processing
	<switch>.

	* xcb-types.el (xcb:--struct): New common super class for all classes in
	XELB.  Currently it's used to override `slot-unbound'.
	(xcb:-struct):
	* xcb-ewmh.el (xcb:ewmh:-_NET_DESKTOP_GEOMETRY)
	(xcb:ewmh:-_NET_DESKTOP_LAYOUT, xcb:ewmh:-_NET_WM_STRUT)
	(xcb:ewmh:-_NET_WM_STRUT_PARTIAL, xcb:ewmh:-_NET_WM_ICON_GEOMETRY)
	(xcb:ewmh:-_NET_FRAME_EXTENTS, xcb:ewmh:-_NET_WM_SYNC_REQUEST_COUNTER)
	(xcb:ewmh:-_NET_WM_FULLSCREEN_MONITORS):
	* xcb-icccm.el (xcb:icccm:--ClientMessage, xcb:icccm:-WM_SIZE_HINTS)
	(xcb:icccm:-WM_HINTS, xcb:icccm:-WM_STATE, xcb:icccm:-WM_ICON_SIZE):
	* xcb-keysyms.el (xcb:keysyms:-device):
	* xcb.el (xcb:connection, xcb:auth-info): Use it.

2018-06-18  Chris Feng	<chris.w.feng@gmail.com>

	Add support for <required_start_align> and drop implicit padding

	* el_client.el (xelb-parse-required_start_align): New function for 
	parsing <required_start_align>.
	(xelb-parse-structure-content): Use it.
	(xelb-parse-list): Drop implicit padding after <list>.

	* xcb-types.el (xcb:-marshal-field, xcb:unmarshal, 
	xcb:-unmarshal-field): Make adaptions for <required_start_align>.

2018-06-12  Chris Feng	<chris.w.feng@gmail.com>

	Fix handling of generic events

	* xcb.el (xcb:-connection-filter): Correct wrong generic event length.
	(xcb:-error-or-event-class->number): Correct wrong conversion of generic
	event codes.

2018-05-20  Chris Feng	<chris.w.feng@gmail.com>

	Sync with upstream protocol

2018-04-15  Paul Eggert	 <eggert@cs.ucla.edu>

	Port to 32-bit Emacs master

	Rewrite #xFFFFFFFF to 4294967295. and similarly for other hex constants
	intended to be floating-point on 32-bit Emacs.
	* el_client.el (xelb-parse-enum): Omit enums that do not fit in 32-bit
	Emacs.
	* xcb-xinput.el (xcb:xinput:ModifierMask:Any):
	* xcb-xkb.el (xcb:xkb:Control:IgnoreLockMods)
	(xcb:xkb:Control:PerKeyRepeat, xcb:xkb:Control:ControlsEnabled): Remove.

2018-04-08  Chris Feng	<chris.w.feng@gmail.com>

	Temporarily disable update on every NewKeyboardNotify event

	* xcb-keysyms.el (xcb:keysyms:-on-NewKeyboardNotify): Only handle the 
	first NewKeyboardNotify event (as a result of selecting that event). 
	XELB is currently not efficient enough to handle every such event.

2018-04-01  Chris Feng	<chris.w.feng@gmail.com>

	Do not block NewKeyboardNotify events concerned with SetMap requests

	* xcb-keysyms.el (xcb:keysyms:-on-NewKeyboardNotify): NewKeyboardNotify
	events related to SetMap requests should be processed or keycodes can be
	out-of-date.

2018-03-14  Chris Feng	<chris.w.feng@gmail.com>

	Bump version to 0.14

2018-03-08  medranocalvo  <amcalvo@prs.de>

	Support WM_Sn atoms (#19)

	* xcb-icccm.el (xcb:icccm:-atom, xcb:icccm:init): Register WM_Sn
 atoms
	for each screen.

2018-03-04  Chris Feng	<chris.w.feng@gmail.com>

	Ensure KeyTypes are initialized

	* xcb-keysyms.el (xcb:keysyms:-update-keytypes): Ditto.

2018-03-03  Chris Feng	<chris.w.feng@gmail.com>

	Rename `xcb:-fd' to `xcb:fd' and sync with upstream protocol

2018-02-24  Chris Feng	<chris.w.feng@gmail.com>

	Bump version to 0.13

2018-01-14  Chris Feng	<chris.w.feng@gmail.com>

	Do not convert events with unsupported modifiers

	* xcb-keysyms.el (xcb:keysyms:event->keysym): Reset the keysym when 
	failing to convert the modifiers.

2018-01-14  Chris Feng	<chris.w.feng@gmail.com>

	Support symbol representations of ASCII in key events

	* xcb-keysyms.el (xcb:keysyms:event->keysym): Support converting events
	with ASCII as symbols (e.g. treating 'C-a as an alternative form of
	?\C-a).

2018-01-14  Chris Feng	<chris.w.feng@gmail.com>

	Update copyright year to 2018

2017-12-10  Chris Feng	<chris.w.feng@gmail.com>

	Add support for fast switching between multiple keyboards

	* xcb-keysyms.el (xcb:keysyms:-device): New class containing the 
	properties of a keyboard.
	(xcb:keysyms:-get-current-device): New method for retrieving the current
	keyboard object.
	(xcb:keysyms:-on-NewKeyboardNotify, xcb:keysyms:-on-MapNotify): Cache 
	the properties of all keyboards.

	* xcb.el (xcb:-get-extra-plist, xcb:-set-extra-plist): New methods for 
	getting/setting module-specific properties.
	* xcb-keysyms.el (xcb:keysyms:init, xcb:keysyms:-set-per-client-flags)
	(xcb:keysyms:-on-NewKeyboardNotify, xcb:keysyms:-on-MapNotify)
	(xcb:keysyms:-update-keytypes, xcb:keysyms:-update-keycodes)
	(xcb:keysyms:keycode->keysym, xcb:keysyms:keysym->keycode): Use them.

2017-11-26  Chris Feng	<chris.w.feng@gmail.com>

	Add support for callback function for keyboard update

	* xcb-keysyms.el (xcb:keysyms:init): Now accept an optional argument as
	a callback function for keyboard update.
	(xcb:keysyms:-on-NewKeyboardNotify, xcb:keysyms:-on-MapNotify): Call the
	callback function after updating the keyboard.

	* xcb-keysyms.el (xcb:keysyms:-on-NewKeyboardNotify): Filter out 
	keyboard change events not intended for the current active one.

2017-11-26  Chris Feng	<chris.w.feng@gmail.com>

	Make connection-specific variables private

	* xcb-keysyms.el (xcb:keysyms:-opcode, xcb:keysyms:-device)
	(xcb:keysyms:-keytypes, xcb:keysyms:-keycodes)
	(xcb:keysyms:-min-keycode, xcb:keysyms:-max-keycode): Deleted.
	(xcb:keysyms:init, xcb:keysyms:-on-NewKeyboardNotify)
	(xcb:keysyms:-on-MapNotify, xcb:keysyms:-on-MapNotify)
	(xcb:keysyms:-update-keytypes, xcb:keysyms:-update-keycodes)
	(xcb:keysyms:keycode->keysym, xcb:keysyms:keysym->keycode): Use the 
	connection object's 'extra-plist' slot for storing and retrieving 
	connection-specific variables.

2017-11-05  Chris Feng	<chris.w.feng@gmail.com>

	Add support for <eventstruct>

	* el_client.el (xelb-parse-top-level-element, xelb-parse-eventstruct): 
	Add support for <eventstruct>.
	* xcb-xinput.el: Sync with upstream protocol.

2017-02-05  Chris Feng	<chris.w.feng@gmail.com>

	Fix checkdoc warnings

2017-02-05  Chris Feng	<chris.w.feng@gmail.com>

	Sync with upstream protocol

2017-02-05  Chris Feng	<chris.w.feng@gmail.com>

	Update copyright year to 2017

2016-11-19  Chris Feng	<chris.w.feng@gmail.com>

	Bump version to 0.12

2016-11-13  Chris Feng	<chris.w.feng@gmail.com>

	Correct the detection of modifier keys

	* xcb-keysyms.el (xcb:keysyms:-update-modkeys): Detect modifier keys 
	with the core protocol request 'GetModifierMapping'; also detect 
	shift-lock and num-lock modifiers.
	(xcb:keysyms:keysym->event): Use the detected shift-lock modifier.

2016-09-25  Chris Feng	<chris.w.feng@gmail.com>

	Protect the event lock

	; It's observed the event lock can occasionally fail to be decreased,
	; though the cause is unclear.

	* xcb.el (xcb:flush, xcb:-+reply, xcb:aux:sync): Protect the event lock.

2016-09-23  Chris Feng	<chris.w.feng@gmail.com>

	Add missing slots for WM_SIZE_HINTS classes

	* xcb-icccm.el (xcb:icccm:get-WM_SIZE_HINTS)
	(xcb:icccm:set-WM_SIZE_HINTS): Add the missing 'property' slot.

2016-08-14  Chris Feng	<chris.w.feng@gmail.com>

	Bump version to 0.11

2016-08-12  Chris Feng	<chris.w.feng@gmail.com>

	Save a sequence number after the packet is saved

	* xcb.el (xcb:-convert-sequence): Do not save the sequence number here.
	(xcb:-connection-filter): Save it here.

2016-08-11  Chris Feng	<chris.w.feng@gmail.com>

	Split connection filter

	* xcb.el (xcb:-connection-filter, xcb:-connection-setup-filter): Split 
	out connection setup code from the former into the latter.
	(xcb:-connect): Set process filter to `xcb:-connection-setup-filter'.

2016-08-11  Chris Feng	<chris.w.feng@gmail.com>

	Fix sequence number wrapping issues

	* xcb.el (xcb:connection-timeout): Reduce timeout to 3.
	(xcb:connection): Merge slots 'error-sequence' and 'reply-sequence' into
	'last-seen-sequence'.
	(xcb:-sequence-cmp16): Removed.

	* xcb.el (xcb:-SEQUENCE-SEGMENT-MASK): New constant representing the 
	segment mask of a sequence number.
	(xcb:-convert-sequence): New method for converting 16-bit sequence 
	number received from the server into that used in the client.
	(xcb:-connection-filter): Use this method.
	(xcb:-+request, xcb:-+request-checked, xcb:-+request-unchecked)
	(xcb:-+reply, xcb:-request-check, xcb:aux:sync): Avoid using 16-bit 
	sequence number.
	(xcb:-cache-request): Force wrapping sequence numbers.
	(xcb:-+reqply, xcb:-request-check, xcb:aux:sync): Check sequence number 
	wrapping.

	* xcb.el (xcb:aux:sync): Discard any reply or error.

2016-08-06  Chris Feng	<chris.w.feng@gmail.com>

	Fix XGE and XKB events support

	* el_client.el (xelb-xge-alist nil): New variable for recording X 
	generic events (XGE).
	(xelb-parse): Output XGE list.
	(xelb-parse-event, xelb-parse-eventcopy): Set XGE list.
	* xcb-types.el (xcb:marshal for xcb:-event): Rewritten to take XGE and 
	XKB into consideration.
	(xcb:-generic-event): New type representing XGE.
	* xcb.el (xcb:-connection-filter, xcb:+event)
	(xcb:-error-or-event-class->number): Fix XGE and XKB events support.

	* el_client.el (xelb-parse-request): Insert slots for sequence number 
	and reply length.
	(xelb-parse-event, xelb-parse-eventcopy): Insert slots for sequence 
	number and event code.
	(xelb-parse-error, xelb-parse-errorcopy): Insert slot for error code.
	* xcb-types.el (xcb:-reply): Remove 'length' slot; add '~reply' slot.
	(xcb:-event): Add '~code' slot.
	(xcb:-error): Add '~error', '~code' and '~sequence' slots.
	* xcb.el (xcb:-+reply): Do not manipulate the length.
	(xcb:unmarshal for xcb:-reply, xcb:-event and xcb:-error): Removed.

	* el_client.el (xelb-node-type, xelb-parse-typedef)
	(xelb-parse-eventcopy, xelb-parse-errorcopy, xelb-parse-enumref): Prefer
	module-local names to global ones.

2016-08-06  Chris Feng	<chris.w.feng@gmail.com>

	* xcb-renderutil.el (xcb:renderutil:find-format): Traverse the 'formats' 
	slot; return format ID.

2016-08-06  Chris Feng	<chris.w.feng@gmail.com>

	* xcb-ewmh.el (xcb:ewmh:-atoms): List _NET_WM_CM_S0 by default.

2016-07-31  Chris Feng	<chris.w.feng@gmail.com>

	Bump version to 0.10

2016-07-31  Chris Feng	<chris.w.feng@gmail.com>

	* xcb.el (xcb:disconnect): Check before disconnecting.

2016-07-30  Chris Feng	<chris.w.feng@gmail.com>

	; * xcb.el (xcb:disconnect): Flush before disconnection.

2016-07-29  Chris Feng	<chris.w.feng@gmail.com>

	Support system-specific and legacy keysyms

	* xcb-keysyms.el (xcb:keysyms:event->keysym, xcb:keysyms:keysym->event): 
	Also search `system-key-alist' and `x-keysym-table' for system-specific 
	and legacy keysyms respectively.

2016-07-29  Chris Feng	<chris.w.feng@gmail.com>

	Use numerical keysyms and mod-masks

	* xcb-keysyms.el (xcb:keysyms:event->keysym): Always return a cons cell 
	containing a numerical keysym and a mod-mask.
	(xcb:keysyms:keysym->event): Adapt to use numerical mod-masks.

2016-07-29  Chris Feng	<chris.w.feng@gmail.com>

	Set XKB per-client flags

	* xcb-keysyms.el (xcb:keysyms:-set-per-client-flags): New function for 
	setting XKB per-client flags (required for GrabKey and SendEvent).
	(xcb:keysyms:init, xcb:keysyms:-on-NewKeyboardNotify): Use it.

2016-07-29  Chris Feng	<chris.w.feng@gmail.com>

	Adapt 'xcb-keysyms' library to use XKB

	* xcb-keysyms.el: Remove a todo entry; load 'xcb-xkb'.
	(xcb:keysyms:auto-update): Removed since no longer required.
	(xcb:keysyms:num-lock-mask, xcb:keysyms:mode-switch-mask): Removed since 
	no longer used in conversion.
	(xcb:keysyms:-opcode, xcb:keysyms:-device, xcb:keysyms:-keytypes)
	(xcb:keysyms:-keycodes, xcb:keysyms:-modkeys, xcb:keysyms:-min-keycode)
	(xcb:keysyms:-max-keycode): Shared internal local data.
	(xcb:keysyms:init): Reworked to initialize XKB.
	(xcb:keysyms:-on-NewKeyboardNotify): New event handler for XKB 
	NewKeyboardNotify evnet.
	(xcb:keysyms:-on-MapNotify): New event handler for XKB MapNotify.
	(xcb:keysyms:-update-keytypes): New method for updating XKB key types.
	(xcb:keysyms:update-keyboard-mapping, xcb:keysyms:-update-keycodes): 
	Rename the former to the latter to update XKB keycodes-keysym mapping.
	(xcb:keysyms:update-modifier-mapping, xcb:keysyms:-update-modkeys): 
	Rename the former to the latter to update XKB modifier keys.
	(xcb:keysyms:keycode->keysym): Reworked to perform the conversion using 
	XKB rules; always return a cons cell with numerical elements.
	(xcb:keysyms:keysym->keycode): Reworked to perform the conversion using 
	XKB keycodes; always return an integer.
	(xcb:keysyms:event->keysym): Detect additional modifiers using the new
	`xcb:keysyms:keycode->keysym'.

2016-07-29  Chris Feng	<chris.w.feng@gmail.com>

	Fix extension event number

	* xcb.el (xcb:-connection-filter): Add the second byte to the extension 
	event number.

2016-07-29  Chris Feng	<chris.w.feng@gmail.com>

	Eliminate compile warnings for Emacs 24

	* el_client.el: Require eieio and xcb-types; do not use the forth 
	argument to `libxml-parse-xml-region'.
	* xcb-types.el: Backport `cl--slot-descriptor-initform'.

2016-07-29  Chris Feng	<chris.w.feng@gmail.com>

	Precompute the size of <union>

	; Rationale: Some unions in XKB are not aligned, which makes
	; marshaling/unmarshaling unions at runtime impossible.

	* el_client.el (xelb-node-size): New function for calculating node size.
	(xelb-type-size): New function for calculation the size of a type.
	(xelb-parse-union): Precompute the size of <union>.
	* xcb-types.el (xcb:-union): Add a '~size~ slot for storing the size.
	(xcb:marshal for xcb:-union, xcb:unmarshal for xcb:-union): Marshal and 
	unmarshal using the precomputed size.

	* xcb-randr.el:
	* xcb-xkb.el:
	* xcb-xproto.el: Regenerated.

2016-07-29  Chris Feng	<chris.w.feng@gmail.com>

	Fix issues with <switch>

	* el_client.el (xelb-parse): Evaluate just generated forms.
	(xelb-parse-enumref): Return the enum value instead of symbol.
	(xelb-parse-unop): Add a missing comma.

	* el_client.el (xelb-parse-switch): Aggressively simplify [bit]cases.

	* xcb-types.el (xcb:-marshal-field, xcb:-unmarshal-field): Adjust the 
	checks for switch conditions; skip `xcb:-ignore' type slots.

	* xcb-dri2.el:
	* xcb-render.el:
	* xcb-screensaver.el:
	* xcb-sync.el:
	* xcb-xf86vidmode.el:
	* xcb-xinput.el:
	* xcb-xkb.el:
	* xcb-xproto.el: Regenerated.

2016-07-29  Chris Feng	<chris.w.feng@gmail.com>

	Enable XKB module

	* .elpaignore: Unblock almost all files.
	* el_client.el (xelb-excluded-replies<25): New constants storing replies 
	that should not be loaded on Emacs 24.
	(xelb-parse-request): Prevent loading replies stored in
	`xelb-excluded-replies<25' on Emacs 24.
	* xcb-xkb.el: Regenerated.

2016-07-25  Chris Feng	<chris.w.feng@gmail.com>

	Bump version to 0.9

2016-07-13  Chris Feng	<chris.w.feng@gmail.com>

	* xcb-icccm.el (xcb:icccm:-atoms): Add WM_CHANGE_STATE atom.

2016-07-12  Chris Feng	<chris.w.feng@gmail.com>

	* xcb-ewmh.el (xcb:ewmh:-_NET_WM_STRUT_PARTIAL): Fix typos.

2016-06-03  Chris Feng	<chris.w.feng@gmail.com>

	Sync with upstream protocol

2016-05-25  Chris Feng	<chris.w.feng@gmail.com>

	Bump version to 0.8

2016-05-23  Chris Feng	<chris.w.feng@gmail.com>

	Add optional arguments to force refreshing atoms

	* xcb-ewmh.el (xcb:ewmh:init)
	* xcb-icccm.el (xcb:icccm:init, xcb:icccm:intern-atoms):
	* xcb-systemtray.el (xcb:systemtray:init):
	* xcb-xembed.el (xcb:xembed:init): Add optional arguments to force
	refreshing atoms.

2016-05-21  Chris Feng	<chris.w.feng@gmail.com>

	Bump version to 0.7

2016-05-17  Chris Feng	<chris.w.feng@gmail.com>

	Improve performance of `xcb:create-auth-info'

	* xcb.el (xcb:create-auth-info): Improve performance.

2016-05-17  Chris Feng	<chris.w.feng@gmail.com>

	Fix the parsing of X11 properties

	* xcb-icccm.el (xcb:icccm:-GetProperty~reply): Do not use the
	'bytes-after' field.

2016-05-13  Chris Feng	<chris.w.feng@gmail.com>

	Implement basic authentication during connection setup

	* xcb.el (xcb:create-auth-info): Implement the MIT-MAGIC-COOKIE-1 
	authentication protocol.
	(xcb:connect): Try sockets as well; deprecate the '_screen' argument.
	(xcb:display->socket): New function returns the socket path for an X11 
	display name.
	(xcb:connect-to-display-with-auth-info): Use `xcb:create-auth-info'; 
	deprecate the '_screen' argument.
	(xcb:parse-display): Simplify regexps (don't know why they were written 
	that way).
	(xcb:connect-to-socket): Use `xcb:display->socket' and
	`xcb:create-auth-info'.

2016-04-21  Chris Feng	<chris.w.feng@gmail.com>

	Add 'MANAGER' atom

	* xcb-icccm.el (xcb:icccm:-atoms): Add 'MANAGER' atom.

2016-03-25  Chris Feng	<chris.w.feng@gmail.com>

	Avoid using the global value `x-display-name'

	* xcb.el (xcb:connect-to-display-with-auth-info, xcb:connect-to-socket): 
	Use the frame parameter 'display' instead of `x-display-name' since the 
	latter can be cleared by e.g. launching an emacsclient.

2016-03-06  Chris Feng	<chris.w.feng@gmail.com>

	Detect implicit list length

	* el_client.el (xelb-request-fields): New variable holding fields in the 
	current request.
	(xelb-parse-request): Set/Clear the variable accordingly.
	(xelb-parse-fieldref): Detect implicit list length.

	* el_client.el (xelb-parse-request): Remove the extra argument.
	(xelb-parse-exprfield): Remove the extra quote.

2016-02-28  Chris Feng	<chris.w.feng@gmail.com>

	Add renderutil library

	* xcb-renderutil: New library adding utility functions for the Render 
	extension.

2016-02-22  Chris Feng	<chris.w.feng@gmail.com>

	Bump version to 0.6

2016-02-19  Chris Feng	<chris.w.feng@gmail.com>

	Clear modifier bits for modifier key events

	* xcb-keysyms.el (xcb:keysyms:keysym->event): Clear modifier bits for 
	modifier keys.

2016-02-19  Chris Feng	<chris.w.feng@gmail.com>

	Avoid loading cl-lib at runtime

2016-02-19  Chris Feng	<chris.w.feng@gmail.com>

	Avoid duplicated initialization

	* xcb-ewmh.el, xcb-icccm.el, xcb-systemtray.el, xcb-xembed.el: Avoid
	duplicated initialization.

2016-02-19  Chris Feng	<chris.w.feng@gmail.com>

	Implement XEmbed and System Tray protocols

	* xcb-xembed.el: New module implementing the XEmbed protocol.

	* xcb-systemtray.el: New module implementing the System Tray protocol.

	* xcb-ewmh.el (xcb:ewmh:--ClientMessage): Removed.

	* xcb-icccm.el, xcb-ewmh.el: Fix comments.

2016-02-12  Chris Feng	<chris.w.feng@gmail.com>

	Bump version to 0.5

2016-02-11  Chris Feng	<chris.w.feng@gmail.com>

	Fixes for compatibility and compilation issues

	* xcb-types.el: Backport the version of `with-slots' from Emacs 25 to
	24.

	* xcb-keysyms.el (xcb:keysyms:init): Remove error logs which break after 
	compilation.

	* el_client.el: Eliminate a compilation warning.

2016-02-11  Chris Feng	<chris.w.feng@gmail.com>

	Data types related fixes

	* el_client.el (xelb-imports, xelb-parse-import): Save imported libs in
	new variable `xelb-imports'.
	(xelb-node-type, xelb-parse-field, xelb-parse-list,
	xelb-parse-exprfield): Use new function `xelb-node-type' to search
	defined types.
	* xcb-composite.el:
	* xcb-damage.el:
	* xcb-glx.el:
	* xcb-present.el:
	* xcb-randr.el:
	* xcb-xfixes.el:
	* xcb-xinput.el:
	* xcb-xv.el:
	* xcb-xvmc.el: Data types corrected.

	* xcb-types.el: Add new 8 bytes data types `xcb:-u8' and `xcb:CARD64'. 
	Define `xcb:-fd' as an alias of `xcb:-i4'.
	(xcb:-pack-u8, xcb:-pack-u8-lsb, xcb:-unpack-u8, xcb:-unpack-u8-lsb): 
	New functions for packing/unpacking 8 bytes data on 64/32-bit machines.

	* Makefile: Eliminate a warning.

2016-02-10  Chris Feng	<chris.w.feng@gmail.com>

	Allow users to disable the keyboard mapping auto-update feature

	* xcb-keysyms.el (xcb:keysyms:auto-update, xcb:keysyms:init): Use new 
	variable `xcb:keysyms:auto-update' to control the keyboard mapping 
	auto-update feature.  This feature does not work well with e.g. XTEST 
	extension and should be disabled sometimes.  We need to switch to use
	the Xkb extension (does not work with Emacs 24) to resolve the problem.

2016-02-07  Chris Feng	<chris.w.feng@gmail.com>

	Handle MappingNotfiy event

	* xcb-keysyms.el (xcb:keysyms:init): Update keyboard/modifier mapping on 
	MappingNotfiy event.

2016-01-06  Chris Feng	<chris.w.feng@gmail.com>

	Update copyright year to 2016

2016-01-06  Chris Feng	<chris.w.feng@gmail.com>

	Sync with upstream protocol

	* el_client.el (xelb-parse-structure-content, xelb-parse-switch): Ignore 
	node <required_start_align /> (used for alignment checking purpose
	only).

	* xcb-xkb.el: Add various explicit paddings.

2015-12-13  Chris Feng	<chris.w.feng@gmail.com>

	Improve the handling of modifier keys

	* xcb-keysyms.el (xcb:keysyms:update-modifier-mapping): Find modifiers 
	according to x_find_modifier_meanings in xterm.c.

	(xcb:keysyms:event->keysym, xcb:keysyms:keysym->event): Take
	x-alt-keysym, x-meta-keysym, x-hyper-keysym and x-super-keysym into
	account when doing X KEYSYM <-> Emacs event translation.

2015-12-13  Chris Feng	<chris.w.feng@gmail.com>

	Escape an open-parenthesis

2015-11-09  Chris Feng	<chris.w.feng@gmail.com>

	Bump version to 0.4

2015-11-08  Chris Feng	<chris.w.feng@gmail.com>

	Fix a mouse event to KEYSYM translation issue

	* xcb-keysyms.el (xcb:keysyms:event->keysym): Prevent adding implicit
	shift
	 modifier for mouse events.

2015-11-06  Chris Feng	<chris.w.feng@gmail.com>

	Minor fix for the sequence number comparison function

	* xcb.el (xcb:-sequence-cmp16): Return the difference of sequence
	numbers
	 instead.

2015-11-05  Chris Feng	<chris.w.feng@gmail.com>

	Fix the reply/error sequence number overflow issue

	* xcb.el (xcb:-+reply, xcb:-request-check, xcb:aux:sync): The sequence
	 number of a reply/error is always 16 bits (taken as the least
	 significant word of the sequence number of the corresponding request).

	* xcb.el (xcb:-sequence-cmp16): New function for comparing 16-bit
	sequence
	 numbers.
	 (xcb:+request-unchecked, xcb:-request-check, xcb:aux:sync): Compare
	 sequence numbers using xcb:-sequence-cmp16.

2015-11-01  Chris Feng	<chris.w.feng@gmail.com>

	Bump version to 0.3

2015-10-31  Chris Feng	<chris.w.feng@gmail.com>

	Fix a typo and silence a compilation warning

2015-10-30  Chris Feng	<chris.w.feng@gmail.com>

	Add necessary shift mask for event to KEYSYM conversion

	* xcb-keysyms.el (xcb:keysyms:event->keysym): Add necessary shift mask
	 (required by characters like '!@#' on US keyboard).
	 (xcb:keysyms:event->keysym, xcb:keysyms:keysym->event): Turned into
	 methods of xcb:connection.
	 (xcb:keysyms:update-modifier-mapping): Use new calling conventions.

2015-10-28  Chris Feng	<chris.w.feng@gmail.com>

	Handle missing modifier keys when converting event to keysym

	* xcb-keysyms.el (xcb:keysyms:event->keysym): Return nil when any
	modifier
	 key in the event is not present.

2015-10-28  Chris Feng	<chris.w.feng@gmail.com>

	Sync with upstream protocol

	; Add explicit paddings.

2015-10-27  Chris Feng	<chris.w.feng@gmail.com>

	Handle nonlocal exits when calling event handlers

	* xcb.el (xcb:-connection-filter): Do cleanups from nonlocal exits.

2015-10-26  Chris Feng	<chris.w.feng@gmail.com>

	Fix shift key issues

	* xcb-keysyms.el (xcb:keysyms:keycode->keysym): Restrict case
	conversions
	 to Latin-1 KEYSYMs/characters.

	* xcb-keysyms.el (xcb:keysyms:keysym->keycode): Allow shift modifier for
	 KEYSYMs/characters not in Latin-1 (e.g. function keys).

2015-10-25  Chris Feng	<chris.w.feng@gmail.com>

	Ignore errors from event handlers

	* xcb.el (xcb:-connection-filter): Ignore errors from event handlers to
	 prevent them from freezing XELB.

2015-09-27  Chris Feng	<chris.w.feng@gmail.com>

	Minor fixes

	* el_client.el:
	* xcb-keysyms.el:
	 Use the new syntax for number comparison

	* xcb-types.el:
	 Fix use of eval-when-compile / eval-and-compile.

2015-09-26  Chris Feng	<chris.w.feng@gmail.com>

	Bump version to 0.2

2015-09-26  Chris Feng	<chris.w.feng@gmail.com>

	Fix packaging issues; add support for ISO function keys

	* .elpaignore: Add xcb-xkb.el as it does not work on Emacs 24.

	* xcb-types.el:
	* xcb-xim.el:
	 Fix compilation errors on Emacs 24.

	* README.md: Renamed from README.org, or its content will be taken as
	the
	 long description of this package by GNU ELPA.

	* xcb-keysyms.el (xcb:keysyms:-xf86-keys, xcb:keysyms:keysym->event):
	Fix
	 typos about XF86keysym.

	* xcb-keysyms.el (xcb:keysyms:-iso-function-keys)
	 (xcb:keysyms:event->keysym, xcb:keysyms:keysym->event): Add support for
	 ISO function keys.

2015-09-22  Chris Feng	<chris.w.feng@gmail.com>

	Bump version to 0.1

2015-09-21  Chris Feng	<chris.w.feng@gmail.com>

	Clean up backport code

	* xelb.el: Add cl-generic as dependency.

	* xcb-types.el: Load cl-generic;
	 Remove backport code for cl-defgeneric, cl-defmethod,
	 cl-call-next-method, cl--slot-descriptor-name and
	 cl--slot-descriptor-initform;
	 Backport eieio-slot-descriptor-name.

	* xcb.el (xcb:disconnect):
	* xcb-types.el (xcb:marshal of xcb:-struct, xcb:-marshal-field)
	 (xcb:unmarshal of xcb-struct, xcb:unmarshal of xcb:-union)
	 (xcb:-unmarshal-field, xcb:marshal of xcb:-union):
	* xcb-icccm.el (xcb:unmarshal of xcb:icccm:-GetProperty-explicit~reply)
	 (xcb:marshal of xcb:icccm:-ChangeProperty-explicit):
	 Use eieio-slot-descriptor-name instead of cl--slot-descriptor-name;
	 avoid using cl--slot-descriptor-initform.

	* xcb.el (xcb:connection): Provide default values for all slots.

	* README.org: Renamed from README.md; add note on cl-generic package.

2015-09-20  Chris Feng	<chris.w.feng@gmail.com>

	Backport cl-defgeneric to Emacs 24

	* xcb-types.el: Define cl-defgeneric as an alias to defgeneric.

2015-09-19  Chris Feng	<chris.w.feng@gmail.com>

	Avoid autoloading an EIEIO method

	* xcb.el:
	* xcb-type.el:
	 Avoid autoloading xcb:-error-or-event-class->number.

2015-09-19  Chris Feng	<chris.w.feng@gmail.com>

	Update SHM and GLX libraries

	* xcb-shm.el (xcb:shm:PutImage): The send-event slot is now of type
	xcb:BOOL.

	* xcb-glx.el (xcb:glx:IsEnabled, xcb:glx:IsEnabled~reply): New request
	and
	 reply.

2015-09-19  Chris Feng	<chris.w.feng@gmail.com>

	Fix copyright and coding conventions

	* el_client.el: Prefix global definitions.

	* Add copyright/license and fix library header/footer conventions for
	 generated libraries.

2015-09-18  Stefan Monnier  <monnier@iro.umontreal.ca>

	Add copyright line to generated files; Add elpa files to gitignore

2015-09-11  Chris Feng	<chris.w.feng@gmail.com>

	Minor fix

	* el_client.el: Should require `pp' library.

2015-09-08  Chris Feng	<chris.w.feng@gmail.com>

	Fix remaining compile warnings

	* el_client.el (parse): remove a warning concerning pp-escape-newlines
	* xcb_types.el: remove warnings about the backward-compatible code
	* xcb.el: autoload xcb:connection and xcb:-error-or-event-class->number

2015-09-07  Chris Feng	<chris.w.feng@gmail.com>

	Add support for XF86 keysyms

	* xcb-keysyms.el: new vector xcb:keysyms:-xf86-keys
	* xcb-keysyms.el (xcb:keysyms:event->keysym, xcb:keysyms:keysym->event):
	add
	 support for XF86 keysyms

2015-09-07  Chris Feng	<chris.w.feng@gmail.com>

	Add a missing function key

	* xcb-keysyms.el (xcb:keysyms:-function-keys): add a missing function
	key

2015-09-06  Chris Feng	<chris.w.feng@gmail.com>

	Code cleanups

	* xcb-keysyms.el (xcb:keysyms:-function-keys): change from list to
	vector
	* xcb-keysyms.el (xcb:keysyms:event->keysym), xcb-types.el
	 (cl--slot-descriptor-name, cl--slot-descriptor-initform)
	 (cl--slot-descriptor-type, xcb:-unpack-u1, xcb:-unpack-u2)
	 (xcb:-unpack-u2-lsb, xcb:-unpack-u4, xcb:-unpack-u4-lsb)
	 (xcb:-unmarshal-field), xcb.el (xcb:-connection-filter): use `aref`
	instead
	 of `elt` to index vectors
	* xelb.el, xcb.el: fix first line
	* .elpaignore: ignore Makefile and README.md

2015-09-05  Chris Feng	<chris.w.feng@gmail.com>

	Protect process-send-string

	* xcb.el (xcb:flush): protect process-send-string since input might also
	come
	 when calling it. Courtesy of @pipcet.

2015-09-04  Chris Feng	<chris.w.feng@gmail.com>

	Flatten directory structure

	It seems to be the only way to get this package built.

2015-09-03  Chris Feng	<chris.w.feng@gmail.com>

	Fix compiling issues

	* util/xcb-ewmh.el, util/xcb-icccm.el: eliminate compile warnings by
	defining
	 atom variables at compile time
	* xcb.el: `xcb:debug-on' should be used just in this file

2015-09-03  Chris Feng	<chris.w.feng@gmail.com>

	Prepare for GNU ELPA release

	* Transfer copyright to Free Software Foundation
	* Add packaging components (e.g. headers)
	* Drop support for Emacs < 24.4
	* Coding style fixes:
	 + Quote functions with "#'"
	 + Wrap long lines
	 + Fix doc strings / comments
	* Replace `string-to-int' with `string-to-number'
	* Fix compiling errors / eliminate compiling warnings
	* Remove the redundant COPYING file
	* Add .gitignore and .elpaignore
	* Rename README to README.md since the former may be used as the package
	 description by packaging systems (we prefer the ';;; Commentary'
	header)

2015-09-01  Chris Feng	<chris.w.feng@gmail.com>

	Fix race conditions

	* Ensure event handlers are running sequentially
	* Only accept outputs from the current process when calling
	 `accept-process-output process` (close ch11ng/exwm#53)

2015-08-30  Chris Feng	<chris.w.feng@gmail.com>

	Generate implicit paddings at compile time

	This commit improves aaddcd9 by generating implicit paddings at compile
	time rather than deducting them at runtime.

2015-08-28  Chris Feng	<chris.w.feng@gmail.com>

	Merge xelb-util into this repo

2015-08-28  Chris Feng	<chris.w.feng@gmail.com>

	Move generated libraries to lib/

2015-08-27  Chris Feng	<chris.w.feng@gmail.com>

	Fix a typo in 32-bit version `xcb:-unpack-u4-lsb`

2015-08-23  Chris Feng	<chris.w.feng@gmail.com>

	Merge pull request #4 from pipcet/data-offset

	Adjust to unmarshalling API changes.

2015-08-23  Philip  <pipcet@gmail.com>

	Adjust to unmarshalling API changes.

2015-08-23  Philip  <pipcet@gmail.com>

	Improve performance when unmarshalling long vectors.

	Avoid using `substring'; instead, use an extra offset argument.

	https://github.com/ch11ng/xelb/pull/2

2015-08-22  Chris Feng	<chris.w.feng@gmail.com>

	Merge pull request #3 from pipcet/ignore-missing-values

	It's valid for WM_NORMAL_HINTS responses only to have 15 words.

2015-08-22  Philip  <pipcet@gmail.com>

	It's valid for WM_NORMAL_HINTS responses only to have 15 words.

		* xcb-icccm.el (xcb:unmarshal): Accept short responses to the
	WM_NORMAL_HINTS property, such as that provided by Xnest.

2015-08-21  Philip  <pipcet@gmail.com>

	Don't assume key events are numbers; they can be symbols.

		* xcb-keysyms.el (xcb:keysyms:keysym->event): Don't die when
	translating events like shift-KP7.

2015-08-17  Chris Feng	<chris.w.feng@gmail.com>

	Provide a way to disable auto-padding

	The auto-padding feature need to be disabled for at least XIM. Perhaps
	it's better to insert auto-padding fields with code generator directly.

2015-08-17  Chris Feng	<chris.w.feng@gmail.com>

	Disable auto-padding for xcb-xim

2015-08-17  Chris Feng	<chris.w.feng@gmail.com>

	Add implicit paddings after variable-length <list>

	The XCB-XML description files omit paddings after <list>. This commit
	enables XELB to take these paddings into account when
	marshalling/unmarshalling.

2015-08-16  Chris Feng	<chris.w.feng@gmail.com>

	Make the manipulation of message cache more robust

	On Fedora 22 with Xorg 1.17.2, lots of redundant bytes are received
	during connection setup. This commit uses a more reliable way to
	calculate the consumed bytes.

	Fix ch11ng/exwm#26.

2015-08-15  Philip  <pipcet@gmail.com>

	allow key mappings without mode switch or NumLock keys

2015-08-12  Chris Feng	<chris.w.feng@gmail.com>

	Fix keyboard mapping update problem

	Keep result from previous update.

2015-08-11  Chris Feng	<chris.w.feng@gmail.com>

	Check `length` slot in `xcb:icccm:-GetProperty~reply`

	Some program (GIMP sometimes) seems only set `length` slot to 0 while
	leaving other slots (including `value-len`) uninitialized. This commit
	makes sure
	`length` slot is also checked.

2015-08-10  Chris Feng	<chris.w.feng@gmail.com>

	Fix an emacsclient bug

	When calling `xcb:keysyms:update-modifier-mapping` from a terminal
	(e.g. created by `emacsclient -t`), the selected frame cannot be used to 
	receive X events.

2015-08-10  Chris Feng	<chris.w.feng@gmail.com>

	Set the `display` slot of `xcb:connection` in `xcb:connect-to-socket`

	The slot value is guessed from the socket name, which is not always
	accurate.

2015-08-09  Chris Feng	<chris.w.feng@gmail.com>

	Fix ch11ng/exwm#16 (cursor size not matching)

2015-08-09  Chris Feng	<chris.w.feng@gmail.com>

	Disable concurrency of events

	The event handling mechanism was designed to be preemptive, which made
	events arriving in a wrong order (for applications using this library)
	and caused many problems therefore. This commit disables such behavior.

2015-08-06  Chris Feng	<chris.w.feng@gmail.com>

	Provide more verbose message when connection failed or auth required

2015-08-06  Chris Feng	<chris.w.feng@gmail.com>

	Fix integer overflow on 32-bit platform

2015-08-06  Chris Feng	<chris.w.feng@gmail.com>

	Fix for 32bit platform

2015-08-05  Chris Feng	<chris.w.feng@gmail.com>

	Update xcb-randr.el

	Was: randr: add RandR 1.5 requests and data types

2015-08-04  Chris Feng	<chris.w.feng@gmail.com>

	Cleanup code

	Also make <pad> counter more robust.

2015-07-19  Chris Feng	<chris.w.feng@gmail.com>

	Fix shift bit for converting from keysym to Emacs event

	Emacs only set shift bit for letters.

2015-07-17  Chris Feng	<chris.w.feng@gmail.com>

	First commit

2015-07-17  Chris Feng	<chris.w.feng@gmail.com>

	First commit

