emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/xelb 6c4ab31 1/2: Fix copyright and coding conventions


From: Chris Feng
Subject: [elpa] externals/xelb 6c4ab31 1/2: Fix copyright and coding conventions
Date: Sat, 19 Sep 2015 02:01:42 +0000

branch: externals/xelb
commit 6c4ab318a9c1c2e87639d88fe42a7e458d78f885
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>

    Fix copyright and coding conventions
    
    * el_client.el: Prefix global definitions.
    
    * Add copyright/license and fix library header/footer conventions for
      generated libraries.
---
 el_client.el       |  455 +++++++++++++++++++++++++++++-----------------------
 xcb-bigreq.el      |   28 +++-
 xcb-composite.el   |   28 +++-
 xcb-damage.el      |   28 +++-
 xcb-dpms.el        |   28 +++-
 xcb-dri2.el        |   32 ++++-
 xcb-dri3.el        |   28 +++-
 xcb-ge.el          |   28 +++-
 xcb-glx.el         |   28 +++-
 xcb-present.el     |   28 +++-
 xcb-randr.el       |   28 +++-
 xcb-record.el      |   28 +++-
 xcb-render.el      |   28 +++-
 xcb-res.el         |   28 +++-
 xcb-screensaver.el |   28 +++-
 xcb-shape.el       |   28 +++-
 xcb-shm.el         |   28 +++-
 xcb-sync.el        |   28 +++-
 xcb-xc_misc.el     |   28 +++-
 xcb-xevie.el       |   28 +++-
 xcb-xf86dri.el     |   28 +++-
 xcb-xf86vidmode.el |   56 +++++--
 xcb-xfixes.el      |   28 +++-
 xcb-xinerama.el    |   28 +++-
 xcb-xinput.el      |   28 +++-
 xcb-xkb.el         |   44 ++++--
 xcb-xprint.el      |   28 +++-
 xcb-xproto.el      |   28 +++-
 xcb-xselinux.el    |   28 +++-
 xcb-xtest.el       |   28 +++-
 xcb-xv.el          |   28 +++-
 xcb-xvmc.el        |   28 +++-
 32 files changed, 1081 insertions(+), 290 deletions(-)

diff --git a/el_client.el b/el_client.el
index bc0be64..1657b6e 100644
--- a/el_client.el
+++ b/el_client.el
@@ -45,41 +45,41 @@
 
 ;;;; Variables
 
-(defvar ec-prefix "xcb:" "Namespace of this module.")
-(make-variable-buffer-local 'ec-prefix)
+(defvar xelb-prefix "xcb:" "Namespace of this module.")
+(make-variable-buffer-local 'xelb-prefix)
 
-(defvar error-alist nil "Record X errors in this module.")
-(make-variable-buffer-local 'error-alist)
+(defvar xelb-error-alist nil "Record X errors in this module.")
+(make-variable-buffer-local 'xelb-error-alist)
 
-(defvar event-alist nil "Record X events in this module.")
-(make-variable-buffer-local 'event-alist)
+(defvar xelb-event-alist nil "Record X events in this module.")
+(make-variable-buffer-local 'xelb-event-alist)
 
-(defvar pad-count -1 "<pad> node counter.")
-(make-variable-buffer-local 'pad-count)
+(defvar xelb-pad-count -1 "<pad> node counter.")
+(make-variable-buffer-local 'xelb-pad-count)
 
 ;;;; Helper functions
 
-(defsubst node-name (node)
+(defsubst xelb-node-name (node)
   "Return the tag name of node NODE."
   (car node))
 
-(defsubst node-attr (node attr)
+(defsubst xelb-node-attr (node attr)
   "Return the attribute ATTR of node NODE."
   (cdr (assoc attr (cadr node))))
 
-(defsubst escape-name (name)
+(defsubst xelb-escape-name (name)
   "Replace underscores in NAME with dashes."
   (replace-regexp-in-string "_" "-" name))
 
-(defsubst node-name-escape (node)
+(defsubst xelb-node-name-escape (node)
   "Return the tag name of node NODE and escape it."
-  (escape-name (node-name node)))
+  (xelb-escape-name (xelb-node-name node)))
 
-(defsubst node-attr-escape (node attr)
+(defsubst xelb-node-attr-escape (node attr)
   "Return the attribute ATTR of node NODE and escape it."
-  (escape-name (node-attr node attr)))
+  (xelb-escape-name (xelb-node-attr node attr)))
 
-(defsubst node-subnodes (node &optional mark-auto-padding)
+(defsubst xelb-node-subnodes (node &optional mark-auto-padding)
   "Return all the subnodes of node NODE as a list.
 
 If MARK-AUTO-PADDING is non-nil, all <list>'s fitting for padding will include
@@ -90,181 +90,223 @@ an `xelb-auto-padding' attribute."
       (cl-delete-if (lambda (i) (or (eq 'comment (car i)) (eq 'doc (car i))))
                     subnodes)
       (dotimes (i (1- (length subnodes)))
-        (when (and (eq 'list (node-name (elt subnodes i)))
-                   (pcase (node-name (elt subnodes (1+ i)))
+        (when (and (eq 'list (xelb-node-name (elt subnodes i)))
+                   (pcase (xelb-node-name (elt subnodes (1+ i)))
                      ((or `reply `pad))
                      (_ t)))
           (setf (cadr (elt subnodes i))
                 (nconc (cadr (elt subnodes i)) `((xelb-auto-padding . t)))))))
     subnodes))
 
-(defsubst node-subnode (node)
+(defsubst xelb-node-subnode (node)
   "Return the (only) subnode of node NODE with useless contents skipped."
-  (let ((result (node-subnodes node)))
+  (let ((result (xelb-node-subnodes node)))
     (catch 'break
       (dolist (i result)
         (unless (and (listp i)
-                     (or (eq (node-name i) 'comment) (eq (node-name i) 'doc)))
+                     (or (eq (xelb-node-name i) 'comment)
+                         (eq (xelb-node-name i) 'doc)))
           (throw 'break i))))))
 
-(defsubst generate-pad-name ()
+(defsubst xelb-generate-pad-name ()
   "Generate a new slot name for <pad>."
-  (make-symbol (format "pad~%d" (cl-incf pad-count))))
+  (make-symbol (format "pad~%d" (cl-incf xelb-pad-count))))
 
 ;;;; Entry & root element
 
-(defun parse (file)
+(defun xelb-parse (file)
   "Parse an XCB protocol description file FILE (XML)."
   (let ((pp-escape-newlines nil)        ;do not escape newlines
         result header)
     (with-temp-buffer
       (insert-file-contents file)
       (setq result (libxml-parse-xml-region (point-min) (point-max) nil t))
-      (cl-assert (eq 'xcb (node-name result)))
-      (setq header (node-attr result 'header))
+      (cl-assert (eq 'xcb (xelb-node-name result)))
+      (setq header (xelb-node-attr result 'header))
       (unless (string= header "xproto")
-        (setq ec-prefix (concat ec-prefix header ":")))
+        (setq xelb-prefix (concat xelb-prefix header ":")))
       ;; Print header
       (princ (format "\
-;;; -*- lexical-binding: t -*-
-;; This file was generated from `%s' by `el_client.el'.
-\n(require 'xcb-types)\n\n" (file-name-nondirectory file)))
+;;; xcb-%s.el --- X11 %s  -*- lexical-binding: t -*-
+
+;; Copyright (C) 2015 Free Software Foundation, Inc.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from '%s',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
+
+(require 'xcb-types)
+
+" header (let ((extension-name (xelb-node-attr result 'extension-name)))
+           (if extension-name
+               (concat extension-name " extension")
+             "core protocol"))
+                     (file-name-nondirectory file)))
       ;; Print extension info (if any)
-      (let ((extension-xname (node-attr result 'extension-xname))
-            (extension-name (node-attr result 'extension-name))
-            (major-version (node-attr result 'major-version))
-            (minor-version (node-attr result 'minor-version)))
+      (let ((extension-xname (xelb-node-attr result 'extension-xname))
+            (extension-name (xelb-node-attr result 'extension-name))
+            (major-version (xelb-node-attr result 'major-version))
+            (minor-version (xelb-node-attr result 'minor-version)))
         (when extension-xname
-          (pp `(defconst ,(intern (concat ec-prefix "-extension-xname"))
+          (pp `(defconst ,(intern (concat xelb-prefix "-extension-xname"))
                  ,extension-xname)))
         (when extension-name
-          (pp `(defconst ,(intern (concat ec-prefix "-extension-name"))
+          (pp `(defconst ,(intern (concat xelb-prefix "-extension-name"))
                  ,extension-name)))
         (when major-version
-          (pp `(defconst ,(intern (concat ec-prefix "-major-version"))
+          (pp `(defconst ,(intern (concat xelb-prefix "-major-version"))
                  ,(string-to-number major-version))))
         (when minor-version
-          (pp `(defconst ,(intern (concat ec-prefix "-minor-version"))
+          (pp `(defconst ,(intern (concat xelb-prefix "-minor-version"))
                  ,(string-to-number minor-version))))
         (when (or extension-xname extension-name major-version minor-version)
           (princ "\n")))
       ;; Print contents
-      (dolist (i (node-subnodes result))
-        (let ((result (parse-top-level-element i)))
+      (dolist (i (xelb-node-subnodes result))
+        (let ((result (xelb-parse-top-level-element i)))
           (when result                  ;skip <doc>, comments, etc
             (dolist (j result)
               (pp j))
             (princ "\n"))))
       ;; Print error/event alists
-      (when error-alist
-        (pp `(defconst ,(intern (concat ec-prefix "error-number-class-alist"))
-               ',error-alist "(error-number . error-class) alist"))
+      (when xelb-error-alist
+        (pp
+         `(defconst ,(intern (concat xelb-prefix "error-number-class-alist"))
+            ',xelb-error-alist "(error-number . error-class) alist"))
         (princ "\n"))
-      (when event-alist
-        (pp `(defconst ,(intern (concat ec-prefix "event-number-class-alist"))
-               ',event-alist "(event-number . event-class) alist"))
+      (when xelb-event-alist
+        (pp
+         `(defconst ,(intern (concat xelb-prefix "event-number-class-alist"))
+            ',xelb-event-alist "(event-number . event-class) alist"))
         (princ "\n"))
       ;; Print footer
-      (princ (format "\n\n(provide 'xcb-%s)\n" header)))))
+      (princ (format "\
+
+
+(provide 'xcb-%s)
+
+;;; xcb-%s.el ends here
+" header header)))))
 
 ;;;; XCB: top-level elements
 
-(defun parse-top-level-element (node)
+(defun xelb-parse-top-level-element (node)
   "Parse a top-level node NODE."
-  (setq pad-count -1)
-  (pcase (node-name node)
-    (`import (parse-import node))
-    (`struct (parse-struct node))
-    (`union (parse-union node))
+  (setq xelb-pad-count -1)
+  (pcase (xelb-node-name node)
+    (`import (xelb-parse-import node))
+    (`struct (xelb-parse-struct node))
+    (`union (xelb-parse-union node))
     ((or `xidtype `xidunion)
-     (parse-xidtype node))              ;they are basically the same
-    (`enum (parse-enum node))
-    (`typedef (parse-typedef node))
-    (`request (parse-request node))
-    (`event (parse-event node))
-    (`error (parse-error node))
-    (`eventcopy (parse-eventcopy node))
-    (`errorcopy (parse-errorcopy node))
+     (xelb-parse-xidtype node))         ;they are basically the same
+    (`enum (xelb-parse-enum node))
+    (`typedef (xelb-parse-typedef node))
+    (`request (xelb-parse-request node))
+    (`event (xelb-parse-event node))
+    (`error (xelb-parse-error node))
+    (`eventcopy (xelb-parse-eventcopy node))
+    (`errorcopy (xelb-parse-errorcopy node))
     ((or `comment `doc))                ;ignored
     (x (error "Unsupported top-level element: <%s>" x))))
 
-(defun parse-import (node)
+(defun xelb-parse-import (node)
   "Parse <import>."
-  (let ((header (intern (concat "xcb-" (node-subnode node)))))
+  (let ((header (intern (concat "xcb-" (xelb-node-subnode node)))))
     (require header)
     `((require ',header))))
 
-(defun parse-struct (node)
+(defun xelb-parse-struct (node)
   "Parse <struct>."
-  (let ((name (intern (concat ec-prefix (node-attr node 'name))))
-        (contents (node-subnodes node t)))
+  (let ((name (intern (concat xelb-prefix (xelb-node-attr node 'name))))
+        (contents (xelb-node-subnodes node t)))
     `((defclass ,name (xcb:-struct)
-        ,(apply #'nconc (mapcar #'parse-structure-content contents))))))
+        ,(apply #'nconc (mapcar #'xelb-parse-structure-content contents))))))
 
-(defun parse-union (node)
+(defun xelb-parse-union (node)
   "Parse <union>."
-  (let ((name (intern (concat ec-prefix (node-attr node 'name))))
-        (contents (node-subnodes node)))
+  (let ((name (intern (concat xelb-prefix (xelb-node-attr node 'name))))
+        (contents (xelb-node-subnodes node)))
     `((defclass ,name (xcb:-union)
-        ,(apply #'nconc (mapcar #'parse-structure-content contents))))))
+        ,(apply #'nconc (mapcar #'xelb-parse-structure-content contents))))))
 
-(defun parse-xidtype (node)
+(defun xelb-parse-xidtype (node)
   "Parse <xidtype>."
-  (let ((name (intern (concat ec-prefix (node-attr node 'name)))))
+  (let ((name (intern (concat xelb-prefix (xelb-node-attr node 'name)))))
     `((xcb:deftypealias ',name 'xcb:-u4))))
 
-(defun parse-enum (node)
+(defun xelb-parse-enum (node)
   "Parse <enum>."
-  (let ((name-prefix (concat ec-prefix (node-attr node 'name) ":"))
-        (items (node-subnodes node))
+  (let ((name-prefix (concat xelb-prefix (xelb-node-attr node 'name) ":"))
+        (items (xelb-node-subnodes node))
         (value 0))
     (delq nil                ;remove nil's produced by tags like <doc>
           (mapcar (lambda (i)
-                    (when (eq (node-name i) 'item) ;only handle <item> tags
-                      (let* ((name (node-attr i 'name))
+                    (when (eq (xelb-node-name i) 'item)
+                      ;; Only handle <item> tags
+                      (let* ((name (xelb-node-attr i 'name))
                              (name (intern (concat name-prefix name)))
-                             (expression (node-subnode i)))
+                             (expression (xelb-node-subnode i)))
                         (if expression
-                            (setq value (parse-expression expression))
+                            (setq value (xelb-parse-expression expression))
                           (setq value (1+ value)))
                         `(defconst ,name ,value))))
                   items))))
 
-(defun parse-typedef (node)
+(defun xelb-parse-typedef (node)
   "Parse <typedef>."
-  (let* ((oldname (node-attr node 'oldname))
+  (let* ((oldname (xelb-node-attr node 'oldname))
          (oldname (or (intern-soft (concat "xcb:" oldname))
-                      (intern (concat ec-prefix oldname))))
-         (newname (intern (concat ec-prefix (node-attr node 'newname)))))
+                      (intern (concat xelb-prefix oldname))))
+         (newname (intern (concat xelb-prefix
+                                  (xelb-node-attr node 'newname)))))
     `((xcb:deftypealias ',newname ',oldname))))
 
-(defun parse-request (node)
+(defun xelb-parse-request (node)
   "Parse <request>.
 
 The `combine-adjacent' attribute is simply ignored."
-  (let* ((name (intern (concat ec-prefix (node-attr node 'name))))
-         (opcode (string-to-number (node-attr node 'opcode)))
+  (let* ((name (intern (concat xelb-prefix (xelb-node-attr node 'name))))
+         (opcode (string-to-number (xelb-node-attr node 'opcode)))
          (contents `((~opcode :initform ,opcode :type xcb:-u1)))
-         (subnodes (node-subnodes node t))
+         (subnodes (xelb-node-subnodes node t))
          expressions
          result reply-name reply-contents)
     (dolist (i subnodes)
-      (if (not (eq (node-name i) 'reply))
+      (if (not (eq (xelb-node-name i) 'reply))
           (progn
-            (setq result (parse-structure-content i))
-            (if (eq 'exprfield (node-name i))
+            (setq result (xelb-parse-structure-content i))
+            (if (eq 'exprfield (xelb-node-name i))
                 ;; Split into field and expression
                 (setq contents (nconc contents (list (car result)))
                       expressions (nconc expressions (list (cadr result))))
               (setq contents (nconc contents result))))
         ;; Parse <reply>
-        (setq pad-count -1)             ;reset padding counter
+        (setq xelb-pad-count -1)        ;reset padding counter
         (setq reply-name
-              (intern (concat ec-prefix (node-attr node 'name) "~reply")))
-        (setq reply-contents (node-subnodes i t))
+              (intern (concat xelb-prefix (xelb-node-attr node 'name)
+                              "~reply")))
+        (setq reply-contents (xelb-node-subnodes i t))
         (setq reply-contents
               (apply #'nconc
-                     (mapcar #'parse-structure-content reply-contents)))))
+                     (mapcar #'xelb-parse-structure-content reply-contents)))))
     (delq nil contents)
     (delq nil
           `((defclass ,name (xcb:-request) ,contents)
@@ -278,16 +320,17 @@ The `combine-adjacent' attribute is simply ignored."
                (delq nil reply-contents)
                `(defclass ,reply-name (xcb:-reply) ,reply-contents))))))
 
-(defun parse-event (node)
+(defun xelb-parse-event (node)
   "Parse <event>.
 
 The `no-sequence-number' is ignored here since it's only used for
 KeymapNotify event; instead, we handle this case in `xcb:unmarshal'."
-  (let ((name (intern (concat ec-prefix (node-attr node 'name))))
-        (event-number (string-to-number (node-attr node 'number)))
-        (xge (node-attr node 'xge))
-        (contents (node-subnodes node t)))
-    (setq contents (apply #'nconc (mapcar #'parse-structure-content contents)))
+  (let ((name (intern (concat xelb-prefix (xelb-node-attr node 'name))))
+        (event-number (string-to-number (xelb-node-attr node 'number)))
+        (xge (xelb-node-attr node 'xge))
+        (contents (xelb-node-subnodes node t)))
+    (setq contents
+          (apply #'nconc (mapcar #'xelb-parse-structure-content contents)))
     (when xge                           ;generic event
       (setq contents
             (append
@@ -295,86 +338,86 @@ KeymapNotify event; instead, we handle this case in 
`xcb:unmarshal'."
                (length :type xcb:CARD32)
                (evtype :type xcb:CARD16))
              contents)))
-    (setq event-alist (nconc event-alist `((,event-number . ,name))))
+    (setq xelb-event-alist (nconc xelb-event-alist `((,event-number . ,name))))
     `((defclass ,name (xcb:-event) ,contents))))
 
-(defun parse-error (node)
+(defun xelb-parse-error (node)
   "Parse <error>."
-  (let ((name (intern (concat ec-prefix (node-attr node 'name))))
-        (error-number (string-to-number (node-attr node 'number)))
-        (contents (node-subnodes node t)))
-    (setq error-alist (nconc error-alist `((,error-number . ,name))))
+  (let ((name (intern (concat xelb-prefix (xelb-node-attr node 'name))))
+        (error-number (string-to-number (xelb-node-attr node 'number)))
+        (contents (xelb-node-subnodes node t)))
+    (setq xelb-error-alist (nconc xelb-error-alist `((,error-number . ,name))))
     `((defclass ,name (xcb:-error)
-        ,(apply #'nconc (mapcar #'parse-structure-content contents))))))
+        ,(apply #'nconc (mapcar #'xelb-parse-structure-content contents))))))
 
-(defun parse-eventcopy (node)
+(defun xelb-parse-eventcopy (node)
   "Parse <eventcopy>."
-  (let* ((name (intern (concat ec-prefix (node-attr node 'name))))
-         (refname (node-attr node 'ref))
+  (let* ((name (intern (concat xelb-prefix (xelb-node-attr node 'name))))
+         (refname (xelb-node-attr node 'ref))
          (refname (or (intern-soft (concat "xcb:" refname))
-                      (intern (concat ec-prefix refname))))
-         (event-number (string-to-number (node-attr node 'number))))
-    (setq event-alist (nconc event-alist `((,event-number . ,name))))
+                      (intern (concat xelb-prefix refname))))
+         (event-number (string-to-number (xelb-node-attr node 'number))))
+    (setq xelb-event-alist (nconc xelb-event-alist `((,event-number . ,name))))
     `((defclass ,name (xcb:-event ,refname) nil)))) ;shadow the method of ref
 
-(defun parse-errorcopy (node)
+(defun xelb-parse-errorcopy (node)
   "Parse <errorcopy>."
-  (let* ((name (intern (concat ec-prefix (node-attr node 'name))))
-         (refname (node-attr node 'ref))
+  (let* ((name (intern (concat xelb-prefix (xelb-node-attr node 'name))))
+         (refname (xelb-node-attr node 'ref))
          (refname (or (intern-soft (concat "xcb:" refname))
-                      (intern (concat ec-prefix refname))))
-         (error-number (string-to-number (node-attr node 'number))))
-    (setq error-alist (nconc error-alist `((,error-number . ,name))))
+                      (intern (concat xelb-prefix refname))))
+         (error-number (string-to-number (xelb-node-attr node 'number))))
+    (setq xelb-error-alist (nconc xelb-error-alist `((,error-number . ,name))))
     `((defclass ,name (xcb:-error ,refname) nil)))) ;shadow the method of ref
 
 ;;;; XCB: structure contents
 
-(defun parse-structure-content (node)
+(defun xelb-parse-structure-content (node)
   "Parse a structure content node NODE."
-  (pcase (node-name node)
-    (`pad (parse-pad node))
-    (`field (parse-field node))
-    (`fd (parse-fd node))
-    (`list (parse-list node))
-    (`exprfield (parse-exprfield node))
-    (`switch (parse-switch node))
+  (pcase (xelb-node-name node)
+    (`pad (xelb-parse-pad node))
+    (`field (xelb-parse-field node))
+    (`fd (xelb-parse-fd node))
+    (`list (xelb-parse-list node))
+    (`exprfield (xelb-parse-exprfield node))
+    (`switch (xelb-parse-switch node))
     ((or `comment `doc))                ;simply ignored
     (x (error "Unsupported structure content: <%s>" x))))
 
 ;; The car of the result shall be renamed to prevent duplication of slot names
-(defun parse-pad (node)
+(defun xelb-parse-pad (node)
   "Parse <pad>."
-  (let ((bytes (node-attr node 'bytes))
-        (align (node-attr node 'align)))
+  (let ((bytes (xelb-node-attr node 'bytes))
+        (align (xelb-node-attr node 'align)))
     (if bytes
-        `((,(generate-pad-name)
+        `((,(xelb-generate-pad-name)
            :initform ,(string-to-number bytes) :type xcb:-pad))
       (if align
-          `((,(generate-pad-name)
+          `((,(xelb-generate-pad-name)
              :initform ,(string-to-number align) :type xcb:-pad-align))
         (error "Invalid <pad> field")))))
 
-(defun parse-field (node)
+(defun xelb-parse-field (node)
   "Parse <field>."
-  (let* ((name (intern (node-attr-escape node 'name)))
-         (type (node-attr node 'type))
+  (let* ((name (intern (xelb-node-attr-escape node 'name)))
+         (type (xelb-node-attr node 'type))
          (type (or (intern-soft (concat "xcb:" type)) ;extension or xproto
-                   (intern (concat ec-prefix type)))))
+                   (intern (concat xelb-prefix type)))))
     `((,name :initarg ,(intern (concat ":" (symbol-name name))) :type ,type))))
 
-(defun parse-fd (node)
+(defun xelb-parse-fd (node)
   "Parse <fd>."
-  (let ((name (intern (node-attr-escape node 'name))))
+  (let ((name (intern (xelb-node-attr-escape node 'name))))
     `((,name :type xcb:-fd))))
 
-(defun parse-list (node)
+(defun xelb-parse-list (node)
   "Parse <list>."
-  (let* ((name (intern (node-attr-escape node 'name)))
-         (name-alt (intern (concat (node-attr-escape node 'name) "~")))
-         (type (node-attr node 'type))
+  (let* ((name (intern (xelb-node-attr-escape node 'name)))
+         (name-alt (intern (concat (xelb-node-attr-escape node 'name) "~")))
+         (type (xelb-node-attr node 'type))
          (type (or (intern-soft (concat "xcb:" type))
-                   (intern (concat ec-prefix type))))
-         (size (parse-expression (node-subnode node))))
+                   (intern (concat xelb-prefix type))))
+         (size (xelb-parse-expression (xelb-node-subnode node))))
     `((,name :initarg ,(intern (concat ":" (symbol-name name)))
              :type xcb:-ignore)
       (,name-alt :initform '(name ,name type ,type size ,size)
@@ -382,40 +425,41 @@ KeymapNotify event; instead, we handle this case in 
`xcb:unmarshal'."
       ;; Auto padding after variable-length list
       ;; FIXME: according to the definition of `XCB_TYPE_PAD' in xcb.h, it does
       ;;        not always padding to 4 bytes.
-      ,@(when (and (node-attr node 'xelb-auto-padding) (not (integerp size)))
-          `((,(generate-pad-name) :initform 4 :type xcb:-pad-align))))))
+      ,@(when (and (xelb-node-attr node 'xelb-auto-padding)
+                   (not (integerp size)))
+          `((,(xelb-generate-pad-name) :initform 4 :type xcb:-pad-align))))))
 
 ;; The car of result is the field declaration, and the cadr is the expression
 ;; to be evaluated.
-(defun parse-exprfield (node)
+(defun xelb-parse-exprfield (node)
   "Parse <exprfield>."
-  (let* ((name (intern (node-attr-escape node 'name)))
-         (type (node-attr node 'type))
+  (let* ((name (intern (xelb-node-attr-escape node 'name)))
+         (type (xelb-node-attr node 'type))
          (type (or (intern-soft (concat "xcb:" type))
-                   (intern (concat ec-prefix type))))
-         (value (parse-expression (node-subnode node))))
+                   (intern (concat xelb-prefix type))))
+         (value (xelb-parse-expression (xelb-node-subnode node))))
     `((,name :type ,type)
       (setf (slot-value obj ',name) ',value))))
 
 ;; The only difference between <bitcase> and <case> is whether the `condition'
 ;; is a list
 ;; The name attribute of <bitcase> and <case> seems not useful here.
-(defun parse-switch (node)
+(defun xelb-parse-switch (node)
   "Parse <switch>."
-  (let ((name (intern (node-attr-escape node 'name)))
-        (expression (parse-expression (car (node-subnodes node))))
-        (cases (cdr (node-subnodes node)))
+  (let ((name (intern (xelb-node-attr-escape node 'name)))
+        (expression (xelb-parse-expression (car (xelb-node-subnodes node))))
+        (cases (cdr (xelb-node-subnodes node)))
         fields)
     ;; Avoid duplicated slot names by appending "*" if necessary
     (let (names name)
       (dolist (case cases)
-        (pcase (node-name case)
+        (pcase (xelb-node-name case)
           ((or `bitcase `case)
-           (dolist (field (node-subnodes case))
-             (pcase (node-name field)
+           (dolist (field (xelb-node-subnodes case))
+             (pcase (xelb-node-name field)
                ((or `enumref `pad `doc `comment))
                (_
-                (setq name (node-attr field 'name))
+                (setq name (xelb-node-attr field 'name))
                 (when (member name names)
                   (while (member name names)
                     (setq name (concat name "*")))
@@ -423,16 +467,17 @@ KeymapNotify event; instead, we handle this case in 
`xcb:unmarshal'."
                 (cl-pushnew name names :test #'equal))))))))
     (setq cases
           (mapcar (lambda (i)
-                    (let ((case-name (node-name i))
+                    (let ((case-name (xelb-node-name i))
                           condition name-list tmp)
                       (when (or (eq case-name 'bitcase) (eq case-name 'case))
-                        (dolist (j (node-subnodes i t))
-                          (pcase (node-name j)
+                        (dolist (j (xelb-node-subnodes i t))
+                          (pcase (xelb-node-name j)
                             (`enumref
                              (setq condition
-                                   (nconc condition (list (parse-enumref j)))))
+                                   (nconc condition
+                                          (list (xelb-parse-enumref j)))))
                             (_
-                             (setq tmp (parse-structure-content j))
+                             (setq tmp (xelb-parse-structure-content j))
                              (setq fields (nconc fields tmp))
                              (setq name-list
                                    (nconc name-list (list (caar tmp)))))))
@@ -448,29 +493,29 @@ KeymapNotify event; instead, we handle this case in 
`xcb:unmarshal'."
 
 ;;;; XCB: expressions
 
-(defun parse-expression (node)
+(defun xelb-parse-expression (node)
   "Parse an expression node NODE."
   (when node
-    (pcase (node-name node)
-      (`op (parse-op node))
-      (`fieldref (parse-fieldref node))
-      (`paramref (parse-paramref node))
-      (`value (parse-value node))
-      (`bit (parse-bit node))
-      (`enumref (parse-enumref node))
-      (`unop (parse-unop node))
-      (`sumof (parse-sumof node))
-      (`popcount (parse-popcount node))
-      (`listelement-ref (parse-listelement-ref node))
+    (pcase (xelb-node-name node)
+      (`op (xelb-parse-op node))
+      (`fieldref (xelb-parse-fieldref node))
+      (`paramref (xelb-parse-paramref node))
+      (`value (xelb-parse-value node))
+      (`bit (xelb-parse-bit node))
+      (`enumref (xelb-parse-enumref node))
+      (`unop (xelb-parse-unop node))
+      (`sumof (xelb-parse-sumof node))
+      (`popcount (xelb-parse-popcount node))
+      (`listelement-ref (xelb-parse-listelement-ref node))
       ((or `comment `doc))              ;simply ignored
       (x (error "Unsupported expression: <%s>" x)))))
 
-(defun parse-op (node)
+(defun xelb-parse-op (node)
   "Parse <op>."
-  (let* ((subnodes (node-subnodes node))
-         (x (parse-expression (car subnodes)))
-         (y (parse-expression (cadr subnodes))))
-    (pcase (node-attr node 'op)
+  (let* ((subnodes (xelb-node-subnodes node))
+         (x (xelb-parse-expression (car subnodes)))
+         (y (xelb-parse-expression (cadr subnodes))))
+    (pcase (xelb-node-attr node 'op)
       ("+" `(+ ,x ,y))
       ("-" `(- ,x ,y))
       ("*" `(* ,x ,y))
@@ -479,53 +524,55 @@ KeymapNotify event; instead, we handle this case in 
`xcb:unmarshal'."
       ("<<" `(lsh ,x ,y))
       (x (error "Unsupported operator: `%s'" x)))))
 
-(defun parse-fieldref (node)
+(defun xelb-parse-fieldref (node)
   "Parse <fieldref>."
-  `(xcb:-fieldref ',(intern (escape-name (node-subnode node)))))
+  `(xcb:-fieldref ',(intern (xelb-escape-name (xelb-node-subnode node)))))
 
-(defun parse-paramref (node)
+(defun xelb-parse-paramref (node)
   "Parse <paramref>."
-  `(xcb:-paramref ',(intern (escape-name (node-subnode node)))))
+  `(xcb:-paramref ',(intern (xelb-escape-name (xelb-node-subnode node)))))
 
-(defun parse-value (node)
+(defun xelb-parse-value (node)
   "Parse <value>."
-  (string-to-number (replace-regexp-in-string "^0x" "#x" (node-subnode node))))
+  (string-to-number
+   (replace-regexp-in-string "^0x" "#x" (xelb-node-subnode node))))
 
-(defun parse-bit (node)
+(defun xelb-parse-bit (node)
   "Parse <bit>."
-  (let ((bit (string-to-number (node-subnode node))))
+  (let ((bit (string-to-number (xelb-node-subnode node))))
     (cl-assert (and (<= 0 bit) (>= 31 bit)))
     (lsh 1 bit)))
 
-(defun parse-enumref (node)
+(defun xelb-parse-enumref (node)
   "Parse <enumref>."
-  (let ((name (concat (node-attr node 'ref) ":" (node-subnode node))))
+  (let ((name (concat (xelb-node-attr node 'ref) ":"
+                      (xelb-node-subnode node))))
     (or (intern-soft (concat "xcb:" name))
-        (intern (concat ec-prefix name)))))
+        (intern (concat xelb-prefix name)))))
 
-(defun parse-unop (node)
+(defun xelb-parse-unop (node)
   "Parse <unop>."
-  (cl-assert (string= "~" (node-attr node 'op)))
-  `(lognot (parse-expression (node-subnode node))))
+  (cl-assert (string= "~" (xelb-node-attr node 'op)))
+  `(lognot (xelb-parse-expression (xelb-node-subnode node))))
 
-(defun parse-sumof (node)
+(defun xelb-parse-sumof (node)
   "Parse <sumof>."
-  (let* ((ref (intern (node-attr-escape node 'ref)))
-         (expression (node-subnode node))
+  (let* ((ref (intern (xelb-node-attr-escape node 'ref)))
+         (expression (xelb-node-subnode node))
          (list-data `(slot-value obj ',ref)))
     (if (not expression)
         `(apply #'+ ,list-data)
-      (setq expression (parse-expression expression))
+      (setq expression (xelb-parse-expression expression))
       `(apply #'+ (mapcar (lambda (i)
                             (eval ',expression (list (nconc '(obj) i))))
                           ,list-data)))))
 
-(defun parse-popcount (node)
+(defun xelb-parse-popcount (node)
   "Parse <popcount>."
-  (let ((expression (parse-expression (node-subnode node))))
+  (let ((expression (xelb-parse-expression (xelb-node-subnode node))))
     `(xcb:-popcount ,expression)))
 
-(defun parse-listelement-ref (_node)
+(defun xelb-parse-listelement-ref (_node)
   "Parse <listelement-ref>."
   'obj)                      ;a list element is internally named 'obj'
 
@@ -540,6 +587,6 @@ KeymapNotify event; instead, we handle this case in 
`xcb:unmarshal'."
   (dolist (i (cdr argv))
     (add-to-list 'load-path i))
   (require 'xcb-types)
-  (parse (car argv)))
+  (xelb-parse (car argv)))
 
 ;;; el_client.el ends here
diff --git a/xcb-bigreq.el b/xcb-bigreq.el
index 685dc45..34de062 100644
--- a/xcb-bigreq.el
+++ b/xcb-bigreq.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-bigreq.el --- X11 BigRequests extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `bigreq.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'bigreq.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -20,3 +42,5 @@
 
 
 (provide 'xcb-bigreq)
+
+;;; xcb-bigreq.el ends here
diff --git a/xcb-composite.el b/xcb-composite.el
index dea81eb..12beb8b 100644
--- a/xcb-composite.el
+++ b/xcb-composite.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-composite.el --- X11 Composite extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `composite.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'composite.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -86,3 +108,5 @@
 
 
 (provide 'xcb-composite)
+
+;;; xcb-composite.el ends here
diff --git a/xcb-damage.el b/xcb-damage.el
index a603906..4f93d9b 100644
--- a/xcb-damage.el
+++ b/xcb-damage.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-damage.el --- X11 Damage extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `damage.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'damage.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -82,3 +104,5 @@
 
 
 (provide 'xcb-damage)
+
+;;; xcb-damage.el ends here
diff --git a/xcb-dpms.el b/xcb-dpms.el
index 5b2f02c..589aa2d 100644
--- a/xcb-dpms.el
+++ b/xcb-dpms.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-dpms.el --- X11 DPMS extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `dpms.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'dpms.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -78,3 +100,5 @@
 
 
 (provide 'xcb-dpms)
+
+;;; xcb-dpms.el ends here
diff --git a/xcb-dri2.el b/xcb-dri2.el
index ba2443c..60b446d 100644
--- a/xcb-dri2.el
+++ b/xcb-dri2.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-dri2.el --- X11 DRI2 extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `dri2.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'dri2.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -80,8 +102,8 @@
                             (xcb:-fieldref 'driver-name-length)
                             3)
                            (lognot
-                            (parse-expression
-                             (node-subnode node))))
+                            (xelb-parse-expression
+                             (xelb-node-subnode node))))
                           (xcb:-fieldref 'driver-name-length)))
                   :type xcb:-list)
    (pad~3 :initform 4 :type xcb:-pad-align)
@@ -274,3 +296,5 @@
 
 
 (provide 'xcb-dri2)
+
+;;; xcb-dri2.el ends here
diff --git a/xcb-dri3.el b/xcb-dri3.el
index 7f2c8b9..f66d18d 100644
--- a/xcb-dri3.el
+++ b/xcb-dri3.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-dri3.el --- X11 DRI3 extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `dri3.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'dri3.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -85,3 +107,5 @@
 
 
 (provide 'xcb-dri3)
+
+;;; xcb-dri3.el ends here
diff --git a/xcb-ge.el b/xcb-ge.el
index 82c7257..9028935 100644
--- a/xcb-ge.el
+++ b/xcb-ge.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-ge.el --- X11 GenericEvent extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `ge.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'ge.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -24,3 +46,5 @@
 
 
 (provide 'xcb-ge)
+
+;;; xcb-ge.el ends here
diff --git a/xcb-glx.el b/xcb-glx.el
index 423035d..cc09060 100644
--- a/xcb-glx.el
+++ b/xcb-glx.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-glx.el --- X11 Glx extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `glx.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'glx.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -1684,3 +1706,5 @@
 
 
 (provide 'xcb-glx)
+
+;;; xcb-glx.el ends here
diff --git a/xcb-present.el b/xcb-present.el
index dba8764..3ea01b2 100644
--- a/xcb-present.el
+++ b/xcb-present.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-present.el --- X11 Present extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `present.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'present.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -205,3 +227,5 @@
 
 
 (provide 'xcb-present)
+
+;;; xcb-present.el ends here
diff --git a/xcb-randr.el b/xcb-randr.el
index e0d9296..50dc2a9 100644
--- a/xcb-randr.el
+++ b/xcb-randr.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-randr.el --- X11 RandR extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `randr.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'randr.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -1016,3 +1038,5 @@
 
 
 (provide 'xcb-randr)
+
+;;; xcb-randr.el ends here
diff --git a/xcb-record.el b/xcb-record.el
index b458c59..7f1771c 100644
--- a/xcb-record.el
+++ b/xcb-record.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-record.el --- X11 Record extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `record.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'record.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -182,3 +204,5 @@
 
 
 (provide 'xcb-record)
+
+;;; xcb-record.el ends here
diff --git a/xcb-render.el b/xcb-render.el
index ebffb05..2fa91b7 100644
--- a/xcb-render.el
+++ b/xcb-render.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-render.el --- X11 Render extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `render.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'render.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -737,3 +759,5 @@
 
 
 (provide 'xcb-render)
+
+;;; xcb-render.el ends here
diff --git a/xcb-res.el b/xcb-res.el
index 980fad8..da290a2 100644
--- a/xcb-res.el
+++ b/xcb-res.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-res.el --- X11 Res extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `res.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'res.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -155,3 +177,5 @@
 
 
 (provide 'xcb-res)
+
+;;; xcb-res.el ends here
diff --git a/xcb-screensaver.el b/xcb-screensaver.el
index 5b62dba..7997ea5 100644
--- a/xcb-screensaver.el
+++ b/xcb-screensaver.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-screensaver.el --- X11 ScreenSaver extension  -*- lexical-binding: t 
-*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `screensaver.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'screensaver.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -133,3 +155,5 @@
 
 
 (provide 'xcb-screensaver)
+
+;;; xcb-screensaver.el ends here
diff --git a/xcb-shape.el b/xcb-shape.el
index 8e240cb..44131a1 100644
--- a/xcb-shape.el
+++ b/xcb-shape.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-shape.el --- X11 Shape extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `shape.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'shape.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -151,3 +173,5 @@
 
 
 (provide 'xcb-shape)
+
+;;; xcb-shape.el ends here
diff --git a/xcb-shm.el b/xcb-shm.el
index 5399460..5fc11bd 100644
--- a/xcb-shm.el
+++ b/xcb-shm.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-shm.el --- X11 Shm extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `shm.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'shm.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -136,3 +158,5 @@
 
 
 (provide 'xcb-shm)
+
+;;; xcb-shm.el ends here
diff --git a/xcb-sync.el b/xcb-sync.el
index 8e14f6e..467097f 100644
--- a/xcb-sync.el
+++ b/xcb-sync.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-sync.el --- X11 Sync extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `sync.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'sync.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -295,3 +317,5 @@
 
 
 (provide 'xcb-sync)
+
+;;; xcb-sync.el ends here
diff --git a/xcb-xc_misc.el b/xcb-xc_misc.el
index 9529b90..3c920a2 100644
--- a/xcb-xc_misc.el
+++ b/xcb-xc_misc.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-xc_misc.el --- X11 XCMisc extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `xc_misc.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'xc_misc.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -47,3 +69,5 @@
 
 
 (provide 'xcb-xc_misc)
+
+;;; xcb-xc_misc.el ends here
diff --git a/xcb-xevie.el b/xcb-xevie.el
index 412e636..32291b8 100644
--- a/xcb-xevie.el
+++ b/xcb-xevie.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-xevie.el --- X11 Xevie extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `xevie.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'xevie.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -69,3 +91,5 @@
 
 
 (provide 'xcb-xevie)
+
+;;; xcb-xevie.el ends here
diff --git a/xcb-xf86dri.el b/xcb-xf86dri.el
index 17c9b9f..3ba38fe 100644
--- a/xcb-xf86dri.el
+++ b/xcb-xf86dri.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-xf86dri.el --- X11 XF86Dri extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `xf86dri.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'xf86dri.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -170,3 +192,5 @@
 
 
 (provide 'xcb-xf86dri)
+
+;;; xcb-xf86dri.el ends here
diff --git a/xcb-xf86vidmode.el b/xcb-xf86vidmode.el
index c0545db..df6eb3a 100644
--- a/xcb-xf86vidmode.el
+++ b/xcb-xf86vidmode.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-xf86vidmode.el --- X11 XF86VidMode extension  -*- lexical-binding: t 
-*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `xf86vidmode.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'xf86vidmode.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -155,8 +177,8 @@
                             (xcb:-fieldref 'vendor-length)
                             3)
                            (lognot
-                            (parse-expression
-                             (node-subnode node))))
+                            (xelb-parse-expression
+                             (xelb-node-subnode node))))
                           (xcb:-fieldref 'vendor-length)))
                   :type xcb:-list)
    (pad~5 :initform 4 :type xcb:-pad-align)
@@ -392,8 +414,8 @@
                  (xcb:-fieldref 'size)
                  1)
                 (lognot
-                 (parse-expression
-                  (node-subnode node)))))
+                 (xelb-parse-expression
+                  (xelb-node-subnode node)))))
         :type xcb:-list)
    (pad~2 :initform 4 :type xcb:-pad-align)
    (green :initarg :green :type xcb:-ignore)
@@ -404,8 +426,8 @@
                    (xcb:-fieldref 'size)
                    1)
                   (lognot
-                   (parse-expression
-                    (node-subnode node)))))
+                   (xelb-parse-expression
+                    (xelb-node-subnode node)))))
           :type xcb:-list)
    (pad~3 :initform 4 :type xcb:-pad-align)
    (blue :initarg :blue :type xcb:-ignore)
@@ -416,8 +438,8 @@
                   (xcb:-fieldref 'size)
                   1)
                  (lognot
-                  (parse-expression
-                   (node-subnode node)))))
+                  (xelb-parse-expression
+                   (xelb-node-subnode node)))))
          :type xcb:-list)))
 
 (defclass xcb:xf86vidmode:SetGammaRamp
@@ -433,8 +455,8 @@
                  (xcb:-fieldref 'size)
                  1)
                 (lognot
-                 (parse-expression
-                  (node-subnode node)))))
+                 (xelb-parse-expression
+                  (xelb-node-subnode node)))))
         :type xcb:-list)
    (pad~0 :initform 4 :type xcb:-pad-align)
    (green :initarg :green :type xcb:-ignore)
@@ -445,8 +467,8 @@
                    (xcb:-fieldref 'size)
                    1)
                   (lognot
-                   (parse-expression
-                    (node-subnode node)))))
+                   (xelb-parse-expression
+                    (xelb-node-subnode node)))))
           :type xcb:-list)
    (pad~1 :initform 4 :type xcb:-pad-align)
    (blue :initarg :blue :type xcb:-ignore)
@@ -457,8 +479,8 @@
                   (xcb:-fieldref 'size)
                   1)
                  (lognot
-                  (parse-expression
-                   (node-subnode node)))))
+                  (xelb-parse-expression
+                   (xelb-node-subnode node)))))
          :type xcb:-list)))
 
 (defclass xcb:xf86vidmode:GetGammaRampSize
@@ -524,3 +546,5 @@
 
 
 (provide 'xcb-xf86vidmode)
+
+;;; xcb-xf86vidmode.el ends here
diff --git a/xcb-xfixes.el b/xcb-xfixes.el
index 283b261..5fa463c 100644
--- a/xcb-xfixes.el
+++ b/xcb-xfixes.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-xfixes.el --- X11 XFixes extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `xfixes.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'xfixes.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -396,3 +418,5 @@
 
 
 (provide 'xcb-xfixes)
+
+;;; xcb-xfixes.el ends here
diff --git a/xcb-xinerama.el b/xcb-xinerama.el
index bcde6b0..0e12865 100644
--- a/xcb-xinerama.el
+++ b/xcb-xinerama.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-xinerama.el --- X11 Xinerama extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `xinerama.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'xinerama.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -85,3 +107,5 @@
 
 
 (provide 'xcb-xinerama)
+
+;;; xcb-xinerama.el ends here
diff --git a/xcb-xinput.el b/xcb-xinput.el
index 93ae129..e0ca191 100644
--- a/xcb-xinput.el
+++ b/xcb-xinput.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-xinput.el --- X11 Input extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `xinput.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'xinput.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -2792,3 +2814,5 @@
 
 
 (provide 'xcb-xinput)
+
+;;; xcb-xinput.el ends here
diff --git a/xcb-xkb.el b/xcb-xkb.el
index 0f5440c..d30e87d 100644
--- a/xcb-xkb.el
+++ b/xcb-xkb.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-xkb.el --- X11 xkb extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `xkb.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'xkb.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -311,8 +333,8 @@
                             (xcb:-fieldref 'length)
                             5)
                            (lognot
-                            (parse-expression
-                             (node-subnode node))))
+                            (xelb-parse-expression
+                             (xelb-node-subnode node))))
                           (+
                            (xcb:-fieldref 'length)
                            2)))
@@ -891,11 +913,11 @@
               (xcb:-fieldref 'affectWhich)
               (logand
                (lognot
-                (parse-expression
-                 (node-subnode node)))
+                (xelb-parse-expression
+                 (xelb-node-subnode node)))
                (lognot
-                (parse-expression
-                 (node-subnode node)))))
+                (xelb-parse-expression
+                 (xelb-node-subnode node)))))
              cases
              ((xcb:xkb:EventType:NewKeyboardNotify affectNewKeyboard 
newKeyboardDetails)
               (xcb:xkb:EventType:StateNotify affectState stateDetails)
@@ -1484,8 +1506,8 @@
                             (xcb:-fieldref 'nTypes)
                             3)
                            (lognot
-                            (parse-expression
-                             (node-subnode node))))
+                            (xelb-parse-expression
+                             (xelb-node-subnode node))))
                           (xcb:-fieldref 'nTypes)))
                   :type xcb:-list)
    (pad~2 :initform 4 :type xcb:-pad-align)
@@ -2266,3 +2288,5 @@
 
 
 (provide 'xcb-xkb)
+
+;;; xcb-xkb.el ends here
diff --git a/xcb-xprint.el b/xcb-xprint.el
index a59a120..edc12dc 100644
--- a/xcb-xprint.el
+++ b/xcb-xprint.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-xprint.el --- X11 XPrint extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `xprint.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'xprint.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -358,3 +380,5 @@
 
 
 (provide 'xcb-xprint)
+
+;;; xcb-xprint.el ends here
diff --git a/xcb-xproto.el b/xcb-xproto.el
index 1cb0fae..957b6d9 100644
--- a/xcb-xproto.el
+++ b/xcb-xproto.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-xproto.el --- X11 core protocol  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `xproto.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'xproto.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -2853,3 +2875,5 @@
 
 
 (provide 'xcb-xproto)
+
+;;; xcb-xproto.el ends here
diff --git a/xcb-xselinux.el b/xcb-xselinux.el
index 6e7ff0a..3eb9f1e 100644
--- a/xcb-xselinux.el
+++ b/xcb-xselinux.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-xselinux.el --- X11 SELinux extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `xselinux.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'xselinux.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -333,3 +355,5 @@
 
 
 (provide 'xcb-xselinux)
+
+;;; xcb-xselinux.el ends here
diff --git a/xcb-xtest.el b/xcb-xtest.el
index 3a9ae0c..a0b3baa 100644
--- a/xcb-xtest.el
+++ b/xcb-xtest.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-xtest.el --- X11 Test extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `xtest.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'xtest.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -57,3 +79,5 @@
 
 
 (provide 'xcb-xtest)
+
+;;; xcb-xtest.el ends here
diff --git a/xcb-xv.el b/xcb-xv.el
index a2407f1..8adc411 100644
--- a/xcb-xv.el
+++ b/xcb-xv.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-xv.el --- X11 Xv extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `xv.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'xv.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -476,3 +498,5 @@
 
 
 (provide 'xcb-xv)
+
+;;; xcb-xv.el ends here
diff --git a/xcb-xvmc.el b/xcb-xvmc.el
index 91ad77f..1462655 100644
--- a/xcb-xvmc.el
+++ b/xcb-xvmc.el
@@ -1,6 +1,28 @@
-;;; -*- lexical-binding: t -*-
+;;; xcb-xvmc.el --- X11 XvMC extension  -*- lexical-binding: t -*-
+
 ;; Copyright (C) 2015 Free Software Foundation, Inc.
-;; This file was generated from `xvmc.xml' by `el_client.el'.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file was generated by 'el_client.el' from 'xvmc.xml',
+;; which you can retrieve from <git://anongit.freedesktop.org/xcb/proto>.
+
+;;; Code:
 
 (require 'xcb-types)
 
@@ -150,3 +172,5 @@
 
 
 (provide 'xcb-xvmc)
+
+;;; xcb-xvmc.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]