]> git.eshelyaron.com Git - emacs.git/commitdiff
Merge from emacs--devo--0
authorMiles Bader <miles@gnu.org>
Thu, 6 Dec 2007 09:51:45 +0000 (09:51 +0000)
committerMiles Bader <miles@gnu.org>
Thu, 6 Dec 2007 09:51:45 +0000 (09:51 +0000)
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-294

76 files changed:
1  2 
configure
configure.in
etc/PROBLEMS
etc/TODO
etc/schema/calstbl.rnc
etc/schema/dbhier.rnc
etc/schema/dbnotn.rnc
etc/schema/dbpool.rnc
etc/schema/xslt.rnc
leim/Makefile.in
lib-src/makefile.w32-in
lisp/ChangeLog
lisp/ChangeLog.12
lisp/ChangeLog.unicode
lisp/Makefile.in
lisp/arc-mode.el
lisp/bindings.el
lisp/desktop.el
lisp/emacs-lisp/byte-opt.el
lisp/emacs-lisp/bytecomp.el
lisp/eshell/esh-mode.el
lisp/eshell/esh-opt.el
lisp/font-lock.el
lisp/gnus/gnus-start.el
lisp/gnus/mm-bodies.el
lisp/gnus/mm-util.el
lisp/gnus/mml.el
lisp/gnus/rfc2047.el
lisp/international/mule-cmds.el
lisp/international/titdic-cnv.el
lisp/mail/emacsbug.el
lisp/mail/rmail.el
lisp/mail/sendmail.el
lisp/makefile.w32-in
lisp/progmodes/perl-mode.el
lisp/progmodes/sh-script.el
lisp/select.el
lisp/simple.el
lisp/subr.el
lisp/term/mac-win.el
lisp/term/w32-win.el
lisp/term/x-win.el
lisp/textmodes/fill.el
lisp/textmodes/ispell.el
lisp/w32-fns.el
lisp/wid-edit.el
make-dist
src/Makefile.in
src/alloc.c
src/buffer.c
src/buffer.h
src/config.in
src/data.c
src/dispnew.c
src/editfns.c
src/emacs.c
src/keyboard.c
src/keymap.c
src/lisp.h
src/macfns.c
src/macterm.c
src/print.c
src/process.c
src/search.c
src/term.c
src/w32bdf.c
src/w32console.c
src/w32fns.c
src/w32proc.c
src/w32term.h
src/window.c
src/xdisp.c
src/xfaces.c
src/xfns.c
src/xterm.c
src/xterm.h

diff --cc configure
index 1fc2db097b822f5ce93dceb8ac66e8d745c863f3,b222b9bc902a02079266cb53e2f82b1b6fafc85b..74ab9d542f9881b7e3ae93137cf341b39d440b7a
+++ b/configure
@@@ -692,17 -692,10 +692,19 @@@ RSVG_CFLAG
  RSVG_LIBS
  GTK_CFLAGS
  GTK_LIBS
+ DBUS_CFLAGS
+ DBUS_LIBS
  XFT_CFLAGS
  XFT_LIBS
 +FREETYPE_CFLAGS
 +FREETYPE_LIBS
 +FONTCONFIG_CFLAGS
 +FONTCONFIG_LIBS
 +HAVE_LIBOTF
 +LIBOTF_CFLAGS
 +LIBOTF_LIBS
 +M17N_FLT_CFLAGS
 +M17N_FLT_LIBS
  ALLOCA
  liblockfile
  LIBOBJS
    fi
  fi
  
 -### Link with -lXft if available to work around a bug.
 -HAVE_XFT=maybe
 -if test "${HAVE_GTK}" = "yes"; then
 -    if test "X${with_pkg_config_prog}" != X; then
 -    PKG_CONFIG="${with_pkg_config_prog}"
 -  fi
 -
 -
 -  succeeded=no
 -
 -  if test -z "$PKG_CONFIG"; then
 -    # Extract the first word of "pkg-config", so it can be a program name with args.
 -set dummy pkg-config; ac_word=$2
 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5
 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+ HAVE_DBUS=no
+ if test "${with_dbus}" = "yes"; then
+   succeeded=no
+   if test -z "$PKG_CONFIG"; then
+     # Extract the first word of "pkg-config", so it can be a program name with args.
+ set dummy pkg-config; ac_word=$2
+ { echo "$as_me:$LINENO: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+ if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   case $PKG_CONFIG in
+   [\\/]* | ?:[\\/]*)
+   ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+   ;;
+   *)
+   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_exec_ext in '' $ac_executable_extensions; do
+   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+     ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+ done
+ IFS=$as_save_IFS
+   test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+   ;;
+ esac
+ fi
+ PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+ if test -n "$PKG_CONFIG"; then
+   { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+ echo "${ECHO_T}$PKG_CONFIG" >&6; }
+ else
+   { echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6; }
+ fi
+   fi
+   if test "$PKG_CONFIG" = "no" ; then
+      HAVE_DBUS=no
+   else
+      PKG_CONFIG_MIN_VERSION=0.9.0
+      if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+         { echo "$as_me:$LINENO: checking for dbus-1 >= 1.0" >&5
+ echo $ECHO_N "checking for dbus-1 >= 1.0... $ECHO_C" >&6; }
+         if $PKG_CONFIG --exists "dbus-1 >= 1.0" 2>&5; then
+             { echo "$as_me:$LINENO: result: yes" >&5
+ echo "${ECHO_T}yes" >&6; }
+             succeeded=yes
+             { echo "$as_me:$LINENO: checking DBUS_CFLAGS" >&5
+ echo $ECHO_N "checking DBUS_CFLAGS... $ECHO_C" >&6; }
+             DBUS_CFLAGS=`$PKG_CONFIG --cflags "dbus-1 >= 1.0"|sed -e 's,///*,/,g'`
+             { echo "$as_me:$LINENO: result: $DBUS_CFLAGS" >&5
+ echo "${ECHO_T}$DBUS_CFLAGS" >&6; }
+             { echo "$as_me:$LINENO: checking DBUS_LIBS" >&5
+ echo $ECHO_N "checking DBUS_LIBS... $ECHO_C" >&6; }
+             DBUS_LIBS=`$PKG_CONFIG --libs "dbus-1 >= 1.0"|sed -e 's,///*,/,g'`
+             { echo "$as_me:$LINENO: result: $DBUS_LIBS" >&5
+ echo "${ECHO_T}$DBUS_LIBS" >&6; }
+         else
+             { echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6; }
+             DBUS_CFLAGS=""
+             DBUS_LIBS=""
+             ## If we have a custom action on failure, don't print errors, but
+             ## do set a variable so people can do so.
+             DBUS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "dbus-1 >= 1.0"`
+         fi
+      else
+         echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+         echo "*** See http://www.freedesktop.org/software/pkgconfig"
+      fi
+   fi
+   if test $succeeded = yes; then
+      HAVE_DBUS=yes
+   else
+      HAVE_DBUS=no
+   fi
+    if test "$HAVE_DBUS" = yes; then
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_DBUS 1
+ _ACEOF
+    fi
+ fi
 +HAVE_XAW3D=no
 +if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then
 +  if test "$with_xaw3d" != no; then
 +    { echo "$as_me:$LINENO: checking for xaw3d" >&5
 +echo $ECHO_N "checking for xaw3d... $ECHO_C" >&6; }
 +    if test "${emacs_cv_xaw3d+set}" = set; then
    echo $ECHO_N "(cached) $ECHO_C" >&6
  else
 -  case $PKG_CONFIG in
 -  [\\/]* | ?:[\\/]*)
 -  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
 -  ;;
 -  *)
 -  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -for as_dir in $PATH
 -do
 -  IFS=$as_save_IFS
 -  test -z "$as_dir" && as_dir=.
 -  for ac_exec_ext in '' $ac_executable_extensions; do
 -  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
 -    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
 -    break 2
 -  fi
 -done
 -done
 -IFS=$as_save_IFS
 +  cat >conftest.$ac_ext <<_ACEOF
 +/* confdefs.h.  */
 +_ACEOF
 +cat confdefs.h >>conftest.$ac_ext
 +cat >>conftest.$ac_ext <<_ACEOF
 +/* end confdefs.h.  */
  
 -  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
 -  ;;
 +#include <X11/Intrinsic.h>
 +#include <X11/Xaw3d/Simple.h>
 +int
 +main ()
 +{
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +rm -f conftest.$ac_objext conftest$ac_exeext
 +if { (ac_try="$ac_link"
 +case "(($ac_try" in
 +  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 +  *) ac_try_echo=$ac_try;;
  esac
 -fi
 -PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 -if test -n "$PKG_CONFIG"; then
 -  { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
 -echo "${ECHO_T}$PKG_CONFIG" >&6; }
 +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 +  (eval "$ac_link") 2>conftest.er1
 +  ac_status=$?
 +  grep -v '^ *+' conftest.er1 >conftest.err
 +  rm -f conftest.er1
 +  cat conftest.err >&5
 +  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 +  (exit $ac_status); } && {
 +       test -z "$ac_c_werror_flag" ||
 +       test ! -s conftest.err
 +       } && test -s conftest$ac_exeext &&
 +       $as_test_x conftest$ac_exeext; then
 +  emacs_cv_xaw3d=yes
  else
 -  { echo "$as_me:$LINENO: result: no" >&5
 -echo "${ECHO_T}no" >&6; }
 -fi
 +  echo "$as_me: failed program was:" >&5
 +sed 's/^/| /' conftest.$ac_ext >&5
  
 +      emacs_cv_xaw3d=no
 +fi
  
 -  fi
 +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 +      conftest$ac_exeext conftest.$ac_ext
 +fi
  
 -  if test "$PKG_CONFIG" = "no" ; then
 -     HAVE_XFT=no
    else
 -     PKG_CONFIG_MIN_VERSION=0.9.0
 -     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 -        { echo "$as_me:$LINENO: checking for xft >= 0.13.0" >&5
 -echo $ECHO_N "checking for xft >= 0.13.0... $ECHO_C" >&6; }
 -
 -        if $PKG_CONFIG --exists "xft >= 0.13.0" 2>&5; then
 -            { echo "$as_me:$LINENO: result: yes" >&5
 -echo "${ECHO_T}yes" >&6; }
 -            succeeded=yes
 -
 -            { echo "$as_me:$LINENO: checking XFT_CFLAGS" >&5
 -echo $ECHO_N "checking XFT_CFLAGS... $ECHO_C" >&6; }
 -            XFT_CFLAGS=`$PKG_CONFIG --cflags "xft >= 0.13.0"|sed -e 's,///*,/,g'`
 -            { echo "$as_me:$LINENO: result: $XFT_CFLAGS" >&5
 -echo "${ECHO_T}$XFT_CFLAGS" >&6; }
 -
 -            { echo "$as_me:$LINENO: checking XFT_LIBS" >&5
 -echo $ECHO_N "checking XFT_LIBS... $ECHO_C" >&6; }
 -            XFT_LIBS=`$PKG_CONFIG --libs "xft >= 0.13.0"|sed -e 's,///*,/,g'`
 -            { echo "$as_me:$LINENO: result: $XFT_LIBS" >&5
 -echo "${ECHO_T}$XFT_LIBS" >&6; }
 -        else
 -            { echo "$as_me:$LINENO: result: no" >&5
 -echo "${ECHO_T}no" >&6; }
 -            XFT_CFLAGS=""
 -            XFT_LIBS=""
 -            ## If we have a custom action on failure, don't print errors, but
 -            ## do set a variable so people can do so.
 -            XFT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xft >= 0.13.0"`
 -
 -        fi
 -
 -
 -
 -     else
 -        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
 -        echo "*** See http://www.freedesktop.org/software/pkgconfig"
 -     fi
 +    emacs_cv_xaw3d=no
    fi
 +  if test $emacs_cv_xaw3d = yes; then
 +    { echo "$as_me:$LINENO: result: yes; using Lucid toolkit" >&5
 +echo "${ECHO_T}yes; using Lucid toolkit" >&6; }
 +    USE_X_TOOLKIT=LUCID
 +    HAVE_XAW3D=yes
  
 -  if test $succeeded = yes; then
 -     :
 -  else
 -     HAVE_XFT=no
 -  fi
 +cat >>confdefs.h <<\_ACEOF
 +#define HAVE_XAW3D 1
 +_ACEOF
  
 -  if test "$HAVE_XFT" != no; then
 -    OLD_CFLAGS="$CPPFLAGS"
 -    OLD_CPPFLAGS="$CFLAGS"
 -    OLD_LIBS="$LIBS"
 -    CPPFLAGS="$CPPFLAGS $XFT_CFLAGS"
 -    CFLAGS="$CFLAGS $XFT_CFLAGS"
 -    LIBS="$XFT_LIBS $LIBS"
 -    if test "${ac_cv_header_X11_Xft_Xft_h+set}" = set; then
 -  { echo "$as_me:$LINENO: checking for X11/Xft/Xft.h" >&5
 -echo $ECHO_N "checking for X11/Xft/Xft.h... $ECHO_C" >&6; }
 -if test "${ac_cv_header_X11_Xft_Xft_h+set}" = set; then
 +  else
 +    { echo "$as_me:$LINENO: result: no" >&5
 +echo "${ECHO_T}no" >&6; }
 +    { echo "$as_me:$LINENO: checking for libXaw" >&5
 +echo $ECHO_N "checking for libXaw... $ECHO_C" >&6; }
 +    if test "${emacs_cv_xaw+set}" = set; then
    echo $ECHO_N "(cached) $ECHO_C" >&6
 -fi
 -{ echo "$as_me:$LINENO: result: $ac_cv_header_X11_Xft_Xft_h" >&5
 -echo "${ECHO_T}$ac_cv_header_X11_Xft_Xft_h" >&6; }
  else
 -  # Is the header compilable?
 -{ echo "$as_me:$LINENO: checking X11/Xft/Xft.h usability" >&5
 -echo $ECHO_N "checking X11/Xft/Xft.h usability... $ECHO_C" >&6; }
 -cat >conftest.$ac_ext <<_ACEOF
 +  cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
@@@ -25102,17 -24697,10 +25201,19 @@@ RSVG_CFLAGS!$RSVG_CFLAGS$ac_deli
  RSVG_LIBS!$RSVG_LIBS$ac_delim
  GTK_CFLAGS!$GTK_CFLAGS$ac_delim
  GTK_LIBS!$GTK_LIBS$ac_delim
+ DBUS_CFLAGS!$DBUS_CFLAGS$ac_delim
+ DBUS_LIBS!$DBUS_LIBS$ac_delim
  XFT_CFLAGS!$XFT_CFLAGS$ac_delim
  XFT_LIBS!$XFT_LIBS$ac_delim
 +FREETYPE_CFLAGS!$FREETYPE_CFLAGS$ac_delim
 +FREETYPE_LIBS!$FREETYPE_LIBS$ac_delim
 +FONTCONFIG_CFLAGS!$FONTCONFIG_CFLAGS$ac_delim
 +FONTCONFIG_LIBS!$FONTCONFIG_LIBS$ac_delim
 +HAVE_LIBOTF!$HAVE_LIBOTF$ac_delim
 +LIBOTF_CFLAGS!$LIBOTF_CFLAGS$ac_delim
 +LIBOTF_LIBS!$LIBOTF_LIBS$ac_delim
 +M17N_FLT_CFLAGS!$M17N_FLT_CFLAGS$ac_delim
 +M17N_FLT_LIBS!$M17N_FLT_LIBS$ac_delim
  ALLOCA!$ALLOCA$ac_delim
  liblockfile!$liblockfile$ac_delim
  LIBOBJS!$LIBOBJS$ac_delim
@@@ -25121,8 -24709,15 +25222,6 @@@ KMEM_GROUP!$KMEM_GROUP$ac_deli
  GETLOADAVG_LIBS!$GETLOADAVG_LIBS$ac_delim
  GETOPT_H!$GETOPT_H$ac_delim
  GETOPTOBJS!$GETOPTOBJS$ac_delim
--version!$version$ac_delim
--configuration!$configuration$ac_delim
 -canonical!$canonical$ac_delim
 -srcdir!$srcdir$ac_delim
 -lispdir!$lispdir$ac_delim
 -locallisppath!$locallisppath$ac_delim
 -lisppath!$lisppath$ac_delim
 -x_default_search_path!$x_default_search_path$ac_delim
 -etcdir!$etcdir$ac_delim
  _ACEOF
  
    if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
  ac_delim='%!_!# '
  for ac_last_try in false false false false false :; do
    cat >conf$$subs.sed <<_ACEOF
++version!$version$ac_delim
++configuration!$configuration$ac_delim
 +canonical!$canonical$ac_delim
 +srcdir!$srcdir$ac_delim
 +lispdir!$lispdir$ac_delim
 +locallisppath!$locallisppath$ac_delim
 +lisppath!$lisppath$ac_delim
 +x_default_search_path!$x_default_search_path$ac_delim
 +etcdir!$etcdir$ac_delim
  archlibdir!$archlibdir$ac_delim
  bitmapdir!$bitmapdir$ac_delim
  gamedir!$gamedir$ac_delim
@@@ -25187,7 -24775,7 +25288,7 @@@ carbon_appdir!$carbon_appdir$ac_deli
  LTLIBOBJS!$LTLIBOBJS$ac_delim
  _ACEOF
  
-   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 21; then
 -  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 14; then
++  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 23; then
      break
    elif $ac_last_try; then
      { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
diff --cc configure.in
index 7150e5fa0ba20d949f587d8264527fd3dfbcd08d,804fd5484a831d84065d3552d63b7944c295dcbb..76fd9a48173dc97d9f419eebf6950435c6b2fb00
@@@ -2252,6 -2260,48 +2267,17 @@@ if test "${HAVE_GTK}" = "yes"; the
    fi
  fi
  
 -### Link with -lXft if available to work around a bug.
 -HAVE_XFT=maybe
 -if test "${HAVE_GTK}" = "yes"; then
 -  dnl Check if --with-pkg-config-prog has been given.
 -  if test "X${with_pkg_config_prog}" != X; then
 -    PKG_CONFIG="${with_pkg_config_prog}"
 -  fi
 -
 -  PKG_CHECK_MODULES(XFT, xft >= 0.13.0, , HAVE_XFT=no)
 -  if test "$HAVE_XFT" != no; then
 -    OLD_CFLAGS="$CPPFLAGS"
 -    OLD_CPPFLAGS="$CFLAGS"
 -    OLD_LIBS="$LIBS"
 -    CPPFLAGS="$CPPFLAGS $XFT_CFLAGS"
 -    CFLAGS="$CFLAGS $XFT_CFLAGS"
 -    LIBS="$XFT_LIBS $LIBS"
 -    AC_CHECK_HEADER(X11/Xft/Xft.h,
 -      [AC_CHECK_LIB(Xft, XftFontOpen, HAVE_XFT=yes, , $XFT_LIBS)])
 -
 -    if test "${HAVE_XFT}" = "yes"; then
 -      AC_DEFINE(HAVE_XFT, 1, [Define to 1 if you have the Xft library.])
 -      AC_SUBST(XFT_LIBS)
 -      C_SWITCH_X_SITE="$C_SWITCH_X_SITE $XFT_CFLAGS"
 -    else
 -      CFLAGS="$OLD_CPPFLAGS"
 -      CFLAGS="$OLD_CFLAGS"
 -      LIBS="$OLD_LIBS"
 -    fi
 -  fi
 -fi
 -
+ dnl D-Bus has been tested under GNU/Linux only.  Must be adapted for
+ dnl other platforms.  Support for higher D-Bus versions but 1.0 is
+ dnl also not configured.
+ HAVE_DBUS=no
+ if test "${with_dbus}" = "yes"; then
+    PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0, HAVE_DBUS=yes, HAVE_DBUS=no)
+    if test "$HAVE_DBUS" = yes; then
+       AC_DEFINE(HAVE_DBUS, 1, [Define to 1 if using D-Bus.])
+    fi
+ fi
  dnl Do not put whitespace before the #include statements below.
  dnl Older compilers (eg sunos4 cc) choke on it.
  HAVE_XAW3D=no
diff --cc etc/PROBLEMS
Simple merge
diff --cc etc/TODO
Simple merge
index 0000000000000000000000000000000000000000,5d334e8ebd2e7c57d483fa9e7d247c3095f762fb..df71a7cb1feccd432c5c49112134337aef2a3201
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,184 +1,184 @@@
 -# $Id: calstbl.rnc,v 1.2 2003/08/30 06:04:02 jjc Exp $
+ # This file was generated automatically by Trang, and then manually
+ # edited to add back definitions for overridden parameter entities and
+ # undefined elements, specifically: bodyatt, secur, paracon,
+ # tbl.table.mdl, tbl.entry.mdl, caution, graphic, legend, note, para,
+ # title, warning.  This makes the semantics of this module as close as
+ # possible to the original DTD and also allows this schema to be used
+ # independently of DocBook.
+ # ......................................................................
+ # DocBook CALS Table Model V4.2 ........................................
+ # File calstblx.mod ....................................................
+ # Copyright 1992-2002 HaL Computer Systems, Inc.,
+ # O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ # Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+ # Organization for the Advancement of Structured Information
+ # Standards (OASIS).
+ # 
+ # This DTD is based on the CALS Table Model
+ # PUBLIC "-//USA-DOD//DTD Table Model 951010//EN"
+ # 
++# $Id: calstbl.rnc,v 1.1 2007/11/23 06:57:43 hexmode Exp $
+ # 
+ # Permission to use, copy, modify and distribute the DocBook DTD
+ # and its accompanying documentation for any purpose and without fee
+ # is hereby granted in perpetuity, provided that the above copyright
+ # notice and this paragraph appear in all copies.  The copyright
+ # holders make no representation about the suitability of the DTD for
+ # any purpose.  It is provided "as is" without expressed or implied
+ # warranty.
+ # 
+ # If you modify the DocBook DTD in any way, except for declaring and
+ # referencing additional sets of general entities and declaring
+ # additional notations, label your DTD as a variant of DocBook.  See
+ # the maintenance documentation for more information.
+ # 
+ # Please direct all questions, bug reports, or suggestions for
+ # changes to the docbook@lists.oasis-open.org mailing list. For more
+ # information, see http://www.oasis-open.org/docbook/.
+ # ......................................................................
+ # This module contains the definitions for the CALS Table Model
+ # converted to XML.
+ # These definitions are not directly related to the table model, but are
+ # used in the default CALS table model and are usually defined elsewhere
+ # (and prior to the inclusion of this table module) in a CALS DTD.
+ bodyatt = empty
+ secur = empty
+ # no if zero(s),
+ # yes if any other digits value
+ yesorno = string
+ titles = title?
+ # default for use in entry content
+ paracon = text
+ # The parameter entities as defined below provide the CALS table model
+ # as published (as part of the Example DTD) in MIL-HDBK-28001.
+ # 
+ # These following declarations provide the CALS-compliant default definitions
+ # for these entities.  However, these entities can and should be redefined
+ # (by giving the appropriate parameter entity declaration(s) prior to the
+ # reference to this Table Model declaration set entity) to fit the needs
+ # of the current application.
+ tbl.table-titles.mdl = titles
+ tbl.table-main.mdl = tgroup+ | graphic+
+ tbl.table.mdl = tbl.table-titles.mdl | tbl.table-main.mdl
+ tbl.table.att =
+   attribute tabstyle { text }?,
+   attribute tocentry { yesorno }?,
+   attribute shortentry { yesorno }?,
+   attribute orient { "port" | "land" }?,
+   attribute pgwide { yesorno }?
+ tbl.tgroup.mdl = colspec*, spanspec*, thead?, tfoot?, tbody
+ tbl.tgroup.att = attribute tgroupstyle { text }?
+ tbl.hdft.mdl = colspec*, row+
+ tbl.row.mdl = (entry | entrytbl)+
+ tbl.entrytbl.mdl = colspec*, spanspec*, thead?, tbody
+ tbl.entry.mdl = paracon | para | warning | caution | note | legend
+ # =====  Element and attribute declarations follow. =====
+ start = table
+ table = element table { table.attlist, tbl.table.mdl }
+ table.attlist &=
+   attribute frame {
+     "top" | "bottom" | "topbot" | "all" | "sides" | "none"
+   }?,
+   attribute colsep { yesorno }?,
+   attribute rowsep { yesorno }?,
+   tbl.table.att,
+   bodyatt,
+   secur
+ tgroup = element tgroup { tgroup.attlist, tbl.tgroup.mdl }
+ tgroup.attlist &=
+   attribute cols { text },
+   tbl.tgroup.att,
+   attribute colsep { yesorno }?,
+   attribute rowsep { yesorno }?,
+   attribute align { "left" | "right" | "center" | "justify" | "char" }?,
+   attribute char { text }?,
+   attribute charoff { text }?,
+   secur
+ colspec = element colspec { colspec.attlist, empty }
+ colspec.attlist &=
+   attribute colnum { text }?,
+   attribute colname { text }?,
+   attribute colwidth { text }?,
+   attribute colsep { yesorno }?,
+   attribute rowsep { yesorno }?,
+   attribute align { "left" | "right" | "center" | "justify" | "char" }?,
+   attribute char { text }?,
+   attribute charoff { text }?
+ spanspec = element spanspec { spanspec.attlist, empty }
+ spanspec.attlist &=
+   attribute namest { text },
+   attribute nameend { text },
+   attribute spanname { text },
+   attribute colsep { yesorno }?,
+   attribute rowsep { yesorno }?,
+   attribute align { "left" | "right" | "center" | "justify" | "char" }?,
+   attribute char { text }?,
+   attribute charoff { text }?
+ thead = element thead { thead.attlist, tbl.hdft.mdl }
+ thead.attlist &=
+   attribute valign { "top" | "middle" | "bottom" }?,
+   secur
+ tfoot = element tfoot { tfoot.attlist, tbl.hdft.mdl }
+ tfoot.attlist &=
+   attribute valign { "top" | "middle" | "bottom" }?,
+   secur
+ tbody = element tbody { tbody.attlist, row+ }
+ tbody.attlist &=
+   attribute valign { "top" | "middle" | "bottom" }?,
+   secur
+ row = element row { row.attlist, tbl.row.mdl }
+ row.attlist &=
+   attribute rowsep { yesorno }?,
+   attribute valign { "top" | "middle" | "bottom" }?,
+   secur
+ entrytbl = element entrytbl { entrytbl.attlist, tbl.entrytbl.mdl }
+ entrytbl.attlist &=
+   attribute cols { text },
+   tbl.tgroup.att,
+   attribute colname { text }?,
+   attribute spanname { text }?,
+   attribute namest { text }?,
+   attribute nameend { text }?,
+   attribute colsep { yesorno }?,
+   attribute rowsep { yesorno }?,
+   attribute align { "left" | "right" | "center" | "justify" | "char" }?,
+   attribute char { text }?,
+   attribute charoff { text }?,
+   secur
+ entry = element entry { entry.attlist, tbl.entry.mdl* }
+ entry.attlist &=
+   attribute colname { text }?,
+   attribute namest { text }?,
+   attribute nameend { text }?,
+   attribute spanname { text }?,
+   attribute morerows { text }?,
+   attribute colsep { yesorno }?,
+   attribute rowsep { yesorno }?,
+   attribute align { "left" | "right" | "center" | "justify" | "char" }?,
+   attribute char { text }?,
+   attribute charoff { text }?,
+   attribute rotate { yesorno }?,
+   attribute valign { "top" | "middle" | "bottom" }?,
+   secur
+ caution |= notAllowed
+ graphic |= notAllowed
+ legend |= notAllowed
+ note |= notAllowed
+ para |= notAllowed
+ title |= notAllowed
+ warning |= notAllowed
+ # End of DocBook CALS Table Model V4.2 .................................
+ # ......................................................................
index 0000000000000000000000000000000000000000,1671b01fbcec583cbeca10bc28878b62db7ec7bf..fd735bc62dab074de7297f849ec1c4751d70c8f9
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,1467 +1,1467 @@@
 -# $Id: dbhier.rnc,v 1.1 2003/08/30 04:19:27 jjc Exp $
+ # ......................................................................
+ # DocBook document hierarchy module V4.2 ...............................
+ # File dbhierx.mod .....................................................
+ # Copyright 1992-2002 HaL Computer Systems, Inc.,
+ # O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ # Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+ # Organization for the Advancement of Structured Information
+ # Standards (OASIS).
+ # 
++# $Id: dbhier.rnc,v 1.1 2007/11/23 06:57:44 hexmode Exp $
+ # 
+ # Permission to use, copy, modify and distribute the DocBook DTD
+ # and its accompanying documentation for any purpose and without fee
+ # is hereby granted in perpetuity, provided that the above copyright
+ # notice and this paragraph appear in all copies.  The copyright
+ # holders make no representation about the suitability of the DTD for
+ # any purpose.  It is provided "as is" without expressed or implied
+ # warranty.
+ # 
+ # If you modify the DocBook DTD in any way, except for declaring and
+ # referencing additional sets of general entities and declaring
+ # additional notations, label your DTD as a variant of DocBook.  See
+ # the maintenance documentation for more information.
+ # 
+ # Please direct all questions, bug reports, or suggestions for
+ # changes to the docbook@lists.oasis-open.org mailing list. For more
+ # information, see http://www.oasis-open.org/docbook/.
+ # ......................................................................
+ # This module contains the definitions for the overall document
+ # hierarchies of DocBook documents.  It covers computer documentation
+ # manuals and manual fragments, as well as reference entries (such as
+ # man pages) and technical journals or anthologies containing
+ # articles.
+ # 
+ # This module depends on the DocBook information pool module.  All
+ # elements and entities referenced but not defined here are assumed
+ # to be defined in the information pool module.
+ # 
+ # In DTD driver files referring to this module, please use an entity
+ # declaration that uses the public identifier shown below:
+ # 
+ # <!ENTITY % dbhier PUBLIC
+ # "-//OASIS//ELEMENTS DocBook Document Hierarchy V4.2//EN"
+ # "dbhierx.mod">
+ # %dbhier;
+ # 
+ # See the documentation for detailed information on the parameter
+ # entity and module scheme used in DocBook, customizing DocBook and
+ # planning for interchange, and changes made since the last release
+ # of DocBook.
+ # ......................................................................
+ # Entities for module inclusions .......................................
+ # ......................................................................
+ # Entities for element classes .........................................
+ local.appendix.class = notAllowed
+ appendix.class = appendix | local.appendix.class
+ local.article.class = notAllowed
+ article.class = article | local.article.class
+ local.book.class = notAllowed
+ book.class = book | local.book.class
+ local.chapter.class = notAllowed
+ chapter.class = chapter | local.chapter.class
+ local.index.class = notAllowed
+ index.class = index | setindex | local.index.class
+ local.refentry.class = notAllowed
+ refentry.class = refentry | local.refentry.class
+ local.section.class = notAllowed
+ section.class = section | local.section.class
+ local.nav.class = notAllowed
+ nav.class =
+   toc | lot | index | glossary | bibliography | local.nav.class
+ # Redeclaration placeholder ............................................
+ # For redeclaring entities that are declared after this point while
+ # retaining their references to the entities that are declared before
+ # this point
+ # ......................................................................
+ # Entities for element mixtures ........................................
+ # The DocBook TC may produce an official forms module for DocBook.
+ # This PE provides the hook by which it can be inserted into the DTD.
+ forms.hook = notAllowed
+ local.divcomponent.mix = notAllowed
+ divcomponent.mix =
+   list.class
+   | admon.class
+   | linespecific.class
+   | synop.class
+   | para.class
+   | informal.class
+   | formal.class
+   | compound.class
+   | genobj.class
+   | descobj.class
+   | ndxterm.class
+   | beginpage
+   | forms.hook
+   | local.divcomponent.mix
+ local.refcomponent.mix = notAllowed
+ refcomponent.mix =
+   list.class
+   | admon.class
+   | linespecific.class
+   | synop.class
+   | para.class
+   | informal.class
+   | formal.class
+   | compound.class
+   | genobj.class
+   | descobj.class
+   | ndxterm.class
+   | beginpage
+   | local.refcomponent.mix
+ local.indexdivcomponent.mix = notAllowed
+ indexdivcomponent.mix =
+   itemizedlist
+   | orderedlist
+   | variablelist
+   | simplelist
+   | linespecific.class
+   | synop.class
+   | para.class
+   | informal.class
+   | anchor
+   | remark
+   | link.char.class
+   | beginpage
+   | local.indexdivcomponent.mix
+ local.refname.char.mix = notAllowed
+ refname.char.mix = text | tech.char.class | local.refname.char.mix
+ local.partcontent.mix = notAllowed
+ partcontent.mix =
+   appendix.class
+   | chapter.class
+   | nav.class
+   | article.class
+   | preface
+   | refentry.class
+   | reference
+   | local.partcontent.mix
+ local.refinline.char.mix = notAllowed
+ refinline.char.mix =
+   text
+   | xref.char.class
+   | gen.char.class
+   | link.char.class
+   | tech.char.class
+   | base.char.class
+   | docinfo.char.class
+   | other.char.class
+   | ndxterm.class
+   | beginpage
+   | local.refinline.char.mix
+ local.refclass.char.mix = notAllowed
+ refclass.char.mix = text | application | local.refclass.char.mix
+ # Redeclaration placeholder 2 ..........................................
+ # For redeclaring entities that are declared after this point while
+ # retaining their references to the entities that are declared before
+ # this point
+ # ......................................................................
+ # Entities for content models ..........................................
+ div.title.content = title, subtitle?, titleabbrev?
+ bookcomponent.title.content = title, subtitle?, titleabbrev?
+ sect.title.content = title, subtitle?, titleabbrev?
+ refsect.title.content = title, subtitle?, titleabbrev?
+ bookcomponent.content =
+   (divcomponent.mix+,
+    (sect1* | refentry.class* | simplesect* | section.class*))
+   | (sect1+ | refentry.class+ | simplesect+ | section.class+)
+ # ......................................................................
+ # Set and SetInfo ......................................................
+ local.set.attrib = empty
+ set.role.attrib = role.attrib
+ set =
+   element set {
+     set.attlist,
+     div.title.content?,
+     setinfo?,
+     toc?,
+     book.class+,
+     setindex?
+   }
+ # end of set.element
+ # FPI: SGML formal public identifier
+ set.attlist &=
+   attribute fpi { text }?,
+   status.attrib,
+   common.attrib,
+   set.role.attrib,
+   local.set.attrib
+ # end of set.attlist
+ # end of set.module
+ local.setinfo.attrib = empty
+ setinfo.role.attrib = role.attrib
+ setinfo = element setinfo { setinfo.attlist, info.class+ }
+ # end of setinfo.element
+ # Contents: IDs of the ToC, Books, and SetIndex that comprise
+ # the set, in the order of their appearance
+ setinfo.attlist &=
+   attribute contents { xsd:IDREFS }?,
+   common.attrib,
+   setinfo.role.attrib,
+   local.setinfo.attrib
+ # end of setinfo.attlist
+ # end of setinfo.module
+ # end of set.content.module
+ # ......................................................................
+ # Book and BookInfo ....................................................
+ local.book.attrib = empty
+ book.role.attrib = role.attrib
+ book =
+   element book {
+     book.attlist,
+     div.title.content?,
+     bookinfo?,
+     (dedication
+      | toc
+      | lot
+      | glossary
+      | bibliography
+      | preface
+      | chapter.class
+      | reference
+      | part
+      | article.class
+      | appendix.class
+      | index.class
+      | colophon)*
+   }
+ # end of book.element
+ # FPI: SGML formal public identifier
+ book.attlist &=
+   attribute fpi { text }?,
+   label.attrib,
+   status.attrib,
+   common.attrib,
+   book.role.attrib,
+   local.book.attrib
+ # end of book.attlist
+ # end of book.module
+ local.bookinfo.attrib = empty
+ bookinfo.role.attrib = role.attrib
+ bookinfo = element bookinfo { bookinfo.attlist, info.class+ }
+ # end of bookinfo.element
+ # Contents: IDs of the ToC, LoTs, Prefaces, Parts, Chapters,
+ # Appendixes, References, GLossary, Bibliography, and indexes
+ # comprising the Book, in the order of their appearance
+ bookinfo.attlist &=
+   attribute contents { xsd:IDREFS }?,
+   common.attrib,
+   bookinfo.role.attrib,
+   local.bookinfo.attrib
+ # end of bookinfo.attlist
+ # end of bookinfo.module
+ # end of book.content.module
+ # ......................................................................
+ # Dedication, ToC, and LoT .............................................
+ local.dedication.attrib = empty
+ dedication.role.attrib = role.attrib
+ dedication =
+   element dedication {
+     dedication.attlist, sect.title.content?, legalnotice.mix+
+   }
+ # end of dedication.element
+ dedication.attlist &=
+   status.attrib,
+   common.attrib,
+   dedication.role.attrib,
+   local.dedication.attrib
+ # end of dedication.attlist
+ # end of dedication.module
+ local.colophon.attrib = empty
+ colophon.role.attrib = role.attrib
+ colophon =
+   element colophon {
+     colophon.attlist, sect.title.content?, textobject.mix+
+   }
+ # end of colophon.element
+ colophon.attlist &=
+   status.attrib,
+   common.attrib,
+   colophon.role.attrib,
+   local.colophon.attrib
+ # end of colophon.attlist
+ # end of colophon.module
+ local.toc.attrib = empty
+ toc.role.attrib = role.attrib
+ toc =
+   element toc {
+     toc.attlist,
+     beginpage?,
+     bookcomponent.title.content?,
+     tocfront*,
+     (tocpart | tocchap)*,
+     tocback*
+   }
+ # end of toc.element
+ toc.attlist &=
+   pagenum.attrib, common.attrib, toc.role.attrib, local.toc.attrib
+ # end of toc.attlist
+ # end of toc.module
+ local.tocfront.attrib = empty
+ tocfront.role.attrib = role.attrib
+ tocfront = element tocfront { tocfront.attlist, para.char.mix* }
+ # end of tocfront.element
+ # to element that this entry represents
+ tocfront.attlist &=
+   label.attrib,
+   linkend.attrib,
+   pagenum.attrib,
+   common.attrib,
+   tocfront.role.attrib,
+   local.tocfront.attrib
+ # end of tocfront.attlist
+ # end of tocfront.module
+ local.tocentry.attrib = empty
+ tocentry.role.attrib = role.attrib
+ tocentry = element tocentry { tocentry.attlist, para.char.mix* }
+ # end of tocentry.element
+ # to element that this entry represents
+ tocentry.attlist &=
+   linkend.attrib,
+   pagenum.attrib,
+   common.attrib,
+   tocentry.role.attrib,
+   local.tocentry.attrib
+ # end of tocentry.attlist
+ # end of tocentry.module
+ local.tocpart.attrib = empty
+ tocpart.role.attrib = role.attrib
+ tocpart = element tocpart { tocpart.attlist, tocentry+, tocchap* }
+ # end of tocpart.element
+ tocpart.attlist &=
+   common.attrib, tocpart.role.attrib, local.tocpart.attrib
+ # end of tocpart.attlist
+ # end of tocpart.module
+ local.tocchap.attrib = empty
+ tocchap.role.attrib = role.attrib
+ tocchap = element tocchap { tocchap.attlist, tocentry+, toclevel1* }
+ # end of tocchap.element
+ tocchap.attlist &=
+   label.attrib, common.attrib, tocchap.role.attrib, local.tocchap.attrib
+ # end of tocchap.attlist
+ # end of tocchap.module
+ local.toclevel1.attrib = empty
+ toclevel1.role.attrib = role.attrib
+ toclevel1 =
+   element toclevel1 { toclevel1.attlist, tocentry+, toclevel2* }
+ # end of toclevel1.element
+ toclevel1.attlist &=
+   common.attrib, toclevel1.role.attrib, local.toclevel1.attrib
+ # end of toclevel1.attlist
+ # end of toclevel1.module
+ local.toclevel2.attrib = empty
+ toclevel2.role.attrib = role.attrib
+ toclevel2 =
+   element toclevel2 { toclevel2.attlist, tocentry+, toclevel3* }
+ # end of toclevel2.element
+ toclevel2.attlist &=
+   common.attrib, toclevel2.role.attrib, local.toclevel2.attrib
+ # end of toclevel2.attlist
+ # end of toclevel2.module
+ local.toclevel3.attrib = empty
+ toclevel3.role.attrib = role.attrib
+ toclevel3 =
+   element toclevel3 { toclevel3.attlist, tocentry+, toclevel4* }
+ # end of toclevel3.element
+ toclevel3.attlist &=
+   common.attrib, toclevel3.role.attrib, local.toclevel3.attrib
+ # end of toclevel3.attlist
+ # end of toclevel3.module
+ local.toclevel4.attrib = empty
+ toclevel4.role.attrib = role.attrib
+ toclevel4 =
+   element toclevel4 { toclevel4.attlist, tocentry+, toclevel5* }
+ # end of toclevel4.element
+ toclevel4.attlist &=
+   common.attrib, toclevel4.role.attrib, local.toclevel4.attrib
+ # end of toclevel4.attlist
+ # end of toclevel4.module
+ local.toclevel5.attrib = empty
+ toclevel5.role.attrib = role.attrib
+ toclevel5 = element toclevel5 { toclevel5.attlist, tocentry+ }
+ # end of toclevel5.element
+ toclevel5.attlist &=
+   common.attrib, toclevel5.role.attrib, local.toclevel5.attrib
+ # end of toclevel5.attlist
+ # end of toclevel5.module
+ local.tocback.attrib = empty
+ tocback.role.attrib = role.attrib
+ tocback = element tocback { tocback.attlist, para.char.mix* }
+ # end of tocback.element
+ # to element that this entry represents
+ tocback.attlist &=
+   label.attrib,
+   linkend.attrib,
+   pagenum.attrib,
+   common.attrib,
+   tocback.role.attrib,
+   local.tocback.attrib
+ # end of tocback.attlist
+ # end of tocback.module
+ # end of toc.content.module
+ local.lot.attrib = empty
+ lot.role.attrib = role.attrib
+ lot =
+   element lot {
+     lot.attlist, beginpage?, bookcomponent.title.content?, lotentry*
+   }
+ # end of lot.element
+ lot.attlist &=
+   label.attrib, common.attrib, lot.role.attrib, local.lot.attrib
+ # end of lot.attlist
+ # end of lot.module
+ local.lotentry.attrib = empty
+ lotentry.role.attrib = role.attrib
+ lotentry = element lotentry { lotentry.attlist, para.char.mix* }
+ # end of lotentry.element
+ # SrcCredit: Information about the source of the entry,
+ # as for a list of illustrations
+ #  linkend: to element that this entry represents
+ lotentry.attlist &=
+   linkend.attrib,
+   pagenum.attrib,
+   attribute srccredit { text }?,
+   common.attrib,
+   lotentry.role.attrib,
+   local.lotentry.attrib
+ # end of lotentry.attlist
+ # end of lotentry.module
+ # end of lot.content.module
+ # ......................................................................
+ # Appendix, Chapter, Part, Preface, Reference, PartIntro ...............
+ local.appendix.attrib = empty
+ appendix.role.attrib = role.attrib
+ appendix =
+   element appendix {
+     appendix.attlist,
+     beginpage?,
+     appendixinfo?,
+     bookcomponent.title.content,
+     nav.class*,
+     tocchap?,
+     bookcomponent.content,
+     nav.class*
+   }
+ # end of appendix.element
+ appendix.attlist &=
+   label.attrib,
+   status.attrib,
+   common.attrib,
+   appendix.role.attrib,
+   local.appendix.attrib
+ # end of appendix.attlist
+ # end of appendix.module
+ local.chapter.attrib = empty
+ chapter.role.attrib = role.attrib
+ chapter =
+   element chapter {
+     chapter.attlist,
+     beginpage?,
+     chapterinfo?,
+     bookcomponent.title.content,
+     nav.class*,
+     tocchap?,
+     bookcomponent.content,
+     nav.class*
+   }
+ # end of chapter.element
+ chapter.attlist &=
+   label.attrib,
+   status.attrib,
+   common.attrib,
+   chapter.role.attrib,
+   local.chapter.attrib
+ # end of chapter.attlist
+ # end of chapter.module
+ # Note that Part was to have its content model reduced in V4.2.  This
+ # change will not be made after all.
+ local.part.attrib = empty
+ part.role.attrib = role.attrib
+ part =
+   element part {
+     part.attlist,
+     beginpage?,
+     partinfo?,
+     bookcomponent.title.content,
+     partintro?,
+     partcontent.mix+
+   }
+ # end of part.element
+ part.attlist &=
+   label.attrib,
+   status.attrib,
+   common.attrib,
+   part.role.attrib,
+   local.part.attrib
+ # end of part.attlist
+ # ELEMENT PartIntro (defined below)
+ # end of part.module
+ local.preface.attrib = empty
+ preface.role.attrib = role.attrib
+ preface =
+   element preface {
+     preface.attlist,
+     beginpage?,
+     prefaceinfo?,
+     bookcomponent.title.content,
+     nav.class*,
+     tocchap?,
+     bookcomponent.content,
+     nav.class*
+   }
+ # end of preface.element
+ preface.attlist &=
+   status.attrib,
+   common.attrib,
+   preface.role.attrib,
+   local.preface.attrib
+ # end of preface.attlist
+ # end of preface.module
+ local.reference.attrib = empty
+ reference.role.attrib = role.attrib
+ reference =
+   element reference {
+     reference.attlist,
+     beginpage?,
+     referenceinfo?,
+     bookcomponent.title.content,
+     partintro?,
+     refentry.class+
+   }
+ # end of reference.element
+ reference.attlist &=
+   label.attrib,
+   status.attrib,
+   common.attrib,
+   reference.role.attrib,
+   local.reference.attrib
+ # end of reference.attlist
+ # ELEMENT PartIntro (defined below)
+ # end of reference.module
+ local.partintro.attrib = empty
+ partintro.role.attrib = role.attrib
+ partintro =
+   element partintro {
+     partintro.attlist, div.title.content?, bookcomponent.content
+   }
+ # end of partintro.element
+ partintro.attlist &=
+   label.attrib,
+   common.attrib,
+   partintro.role.attrib,
+   local.partintro.attrib
+ # end of partintro.attlist
+ # end of partintro.module
+ # ......................................................................
+ # Other Info elements ..................................................
+ local.appendixinfo.attrib = empty
+ appendixinfo.role.attrib = role.attrib
+ appendixinfo =
+   element appendixinfo { appendixinfo.attlist, info.class+ }
+ # end of appendixinfo.element
+ appendixinfo.attlist &=
+   common.attrib, appendixinfo.role.attrib, local.appendixinfo.attrib
+ # end of appendixinfo.attlist
+ # end of appendixinfo.module
+ local.bibliographyinfo.attrib = empty
+ bibliographyinfo.role.attrib = role.attrib
+ bibliographyinfo =
+   element bibliographyinfo { bibliographyinfo.attlist, info.class+ }
+ # end of bibliographyinfo.element
+ bibliographyinfo.attlist &=
+   common.attrib,
+   bibliographyinfo.role.attrib,
+   local.bibliographyinfo.attrib
+ # end of bibliographyinfo.attlist
+ # end of bibliographyinfo.module
+ local.chapterinfo.attrib = empty
+ chapterinfo.role.attrib = role.attrib
+ chapterinfo = element chapterinfo { chapterinfo.attlist, info.class+ }
+ # end of chapterinfo.element
+ chapterinfo.attlist &=
+   common.attrib, chapterinfo.role.attrib, local.chapterinfo.attrib
+ # end of chapterinfo.attlist
+ # end of chapterinfo.module
+ local.glossaryinfo.attrib = empty
+ glossaryinfo.role.attrib = role.attrib
+ glossaryinfo =
+   element glossaryinfo { glossaryinfo.attlist, info.class+ }
+ # end of glossaryinfo.element
+ glossaryinfo.attlist &=
+   common.attrib, glossaryinfo.role.attrib, local.glossaryinfo.attrib
+ # end of glossaryinfo.attlist
+ # end of glossaryinfo.module
+ local.indexinfo.attrib = empty
+ indexinfo.role.attrib = role.attrib
+ indexinfo = element indexinfo { indexinfo.attlist, info.class+ }
+ # end of indexinfo.element
+ indexinfo.attlist &=
+   common.attrib, indexinfo.role.attrib, local.indexinfo.attrib
+ # end of indexinfo.attlist
+ # end of indexinfo.module
+ local.setindexinfo.attrib = empty
+ setindexinfo.role.attrib = role.attrib
+ setindexinfo =
+   element setindexinfo { setindexinfo.attlist, info.class+ }
+ # end of setindexinfo.element
+ setindexinfo.attlist &=
+   common.attrib, setindexinfo.role.attrib, local.setindexinfo.attrib
+ # end of setindexinfo.attlist
+ # end of setindexinfo.module
+ local.partinfo.attrib = empty
+ partinfo.role.attrib = role.attrib
+ partinfo = element partinfo { partinfo.attlist, info.class+ }
+ # end of partinfo.element
+ partinfo.attlist &=
+   common.attrib, partinfo.role.attrib, local.partinfo.attrib
+ # end of partinfo.attlist
+ # end of partinfo.module
+ local.prefaceinfo.attrib = empty
+ prefaceinfo.role.attrib = role.attrib
+ prefaceinfo = element prefaceinfo { prefaceinfo.attlist, info.class+ }
+ # end of prefaceinfo.element
+ prefaceinfo.attlist &=
+   common.attrib, prefaceinfo.role.attrib, local.prefaceinfo.attrib
+ # end of prefaceinfo.attlist
+ # end of prefaceinfo.module
+ local.refentryinfo.attrib = empty
+ refentryinfo.role.attrib = role.attrib
+ refentryinfo =
+   element refentryinfo { refentryinfo.attlist, info.class+ }
+ # end of refentryinfo.element
+ refentryinfo.attlist &=
+   common.attrib, refentryinfo.role.attrib, local.refentryinfo.attrib
+ # end of refentryinfo.attlist
+ # end of refentryinfo.module
+ local.refsectioninfo.attrib = empty
+ refsectioninfo.role.attrib = role.attrib
+ refsectioninfo =
+   element refsectioninfo { refsectioninfo.attlist, info.class+ }
+ # end of refsectioninfo.element
+ refsectioninfo.attlist &=
+   common.attrib, refsectioninfo.role.attrib, local.refsectioninfo.attrib
+ # end of refsectioninfo.attlist
+ # end of refsectioninfo.module
+ local.refsect1info.attrib = empty
+ refsect1info.role.attrib = role.attrib
+ refsect1info =
+   element refsect1info { refsect1info.attlist, info.class+ }
+ # end of refsect1info.element
+ refsect1info.attlist &=
+   common.attrib, refsect1info.role.attrib, local.refsect1info.attrib
+ # end of refsect1info.attlist
+ # end of refsect1info.module
+ local.refsect2info.attrib = empty
+ refsect2info.role.attrib = role.attrib
+ refsect2info =
+   element refsect2info { refsect2info.attlist, info.class+ }
+ # end of refsect2info.element
+ refsect2info.attlist &=
+   common.attrib, refsect2info.role.attrib, local.refsect2info.attrib
+ # end of refsect2info.attlist
+ # end of refsect2info.module
+ local.refsect3info.attrib = empty
+ refsect3info.role.attrib = role.attrib
+ refsect3info =
+   element refsect3info { refsect3info.attlist, info.class+ }
+ # end of refsect3info.element
+ refsect3info.attlist &=
+   common.attrib, refsect3info.role.attrib, local.refsect3info.attrib
+ # end of refsect3info.attlist
+ # end of refsect3info.module
+ local.refsynopsisdivinfo.attrib = empty
+ refsynopsisdivinfo.role.attrib = role.attrib
+ refsynopsisdivinfo =
+   element refsynopsisdivinfo { refsynopsisdivinfo.attlist, info.class+ }
+ # end of refsynopsisdivinfo.element
+ refsynopsisdivinfo.attlist &=
+   common.attrib,
+   refsynopsisdivinfo.role.attrib,
+   local.refsynopsisdivinfo.attrib
+ # end of refsynopsisdivinfo.attlist
+ # end of refsynopsisdivinfo.module
+ local.referenceinfo.attrib = empty
+ referenceinfo.role.attrib = role.attrib
+ referenceinfo =
+   element referenceinfo { referenceinfo.attlist, info.class+ }
+ # end of referenceinfo.element
+ referenceinfo.attlist &=
+   common.attrib, referenceinfo.role.attrib, local.referenceinfo.attrib
+ # end of referenceinfo.attlist
+ # end of referenceinfo.module
+ local.sect1info.attrib = empty
+ sect1info.role.attrib = role.attrib
+ sect1info = element sect1info { sect1info.attlist, info.class+ }
+ # end of sect1info.element
+ sect1info.attlist &=
+   common.attrib, sect1info.role.attrib, local.sect1info.attrib
+ # end of sect1info.attlist
+ local.sect2info.attrib = empty
+ sect2info.role.attrib = role.attrib
+ sect2info = element sect2info { sect2info.attlist, info.class+ }
+ # end of sect2info.element
+ sect2info.attlist &=
+   common.attrib, sect2info.role.attrib, local.sect2info.attrib
+ # end of sect2info.attlist
+ local.sect3info.attrib = empty
+ sect3info.role.attrib = role.attrib
+ sect3info = element sect3info { sect3info.attlist, info.class+ }
+ # end of sect3info.element
+ sect3info.attlist &=
+   common.attrib, sect3info.role.attrib, local.sect3info.attrib
+ # end of sect3info.attlist
+ local.sect4info.attrib = empty
+ sect4info.role.attrib = role.attrib
+ sect4info = element sect4info { sect4info.attlist, info.class+ }
+ # end of sect4info.element
+ sect4info.attlist &=
+   common.attrib, sect4info.role.attrib, local.sect4info.attrib
+ # end of sect4info.attlist
+ local.sect5info.attrib = empty
+ sect5info.role.attrib = role.attrib
+ sect5info = element sect5info { sect5info.attlist, info.class+ }
+ # end of sect5info.element
+ sect5info.attlist &=
+   common.attrib, sect5info.role.attrib, local.sect5info.attrib
+ # end of sect5info.attlist
+ # ......................................................................
+ # Section (parallel to Sect*) .........................................
+ local.section.attrib = empty
+ section.role.attrib = role.attrib
+ section =
+   element section {
+     section.attlist,
+     sectioninfo?,
+     sect.title.content,
+     nav.class*,
+     ((divcomponent.mix+,
+       (refentry.class* | section.class* | simplesect*))
+      | refentry.class+
+      | section.class+
+      | simplesect+),
+     nav.class*
+   }
+ # end of section.element
+ section.attlist &=
+   label.attrib,
+   status.attrib,
+   common.attrib,
+   section.role.attrib,
+   local.section.attrib
+ # end of section.attlist
+ # end of section.module
+ sectioninfo.role.attrib = role.attrib
+ local.sectioninfo.attrib = empty
+ sectioninfo = element sectioninfo { sectioninfo.attlist, info.class+ }
+ # end of sectioninfo.element
+ sectioninfo.attlist &=
+   common.attrib, sectioninfo.role.attrib, local.sectioninfo.attrib
+ # end of sectioninfo.attlist
+ # end of sectioninfo.module
+ # end of section.content.module
+ # ......................................................................
+ # Sect1, Sect2, Sect3, Sect4, Sect5 ....................................
+ local.sect1.attrib = empty
+ sect1.role.attrib = role.attrib
+ sect1 =
+   element sect1 {
+     sect1.attlist,
+     sect1info?,
+     sect.title.content,
+     nav.class*,
+     ((divcomponent.mix+, (refentry.class* | sect2* | simplesect*))
+      | refentry.class+
+      | sect2+
+      | simplesect+),
+     nav.class*
+   }
+ # end of sect1.element
+ # Renderas: Indicates the format in which the heading should
+ # appear
+ sect1.attlist &=
+   attribute renderas { "sect2" | "sect3" | "sect4" | "sect5" }?,
+   label.attrib,
+   status.attrib,
+   common.attrib,
+   sect1.role.attrib,
+   local.sect1.attrib
+ # end of sect1.attlist
+ # end of sect1.module
+ local.sect2.attrib = empty
+ sect2.role.attrib = role.attrib
+ sect2 =
+   element sect2 {
+     sect2.attlist,
+     sect2info?,
+     sect.title.content,
+     nav.class*,
+     ((divcomponent.mix+, (refentry.class* | sect3* | simplesect*))
+      | refentry.class+
+      | sect3+
+      | simplesect+),
+     nav.class*
+   }
+ # end of sect2.element
+ # Renderas: Indicates the format in which the heading should
+ # appear
+ sect2.attlist &=
+   attribute renderas { "sect1" | "sect3" | "sect4" | "sect5" }?,
+   label.attrib,
+   status.attrib,
+   common.attrib,
+   sect2.role.attrib,
+   local.sect2.attrib
+ # end of sect2.attlist
+ # end of sect2.module
+ local.sect3.attrib = empty
+ sect3.role.attrib = role.attrib
+ sect3 =
+   element sect3 {
+     sect3.attlist,
+     sect3info?,
+     sect.title.content,
+     nav.class*,
+     ((divcomponent.mix+, (refentry.class* | sect4* | simplesect*))
+      | refentry.class+
+      | sect4+
+      | simplesect+),
+     nav.class*
+   }
+ # end of sect3.element
+ # Renderas: Indicates the format in which the heading should
+ # appear
+ sect3.attlist &=
+   attribute renderas { "sect1" | "sect2" | "sect4" | "sect5" }?,
+   label.attrib,
+   status.attrib,
+   common.attrib,
+   sect3.role.attrib,
+   local.sect3.attrib
+ # end of sect3.attlist
+ # end of sect3.module
+ local.sect4.attrib = empty
+ sect4.role.attrib = role.attrib
+ sect4 =
+   element sect4 {
+     sect4.attlist,
+     sect4info?,
+     sect.title.content,
+     nav.class*,
+     ((divcomponent.mix+, (refentry.class* | sect5* | simplesect*))
+      | refentry.class+
+      | sect5+
+      | simplesect+),
+     nav.class*
+   }
+ # end of sect4.element
+ # Renderas: Indicates the format in which the heading should
+ # appear
+ sect4.attlist &=
+   attribute renderas { "sect1" | "sect2" | "sect3" | "sect5" }?,
+   label.attrib,
+   status.attrib,
+   common.attrib,
+   sect4.role.attrib,
+   local.sect4.attrib
+ # end of sect4.attlist
+ # end of sect4.module
+ local.sect5.attrib = empty
+ sect5.role.attrib = role.attrib
+ sect5 =
+   element sect5 {
+     sect5.attlist,
+     sect5info?,
+     sect.title.content,
+     nav.class*,
+     ((divcomponent.mix+, (refentry.class* | simplesect*))
+      | refentry.class+
+      | simplesect+),
+     nav.class*
+   }
+ # end of sect5.element
+ # Renderas: Indicates the format in which the heading should
+ # appear
+ sect5.attlist &=
+   attribute renderas { "sect1" | "sect2" | "sect3" | "sect4" }?,
+   label.attrib,
+   status.attrib,
+   common.attrib,
+   sect5.role.attrib,
+   local.sect5.attrib
+ # end of sect5.attlist
+ # end of sect5.module
+ local.simplesect.attrib = empty
+ simplesect.role.attrib = role.attrib
+ simplesect =
+   element simplesect {
+     simplesect.attlist, sect.title.content, divcomponent.mix+
+   }
+ # end of simplesect.element
+ simplesect.attlist &=
+   common.attrib, simplesect.role.attrib, local.simplesect.attrib
+ # end of simplesect.attlist
+ # end of simplesect.module
+ # ......................................................................
+ # Bibliography .........................................................
+ local.bibliography.attrib = empty
+ bibliography.role.attrib = role.attrib
+ bibliography =
+   element bibliography {
+     bibliography.attlist,
+     bibliographyinfo?,
+     bookcomponent.title.content?,
+     component.mix*,
+     (bibliodiv+ | (biblioentry | bibliomixed)+)
+   }
+ # end of bibliography.element
+ bibliography.attlist &=
+   status.attrib,
+   common.attrib,
+   bibliography.role.attrib,
+   local.bibliography.attrib
+ # end of bibliography.attlist
+ # end of bibliography.module
+ local.bibliodiv.attrib = empty
+ bibliodiv.role.attrib = role.attrib
+ bibliodiv =
+   element bibliodiv {
+     bibliodiv.attlist,
+     sect.title.content?,
+     component.mix*,
+     (biblioentry | bibliomixed)+
+   }
+ # end of bibliodiv.element
+ bibliodiv.attlist &=
+   status.attrib,
+   common.attrib,
+   bibliodiv.role.attrib,
+   local.bibliodiv.attrib
+ # end of bibliodiv.attlist
+ # end of bibliodiv.module
+ # end of bibliography.content.module
+ # ......................................................................
+ # Glossary .............................................................
+ local.glossary.attrib = empty
+ glossary.role.attrib = role.attrib
+ glossary =
+   element glossary {
+     glossary.attlist,
+     glossaryinfo?,
+     bookcomponent.title.content?,
+     component.mix*,
+     (glossdiv+ | glossentry+),
+     bibliography?
+   }
+ # end of glossary.element
+ glossary.attlist &=
+   status.attrib,
+   common.attrib,
+   glossary.role.attrib,
+   local.glossary.attrib
+ # end of glossary.attlist
+ # end of glossary.module
+ local.glossdiv.attrib = empty
+ glossdiv.role.attrib = role.attrib
+ glossdiv =
+   element glossdiv {
+     glossdiv.attlist, sect.title.content, component.mix*, glossentry+
+   }
+ # end of glossdiv.element
+ glossdiv.attlist &=
+   status.attrib,
+   common.attrib,
+   glossdiv.role.attrib,
+   local.glossdiv.attrib
+ # end of glossdiv.attlist
+ # end of glossdiv.module
+ # end of glossary.content.module
+ # ......................................................................
+ # Index and SetIndex ...................................................
+ local.indexes.attrib = empty
+ indexes.role.attrib = role.attrib
+ index =
+   element index {
+     index.attlist,
+     indexinfo?,
+     bookcomponent.title.content?,
+     component.mix*,
+     (indexdiv* | indexentry*)
+   }
+ # end of index.element
+ index.attlist &=
+   common.attrib, indexes.role.attrib, local.indexes.attrib
+ # end of index.attlist
+ setindex =
+   element setindex {
+     setindex.attlist,
+     setindexinfo?,
+     bookcomponent.title.content?,
+     component.mix*,
+     (indexdiv* | indexentry*)
+   }
+ # end of setindex.element
+ setindex.attlist &=
+   common.attrib, indexes.role.attrib, local.indexes.attrib
+ # end of setindex.attlist
+ # end of indexes.module
+ # SegmentedList in this content is useful for marking up permuted
+ # indices.
+ local.indexdiv.attrib = empty
+ indexdiv.role.attrib = role.attrib
+ indexdiv =
+   element indexdiv {
+     indexdiv.attlist,
+     sect.title.content?,
+     (indexdivcomponent.mix*, (indexentry+ | segmentedlist))
+   }
+ # end of indexdiv.element
+ indexdiv.attlist &=
+   common.attrib, indexdiv.role.attrib, local.indexdiv.attrib
+ # end of indexdiv.attlist
+ # end of indexdiv.module
+ # Index entries appear in the index, not the text.
+ local.indexentry.attrib = empty
+ indexentry.role.attrib = role.attrib
+ indexentry =
+   element indexentry {
+     indexentry.attlist,
+     primaryie,
+     (seeie | seealsoie)*,
+     (secondaryie, (seeie | seealsoie | tertiaryie)*)*
+   }
+ # end of indexentry.element
+ indexentry.attlist &=
+   common.attrib, indexentry.role.attrib, local.indexentry.attrib
+ # end of indexentry.attlist
+ # end of indexentry.module
+ local.primsecterie.attrib = empty
+ primsecterie.role.attrib = role.attrib
+ primaryie = element primaryie { primaryie.attlist, ndxterm.char.mix* }
+ # end of primaryie.element
+ # to IndexTerms that these entries represent
+ primaryie.attlist &=
+   linkends.attrib,
+   common.attrib,
+   primsecterie.role.attrib,
+   local.primsecterie.attrib
+ # end of primaryie.attlist
+ secondaryie =
+   element secondaryie { secondaryie.attlist, ndxterm.char.mix* }
+ # end of secondaryie.element
+ # to IndexTerms that these entries represent
+ secondaryie.attlist &=
+   linkends.attrib,
+   common.attrib,
+   primsecterie.role.attrib,
+   local.primsecterie.attrib
+ # end of secondaryie.attlist
+ tertiaryie =
+   element tertiaryie { tertiaryie.attlist, ndxterm.char.mix* }
+ # end of tertiaryie.element
+ # to IndexTerms that these entries represent
+ tertiaryie.attlist &=
+   linkends.attrib,
+   common.attrib,
+   primsecterie.role.attrib,
+   local.primsecterie.attrib
+ # end of tertiaryie.attlist
+ # end of primsecterie.module
+ local.seeie.attrib = empty
+ seeie.role.attrib = role.attrib
+ seeie = element seeie { seeie.attlist, ndxterm.char.mix* }
+ # end of seeie.element
+ # to IndexEntry to look up
+ seeie.attlist &=
+   linkend.attrib, common.attrib, seeie.role.attrib, local.seeie.attrib
+ # end of seeie.attlist
+ # end of seeie.module
+ local.seealsoie.attrib = empty
+ seealsoie.role.attrib = role.attrib
+ seealsoie = element seealsoie { seealsoie.attlist, ndxterm.char.mix* }
+ # end of seealsoie.element
+ # to related IndexEntries
+ seealsoie.attlist &=
+   linkends.attrib,
+   common.attrib,
+   seealsoie.role.attrib,
+   local.seealsoie.attrib
+ # end of seealsoie.attlist
+ # end of seealsoie.module
+ # end of index.content.module
+ # ......................................................................
+ # RefEntry .............................................................
+ local.refentry.attrib = empty
+ refentry.role.attrib = role.attrib
+ refentry =
+   element refentry {
+     refentry.attlist,
+     beginpage?,
+     ndxterm.class*,
+     refentryinfo?,
+     refmeta?,
+     (remark | link.char.class)*,
+     refnamediv,
+     refsynopsisdiv?,
+     (refsect1+ | refsection+)
+   }
+ # end of refentry.element
+ refentry.attlist &=
+   status.attrib,
+   common.attrib,
+   refentry.role.attrib,
+   local.refentry.attrib
+ # end of refentry.attlist
+ # end of refentry.module
+ local.refmeta.attrib = empty
+ refmeta.role.attrib = role.attrib
+ refmeta =
+   element refmeta {
+     refmeta.attlist,
+     ndxterm.class*,
+     refentrytitle,
+     manvolnum?,
+     refmiscinfo*,
+     ndxterm.class*
+   }
+ # end of refmeta.element
+ refmeta.attlist &=
+   common.attrib, refmeta.role.attrib, local.refmeta.attrib
+ # end of refmeta.attlist
+ # end of refmeta.module
+ local.refmiscinfo.attrib = empty
+ refmiscinfo.role.attrib = role.attrib
+ refmiscinfo =
+   element refmiscinfo { refmiscinfo.attlist, docinfo.char.mix* }
+ # end of refmiscinfo.element
+ # Class: Freely assignable parameter; no default
+ refmiscinfo.attlist &=
+   attribute class { text }?,
+   common.attrib,
+   refmiscinfo.role.attrib,
+   local.refmiscinfo.attrib
+ # end of refmiscinfo.attlist
+ # end of refmiscinfo.module
+ local.refnamediv.attrib = empty
+ refnamediv.role.attrib = role.attrib
+ refnamediv =
+   element refnamediv {
+     refnamediv.attlist,
+     refdescriptor?,
+     refname+,
+     refpurpose,
+     refclass*,
+     (remark | link.char.class)*
+   }
+ # end of refnamediv.element
+ refnamediv.attlist &=
+   common.attrib, refnamediv.role.attrib, local.refnamediv.attrib
+ # end of refnamediv.attlist
+ # end of refnamediv.module
+ local.refdescriptor.attrib = empty
+ refdescriptor.role.attrib = role.attrib
+ refdescriptor =
+   element refdescriptor { refdescriptor.attlist, refname.char.mix* }
+ # end of refdescriptor.element
+ refdescriptor.attlist &=
+   common.attrib, refdescriptor.role.attrib, local.refdescriptor.attrib
+ # end of refdescriptor.attlist
+ # end of refdescriptor.module
+ local.refname.attrib = empty
+ refname.role.attrib = role.attrib
+ refname = element refname { refname.attlist, refname.char.mix* }
+ # end of refname.element
+ refname.attlist &=
+   common.attrib, refname.role.attrib, local.refname.attrib
+ # end of refname.attlist
+ # end of refname.module
+ local.refpurpose.attrib = empty
+ refpurpose.role.attrib = role.attrib
+ refpurpose =
+   element refpurpose { refpurpose.attlist, refinline.char.mix* }
+ # end of refpurpose.element
+ refpurpose.attlist &=
+   common.attrib, refpurpose.role.attrib, local.refpurpose.attrib
+ # end of refpurpose.attlist
+ # end of refpurpose.module
+ local.refclass.attrib = empty
+ refclass.role.attrib = role.attrib
+ refclass = element refclass { refclass.attlist, refclass.char.mix* }
+ # end of refclass.element
+ refclass.attlist &=
+   common.attrib, refclass.role.attrib, local.refclass.attrib
+ # end of refclass.attlist
+ # end of refclass.module
+ local.refsynopsisdiv.attrib = empty
+ refsynopsisdiv.role.attrib = role.attrib
+ refsynopsisdiv =
+   element refsynopsisdiv {
+     refsynopsisdiv.attlist,
+     refsynopsisdivinfo?,
+     refsect.title.content?,
+     ((refcomponent.mix+, refsect2*) | refsect2+)
+   }
+ # end of refsynopsisdiv.element
+ refsynopsisdiv.attlist &=
+   common.attrib, refsynopsisdiv.role.attrib, local.refsynopsisdiv.attrib
+ # end of refsynopsisdiv.attlist
+ # end of refsynopsisdiv.module
+ local.refsection.attrib = empty
+ refsection.role.attrib = role.attrib
+ refsection =
+   element refsection {
+     refsection.attlist,
+     refsectioninfo?,
+     refsect.title.content,
+     ((refcomponent.mix+, refsection*) | refsection+)
+   }
+ # end of refsection.element
+ refsection.attlist &=
+   status.attrib,
+   common.attrib,
+   refsection.role.attrib,
+   local.refsection.attrib
+ # end of refsection.attlist
+ # end of refsection.module
+ local.refsect1.attrib = empty
+ refsect1.role.attrib = role.attrib
+ refsect1 =
+   element refsect1 {
+     refsect1.attlist,
+     refsect1info?,
+     refsect.title.content,
+     ((refcomponent.mix+, refsect2*) | refsect2+)
+   }
+ # end of refsect1.element
+ refsect1.attlist &=
+   status.attrib,
+   common.attrib,
+   refsect1.role.attrib,
+   local.refsect1.attrib
+ # end of refsect1.attlist
+ # end of refsect1.module
+ local.refsect2.attrib = empty
+ refsect2.role.attrib = role.attrib
+ refsect2 =
+   element refsect2 {
+     refsect2.attlist,
+     refsect2info?,
+     refsect.title.content,
+     ((refcomponent.mix+, refsect3*) | refsect3+)
+   }
+ # end of refsect2.element
+ refsect2.attlist &=
+   status.attrib,
+   common.attrib,
+   refsect2.role.attrib,
+   local.refsect2.attrib
+ # end of refsect2.attlist
+ # end of refsect2.module
+ local.refsect3.attrib = empty
+ refsect3.role.attrib = role.attrib
+ refsect3 =
+   element refsect3 {
+     refsect3.attlist,
+     refsect3info?,
+     refsect.title.content,
+     refcomponent.mix+
+   }
+ # end of refsect3.element
+ refsect3.attlist &=
+   status.attrib,
+   common.attrib,
+   refsect3.role.attrib,
+   local.refsect3.attrib
+ # end of refsect3.attlist
+ # end of refsect3.module
+ # end of refentry.content.module
+ # ......................................................................
+ # Article ..............................................................
+ # An Article is a chapter-level, stand-alone document that is often,
+ # but need not be, collected into a Book.
+ local.article.attrib = empty
+ article.role.attrib = role.attrib
+ article =
+   element article {
+     article.attlist,
+     div.title.content?,
+     articleinfo?,
+     tocchap?,
+     lot*,
+     bookcomponent.content,
+     (nav.class | appendix.class | ackno)*
+   }
+ # end of article.element
+ # Class: Indicates the type of a particular article;
+ # all articles have the same structure and general purpose.
+ # No default.
+ # ParentBook: ID of the enclosing Book
+ article.attlist &=
+   attribute class {
+     "journalarticle"
+     | "productsheet"
+     | "whitepaper"
+     | "techreport"
+     | "specification"
+     | "faq"
+   }?,
+   attribute parentbook { xsd:IDREF }?,
+   status.attrib,
+   common.attrib,
+   article.role.attrib,
+   local.article.attrib
+ # end of article.attlist
+ # end of article.module
+ # End of DocBook document hierarchy module V4.2 ........................
+ # ......................................................................
index 0000000000000000000000000000000000000000,2a6185f27fd932efa367147bc4ea3f3728807b8c..bb1116fc19f4c702d53c3611c07f10735d55b11d
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,84 +1,84 @@@
 -# $Id: dbnotn.rnc,v 1.1 2003/08/30 04:19:27 jjc Exp $
+ # ......................................................................
+ # DocBook notations module V4.2 ........................................
+ # File dbnotnx.mod .....................................................
+ # Copyright 1992-2002 HaL Computer Systems, Inc.,
+ # O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ # Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+ # Organization for the Advancement of Structured Information
+ # Standards (OASIS).
+ # 
++# $Id: dbnotn.rnc,v 1.1 2007/11/23 06:57:44 hexmode Exp $
+ # 
+ # Permission to use, copy, modify and distribute the DocBook DTD
+ # and its accompanying documentation for any purpose and without fee
+ # is hereby granted in perpetuity, provided that the above copyright
+ # notice and this paragraph appear in all copies.  The copyright
+ # holders make no representation about the suitability of the DTD for
+ # any purpose.  It is provided "as is" without expressed or implied
+ # warranty.
+ # 
+ # If you modify the DocBook DTD in any way, except for declaring and
+ # referencing additional sets of general entities and declaring
+ # additional notations, label your DTD as a variant of DocBook.  See
+ # the maintenance documentation for more information.
+ # 
+ # Please direct all questions, bug reports, or suggestions for
+ # changes to the docbook@lists.oasis-open.org mailing list. For more
+ # information, see http://www.oasis-open.org/docbook/.
+ # ......................................................................
+ # This module contains the entity declarations for the standard ISO
+ # entity sets used by DocBook.
+ # 
+ # In DTD driver files referring to this module, please use an entity
+ # declaration that uses the public identifier shown below:
+ # 
+ # <!ENTITY % dbnotn PUBLIC
+ # "-//OASIS//ENTITIES DocBook Notations V4.2//EN"
+ # "dbnotnx.mod">
+ # %dbnotn;
+ # 
+ # See the documentation for detailed information on the parameter
+ # entity and module scheme used in DocBook, customizing DocBook and
+ # planning for interchange, and changes made since the last release
+ # of DocBook.
+ local.notation.class = notAllowed
+ notation.class =
+   "BMP"
+   | "CGM-CHAR"
+   | "CGM-BINARY"
+   | "CGM-CLEAR"
+   | "DITROFF"
+   | "DVI"
+   | "EPS"
+   | "EQN"
+   | "FAX"
+   | "GIF"
+   | "GIF87a"
+   | "GIF89a"
+   | "JPG"
+   | "JPEG"
+   | "IGES"
+   | "PCX"
+   | "PIC"
+   | "PNG"
+   | "PS"
+   | "SGML"
+   | "TBL"
+   | "TEX"
+   | "TIFF"
+   | "WMF"
+   | "WPG"
+   | "SVG"
+   | "linespecific"
+   | local.notation.class
+ # WordPerfect Graphic format
+ # End of DocBook notations module V4.2 .................................
+ # ......................................................................
index 0000000000000000000000000000000000000000,46236eb7b7b30407c9758fa0bb6ec79221ad8eb8..ec99516700e7748f5dc4637faa696c627a7a03b4
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,5083 +1,5083 @@@
 -# $Id: dbpool.rnc,v 1.4 2003/08/30 07:48:31 jjc Exp $
+ # This file was generated automatically by Trang.  The table model
+ # dependent definitions have been moved into separate files.
+ # ......................................................................
+ # DocBook XML information pool module V4.2 .............................
+ # File dbpoolx.mod .....................................................
+ # Copyright 1992-2002 HaL Computer Systems, Inc.,
+ # O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ # Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+ # Organization for the Advancement of Structured Information
+ # Standards (OASIS).
+ # 
++# $Id: dbpool.rnc,v 1.1 2007/11/23 06:57:44 hexmode Exp $
+ # 
+ # Permission to use, copy, modify and distribute the DocBook XML DTD
+ # and its accompanying documentation for any purpose and without fee
+ # is hereby granted in perpetuity, provided that the above copyright
+ # notice and this paragraph appear in all copies.  The copyright
+ # holders make no representation about the suitability of the DTD for
+ # any purpose.  It is provided "as is" without expressed or implied
+ # warranty.
+ # 
+ # If you modify the DocBook XML DTD in any way, except for declaring and
+ # referencing additional sets of general entities and declaring
+ # additional notations, label your DTD as a variant of DocBook.  See
+ # the maintenance documentation for more information.
+ # 
+ # Please direct all questions, bug reports, or suggestions for
+ # changes to the docbook@lists.oasis-open.org mailing list. For more
+ # information, see http://www.oasis-open.org/docbook/.
+ # ......................................................................
+ # This module contains the definitions for the objects, inline
+ # elements, and so on that are available to be used as the main
+ # content of DocBook documents.  Some elements are useful for general
+ # publishing, and others are useful specifically for computer
+ # documentation.
+ # 
+ # This module has the following dependencies on other modules:
+ # 
+ # o It assumes that a %notation.class; entity is defined by the
+ #   driver file or other high-level module.  This entity is
+ #   referenced in the NOTATION attributes for the graphic-related and
+ #   ModeSpec elements.
+ # 
+ # o It assumes that an appropriately parameterized table module is
+ #   available for use with the table-related elements.
+ # 
+ # In DTD driver files referring to this module, please use an entity
+ # declaration that uses the public identifier shown below:
+ # 
+ # <!ENTITY % dbpool PUBLIC
+ # "-//OASIS//ELEMENTS DocBook XML Information Pool V4.2//EN"
+ # "dbpoolx.mod">
+ # %dbpool;
+ # 
+ # See the documentation for detailed information on the parameter
+ # entity and module scheme used in DocBook, customizing DocBook and
+ # planning for interchange, and changes made since the last release
+ # of DocBook.
+ # ......................................................................
+ # General-purpose semantics entities ...................................
+ namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
+ yesorno.attvals = string
+ # ......................................................................
+ # Entities for module inclusions .......................................
+ # ......................................................................
+ # Entities for element classes and mixtures ............................
+ # "Ubiquitous" classes: ndxterm.class and beginpage
+ local.ndxterm.class = notAllowed
+ ndxterm.class = indexterm | local.ndxterm.class
+ # Object-level classes .................................................
+ local.list.class = notAllowed
+ list.class =
+   calloutlist
+   | glosslist
+   | itemizedlist
+   | orderedlist
+   | segmentedlist
+   | simplelist
+   | variablelist
+   | local.list.class
+ local.admon.class = notAllowed
+ admon.class =
+   caution | important | note | tip | warning | local.admon.class
+ local.linespecific.class = notAllowed
+ linespecific.class =
+   literallayout
+   | programlisting
+   | programlistingco
+   | screen
+   | screenco
+   | screenshot
+   | local.linespecific.class
+ local.method.synop.class = notAllowed
+ method.synop.class =
+   constructorsynopsis
+   | destructorsynopsis
+   | methodsynopsis
+   | local.method.synop.class
+ local.synop.class = notAllowed
+ synop.class =
+   synopsis
+   | cmdsynopsis
+   | funcsynopsis
+   | classsynopsis
+   | fieldsynopsis
+   | method.synop.class
+   | local.synop.class
+ local.para.class = notAllowed
+ para.class = formalpara | para | simpara | local.para.class
+ local.informal.class = notAllowed
+ informal.class =
+   address
+   | blockquote
+   | graphic
+   | graphicco
+   | mediaobject
+   | mediaobjectco
+   | informalequation
+   | informalexample
+   | informalfigure
+   | informaltable
+   | local.informal.class
+ local.formal.class = notAllowed
+ formal.class = equation | example | figure | table | local.formal.class
+ # The DocBook TC may produce an official EBNF module for DocBook.
+ # This PE provides the hook by which it can be inserted into the DTD.
+ ebnf.block.hook = notAllowed
+ local.compound.class = notAllowed
+ compound.class =
+   msgset
+   | procedure
+   | sidebar
+   | qandaset
+   | ebnf.block.hook
+   | local.compound.class
+ local.genobj.class = notAllowed
+ genobj.class =
+   anchor | bridgehead | remark | highlights | local.genobj.class
+ local.descobj.class = notAllowed
+ descobj.class = abstract | authorblurb | epigraph | local.descobj.class
+ # Character-level classes ..............................................
+ local.xref.char.class = notAllowed
+ xref.char.class = footnoteref | xref | local.xref.char.class
+ local.gen.char.class = notAllowed
+ gen.char.class =
+   abbrev
+   | acronym
+   | citation
+   | citerefentry
+   | citetitle
+   | emphasis
+   | firstterm
+   | foreignphrase
+   | glossterm
+   | footnote
+   | phrase
+   | quote
+   | trademark
+   | wordasword
+   | personname
+   | local.gen.char.class
+ local.link.char.class = notAllowed
+ link.char.class = link | olink | ulink | local.link.char.class
+ # The DocBook TC may produce an official EBNF module for DocBook.
+ # This PE provides the hook by which it can be inserted into the DTD.
+ ebnf.inline.hook = notAllowed
+ local.tech.char.class = notAllowed
+ tech.char.class =
+   action
+   | application
+   | classname
+   | methodname
+   | interfacename
+   | exceptionname
+   | ooclass
+   | oointerface
+   | ooexception
+   | command
+   | computeroutput
+   | database
+   | email
+   | envar
+   | errorcode
+   | errorname
+   | errortype
+   | errortext
+   | filename
+   | function
+   | guibutton
+   | guiicon
+   | guilabel
+   | guimenu
+   | guimenuitem
+   | guisubmenu
+   | hardware
+   | interface
+   | keycap
+   | keycode
+   | keycombo
+   | keysym
+   | literal
+   | constant
+   | markup
+   | medialabel
+   | menuchoice
+   | mousebutton
+   | option
+   | optional
+   | parameter
+   | prompt
+   | property
+   | replaceable
+   | returnvalue
+   | sgmltag
+   | structfield
+   | structname
+   | symbol
+   | systemitem
+   | \token
+   | type
+   | userinput
+   | varname
+   | ebnf.inline.hook
+   | local.tech.char.class
+ local.base.char.class = notAllowed
+ base.char.class = anchor | local.base.char.class
+ local.docinfo.char.class = notAllowed
+ docinfo.char.class =
+   author
+   | authorinitials
+   | corpauthor
+   | modespec
+   | othercredit
+   | productname
+   | productnumber
+   | revhistory
+   | local.docinfo.char.class
+ local.other.char.class = notAllowed
+ other.char.class =
+   remark | subscript | superscript | local.other.char.class
+ local.inlineobj.char.class = notAllowed
+ inlineobj.char.class =
+   inlinegraphic
+   | inlinemediaobject
+   | inlineequation
+   | local.inlineobj.char.class
+ # ......................................................................
+ # Entities for content models ..........................................
+ formalobject.title.content = title, titleabbrev?
+ # Redeclaration placeholder ............................................
+ # For redeclaring entities that are declared after this point while
+ # retaining their references to the entities that are declared before
+ # this point
+ # Object-level mixtures ................................................
+ #                       list admn line synp para infm form cmpd gen  desc
+ # Component mixture       X    X    X    X    X    X    X    X    X    X
+ # Sidebar mixture         X    X    X    X    X    X    X    a    X
+ # Footnote mixture        X         X    X    X    X
+ # Example mixture         X         X    X    X    X
+ # Highlights mixture      X    X              X
+ # Paragraph mixture       X         X    X         X
+ # Admonition mixture      X         X    X    X    X    X    b    c
+ # Figure mixture                    X    X         X
+ # Table entry mixture     X    X    X         X    d
+ # Glossary def mixture    X         X    X    X    X         e
+ # Legal notice mixture    X    X    X         X    f
+ # 
+ # a. Just Procedure; not Sidebar itself or MsgSet.
+ # b. No MsgSet.
+ # c. No Highlights.
+ # d. Just Graphic; no other informal objects.
+ # e. No Anchor, BridgeHead, or Highlights.
+ # f. Just BlockQuote; no other informal objects.
+ local.component.mix = notAllowed
+ component.mix =
+   list.class
+   | admon.class
+   | linespecific.class
+   | synop.class
+   | para.class
+   | informal.class
+   | formal.class
+   | compound.class
+   | genobj.class
+   | descobj.class
+   | ndxterm.class
+   | beginpage
+   | local.component.mix
+ local.sidebar.mix = notAllowed
+ sidebar.mix =
+   list.class
+   | admon.class
+   | linespecific.class
+   | synop.class
+   | para.class
+   | informal.class
+   | formal.class
+   | procedure
+   | genobj.class
+   | ndxterm.class
+   | beginpage
+   | local.sidebar.mix
+ local.qandaset.mix = notAllowed
+ qandaset.mix =
+   list.class
+   | admon.class
+   | linespecific.class
+   | synop.class
+   | para.class
+   | informal.class
+   | formal.class
+   | procedure
+   | genobj.class
+   | ndxterm.class
+   | local.qandaset.mix
+ local.revdescription.mix = notAllowed
+ revdescription.mix =
+   list.class
+   | admon.class
+   | linespecific.class
+   | synop.class
+   | para.class
+   | informal.class
+   | formal.class
+   | procedure
+   | genobj.class
+   | ndxterm.class
+   | local.revdescription.mix
+ local.footnote.mix = notAllowed
+ footnote.mix =
+   list.class
+   | linespecific.class
+   | synop.class
+   | para.class
+   | informal.class
+   | local.footnote.mix
+ local.example.mix = notAllowed
+ example.mix =
+   list.class
+   | linespecific.class
+   | synop.class
+   | para.class
+   | informal.class
+   | ndxterm.class
+   | beginpage
+   | local.example.mix
+ local.highlights.mix = notAllowed
+ highlights.mix =
+   list.class
+   | admon.class
+   | para.class
+   | ndxterm.class
+   | local.highlights.mix
+ # %formal.class; is explicitly excluded from many contexts in which
+ # paragraphs are used
+ local.para.mix = notAllowed
+ para.mix =
+   list.class
+   | admon.class
+   | linespecific.class
+   | informal.class
+   | formal.class
+   | local.para.mix
+ local.admon.mix = notAllowed
+ admon.mix =
+   list.class
+   | linespecific.class
+   | synop.class
+   | para.class
+   | informal.class
+   | formal.class
+   | procedure
+   | sidebar
+   | anchor
+   | bridgehead
+   | remark
+   | ndxterm.class
+   | beginpage
+   | local.admon.mix
+ local.figure.mix = notAllowed
+ figure.mix =
+   linespecific.class
+   | synop.class
+   | informal.class
+   | ndxterm.class
+   | beginpage
+   | local.figure.mix
+ local.tabentry.mix = notAllowed
+ tabentry.mix =
+   list.class
+   | admon.class
+   | linespecific.class
+   | para.class
+   | graphic
+   | mediaobject
+   | local.tabentry.mix
+ local.glossdef.mix = notAllowed
+ glossdef.mix =
+   list.class
+   | linespecific.class
+   | synop.class
+   | para.class
+   | informal.class
+   | formal.class
+   | remark
+   | ndxterm.class
+   | beginpage
+   | local.glossdef.mix
+ local.legalnotice.mix = notAllowed
+ legalnotice.mix =
+   list.class
+   | admon.class
+   | linespecific.class
+   | para.class
+   | blockquote
+   | ndxterm.class
+   | beginpage
+   | local.legalnotice.mix
+ local.textobject.mix = notAllowed
+ textobject.mix =
+   list.class
+   | admon.class
+   | linespecific.class
+   | para.class
+   | blockquote
+   | local.textobject.mix
+ local.mediaobject.mix = notAllowed
+ mediaobject.mix =
+   videoobject
+   | audioobject
+   | imageobject
+   | textobject
+   | local.mediaobject.mix
+ local.listpreamble.mix = notAllowed
+ listpreamble.mix =
+   admon.class
+   | linespecific.class
+   | synop.class
+   | para.class
+   | informal.class
+   | genobj.class
+   | descobj.class
+   | ndxterm.class
+   | beginpage
+   | local.listpreamble.mix
+ # Character-level mixtures .............................................
+ # sgml.features
+ # not [sgml.features[
+ # ]] not sgml.features
+ #                     #PCD xref word link cptr base dnfo othr inob (synop)
+ # para.char.mix         X    X    X    X    X    X    X    X    X
+ # title.char.mix        X    X    X    X    X    X    X    X    X
+ # ndxterm.char.mix      X    X    X    X    X    X    X    X    a
+ # cptr.char.mix         X              X    X    X         X    a
+ # smallcptr.char.mix    X                   b                   a
+ # word.char.mix         X         c    X         X         X    a
+ # docinfo.char.mix      X         d    X    b              X    a
+ # 
+ # a. Just InlineGraphic; no InlineEquation.
+ # b. Just Replaceable; no other computer terms.
+ # c. Just Emphasis and Trademark; no other word elements.
+ # d. Just Acronym, Emphasis, and Trademark; no other word elements.
+ # The DocBook TC may produce an official forms module for DocBook.
+ # This PE provides the hook by which it can be inserted into the DTD.
+ forminlines.hook = notAllowed
+ local.para.char.mix = notAllowed
+ para.char.mix =
+   text
+   | xref.char.class
+   | gen.char.class
+   | link.char.class
+   | tech.char.class
+   | base.char.class
+   | docinfo.char.class
+   | other.char.class
+   | inlineobj.char.class
+   | synop.class
+   | ndxterm.class
+   | beginpage
+   | forminlines.hook
+   | local.para.char.mix
+ local.title.char.mix = notAllowed
+ title.char.mix =
+   text
+   | xref.char.class
+   | gen.char.class
+   | link.char.class
+   | tech.char.class
+   | base.char.class
+   | docinfo.char.class
+   | other.char.class
+   | inlineobj.char.class
+   | ndxterm.class
+   | local.title.char.mix
+ local.ndxterm.char.mix = notAllowed
+ ndxterm.char.mix =
+   text
+   | xref.char.class
+   | gen.char.class
+   | link.char.class
+   | tech.char.class
+   | base.char.class
+   | docinfo.char.class
+   | other.char.class
+   | inlinegraphic
+   | inlinemediaobject
+   | local.ndxterm.char.mix
+ local.cptr.char.mix = notAllowed
+ cptr.char.mix =
+   text
+   | link.char.class
+   | tech.char.class
+   | base.char.class
+   | other.char.class
+   | inlinegraphic
+   | inlinemediaobject
+   | ndxterm.class
+   | beginpage
+   | local.cptr.char.mix
+ local.smallcptr.char.mix = notAllowed
+ smallcptr.char.mix =
+   text
+   | replaceable
+   | inlinegraphic
+   | inlinemediaobject
+   | ndxterm.class
+   | beginpage
+   | local.smallcptr.char.mix
+ local.word.char.mix = notAllowed
+ word.char.mix =
+   text
+   | acronym
+   | emphasis
+   | trademark
+   | link.char.class
+   | base.char.class
+   | other.char.class
+   | inlinegraphic
+   | inlinemediaobject
+   | ndxterm.class
+   | beginpage
+   | local.word.char.mix
+ local.docinfo.char.mix = notAllowed
+ docinfo.char.mix =
+   text
+   | link.char.class
+   | emphasis
+   | trademark
+   | replaceable
+   | other.char.class
+   | inlinegraphic
+   | inlinemediaobject
+   | ndxterm.class
+   | local.docinfo.char.mix
+ # ENTITY % bibliocomponent.mix (see Bibliographic section, below)
+ # ENTITY % person.ident.mix (see Bibliographic section, below)
+ # ......................................................................
+ # Entities for attributes and attribute components .....................
+ # Effectivity attributes ...............................................
+ # Arch: Computer or chip architecture to which element applies; no
+ # default
+ arch.attrib = attribute arch { text }?
+ # Condition: General-purpose effectivity attribute
+ condition.attrib = attribute condition { text }?
+ # Conformance: Standards conformance characteristics
+ conformance.attrib = attribute conformance { xsd:NMTOKENS }?
+ # OS: Operating system to which element applies; no default
+ os.attrib = attribute os { text }?
+ # Revision: Editorial revision to which element belongs; no default
+ revision.attrib = attribute revision { text }?
+ # Security: Security classification; no default
+ security.attrib = attribute security { text }?
+ # UserLevel: Level of user experience to which element applies; no
+ # default
+ userlevel.attrib = attribute userlevel { text }?
+ # Vendor: Computer vendor to which element applies; no default
+ vendor.attrib = attribute vendor { text }?
+ local.effectivity.attrib = empty
+ effectivity.attrib =
+   arch.attrib,
+   condition.attrib,
+   conformance.attrib,
+   os.attrib,
+   revision.attrib,
+   security.attrib,
+   userlevel.attrib,
+   vendor.attrib,
+   local.effectivity.attrib
+ # Common attributes ....................................................
+ # Id: Unique identifier of element; no default
+ id.attrib = attribute id { xsd:ID }?
+ # Id: Unique identifier of element; a value must be supplied; no
+ # default
+ idreq.attrib = attribute id { xsd:ID }
+ # Lang: Indicator of language in which element is written, for
+ # translation, character set management, etc.; no default
+ lang.attrib = attribute lang { text }?
+ # Remap: Previous role of element before conversion; no default
+ remap.attrib = attribute remap { text }?
+ # Role: New role of element in local environment; no default
+ role.attrib = attribute role { text }?
+ # XRefLabel: Alternate labeling string for XRef text generation;
+ # default is usually title or other appropriate label text already
+ # contained in element
+ xreflabel.attrib = attribute xreflabel { text }?
+ # RevisionFlag: Revision status of element; default is that element
+ # wasn't revised
+ revisionflag.attrib =
+   attribute revisionflag { "changed" | "added" | "deleted" | "off" }?
+ local.common.attrib = empty
+ # Role is included explicitly on each element
+ common.attrib =
+   id.attrib,
+   lang.attrib,
+   remap.attrib,
+   xreflabel.attrib,
+   revisionflag.attrib,
+   effectivity.attrib,
+   local.common.attrib
+ # Role is included explicitly on each element
+ idreq.common.attrib =
+   idreq.attrib,
+   lang.attrib,
+   remap.attrib,
+   xreflabel.attrib,
+   revisionflag.attrib,
+   effectivity.attrib,
+   local.common.attrib
+ # Semi-common attributes and other attribute entities ..................
+ local.graphics.attrib = empty
+ # EntityRef: Name of an external entity containing the content
+ # of the graphic
+ # FileRef: Filename, qualified by a pathname if desired,
+ # designating the file containing the content of the graphic
+ # Format: Notation of the element content, if any
+ # SrcCredit: Information about the source of the Graphic
+ # Width: Same as CALS reprowid (desired width)
+ # Depth: Same as CALS reprodep (desired depth)
+ # Align: Same as CALS hplace with 'none' removed; #IMPLIED means
+ # application-specific
+ # Scale: Conflation of CALS hscale and vscale
+ # Scalefit: Same as CALS scalefit
+ graphics.attrib =
+   attribute entityref { xsd:ENTITY }?,
+   attribute fileref { text }?,
+   attribute format { notation.class }?,
+   attribute srccredit { text }?,
+   attribute width { text }?,
+   attribute contentwidth { text }?,
+   attribute depth { text }?,
+   attribute contentdepth { text }?,
+   attribute align { "left" | "right" | "center" }?,
+   attribute valign { "top" | "middle" | "bottom" }?,
+   attribute scale { text }?,
+   attribute scalefit { yesorno.attvals }?,
+   local.graphics.attrib
+ local.keyaction.attrib = empty
+ # Action: Key combination type; default is unspecified if one
+ # child element, Simul if there is more than one; if value is
+ # Other, the OtherAction attribute must have a nonempty value
+ # OtherAction: User-defined key combination type
+ keyaction.attrib =
+   attribute action {
+     "click" | "double-click" | "press" | "seq" | "simul" | "other"
+   }?,
+   attribute otheraction { text }?,
+   local.keyaction.attrib
+ # Label: Identifying number or string; default is usually the
+ # appropriate number or string autogenerated by a formatter
+ label.attrib = attribute label { text }?
+ # Format: whether element is assumed to contain significant white
+ # space
+ linespecific.attrib =
+   [ a:defaultValue = "linespecific" ]
+   attribute format { "linespecific" }?,
+   attribute linenumbering { "numbered" | "unnumbered" }?
+ # Linkend: link to related information; no default
+ linkend.attrib = attribute linkend { xsd:IDREF }?
+ # Linkend: required link to related information
+ linkendreq.attrib = attribute linkend { xsd:IDREF }
+ # Linkends: link to one or more sets of related information; no
+ # default
+ linkends.attrib = attribute linkends { xsd:IDREFS }?
+ local.mark.attrib = empty
+ mark.attrib =
+   attribute mark { text }?,
+   local.mark.attrib
+ # MoreInfo: whether element's content has an associated RefEntry
+ moreinfo.attrib =
+   [ a:defaultValue = "none" ]
+   attribute moreinfo { "refentry" | "none" }?
+ # Pagenum: number of page on which element appears; no default
+ pagenum.attrib = attribute pagenum { text }?
+ local.status.attrib = empty
+ # Status: Editorial or publication status of the element
+ # it applies to, such as "in review" or "approved for distribution"
+ status.attrib =
+   attribute status { text }?,
+   local.status.attrib
+ # Width: width of the longest line in the element to which it
+ # pertains, in number of characters
+ width.attrib = attribute width { text }?
+ # ......................................................................
+ # Title elements .......................................................
+ local.title.attrib = empty
+ title.role.attrib = role.attrib
+ title = element title { title.attlist, title.char.mix* }
+ # end of title.element
+ title.attlist &=
+   pagenum.attrib, common.attrib, title.role.attrib, local.title.attrib
+ # end of title.attlist
+ # end of title.module
+ local.titleabbrev.attrib = empty
+ titleabbrev.role.attrib = role.attrib
+ titleabbrev =
+   element titleabbrev { titleabbrev.attlist, title.char.mix* }
+ # end of titleabbrev.element
+ titleabbrev.attlist &=
+   common.attrib, titleabbrev.role.attrib, local.titleabbrev.attrib
+ # end of titleabbrev.attlist
+ # end of titleabbrev.module
+ local.subtitle.attrib = empty
+ subtitle.role.attrib = role.attrib
+ subtitle = element subtitle { subtitle.attlist, title.char.mix* }
+ # end of subtitle.element
+ subtitle.attlist &=
+   common.attrib, subtitle.role.attrib, local.subtitle.attrib
+ # end of subtitle.attlist
+ # end of subtitle.module
+ # ......................................................................
+ # Bibliographic entities and elements ..................................
+ # The bibliographic elements are typically used in the document
+ # hierarchy. They do not appear in content models of information
+ # pool elements.  See also the document information elements,
+ # below.
+ local.person.ident.mix = notAllowed
+ person.ident.mix =
+   honorific
+   | firstname
+   | surname
+   | lineage
+   | othername
+   | affiliation
+   | authorblurb
+   | contrib
+   | local.person.ident.mix
+ local.bibliocomponent.mix = notAllowed
+ bibliocomponent.mix =
+   abbrev
+   | abstract
+   | address
+   | artpagenums
+   | author
+   | authorgroup
+   | authorinitials
+   | bibliomisc
+   | biblioset
+   | collab
+   | confgroup
+   | contractnum
+   | contractsponsor
+   | copyright
+   | corpauthor
+   | corpname
+   | date
+   | edition
+   | editor
+   | invpartnumber
+   | isbn
+   | issn
+   | issuenum
+   | orgname
+   | biblioid
+   | citebiblioid
+   | bibliosource
+   | bibliorelation
+   | bibliocoverage
+   | othercredit
+   | pagenums
+   | printhistory
+   | productname
+   | productnumber
+   | pubdate
+   | publisher
+   | publishername
+   | pubsnumber
+   | releaseinfo
+   | revhistory
+   | seriesvolnums
+   | subtitle
+   | title
+   | titleabbrev
+   | volumenum
+   | citetitle
+   | personname
+   | person.ident.mix
+   | ndxterm.class
+   | local.bibliocomponent.mix
+ # I don't think this is well placed, but it needs to be here because of
+ # the reference to bibliocomponent.mix
+ local.info.class = notAllowed
+ info.class =
+   graphic
+   | mediaobject
+   | legalnotice
+   | modespec
+   | subjectset
+   | keywordset
+   | itermset
+   | bibliocomponent.mix
+   | local.info.class
+ local.biblioentry.attrib = empty
+ biblioentry.role.attrib = role.attrib
+ biblioentry =
+   element biblioentry {
+     biblioentry.attlist, (articleinfo | bibliocomponent.mix)+
+   }
+ # end of biblioentry.element
+ biblioentry.attlist &=
+   common.attrib, biblioentry.role.attrib, local.biblioentry.attrib
+ # end of biblioentry.attlist
+ # end of biblioentry.module
+ local.bibliomixed.attrib = empty
+ bibliomixed.role.attrib = role.attrib
+ bibliomixed =
+   element bibliomixed {
+     bibliomixed.attlist, (text | bibliocomponent.mix | bibliomset)*
+   }
+ # end of bibliomixed.element
+ bibliomixed.attlist &=
+   common.attrib, bibliomixed.role.attrib, local.bibliomixed.attrib
+ # end of bibliomixed.attlist
+ # end of bibliomixed.module
+ local.articleinfo.attrib = empty
+ articleinfo.role.attrib = role.attrib
+ articleinfo = element articleinfo { articleinfo.attlist, info.class+ }
+ # end of articleinfo.element
+ articleinfo.attlist &=
+   common.attrib, articleinfo.role.attrib, local.articleinfo.attrib
+ # end of articleinfo.attlist
+ # end of articleinfo.module
+ local.biblioset.attrib = empty
+ biblioset.role.attrib = role.attrib
+ biblioset =
+   element biblioset { biblioset.attlist, bibliocomponent.mix+ }
+ # end of biblioset.element
+ # Relation: Relationship of elements contained within BiblioSet
+ biblioset.attlist &=
+   attribute relation { text }?,
+   common.attrib,
+   biblioset.role.attrib,
+   local.biblioset.attrib
+ # end of biblioset.attlist
+ # end of biblioset.module
+ bibliomset.role.attrib = role.attrib
+ local.bibliomset.attrib = empty
+ bibliomset =
+   element bibliomset {
+     bibliomset.attlist, (text | bibliocomponent.mix | bibliomset)*
+   }
+ # end of bibliomset.element
+ # Relation: Relationship of elements contained within BiblioMSet
+ bibliomset.attlist &=
+   attribute relation { text }?,
+   common.attrib,
+   bibliomset.role.attrib,
+   local.bibliomset.attrib
+ # end of bibliomset.attlist
+ # end of bibliomset.module
+ local.bibliomisc.attrib = empty
+ bibliomisc.role.attrib = role.attrib
+ bibliomisc = element bibliomisc { bibliomisc.attlist, para.char.mix* }
+ # end of bibliomisc.element
+ bibliomisc.attlist &=
+   common.attrib, bibliomisc.role.attrib, local.bibliomisc.attrib
+ # end of bibliomisc.attlist
+ # end of bibliomisc.module
+ # ......................................................................
+ # Subject, Keyword, and ITermSet elements ..............................
+ local.subjectset.attrib = empty
+ subjectset.role.attrib = role.attrib
+ subjectset = element subjectset { subjectset.attlist, subject+ }
+ # end of subjectset.element
+ # Scheme: Controlled vocabulary employed in SubjectTerms
+ subjectset.attlist &=
+   attribute scheme { xsd:NMTOKEN }?,
+   common.attrib,
+   subjectset.role.attrib,
+   local.subjectset.attrib
+ # end of subjectset.attlist
+ # end of subjectset.module
+ local.subject.attrib = empty
+ subject.role.attrib = role.attrib
+ subject = element subject { subject.attlist, subjectterm+ }
+ # end of subject.element
+ # Weight: Ranking of this group of SubjectTerms relative
+ # to others, 0 is low, no highest value specified
+ subject.attlist &=
+   attribute weight { text }?,
+   common.attrib,
+   subject.role.attrib,
+   local.subject.attrib
+ # end of subject.attlist
+ # end of subject.module
+ local.subjectterm.attrib = empty
+ subjectterm.role.attrib = role.attrib
+ subjectterm = element subjectterm { subjectterm.attlist, text }
+ # end of subjectterm.element
+ subjectterm.attlist &=
+   common.attrib, subjectterm.role.attrib, local.subjectterm.attrib
+ # end of subjectterm.attlist
+ # end of subjectterm.module
+ # end of subjectset.content.module
+ local.keywordset.attrib = empty
+ keywordset.role.attrib = role.attrib
+ keywordset = element keywordset { keywordset.attlist, keyword+ }
+ # end of keywordset.element
+ keywordset.attlist &=
+   common.attrib, keywordset.role.attrib, local.keywordset.attrib
+ # end of keywordset.attlist
+ # end of keywordset.module
+ local.keyword.attrib = empty
+ keyword.role.attrib = role.attrib
+ keyword = element keyword { keyword.attlist, text }
+ # end of keyword.element
+ keyword.attlist &=
+   common.attrib, keyword.role.attrib, local.keyword.attrib
+ # end of keyword.attlist
+ # end of keyword.module
+ # end of keywordset.content.module
+ local.itermset.attrib = empty
+ itermset.role.attrib = role.attrib
+ itermset = element itermset { itermset.attlist, indexterm+ }
+ # end of itermset.element
+ itermset.attlist &=
+   common.attrib, itermset.role.attrib, local.itermset.attrib
+ # end of itermset.attlist
+ # end of itermset.module
+ # Bibliographic info for "blocks"
+ local.blockinfo.attrib = empty
+ blockinfo.role.attrib = role.attrib
+ blockinfo = element blockinfo { blockinfo.attlist, info.class+ }
+ # end of blockinfo.element
+ blockinfo.attlist &=
+   common.attrib, blockinfo.role.attrib, local.blockinfo.attrib
+ # end of blockinfo.attlist
+ # end of blockinfo.module
+ # ......................................................................
+ # Compound (section-ish) elements ......................................
+ # Message set ......................
+ local.msgset.attrib = empty
+ msgset.role.attrib = role.attrib
+ msgset =
+   element msgset {
+     msgset.attlist,
+     blockinfo?,
+     formalobject.title.content?,
+     (msgentry+ | simplemsgentry+)
+   }
+ # end of msgset.element
+ msgset.attlist &= common.attrib, msgset.role.attrib, local.msgset.attrib
+ # end of msgset.attlist
+ # end of msgset.module
+ local.msgentry.attrib = empty
+ msgentry.role.attrib = role.attrib
+ msgentry =
+   element msgentry { msgentry.attlist, msg+, msginfo?, msgexplan* }
+ # end of msgentry.element
+ msgentry.attlist &=
+   common.attrib, msgentry.role.attrib, local.msgentry.attrib
+ # end of msgentry.attlist
+ # end of msgentry.module
+ local.simplemsgentry.attrib = empty
+ simplemsgentry.role.attrib = role.attrib
+ simplemsgentry =
+   element simplemsgentry { simplemsgentry.attlist, msgtext, msgexplan+ }
+ # end of simplemsgentry.element
+ simplemsgentry.attlist &=
+   attribute audience { text }?,
+   attribute level { text }?,
+   attribute origin { text }?,
+   common.attrib,
+   simplemsgentry.role.attrib,
+   local.simplemsgentry.attrib
+ # end of simplemsgentry.attlist
+ # end of simplemsgentry.module
+ local.msg.attrib = empty
+ msg.role.attrib = role.attrib
+ msg = element msg { msg.attlist, title?, msgmain, (msgsub | msgrel)* }
+ # end of msg.element
+ msg.attlist &= common.attrib, msg.role.attrib, local.msg.attrib
+ # end of msg.attlist
+ # end of msg.module
+ local.msgmain.attrib = empty
+ msgmain.role.attrib = role.attrib
+ msgmain = element msgmain { msgmain.attlist, title?, msgtext }
+ # end of msgmain.element
+ msgmain.attlist &=
+   common.attrib, msgmain.role.attrib, local.msgmain.attrib
+ # end of msgmain.attlist
+ # end of msgmain.module
+ local.msgsub.attrib = empty
+ msgsub.role.attrib = role.attrib
+ msgsub = element msgsub { msgsub.attlist, title?, msgtext }
+ # end of msgsub.element
+ msgsub.attlist &= common.attrib, msgsub.role.attrib, local.msgsub.attrib
+ # end of msgsub.attlist
+ # end of msgsub.module
+ local.msgrel.attrib = empty
+ msgrel.role.attrib = role.attrib
+ msgrel = element msgrel { msgrel.attlist, title?, msgtext }
+ # end of msgrel.element
+ msgrel.attlist &= common.attrib, msgrel.role.attrib, local.msgrel.attrib
+ # end of msgrel.attlist
+ # end of msgrel.module
+ #  MsgText (defined in the Inlines section, below)
+ local.msginfo.attrib = empty
+ msginfo.role.attrib = role.attrib
+ msginfo =
+   element msginfo { msginfo.attlist, (msglevel | msgorig | msgaud)* }
+ # end of msginfo.element
+ msginfo.attlist &=
+   common.attrib, msginfo.role.attrib, local.msginfo.attrib
+ # end of msginfo.attlist
+ # end of msginfo.module
+ local.msglevel.attrib = empty
+ msglevel.role.attrib = role.attrib
+ msglevel = element msglevel { msglevel.attlist, smallcptr.char.mix* }
+ # end of msglevel.element
+ msglevel.attlist &=
+   common.attrib, msglevel.role.attrib, local.msglevel.attrib
+ # end of msglevel.attlist
+ # end of msglevel.module
+ local.msgorig.attrib = empty
+ msgorig.role.attrib = role.attrib
+ msgorig = element msgorig { msgorig.attlist, smallcptr.char.mix* }
+ # end of msgorig.element
+ msgorig.attlist &=
+   common.attrib, msgorig.role.attrib, local.msgorig.attrib
+ # end of msgorig.attlist
+ # end of msgorig.module
+ local.msgaud.attrib = empty
+ msgaud.role.attrib = role.attrib
+ msgaud = element msgaud { msgaud.attlist, para.char.mix* }
+ # end of msgaud.element
+ msgaud.attlist &= common.attrib, msgaud.role.attrib, local.msgaud.attrib
+ # end of msgaud.attlist
+ # end of msgaud.module
+ local.msgexplan.attrib = empty
+ msgexplan.role.attrib = role.attrib
+ msgexplan =
+   element msgexplan { msgexplan.attlist, title?, component.mix+ }
+ # end of msgexplan.element
+ msgexplan.attlist &=
+   common.attrib, msgexplan.role.attrib, local.msgexplan.attrib
+ # end of msgexplan.attlist
+ # end of msgexplan.module
+ # end of msgset.content.module
+ # QandASet ........................
+ local.qandaset.attrib = empty
+ qandaset.role.attrib = role.attrib
+ qandaset =
+   element qandaset {
+     qandaset.attlist,
+     blockinfo?,
+     formalobject.title.content?,
+     qandaset.mix*,
+     (qandadiv+ | qandaentry+)
+   }
+ # end of qandaset.element
+ qandaset.attlist &=
+   attribute defaultlabel { "qanda" | "number" | "none" }?,
+   common.attrib,
+   qandaset.role.attrib,
+   local.qandaset.attrib
+ # end of qandaset.attlist
+ # end of qandaset.module
+ local.qandadiv.attrib = empty
+ qandadiv.role.attrib = role.attrib
+ qandadiv =
+   element qandadiv {
+     qandadiv.attlist,
+     blockinfo?,
+     formalobject.title.content?,
+     qandaset.mix*,
+     (qandadiv+ | qandaentry+)
+   }
+ # end of qandadiv.element
+ qandadiv.attlist &=
+   common.attrib, qandadiv.role.attrib, local.qandadiv.attrib
+ # end of qandadiv.attlist
+ # end of qandadiv.module
+ local.qandaentry.attrib = empty
+ qandaentry.role.attrib = role.attrib
+ qandaentry =
+   element qandaentry {
+     qandaentry.attlist, blockinfo?, revhistory?, question, answer*
+   }
+ # end of qandaentry.element
+ qandaentry.attlist &=
+   common.attrib, qandaentry.role.attrib, local.qandaentry.attrib
+ # end of qandaentry.attlist
+ # end of qandaentry.module
+ local.question.attrib = empty
+ question.role.attrib = role.attrib
+ question = element question { question.attlist, label?, qandaset.mix+ }
+ # end of question.element
+ question.attlist &=
+   common.attrib, question.role.attrib, local.question.attrib
+ # end of question.attlist
+ # end of question.module
+ local.answer.attrib = empty
+ answer.role.attrib = role.attrib
+ answer =
+   element answer { answer.attlist, label?, qandaset.mix*, qandaentry* }
+ # end of answer.element
+ answer.attlist &= common.attrib, answer.role.attrib, local.answer.attrib
+ # end of answer.attlist
+ # end of answer.module
+ local.label.attrib = empty
+ label.role.attrib = role.attrib
+ label = element label { label.attlist, word.char.mix* }
+ # end of label.element
+ label.attlist &= common.attrib, label.role.attrib, local.label.attrib
+ # end of label.attlist
+ # end of label.module
+ # end of qandaset.content.module
+ # Procedure ........................
+ local.procedure.attrib = empty
+ procedure.role.attrib = role.attrib
+ procedure =
+   element procedure {
+     procedure.attlist,
+     blockinfo?,
+     formalobject.title.content?,
+     component.mix*,
+     step+
+   }
+ # end of procedure.element
+ procedure.attlist &=
+   common.attrib, procedure.role.attrib, local.procedure.attrib
+ # end of procedure.attlist
+ # end of procedure.module
+ local.step.attrib = empty
+ step.role.attrib = role.attrib
+ step =
+   element step {
+     step.attlist,
+     title?,
+     ((component.mix+, (substeps, component.mix*)?)
+      | (substeps, component.mix*))
+   }
+ # end of step.element
+ # Performance: Whether the Step must be performed
+ # not #REQUIRED!
+ step.attlist &=
+   [ a:defaultValue = "required" ]
+   attribute performance { "optional" | "required" }?,
+   common.attrib,
+   step.role.attrib,
+   local.step.attrib
+ # end of step.attlist
+ # end of step.module
+ local.substeps.attrib = empty
+ substeps.role.attrib = role.attrib
+ substeps = element substeps { substeps.attlist, step+ }
+ # end of substeps.element
+ # Performance: whether entire set of substeps must be performed
+ # not #REQUIRED!
+ substeps.attlist &=
+   [ a:defaultValue = "required" ]
+   attribute performance { "optional" | "required" }?,
+   common.attrib,
+   substeps.role.attrib,
+   local.substeps.attrib
+ # end of substeps.attlist
+ # end of substeps.module
+ # end of procedure.content.module
+ # Sidebar ..........................
+ local.sidebarinfo.attrib = empty
+ sidebarinfo.role.attrib = role.attrib
+ sidebarinfo = element sidebarinfo { sidebarinfo.attlist, info.class+ }
+ # end of sidebarinfo.element
+ sidebarinfo.attlist &=
+   common.attrib, sidebarinfo.role.attrib, local.sidebarinfo.attrib
+ # end of sidebarinfo.attlist
+ # end of sidebarinfo.module
+ local.sidebar.attrib = empty
+ sidebar.role.attrib = role.attrib
+ sidebar =
+   element sidebar {
+     sidebar.attlist,
+     sidebarinfo?,
+     formalobject.title.content?,
+     sidebar.mix+
+   }
+ # end of sidebar.element
+ sidebar.attlist &=
+   common.attrib, sidebar.role.attrib, local.sidebar.attrib
+ # end of sidebar.attlist
+ # end of sidebar.module
+ # end of sidebar.content.model
+ # ......................................................................
+ # Paragraph-related elements ...........................................
+ local.abstract.attrib = empty
+ abstract.role.attrib = role.attrib
+ abstract = element abstract { abstract.attlist, title?, para.class+ }
+ # end of abstract.element
+ abstract.attlist &=
+   common.attrib, abstract.role.attrib, local.abstract.attrib
+ # end of abstract.attlist
+ # end of abstract.module
+ local.authorblurb.attrib = empty
+ authorblurb.role.attrib = role.attrib
+ authorblurb =
+   element authorblurb { authorblurb.attlist, title?, para.class+ }
+ # end of authorblurb.element
+ authorblurb.attlist &=
+   common.attrib, authorblurb.role.attrib, local.authorblurb.attrib
+ # end of authorblurb.attlist
+ # end of authorblurb.module
+ local.personblurb.attrib = empty
+ personblurb.role.attrib = role.attrib
+ personblurb =
+   element personblurb { personblurb.attlist, title?, para.class+ }
+ # end of personblurb.element
+ personblurb.attlist &=
+   common.attrib, personblurb.role.attrib, local.personblurb.attrib
+ # end of personblurb.attlist
+ # end of personblurb.module
+ local.blockquote.attrib = empty
+ blockquote.role.attrib = role.attrib
+ blockquote =
+   element blockquote {
+     blockquote.attlist, title?, attribution?, component.mix+
+   }
+ # end of blockquote.element
+ blockquote.attlist &=
+   common.attrib, blockquote.role.attrib, local.blockquote.attrib
+ # end of blockquote.attlist
+ # end of blockquote.module
+ local.attribution.attrib = empty
+ attribution.role.attrib = role.attrib
+ attribution =
+   element attribution { attribution.attlist, para.char.mix* }
+ # end of attribution.element
+ attribution.attlist &=
+   common.attrib, attribution.role.attrib, local.attribution.attrib
+ # end of attribution.attlist
+ # end of attribution.module
+ local.bridgehead.attrib = empty
+ bridgehead.role.attrib = role.attrib
+ bridgehead = element bridgehead { bridgehead.attlist, title.char.mix* }
+ # end of bridgehead.element
+ # Renderas: Indicates the format in which the BridgeHead
+ # should appear
+ bridgehead.attlist &=
+   attribute renderas {
+     "other" | "sect1" | "sect2" | "sect3" | "sect4" | "sect5"
+   }?,
+   common.attrib,
+   bridgehead.role.attrib,
+   local.bridgehead.attrib
+ # end of bridgehead.attlist
+ # end of bridgehead.module
+ local.remark.attrib = empty
+ remark.role.attrib = role.attrib
+ remark = element remark { remark.attlist, para.char.mix* }
+ # end of remark.element
+ remark.attlist &= common.attrib, remark.role.attrib, local.remark.attrib
+ # end of remark.attlist
+ # end of remark.module
+ local.epigraph.attrib = empty
+ epigraph.role.attrib = role.attrib
+ epigraph =
+   element epigraph {
+     epigraph.attlist, attribution?, (para.class | literallayout)+
+   }
+ # end of epigraph.element
+ epigraph.attlist &=
+   common.attrib, epigraph.role.attrib, local.epigraph.attrib
+ # end of epigraph.attlist
+ #  Attribution (defined above)
+ # end of epigraph.module
+ local.footnote.attrib = empty
+ footnote.role.attrib = role.attrib
+ footnote = element footnote { footnote.attlist, footnote.mix+ }
+ # end of footnote.element
+ footnote.attlist &=
+   label.attrib,
+   common.attrib,
+   footnote.role.attrib,
+   local.footnote.attrib
+ # end of footnote.attlist
+ # end of footnote.module
+ local.highlights.attrib = empty
+ highlights.role.attrib = role.attrib
+ highlights = element highlights { highlights.attlist, highlights.mix+ }
+ # end of highlights.element
+ highlights.attlist &=
+   common.attrib, highlights.role.attrib, local.highlights.attrib
+ # end of highlights.attlist
+ # end of highlights.module
+ local.formalpara.attrib = empty
+ formalpara.role.attrib = role.attrib
+ formalpara =
+   element formalpara { formalpara.attlist, title, ndxterm.class*, para }
+ # end of formalpara.element
+ formalpara.attlist &=
+   common.attrib, formalpara.role.attrib, local.formalpara.attrib
+ # end of formalpara.attlist
+ # end of formalpara.module
+ local.para.attrib = empty
+ para.role.attrib = role.attrib
+ para = element para { para.attlist, (para.char.mix | para.mix)* }
+ # end of para.element
+ para.attlist &= common.attrib, para.role.attrib, local.para.attrib
+ # end of para.attlist
+ # end of para.module
+ local.simpara.attrib = empty
+ simpara.role.attrib = role.attrib
+ simpara = element simpara { simpara.attlist, para.char.mix* }
+ # end of simpara.element
+ simpara.attlist &=
+   common.attrib, simpara.role.attrib, local.simpara.attrib
+ # end of simpara.attlist
+ # end of simpara.module
+ local.admon.attrib = empty
+ admon.role.attrib = role.attrib
+ caution = element caution { caution.attlist, title?, admon.mix+ }
+ # end of caution.element
+ caution.attlist &= common.attrib, admon.role.attrib, local.admon.attrib
+ # end of caution.attlist
+ important = element important { important.attlist, title?, admon.mix+ }
+ # end of important.element
+ important.attlist &=
+   common.attrib, admon.role.attrib, local.admon.attrib
+ # end of important.attlist
+ note = element note { note.attlist, title?, admon.mix+ }
+ # end of note.element
+ note.attlist &= common.attrib, admon.role.attrib, local.admon.attrib
+ # end of note.attlist
+ tip = element tip { tip.attlist, title?, admon.mix+ }
+ # end of tip.element
+ tip.attlist &= common.attrib, admon.role.attrib, local.admon.attrib
+ # end of tip.attlist
+ warning = element warning { warning.attlist, title?, admon.mix+ }
+ # end of warning.element
+ warning.attlist &= common.attrib, admon.role.attrib, local.admon.attrib
+ # end of warning.attlist
+ # end of admon.module
+ # ......................................................................
+ # Lists ................................................................
+ # GlossList ........................
+ local.glosslist.attrib = empty
+ glosslist.role.attrib = role.attrib
+ glosslist = element glosslist { glosslist.attlist, glossentry+ }
+ # end of glosslist.element
+ glosslist.attlist &=
+   common.attrib, glosslist.role.attrib, local.glosslist.attrib
+ # end of glosslist.attlist
+ # end of glosslist.module
+ local.glossentry.attrib = empty
+ glossentry.role.attrib = role.attrib
+ glossentry =
+   element glossentry {
+     glossentry.attlist,
+     glossterm,
+     acronym?,
+     abbrev?,
+     ndxterm.class*,
+     revhistory?,
+     (glosssee | glossdef+)
+   }
+ # end of glossentry.element
+ # SortAs: String by which the GlossEntry is to be sorted
+ # (alphabetized) in lieu of its proper content
+ glossentry.attlist &=
+   attribute sortas { text }?,
+   common.attrib,
+   glossentry.role.attrib,
+   local.glossentry.attrib
+ # end of glossentry.attlist
+ # end of glossentry.module
+ #  GlossTerm (defined in the Inlines section, below)
+ local.glossdef.attrib = empty
+ glossdef.role.attrib = role.attrib
+ glossdef =
+   element glossdef { glossdef.attlist, glossdef.mix+, glossseealso* }
+ # end of glossdef.element
+ # Subject: List of subjects; keywords for the definition
+ glossdef.attlist &=
+   attribute subject { text }?,
+   common.attrib,
+   glossdef.role.attrib,
+   local.glossdef.attrib
+ # end of glossdef.attlist
+ # end of glossdef.module
+ local.glosssee.attrib = empty
+ glosssee.role.attrib = role.attrib
+ glosssee = element glosssee { glosssee.attlist, para.char.mix* }
+ # end of glosssee.element
+ # OtherTerm: Reference to the GlossEntry whose GlossTerm
+ # should be displayed at the point of the GlossSee
+ glosssee.attlist &=
+   attribute otherterm { xsd:IDREF }?,
+   common.attrib,
+   glosssee.role.attrib,
+   local.glosssee.attrib
+ # end of glosssee.attlist
+ # end of glosssee.module
+ local.glossseealso.attrib = empty
+ glossseealso.role.attrib = role.attrib
+ glossseealso =
+   element glossseealso { glossseealso.attlist, para.char.mix* }
+ # end of glossseealso.element
+ # OtherTerm: Reference to the GlossEntry whose GlossTerm
+ # should be displayed at the point of the GlossSeeAlso
+ glossseealso.attlist &=
+   attribute otherterm { xsd:IDREF }?,
+   common.attrib,
+   glossseealso.role.attrib,
+   local.glossseealso.attrib
+ # end of glossseealso.attlist
+ # end of glossseealso.module
+ # end of glossentry.content.module
+ # ItemizedList and OrderedList .....
+ local.itemizedlist.attrib = empty
+ itemizedlist.role.attrib = role.attrib
+ itemizedlist =
+   element itemizedlist {
+     itemizedlist.attlist,
+     blockinfo?,
+     formalobject.title.content?,
+     listpreamble.mix*,
+     listitem+
+   }
+ # end of itemizedlist.element
+ # Spacing: Whether the vertical space in the list should be
+ # compressed
+ # Mark: Keyword, e.g., bullet, dash, checkbox, none;
+ # list of keywords and defaults are implementation specific
+ itemizedlist.attlist &=
+   attribute spacing { "normal" | "compact" }?,
+   mark.attrib,
+   common.attrib,
+   itemizedlist.role.attrib,
+   local.itemizedlist.attrib
+ # end of itemizedlist.attlist
+ # end of itemizedlist.module
+ local.orderedlist.attrib = empty
+ orderedlist.role.attrib = role.attrib
+ orderedlist =
+   element orderedlist {
+     orderedlist.attlist,
+     blockinfo?,
+     formalobject.title.content?,
+     listpreamble.mix*,
+     listitem+
+   }
+ # end of orderedlist.element
+ # Numeration: Style of ListItem numbered; default is expected
+ # to be Arabic
+ # InheritNum: Specifies for a nested list that the numbering
+ # of ListItems should include the number of the item
+ # within which they are nested (e.g., 1a and 1b within 1,
+ # rather than a and b)
+ # Continuation: Where list numbering begins afresh (Restarts,
+ # the default) or continues that of the immediately preceding
+ # list (Continues)
+ # Spacing: Whether the vertical space in the list should be
+ # compressed
+ orderedlist.attlist &=
+   attribute numeration {
+     "arabic" | "upperalpha" | "loweralpha" | "upperroman" | "lowerroman"
+   }?,
+   [ a:defaultValue = "ignore" ]
+   attribute inheritnum { "inherit" | "ignore" }?,
+   [ a:defaultValue = "restarts" ]
+   attribute continuation { "continues" | "restarts" }?,
+   attribute spacing { "normal" | "compact" }?,
+   common.attrib,
+   orderedlist.role.attrib,
+   local.orderedlist.attrib
+ # end of orderedlist.attlist
+ # end of orderedlist.module
+ local.listitem.attrib = empty
+ listitem.role.attrib = role.attrib
+ listitem = element listitem { listitem.attlist, component.mix+ }
+ # end of listitem.element
+ # Override: Indicates the mark to be used for this ListItem
+ # instead of the default mark or the mark specified by
+ # the Mark attribute on the enclosing ItemizedList
+ listitem.attlist &=
+   attribute override { text }?,
+   common.attrib,
+   listitem.role.attrib,
+   local.listitem.attrib
+ # end of listitem.attlist
+ # end of listitem.module
+ # SegmentedList ....................
+ local.segmentedlist.attrib = empty
+ segmentedlist.role.attrib = role.attrib
+ segmentedlist =
+   element segmentedlist {
+     segmentedlist.attlist,
+     formalobject.title.content?,
+     segtitle+,
+     seglistitem+
+   }
+ # end of segmentedlist.element
+ segmentedlist.attlist &=
+   common.attrib, segmentedlist.role.attrib, local.segmentedlist.attrib
+ # end of segmentedlist.attlist
+ # end of segmentedlist.module
+ local.segtitle.attrib = empty
+ segtitle.role.attrib = role.attrib
+ segtitle = element segtitle { segtitle.attlist, title.char.mix* }
+ # end of segtitle.element
+ segtitle.attlist &=
+   common.attrib, segtitle.role.attrib, local.segtitle.attrib
+ # end of segtitle.attlist
+ # end of segtitle.module
+ local.seglistitem.attrib = empty
+ seglistitem.role.attrib = role.attrib
+ seglistitem = element seglistitem { seglistitem.attlist, seg+ }
+ # end of seglistitem.element
+ seglistitem.attlist &=
+   common.attrib, seglistitem.role.attrib, local.seglistitem.attrib
+ # end of seglistitem.attlist
+ # end of seglistitem.module
+ local.seg.attrib = empty
+ seg.role.attrib = role.attrib
+ seg = element seg { seg.attlist, para.char.mix* }
+ # end of seg.element
+ seg.attlist &= common.attrib, seg.role.attrib, local.seg.attrib
+ # end of seg.attlist
+ # end of seg.module
+ # end of segmentedlist.content.module
+ # SimpleList .......................
+ local.simplelist.attrib = empty
+ simplelist.role.attrib = role.attrib
+ simplelist = element simplelist { simplelist.attlist, member+ }
+ # end of simplelist.element
+ # Columns: The number of columns the array should contain
+ # Type: How the Members of the SimpleList should be
+ # formatted: Inline (members separated with commas etc.
+ # inline), Vert (top to bottom in n Columns), or Horiz (in
+ # the direction of text flow) in n Columns.  If Column
+ # is 1 or implied, Type=Vert and Type=Horiz give the same
+ # results.
+ simplelist.attlist &=
+   attribute columns { text }?,
+   [ a:defaultValue = "vert" ]
+   attribute type { "inline" | "vert" | "horiz" }?,
+   common.attrib,
+   simplelist.role.attrib,
+   local.simplelist.attrib
+ # end of simplelist.attlist
+ # end of simplelist.module
+ local.member.attrib = empty
+ member.role.attrib = role.attrib
+ member = element member { member.attlist, para.char.mix* }
+ # end of member.element
+ member.attlist &= common.attrib, member.role.attrib, local.member.attrib
+ # end of member.attlist
+ # end of member.module
+ # end of simplelist.content.module
+ # VariableList .....................
+ local.variablelist.attrib = empty
+ variablelist.role.attrib = role.attrib
+ variablelist =
+   element variablelist {
+     variablelist.attlist,
+     blockinfo?,
+     formalobject.title.content?,
+     listpreamble.mix*,
+     varlistentry+
+   }
+ # end of variablelist.element
+ # TermLength: Length beyond which the presentation engine
+ # may consider the Term too long and select an alternate
+ # presentation of the Term and, or, its associated ListItem.
+ variablelist.attlist &=
+   attribute termlength { text }?,
+   common.attrib,
+   variablelist.role.attrib,
+   local.variablelist.attrib
+ # end of variablelist.attlist
+ # end of variablelist.module
+ local.varlistentry.attrib = empty
+ varlistentry.role.attrib = role.attrib
+ varlistentry =
+   element varlistentry { varlistentry.attlist, term+, listitem }
+ # end of varlistentry.element
+ varlistentry.attlist &=
+   common.attrib, varlistentry.role.attrib, local.varlistentry.attrib
+ # end of varlistentry.attlist
+ # end of varlistentry.module
+ local.term.attrib = empty
+ term.role.attrib = role.attrib
+ term = element term { term.attlist, para.char.mix* }
+ # end of term.element
+ term.attlist &= common.attrib, term.role.attrib, local.term.attrib
+ # end of term.attlist
+ # end of term.module
+ #  ListItem (defined above)
+ # end of variablelist.content.module
+ # CalloutList ......................
+ local.calloutlist.attrib = empty
+ calloutlist.role.attrib = role.attrib
+ calloutlist =
+   element calloutlist {
+     calloutlist.attlist, formalobject.title.content?, callout+
+   }
+ # end of calloutlist.element
+ calloutlist.attlist &=
+   common.attrib, calloutlist.role.attrib, local.calloutlist.attrib
+ # end of calloutlist.attlist
+ # end of calloutlist.module
+ local.callout.attrib = empty
+ callout.role.attrib = role.attrib
+ callout = element callout { callout.attlist, component.mix+ }
+ # end of callout.element
+ # AreaRefs: IDs of one or more Areas or AreaSets described
+ # by this Callout
+ callout.attlist &=
+   attribute arearefs { xsd:IDREFS },
+   common.attrib,
+   callout.role.attrib,
+   local.callout.attrib
+ # end of callout.attlist
+ # end of callout.module
+ # end of calloutlist.content.module
+ # ......................................................................
+ # Objects ..............................................................
+ # Examples etc. ....................
+ local.example.attrib = empty
+ example.role.attrib = role.attrib
+ example =
+   element example {
+     example.attlist,
+     blockinfo?,
+     formalobject.title.content,
+     example.mix+
+   }
+ # end of example.element
+ example.attlist &=
+   label.attrib,
+   width.attrib,
+   common.attrib,
+   example.role.attrib,
+   local.example.attrib
+ # end of example.attlist
+ # end of example.module
+ local.informalexample.attrib = empty
+ informalexample.role.attrib = role.attrib
+ informalexample =
+   element informalexample {
+     informalexample.attlist, blockinfo?, example.mix+
+   }
+ # end of informalexample.element
+ informalexample.attlist &=
+   width.attrib,
+   common.attrib,
+   informalexample.role.attrib,
+   local.informalexample.attrib
+ # end of informalexample.attlist
+ # end of informalexample.module
+ local.programlistingco.attrib = empty
+ programlistingco.role.attrib = role.attrib
+ programlistingco =
+   element programlistingco {
+     programlistingco.attlist, areaspec, programlisting, calloutlist*
+   }
+ # end of programlistingco.element
+ programlistingco.attlist &=
+   common.attrib,
+   programlistingco.role.attrib,
+   local.programlistingco.attrib
+ # end of programlistingco.attlist
+ #  CalloutList (defined above in Lists)
+ # end of informalexample.module
+ local.areaspec.attrib = empty
+ areaspec.role.attrib = role.attrib
+ areaspec = element areaspec { areaspec.attlist, (area | areaset)+ }
+ # end of areaspec.element
+ # Units: global unit of measure in which coordinates in
+ # this spec are expressed:
+ # 
+ # - CALSPair "x1,y1 x2,y2": lower-left and upper-right
+ # coordinates in a rectangle describing repro area in which
+ # graphic is placed, where X and Y dimensions are each some
+ # number 0..10000 (taken from CALS graphic attributes)
+ # 
+ # - LineColumn "line column": line number and column number
+ # at which to start callout text in "linespecific" content
+ # 
+ # - LineRange "startline endline": whole lines from startline
+ # to endline in "linespecific" content
+ # 
+ # - LineColumnPair "line1 col1 line2 col2": starting and ending
+ # points of area in "linespecific" content that starts at
+ # first position and ends at second position (including the
+ # beginnings of any intervening lines)
+ # 
+ # - Other: directive to look at value of OtherUnits attribute
+ # to get implementation-specific keyword
+ # 
+ # The default is implementation-specific; usually dependent on
+ # the parent element (GraphicCO gets CALSPair, ProgramListingCO
+ # and ScreenCO get LineColumn)
+ # OtherUnits: User-defined units
+ areaspec.attlist &=
+   attribute units {
+     "calspair" | "linecolumn" | "linerange" | "linecolumnpair" | "other"
+   }?,
+   attribute otherunits { xsd:NMTOKEN }?,
+   common.attrib,
+   areaspec.role.attrib,
+   local.areaspec.attrib
+ # end of areaspec.attlist
+ # end of areaspec.module
+ local.area.attrib = empty
+ area.role.attrib = role.attrib
+ area = element area { area.attlist, empty }
+ # end of area.element
+ # bug number/symbol override or initialization
+ # to any related information
+ # Units: unit of measure in which coordinates in this
+ # area are expressed; inherits from AreaSet and AreaSpec
+ # OtherUnits: User-defined units
+ area.attlist &=
+   label.attrib,
+   linkends.attrib,
+   attribute units {
+     "calspair" | "linecolumn" | "linerange" | "linecolumnpair" | "other"
+   }?,
+   attribute otherunits { xsd:NMTOKEN }?,
+   attribute coords { text },
+   idreq.common.attrib,
+   area.role.attrib,
+   local.area.attrib
+ # end of area.attlist
+ # end of area.module
+ local.areaset.attrib = empty
+ areaset.role.attrib = role.attrib
+ areaset = element areaset { areaset.attlist, area+ }
+ # end of areaset.element
+ # bug number/symbol override or initialization
+ # Units: unit of measure in which coordinates in this
+ # area are expressed; inherits from AreaSpec
+ areaset.attlist &=
+   label.attrib,
+   attribute units {
+     "calspair" | "linecolumn" | "linerange" | "linecolumnpair" | "other"
+   }?,
+   attribute otherunits { xsd:NMTOKEN }?,
+   attribute coords { text },
+   idreq.common.attrib,
+   areaset.role.attrib,
+   local.areaset.attrib
+ # end of areaset.attlist
+ # end of areaset.module
+ # end of areaspec.content.module
+ local.programlisting.attrib = empty
+ programlisting.role.attrib = role.attrib
+ programlisting =
+   element programlisting {
+     programlisting.attlist,
+     (para.char.mix | co | coref | lineannotation | textobject)*
+   }
+ # end of programlisting.element
+ programlisting.attlist &=
+   width.attrib,
+   linespecific.attrib,
+   common.attrib,
+   programlisting.role.attrib,
+   local.programlisting.attrib
+ # end of programlisting.attlist
+ # end of programlisting.module
+ local.literallayout.attrib = empty
+ literallayout.role.attrib = role.attrib
+ literallayout =
+   element literallayout {
+     literallayout.attlist,
+     (para.char.mix | co | coref | textobject | lineannotation)*
+   }
+ # end of literallayout.element
+ literallayout.attlist &=
+   width.attrib,
+   linespecific.attrib,
+   [ a:defaultValue = "normal" ]
+   attribute class { "monospaced" | "normal" }?,
+   common.attrib,
+   literallayout.role.attrib,
+   local.literallayout.attrib
+ # end of literallayout.attlist
+ #  LineAnnotation (defined in the Inlines section, below)
+ # end of literallayout.module
+ local.screenco.attrib = empty
+ screenco.role.attrib = role.attrib
+ screenco =
+   element screenco { screenco.attlist, areaspec, screen, calloutlist* }
+ # end of screenco.element
+ screenco.attlist &=
+   common.attrib, screenco.role.attrib, local.screenco.attrib
+ # end of screenco.attlist
+ #  AreaSpec (defined above)
+ #  CalloutList (defined above in Lists)
+ # end of screenco.module
+ local.screen.attrib = empty
+ screen.role.attrib = role.attrib
+ screen =
+   element screen {
+     screen.attlist,
+     (para.char.mix | co | coref | textobject | lineannotation)*
+   }
+ # end of screen.element
+ screen.attlist &=
+   width.attrib,
+   linespecific.attrib,
+   common.attrib,
+   screen.role.attrib,
+   local.screen.attrib
+ # end of screen.attlist
+ # end of screen.module
+ local.screenshot.attrib = empty
+ screenshot.role.attrib = role.attrib
+ screenshot =
+   element screenshot {
+     screenshot.attlist,
+     screeninfo?,
+     (graphic | graphicco | mediaobject | mediaobjectco)
+   }
+ # end of screenshot.element
+ screenshot.attlist &=
+   common.attrib, screenshot.role.attrib, local.screenshot.attrib
+ # end of screenshot.attlist
+ # end of screenshot.module
+ local.screeninfo.attrib = empty
+ screeninfo.role.attrib = role.attrib
+ screeninfo = element screeninfo { screeninfo.attlist, para.char.mix* }
+ # end of screeninfo.element
+ screeninfo.attlist &=
+   common.attrib, screeninfo.role.attrib, local.screeninfo.attrib
+ # end of screeninfo.attlist
+ # end of screeninfo.module
+ # end of screenshot.content.module
+ # Figures etc. .....................
+ local.figure.attrib = empty
+ figure.role.attrib = role.attrib
+ figure =
+   element figure {
+     figure.attlist,
+     blockinfo?,
+     formalobject.title.content,
+     (figure.mix | link.char.class)+
+   }
+ # end of figure.element
+ # Float: Whether the Figure is supposed to be rendered
+ # where convenient (yes (1) value) or at the place it occurs
+ # in the text (no (0) value, the default)
+ figure.attlist &=
+   [ a:defaultValue = "0" ] attribute float { yesorno.attvals }?,
+   attribute pgwide { yesorno.attvals }?,
+   label.attrib,
+   common.attrib,
+   figure.role.attrib,
+   local.figure.attrib
+ # end of figure.attlist
+ # end of figure.module
+ local.informalfigure.attrib = empty
+ informalfigure.role.attrib = role.attrib
+ informalfigure =
+   element informalfigure {
+     informalfigure.attlist, blockinfo?, (figure.mix | link.char.class)+
+   }
+ # end of informalfigure.element
+ # Float: Whether the Figure is supposed to be rendered
+ # where convenient (yes (1) value) or at the place it occurs
+ # in the text (no (0) value, the default)
+ informalfigure.attlist &=
+   [ a:defaultValue = "0" ] attribute float { yesorno.attvals }?,
+   attribute pgwide { yesorno.attvals }?,
+   label.attrib,
+   common.attrib,
+   informalfigure.role.attrib,
+   local.informalfigure.attrib
+ # end of informalfigure.attlist
+ # end of informalfigure.module
+ local.graphicco.attrib = empty
+ graphicco.role.attrib = role.attrib
+ graphicco =
+   element graphicco {
+     graphicco.attlist, areaspec, graphic, calloutlist*
+   }
+ # end of graphicco.element
+ graphicco.attlist &=
+   common.attrib, graphicco.role.attrib, local.graphicco.attrib
+ # end of graphicco.attlist
+ #  AreaSpec (defined above in Examples)
+ #  CalloutList (defined above in Lists)
+ # end of graphicco.module
+ # Graphical data can be the content of Graphic, or you can reference
+ # an external file either as an entity (Entitref) or a filename
+ # (Fileref).
+ local.graphic.attrib = empty
+ graphic.role.attrib = role.attrib
+ graphic = element graphic { graphic.attlist, empty }
+ # end of graphic.element
+ graphic.attlist &=
+   graphics.attrib,
+   common.attrib,
+   graphic.role.attrib,
+   local.graphic.attrib
+ # end of graphic.attlist
+ # end of graphic.module
+ local.inlinegraphic.attrib = empty
+ inlinegraphic.role.attrib = role.attrib
+ inlinegraphic = element inlinegraphic { inlinegraphic.attlist, empty }
+ # end of inlinegraphic.element
+ inlinegraphic.attlist &=
+   graphics.attrib,
+   common.attrib,
+   inlinegraphic.role.attrib,
+   local.inlinegraphic.attrib
+ # end of inlinegraphic.attlist
+ # end of inlinegraphic.module
+ local.mediaobject.attrib = empty
+ mediaobject.role.attrib = role.attrib
+ mediaobject =
+   element mediaobject {
+     mediaobject.attlist, objectinfo?, mediaobject.mix+, caption?
+   }
+ # end of mediaobject.element
+ mediaobject.attlist &=
+   common.attrib, mediaobject.role.attrib, local.mediaobject.attrib
+ # end of mediaobject.attlist
+ # end of mediaobject.module
+ local.inlinemediaobject.attrib = empty
+ inlinemediaobject.role.attrib = role.attrib
+ inlinemediaobject =
+   element inlinemediaobject {
+     inlinemediaobject.attlist, objectinfo?, mediaobject.mix+
+   }
+ # end of inlinemediaobject.element
+ inlinemediaobject.attlist &=
+   common.attrib,
+   inlinemediaobject.role.attrib,
+   local.inlinemediaobject.attrib
+ # end of inlinemediaobject.attlist
+ # end of inlinemediaobject.module
+ local.videoobject.attrib = empty
+ videoobject.role.attrib = role.attrib
+ videoobject =
+   element videoobject { videoobject.attlist, objectinfo?, videodata }
+ # end of videoobject.element
+ videoobject.attlist &=
+   common.attrib, videoobject.role.attrib, local.videoobject.attrib
+ # end of videoobject.attlist
+ # end of videoobject.module
+ local.audioobject.attrib = empty
+ audioobject.role.attrib = role.attrib
+ audioobject =
+   element audioobject { audioobject.attlist, objectinfo?, audiodata }
+ # end of audioobject.element
+ audioobject.attlist &=
+   common.attrib, audioobject.role.attrib, local.audioobject.attrib
+ # end of audioobject.attlist
+ # end of audioobject.module
+ local.imageobject.attrib = empty
+ imageobject.role.attrib = role.attrib
+ imageobject =
+   element imageobject { imageobject.attlist, objectinfo?, imagedata }
+ # end of imageobject.element
+ imageobject.attlist &=
+   common.attrib, imageobject.role.attrib, local.imageobject.attrib
+ # end of imageobject.attlist
+ # end of imageobject.module
+ local.textobject.attrib = empty
+ textobject.role.attrib = role.attrib
+ textobject =
+   element textobject {
+     textobject.attlist,
+     objectinfo?,
+     (phrase | textdata | textobject.mix+)
+   }
+ # end of textobject.element
+ textobject.attlist &=
+   common.attrib, textobject.role.attrib, local.textobject.attrib
+ # end of textobject.attlist
+ # end of textobject.module
+ local.objectinfo.attrib = empty
+ objectinfo.role.attrib = role.attrib
+ objectinfo = element objectinfo { objectinfo.attlist, info.class+ }
+ # end of objectinfo.element
+ objectinfo.attlist &=
+   common.attrib, objectinfo.role.attrib, local.objectinfo.attrib
+ # end of objectinfo.attlist
+ # end of objectinfo.module
+ # EntityRef: Name of an external entity containing the content
+ # of the object data
+ # FileRef: Filename, qualified by a pathname if desired,
+ # designating the file containing the content of the object data
+ # Format: Notation of the element content, if any
+ # SrcCredit: Information about the source of the image
+ local.objectdata.attrib = empty
+ objectdata.attrib =
+   attribute entityref { xsd:ENTITY }?,
+   attribute fileref { text }?,
+   attribute format { notation.class }?,
+   attribute srccredit { text }?,
+   local.objectdata.attrib
+ local.videodata.attrib = empty
+ videodata.role.attrib = role.attrib
+ videodata = element videodata { videodata.attlist, empty }
+ # end of videodata.element
+ # Width: Same as CALS reprowid (desired width)
+ # Depth: Same as CALS reprodep (desired depth)
+ # Align: Same as CALS hplace with 'none' removed; #IMPLIED means
+ # application-specific
+ # Scale: Conflation of CALS hscale and vscale
+ # Scalefit: Same as CALS scalefit
+ videodata.attlist &=
+   attribute width { text }?,
+   attribute contentwidth { text }?,
+   attribute depth { text }?,
+   attribute contentdepth { text }?,
+   attribute align { "left" | "right" | "center" }?,
+   attribute valign { "top" | "middle" | "bottom" }?,
+   attribute scale { text }?,
+   attribute scalefit { yesorno.attvals }?,
+   objectdata.attrib,
+   common.attrib,
+   videodata.role.attrib,
+   local.videodata.attrib
+ # end of videodata.attlist
+ # end of videodata.module
+ local.audiodata.attrib = empty
+ audiodata.role.attrib = role.attrib
+ audiodata = element audiodata { audiodata.attlist, empty }
+ # end of audiodata.element
+ audiodata.attlist &=
+   objectdata.attrib,
+   common.attrib,
+   audiodata.role.attrib,
+   local.audiodata.attrib
+ # end of audiodata.attlist
+ # end of audiodata.module
+ local.imagedata.attrib = empty
+ imagedata.role.attrib = role.attrib
+ imagedata = element imagedata { imagedata.attlist, empty }
+ # end of imagedata.element
+ # Width: Same as CALS reprowid (desired width)
+ # Depth: Same as CALS reprodep (desired depth)
+ # Align: Same as CALS hplace with 'none' removed; #IMPLIED means
+ # application-specific
+ # Scale: Conflation of CALS hscale and vscale
+ # Scalefit: Same as CALS scalefit
+ imagedata.attlist &=
+   attribute width { text }?,
+   attribute contentwidth { text }?,
+   attribute depth { text }?,
+   attribute contentdepth { text }?,
+   attribute align { "left" | "right" | "center" }?,
+   attribute valign { "top" | "middle" | "bottom" }?,
+   attribute scale { text }?,
+   attribute scalefit { yesorno.attvals }?,
+   objectdata.attrib,
+   common.attrib,
+   imagedata.role.attrib,
+   local.imagedata.attrib
+ # end of imagedata.attlist
+ # end of imagedata.module
+ local.textdata.attrib = empty
+ textdata.role.attrib = role.attrib
+ textdata = element textdata { textdata.attlist, empty }
+ # end of textdata.element
+ textdata.attlist &=
+   attribute encoding { text }?,
+   objectdata.attrib,
+   common.attrib,
+   textdata.role.attrib,
+   local.textdata.attrib
+ # end of textdata.attlist
+ # end of textdata.module
+ local.caption.attrib = empty
+ caption.role.attrib = role.attrib
+ caption = element caption { caption.attlist, textobject.mix* }
+ # end of caption.element
+ caption.attlist &=
+   common.attrib, caption.role.attrib, local.caption.attrib
+ # end of caption.attlist
+ # end of caption.module
+ local.mediaobjectco.attrib = empty
+ mediaobjectco.role.attrib = role.attrib
+ mediaobjectco =
+   element mediaobjectco {
+     mediaobjectco.attlist,
+     objectinfo?,
+     imageobjectco,
+     (imageobjectco | textobject)*
+   }
+ # end of mediaobjectco.element
+ mediaobjectco.attlist &=
+   common.attrib, mediaobjectco.role.attrib, local.mediaobjectco.attrib
+ # end of mediaobjectco.attlist
+ # end of mediaobjectco.module
+ local.imageobjectco.attrib = empty
+ imageobjectco.role.attrib = role.attrib
+ imageobjectco =
+   element imageobjectco {
+     imageobjectco.attlist, areaspec, imageobject, calloutlist*
+   }
+ # end of imageobjectco.element
+ imageobjectco.attlist &=
+   common.attrib, imageobjectco.role.attrib, local.imageobjectco.attrib
+ # end of imageobjectco.attlist
+ # end of imageobjectco.module
+ # end of mediaobject.content.module
+ # Equations ........................
+ # This PE provides a mechanism for replacing equation content,
+ # perhaps adding a new or different model (e.g., MathML)
+ equation.content = alt?, (graphic+ | mediaobject+)
+ inlineequation.content = alt?, (graphic+ | inlinemediaobject+)
+ local.equation.attrib = empty
+ equation.role.attrib = role.attrib
+ equation =
+   element equation {
+     equation.attlist,
+     blockinfo?,
+     formalobject.title.content?,
+     (informalequation | equation.content)
+   }
+ # end of equation.element
+ equation.attlist &=
+   label.attrib,
+   common.attrib,
+   equation.role.attrib,
+   local.equation.attrib
+ # end of equation.attlist
+ # end of equation.module
+ local.informalequation.attrib = empty
+ informalequation.role.attrib = role.attrib
+ informalequation =
+   element informalequation {
+     informalequation.attlist, blockinfo?, equation.content
+   }
+ # end of informalequation.element
+ informalequation.attlist &=
+   common.attrib,
+   informalequation.role.attrib,
+   local.informalequation.attrib
+ # end of informalequation.attlist
+ # end of informalequation.module
+ local.inlineequation.attrib = empty
+ inlineequation.role.attrib = role.attrib
+ inlineequation =
+   element inlineequation {
+     inlineequation.attlist, inlineequation.content
+   }
+ # end of inlineequation.element
+ inlineequation.attlist &=
+   common.attrib, inlineequation.role.attrib, local.inlineequation.attrib
+ # end of inlineequation.attlist
+ # end of inlineequation.module
+ local.alt.attrib = empty
+ alt.role.attrib = role.attrib
+ alt = element alt { alt.attlist, text }
+ # end of alt.element
+ alt.attlist &= common.attrib, alt.role.attrib, local.alt.attrib
+ # end of alt.attlist
+ # end of alt.module
+ # Tables ...........................
+ tables.role.attrib = role.attrib
+ # Note that InformalTable is dependent on some of the entity
+ # declarations that customize Table.
+ local.informaltable.attrib = empty
+ informaltable =
+   element informaltable {
+     informaltable.attlist,
+     blockinfo?,
+     textobject*,
+     (graphic+ | mediaobject+ | tgroup+)
+   }
+ # end of informaltable.element
+ # Frame, Colsep, and Rowsep must be repeated because
+ # they are not in entities in the table module.
+ # includes TabStyle, ToCentry, ShortEntry,
+ # Orient, PgWide
+ # includes Label
+ # includes common attributes
+ informaltable.attlist &=
+   attribute frame {
+     "top" | "bottom" | "topbot" | "all" | "sides" | "none"
+   }?,
+   attribute colsep { yesorno.attvals }?,
+   attribute rowsep { yesorno.attvals }?,
+   common.table.attribs,
+   tbl.table.att,
+   local.informaltable.attrib
+ # end of informaltable.attlist
+ # end of informaltable.module
+ # ......................................................................
+ # Synopses .............................................................
+ # Synopsis .........................
+ local.synopsis.attrib = empty
+ synopsis.role.attrib = role.attrib
+ synopsis =
+   element synopsis {
+     synopsis.attlist,
+     (para.char.mix
+      | graphic
+      | mediaobject
+      | co
+      | coref
+      | textobject
+      | lineannotation)*
+   }
+ # end of synopsis.element
+ synopsis.attlist &=
+   label.attrib,
+   linespecific.attrib,
+   common.attrib,
+   synopsis.role.attrib,
+   local.synopsis.attrib
+ # end of synopsis.attlist
+ #  LineAnnotation (defined in the Inlines section, below)
+ # end of synopsis.module
+ # CmdSynopsis ......................
+ local.cmdsynopsis.attrib = empty
+ cmdsynopsis.role.attrib = role.attrib
+ cmdsynopsis =
+   element cmdsynopsis {
+     cmdsynopsis.attlist, (command | arg | group | sbr)+, synopfragment*
+   }
+ # end of cmdsynopsis.element
+ # Sepchar: Character that should separate command and all
+ # top-level arguments; alternate value might be e.g., &Delta;
+ cmdsynopsis.attlist &=
+   label.attrib,
+   [ a:defaultValue = " " ] attribute sepchar { text }?,
+   attribute cmdlength { text }?,
+   common.attrib,
+   cmdsynopsis.role.attrib,
+   local.cmdsynopsis.attrib
+ # end of cmdsynopsis.attlist
+ # end of cmdsynopsis.module
+ local.arg.attrib = empty
+ arg.role.attrib = role.attrib
+ arg =
+   element arg {
+     arg.attlist,
+     (text
+      | arg
+      | group
+      | option
+      | synopfragmentref
+      | replaceable
+      | sbr)*
+   }
+ # end of arg.element
+ # Choice: Whether Arg must be supplied: Opt (optional to
+ # supply, e.g. [arg]; the default), Req (required to supply,
+ # e.g. {arg}), or Plain (required to supply, e.g. arg)
+ # Rep: whether Arg is repeatable: Norepeat (e.g. arg without
+ # ellipsis; the default), or Repeat (e.g. arg...)
+ arg.attlist &=
+   [ a:defaultValue = "opt" ]
+   attribute choice { "opt" | "req" | "plain" }?,
+   [ a:defaultValue = "norepeat" ]
+   attribute rep { "norepeat" | "repeat" }?,
+   common.attrib,
+   arg.role.attrib,
+   local.arg.attrib
+ # end of arg.attlist
+ # end of arg.module
+ local.group.attrib = empty
+ group.role.attrib = role.attrib
+ group =
+   element group {
+     group.attlist,
+     (arg | group | option | synopfragmentref | replaceable | sbr)+
+   }
+ # end of group.element
+ # Choice: Whether Group must be supplied: Opt (optional to
+ # supply, e.g.  [g1|g2|g3]; the default), Req (required to
+ # supply, e.g.  {g1|g2|g3}), Plain (required to supply,
+ # e.g.  g1|g2|g3), OptMult (can supply zero or more, e.g.
+ # [[g1|g2|g3]]), or ReqMult (must supply one or more, e.g.
+ # {{g1|g2|g3}})
+ # Rep: whether Group is repeatable: Norepeat (e.g. group
+ # without ellipsis; the default), or Repeat (e.g. group...)
+ group.attlist &=
+   [ a:defaultValue = "opt" ]
+   attribute choice { "opt" | "req" | "plain" }?,
+   [ a:defaultValue = "norepeat" ]
+   attribute rep { "norepeat" | "repeat" }?,
+   common.attrib,
+   group.role.attrib,
+   local.group.attrib
+ # end of group.attlist
+ # end of group.module
+ local.sbr.attrib = empty
+ # Synopsis break
+ sbr.role.attrib = role.attrib
+ sbr = element sbr { sbr.attlist, empty }
+ # end of sbr.element
+ sbr.attlist &= common.attrib, sbr.role.attrib, local.sbr.attrib
+ # end of sbr.attlist
+ # end of sbr.module
+ local.synopfragmentref.attrib = empty
+ synopfragmentref.role.attrib = role.attrib
+ synopfragmentref =
+   element synopfragmentref { synopfragmentref.attlist, text }
+ # end of synopfragmentref.element
+ # to SynopFragment of complex synopsis
+ # material for separate referencing
+ synopfragmentref.attlist &=
+   linkendreq.attrib,
+   common.attrib,
+   synopfragmentref.role.attrib,
+   local.synopfragmentref.attrib
+ # end of synopfragmentref.attlist
+ # end of synopfragmentref.module
+ local.synopfragment.attrib = empty
+ synopfragment.role.attrib = role.attrib
+ synopfragment =
+   element synopfragment { synopfragment.attlist, (arg | group)+ }
+ # end of synopfragment.element
+ synopfragment.attlist &=
+   idreq.common.attrib,
+   synopfragment.role.attrib,
+   local.synopfragment.attrib
+ # end of synopfragment.attlist
+ # end of synopfragment.module
+ #  Command (defined in the Inlines section, below)
+ #  Option (defined in the Inlines section, below)
+ #  Replaceable (defined in the Inlines section, below)
+ # end of cmdsynopsis.content.module
+ # FuncSynopsis .....................
+ local.funcsynopsis.attrib = empty
+ funcsynopsis.role.attrib = role.attrib
+ funcsynopsis =
+   element funcsynopsis {
+     funcsynopsis.attlist, (funcsynopsisinfo | funcprototype)+
+   }
+ # end of funcsynopsis.element
+ funcsynopsis.attlist &=
+   label.attrib,
+   common.attrib,
+   funcsynopsis.role.attrib,
+   local.funcsynopsis.attrib
+ # end of funcsynopsis.attlist
+ # end of funcsynopsis.module
+ local.funcsynopsisinfo.attrib = empty
+ funcsynopsisinfo.role.attrib = role.attrib
+ funcsynopsisinfo =
+   element funcsynopsisinfo {
+     funcsynopsisinfo.attlist,
+     (cptr.char.mix | textobject | lineannotation)*
+   }
+ # end of funcsynopsisinfo.element
+ funcsynopsisinfo.attlist &=
+   linespecific.attrib,
+   common.attrib,
+   funcsynopsisinfo.role.attrib,
+   local.funcsynopsisinfo.attrib
+ # end of funcsynopsisinfo.attlist
+ # end of funcsynopsisinfo.module
+ local.funcprototype.attrib = empty
+ funcprototype.role.attrib = role.attrib
+ funcprototype =
+   element funcprototype {
+     funcprototype.attlist, funcdef, (void | varargs | paramdef+)
+   }
+ # end of funcprototype.element
+ funcprototype.attlist &=
+   common.attrib, funcprototype.role.attrib, local.funcprototype.attrib
+ # end of funcprototype.attlist
+ # end of funcprototype.module
+ local.funcdef.attrib = empty
+ funcdef.role.attrib = role.attrib
+ funcdef =
+   element funcdef {
+     funcdef.attlist, (text | type | replaceable | function)*
+   }
+ # end of funcdef.element
+ funcdef.attlist &=
+   common.attrib, funcdef.role.attrib, local.funcdef.attrib
+ # end of funcdef.attlist
+ # end of funcdef.module
+ local.void.attrib = empty
+ void.role.attrib = role.attrib
+ void = element void { void.attlist, empty }
+ # end of void.element
+ void.attlist &= common.attrib, void.role.attrib, local.void.attrib
+ # end of void.attlist
+ # end of void.module
+ local.varargs.attrib = empty
+ varargs.role.attrib = role.attrib
+ varargs = element varargs { varargs.attlist, empty }
+ # end of varargs.element
+ varargs.attlist &=
+   common.attrib, varargs.role.attrib, local.varargs.attrib
+ # end of varargs.attlist
+ # end of varargs.module
+ # Processing assumes that only one Parameter will appear in a
+ # ParamDef, and that FuncParams will be used at most once, for
+ # providing information on the "inner parameters" for parameters that
+ # are pointers to functions.
+ local.paramdef.attrib = empty
+ paramdef.role.attrib = role.attrib
+ paramdef =
+   element paramdef {
+     paramdef.attlist,
+     (text | type | replaceable | parameter | funcparams)*
+   }
+ # end of paramdef.element
+ paramdef.attlist &=
+   common.attrib, paramdef.role.attrib, local.paramdef.attrib
+ # end of paramdef.attlist
+ # end of paramdef.module
+ local.funcparams.attrib = empty
+ funcparams.role.attrib = role.attrib
+ funcparams = element funcparams { funcparams.attlist, cptr.char.mix* }
+ # end of funcparams.element
+ funcparams.attlist &=
+   common.attrib, funcparams.role.attrib, local.funcparams.attrib
+ # end of funcparams.attlist
+ # end of funcparams.module
+ #  LineAnnotation (defined in the Inlines section, below)
+ #  Replaceable (defined in the Inlines section, below)
+ #  Function (defined in the Inlines section, below)
+ #  Parameter (defined in the Inlines section, below)
+ # end of funcsynopsis.content.module
+ # ClassSynopsis .....................
+ local.classsynopsis.attrib = empty
+ classsynopsis.role.attrib = role.attrib
+ classsynopsis =
+   element classsynopsis {
+     classsynopsis.attlist,
+     (ooclass | oointerface | ooexception)+,
+     (classsynopsisinfo | fieldsynopsis | method.synop.class)*
+   }
+ # end of classsynopsis.element
+ classsynopsis.attlist &=
+   attribute language { text }?,
+   [ a:defaultValue = "class" ]
+   attribute class { "class" | "interface" }?,
+   common.attrib,
+   classsynopsis.role.attrib,
+   local.classsynopsis.attrib
+ # end of classsynopsis.attlist
+ # end of classsynopsis.module
+ local.classsynopsisinfo.attrib = empty
+ classsynopsisinfo.role.attrib = role.attrib
+ classsynopsisinfo =
+   element classsynopsisinfo {
+     classsynopsisinfo.attlist,
+     (cptr.char.mix | textobject | lineannotation)*
+   }
+ # end of classsynopsisinfo.element
+ classsynopsisinfo.attlist &=
+   linespecific.attrib,
+   common.attrib,
+   classsynopsisinfo.role.attrib,
+   local.classsynopsisinfo.attrib
+ # end of classsynopsisinfo.attlist
+ # end of classsynopsisinfo.module
+ local.ooclass.attrib = empty
+ ooclass.role.attrib = role.attrib
+ ooclass = element ooclass { ooclass.attlist, modifier*, classname }
+ # end of ooclass.element
+ ooclass.attlist &=
+   common.attrib, ooclass.role.attrib, local.ooclass.attrib
+ # end of ooclass.attlist
+ # end of ooclass.module
+ local.oointerface.attrib = empty
+ oointerface.role.attrib = role.attrib
+ oointerface =
+   element oointerface { oointerface.attlist, modifier*, interfacename }
+ # end of oointerface.element
+ oointerface.attlist &=
+   common.attrib, oointerface.role.attrib, local.oointerface.attrib
+ # end of oointerface.attlist
+ # end of oointerface.module
+ local.ooexception.attrib = empty
+ ooexception.role.attrib = role.attrib
+ ooexception =
+   element ooexception { ooexception.attlist, modifier*, exceptionname }
+ # end of ooexception.element
+ ooexception.attlist &=
+   common.attrib, ooexception.role.attrib, local.ooexception.attrib
+ # end of ooexception.attlist
+ # end of ooexception.module
+ local.modifier.attrib = empty
+ modifier.role.attrib = role.attrib
+ modifier = element modifier { modifier.attlist, smallcptr.char.mix* }
+ # end of modifier.element
+ modifier.attlist &=
+   common.attrib, modifier.role.attrib, local.modifier.attrib
+ # end of modifier.attlist
+ # end of modifier.module
+ local.interfacename.attrib = empty
+ interfacename.role.attrib = role.attrib
+ interfacename =
+   element interfacename { interfacename.attlist, cptr.char.mix* }
+ # end of interfacename.element
+ interfacename.attlist &=
+   common.attrib, interfacename.role.attrib, local.interfacename.attrib
+ # end of interfacename.attlist
+ # end of interfacename.module
+ local.exceptionname.attrib = empty
+ exceptionname.role.attrib = role.attrib
+ exceptionname =
+   element exceptionname { exceptionname.attlist, smallcptr.char.mix* }
+ # end of exceptionname.element
+ exceptionname.attlist &=
+   common.attrib, exceptionname.role.attrib, local.exceptionname.attrib
+ # end of exceptionname.attlist
+ # end of exceptionname.module
+ local.fieldsynopsis.attrib = empty
+ fieldsynopsis.role.attrib = role.attrib
+ fieldsynopsis =
+   element fieldsynopsis {
+     fieldsynopsis.attlist, modifier*, type?, varname, initializer?
+   }
+ # end of fieldsynopsis.element
+ fieldsynopsis.attlist &=
+   attribute language { text }?,
+   common.attrib,
+   fieldsynopsis.role.attrib,
+   local.fieldsynopsis.attrib
+ # end of fieldsynopsis.attlist
+ # end of fieldsynopsis.module
+ local.initializer.attrib = empty
+ initializer.role.attrib = role.attrib
+ initializer =
+   element initializer { initializer.attlist, smallcptr.char.mix* }
+ # end of initializer.element
+ initializer.attlist &=
+   common.attrib, initializer.role.attrib, local.initializer.attrib
+ # end of initializer.attlist
+ # end of initializer.module
+ local.constructorsynopsis.attrib = empty
+ constructorsynopsis.role.attrib = role.attrib
+ constructorsynopsis =
+   element constructorsynopsis {
+     constructorsynopsis.attlist,
+     modifier*,
+     methodname?,
+     (methodparam+ | void),
+     exceptionname*
+   }
+ # end of constructorsynopsis.element
+ constructorsynopsis.attlist &=
+   attribute language { text }?,
+   common.attrib,
+   constructorsynopsis.role.attrib,
+   local.constructorsynopsis.attrib
+ # end of constructorsynopsis.attlist
+ # end of constructorsynopsis.module
+ local.destructorsynopsis.attrib = empty
+ destructorsynopsis.role.attrib = role.attrib
+ destructorsynopsis =
+   element destructorsynopsis {
+     destructorsynopsis.attlist,
+     modifier*,
+     methodname?,
+     (methodparam+ | void),
+     exceptionname*
+   }
+ # end of destructorsynopsis.element
+ destructorsynopsis.attlist &=
+   attribute language { text }?,
+   common.attrib,
+   destructorsynopsis.role.attrib,
+   local.destructorsynopsis.attrib
+ # end of destructorsynopsis.attlist
+ # end of destructorsynopsis.module
+ local.methodsynopsis.attrib = empty
+ methodsynopsis.role.attrib = role.attrib
+ methodsynopsis =
+   element methodsynopsis {
+     methodsynopsis.attlist,
+     modifier*,
+     (type | void)?,
+     methodname,
+     (methodparam+ | void),
+     exceptionname*,
+     modifier*
+   }
+ # end of methodsynopsis.element
+ methodsynopsis.attlist &=
+   attribute language { text }?,
+   common.attrib,
+   methodsynopsis.role.attrib,
+   local.methodsynopsis.attrib
+ # end of methodsynopsis.attlist
+ # end of methodsynopsis.module
+ local.methodname.attrib = empty
+ methodname.role.attrib = role.attrib
+ methodname =
+   element methodname { methodname.attlist, smallcptr.char.mix* }
+ # end of methodname.element
+ methodname.attlist &=
+   common.attrib, methodname.role.attrib, local.methodname.attrib
+ # end of methodname.attlist
+ # end of methodname.module
+ local.methodparam.attrib = empty
+ methodparam.role.attrib = role.attrib
+ methodparam =
+   element methodparam {
+     methodparam.attlist,
+     modifier*,
+     type?,
+     ((parameter, initializer?) | funcparams),
+     modifier*
+   }
+ # end of methodparam.element
+ methodparam.attlist &=
+   [ a:defaultValue = "req" ]
+   attribute choice { "opt" | "req" | "plain" }?,
+   [ a:defaultValue = "norepeat" ]
+   attribute rep { "norepeat" | "repeat" }?,
+   common.attrib,
+   methodparam.role.attrib,
+   local.methodparam.attrib
+ # end of methodparam.attlist
+ # end of methodparam.module
+ # end of classsynopsis.content.module
+ # ......................................................................
+ # Document information entities and elements ...........................
+ # The document information elements include some elements that are
+ # currently used only in the document hierarchy module. They are
+ # defined here so that they will be available for use in customized
+ # document hierarchies.
+ # ..................................
+ # Ackno ............................
+ local.ackno.attrib = empty
+ ackno.role.attrib = role.attrib
+ ackno = element ackno { ackno.attlist, docinfo.char.mix* }
+ # end of ackno.element
+ ackno.attlist &= common.attrib, ackno.role.attrib, local.ackno.attrib
+ # end of ackno.attlist
+ # end of ackno.module
+ # Address ..........................
+ local.address.attrib = empty
+ address.role.attrib = role.attrib
+ address =
+   element address {
+     address.attlist,
+     (text
+      | personname
+      | person.ident.mix
+      | street
+      | pob
+      | postcode
+      | city
+      | state
+      | country
+      | phone
+      | fax
+      | email
+      | otheraddr)*
+   }
+ # end of address.element
+ address.attlist &=
+   linespecific.attrib,
+   common.attrib,
+   address.role.attrib,
+   local.address.attrib
+ # end of address.attlist
+ # end of address.module
+ local.street.attrib = empty
+ street.role.attrib = role.attrib
+ street = element street { street.attlist, docinfo.char.mix* }
+ # end of street.element
+ street.attlist &= common.attrib, street.role.attrib, local.street.attrib
+ # end of street.attlist
+ # end of street.module
+ local.pob.attrib = empty
+ pob.role.attrib = role.attrib
+ pob = element pob { pob.attlist, docinfo.char.mix* }
+ # end of pob.element
+ pob.attlist &= common.attrib, pob.role.attrib, local.pob.attrib
+ # end of pob.attlist
+ # end of pob.module
+ local.postcode.attrib = empty
+ postcode.role.attrib = role.attrib
+ postcode = element postcode { postcode.attlist, docinfo.char.mix* }
+ # end of postcode.element
+ postcode.attlist &=
+   common.attrib, postcode.role.attrib, local.postcode.attrib
+ # end of postcode.attlist
+ # end of postcode.module
+ local.city.attrib = empty
+ city.role.attrib = role.attrib
+ city = element city { city.attlist, docinfo.char.mix* }
+ # end of city.element
+ city.attlist &= common.attrib, city.role.attrib, local.city.attrib
+ # end of city.attlist
+ # end of city.module
+ local.state.attrib = empty
+ state.role.attrib = role.attrib
+ state = element state { state.attlist, docinfo.char.mix* }
+ # end of state.element
+ state.attlist &= common.attrib, state.role.attrib, local.state.attrib
+ # end of state.attlist
+ # end of state.module
+ local.country.attrib = empty
+ country.role.attrib = role.attrib
+ country = element country { country.attlist, docinfo.char.mix* }
+ # end of country.element
+ country.attlist &=
+   common.attrib, country.role.attrib, local.country.attrib
+ # end of country.attlist
+ # end of country.module
+ local.phone.attrib = empty
+ phone.role.attrib = role.attrib
+ phone = element phone { phone.attlist, docinfo.char.mix* }
+ # end of phone.element
+ phone.attlist &= common.attrib, phone.role.attrib, local.phone.attrib
+ # end of phone.attlist
+ # end of phone.module
+ local.fax.attrib = empty
+ fax.role.attrib = role.attrib
+ fax = element fax { fax.attlist, docinfo.char.mix* }
+ # end of fax.element
+ fax.attlist &= common.attrib, fax.role.attrib, local.fax.attrib
+ # end of fax.attlist
+ # end of fax.module
+ #  Email (defined in the Inlines section, below)
+ local.otheraddr.attrib = empty
+ otheraddr.role.attrib = role.attrib
+ otheraddr = element otheraddr { otheraddr.attlist, docinfo.char.mix* }
+ # end of otheraddr.element
+ otheraddr.attlist &=
+   common.attrib, otheraddr.role.attrib, local.otheraddr.attrib
+ # end of otheraddr.attlist
+ # end of otheraddr.module
+ # end of address.content.module
+ # Affiliation ......................
+ local.affiliation.attrib = empty
+ affiliation.role.attrib = role.attrib
+ affiliation =
+   element affiliation {
+     affiliation.attlist,
+     shortaffil?,
+     jobtitle*,
+     orgname?,
+     orgdiv*,
+     address*
+   }
+ # end of affiliation.element
+ affiliation.attlist &=
+   common.attrib, affiliation.role.attrib, local.affiliation.attrib
+ # end of affiliation.attlist
+ # end of affiliation.module
+ local.shortaffil.attrib = empty
+ shortaffil.role.attrib = role.attrib
+ shortaffil =
+   element shortaffil { shortaffil.attlist, docinfo.char.mix* }
+ # end of shortaffil.element
+ shortaffil.attlist &=
+   common.attrib, shortaffil.role.attrib, local.shortaffil.attrib
+ # end of shortaffil.attlist
+ # end of shortaffil.module
+ local.jobtitle.attrib = empty
+ jobtitle.role.attrib = role.attrib
+ jobtitle = element jobtitle { jobtitle.attlist, docinfo.char.mix* }
+ # end of jobtitle.element
+ jobtitle.attlist &=
+   common.attrib, jobtitle.role.attrib, local.jobtitle.attrib
+ # end of jobtitle.attlist
+ # end of jobtitle.module
+ #  OrgName (defined elsewhere in this section)
+ local.orgdiv.attrib = empty
+ orgdiv.role.attrib = role.attrib
+ orgdiv = element orgdiv { orgdiv.attlist, docinfo.char.mix* }
+ # end of orgdiv.element
+ orgdiv.attlist &= common.attrib, orgdiv.role.attrib, local.orgdiv.attrib
+ # end of orgdiv.attlist
+ # end of orgdiv.module
+ #  Address (defined elsewhere in this section)
+ # end of affiliation.content.module
+ # ArtPageNums ......................
+ local.artpagenums.attrib = empty
+ artpagenums.role.attrib = role.attrib
+ artpagenums =
+   element artpagenums { artpagenums.attlist, docinfo.char.mix* }
+ # end of artpagenums.element
+ artpagenums.attlist &=
+   common.attrib, artpagenums.role.attrib, local.artpagenums.attrib
+ # end of artpagenums.attlist
+ # end of artpagenums.module
+ # PersonName
+ local.personname.attrib = empty
+ personname.role.attrib = role.attrib
+ personname =
+   element personname {
+     personname.attlist,
+     (honorific | firstname | surname | lineage | othername)+
+   }
+ # end of personname.element
+ personname.attlist &=
+   common.attrib, personname.role.attrib, local.personname.attrib
+ # end of personname.attlist
+ # end of personname.module
+ # Author ...........................
+ local.author.attrib = empty
+ author.role.attrib = role.attrib
+ author =
+   element author {
+     author.attlist,
+     (personname | person.ident.mix+),
+     (personblurb | email | address)*
+   }
+ # end of author.element
+ author.attlist &= common.attrib, author.role.attrib, local.author.attrib
+ # end of author.attlist
+ # (see "Personal identity elements" for %person.ident.mix;)
+ # end of author.module
+ # AuthorGroup ......................
+ local.authorgroup.attrib = empty
+ authorgroup.role.attrib = role.attrib
+ authorgroup =
+   element authorgroup {
+     authorgroup.attlist,
+     (author | editor | collab | corpauthor | othercredit)+
+   }
+ # end of authorgroup.element
+ authorgroup.attlist &=
+   common.attrib, authorgroup.role.attrib, local.authorgroup.attrib
+ # end of authorgroup.attlist
+ # end of authorgroup.module
+ #  Author (defined elsewhere in this section)
+ #  Editor (defined elsewhere in this section)
+ local.collab.attrib = empty
+ collab.role.attrib = role.attrib
+ collab = element collab { collab.attlist, collabname, affiliation* }
+ # end of collab.element
+ collab.attlist &= common.attrib, collab.role.attrib, local.collab.attrib
+ # end of collab.attlist
+ # end of collab.module
+ local.collabname.attrib = empty
+ collabname.role.attrib = role.attrib
+ collabname =
+   element collabname { collabname.attlist, docinfo.char.mix* }
+ # end of collabname.element
+ collabname.attlist &=
+   common.attrib, collabname.role.attrib, local.collabname.attrib
+ # end of collabname.attlist
+ # end of collabname.module
+ #  Affiliation (defined elsewhere in this section)
+ # end of collab.content.module
+ #  CorpAuthor (defined elsewhere in this section)
+ #  OtherCredit (defined elsewhere in this section)
+ # end of authorgroup.content.module
+ # AuthorInitials ...................
+ local.authorinitials.attrib = empty
+ authorinitials.role.attrib = role.attrib
+ authorinitials =
+   element authorinitials { authorinitials.attlist, docinfo.char.mix* }
+ # end of authorinitials.element
+ authorinitials.attlist &=
+   common.attrib, authorinitials.role.attrib, local.authorinitials.attrib
+ # end of authorinitials.attlist
+ # end of authorinitials.module
+ # ConfGroup ........................
+ local.confgroup.attrib = empty
+ confgroup.role.attrib = role.attrib
+ confgroup =
+   element confgroup {
+     confgroup.attlist,
+     (confdates | conftitle | confnum | address | confsponsor)*
+   }
+ # end of confgroup.element
+ confgroup.attlist &=
+   common.attrib, confgroup.role.attrib, local.confgroup.attrib
+ # end of confgroup.attlist
+ # end of confgroup.module
+ local.confdates.attrib = empty
+ confdates.role.attrib = role.attrib
+ confdates = element confdates { confdates.attlist, docinfo.char.mix* }
+ # end of confdates.element
+ confdates.attlist &=
+   common.attrib, confdates.role.attrib, local.confdates.attrib
+ # end of confdates.attlist
+ # end of confdates.module
+ local.conftitle.attrib = empty
+ conftitle.role.attrib = role.attrib
+ conftitle = element conftitle { conftitle.attlist, docinfo.char.mix* }
+ # end of conftitle.element
+ conftitle.attlist &=
+   common.attrib, conftitle.role.attrib, local.conftitle.attrib
+ # end of conftitle.attlist
+ # end of conftitle.module
+ local.confnum.attrib = empty
+ confnum.role.attrib = role.attrib
+ confnum = element confnum { confnum.attlist, docinfo.char.mix* }
+ # end of confnum.element
+ confnum.attlist &=
+   common.attrib, confnum.role.attrib, local.confnum.attrib
+ # end of confnum.attlist
+ # end of confnum.module
+ #  Address (defined elsewhere in this section)
+ local.confsponsor.attrib = empty
+ confsponsor.role.attrib = role.attrib
+ confsponsor =
+   element confsponsor { confsponsor.attlist, docinfo.char.mix* }
+ # end of confsponsor.element
+ confsponsor.attlist &=
+   common.attrib, confsponsor.role.attrib, local.confsponsor.attrib
+ # end of confsponsor.attlist
+ # end of confsponsor.module
+ # end of confgroup.content.module
+ # ContractNum ......................
+ local.contractnum.attrib = empty
+ contractnum.role.attrib = role.attrib
+ contractnum =
+   element contractnum { contractnum.attlist, docinfo.char.mix* }
+ # end of contractnum.element
+ contractnum.attlist &=
+   common.attrib, contractnum.role.attrib, local.contractnum.attrib
+ # end of contractnum.attlist
+ # end of contractnum.module
+ # ContractSponsor ..................
+ local.contractsponsor.attrib = empty
+ contractsponsor.role.attrib = role.attrib
+ contractsponsor =
+   element contractsponsor { contractsponsor.attlist, docinfo.char.mix* }
+ # end of contractsponsor.element
+ contractsponsor.attlist &=
+   common.attrib,
+   contractsponsor.role.attrib,
+   local.contractsponsor.attrib
+ # end of contractsponsor.attlist
+ # end of contractsponsor.module
+ # Copyright ........................
+ local.copyright.attrib = empty
+ copyright.role.attrib = role.attrib
+ copyright = element copyright { copyright.attlist, year+, holder* }
+ # end of copyright.element
+ copyright.attlist &=
+   common.attrib, copyright.role.attrib, local.copyright.attrib
+ # end of copyright.attlist
+ # end of copyright.module
+ local.year.attrib = empty
+ year.role.attrib = role.attrib
+ year = element year { year.attlist, docinfo.char.mix* }
+ # end of year.element
+ year.attlist &= common.attrib, year.role.attrib, local.year.attrib
+ # end of year.attlist
+ # end of year.module
+ local.holder.attrib = empty
+ holder.role.attrib = role.attrib
+ holder = element holder { holder.attlist, docinfo.char.mix* }
+ # end of holder.element
+ holder.attlist &= common.attrib, holder.role.attrib, local.holder.attrib
+ # end of holder.attlist
+ # end of holder.module
+ # end of copyright.content.module
+ # CorpAuthor .......................
+ local.corpauthor.attrib = empty
+ corpauthor.role.attrib = role.attrib
+ corpauthor =
+   element corpauthor { corpauthor.attlist, docinfo.char.mix* }
+ # end of corpauthor.element
+ corpauthor.attlist &=
+   common.attrib, corpauthor.role.attrib, local.corpauthor.attrib
+ # end of corpauthor.attlist
+ # end of corpauthor.module
+ # CorpName .........................
+ local.corpname.attrib = empty
+ corpname = element corpname { corpname.attlist, docinfo.char.mix* }
+ # end of corpname.element
+ corpname.role.attrib = role.attrib
+ corpname.attlist &=
+   common.attrib, corpname.role.attrib, local.corpname.attrib
+ # end of corpname.attlist
+ # end of corpname.module
+ # Date .............................
+ local.date.attrib = empty
+ date.role.attrib = role.attrib
+ date = element date { date.attlist, docinfo.char.mix* }
+ # end of date.element
+ date.attlist &= common.attrib, date.role.attrib, local.date.attrib
+ # end of date.attlist
+ # end of date.module
+ # Edition ..........................
+ local.edition.attrib = empty
+ edition.role.attrib = role.attrib
+ edition = element edition { edition.attlist, docinfo.char.mix* }
+ # end of edition.element
+ edition.attlist &=
+   common.attrib, edition.role.attrib, local.edition.attrib
+ # end of edition.attlist
+ # end of edition.module
+ # Editor ...........................
+ local.editor.attrib = empty
+ editor.role.attrib = role.attrib
+ editor =
+   element editor {
+     editor.attlist,
+     (personname | person.ident.mix+),
+     (personblurb | email | address)*
+   }
+ # end of editor.element
+ editor.attlist &= common.attrib, editor.role.attrib, local.editor.attrib
+ # end of editor.attlist
+ # (see "Personal identity elements" for %person.ident.mix;)
+ # end of editor.module
+ # ISBN .............................
+ local.isbn.attrib = empty
+ isbn.role.attrib = role.attrib
+ isbn = element isbn { isbn.attlist, docinfo.char.mix* }
+ # end of isbn.element
+ isbn.attlist &= common.attrib, isbn.role.attrib, local.isbn.attrib
+ # end of isbn.attlist
+ # end of isbn.module
+ # ISSN .............................
+ local.issn.attrib = empty
+ issn.role.attrib = role.attrib
+ issn = element issn { issn.attlist, docinfo.char.mix* }
+ # end of issn.element
+ issn.attlist &= common.attrib, issn.role.attrib, local.issn.attrib
+ # end of issn.attlist
+ # end of issn.module
+ # BiblioId .................
+ biblio.class.attrib =
+   attribute class {
+     "uri"
+     | "doi"
+     | "isbn"
+     | "issn"
+     | "libraryofcongress"
+     | "pubnumber"
+     | "other"
+   }?,
+   attribute otherclass { text }?
+ local.biblioid.attrib = empty
+ biblioid.role.attrib = role.attrib
+ biblioid = element biblioid { biblioid.attlist, docinfo.char.mix* }
+ # end of biblioid.element
+ biblioid.attlist &=
+   biblio.class.attrib,
+   common.attrib,
+   biblioid.role.attrib,
+   local.biblioid.attrib
+ # end of biblioid.attlist
+ # end of biblioid.module
+ # CiteBiblioId .................
+ local.citebiblioid.attrib = empty
+ citebiblioid.role.attrib = role.attrib
+ citebiblioid =
+   element citebiblioid { citebiblioid.attlist, docinfo.char.mix* }
+ # end of citebiblioid.element
+ citebiblioid.attlist &=
+   biblio.class.attrib,
+   common.attrib,
+   citebiblioid.role.attrib,
+   local.citebiblioid.attrib
+ # end of citebiblioid.attlist
+ # end of citebiblioid.module
+ # BiblioSource .................
+ local.bibliosource.attrib = empty
+ bibliosource.role.attrib = role.attrib
+ bibliosource =
+   element bibliosource { bibliosource.attlist, docinfo.char.mix* }
+ # end of bibliosource.element
+ bibliosource.attlist &=
+   biblio.class.attrib,
+   common.attrib,
+   bibliosource.role.attrib,
+   local.bibliosource.attrib
+ # end of bibliosource.attlist
+ # end of bibliosource.module
+ # BiblioRelation .................
+ local.bibliorelation.attrib = empty
+ local.bibliorelation.types = notAllowed
+ bibliorelation.type.attrib =
+   attribute type {
+     "isversionof"
+     | "hasversion"
+     | "isreplacedby"
+     | "replaces"
+     | "isrequiredby"
+     | "requires"
+     | "ispartof"
+     | "haspart"
+     | "isreferencedby"
+     | "references"
+     | "isformatof"
+     | "hasformat"
+     | "othertype"
+     | local.bibliorelation.types
+   }?,
+   attribute othertype { text }?
+ bibliorelation.role.attrib = role.attrib
+ bibliorelation =
+   element bibliorelation { bibliorelation.attlist, docinfo.char.mix* }
+ # end of bibliorelation.element
+ bibliorelation.attlist &=
+   biblio.class.attrib,
+   bibliorelation.type.attrib,
+   common.attrib,
+   bibliorelation.role.attrib,
+   local.bibliorelation.attrib
+ # end of bibliorelation.attlist
+ # end of bibliorelation.module
+ # BiblioCoverage .................
+ local.bibliocoverage.attrib = empty
+ bibliocoverage.role.attrib = role.attrib
+ bibliocoverage =
+   element bibliocoverage { bibliocoverage.attlist, docinfo.char.mix* }
+ # end of bibliocoverage.element
+ bibliocoverage.attlist &=
+   attribute spatial {
+     "dcmipoint" | "iso3166" | "dcmibox" | "tgn" | "otherspatial"
+   }?,
+   attribute otherspatial { text }?,
+   attribute temporal { "dcmiperiod" | "w3c-dtf" | "othertemporal" }?,
+   attribute othertemporal { text }?,
+   common.attrib,
+   bibliocoverage.role.attrib,
+   local.bibliocoverage.attrib
+ # end of bibliocoverage.attlist
+ # end of bibliocoverage.module
+ # InvPartNumber ....................
+ local.invpartnumber.attrib = empty
+ invpartnumber.role.attrib = role.attrib
+ invpartnumber =
+   element invpartnumber { invpartnumber.attlist, docinfo.char.mix* }
+ # end of invpartnumber.element
+ invpartnumber.attlist &=
+   common.attrib, invpartnumber.role.attrib, local.invpartnumber.attrib
+ # end of invpartnumber.attlist
+ # end of invpartnumber.module
+ # IssueNum .........................
+ local.issuenum.attrib = empty
+ issuenum.role.attrib = role.attrib
+ issuenum = element issuenum { issuenum.attlist, docinfo.char.mix* }
+ # end of issuenum.element
+ issuenum.attlist &=
+   common.attrib, issuenum.role.attrib, local.issuenum.attrib
+ # end of issuenum.attlist
+ # end of issuenum.module
+ # LegalNotice ......................
+ local.legalnotice.attrib = empty
+ legalnotice.role.attrib = role.attrib
+ legalnotice =
+   element legalnotice {
+     legalnotice.attlist, blockinfo?, title?, legalnotice.mix+
+   }
+ # end of legalnotice.element
+ legalnotice.attlist &=
+   common.attrib, legalnotice.role.attrib, local.legalnotice.attrib
+ # end of legalnotice.attlist
+ # end of legalnotice.module
+ # ModeSpec .........................
+ local.modespec.attrib = empty
+ modespec.role.attrib = role.attrib
+ modespec = element modespec { modespec.attlist, docinfo.char.mix* }
+ # end of modespec.element
+ # Application: Type of action required for completion
+ # of the links to which the ModeSpec is relevant (e.g.,
+ # retrieval query)
+ modespec.attlist &=
+   attribute application { notation.class }?,
+   common.attrib,
+   modespec.role.attrib,
+   local.modespec.attrib
+ # end of modespec.attlist
+ # end of modespec.module
+ # OrgName ..........................
+ local.orgname.attrib = empty
+ orgname.role.attrib = role.attrib
+ orgname = element orgname { orgname.attlist, docinfo.char.mix* }
+ # end of orgname.element
+ orgname.attlist &=
+   common.attrib,
+   attribute class {
+     "corporation" | "nonprofit" | "consortium" | "informal" | "other"
+   }?,
+   attribute otherclass { text }?,
+   orgname.role.attrib,
+   local.orgname.attrib
+ # end of orgname.attlist
+ # end of orgname.module
+ # OtherCredit ......................
+ local.othercredit.attrib = empty
+ othercredit.role.attrib = role.attrib
+ othercredit =
+   element othercredit {
+     othercredit.attlist,
+     (personname | person.ident.mix+),
+     (personblurb | email | address)*
+   }
+ # end of othercredit.element
+ othercredit.attlist &=
+   common.attrib, othercredit.role.attrib, local.othercredit.attrib
+ # end of othercredit.attlist
+ # (see "Personal identity elements" for %person.ident.mix;)
+ # end of othercredit.module
+ # PageNums .........................
+ local.pagenums.attrib = empty
+ pagenums.role.attrib = role.attrib
+ pagenums = element pagenums { pagenums.attlist, docinfo.char.mix* }
+ # end of pagenums.element
+ pagenums.attlist &=
+   common.attrib, pagenums.role.attrib, local.pagenums.attrib
+ # end of pagenums.attlist
+ # end of pagenums.module
+ # Personal identity elements .......
+ # These elements are used only within Author, Editor, and
+ # OtherCredit.
+ local.contrib.attrib = empty
+ contrib.role.attrib = role.attrib
+ contrib = element contrib { contrib.attlist, docinfo.char.mix* }
+ # end of contrib.element
+ contrib.attlist &=
+   common.attrib, contrib.role.attrib, local.contrib.attrib
+ # end of contrib.attlist
+ # end of contrib.module
+ local.firstname.attrib = empty
+ firstname.role.attrib = role.attrib
+ firstname = element firstname { firstname.attlist, docinfo.char.mix* }
+ # end of firstname.element
+ firstname.attlist &=
+   common.attrib, firstname.role.attrib, local.firstname.attrib
+ # end of firstname.attlist
+ # end of firstname.module
+ local.honorific.attrib = empty
+ honorific.role.attrib = role.attrib
+ honorific = element honorific { honorific.attlist, docinfo.char.mix* }
+ # end of honorific.element
+ honorific.attlist &=
+   common.attrib, honorific.role.attrib, local.honorific.attrib
+ # end of honorific.attlist
+ # end of honorific.module
+ local.lineage.attrib = empty
+ lineage.role.attrib = role.attrib
+ lineage = element lineage { lineage.attlist, docinfo.char.mix* }
+ # end of lineage.element
+ lineage.attlist &=
+   common.attrib, lineage.role.attrib, local.lineage.attrib
+ # end of lineage.attlist
+ # end of lineage.module
+ local.othername.attrib = empty
+ othername.role.attrib = role.attrib
+ othername = element othername { othername.attlist, docinfo.char.mix* }
+ # end of othername.element
+ othername.attlist &=
+   common.attrib, othername.role.attrib, local.othername.attrib
+ # end of othername.attlist
+ # end of othername.module
+ local.surname.attrib = empty
+ surname.role.attrib = role.attrib
+ surname = element surname { surname.attlist, docinfo.char.mix* }
+ # end of surname.element
+ surname.attlist &=
+   common.attrib, surname.role.attrib, local.surname.attrib
+ # end of surname.attlist
+ # end of surname.module
+ # end of person.ident.module
+ # PrintHistory .....................
+ local.printhistory.attrib = empty
+ printhistory.role.attrib = role.attrib
+ printhistory =
+   element printhistory { printhistory.attlist, para.class+ }
+ # end of printhistory.element
+ printhistory.attlist &=
+   common.attrib, printhistory.role.attrib, local.printhistory.attrib
+ # end of printhistory.attlist
+ # end of printhistory.module
+ # ProductName ......................
+ local.productname.attrib = empty
+ productname.role.attrib = role.attrib
+ productname =
+   element productname { productname.attlist, para.char.mix* }
+ # end of productname.element
+ # Class: More precisely identifies the item the element names
+ productname.attlist &=
+   [ a:defaultValue = "trade" ]
+   attribute class { "service" | "trade" | "registered" | "copyright" }?,
+   common.attrib,
+   productname.role.attrib,
+   local.productname.attrib
+ # end of productname.attlist
+ # end of productname.module
+ # ProductNumber ....................
+ local.productnumber.attrib = empty
+ productnumber.role.attrib = role.attrib
+ productnumber =
+   element productnumber { productnumber.attlist, docinfo.char.mix* }
+ # end of productnumber.element
+ productnumber.attlist &=
+   common.attrib, productnumber.role.attrib, local.productnumber.attrib
+ # end of productnumber.attlist
+ # end of productnumber.module
+ # PubDate ..........................
+ local.pubdate.attrib = empty
+ pubdate.role.attrib = role.attrib
+ pubdate = element pubdate { pubdate.attlist, docinfo.char.mix* }
+ # end of pubdate.element
+ pubdate.attlist &=
+   common.attrib, pubdate.role.attrib, local.pubdate.attrib
+ # end of pubdate.attlist
+ # end of pubdate.module
+ # Publisher ........................
+ local.publisher.attrib = empty
+ publisher.role.attrib = role.attrib
+ publisher =
+   element publisher { publisher.attlist, publishername, address* }
+ # end of publisher.element
+ publisher.attlist &=
+   common.attrib, publisher.role.attrib, local.publisher.attrib
+ # end of publisher.attlist
+ # end of publisher.module
+ local.publishername.attrib = empty
+ publishername.role.attrib = role.attrib
+ publishername =
+   element publishername { publishername.attlist, docinfo.char.mix* }
+ # end of publishername.element
+ publishername.attlist &=
+   common.attrib, publishername.role.attrib, local.publishername.attrib
+ # end of publishername.attlist
+ # end of publishername.module
+ #  Address (defined elsewhere in this section)
+ # end of publisher.content.module
+ # PubsNumber .......................
+ local.pubsnumber.attrib = empty
+ pubsnumber.role.attrib = role.attrib
+ pubsnumber =
+   element pubsnumber { pubsnumber.attlist, docinfo.char.mix* }
+ # end of pubsnumber.element
+ pubsnumber.attlist &=
+   common.attrib, pubsnumber.role.attrib, local.pubsnumber.attrib
+ # end of pubsnumber.attlist
+ # end of pubsnumber.module
+ # ReleaseInfo ......................
+ local.releaseinfo.attrib = empty
+ releaseinfo.role.attrib = role.attrib
+ releaseinfo =
+   element releaseinfo { releaseinfo.attlist, docinfo.char.mix* }
+ # end of releaseinfo.element
+ releaseinfo.attlist &=
+   common.attrib, releaseinfo.role.attrib, local.releaseinfo.attrib
+ # end of releaseinfo.attlist
+ # end of releaseinfo.module
+ # RevHistory .......................
+ local.revhistory.attrib = empty
+ revhistory.role.attrib = role.attrib
+ revhistory = element revhistory { revhistory.attlist, revision+ }
+ # end of revhistory.element
+ revhistory.attlist &=
+   common.attrib, revhistory.role.attrib, local.revhistory.attrib
+ # end of revhistory.attlist
+ # end of revhistory.module
+ local.revision.attrib = empty
+ revision.role.attrib = role.attrib
+ revision =
+   element revision {
+     revision.attlist,
+     revnumber,
+     date,
+     authorinitials*,
+     (revremark | revdescription)?
+   }
+ # end of revision.element
+ revision.attlist &=
+   common.attrib, revision.role.attrib, local.revision.attrib
+ # end of revision.attlist
+ # end of revision.module
+ local.revnumber.attrib = empty
+ revnumber.role.attrib = role.attrib
+ revnumber = element revnumber { revnumber.attlist, docinfo.char.mix* }
+ # end of revnumber.element
+ revnumber.attlist &=
+   common.attrib, revnumber.role.attrib, local.revnumber.attrib
+ # end of revnumber.attlist
+ # end of revnumber.module
+ #  Date (defined elsewhere in this section)
+ #  AuthorInitials (defined elsewhere in this section)
+ local.revremark.attrib = empty
+ revremark.role.attrib = role.attrib
+ revremark = element revremark { revremark.attlist, docinfo.char.mix* }
+ # end of revremark.element
+ revremark.attlist &=
+   common.attrib, revremark.role.attrib, local.revremark.attrib
+ # end of revremark.attlist
+ # end of revremark.module
+ local.revdescription.attrib = empty
+ revdescription.role.attrib = role.attrib
+ revdescription =
+   element revdescription { revdescription.attlist, revdescription.mix+ }
+ # end of revdescription.element
+ revdescription.attlist &=
+   common.attrib, revdescription.role.attrib, local.revdescription.attrib
+ # end of revdescription.attlist
+ # end of revdescription.module
+ # end of revhistory.content.module
+ # SeriesVolNums ....................
+ local.seriesvolnums.attrib = empty
+ seriesvolnums.role.attrib = role.attrib
+ seriesvolnums =
+   element seriesvolnums { seriesvolnums.attlist, docinfo.char.mix* }
+ # end of seriesvolnums.element
+ seriesvolnums.attlist &=
+   common.attrib, seriesvolnums.role.attrib, local.seriesvolnums.attrib
+ # end of seriesvolnums.attlist
+ # end of seriesvolnums.module
+ # VolumeNum ........................
+ local.volumenum.attrib = empty
+ volumenum.role.attrib = role.attrib
+ volumenum = element volumenum { volumenum.attlist, docinfo.char.mix* }
+ # end of volumenum.element
+ volumenum.attlist &=
+   common.attrib, volumenum.role.attrib, local.volumenum.attrib
+ # end of volumenum.attlist
+ # end of volumenum.module
+ # ..................................
+ # end of docinfo.content.module
+ # ......................................................................
+ # Inline, link, and ubiquitous elements ................................
+ # Technical and computer terms .........................................
+ local.accel.attrib = empty
+ accel.role.attrib = role.attrib
+ accel = element accel { accel.attlist, smallcptr.char.mix* }
+ # end of accel.element
+ accel.attlist &= common.attrib, accel.role.attrib, local.accel.attrib
+ # end of accel.attlist
+ # end of accel.module
+ local.action.attrib = empty
+ action.role.attrib = role.attrib
+ action = element action { action.attlist, cptr.char.mix* }
+ # end of action.element
+ action.attlist &=
+   moreinfo.attrib,
+   common.attrib,
+   action.role.attrib,
+   local.action.attrib
+ # end of action.attlist
+ # end of action.module
+ local.application.attrib = empty
+ application.role.attrib = role.attrib
+ application =
+   element application { application.attlist, para.char.mix* }
+ # end of application.element
+ application.attlist &=
+   attribute class { "hardware" | "software" }?,
+   moreinfo.attrib,
+   common.attrib,
+   application.role.attrib,
+   local.application.attrib
+ # end of application.attlist
+ # end of application.module
+ local.classname.attrib = empty
+ classname.role.attrib = role.attrib
+ classname = element classname { classname.attlist, smallcptr.char.mix* }
+ # end of classname.element
+ classname.attlist &=
+   common.attrib, classname.role.attrib, local.classname.attrib
+ # end of classname.attlist
+ # end of classname.module
+ local.co.attrib = empty
+ # CO is a callout area of the LineColumn unit type (a single character
+ # position); the position is directly indicated by the location of CO.
+ co.role.attrib = role.attrib
+ co = element co { co.attlist, empty }
+ # end of co.element
+ # bug number/symbol override or initialization
+ # to any related information
+ co.attlist &=
+   label.attrib,
+   linkends.attrib,
+   idreq.common.attrib,
+   co.role.attrib,
+   local.co.attrib
+ # end of co.attlist
+ # end of co.module
+ local.coref.attrib = empty
+ # COREF is a reference to a CO
+ coref.role.attrib = role.attrib
+ coref = element coref { coref.attlist, empty }
+ # end of coref.element
+ # bug number/symbol override or initialization
+ # to any related information
+ coref.attlist &=
+   label.attrib,
+   linkendreq.attrib,
+   common.attrib,
+   coref.role.attrib,
+   local.coref.attrib
+ # end of coref.attlist
+ # end of coref.module
+ local.command.attrib = empty
+ command.role.attrib = role.attrib
+ command = element command { command.attlist, cptr.char.mix* }
+ # end of command.element
+ command.attlist &=
+   moreinfo.attrib,
+   common.attrib,
+   command.role.attrib,
+   local.command.attrib
+ # end of command.attlist
+ # end of command.module
+ local.computeroutput.attrib = empty
+ computeroutput.role.attrib = role.attrib
+ computeroutput =
+   element computeroutput {
+     computeroutput.attlist, (cptr.char.mix | co)*
+   }
+ # end of computeroutput.element
+ computeroutput.attlist &=
+   moreinfo.attrib,
+   common.attrib,
+   computeroutput.role.attrib,
+   local.computeroutput.attrib
+ # end of computeroutput.attlist
+ # end of computeroutput.module
+ local.database.attrib = empty
+ database.role.attrib = role.attrib
+ database = element database { database.attlist, cptr.char.mix* }
+ # end of database.element
+ # Class: Type of database the element names; no default
+ database.attlist &=
+   attribute class {
+     "name" | "table" | "field" | "key1" | "key2" | "record"
+   }?,
+   moreinfo.attrib,
+   common.attrib,
+   database.role.attrib,
+   local.database.attrib
+ # end of database.attlist
+ # end of database.module
+ local.email.attrib = empty
+ email.role.attrib = role.attrib
+ email = element email { email.attlist, docinfo.char.mix* }
+ # end of email.element
+ email.attlist &= common.attrib, email.role.attrib, local.email.attrib
+ # end of email.attlist
+ # end of email.module
+ local.envar.attrib = empty
+ envar.role.attrib = role.attrib
+ envar = element envar { envar.attlist, smallcptr.char.mix* }
+ # end of envar.element
+ envar.attlist &= common.attrib, envar.role.attrib, local.envar.attrib
+ # end of envar.attlist
+ # end of envar.module
+ local.errorcode.attrib = empty
+ errorcode.role.attrib = role.attrib
+ errorcode = element errorcode { errorcode.attlist, smallcptr.char.mix* }
+ # end of errorcode.element
+ errorcode.attlist &=
+   moreinfo.attrib,
+   common.attrib,
+   errorcode.role.attrib,
+   local.errorcode.attrib
+ # end of errorcode.attlist
+ # end of errorcode.module
+ local.errorname.attrib = empty
+ errorname.role.attrib = role.attrib
+ errorname = element errorname { errorname.attlist, smallcptr.char.mix* }
+ # end of errorname.element
+ errorname.attlist &=
+   common.attrib, errorname.role.attrib, local.errorname.attrib
+ # end of errorname.attlist
+ # end of errorname.module
+ local.errortext.attrib = empty
+ errortext.role.attrib = role.attrib
+ errortext = element errortext { errortext.attlist, smallcptr.char.mix* }
+ # end of errortext.element
+ errortext.attlist &=
+   common.attrib, errortext.role.attrib, local.errortext.attrib
+ # end of errortext.attlist
+ # end of errortext.module
+ local.errortype.attrib = empty
+ errortype.role.attrib = role.attrib
+ errortype = element errortype { errortype.attlist, smallcptr.char.mix* }
+ # end of errortype.element
+ errortype.attlist &=
+   common.attrib, errortype.role.attrib, local.errortype.attrib
+ # end of errortype.attlist
+ # end of errortype.module
+ local.filename.attrib = empty
+ filename.role.attrib = role.attrib
+ filename = element filename { filename.attlist, cptr.char.mix* }
+ # end of filename.element
+ # Class: Type of filename the element names; no default
+ # Path: Search path (possibly system-specific) in which
+ # file can be found
+ filename.attlist &=
+   attribute class {
+     "headerfile"
+     | "partition"
+     | "devicefile"
+     | "libraryfile"
+     | "directory"
+     | "extension"
+     | "symlink"
+   }?,
+   attribute path { text }?,
+   moreinfo.attrib,
+   common.attrib,
+   filename.role.attrib,
+   local.filename.attrib
+ # end of filename.attlist
+ # end of filename.module
+ local.function.attrib = empty
+ function.role.attrib = role.attrib
+ function = element function { function.attlist, cptr.char.mix* }
+ # end of function.element
+ function.attlist &=
+   moreinfo.attrib,
+   common.attrib,
+   function.role.attrib,
+   local.function.attrib
+ # end of function.attlist
+ # end of function.module
+ local.guibutton.attrib = empty
+ guibutton.role.attrib = role.attrib
+ guibutton =
+   element guibutton { guibutton.attlist, (smallcptr.char.mix | accel)* }
+ # end of guibutton.element
+ guibutton.attlist &=
+   moreinfo.attrib,
+   common.attrib,
+   guibutton.role.attrib,
+   local.guibutton.attrib
+ # end of guibutton.attlist
+ # end of guibutton.module
+ local.guiicon.attrib = empty
+ guiicon.role.attrib = role.attrib
+ guiicon =
+   element guiicon { guiicon.attlist, (smallcptr.char.mix | accel)* }
+ # end of guiicon.element
+ guiicon.attlist &=
+   moreinfo.attrib,
+   common.attrib,
+   guiicon.role.attrib,
+   local.guiicon.attrib
+ # end of guiicon.attlist
+ # end of guiicon.module
+ local.guilabel.attrib = empty
+ guilabel.role.attrib = role.attrib
+ guilabel =
+   element guilabel { guilabel.attlist, (smallcptr.char.mix | accel)* }
+ # end of guilabel.element
+ guilabel.attlist &=
+   moreinfo.attrib,
+   common.attrib,
+   guilabel.role.attrib,
+   local.guilabel.attrib
+ # end of guilabel.attlist
+ # end of guilabel.module
+ local.guimenu.attrib = empty
+ guimenu.role.attrib = role.attrib
+ guimenu =
+   element guimenu { guimenu.attlist, (smallcptr.char.mix | accel)* }
+ # end of guimenu.element
+ guimenu.attlist &=
+   moreinfo.attrib,
+   common.attrib,
+   guimenu.role.attrib,
+   local.guimenu.attrib
+ # end of guimenu.attlist
+ # end of guimenu.module
+ local.guimenuitem.attrib = empty
+ guimenuitem.role.attrib = role.attrib
+ guimenuitem =
+   element guimenuitem {
+     guimenuitem.attlist, (smallcptr.char.mix | accel)*
+   }
+ # end of guimenuitem.element
+ guimenuitem.attlist &=
+   moreinfo.attrib,
+   common.attrib,
+   guimenuitem.role.attrib,
+   local.guimenuitem.attrib
+ # end of guimenuitem.attlist
+ # end of guimenuitem.module
+ local.guisubmenu.attrib = empty
+ guisubmenu.role.attrib = role.attrib
+ guisubmenu =
+   element guisubmenu {
+     guisubmenu.attlist, (smallcptr.char.mix | accel)*
+   }
+ # end of guisubmenu.element
+ guisubmenu.attlist &=
+   moreinfo.attrib,
+   common.attrib,
+   guisubmenu.role.attrib,
+   local.guisubmenu.attrib
+ # end of guisubmenu.attlist
+ # end of guisubmenu.module
+ local.hardware.attrib = empty
+ hardware.role.attrib = role.attrib
+ hardware = element hardware { hardware.attlist, cptr.char.mix* }
+ # end of hardware.element
+ hardware.attlist &=
+   moreinfo.attrib,
+   common.attrib,
+   hardware.role.attrib,
+   local.hardware.attrib
+ # end of hardware.attlist
+ # end of hardware.module
+ local.interface.attrib = empty
+ interface.role.attrib = role.attrib
+ interface =
+   element interface { interface.attlist, (smallcptr.char.mix | accel)* }
+ # end of interface.element
+ # Class: Type of the Interface item; no default
+ interface.attlist &=
+   moreinfo.attrib,
+   common.attrib,
+   interface.role.attrib,
+   local.interface.attrib
+ # end of interface.attlist
+ # end of interface.module
+ local.keycap.attrib = empty
+ keycap.role.attrib = role.attrib
+ keycap = element keycap { keycap.attlist, cptr.char.mix* }
+ # end of keycap.element
+ keycap.attlist &=
+   moreinfo.attrib,
+   common.attrib,
+   keycap.role.attrib,
+   local.keycap.attrib
+ # end of keycap.attlist
+ # end of keycap.module
+ local.keycode.attrib = empty
+ keycode.role.attrib = role.attrib
+ keycode = element keycode { keycode.attlist, smallcptr.char.mix* }
+ # end of keycode.element
+ keycode.attlist &=
+   common.attrib, keycode.role.attrib, local.keycode.attrib
+ # end of keycode.attlist
+ # end of keycode.module
+ local.keycombo.attrib = empty
+ keycombo.role.attrib = role.attrib
+ keycombo =
+   element keycombo {
+     keycombo.attlist, (keycap | keycombo | keysym | mousebutton)+
+   }
+ # end of keycombo.element
+ keycombo.attlist &=
+   keyaction.attrib,
+   moreinfo.attrib,
+   common.attrib,
+   keycombo.role.attrib,
+   local.keycombo.attrib
+ # end of keycombo.attlist
+ # end of keycombo.module
+ local.keysym.attrib = empty
+ keysysm.role.attrib = role.attrib
+ keysym = element keysym { keysym.attlist, smallcptr.char.mix* }
+ # end of keysym.element
+ keysym.attlist &=
+   common.attrib, keysysm.role.attrib, local.keysym.attrib
+ # end of keysym.attlist
+ # end of keysym.module
+ local.lineannotation.attrib = empty
+ lineannotation.role.attrib = role.attrib
+ lineannotation =
+   element lineannotation { lineannotation.attlist, para.char.mix* }
+ # end of lineannotation.element
+ lineannotation.attlist &=
+   common.attrib, lineannotation.role.attrib, local.lineannotation.attrib
+ # end of lineannotation.attlist
+ # end of lineannotation.module
+ local.literal.attrib = empty
+ literal.role.attrib = role.attrib
+ literal = element literal { literal.attlist, cptr.char.mix* }
+ # end of literal.element
+ literal.attlist &=
+   moreinfo.attrib,
+   common.attrib,
+   literal.role.attrib,
+   local.literal.attrib
+ # end of literal.attlist
+ # end of literal.module
+ local.constant.attrib = empty
+ constant.role.attrib = role.attrib
+ constant = element constant { constant.attlist, smallcptr.char.mix* }
+ # end of constant.element
+ constant.attlist &=
+   attribute class { "limit" }?,
+   common.attrib,
+   constant.role.attrib,
+   local.constant.attrib
+ # end of constant.attlist
+ # end of constant.module
+ local.varname.attrib = empty
+ varname.role.attrib = role.attrib
+ varname = element varname { varname.attlist, smallcptr.char.mix* }
+ # end of varname.element
+ varname.attlist &=
+   common.attrib, varname.role.attrib, local.varname.attrib
+ # end of varname.attlist
+ # end of varname.module
+ local.markup.attrib = empty
+ markup.role.attrib = role.attrib
+ markup = element markup { markup.attlist, smallcptr.char.mix* }
+ # end of markup.element
+ markup.attlist &= common.attrib, markup.role.attrib, local.markup.attrib
+ # end of markup.attlist
+ # end of markup.module
+ local.medialabel.attrib = empty
+ medialabel.role.attrib = role.attrib
+ medialabel =
+   element medialabel { medialabel.attlist, smallcptr.char.mix* }
+ # end of medialabel.element
+ # Class: Type of medium named by the element; no default
+ medialabel.attlist &=
+   attribute class { "cartridge" | "cdrom" | "disk" | "tape" }?,
+   common.attrib,
+   medialabel.role.attrib,
+   local.medialabel.attrib
+ # end of medialabel.attlist
+ # end of medialabel.module
+ local.menuchoice.attrib = empty
+ menuchoice.role.attrib = role.attrib
+ menuchoice =
+   element menuchoice {
+     menuchoice.attlist,
+     shortcut?,
+     (guibutton
+      | guiicon
+      | guilabel
+      | guimenu
+      | guimenuitem
+      | guisubmenu
+      | interface)+
+   }
+ # end of menuchoice.element
+ menuchoice.attlist &=
+   moreinfo.attrib,
+   common.attrib,
+   menuchoice.role.attrib,
+   local.menuchoice.attrib
+ # end of menuchoice.attlist
+ # end of menuchoice.module
+ # See also KeyCombo
+ local.shortcut.attrib = empty
+ shortcut.role.attrib = role.attrib
+ shortcut =
+   element shortcut {
+     shortcut.attlist, (keycap | keycombo | keysym | mousebutton)+
+   }
+ # end of shortcut.element
+ shortcut.attlist &=
+   keyaction.attrib,
+   moreinfo.attrib,
+   common.attrib,
+   shortcut.role.attrib,
+   local.shortcut.attrib
+ # end of shortcut.attlist
+ # end of shortcut.module
+ # end of menuchoice.content.module
+ local.mousebutton.attrib = empty
+ mousebutton.role.attrib = role.attrib
+ mousebutton =
+   element mousebutton { mousebutton.attlist, smallcptr.char.mix* }
+ # end of mousebutton.element
+ mousebutton.attlist &=
+   moreinfo.attrib,
+   common.attrib,
+   mousebutton.role.attrib,
+   local.mousebutton.attrib
+ # end of mousebutton.attlist
+ # end of mousebutton.module
+ local.msgtext.attrib = empty
+ msgtext.role.attrib = role.attrib
+ msgtext = element msgtext { msgtext.attlist, component.mix+ }
+ # end of msgtext.element
+ msgtext.attlist &=
+   common.attrib, msgtext.role.attrib, local.msgtext.attrib
+ # end of msgtext.attlist
+ # end of msgtext.module
+ local.option.attrib = empty
+ option.role.attrib = role.attrib
+ option = element option { option.attlist, cptr.char.mix* }
+ # end of option.element
+ option.attlist &= common.attrib, option.role.attrib, local.option.attrib
+ # end of option.attlist
+ # end of option.module
+ local.optional.attrib = empty
+ optional.role.attrib = role.attrib
+ optional = element optional { optional.attlist, cptr.char.mix* }
+ # end of optional.element
+ optional.attlist &=
+   common.attrib, optional.role.attrib, local.optional.attrib
+ # end of optional.attlist
+ # end of optional.module
+ local.parameter.attrib = empty
+ parameter.role.attrib = role.attrib
+ parameter = element parameter { parameter.attlist, cptr.char.mix* }
+ # end of parameter.element
+ # Class: Type of the Parameter; no default
+ parameter.attlist &=
+   attribute class { "command" | "function" | "option" }?,
+   moreinfo.attrib,
+   common.attrib,
+   parameter.role.attrib,
+   local.parameter.attrib
+ # end of parameter.attlist
+ # end of parameter.module
+ local.prompt.attrib = empty
+ prompt.role.attrib = role.attrib
+ prompt = element prompt { prompt.attlist, (smallcptr.char.mix | co)* }
+ # end of prompt.element
+ prompt.attlist &=
+   moreinfo.attrib,
+   common.attrib,
+   prompt.role.attrib,
+   local.prompt.attrib
+ # end of prompt.attlist
+ # end of prompt.module
+ local.property.attrib = empty
+ property.role.attrib = role.attrib
+ property = element property { property.attlist, cptr.char.mix* }
+ # end of property.element
+ property.attlist &=
+   moreinfo.attrib,
+   common.attrib,
+   property.role.attrib,
+   local.property.attrib
+ # end of property.attlist
+ # end of property.module
+ local.replaceable.attrib = empty
+ replaceable.role.attrib = role.attrib
+ replaceable =
+   element replaceable {
+     replaceable.attlist,
+     (text
+      | link.char.class
+      | optional
+      | base.char.class
+      | other.char.class
+      | inlinegraphic
+      | inlinemediaobject
+      | co)*
+   }
+ # end of replaceable.element
+ # Class: Type of information the element represents; no
+ # default
+ replaceable.attlist &=
+   attribute class { "command" | "function" | "option" | "parameter" }?,
+   common.attrib,
+   replaceable.role.attrib,
+   local.replaceable.attrib
+ # end of replaceable.attlist
+ # end of replaceable.module
+ local.returnvalue.attrib = empty
+ returnvalue.role.attrib = role.attrib
+ returnvalue =
+   element returnvalue { returnvalue.attlist, smallcptr.char.mix* }
+ # end of returnvalue.element
+ returnvalue.attlist &=
+   common.attrib, returnvalue.role.attrib, local.returnvalue.attrib
+ # end of returnvalue.attlist
+ # end of returnvalue.module
+ local.sgmltag.attrib = empty
+ sgmltag.role.attrib = role.attrib
+ sgmltag = element sgmltag { sgmltag.attlist, smallcptr.char.mix* }
+ # end of sgmltag.element
+ # Class: Type of SGML construct the element names; no default
+ sgmltag.attlist &=
+   attribute class {
+     "attribute"
+     | "attvalue"
+     | "element"
+     | "endtag"
+     | "emptytag"
+     | "genentity"
+     | "numcharref"
+     | "paramentity"
+     | "pi"
+     | "xmlpi"
+     | "starttag"
+     | "sgmlcomment"
+   }?,
+   common.attrib,
+   sgmltag.role.attrib,
+   local.sgmltag.attrib
+ # end of sgmltag.attlist
+ # end of sgmltag.module
+ local.structfield.attrib = empty
+ structfield.role.attrib = role.attrib
+ structfield =
+   element structfield { structfield.attlist, smallcptr.char.mix* }
+ # end of structfield.element
+ structfield.attlist &=
+   common.attrib, structfield.role.attrib, local.structfield.attrib
+ # end of structfield.attlist
+ # end of structfield.module
+ local.structname.attrib = empty
+ structname.role.attrib = role.attrib
+ structname =
+   element structname { structname.attlist, smallcptr.char.mix* }
+ # end of structname.element
+ structname.attlist &=
+   common.attrib, structname.role.attrib, local.structname.attrib
+ # end of structname.attlist
+ # end of structname.module
+ local.symbol.attrib = empty
+ symbol.role.attrib = role.attrib
+ symbol = element symbol { symbol.attlist, smallcptr.char.mix* }
+ # end of symbol.element
+ # Class: Type of symbol; no default
+ symbol.attlist &=
+   attribute class { "limit" }?,
+   common.attrib,
+   symbol.role.attrib,
+   local.symbol.attrib
+ # end of symbol.attlist
+ # end of symbol.module
+ local.systemitem.attrib = empty
+ systemitem.role.attrib = role.attrib
+ systemitem =
+   element systemitem {
+     systemitem.attlist, (cptr.char.mix | acronym | co)*
+   }
+ # end of systemitem.element
+ # Class: Type of system item the element names; no default
+ systemitem.attlist &=
+   attribute class {
+     "constant"
+     | "event"
+     | "eventhandler"
+     | "domainname"
+     | "fqdomainname"
+     | "ipaddress"
+     | "netmask"
+     | "etheraddress"
+     | "groupname"
+     | "library"
+     | "macro"
+     | "osname"
+     | "filesystem"
+     | "resource"
+     | "systemname"
+     | "username"
+     | "newsgroup"
+   }?,
+   moreinfo.attrib,
+   common.attrib,
+   systemitem.role.attrib,
+   local.systemitem.attrib
+ # end of systemitem.attlist
+ # end of systemitem.module
+ local.token.attrib = empty
+ token.role.attrib = role.attrib
+ \token = element token { token.attlist, smallcptr.char.mix* }
+ # end of token.element
+ token.attlist &= common.attrib, token.role.attrib, local.token.attrib
+ # end of token.attlist
+ # end of token.module
+ local.type.attrib = empty
+ type.role.attrib = role.attrib
+ type = element type { type.attlist, smallcptr.char.mix* }
+ # end of type.element
+ type.attlist &= common.attrib, type.role.attrib, local.type.attrib
+ # end of type.attlist
+ # end of type.module
+ local.userinput.attrib = empty
+ userinput.role.attrib = role.attrib
+ userinput =
+   element userinput { userinput.attlist, (cptr.char.mix | co)* }
+ # end of userinput.element
+ userinput.attlist &=
+   moreinfo.attrib,
+   common.attrib,
+   userinput.role.attrib,
+   local.userinput.attrib
+ # end of userinput.attlist
+ # end of userinput.module
+ # General words and phrases ............................................
+ local.abbrev.attrib = empty
+ abbrev.role.attrib = role.attrib
+ abbrev = element abbrev { abbrev.attlist, word.char.mix* }
+ # end of abbrev.element
+ abbrev.attlist &= common.attrib, abbrev.role.attrib, local.abbrev.attrib
+ # end of abbrev.attlist
+ # end of abbrev.module
+ local.acronym.attrib = empty
+ acronym.role.attrib = role.attrib
+ acronym = element acronym { acronym.attlist, word.char.mix* }
+ # end of acronym.element
+ acronym.attlist &=
+   common.attrib, acronym.role.attrib, local.acronym.attrib
+ # end of acronym.attlist
+ # end of acronym.module
+ local.citation.attrib = empty
+ citation.role.attrib = role.attrib
+ citation = element citation { citation.attlist, para.char.mix* }
+ # end of citation.element
+ citation.attlist &=
+   common.attrib, citation.role.attrib, local.citation.attrib
+ # end of citation.attlist
+ # end of citation.module
+ local.citerefentry.attrib = empty
+ citerefentry.role.attrib = role.attrib
+ citerefentry =
+   element citerefentry {
+     citerefentry.attlist, refentrytitle, manvolnum?
+   }
+ # end of citerefentry.element
+ citerefentry.attlist &=
+   common.attrib, citerefentry.role.attrib, local.citerefentry.attrib
+ # end of citerefentry.attlist
+ # end of citerefentry.module
+ local.refentrytitle.attrib = empty
+ refentrytitle.role.attrib = role.attrib
+ refentrytitle =
+   element refentrytitle { refentrytitle.attlist, para.char.mix* }
+ # end of refentrytitle.element
+ refentrytitle.attlist &=
+   common.attrib, refentrytitle.role.attrib, local.refentrytitle.attrib
+ # end of refentrytitle.attlist
+ # end of refentrytitle.module
+ local.manvolnum.attrib = empty
+ namvolnum.role.attrib = role.attrib
+ manvolnum = element manvolnum { manvolnum.attlist, word.char.mix* }
+ # end of manvolnum.element
+ manvolnum.attlist &=
+   common.attrib, namvolnum.role.attrib, local.manvolnum.attrib
+ # end of manvolnum.attlist
+ # end of manvolnum.module
+ local.citetitle.attrib = empty
+ citetitle.role.attrib = role.attrib
+ citetitle = element citetitle { citetitle.attlist, para.char.mix* }
+ # end of citetitle.element
+ # Pubwork: Genre of published work cited; no default
+ citetitle.attlist &=
+   attribute pubwork {
+     "article"
+     | "book"
+     | "chapter"
+     | "part"
+     | "refentry"
+     | "section"
+     | "journal"
+     | "series"
+     | "set"
+     | "manuscript"
+   }?,
+   common.attrib,
+   citetitle.role.attrib,
+   local.citetitle.attrib
+ # end of citetitle.attlist
+ # end of citetitle.module
+ local.emphasis.attrib = empty
+ emphasis.role.attrib = role.attrib
+ emphasis = element emphasis { emphasis.attlist, para.char.mix* }
+ # end of emphasis.element
+ emphasis.attlist &=
+   common.attrib, emphasis.role.attrib, local.emphasis.attrib
+ # end of emphasis.attlist
+ # end of emphasis.module
+ local.firstterm.attrib = empty
+ firstterm.role.attrib = role.attrib
+ firstterm = element firstterm { firstterm.attlist, word.char.mix* }
+ # end of firstterm.element
+ # to GlossEntry or other explanation
+ firstterm.attlist &=
+   linkend.attrib,
+   common.attrib,
+   firstterm.role.attrib,
+   local.firstterm.attrib
+ # end of firstterm.attlist
+ # end of firstterm.module
+ local.foreignphrase.attrib = empty
+ foreignphrase.role.attrib = role.attrib
+ foreignphrase =
+   element foreignphrase { foreignphrase.attlist, para.char.mix* }
+ # end of foreignphrase.element
+ foreignphrase.attlist &=
+   common.attrib, foreignphrase.role.attrib, local.foreignphrase.attrib
+ # end of foreignphrase.attlist
+ # end of foreignphrase.module
+ local.glossterm.attrib = empty
+ glossterm.role.attrib = role.attrib
+ glossterm = element glossterm { glossterm.attlist, para.char.mix* }
+ # end of glossterm.element
+ # to GlossEntry if Glossterm used in text
+ # BaseForm: Provides the form of GlossTerm to be used
+ # for indexing
+ glossterm.attlist &=
+   linkend.attrib,
+   attribute baseform { text }?,
+   common.attrib,
+   glossterm.role.attrib,
+   local.glossterm.attrib
+ # end of glossterm.attlist
+ # end of glossterm.module
+ local.phrase.attrib = empty
+ phrase.role.attrib = role.attrib
+ phrase = element phrase { phrase.attlist, para.char.mix* }
+ # end of phrase.element
+ phrase.attlist &= common.attrib, phrase.role.attrib, local.phrase.attrib
+ # end of phrase.attlist
+ # end of phrase.module
+ local.quote.attrib = empty
+ quote.role.attrib = role.attrib
+ quote = element quote { quote.attlist, para.char.mix* }
+ # end of quote.element
+ quote.attlist &= common.attrib, quote.role.attrib, local.quote.attrib
+ # end of quote.attlist
+ # end of quote.module
+ local.ssscript.attrib = empty
+ ssscript.role.attrib = role.attrib
+ subscript =
+   element subscript {
+     subscript.attlist,
+     (text
+      | link.char.class
+      | emphasis
+      | replaceable
+      | symbol
+      | inlinegraphic
+      | inlinemediaobject
+      | base.char.class
+      | other.char.class)*
+   }
+ # end of subscript.element
+ subscript.attlist &=
+   common.attrib, ssscript.role.attrib, local.ssscript.attrib
+ # end of subscript.attlist
+ superscript =
+   element superscript {
+     superscript.attlist,
+     (text
+      | link.char.class
+      | emphasis
+      | replaceable
+      | symbol
+      | inlinegraphic
+      | inlinemediaobject
+      | base.char.class
+      | other.char.class)*
+   }
+ # end of superscript.element
+ superscript.attlist &=
+   common.attrib, ssscript.role.attrib, local.ssscript.attrib
+ # end of superscript.attlist
+ # end of ssscript.module
+ local.trademark.attrib = empty
+ trademark.role.attrib = role.attrib
+ trademark =
+   element trademark {
+     trademark.attlist,
+     (text
+      | link.char.class
+      | tech.char.class
+      | base.char.class
+      | other.char.class
+      | inlinegraphic
+      | inlinemediaobject
+      | emphasis)*
+   }
+ # end of trademark.element
+ # Class: More precisely identifies the item the element names
+ trademark.attlist &=
+   [ a:defaultValue = "trade" ]
+   attribute class { "service" | "trade" | "registered" | "copyright" }?,
+   common.attrib,
+   trademark.role.attrib,
+   local.trademark.attrib
+ # end of trademark.attlist
+ # end of trademark.module
+ local.wordasword.attrib = empty
+ wordasword.role.attrib = role.attrib
+ wordasword = element wordasword { wordasword.attlist, word.char.mix* }
+ # end of wordasword.element
+ wordasword.attlist &=
+   common.attrib, wordasword.role.attrib, local.wordasword.attrib
+ # end of wordasword.attlist
+ # end of wordasword.module
+ # Links and cross-references ...........................................
+ local.link.attrib = empty
+ link.role.attrib = role.attrib
+ link = element link { link.attlist, para.char.mix* }
+ # end of link.element
+ # Endterm: ID of element containing text that is to be
+ # fetched from elsewhere in the document to appear as
+ # the content of this element
+ # to linked-to object
+ # Type: Freely assignable parameter
+ link.attlist &=
+   attribute endterm { xsd:IDREF }?,
+   linkendreq.attrib,
+   attribute type { text }?,
+   common.attrib,
+   link.role.attrib,
+   local.link.attrib
+ # end of link.attlist
+ # end of link.module
+ local.olink.attrib = empty
+ olink.role.attrib = role.attrib
+ olink = element olink { olink.attlist, para.char.mix* }
+ # end of olink.element
+ # TargetDocEnt: Name of an entity to be the target of the link
+ # LinkMode: ID of a ModeSpec containing instructions for
+ # operating on the entity named by TargetDocEnt
+ # LocalInfo: Information that may be passed to ModeSpec
+ # Type: Freely assignable parameter
+ olink.attlist &=
+   attribute targetdocent { xsd:ENTITY }?,
+   attribute linkmode { xsd:IDREF }?,
+   attribute localinfo { text }?,
+   attribute type { text }?,
+   attribute targetdoc { text }?,
+   attribute targetptr { text }?,
+   common.attrib,
+   olink.role.attrib,
+   local.olink.attrib
+ # end of olink.attlist
+ # end of olink.module
+ local.ulink.attrib = empty
+ ulink.role.attrib = role.attrib
+ ulink = element ulink { ulink.attlist, para.char.mix* }
+ # end of ulink.element
+ # URL: uniform resource locator; the target of the ULink
+ # Type: Freely assignable parameter
+ ulink.attlist &=
+   attribute url { text },
+   attribute type { text }?,
+   common.attrib,
+   ulink.role.attrib,
+   local.ulink.attrib
+ # end of ulink.attlist
+ # end of ulink.module
+ local.footnoteref.attrib = empty
+ footnoteref.role.attrib = role.attrib
+ footnoteref = element footnoteref { footnoteref.attlist, empty }
+ # end of footnoteref.element
+ # to footnote content supplied elsewhere
+ footnoteref.attlist &=
+   linkendreq.attrib,
+   label.attrib,
+   common.attrib,
+   footnoteref.role.attrib,
+   local.footnoteref.attrib
+ # end of footnoteref.attlist
+ # end of footnoteref.module
+ local.xref.attrib = empty
+ xref.role.attrib = role.attrib
+ xref = element xref { xref.attlist, empty }
+ # end of xref.element
+ # Endterm: ID of element containing text that is to be
+ # fetched from elsewhere in the document to appear as
+ # the content of this element
+ # to linked-to object
+ xref.attlist &=
+   attribute endterm { xsd:IDREF }?,
+   linkendreq.attrib,
+   common.attrib,
+   xref.role.attrib,
+   local.xref.attrib
+ # end of xref.attlist
+ # end of xref.module
+ # Ubiquitous elements ..................................................
+ local.anchor.attrib = empty
+ anchor.role.attrib = role.attrib
+ anchor = element anchor { anchor.attlist, empty }
+ # end of anchor.element
+ # required
+ # replaces Lang
+ anchor.attlist &=
+   idreq.attrib,
+   pagenum.attrib,
+   remap.attrib,
+   xreflabel.attrib,
+   revisionflag.attrib,
+   effectivity.attrib,
+   anchor.role.attrib,
+   local.anchor.attrib
+ # end of anchor.attlist
+ # end of anchor.module
+ local.beginpage.attrib = empty
+ beginpage.role.attrib = role.attrib
+ beginpage = element beginpage { beginpage.attlist, empty }
+ # end of beginpage.element
+ # PageNum: Number of page that begins at this point
+ beginpage.attlist &=
+   pagenum.attrib,
+   common.attrib,
+   beginpage.role.attrib,
+   local.beginpage.attrib
+ # end of beginpage.attlist
+ # end of beginpage.module
+ # IndexTerms appear in the text flow for generating or linking an
+ # index.
+ local.indexterm.attrib = empty
+ indexterm.role.attrib = role.attrib
+ indexterm =
+   element indexterm {
+     indexterm.attlist,
+     primary?,
+     ((secondary,
+       ((tertiary, (see | seealso+)?)
+        | see
+        | seealso+)?)
+      | see
+      | seealso+)?
+   }
+ # end of indexterm.element
+ # Scope: Indicates which generated indices the IndexTerm
+ # should appear in: Global (whole document set), Local (this
+ # document only), or All (both)
+ # Significance: Whether this IndexTerm is the most pertinent
+ # of its series (Preferred) or not (Normal, the default)
+ # Class: Indicates type of IndexTerm; default is Singular,
+ # or EndOfRange if StartRef is supplied; StartOfRange value
+ # must be supplied explicitly on starts of ranges
+ # StartRef: ID of the IndexTerm that starts the indexing
+ # range ended by this IndexTerm
+ # Zone: IDs of the elements to which the IndexTerm applies,
+ # and indicates that the IndexTerm applies to those entire
+ # elements rather than the point at which the IndexTerm
+ # occurs
+ indexterm.attlist &=
+   pagenum.attrib,
+   attribute scope { "all" | "global" | "local" }?,
+   [ a:defaultValue = "normal" ]
+   attribute significance { "preferred" | "normal" }?,
+   attribute class { "singular" | "startofrange" | "endofrange" }?,
+   attribute startref { xsd:IDREF }?,
+   attribute zone { xsd:IDREFS }?,
+   common.attrib,
+   indexterm.role.attrib,
+   local.indexterm.attrib
+ # end of indexterm.attlist
+ # end of indexterm.module
+ local.primsecter.attrib = empty
+ primsecter.role.attrib = role.attrib
+ primary = element primary { primary.attlist, ndxterm.char.mix* }
+ # end of primary.element
+ # SortAs: Alternate sort string for index sorting, e.g.,
+ # "fourteen" for an element containing "14"
+ primary.attlist &=
+   attribute sortas { text }?,
+   common.attrib,
+   primsecter.role.attrib,
+   local.primsecter.attrib
+ # end of primary.attlist
+ secondary = element secondary { secondary.attlist, ndxterm.char.mix* }
+ # end of secondary.element
+ # SortAs: Alternate sort string for index sorting, e.g.,
+ # "fourteen" for an element containing "14"
+ secondary.attlist &=
+   attribute sortas { text }?,
+   common.attrib,
+   primsecter.role.attrib,
+   local.primsecter.attrib
+ # end of secondary.attlist
+ tertiary = element tertiary { tertiary.attlist, ndxterm.char.mix* }
+ # end of tertiary.element
+ # SortAs: Alternate sort string for index sorting, e.g.,
+ # "fourteen" for an element containing "14"
+ tertiary.attlist &=
+   attribute sortas { text }?,
+   common.attrib,
+   primsecter.role.attrib,
+   local.primsecter.attrib
+ # end of tertiary.attlist
+ # end of primsecter.module
+ local.seeseealso.attrib = empty
+ seeseealso.role.attrib = role.attrib
+ see = element see { see.attlist, ndxterm.char.mix* }
+ # end of see.element
+ see.attlist &=
+   common.attrib, seeseealso.role.attrib, local.seeseealso.attrib
+ # end of see.attlist
+ seealso = element seealso { seealso.attlist, ndxterm.char.mix* }
+ # end of seealso.element
+ seealso.attlist &=
+   common.attrib, seeseealso.role.attrib, local.seeseealso.attrib
+ # end of seealso.attlist
+ # end of seeseealso.module
+ # end of indexterm.content.module
+ # End of DocBook XML information pool module V4.2 ......................
+ # ......................................................................
index 0000000000000000000000000000000000000000,eaa332f86b393ead3c0fe341438ccee4ad72aa11..573e6f934780459cf56f486473419e9613fb36d7
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,356 +1,356 @@@
 -# $Id: xslt.rnc,v 1.2 2003/08/30 08:09:03 jjc Exp $
++# $Id: xslt.rnc,v 1.1 2007/11/23 06:57:47 hexmode Exp $
+ # This was mostly generated from the syntax summary in the XSLT
+ # Recommendation (using XSLT of course).
+ # Issues: this validates extension elements as literal result
+ # elements, which is overly restrictive.
+ namespace local = ""
+ default namespace xsl = "http://www.w3.org/1999/XSL/Transform"
+ start =
+   stylesheet.element
+   | transform.element
+   | literal-result-element-as-stylesheet
+ version = "1.0"
+ top-level-elements.model =
+   (top-level-element.category | top-level-extension)*
+ top-level-extension =
+   element * - (xsl:* | local:*) {
+     grammar {
+       start = any
+       any =
+         (attribute * { text }
+          | text
+          | element * { any })*
+     }
+   }
+ template.model = (instruction.category | literal-result-element | text)*
+ literal-result-element-as-stylesheet =
+   element * - xsl:* {
+     attribute xsl:version { version },
+     literal-result-element-no-version.atts,
+     template.model
+   }
+ literal-result-element =
+   element * - xsl:* { literal-result-element.atts, template.model }
+ literal-result-element.atts =
+   literal-result-element-no-version.atts,
+   attribute xsl:version { version }?
+ literal-result-element-no-version.atts =
+   (attribute * - xsl:* { avt.datatype }
+    | attribute xsl:extension-element-prefixes { prefixes.datatype }
+    | attribute xsl:exclude-result-prefixes { prefixes.datatype }
+    | attribute xsl:use-attribute-sets { qnames.datatype })*
+ top-level-element.category =
+   include.element
+   | strip-space.element
+   | preserve-space.element
+   | template.element
+   | namespace-alias.element
+   | attribute-set.element
+   | variable.element
+   | param.element
+   | key.element
+   | decimal-format.element
+   | output.element
+ instruction.category =
+   apply-templates.element
+   | apply-imports.element
+   | call-template.element
+   | element.element
+   | attribute.element
+   | text.element
+   | processing-instruction.element
+   | comment.element
+   | copy.element
+   | value-of.element
+   | number.element
+   | for-each.element
+   | if.element
+   | choose.element
+   | variable.element
+   | copy-of.element
+   | message.element
+   | fallback.element
+ extension.atts = attribute * - (xsl:* | local:*) { text }*
+ stylesheet.element = element stylesheet { stylesheet.model }
+ transform.element = element transform { stylesheet.model }
+ stylesheet.model =
+   extension.atts,
+   attribute id { xsd:NCName }?,
+   attribute extension-element-prefixes { prefixes.datatype }?,
+   attribute exclude-result-prefixes { prefixes.datatype }?,
+   attribute version { version },
+   (import.element*, top-level-elements.model)
+ include.element =
+   element include {
+     extension.atts,
+     attribute href { xsd:anyURI }
+   }
+ import.element =
+   element import {
+     extension.atts,
+     attribute href { xsd:anyURI }
+   }
+ strip-space.element =
+   element strip-space {
+     extension.atts,
+     attribute elements { wildcards.datatype }
+   }
+ preserve-space.element =
+   element preserve-space {
+     extension.atts,
+     attribute elements { wildcards.datatype }
+   }
+ template.element =
+   element template {
+     extension.atts,
+     attribute match { pattern.datatype }?,
+     attribute name { qname.datatype }?,
+     attribute priority { number.datatype }?,
+     attribute mode { qname.datatype }?,
+     (param.element*, template.model)
+   }
+ apply-templates.element =
+   element apply-templates {
+     extension.atts,
+     attribute select { expression.datatype }?,
+     attribute mode { qname.datatype }?,
+     (sort.element | with-param.element)*
+   }
+ apply-imports.element = element apply-imports { extension.atts }
+ call-template.element =
+   element call-template {
+     extension.atts,
+     attribute name { qname.datatype },
+     with-param.element*
+   }
+ namespace-alias.element =
+   element namespace-alias {
+     extension.atts,
+     attribute stylesheet-prefix { prefix.datatype },
+     attribute result-prefix { prefix.datatype }
+   }
+ element.element =
+   element element {
+     extension.atts,
+     attribute name { qname.datatype | expr-avt.datatype },
+     attribute namespace { xsd:anyURI | brace-avt.datatype }?,
+     attribute use-attribute-sets { qnames.datatype }?,
+     template.model
+   }
+ attribute.element =
+   element attribute {
+     extension.atts,
+     attribute name { qname.datatype | expr-avt.datatype },
+     attribute namespace { xsd:anyURI | brace-avt.datatype }?,
+     template.model
+   }
+ attribute-set.element =
+   element attribute-set {
+     extension.atts,
+     attribute name { qname.datatype },
+     attribute use-attribute-sets { qnames.datatype }?,
+     attribute.element*
+   }
+ text.element =
+   element text {
+     extension.atts,
+     attribute disable-output-escaping {
+       xsd:string "yes" | xsd:string "no"
+     }?,
+     text
+   }
+ processing-instruction.element =
+   element processing-instruction {
+     extension.atts,
+     attribute name { xsd:NCName | expr-avt.datatype },
+     template.model
+   }
+ comment.element = element comment { extension.atts, template.model }
+ copy.element =
+   element copy {
+     extension.atts,
+     attribute use-attribute-sets { qnames.datatype }?,
+     template.model
+   }
+ value-of.element =
+   element value-of {
+     extension.atts,
+     attribute select { expression.datatype },
+     attribute disable-output-escaping {
+       xsd:string "yes" | xsd:string "no"
+     }?
+   }
+ number.element =
+   element number {
+     extension.atts,
+     attribute level {
+       xsd:string "single" | xsd:string "multiple" | xsd:string "any"
+     }?,
+     attribute count { pattern.datatype }?,
+     attribute from { pattern.datatype }?,
+     attribute value { expression.datatype }?,
+     attribute format { avt.datatype }?,
+     attribute lang { xsd:NMTOKEN | expr-avt.datatype }?,
+     attribute letter-value {
+       xsd:string "alphabetic"
+       | xsd:string "traditional"
+       | expr-avt.datatype
+     }?,
+     attribute grouping-separator { char.datatype | expr-avt.datatype }?,
+     attribute grouping-size { number.datatype | expr-avt.datatype }?
+   }
+ for-each.element =
+   element for-each {
+     extension.atts,
+     attribute select { expression.datatype },
+     (sort.element*, template.model)
+   }
+ if.element =
+   element if {
+     extension.atts,
+     attribute test { expression.datatype },
+     template.model
+   }
+ choose.element =
+   element choose { extension.atts, (when.element+, otherwise.element?) }
+ when.element =
+   element when {
+     extension.atts,
+     attribute test { expression.datatype },
+     template.model
+   }
+ otherwise.element = element otherwise { extension.atts, template.model }
+ sort.element =
+   element sort {
+     extension.atts,
+     attribute select { expression.datatype }?,
+     attribute lang { xsd:NMTOKEN | expr-avt.datatype }?,
+     attribute data-type {
+       xsd:string "text"
+       | xsd:string "number"
+       | qname-but-not-ncname.datatype
+       | expr-avt.datatype
+     }?,
+     attribute order {
+       xsd:string "ascending"
+       | xsd:string "descending"
+       | expr-avt.datatype
+     }?,
+     attribute case-order {
+       xsd:string "upper-first"
+       | xsd:string "lower-first"
+       | expr-avt.datatype
+     }?
+   }
+ variable.element =
+   element variable {
+     extension.atts,
+     attribute name { qname.datatype },
+     (attribute select { expression.datatype }
+      | template.model)
+   }
+ param.element =
+   element param {
+     extension.atts,
+     attribute name { qname.datatype },
+     (attribute select { expression.datatype }
+      | template.model)
+   }
+ copy-of.element =
+   element copy-of {
+     extension.atts,
+     attribute select { expression.datatype }
+   }
+ with-param.element =
+   element with-param {
+     extension.atts,
+     attribute name { qname.datatype },
+     (attribute select { expression.datatype }
+      | template.model)
+   }
+ key.element =
+   element key {
+     extension.atts,
+     attribute name { qname.datatype },
+     attribute match { pattern.datatype },
+     attribute use { expression.datatype }
+   }
+ decimal-format.element =
+   element decimal-format {
+     extension.atts,
+     attribute name { qname.datatype }?,
+     attribute decimal-separator { char.datatype }?,
+     attribute grouping-separator { char.datatype }?,
+     attribute infinity { text }?,
+     attribute minus-sign { char.datatype }?,
+     attribute NaN { text }?,
+     attribute percent { char.datatype }?,
+     attribute per-mille { char.datatype }?,
+     attribute zero-digit { char.datatype }?,
+     attribute digit { char.datatype }?,
+     attribute pattern-separator { char.datatype }?
+   }
+ message.element =
+   element message {
+     extension.atts,
+     attribute terminate { xsd:string "yes" | xsd:string "no" }?,
+     template.model
+   }
+ fallback.element = element fallback { extension.atts, template.model }
+ output.element =
+   element output {
+     extension.atts,
+     attribute method {
+       xsd:string "xml"
+       | xsd:string "html"
+       | xsd:string "text"
+       | qname-but-not-ncname.datatype
+     }?,
+     attribute version { xsd:NMTOKEN }?,
+     attribute encoding { text }?,
+     attribute omit-xml-declaration {
+       xsd:string "yes" | xsd:string "no"
+     }?,
+     attribute standalone { xsd:string "yes" | xsd:string "no" }?,
+     attribute doctype-public { text }?,
+     attribute doctype-system { text }?,
+     attribute cdata-section-elements { qnames.datatype }?,
+     attribute indent { xsd:string "yes" | xsd:string "no" }?,
+     attribute media-type { text }?
+   }
+ prefixes.datatype = list { (xsd:NCName | "#default")* }
+ prefix.datatype = xsd:NCName | "#default"
+ wildcards.datatype =
+   list {
+     (xsd:QName
+      | xsd:token { pattern = "\*|\i\c*:\*" })*
+   }
+ qname.datatype = xsd:QName
+ qnames.datatype = list { xsd:QName* }
+ char.datatype = xsd:string { length = "1" }
+ number.datatype = xsd:decimal
+ expression.datatype = text
+ pattern.datatype = text
+ qname-but-not-ncname.datatype = xsd:QName { pattern = ".*:.*" }
+ # An AVT containing at least one expression.
+ expr-avt.datatype =
+   xsd:string {
+     pattern =
+       """([^\{\}]|\{\{|\}\})*\{([^"'\{\}]|"[^"]*"|'[^']*')+\}([^\{\}]|\{\{|\}\}|\{([^"'\{\}]|"[^"]*"|'[^']*')+\})*"""
+   }
+ # An AVT containing at least one brace; ie where instantiated AVT
+ # is not the same as the literal AVT.
+ brace-avt.datatype =
+   xsd:string {
+     pattern =
+       """[^\{\}]*(\{\{|\}\}|\{([^"'\{\}]|"[^"]*"|'[^']*')+\})([^\{\}]|\{\{|\}\}|\{([^"'\{\}]|"[^"]*"|'[^']*')+\})*"""
+   }
+ avt.datatype =
+   xsd:string {
+     pattern =
+       """([^\{\}]|\{\{|\}\}|\{([^"'\{\}]|"[^"]*"|'[^']*')+\})*"""
+   }
Simple merge
index 8e01c9dfeaf3e3e3bb4ae55269f86d6f73ab9f95,a61edad3820b96f8c8df6788e59f5181061e23c7..8b327bfabf821a7247d521b597dca5301d4d5f46
@@@ -167,36 -166,12 +167,36 @@@ obj =   dosfns.o msdos.o 
  #
  lispsource = ../lisp/
  
 -MOUSE_SUPPORT = $(lispsource)select.elc $(lispsource)scroll-bar.elc $(lispsource)mouse.elc $(lispsource)tooltip.elc
 -WINNT_SUPPORT = $(lispsource)ls-lisp.elc $(lispsource)disp-table.elc $(lispsource)w32-fns.elc $(lispsource)dos-w32.elc $(lispsource)w32-vars.elc
 +MOUSE_SUPPORT = \
 +      $(lispsource)select.elc \
 +      $(lispsource)scroll-bar.elc \
 +      $(lispsource)mouse.elc \
 +      $(lispsource)tooltip.elc
 +WINNT_SUPPORT = \
 +      $(lispsource)ls-lisp.elc \
 +      $(lispsource)disp-table.elc \
 +      $(lispsource)w32-fns.elc \
 +      $(lispsource)dos-w32.elc \
 +      $(lispsource)w32-vars.elc \
 +      $(lispsource)term/w32-win.elc
  
  # lisp files that are loaded up on other platforms
 -MSDOS_SUPPORT = $(lispsource)dos-fns.elc $(lispsource)dos-vars.elc $(lispsource)international/ccl.elc $(lispsource)international/codepage.elc
 -VMS_SUPPORT = $(lispsource)vmsproc.el $(lispsource)vms-patch.el
 +MSDOS_SUPPORT = \
 +      $(lispsource)dos-fns.elc \
 +      $(lispsource)dos-vars.elc \
 +      $(lispsource)international/ccl.elc \
 +      $(lispsource)international/codepage.elc
 +VMS_SUPPORT = \
-       $(lispsource)vmsproc.elc \
-       $(lispsource)vms-patch.elc
++      $(lispsource)vmsproc.el \
++      $(lispsource)vms-patch.el
 +TOOLTIP_SUPPORT = $(lispsource)tooltip.elc
 +WINDOW_SUPPORT = \
 +      $(lispsource)fringe.elc \
 +      $(lispsource)image.elc \
 +      $(lispsource)international/fontset.elc \
 +      $(lispsource)dnd.elc \
 +      $(lispsource)tool-bar.elc \
 +      $(lispsource)mwheel.elc
  
  lisp1= \
        $(lispsource)abbrev.elc \
diff --cc lisp/ChangeLog
Simple merge
Simple merge
index b12b4b5cb71cf472b228e887b81bd8b6b0ca5867,0000000000000000000000000000000000000000..4c42467b605570996e7582af15f4e68989bf385d
mode 100644,000000..100644
--- /dev/null
@@@ -1,3220 -1,0 +1,3224 @@@
 +2007-12-06  Kenichi Handa  <handa@ni.aist.go.jp>
 +
 +      * language/tibet-util.el (tibetan-composition-function): Use
 +      font-shape-text if auto-compose-current-font is non-nil.
 +
 +      * language/tibetan.el: Fix the range for recording
 +      tibetan-composition-function in composition-function-table.
 +
 +      * language/mlm-util.el (malayalam-composition-function): Use
 +      font-shape-text if auto-compose-current-font is non-nil.
 +
 +      * international/mule-conf.el: Flag many charsets as supplementary.
 +
 +      * international/mule.el (define-charset): Update the docstring for
 +      :supplementary-p.
 +
 +      * international/fontset.el (setup-default-fontset): Add OpenType
 +      fonts for malayalam and tibetan.
 +
 +2007-12-03  Kenichi Handa  <handa@ni.aist.go.jp>
 +
 +      * international/fontset.el (x-complement-fontset-spec): Use
 +      font-spec.
 +
 +2007-12-01  Kenichi Handa  <handa@ni.aist.go.jp>
 +
 +      * international/fontset.el (otf-script-alist): Make all otf tags
 +      4-letters.
 +      (setup-default-fontset): Add OpenType fonts for devanagari and
 +      tamil.
 +
 +      * language/tml-util.el (tamil-composition-function): Use
 +      font-shape-text if auto-compose-current-font is non-nil.
 +
 +      * language/devan-util.el (devanagari-composition-function): Use
 +      font-shape-text if auto-compose-current-font is non-nil.
 +
 +      * composite.el (auto-compose-chars): Argument font-object changed
 +      to window.
 +
 +2007-11-21  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.el (ps-lpr-switches): Docstring fix.
 +      (ps-string-list): New fun.
 +      (ps-do-despool): Code fix.
 +
 +2007-11-19  Kenichi Handa  <handa@ni.aist.go.jp>
 +
 +      * international/utf-7.el (utf-7-imap-post-read-conversion)
 +      (utf-7-imap-pre-write-conversion): New functions.
 +
 +      * international/mule-conf.el (utf-7-imap): New coding system.
 +
 +2007-11-18  Kenichi Handa  <handa@m17n.org>
 +
 +      * term/x-win.el (x-selection-value): If x-select-request-type is
 +      nil, try also STRING at last.
 +      (x-select-request-type): Doc adjusted the change of
 +      x-selection-value.
 +
 +      * select.el (selection-coding-system)
 +      (next-selection-coding-system): Declaration moded from xselect.c.
 +      (x-get-selection): Decode by selection-coding-system if it is
 +      non-nil.  If it is nil, decode by a proper coding system.  Handle
 +      C_STRING.
 +      (ccl-check-utf-8, string-utf-8-p): Delete them.
 +      (xselect-convert-to-string): Fix determining data-type in the case
 +      that TEXT is requested.  Don't use selection-coding-system if it's
 +      not proper for the data-type.
 +
 +2007-11-17  Kenichi Handa  <handa@m17n.org>
 +
 +      * term/x-win.el (x-selection-value): If x-select-request-type is
 +      nil, simply try UTF8_STRING and COMPOUND-TEXT in this order.
 +
 +2007-11-14  Jason Rumney  <jasonr@gnu.org>
 +
 +      * term/w32-win.el (w32-initialize-window-system): Use t, not nil
 +      to signify default fontset.
 +
 +2007-06-19  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-cmds.el (describe-language-environment):
 +      Check if the specified input method exists or not.
 +
++2007-11-12  Katsumi Yamaoka  <yamaoka@jpl.org>
++
++      * ldefs-boot.el: Regenerate.
++
 +2007-11-11  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.el (ps-do-despool): Do not force ps-lpr-switches to be a
 +      list.
 +      (ps-begin-job): Error if ps-lpr-switches is not a list.
 +      (ps-face-background-name): Remove this function.  It's already defined
 +      in ps-def.el file.
 +
 +2007-11-09  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.el (ps-do-despool): If ps-lpr-switches is not a list, force
 +      it to be one.
 +      (ps-print-version): New version 7.3.1.
 +
 +2007-10-31  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.el: Eliminate the check if ps-print was running on Lucid or
 +      Epoch emacsen.
 +
 +2007-10-27  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.el: Now detect if text foreground and background colors are
 +      equals and replace the foreground color by another color, so the text
 +      becomes visible.  Doc fix.
 +      (ps-print-version): New version 7.3.
 +      (ps-default-fg, ps-default-bg): Docstring fix.
 +      (ps-fg-list, ps-fg-validate-p): New options.
 +      (ps-foreground-list): New var.
 +      (ps-generate-header-line): Replace fboundp by functionp.
 +      (ps-setup, ps-begin-job, ps-plot-region): Fix code.
 +
 +2007-10-26  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * printing.el: Pacify byte compiler, that is, no compiler warnings.
 +      Move (again) some variable definitions before use, define some fun
 +      aliases, no code change.
 +      (pr-version): New version 6.9.2.
 +      (pr-path-style, pr-auto-region, pr-menu-char-height)
 +      (pr-menu-char-width, pr-menu-lock, pr-ps-printer-alist)
 +      (pr-txt-printer-alist, pr-ps-utility-alist): Options declaration
 +      via (defvar VAR).
 +      (pr-menu-lookup, pr-menu-lock, pr-menu-alist, pr-even-or-odd-pages)
 +      (pr-menu-get-item, pr-menu-set-item-name, pr-menu-set-utility-title)
 +      (pr-menu-set-ps-title, pr-menu-set-txt-title, pr-region-active-p)
 +      (pr-do-update-menus, pr-update-mode-line, pr-f-read-string)
 +      (pr-f-set-keymap-parents, pr-keep-region-active): Fun aliases.
 +      (pr-menu-print-item, pr-ps-printer-menu-modified)
 +      (pr-txt-printer-menu-modified, pr-ps-utility-menu-modified)
 +      (pr-even-or-odd-alist): Vars definition moved.
 +
 +2007-10-23  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/chinese.el (cp936): Delete duplicated alias.
 +
 +      * international/mule-diag.el (list-block-of-chars): Don't insert
 +      non-Unicode characters.
 +
 +2007-10-14  Jason Rumney  <jasonr@gnu.org>
 +
 +      * loadup.el [windows-nt]: Don't load code-pages and ccl.
 +      * term/w32-win.el: Don't require code-pages.
 +
 +2007-10-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Fix up multi-tty merge.
 +
 +      * version.el (emacs-version): Bump to 23.0.60.
 +
 +      * term/x-win.el (x-initialize-window-system): Don't try to create
 +      a fontset from a font-specification anymore.  This was removed on the
 +      unicode branch and mistakenly re-added by the multi-tty merge.
 +
 +      * term/w32-win.el: Remove duplicate code that's now in
 +      w32-initialize-window-system.
 +      (w32-initialize-window-system): Don't try to create a fontset from
 +      a font-specification anymore.  This was removed on the unicode branch
 +      and mistakenly re-added by the multi-tty merge.
 +
 +      * term/mac-win.el: Remove duplicate top-level code.
 +
 +      * ldefs-boot.el: Update.
 +
 +      * language/ethio-util.el:
 +      * international/characters.el: Use utf-8 rather than utf-8-emacs
 +      since it works as well and has the advantage of working with
 +      non-unicode versions of Emacs.
 +
 +      * international/encoded-kb.el (encoded-kbd-setup-display): Use the new
 +      multi-tty code, which includes the previous local change.
 +
 +2007-10-10  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.el: Fix the usage of :foreground and :background face
 +      attributes.  Reported by Nikolaj Schumacher <n_schumacher@web.de>.
 +      (ps-print-version): New version 7.2.5.
 +      (ps-face-attributes, ps-face-attribute-list, ps-face-background): Fix
 +      code.
 +      (ps-face-foreground-color-p, ps-face-background-color-p)
 +      (ps-face-color-p): New inline funs.
 +      (ps-background, ps-begin-file, ps-build-reference-face-lists): Use
 +      `mapc' rather than `mapcar'.
 +
 +2007-09-07  Kenichi Handa  <handa@m17n.org>
 +
 +      * skeleton.el (skeleton-internal-1): Use integerp and stringp
 +      instead of char-or-string-p to catch -1.
 +
 +2007-09-04  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-cmds.el (inactivate-input-method): Set
 +      input-method-function to nil before calling
 +      inactivate-current-input-method-function.
 +
 +2007-08-23  Kenichi Handa  <handa@m17n.org>
 +
 +      * play/gamegrid.el (gamegrid-setup-default-font): Calculate a font
 +      height that doesn't exceed the requested height by rounding off.
 +
 +2007-08-16  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.el (ps-header-font-size, ps-header-title-font-size)
 +      (ps-footer-font-size, ps-line-number-font-size, ps-line-spacing)
 +      (ps-paragraph-spacing): Docstring fix.
 +
 +2007-08-16  Glenn Morris  <rgm@gnu.org>
 +
 +      * ps-print.el (ps-font-size): Doc fix.
 +
 +2007-08-08  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.el (ps-default-fg, ps-default-bg): Docstring fix.
 +      (ps-begin-job): Use ps-default-fg and ps-default-bg only when
 +      ps-print-color-p is neither nil nor black-white.  Reported by Christian
 +      Schlauer <cs-muelleimer-rubbish.bin@arcor.de>.
 +
 +2007-08-06  Vinicius Jose Latorre  <viniciusig@ig.com.br>
 +
 +      * printing.el (pr-update-menus): Docstring fix.
 +
 +2007-08-05  Vinicius Jose Latorre  <viniciusig@ig.com.br>
 +
 +      * printing.el: Require lpr and ps-print when loading printing package.
 +      Reported by Glenn Morris <rgm@gnu.org>.
 +
 +2007-08-03  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * printing.el: Evaluate require only during compilation.
 +      (pr-version): New version 6.9.1.
 +      (deactivate-mark): Replace (defvar VAR nil) by (defvar VAR).
 +      (pr-global-menubar): Fix code.
 +
 +2007-07-26  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * progmodes/ebnf-abn.el (ebnf-abn-skip-comment):
 +      * progmodes/ebnf-bnf.el (ebnf-bnf-skip-comment):
 +      * progmodes/ebnf-dtd.el (ebnf-dtd-skip-comment):
 +      * progmodes/ebnf-ebx.el (ebnf-ebx-skip-comment):
 +      * progmodes/ebnf-iso.el (ebnf-iso-skip-comment):
 +      * progmodes/ebnf-yac.el (ebnf-yac-skip-comment): New version.
 +      New command actions for EPS header and EPS footer.
 +
 +      * progmodes/ebnf2ps.el: New command actions for EPS header and EPS
 +      footer.  Fix some problems with one-or-more, zero-or-more and
 +      alternative constructions generation.  Some log messages
 +      implementation.  Doc fix.
 +      (ebnf-version): New version 4.4.
 +      (ebnf-eps-header-font, ebnf-eps-header, ebnf-eps-footer-font)
 +      (ebnf-eps-footer, ebnf-log): New options.
 +      (ebnf-find-style, ebnf-eps-header-footer, ebnf-eps-header)
 +      (ebnf-eps-footer, ebnf-eps-string, ebnf-eps-header-footer-comment)
 +      (ebnf-eps-header-footer-p, ebnf-eps-header-comment)
 +      (ebnf-eps-footer-comment, ebnf-eps-header-footer-file)
 +      (ebnf-eps-header-footer-set, ebnf-log-header, ebnf-log): New funs.
 +      (ebnf-style-custom-list, ebnf-style-database): Put new values.
 +      (ebnf-print-directory, ebnf-print-file, ebnf-print-buffer)
 +      (ebnf-print-region, ebnf-spool-directory, ebnf-spool-file)
 +      (ebnf-spool-buffer, ebnf-spool-region, ebnf-eps-directory)
 +      (ebnf-eps-file, ebnf-eps-buffer, ebnf-eps-region)
 +      (ebnf-syntax-directory, ebnf-syntax-file, ebnf-syntax-buffer)
 +      (ebnf-syntax-region, ebnf-parse-and-sort, ebnf-begin-job)
 +      (ebnf-dimensions, ebnf-production-dimension, ebnf-terminal-dimension)
 +      (ebnf-non-terminal-dimension, ebnf-special-dimension)
 +      (ebnf-terminal-dimension1, ebnf-repeat-dimension)
 +      (ebnf-except-dimension, ebnf-alternative-dimension)
 +      (ebnf-optional-dimension, ebnf-one-or-more-dimension)
 +      (ebnf-zero-or-more-dimension, ebnf-sequence-dimension): Insert log
 +      message fun.
 +      (ebnf-setup, ebnf-generate-one-or-more, ebnf-generate-zero-or-more)
 +      (ebnf-begin-job, ebnf-begin-file, ebnf-eps-finish-and-write)
 +      (ebnf-insert-ebnf-prologue, ebnf-production-dimension)
 +      (ebnf-terminal-dimension1, ebnf-alternative-dimension)
 +      (ebnf-one-or-more-dimension, ebnf-zero-or-more-dimension)
 +      (ebnf-eps-add-context, ebnf-eps-add-production): Fix code.
 +      (ebnf-eps-filename, ebnf-trim-right): Replace `?\s' by `?\ ' to keep
 +      compatibility with Emacs 20 & 21.
 +      (ebnf-eps-header-comment, ebnf-eps-footer-comment)
 +      (ebnf-eps-file-alist, ebnf-basic-width-extra)
 +      (ebnf-basic-empty-height): New vars.
 +      (ebnf-prologue): Fix PostScript code.
 +      (ebnf-make-empty, ebnf-make-terminal1, ebnf-make-or-more1)
 +      (ebnf-make-production, ebnf-make-alternative, ebnf-make-optional)
 +      (ebnf-make-except, ebnf-make-repeat, ebnf-make-sequence)
 +      (ebnf-make-dup-sequence, ebnf-token-alternative): Add comments.
 +
 +2007-07-26  Andreas Schwab  <schwab@suse.de>
 +
 +      * international/mule-diag.el (print-fontset-element): Use fontp
 +      only if defined.
 +
 +2007-07-25  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.el (ps-multibyte-buffer): Docstring fix.
 +
 +      * ps-mule.el: Doc fix.
 +      (ps-multibyte-buffer, ps-mule-font-info-database, ps-mule-prepare-font)
 +      (ps-mule-external-libraries, ps-mule-encode-region)
 +      (ps-mule-plot-composition, ps-mule-encode-header-string)
 +      (ps-mule-begin-job): Docstring fix.
 +      (ps-mule-prologue-generated): Code fix.
 +
 +2007-07-20  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.el: Problem with foreground and background color when
 +      printing a buffer with and without faces.  Reported by Christian
 +      Schlauer <cs-muelleimer-rubbish.bin@arcor.de>.
 +      (ps-print-version): New version 7.2.4.
 +      (ps-default-fg): Change default value to nil, so black color is used
 +      when a face does not specify a foreground color.
 +      (ps-default-bg): Change default value to nil, so white color is used
 +      for background color.
 +      (ps-begin-job): Fix code.
 +
 +2007-06-26  Kenichi Handa  <handa@m17n.org>
 +
 +      * dnd.el (dnd-get-local-file-name): Call replace-regexp-in-string
 +      with FIXEDCASE t.
 +
 +2007-06-20  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-diag.el (print-fontset-element): Fix for the
 +      format change of a fontset element for font-backend feature.
 +
 +2007-06-19  Kenichi Handa  <handa@m17n.org>
 +
 +      * descr-text.el (describe-char): Fix for the case that a component
 +      character is TAB.
 +
 +2007-06-16  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-cmds.el
 +      (select-safe-coding-system-interactively): Fix printing of
 +      rejected and unsafe coding-systems.
 +
 +      * international/fontset.el (setup-default-fontset): Add tai-viet.
 +
 +      * international/characters.el: Setup syntax/category table for Tai
 +      Viet.
 +      (script-list): Add tai-viet.
 +
 +      * loadup.el: Load "language/tai-viet".
 +
 +      * language/tai-viet.el: New file.
 +
 +      * language/tv-util.el: New file.
 +
 +2007-06-01  Jason Rumney  <jasonr@gnu.org>
 +
 +      * faces.el (font-weight-table): Use defaults on w32 that match
 +      LOGFONT.lfWeight.
 +
 +      * term/w32-win.el: Don't create fontset from command-line font.
 +
 +2007-05-29  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * international/mule-cmds.el (toggle-enable-multibyte-characters)
 +      (sort-coding-systems, search-unencodable-char): Doc fixes.
 +      (default-input-method, input-method-verbose-flag)
 +      (input-method-highlight-flag): Remove * in defcustom's docstrings.
 +      (exit-language-environment-hook, set-default-coding-systems)
 +      (coding-system-change-eol-conversion, prefer-coding-system)
 +      (find-multibyte-characters, leim-list-entry-regexp)
 +      (set-input-method, input-method-exit-on-first-char, princ-list)
 +      (locale-language-names, locale-charset-language-names)
 +      (define-char-code-property): Fix typos in docstrings.
 +
 +2007-05-28  Kenichi Handa  <handa@m17n.org>
 +
 +      * disp-table.el (make-glyph-code): Fix for a new character code
 +      space (22-bit).
 +      (glyph-char): Likewise.
 +      (glyph-face): Likewise.
 +
 +2007-05-17  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * printing.el: Group together all XEmacs/Emacs definitions.
 +      (pr-version): New version 6.9.
 +      (pr-global-menubar, pr-menu-char-height, pr-menu-char-width): New funs.
 +      (pr-menu-char-height, pr-menu-char-width): Fix initialization code.
 +      (pr-menu-bind): Fix code.
 +      (pr-e-frame-char-height, pr-e-frame-char-width)
 +      (pr-e-mouse-pixel-position, pr-x-add-submenu, pr-x-event-function)
 +      (pr-x-event-object, pr-x-find-menu-item, pr-x-font-height)
 +      (pr-x-font-width, pr-x-get-popup-menu-response, pr-x-make-event)
 +      (pr-x-misc-user-event-p, pr-x-relabel-menu-item, pr-x-event-x-pixel)
 +      (pr-x-event-y-pixel): Aliases eliminated.
 +      (pr-xemacs-global-menubar): Macro moved.
 +      (current-menubar, current-mouse-event, zmacs-region-stays)
 +      (deactivate-mark, pr-menu-position, pr-menu-state, pr-ps-name-old)
 +      (pr-txt-name-old, pr-ps-utility-old, pr-even-or-odd-old, pr-temp-menu):
 +      Vars moved.
 +      (pr-region-active-p, pr-menu-position, pr-menu-lookup, pr-menu-lock)
 +      (pr-update-mode-line, pr-do-update-menus, pr-menu-alist)
 +      (pr-relabel-menu-item, pr-menu-set-ps-title, pr-menu-set-txt-title)
 +      (pr-menu-set-utility-title, pr-even-or-odd-pages)
 +      (pr-f-set-keymap-parents, pr-f-set-keymap-name, pr-f-read-string)
 +      (pr-keep-region-active, pr-menu-get-item, pr-menu-set-item-name): Funs
 +      moved.
 +
 +2007-05-16  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * printing.el (pr-ps-fast-fire): Fix typos in docstring.
 +
 +2007-05-13  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.el: Use default color when foreground or background color
 +      are unspecified.  Reported by Leo <sdl.web@gmail.com>.
 +      (ps-print-version): New version 7.2.3.
 +      (ps-rgb-color): New argument.  Use default color when color is
 +      unspecified.
 +      (ps-begin-job): Fix code.
 +
 +2007-03-28  Riccardo Murri  <riccardo.murri@gmail.com>
 +
 +      * vc-bzr.el: New file.
 +
 +2007-03-23  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/characters.el: Add more cases/syntaxes from Latin
 +      characters.
 +
 +2007-03-09  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-def.el (installation-directory): Must be initialized when defining
 +      it in XEmacs.
 +      (coding-system-for-read): Eliminate duplicated definition.
 +
 +2007-03-05  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.el: Replace some (defvar VAR) by (defvar VAR nil).
 +
 +2007-03-01  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.el: Replace (defvar VAR nil) by (defvar VAR).
 +      (ps-print-emacs-type): Var eliminated.
 +      (ps-setup): Remove ps-print-emacs-type. Print which Emacsen is
 +      running ps-print package.
 +
 +      * ps-def.el: Replace (defvar VAR nil) by (defvar VAR).
 +      (ps-frame-parameter): Replace defun by defalias.
 +      (mark-active): defvar eliminated.
 +
 +      * ps-samp.el (ps-prsc, ps-c-prsc, ps-s-prsc): Macros eliminated.
 +      (ps-rmail-mode-hook, ps-vm-mode-hook, ps-gnus-summary-setup)
 +      (ps-jts-ps-setup): Replace macros by vector key definition.
 +
 +2007-02-16  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * progmodes/ebnf-abn.el (ebnf-abn-skip-comment):
 +      * progmodes/ebnf-bnf.el (ebnf-bnf-skip-comment):
 +      * progmodes/ebnf-dtd.el (ebnf-dtd-skip-comment):
 +      * progmodes/ebnf-ebx.el (ebnf-ebx-skip-comment):
 +      * progmodes/ebnf-iso.el (ebnf-iso-skip-comment):
 +      * progmodes/ebnf-yac.el (ebnf-yac-skip-comment): New version.
 +      New command actions for EPS header and EPS footer.
 +
 +      * progmodes/ebnf2ps.el: New command actions for EPS header and EPS
 +      footer.  Fix some problems with one-or-more, zero-or-more and
 +      alternative constructions generation.  Some log messages
 +      implementation.  Doc fix.
 +      (ebnf-version): New version 4.4.
 +      (ebnf-eps-header-font, ebnf-eps-header, ebnf-eps-footer-font)
 +      (ebnf-eps-footer, ebnf-log): New options.
 +      (ebnf-find-style, ebnf-eps-header-footer, ebnf-eps-header)
 +      (ebnf-eps-footer, ebnf-eps-string, ebnf-eps-header-footer-comment)
 +      (ebnf-eps-header-footer-p, ebnf-eps-header-comment)
 +      (ebnf-eps-footer-comment, ebnf-eps-header-footer-file)
 +      (ebnf-eps-header-footer-set, ebnf-log-header, ebnf-log): New funs.
 +      (ebnf-style-custom-list, ebnf-style-database): Put new values.
 +      (ebnf-print-directory, ebnf-print-file, ebnf-print-buffer)
 +      (ebnf-print-region, ebnf-spool-directory, ebnf-spool-file)
 +      (ebnf-spool-buffer, ebnf-spool-region, ebnf-eps-directory)
 +      (ebnf-eps-file, ebnf-eps-buffer, ebnf-eps-region)
 +      (ebnf-syntax-directory, ebnf-syntax-file, ebnf-syntax-buffer)
 +      (ebnf-syntax-region, ebnf-parse-and-sort, ebnf-begin-job)
 +      (ebnf-dimensions, ebnf-production-dimension, ebnf-terminal-dimension)
 +      (ebnf-non-terminal-dimension, ebnf-special-dimension)
 +      (ebnf-terminal-dimension1, ebnf-repeat-dimension)
 +      (ebnf-except-dimension, ebnf-alternative-dimension)
 +      (ebnf-optional-dimension, ebnf-one-or-more-dimension)
 +      (ebnf-zero-or-more-dimension, ebnf-sequence-dimension): Insert log
 +      message fun.
 +      (ebnf-setup, ebnf-generate-one-or-more, ebnf-generate-zero-or-more)
 +      (ebnf-begin-job, ebnf-begin-file, ebnf-eps-finish-and-write)
 +      (ebnf-insert-ebnf-prologue, ebnf-production-dimension)
 +      (ebnf-terminal-dimension1, ebnf-alternative-dimension)
 +      (ebnf-one-or-more-dimension, ebnf-zero-or-more-dimension)
 +      (ebnf-eps-add-context, ebnf-eps-add-production): Fix code.
 +      (ebnf-eps-filename, ebnf-trim-right): Replace `?\s' by `?\ ' to keep
 +      compatibility with Emacs 20 & 21.
 +      (ebnf-eps-header-comment, ebnf-eps-footer-comment)
 +      (ebnf-eps-file-alist, ebnf-basic-width-extra)
 +      (ebnf-basic-empty-height): New vars.
 +      (ebnf-prologue): Fix PostScript code.
 +      (ebnf-make-empty, ebnf-make-terminal1, ebnf-make-or-more1)
 +      (ebnf-make-production, ebnf-make-alternative, ebnf-make-optional)
 +      (ebnf-make-except, ebnf-make-repeat, ebnf-make-sequence)
 +      (ebnf-make-dup-sequence, ebnf-token-alternative): Add comments.
 +
 +2007-02-14  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/titdic-cnv.el: Synch with HEAD.
 +
 +2007-02-11  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * printing.el: Group together all XEmacs/Emacs definitions.
 +      (pr-version): New version 6.9.
 +      (pr-global-menubar, pr-menu-char-height, pr-menu-char-width): New funs.
 +      (pr-menu-char-height, pr-menu-char-width): Fix initialization code.
 +      (pr-menu-bind): Fix code.
 +      (pr-e-frame-char-height, pr-e-frame-char-width)
 +      (pr-e-mouse-pixel-position, pr-x-add-submenu, pr-x-event-function)
 +      (pr-x-event-object, pr-x-find-menu-item, pr-x-font-height)
 +      (pr-x-font-width, pr-x-get-popup-menu-response, pr-x-make-event)
 +      (pr-x-misc-user-event-p, pr-x-relabel-menu-item, pr-x-event-x-pixel)
 +      (pr-x-event-y-pixel): Aliases eliminated.
 +      (pr-xemacs-global-menubar): Macro moved.
 +      (current-menubar, current-mouse-event, zmacs-region-stays)
 +      (deactivate-mark, pr-menu-position, pr-menu-state, pr-ps-name-old)
 +      (pr-txt-name-old, pr-ps-utility-old, pr-even-or-odd-old, pr-temp-menu):
 +      Vars moved.
 +      (pr-region-active-p, pr-menu-position, pr-menu-lookup, pr-menu-lock)
 +      (pr-update-mode-line, pr-do-update-menus, pr-menu-alist)
 +      (pr-relabel-menu-item, pr-menu-set-ps-title, pr-menu-set-txt-title)
 +      (pr-menu-set-utility-title, pr-even-or-odd-pages)
 +      (pr-f-set-keymap-parents, pr-f-set-keymap-name, pr-f-read-string)
 +      (pr-keep-region-active, pr-menu-get-item, pr-menu-set-item-name): Funs
 +      moved.
 +
 +2007-02-07  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.ps: The ps-print commands without face printing should not
 +      print background color.  Reported by Leo <sdl.web@gmail.com>.
 +      (ps-print-version): New version 7.2.2.
 +      (ps-begin-job): New arg.  Fix ps-default-background and
 +      ps-default-foreground initialization.
 +      (ps-face-attributes): Fix doc string.
 +      (ps-face-background, ps-generate-postscript, ps-generate): Fix code.
 +
 +      * printing.el: Fix ps-print link.
 +
 +2007-01-30  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-diag.el (list-character-sets-2): Don't print
 +      width.
 +
 +2007-01-26  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.ps: Fix background height.
 +      (ps-print-version): New version 7.2.1.
 +
 +2007-01-25  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.el: Split XEmacs/Emacs definitions and sample setup code
 +      into separate files.
 +      (ps-print-version): New version 7.2.
 +      (ps-postscript-code-directory): Fix XEmacs initialization.
 +      (ps-generate-postscript-with-faces): Call
 +      ps-generate-postscript-with-faces1 (new fun).
 +      (ps-color-format, ps-float-format): Vars moved to ps-def.el.
 +      (ps-xemacs-color-name, ps-mapper, ps-extent-sorter)
 +      (ps-xemacs-face-kind-p, ps-mark-active-p, ps-face-foreground-name)
 +      (ps-face-background-name, ps-frame-parameter, ps-color-device)
 +      (ps-color-values, ps-face-bold-p, ps-face-italic-p): Funs moved to
 +      ps-def.el.
 +      (ps-prsc, ps-c-prsc, ps-s-prsc, ps-rmail-mode-hook)
 +      (ps-rmail-print-message-from-summary, ps-print-message-from-summary)
 +      (ps-article-subject, ps-article-author, ps-gnus-article-prepare-hook)
 +      (ps-vm-mode-hook, ps-gnus-print-article-from-summary)
 +      (ps-vm-print-message-from-summary, ps-gnus-summary-setup, ps-info-file)
 +      (ps-info-node, ps-info-mode-hook, ps-jts-ps-setup, ps-jack-setup): Funs
 +      moved to ps-samp.el.
 +
 +      * ps-bdf.el (installation-directory, coding-system-for-read): Vars
 +      moved to ps-def.el.
 +
 +      * ps-mule.el (leading-code-private-22): Var moved to ps-def.el.
 +      (charset-bytes, charset-dimension, charset-id, charset-width)
 +      (find-charset-region, char-width, chars-in-region, forward-point)
 +      (decompose-composite-char, encode-coding-string, coding-system-p)
 +      (ccl-execute-on-string, define-ccl-program, multibyte-string-p)
 +      (string-make-multibyte, encode-char): Funs moved to ps-def.el.
 +
 +      * ps-def.el: New file. XEmacs/Emacs definitions.
 +      (ps-generate-postscript-with-faces1): New fun.
 +      (ps-color-format, ps-float-format): Vars moved from ps-print.el.
 +      (ps-xemacs-color-name, ps-mapper, ps-extent-sorter)
 +      (ps-xemacs-face-kind-p, ps-mark-active-p, ps-face-foreground-name)
 +      (ps-face-background-name, ps-frame-parameter, ps-color-device)
 +      (ps-color-values, ps-face-bold-p, ps-face-italic-p): Funs moved from
 +      ps-print.el.
 +      (installation-directory, coding-system-for-read): Vars moved from
 +      ps-bdf.el.
 +      (leading-code-private-22): Var moved from ps-mule.el.
 +      (charset-bytes, charset-dimension, charset-id, charset-width)
 +      (find-charset-region, char-width, chars-in-region, forward-point)
 +      (decompose-composite-char, encode-coding-string, coding-system-p)
 +      (ccl-execute-on-string, define-ccl-program, multibyte-string-p)
 +      (string-make-multibyte, encode-char): Funs moved from ps-mule.el.
 +
 +      * ps-samp.el: New file. Sample setup code.
 +      (ps-prsc, ps-c-prsc, ps-s-prsc, ps-rmail-mode-hook)
 +      (ps-rmail-print-message-from-summary, ps-print-message-from-summary)
 +      (ps-article-subject, ps-article-author, ps-gnus-article-prepare-hook)
 +      (ps-vm-mode-hook, ps-gnus-print-article-from-summary)
 +      (ps-vm-print-message-from-summary, ps-gnus-summary-setup, ps-info-file)
 +      (ps-info-node, ps-info-mode-hook, ps-jts-ps-setup, ps-jack-setup): Funs
 +      moved from ps-print.el.
 +
 +2007-01-21  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.el: Handle frame parameters (background and/or foreground
 +      colors) changing dynamically.  Reported by Leo <sdl.web@gmail.com>.
 +      (ps-print-version): New version 7.1.
 +      (ps-x-frame-property, ps-e-frame-parameter): New aliases.
 +      (ps-frame-parameter): New fun.
 +      (ps-default-fg, ps-default-bg): New default value ('frame-parameter).
 +      Fix doc and customization.
 +      (ps-begin-job): Get frame parameters (background and/or foreground
 +      colors).
 +      (ps-do-despool): Ensure ps-printer-name has a valid value.
 +
 +2006-12-04  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * progmodes/ebnf-abn.el:
 +      * progmodes/ebnf-bnf.el:
 +      * progmodes/ebnf-dtd.el:
 +      * progmodes/ebnf-ebx.el:
 +      * progmodes/ebnf-iso.el:
 +      * progmodes/ebnf-otz.el:
 +      * progmodes/ebnf-yac.el:
 +      * progmodes/ebnf2ps.el:
 +      * delim-col.el:
 +      * printing.el:
 +      * ps-bdf.el:
 +      * ps-mule.el:
 +      * ps-print.el: Remove 'Time-stamp' comment mark.
 +
 +      * printing.el (pr-menu-bind): Replace 'easy-menu-change' by
 +      'easy-menu-add-item' when called in Emacs 21 or higher.
 +
 +2006-12-01  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.el : Fix doc.
 +      (ps-print-version): New version 7.0.
 +
 +2006-11-29  Kenichi Handa  <handa@m17n.org>
 +
 +      * mail/emacsbug.el (report-emacs-bug): Insert also the value of
 +      XMODIFIERS.
 +
 +2006-11-28  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.el: Fix maintainer email.  Eliminate function declaration
 +      that kept compatibility with older Emacs version.
 +      (ps-print-version): New version 6.7.
 +
 +2006-11-28  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/quail.el (quail-get-translations): Make
 +      quail-current-key multibyte if not yet done.
 +
 +2006-11-27  Zhang Wei  <id.brep@gmail.com>
 +
 +      * language/chinese.el ("Chinese-GBK"): Add tutorial.
 +      ("Chinese-GB18030"): Add sample-text and tutorial.
 +
 +      * international/fontset.el (font-encoding-alist): Add gb18030.
 +      (setup-default-fontset): Likewise.
 +      (x-pixel-size-width-font-regexp, vertical-centering-font-regexp):
 +      Add gbk and gb18030.
 +      (charset-script-alist): Likewise.
 +
 +      * international/characters.el: Put property
 +      preferred-coding-system to gbk and gb18030.
 +
 +      * international/mule-cmds.el (locale-language-names): Add an entry
 +      for "zh_CN.UTF-8" and change "chs" to "Chinese-GBK".
 +
 +      * faces.el (face-font-registry-alternatives): Add gb18030.
 +
 +2006-11-22  Vinicius Jose Latorre  <viniciusjl@ig.com.br>  (tiny change)
 +
 +      * ps-mule.el: Fix maintainer email.
 +
 +2006-11-22  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/european.el ("Turkish"): Sync with HEAD.
 +
 +      * international/characters.el: Sync with HEAD.
 +
 +      * international/mule-cmds.el (set-default-coding-systems): Sync
 +      with HEAD.
 +
 +2006-11-21  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/quail.el (quail-insert-kbd-layout): Check the
 +      length of (cdr translation).
 +      (quail-get-current-str): Check the length of (cdr def).
 +
 +2006-11-16  Kenichi Handa  <handa@m17n.org>
 +
 +      * ruler-mode.el (ruler-mode-ruler): Make the string `ruler'
 +      mulitbyte.
 +
 +2006-11-13  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-cmds.el (ucs-insert): Re-implement.
 +
 +2006-11-09  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.el (terminal-composition-modification): New function.
 +      (terminal-composition-function): Create composition with the above
 +      modification function.
 +
 +2006-11-08  Zhang Wei  <id.brep@gmail.com>  (tiny change)
 +
 +      * international/characters.el: Add more full-width characters in
 +      char-width-table.
 +
 +2006-10-30  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/fontset.el (create-fontset-from-fontset-spec): Fix
 +      script name handling.
 +
 +2006-10-26  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.el (terminal-composition-function): New function.
 +      (terminal-composition-function-table): New variable.
 +      (auto-compose-chars): If running on a terminal, use
 +      terminal-composition-function-table.
 +
 +      * loadup.el: Load "composite" after "international/characters".
 +
 +      * international/characters.el: Delete codes for setting up charset
 +      property nospace-between-words.  Fix setting up of
 +      char-width-table.  Don't make ethiopic and tibetan double column.
 +
 +      * textmodes/fill.el (fill-find-break-point-function-table): Don't
 +      setup it in defvar.
 +      (fill-nospace-between-words-table): New variable.
 +      (fill-delete-newlines): Check fill-nospace-between-words-table
 +      instead of charset property nospcae-between-words.
 +
 +2006-10-23  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.el (global-auto-composition-mode): Make the initial
 +      value not depend on emacs-basic-display.
 +
 +      * textmodes/fill.el: Don't use charset property
 +      `fill-find-break-point-function'.
 +      (fill-find-break-point-function-table): New variable.
 +      (fill-find-break-point): Lookup
 +      fill-find-break-point-function-table.
 +
 +2006-10-17  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule.el (coding-system-list): Be sure to exclude
 +      subsidiary coding systems.
 +
 +2006-10-05  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.el (auto-composition-after-change): Remove
 +      `auto-composed' property instead of put nil to it.
 +      (toggle-auto-composition): Likewise.
 +
 +2006-10-02  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/misc-lang.el (iso-8859-6): New coding system.
 +
 +2006-09-21  Kenichi Handa  <handa@m17n.org>
 +
 +      * dnd.el (dnd-get-local-file-name): Give a unibyte string to
 +      replace-regexp-in-string as replacement.
 +
 +2006-08-28  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/fontset.el (otf-script-alist): Add byzm, math,
 +      musc, and nko.
 +
 +      * international/characters.el (script-list): Add nko,
 +      byzantine-musical-symbol, musical-symbol, and mathematical.
 +
 +2006-08-21  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/uni-bidi.el, international/uni-category.el,
 +      international/uni-combining.el, international/uni-comment.el,
 +      international/uni-decimal.el, international/uni-decomposition.el,
 +      international/uni-digit.el, international/uni-lowercase.el,
 +      international/uni-mirrored.el, international/uni-name.el,
 +      international/uni-numeric.el, international/uni-old-name.el,
 +      international/uni-titlecase.el, international/uni-uppercase.el:
 +      Re-generated.
 +
 +2006-08-04  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-cmds.el (select-safe-coding-system): Fix
 +      synching with head.
 +
 +2006-08-03  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * ldefs-boot.el: Delete the section for utf-7.
 +
 +2006-07-24  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.el (auto-compose-current-font): New variable.
 +      (auto-compose-chars): New arg FONT-OBJECT.
 +
 +2006-07-20  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/characters.el: Modify category-table and
 +      script-table for new Ethiopic character range.
 +
 +2006-07-07  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-cmds.el (set-language-info): Fix synching
 +      with HEAD.
 +      (set-language-environment): Likewise.
 +      (standard-display-european-internal): Sync with HEAD.
 +      (set-language-environment-nonascii-translation): Fix synching with
 +      HEAD.
 +      (set-language-environment-fontset): Delete it.
 +      (set-language-environment-unibyte): Fix synching with HEAD.
 +
 +2006-07-03  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/fontset.el (otf-script-alist): Set it.
 +
 +2006-06-28  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/fontset.el (font-encoding-alist): Fix for
 +      "ethiopic-unicode".
 +
 +2006-06-23  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/fontset.el (script-representative-chars): Add an
 +      entry for latin script.
 +
 +2006-06-19  Kenichi Handa  <handa@m17n.org>
 +
 +      * faces.el (font-weight-table): Treat regular and normal as the
 +      same as medium.
 +      (font-slant-table): Add (roman . 100).
 +
 +2006-06-09  Kenichi Handa  <handa@m17n.org>
 +
 +      * tar-mode.el (tar-extract): Sync with HEAD.
 +
 +2006-06-06  Kenichi Handa  <handa@m17n.org>
 +
 +      These changes are for the new font handling codes.
 +
 +      * faces.el (font-weight-table, font-slant-table)
 +      (font-swidth-table): New customizable variables.
 +
 +      * international/fontset.el (font-encoding-alist): Add koi8-4.
 +      (script-representative-chars): Set the default value.
 +      (create-fontset-from-x-resource): Delete `message'.
 +
 +2006-05-15  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * term/mac-win.el (mac-utxt-to-string, mac-string-to-utxt)
 +      (mac-TEXT-to-string, mac-string-to-TEXT): Sync with HEAD.
 +
 +2006-04-09  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/characters.el: Cancel unnecessary sync code for
 +      HEAD.
 +
 +2006-03-28  Kenichi Handa  <handa@m17n.org>
 +
 +      * tar-mode.el (tar-untar-buffer, tar-summarize-buffer): Call
 +      set-buffer-multibyte with arg `to'.
 +
 +2006-03-14  Kenichi Handa  <handa@m17n.org>
 +
 +      * info.el (Info-fontify-node): Check if already fontified or not
 +      by next-single-property-change.
 +
 +2006-03-08  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule.el (ctext-pre-write-conversion): Produce
 +      extra designation sequence for ASCII at the end off extended
 +      segment.
 +
 +2006-03-07  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule.el (ctext-non-standard-encodings-table):
 +      Reverse the returning list.
 +      (ctext-pre-write-conversion): Fix encoding with extended segments.
 +
 +      * international/mule-conf.el (compound-text)
 +      (compound-text-with-extensions): Add long-form in :flags.
 +
 +2006-03-06  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/fontset.el (create-fontset-from-fontset-spec): Fix
 +      regexp for paring FONTSET-SPEC (allow spaces after `:').
 +
 +2006-03-03  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/fontset.el (create-fontset-from-fontset-spec): Fix
 +      for the case that a charset is specified as target.
 +
 +      * international/ccl.el (ccl-dump-write-const-string): Fix previous
 +      change.
 +
 +2006-03-02  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/ccl.el (ccl-embed-string): Check string length.
 +      Set special flag for multibyte character sequence.
 +      (ccl-compile-write-string): Don't make str unibyte.
 +      (ccl-compile-write-repeat): Likewise.
 +      (ccl-compile-write): If the character code doesn't fit in 22-bit
 +      (ccl-dump-write-const-string): Check special flag for multibyte
 +      character sequence.
 +
 +2006-02-28  Kenichi Handa  <handa@m17n.org>
 +
 +      * ps-mule.el (ps-mule-eight-bit-char): Delete this function.
 +      (ps-mule-encode-region): Don't use ps-mule-eight-bit-char.
 +      (ps-mule-plot-composition): Likewise.
 +
 +2006-02-27  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/chinese.el ("Chinese-BIG5"): Set
 +      ctext-non-standard-encodings property to "big5-0".
 +
 +      * international/mule.el (ctext-non-standard-encodings): Initialize
 +      to nil.
 +      (ctext-non-standard-encodings-alist): Set charset `big5' in the
 +      entry for "big5-0".
 +      (ctext-non-standard-encodings-table): Return a list instead of
 +      char-table.
 +      (ctext-pre-write-conversion): Adjusted for the above change.
 +
 +2006-02-27  Zhang Wei  <id.brep@gmail.com>  (tiny change)
 +
 +      * international/mule.el (ctext-non-standard-encodings-alist): Add
 +      an entry for gbk-0.
 +      (ctext-post-read-conversion): Use multibyt-char-to-unibyte to read
 +      a row 8-bit.
 +
 +      * language/chinese.el ("Chinese-GBK"): Set
 +      ctext-non-standard-encodings property to "gbk-0".  Add sample-text
 +      property.
 +
 +2006-02-27  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/kkc.el (kkc-region): Use
 +      this-single-command-raw-keys on pushing back an unhandled key
 +      sequence.
 +
 +2006-02-24  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/encoded-kb.el (encoded-kbd-mode): Check
 +      saved-input-mode on turing off Encoded Kbd mode.
 +
 +      * composite.el (auto-composition-after-change): Use
 +      save-buffer-state.
 +      (turn-on-auto-composition-if-enabled): Don't turn on
 +      auto-composition-mode in a unibyte buffer.
 +
 +2006-02-21  Kenichi Handa  <handa@m17n.org>
 +
 +      * startup.el (command-line): Use custom-reevaluate-setting for
 +      global-auto-composition-mode.
 +
 +      * composite.el (auto-composition-function): Make it buffer local.
 +      (auto-composition-mode): New minor mode.
 +      (turn-on-auto-composition-if-enabled): New function.
 +      (global-auto-composition-mode): New global minor mode.
 +
 +2006-01-24  Kenichi Handa  <handa@m17n.org>
 +
 +      * descr-text.el (describe-char): Use insert-text-button instead of
 +      widget-create for "customize what to show" button.
 +
 +2006-01-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * tar-mode.el: Merge changes from the trunk:
 +      (tar-header-block-tokenize): Tighten regexp.
 +      (tar-summarize-buffer): Don't clear the modified-p bit if it wasn't
 +      cleared before.  Obey default-enable-multibyte-characters.
 +      Use mapconcat.
 +      (tar-mode-map): Move initialization inside delcaration.
 +      (tar-alter-one-field): Don't hardcode point-min==1.
 +
 +2006-01-20  Naoto Takahashi  <ntakahas@m17n.org>
 +
 +      * language/ethiopic.el: Copyright fixed.
 +      (composition-function-table): Support a new character in Unicode
 +      4.1.
 +
 +      * language/ethio-util.el (ethio-fidel-to-tex-buffer)
 +      (ethio-tex-to-fidel-buffer, ethio-composition-function)
 +      ("ethiopic-tex"): Support new characters in Unicode 4.1.
 +
 +      * descr-text.el (describe-char): Fix for sync with HEAD.
 +
 +2006-01-19  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule.el (autoload-coding-system): Install the same
 +      function as in HEAD.
 +
 +2005-12-28  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/characters.el: Register characters in
 +      auto-fill-chars.  Put nospace-between-words to more charsets.
 +
 +2005-10-27  Zhang Wei  <id.brep@gmail.com>  (tiny change)
 +
 +      * international/mule-cmds.el (locale-language-names): Add entries
 +      for zh_CN.GB2312, zh_CN.GBK, and zh_CN.GB18030.
 +      (locale-preferred-coding-systems): Fix entries for Chinese locales.
 +
 +2005-10-24  Kenichi Handa  <handa@etlken>
 +
 +      * international/utf-7.el: Delete the definition of utf-7.
 +      (utf-7-post-read-conversion, utf-7-pre-write-conversion):
 +      Add autoload cookies.
 +
 +2005-10-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * term/mac-win.el: Delete the code to create a fontset from the X
 +      resource "Font".
 +
 +2005-07-29  Naoto Takahashi  <ntakahas@m17n.org>
 +
 +      * international/robin.el (robin-define-package): Be sure to call
 +      put-char-code-property.
 +
 +2005-07-29  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/korean.el (iso-2022-kr): Set :suitable-for-keyboard
 +      property to 1.
 +
 +      * international/mule-conf.el (cp1125): Set :ascii-compatible-p
 +      property to t.
 +
 +      * descr-text.el (describe-char): Sync with the main trunk.
 +
 +      * international/mule.el (coding-system-get):
 +      Check `ascii-incompatible' for backward compatiblity.
 +      (set-file-name-coding-system): Signal an error for a coding system
 +      not suitable for file name.
 +      (set-keyboard-coding-system): Signal an error for a coding system
 +      not suitable for keyboard.
 +
 +      * language/chinese.el (iso-2022-cn, iso-2022-cn-ext):
 +      Set :suitable-for-keyboard property to 1.
 +
 +      * language/japanese.el (iso-2022-jp, iso-2022-jp-2)
 +      (iso-2022-jp-2004): Set :suitable-for-keyboard property to 1.
 +
 +      * language/vietnamese.el (vietnamese-viscii, vietnamese-vscii)
 +      (vietnamese-tcvn): Set :suitable-for-file-name property to t.
 +
 +2005-07-26  Naoto Takahashi  <ntakahas@m17n.org>
 +
 +      * international/robin.el (robin-define-package): Delete redundant code.
 +      (robin-add-rule): Allow N-1 reverse conversion.
 +
 +2005-07-26  Naoto Takahashi  <ntakahas@m17n.org>
 +
 +      * international/robin.el (robin-define-package): Make the
 +      expaneded form shorter.
 +
 +2005-06-05  Zhang Wei  <id.brep@gmail.com>  (tiny change)
 +
 +      * language/chinese.el (chinese-iso-8bit): Fix mime-charset of
 +      chiense-iso-8bit.
 +
 +2005-05-11  Kenichi Handa  <handa@m17n.org>
 +
 +      * loadup.el: If we are byte-compiling unidata-gen.el or running
 +      unidata-ge-files, set purify-flag to nil.
 +
 +2005-05-10  Kenichi Handa  <handa@m17n.org>
 +
 +      * loadup.el: Load international/charprop.el with NOERROR t.
 +
 +      * Makefile.in (AUTOGENEL): Add charprop.el and uni-*.el.
 +
 +2005-05-07  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/uni-bidi.el, international/uni-category.el,
 +      international/uni-combining.el, international/uni-comment.el,
 +      international/uni-decimal.el, international/uni-decomposition.el,
 +      international/uni-digit.el, international/uni-lowercase.el,
 +      international/uni-mirrored.el, international/uni-name.el,
 +      international/uni-numeric.el, international/uni-old-name.el,
 +      international/uni-titlecase.el, international/uni-uppercase.el,
 +      international/charprop.el: Re-generated.
 +
 +2005-04-22  Kenichi Handa  <handa@m17n.org>
 +
 +      * term/mac-win.el: Sync with the main trunk.
 +      (mac-centraleurroman, mac-cyrillic): New charsets and coding
 +      systems.
 +      (mac-symbol, mac-dingbats): New charsets.
 +
 +2005-04-21  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/characters.el: Set syntax of NBSP to punctuation.
 +
 +2005-04-11  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-cmds.el: Don't require wid-edit.
 +
 +2005-04-09  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/thai-util.el: Fix previous change.
 +
 +2005-03-28  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/thai-util.el: Sync with the main trunk.
 +
 +2005-03-16  Naoto Takahashi  <ntakahas@m17n.org>
 +
 +      * international/robin.el: New file.
 +
 +      * language/ethiopic.el: Encoding changed to utf-8-emacs.
 +      Register ethio-composition-function in composition-function-table.
 +      ("Ethiopic"): Coding-systems changed to utf-8-emacs.
 +
 +      * language/ethio-util.el: Encoding changed to utf-8-emacs.  All
 +      transliteration functions rewritten to use robin.el.
 +      (ethio-fidel-to-sera-map, ethio-fidel-to-tex-map)
 +      (ethio-sera-to-fidel-table, ethio-implicit-period-conversion)
 +      (ethio-prefer-ascii-punctuation): Deleted variables.
 +      (ethio-char-to-ethiocode, ethio-convert-digit)
 +      (ethio-ethiocode-to-char, ethio-fidel-to-sera-mail)
 +      (ethio-fidel-to-sera-mail-or-marker, ethio-lone-consonant-p)
 +      (ethio-sera-to-fidel-english, ethio-sera-to-fidel-ethio)
 +      (ethio-sera-to-fidel-mail, ethio-sera-to-fidel-mail-or-marker)
 +      (ethio-tilde-escape, ethio-toggle-punctuation): Deleted functions.
 +      (ethio-adjust-robin, ethio-composition-function)
 +      (ethio-get-consonant, ethio-prefer-amharic, ethio-process-digits)
 +      (ethio-sera-to-fidel-region-ethio)
 +      (ethio-sera-to-fidel-region-noethio)
 +      (ethio-use-colon-for-colon, ethio-use-three-dot-question): New
 +      functions.
 +
 +2005-01-30  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/uni-name.el: Re-generated.
 +
 +2005-02-24  Miles Bader  <miles@gnu.org>
 +
 +      * international/mule.el (auto-coding-regexp-alist)
 +      (ctext-pre-write-conversion): Replace embedded control characters
 +      with octal escapes; this prevents diff from thinking the file is
 +      binary.
 +
 +2005-02-12  Miles Bader  <miles@gnu.org>
 +
 +      * version.el (emacs-version): Change to "23.0.0".
 +
 +      * descr-text.el (describe-char-unidata-list):
 +      Replace references to Emacs version "22" with "23".
 +      * emacs-lisp/bytecomp.el (byte-compile-fix-header)
 +      (byte-compile-insert-header): Likewise.
 +      * international/mule.el (charset-list, set-coding-priority)
 +      (ignore-relative-composition): Likewise.
 +      * international/mule-util.el (detect-coding-with-priority): Likewise.
 +      * international/mule-diag.el: Likewise.
 +      * international/mule-cmds.el (language-info-custom-alist): Likewise.
 +      * international/codepage.el (codepage-setup): Likewise.
 +
 +2005-02-13  Kenichi Handa  <handa@m17n.org>
 +
 +      * case-table.el: Adjust code merged from trunk for unicode
 +      branch (for the change on 2005-02-02).
 +
 +2005-01-30  Kenichi Handa  <handa@m17n.org>
 +
 +      * Makefile.in (DONTCOMPILE): Include charprop.el and uni-*.el.
 +
 +      * international/fontset.el (font-encoding-alist): Add an entry for
 +      microsoft-cp1251.
 +      (setup-default-fontset): Add entries for microsoft-cp1251 and
 +      koi8-r for cyrillic.
 +
 +      * international/mule-cmds.el (char-code-property-alist): New
 +      variable.
 +      (define-char-code-property): New function.
 +      (get-char-code-property): Handle a char-table registerd in
 +      char-code-property-alist.
 +      (put-char-code-property): Likewise.
 +      (set-language-environment): Check :ascii-compatible-p property of
 +      nonascii charset instead of its dimension.
 +
 +      * international/uni-bidi.el, international/uni-category.el,
 +      international/uni-combining.el, international/uni-comment.el,
 +      international/uni-decimal.el, international/uni-decomposition.el,
 +      international/uni-digit.el, international/uni-lowercase.el,
 +      international/uni-mirrored.el, international/uni-name.el,
 +      international/uni-numeric.el, international/uni-old-name.el,
 +      international/uni-titlecase.el, international/uni-uppercase.el,
 +      international/charprop.el: New files automatically generated by
 +      admin/unidata/Makefile.
 +
 +      * loadup.el: Load internationnal/charprop.el.
 +
 +      * descr-text.el (describe-char-unidata-list): New variable.
 +      (describe-char-unicode-data): Use char-code-property-description.
 +      (describe-char): Add lines for describing Unicode-based character
 +      properties.
 +
 +2005-01-17  Kenichi Handa  <handa@m17n.org>
 +
 +      * textmodes/ispell.el: These changes are to fix the code merged
 +      from trunk for the change on 2005-01-13.
 +      (ispell-unified-chars-table): Delete it.
 +      (ispell-get-decoded-string): Don't check
 +      ispell-unified-chars-table.
 +
 +      * tar-mode.el (tar-extract): Adjust code merged from trunk for
 +      unicode branch (for the change on 2005-01-15).
 +
 +2004-12-09  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-util.el (char-displayable-p): Check
 +      :charset-list property of CODING.
 +
 +2004-12-06  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-cmds.el (select-safe-coding-system-interactively):
 +      Change 'mime-charset to :mime-charset.
 +      (select-safe-coding-system): Use above (sync to HEAD).
 +      (set-language-environment): Delete unnecessary code for handling
 +      overriding-fontspec
 +
 +2004-10-28  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-conf.el: New coding system aliases unix, dos,
 +      and mac.
 +
 +2004-10-19  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/titdic-cnv.el (tit-process-header): Fix embedded
 +      coding tag.
 +      (titdic-convert): Bind coding-system-for-write to the coding
 +      system specfied in the map file.  Remove `charset' property after
 +      decoding.
 +      (miscdic-convert): Bind coding-system-for-write to the coding
 +      system specfied for the map file.  Fix LANGUAGE arg to
 +      quail-define-package.
 +      (batch-miscdic-convert): Check if a file is directory or not.
 +
 +2004-10-16  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule.el (coding-system-equal): Move from mule-util.el.
 +
 +      * international/mule-util.el (coding-system-equal): Move to mule.el.
 +
 +2004-10-15  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/encoded-kb.el (encoded-kbd-decode-code-list): New
 +      function.
 +      (encoded-kbd-self-insert-charset): Support multibyte charsets.
 +      (encoded-kbd-setup-keymap): Likewise.
 +
 +2004-10-12  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/china-util.el (hz-set-msb-table): Turn chars beyond 128
 +      to eight-bit chars.
 +
 +      * international/mule-conf.el: Dont' define coding system
 +      `undecided' here.
 +
 +2004-10-06  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-cmds.el (locale-language-names): Fix for
 +      gb18030 and gdk.
 +
 +2004-10-05  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/fontset.el (font-encoding-alist): Add gbk.
 +      (charset-script-alist): Add chinese-gbk.
 +
 +2004-10-04  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/chinese.el (chinese-gbk): Include ascii in
 +      charset-list.
 +
 +      * international/encoded-kb.el (encoded-kbd-setup-keymap): Fix
 +      previous change.
 +
 +2004-09-19  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/japanese.el ("Japanese"): Fix ordering of charsets.
 +
 +2004-08-18  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/encoded-kb.el (encoded-kbd-self-insert-charset)
 +      (encoded-kbd-self-insert-utf-8, encoded-kbd-setup-keymap)
 +      (encoded-kbd-mode): Adjust code merged from trunk for unicode branch.
 +
 +2004-08-17  Kenichi Handa  <handa@m17n.org>
 +
 +      * descr-text.el (describe-char): Fix for the case CODE is a cons
 +      of integers.
 +
 +2004-08-03  Steven Tamm  <steventamm@mac.com>
 +
 +      * term/mac-win.el: Use mac-standard-fontset-spec to create
 +      fontset-mac
 +      (mac-standard-fontset-spec): Created
 +
 +2004-04-27  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-diag.el (unicode-data): Call
 +      find-file-noselect with NOWARN t.
 +
 +2004-04-21  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-conf.el (cp932-2-byte): Fix :code-space.
 +
 +2004-04-20  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/characters.el: Give more CJK characters the
 +      category `|'.
 +
 +      * descr-text.el (describe-char): Make it work on *Help* buffer.
 +      Suppress auto-compostion on a region describing about composition.
 +
 +      * language/european.el (diacritic-compose-region): Compose
 +      diacritical marks only with a character whose syntax is word
 +      constituent.
 +      (diacritic-compose-string): Likewise.
 +      (diacritic-composition-function): Likewise.
 +      (diacritic-post-read-conversion): Delete it.
 +
 +2004-04-19  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/characters.el: Fix invalid encoding caused by the
 +      previous sync.
 +
 +2004-04-16  Kenichi Handa  <handa@m17n.org>
 +
 +      Sync all files to HEAD.
 +
 +2004-04-15  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.el (auto-compose-chars): Execute the main code in
 +      condition-case.
 +
 +2004-04-14  Kenichi Handa  <handa@m17n.org>
 +
 +      * descr-text.el (describe-property-list): Sync to HEAD.
 +
 +      * international/mule-diag.el: Sync to HEAD.
 +
 +      * international/fontset.el (x-complement-fontset-spec): Don't
 +      change CHARSET_REGISTRY and CHARSET_ENCODING fields.
 +
 +2004-04-13  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/characters.el (next-word-boundary-kana): Handle
 +      half-width kana.
 +
 +2004-04-12  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-conf.el (indian-1-column): Fix :emacs-mule-id.
 +
 +2004-04-09  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/japanese.el (japanese-iso-8bit): Fix order of
 +      :charset-list.
 +
 +      * mail/rmail.el (rmail-decode-babyl-format): Use
 +      with-coding-priority instead of detect-coding-with-priority.
 +
 +2004-04-07  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule.el (make-translation-table): Set the second
 +      extra slot of the char table to 1.
 +      (make-translation-table-from-vector): Likewise.
 +      (make-translation-table-from-alist): Fix handling of multiple
 +      entries.
 +
 +2004-03-11  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/japanese.el (jisx0213-to-unicode, unicode-to-jisx0213):
 +      New translation tables.
 +
 +      * international/mule.el (make-translation-table-from-alist): New
 +      function.
 +
 +2004-03-04  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule.el (translate-region): Re-implement it here.
 +      Make it interactive.
 +
 +2004-03-03  Kenichi Handa  <handa@m17n.org>
 +
 +      * ps-mule.el (ps-mule-font-info-database): Typo in doc fixed.
 +
 +2004-02-16  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/fontset.el (font-encoding-alist): Cancel previous
 +      change.
 +
 +2004-02-13  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/fontset.el (font-encoding-alist): Register
 +      "iso10646-2" for unicode-sip.
 +
 +2004-02-12  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-conf.el (chinese-cns11643-15): New charset.
 +
 +2004-02-09  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/fontset.el (font-encoding-alist): Add entries for
 +      variations of cns11643 fonts.
 +      (setup-default-fontset): Add cns11643 fonts as fallback fonts.
 +
 +2004-02-06  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-diag.el (list-charset-chars): Put charset
 +      text property.
 +
 +      * international/fontset.el (setup-default-fontset): Delete the
 +      entry for symbol script, add JISX0213 to kana script, specify
 +      fallback fonts.
 +
 +2004-02-05  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/fontset.el (setup-default-fontset): Register
 +      "JISX0213.2004-1".
 +      (font-encoding-alist): Likewise.
 +
 +      * international/mule-diag.el (list-character-sets): Fix the first
 +      line message.
 +      (sort-listed-character-sets): Adjusted for the change of
 +      list-characters-sets-1.
 +      (list-character-sets-1): List supplementary character sets in a
 +      different section.
 +      (list-charset-chars): Validate charset at early stage.
 +
 +      * international/characters.el: Fix `han' script range.
 +
 +      * international/mule-conf.el (japanese-jisx0213.2004-1): Specify
 +      :code-space.
 +      (cp932-2-byte): Fix :code-space.
 +      (unicode-smp, unicode-sip, unicode-ssp): New charsets.
 +
 +2004-02-03  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-conf.el (japanese-jisx0213.2004-1): Specify
 +      :dimension 2.
 +
 +      * language/japanese.el (iso-2022-jp): Exclude japanese-jisx0212.
 +      (japanese-ucs-cp932-to-jis-map): Fix previous change.
 +      (japanese-ucs-jis-to-cp932-map): Likewise.
 +      (iso-2022-jp-2004, euc-jis-2004, japanese-shift-jis-2004): New
 +      coding systems.
 +      (iso-2022-jp-3, euc-jisx0213, shift_jis-2004): New coding system
 +      aliases.
 +      ("Japanese"): Add new charsets and coding system.s
 +
 +2004-02-02  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/japanese.el (japanese-ucs-cp932-to-jis-map): Renamed
 +      from japanese-ucs-cp932-map.
 +      (japanese-ucs-jis-to-cp932-map): Renamed from
 +      japanese-ucs-jis-map.
 +      (japanese-ucs-glibc-map): Delete this tranlastion table.
 +      (japanese-ucs-glibc-to-jis-map): New tranlastion table.
 +      (japanese-ucs-jis-to-glibc-map): New tranlastion table.
 +
 +2004-01-30  Kenichi Handa  <handa@m17n.org>
 +
 +      * cus-start.el: Handle charset-map-path, not
 +      charset-map-directory.
 +
 +2004-01-29  Kenichi Handa  <handa@m17n.org>
 +
 +      * term/x-win.el (x-selection-value): Optimize for ASCII only case.
 +
 +2004-01-28  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/japanese.el: Add map #x00A6 <-> #xFFE4 to translation
 +      tables japanese-ucs-*-map.
 +
 +2004-01-27  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/eucjp-ms.el: New file (automatically generated by
 +      admin/charsets/Makefile).
 +
 +      * international/cp51932.el: New file (automatically generated by
 +      admin/charsets/Makefile).
 +
 +      * language/japanese.el: Load cp51932 and eucjp-ms.
 +      (japanese-ucs-cp932-map, japanese-ucs-jis-map)
 +      (japanese-ucs-glibc-map): New translation tables.
 +      (eucjp-ms): New coding system.
 +
 +      * international/mule.el (coding-system-put): Delete it.
 +      It's implemented in C now.
 +
 +      * international/mule-conf.el (katakana-sjis): Fix :superset to
 +      :subset.
 +      (japanese-jisx0213-a): New supplementary charset.
 +      (japanese-jisx0213.2004-1): New charset.
 +
 +2004-01-25  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/japanese.el (japanese-cp932): New coding system.
 +      (cp932): New alias of it.
 +
 +      * international/mule-conf.el (katakana-sjis, cp932-2-byte)
 +      (cp932): New charsets.
 +
 +      * international/mule.el (define-charset): If :code-space is not
 +      given, generate it from :dimension.
 +
 +2004-01-23  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.el (reference-point-alist): Doc fixed.
 +      (encode-composition-rule): Handle a rule (GREF NREF XOFF YOFF).
 +      (decode-composition-rule): Likewise.
 +
 +2004-01-20  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/european.el (diacritic-composition-function): Fix for
 +      the case that POS is at the head.  Allow combining with more
 +      characters.
 +
 +2004-01-16  Kenichi Handa  <handa@m17n.org>
 +
 +      * descr-text.el (describe-char): Check `charset' property.
 +      Show the code point in the charset in hexadigits.
 +
 +      * international/mule-diag.el (stretches-for-character-list):
 +      Delete it.
 +      (list-block-of-chars): Use tabs instead of `display' property for
 +      aligning characters.
 +      (print-fontset-element): Fix the printing of XLFD.
 +
 +2004-01-15  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/encoded-kb.el (encoded-kbd-self-insert-utf-8):
 +      New function.
 +      (encoded-kbd-setup-keymap): Add code for handling utf-8.
 +      (encoded-kbd-mode): Likewise.
 +
 +2003-12-29  Kenichi Handa  <handa@m17n.org>
 +
 +      * faces.el (read-face-font): Include fontsets in the completion
 +      list.
 +
 +      * international/mule-cmds.el (set-locale-environment): Insert
 +      locale-translation-file-name in a unibyte buffer.
 +
 +      * international/characters.el: Fix setting of category `|'.
 +
 +2003-12-02  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/chinese.el (chinese-gb18030): Fix :charset-list.
 +
 +2003-11-26  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.el (auto-compose-chars): Fix previous change.
 +
 +2003-11-25  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-cmds.el (select-safe-coding-system): Fix for
 +      the case that the first element of default-coding-system is t.
 +      Fix a message when some coding systems are rejected.
 +
 +      * composite.el (auto-compose-chars): Fix previous change.
 +
 +2003-11-24  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-cmds.el (set-language-environment): Put
 +      higher priority to charsets listed in `charset' property of the
 +      language environment.
 +
 +2003-11-23  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.el (auto-compose-chars): Don't do unnecessary
 +      save-exclusion and save-restriction.
 +
 +2003-11-22  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-conf.el (ctext-no-compositions): Remove
 +      garbage arguments.
 +
 +      * international/mule.el (make-coding-system): Fix generation of
 +      properties.
 +
 +      * international/fontset.el (setup-default-fontset): Specify fonts
 +      for `symbol' script.
 +
 +      * international/characters.el (script-list): Include `currency'
 +      in `symbol'.
 +
 +2003-11-13  Alex Schroeder  <alex@gnu.org>
 +
 +      * timezone.el (timezone-parse-date): Fix style 8 to accept ISO
 +      8601 format (a capital T between the date and the time).
 +
 +2003-11-17  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule.el (private-char-area-1-min)
 +      (private-char-area-1-max, private-char-area-2-min)
 +      (private-char-area-2-max, emacs-mule-charset-table): New
 +      variables.
 +      (convert-define-charset-argument): New function.
 +      (define-charset): Handle the old calling style.  Update
 +      emacs-mule-charset-table.
 +      (make-char-internal): New function.
 +
 +2003-11-03  Jason Rumney  <jasonr@gnu.org>
 +
 +      * w32-charset-info-alist: Define iso10646-1 always.
 +
 +2003-10-24  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.el (compose-region): Doc fix (delete duplicated line).
 +
 +2003-10-17  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/characters.el: Fix syntax for Ethiopic.
 +
 +2003-10-12  Jason Rumney  <jasonr@gnu.org>
 +
 +      * w32-fns.el (w32-charset-info-alist): Accept more charset aliases.
 +
 +      * makefile.w32-in (DONTCOMPILE): Remove old languages. Add
 +      international/latin1-disp.el.
 +      (LC_ALL): Define as C.
 +
 +2003-10-11  Jason Rumney  <jasonr@gnu.org>
 +
 +      * term/w32-win.el: Don't set fontsets to use sjis.
 +
 +2003-10-01  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/japanese.el (iso-2022-jp, iso-2022-jp-2)
 +      (japanese-iso-8bit): Fix the order of charsets in :charset-list.
 +
 +2003-09-30  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.el (auto-composition-chunk-size): Variable deleted.
 +      (auto-compose-chars): Always stop after processing a newline.
 +
 +2003-09-28  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule.el (define-coding-system): Fix attribute
 +      name :for-unibyte.
 +
 +2003-09-26  Kenichi Handa  <handa@m17n.org>
 +
 +      * ps-bdf.el: Mostly re-written.
 +
 +      * ps-mule.el: Mostly re-written.
 +
 +      * ps-print.el (ps-generate-string-list): Function deleted.
 +      (ps-rh-cache, ps-lf-cache, ps-rf-cache): Variables deleted.
 +      (ps-header-footer-string): Function deleted.
 +      (ps-encode-header-string-function): New variable
 +      (ps-generate-header-line): Call ps-encode-header-string-function.
 +      (ps-basic-plot-string-function): New variable
 +      (ps-begin-job): Set ps-basic-plot-string-function and
 +      ps-encode-header-string-function.  For setting up headers and
 +      footers, don't use caches such as ps-rh-cache.  Don't call
 +      ps-mule-begin-page.
 +      (ps-basic-plot-str): Don't call ps-mule-prepare-ascii-font.
 +      (ps-basic-plot-string): Likewise.
 +      (ps-control-character): Likewise.
 +      (ps-plot-region): Don't pay attention to composition and
 +      non-ASCII characters.
 +      (ps-generate): Call ps-mule-end-job.
 +      (ps-mule-prepare-ascii-font): Delete autoload.
 +      (ps-mule-set-ascii-font): Likewise.
 +      (ps-mule-plot-string): Likewise.
 +      (ps-mule-begin-page): Likewise.
 +      (ps-mule-end-job): Declare autoload.
 +
 +      * composite.el (auto-compose-region): New function.
 +
 +2003-09-11  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-util.el
 +      (detect-coding-with-language-environment): Doc fix.
 +
 +      * composite.el: Doc fixes.
 +      (auto-compose-chars): Use functionp, not fboundp.
 +
 +      * international/mule-diag.el (list-charset-chars): Set buffer file
 +      coding system.
 +
 +      * progmodes/cap-words.el (capitalized-words-mode): Add autoload
 +      cookie.  Doc fix.
 +
 +2003-09-10  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-diag.el (list-charset-chars): Set buffer file
 +      coding system.
 +
 +      * progmodes/cap-words.el (capitalized-words-mode): Add autoload
 +      cookie.  Doc fix.
 +
 +      * textmodes/tex-mode.el (tex-font-lock-syntactic-face-function):
 +      * progmodes/sh-script.el (sh-font-lock-syntactic-face-function):
 +      * progmodes/perl-mode.el (perl-font-lock-syntactic-face-function):
 +      * eshell/esh-opt.el (eshell-process-option):
 +      * emulation/keypad.el (keypad-setup):
 +      * emacs-lisp/lisp-mode.el (prin1-char):
 +      * generic.el (generic-mode-set-comments):
 +      * edmacro.el (edmacro-parse-keys):
 +      * disp-table.el (standard-display-default): Use characterp.
 +
 +2003-06-23  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-conf.el (utf-16-be): Make it an alias of
 +      utf-16be-with-signature.
 +      (utf-16-le): Make it an alias of utf-16le-with-signature.
 +      (utf-16-be-with-signature, utf-16-le-with-signature): Remove these
 +      coding system aliases.
 +
 +      * international/utf-7.el (utf-7-decode, utf-7-encode): Use
 +      utf-16be, not utf-16-be.
 +
 +2003-06-06  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule.el (coding-system-category): New function.
 +      (set-coding-priority): Re-written.
 +      (make-translation-table): Re-written.
 +
 +      * international/mule-cmds.el (universal-coding-system-argument):
 +      Check the coding system type `undecided', not `t'.
 +      (sort-coding-systems): Fix for iso-2022 coding systems.
 +      (find-multibyte-characters): Fix for eight-bit chars.
 +      (set-language-environment): Set charset priorities according to
 +      the charsets supported by the coding systems of higher priorities.
 +
 +2003-06-05  Kenichi Handa  <handa@m17n.org>
 +
 +      * font-lock.el
 +      (font-lock-match-c-style-declaration-item-and-skip-to-next):
 +      Check (match-end 2) before goto there.
 +
 +2003-05-30  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule.el (ctext-non-standard-designations-alist):
 +      Exclude entries for iso8859-1[03456].  Fix docstring.
 +      (ctext-pre-write-conversion): Make it work for the case that FROM
 +      is a string.  Don't do unnecessary save-restriction and
 +      narrow-to-region.
 +
 +2003-05-28  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule.el (ctext-non-standard-encodings-alist):
 +      Renamed from non-standard-icccm-encodings-alist.
 +      (ctext-non-standard-encodings-regexp): New variable
 +      (ctext-post-read-conversion): Full rewrite.
 +      (ctext-non-standard-designations-alist): Renamed from
 +      non-standard-designations-alist.
 +      (ctext-pre-write-conversion): Full rewrite.
 +      (define-coding-system): Doc fix (escape '"' by '\').
 +
 +2003-05-24  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-conf.el (utf-16le, utf-16be-16be)
 +      (utf-16le-with-signature, utf-16be-with-signature, utf-16):
 +      Define :mime-text-unsuitable.  `utf-16{b,l}e...' renamed from
 +      `-16-{b,l}e-' and aliases defined for the old names.
 +
 +      * international/mule.el (define-coding-system): Doc fix.
 +
 +2003-05-08  Dave Love  <fx@gnu.org>
 +
 +      * international/utf-7.el: New file.
 +
 +      * international/mule-conf.el (utf-7): New.
 +
 +2003-05-06  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-conf.el (utf-16-be)
 +      (utf-16-be-with-signature): Cancel the previous change.
 +      (utf-16): Add :endinan 'big.
 +
 +      * international/mule.el (define-coding-system): Fix docstring
 +      about :bom and :endian.
 +
 +2003-04-30  Dave Love  <fx@gnu.org>
 +
 +      * mule-conf.el (utf-16-be)
 +      (utf-16-be-with-signature): Comment-out :endian.
 +
 +      * mule-diag.el (describe-character-set): Fix
 +      printing dimensions.  Use `\e,AW\e(B', not `x'.
 +
 +2003-04-12  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/fontset.el: Register CDAC fonts in
 +      face-font-rescale-alist instead of face-resizing-fonts.
 +
 +2003-03-28  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-conf.el (utf-16-le): Renamed from
 +      utf-16-le-nosig.
 +      (utf-16-be): Renamed from utf-16-be-nosig.
 +      (utf-16-le-with-signature): Renamed from utf-16-le.
 +      (utf-16-be-with-signature): Renamed from utf-16-be.
 +      (utf-16): Set :bom to (utf-16-le-with-signature .
 +      utf-16-be-with-signature).
 +
 +2003-02-12  Dave Love  <fx@gnu.org>
 +
 +      * language/georgian.el (georgian-ps, georgian-academy): New coding
 +      system.
 +
 +      * language/chinese.el (chinese-big5-hkscs): New coding system.
 +      (big5-hkscs, cn-big5-hkscs): New aliases.
 +
 +      * international/mule-conf.el (big5-hkscs, georgian-academy): New
 +      charset.
 +      (ibm1047): Doc fix.
 +      (pt154): Add mime-charset.
 +      (ptcp154, cp154): New aliases.
 +
 +2003-02-04  Dave Love  <fx@gnu.org>
 +
 +      * international/mule.el (charset-iso-final-char)
 +      (define-coding-system): Doc fix.
 +
 +2003-01-30  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/ccl.el (define-ccl-program): Fset charset-id
 +      to charset-id-internal temporarily.
 +
 +2003-01-21  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-diag.el (list-block-of-chars): Use
 +      decode-char instead of make-char.
 +
 +2003-01-10  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/fontset.el: Enable the default fontset to use
 +      unicode fonts for ASCII characters.
 +      (x-decompose-font-name): Don't try to resolve PATTERN by
 +      x-resolve-font-name.
 +      (x-complement-fontset-spec): Never prepend an ASCII font.
 +      (create-fontset-from-fontset-spec): If a fontset of the same name
 +      already exists, override it instead of signalling an error.  Don't
 +      turn `ascii' into `latin'.  Don't update fontset-alias-alist here.
 +
 +      * international/mule-conf.el (unicode-bmp): Delete duplicated
 +      definition.  Give it :code-offset 0.
 +
 +      * international/mule-diag.el (print-fontset-element): New
 +      function.
 +      (print-fontset): Use print-fontset-element to print the elements
 +      of a fontset.  Use it also to print fonts fallen back to the
 +      default fontsets.
 +
 +      * term/x-win.el: Delete the code to create a fontset from the X
 +      resource "Font".
 +
 +2003-01-09  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-diag.el (print-fontset): Insert proper
 +      newline and indentation spaces.
 +
 +2003-01-07  Dave Love  <fx@gnu.org>
 +
 +      * emacs-lisp/byte-opt.el (side-effect-free-fns): Add langinfo,
 +      multibyte-char-to-unibyte.
 +
 +      * emacs-lisp/cl-macs.el (cl-make-type-test): Use characterp.
 +
 +      * international/mule-cmds.el (find-coding-systems-for-charsets):
 +      Use coding-system-type, coding-system-charset-list.
 +      (standard-keyboard-coding-systems): Deleted.
 +      (set-locale-environment): Maybe set keyboard coding system.  Avoid
 +      typical warning about codeset in C locale.
 +
 +2003-01-06  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/fontset.el (x-complement-fontset-spec): If a
 +      fontname doesn't conform to XLFD format, try to get XLFD name by
 +      x-list-fonts.
 +
 +2002-12-08  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-conf.el (mik, pt154): New charsets.
 +
 +      * language/cyrillic.el (mik, pt154): New coding systems.
 +
 +2002-12-05  Dave Love  <fx@gnu.org>
 +
 +      * international/characters.el: Move parts around so that syntax
 +      definitions aren't overwritten wrongly.
 +
 +      * international/mule-diag.el (unicode-data): Fix treatment of
 +      numeric-value fields.
 +
 +2002-12-01  Dave Love  <fx@gnu.org>
 +
 +      * progmodes/cap-words.el: New file.
 +
 +2002-11-07  Kenichi Handa  <handa@m17n.org>
 +
 +      The following changes are to make character composition happen
 +      automatically on displaying.
 +
 +      * composite.el: Remove all autoload cookies.
 +      (composition-function-table): Variable declaration moved from
 +      composite.c.  Format changed.
 +      (save-buffer-state): Copied from font-lock.el.
 +      (auto-composition-chunk-size): New variable.
 +      (auto-compose-chars): New function.  Set
 +      auto-composition-function to it.
 +      (toggle-auto-composition): New function.
 +
 +      * international/characters.el: Make all chararacters in the
 +      charset tibetan to tibetan script.
 +
 +      * international/mule-conf.el (tibetan): Fix :code-space property.
 +      (tibetan-1-column): Delete :superset property, add :code-offset
 +      property.
 +
 +      * international/quail.el (quail-input-string-to-events): Don't
 +      generate compose-chars-after events.
 +
 +      * language/devanagari.el: Register devanagari-composable-function
 +      in composition-function-table for Devanagari characters.
 +
 +      * language/devan-util.el: Register devanagari-composable-pattern
 +      in indian-composable-pattern.
 +      (devanagari-composition-function): Add autoload cookie.  Change
 +      arguments to conform to composition-function-table.
 +
 +      * language/european.el: Register combining characters in
 +      composition-function-table.
 +      (diacritic-composition-function): Change arguments to conform to
 +      composition-function-table.
 +
 +      * language/indian.el (indian-composable-pattern): New variable.
 +
 +      * language/ind-util.el (indian-compose-region): Don't call
 +      compose-chars-after, instead call a function registered in
 +      composition-function-table.
 +
 +      * language/lao.el: Register lao-composition-function in
 +      composition-function-table for Lao vowels and tones.
 +      (lao): Don't use lao-post-read-conversion.
 +
 +      * language/lao-util.el (lao-post-read-conversion): Delete this
 +      function.
 +      (lao-composition-function): Change arguments to conform to
 +      composition-function-table.
 +
 +      * language/thai.el: Register thai-composition-function in
 +      composition-function-table for Thai vowels and tones.
 +      (thai-tis620): Don't use thai-post-read-conversion.
 +
 +      * language/thai-util.el (thai-post-read-conversion): Delete this
 +      function.
 +      (thai-composition-function): Change arguments to conform to
 +      composition-function-table.
 +
 +      * language/tibetan.el: Register tibetan-composition-function in
 +      composition-function-table for Tibetan characters.
 +
 +      * language/tibet-util.el (tibetan-composition-function): Change
 +      arguments to conform to composition-function-table.
 +
 +      * loadup.el: Load composite.
 +
 +2002-11-01  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-diag.el (unicode-data): Find unicodedata-file
 +      literally.
 +
 +2002-10-31  Dave Love  <fx@gnu.org>
 +
 +      * international/fontset.el: Doc fixes.
 +      ("fontset-default"): Add iso8859-15.
 +
 +2002-10-30  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/fontset.el ("fontset-default"): Add an entry for
 +      `indian-is13194' charset.
 +
 +      * international/mule-conf.el (indian-is13194): Delete :unify-map
 +      property.  Don't unify this charset.
 +      (indian-2-column): Delete :superset property, add :code-offset
 +      property.
 +
 +      * language/devan-util.el: Delete the superfluous autoload cookie
 +      near the head of the file.
 +      (devanagari-compose-region): Add autoload cookie.
 +
 +      * language/ind-util.el (indian-2-column-to-ucs-region): Add
 +      autoload cookie.
 +
 +2002-10-29  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/fontset.el ("fontset-default"): Add an entry for
 +      `devanagari' script and `malayalam-glyph' charset.
 +      (face-resizing-fonts): Register CDAC fonts.
 +
 +      * international/mule-conf.el (malayalam-glyph): New charset.
 +
 +2002-10-28  Dave Love  <fx@gnu.org>
 +
 +      * term/x-win.el: Fix typo in loop setting x-keysym-table.
 +
 +2002-10-27  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-conf.el (utf-8-emacs): Delete :mime-charset.
 +
 +      * term/x-win.el: Remove some ancient compatibility code.  Populate
 +      x-keysym-table.
 +
 +      * international/mule-cmds.el (wid-edit): Require when compiling.
 +      (set-locale-environment): Check locale against coding system
 +      aliases too.
 +
 +2002-10-25  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/indian.el (in-is13194-devanagari): Fix
 +      :post-read-conversion and :pre-write-conversion.
 +
 +2002-10-16  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-cmds.el (charset): Supply doc, :tag.
 +
 +2002-10-16  Kenichi Handa  <handa@m17n.org>
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-lapcode): Be sure to
 +      return a unibyte string.
 +
 +2002-10-15  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-cmds.el (set-locale-environment): Delete
 +      superfluous ')'s at the tail.
 +
 +2002-10-14  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/mule.el (define-coding-system): Fix typo;
 +      "docode" -> "decode".
 +
 +2002-10-14  Dave Love  <fx@gnu.org>
 +
 +      * emacs-lisp/byte-opt.el (side-effect-free-fns): Add
 +       string-make-unibyte string-make-multibyte string-to-multibyte
 +       string-as-multibyte string-as-unibyte.
 +
 +2002-10-11  Dave Love  <fx@gnu.org>
 +
 +      * language/english.el (ibm1047, cp1047): New.
 +
 +      * international/mule-conf.el (alternativnyj): Use new table.
 +      (cp866): Define standalone, not as alias.
 +      (ibm866): Change alias.
 +      (ibm1047): New.
 +
 +      * language/cyrillic.el (cyrillic-alternativnyj): Remove
 +      mime-charset.  Use alternativnj charset.
 +      (cp866): Remove alias.  Define standalone.
 +
 +2002-10-09  Dave Love  <fx@gnu.org>
 +
 +      * language/european.el ("Latin-2", "Latin-5"): Doc fix.
 +
 +      * language/cyrillic.el ("Bulgarian"): Fix input method and
 +      charset.
 +      ("Tajik", "Belarusian"): Fix charset.
 +
 +      * international/mule-cmds.el (describe-language-environment): Be
 +      case-insensitive when looking for input methods.
 +      (locale-name-match): Doc fix.
 +      (locale-charset-match-p): New.
 +      (set-locale-environment): Warn if coding system doesn't agree
 +      with system locale.
 +
 +2002-10-09  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-cmds.el (select-safe-coding-system): If
 +      :mime-charset property of a coding system is not equal to that
 +      coding system, don't show that :mime-charset name.
 +
 +2002-10-06  Dave Love  <fx@gnu.org>
 +
 +      * international/quail.el (quail-help): Fix underlining.
 +
 +      * language/chinese.el (chinese-gb18030, gb18030)
 +      ("Chinese-GB18030"): New.
 +
 +      * international/mule-cmds.el (locale-language-names): Add GB18030.
 +
 +      * international/swedish.el: Don't require latin-1.
 +
 +2002-10-05  Dave Love  <fx@gnu.org>
 +
 +      * language/czech.el ("Czech"):
 +      * language/slovak.el ("Slovak"):
 +      * language/romanian.el ("Romanian"): Remove unibyte-syntax property.
 +
 +      * language/greek.el ("Greek"): Remove unibyte-syntax property.
 +      (cp737): New coding system.
 +
 +      * language/european.el: Remove unibyte-syntax properties.
 +      Augment some coding-system properties.
 +
 +      * international/mule-cmds.el (set-language-environment): Check
 +      for charset property of environment.
 +      (language-info-alist): Doc fix.
 +
 +      * Makefile.in (DONTCOMPILE): Remove latin-N.el.
 +
 +      * international/characters.el: Add Latin-1.
 +
 +      * international/latin-1, international/latin-2, international/latin-3:
 +      * international/latin-4, international/latin-5, international/latin-8:
 +      * international/latin-9: Deleted.
 +
 +      * loadup.el: Remove international/latin-N.el.
 +
 +      * case-table.el (set-case-syntax-charset, set-case-syntax-1)
 +      (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax):
 +      Undo last changes.
 +
 +      * international/mule-diag.el (unicode-data): Check that
 +      `unicodedata-file' exists.
 +
 +2002-10-05  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/fontset.el (charset-script-alist): Fix script
 +      names.
 +
 +2002-10-01  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/latin-1.el: Bind set-case-syntax-charset to
 +      iso-8859-1.  Never provide latin-1.
 +
 +      * international/latin-2.el: Bind set-case-syntax-charset to
 +      iso-8859-2.  Never provide latin-2.
 +
 +      * international/latin-3.el: Bind set-case-syntax-charset to
 +      iso-8859-3.  Never provide latin-3.
 +
 +      * international/latin-4.el: Bind set-case-syntax-charset to
 +      iso-8859-4.  Never provide latin-4.
 +
 +      * international/latin-5.el: Bind set-case-syntax-charset to
 +      iso-8859-9.  Never provide latin-5.
 +
 +      * international/latin-8.el: Bind set-case-syntax-charset to
 +      iso-8859-14.  Never provide latin-8.
 +
 +      * international/latin-9.el: Bind set-case-syntax-charset to
 +      iso-8859-15.  Never provide latin-9.
 +
 +      * case-table.el (set-case-syntax-set-multibyte): This variable
 +      deleted.
 +      (set-case-syntax-charset): New variable.
 +      (set-case-syntax-1): New function.
 +      (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax):
 +      Call set-case-syntax-1 on arguments.
 +
 +      * international/mule-cmds.el (set-language-environment): Delete
 +      unnecessary setup of syntax/case for unibyte case.
 +
 +2002-09-27  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/fontset.el (generate-fontset-menu): Exclude the
 +      default fontset.
 +
 +      * faces.el (describe-face): Describe :fontset property too.
 +
 +2002-09-25  Dave Love  <fx@gnu.org>
 +
 +      * international/characters.el: Fix last change.
 +
 +2002-09-23  Dave Love  <fx@gnu.org>
 +
 +      * international/characters.el: Don't set char width of CJK
 +      charsets generally.  Add some non-word syntax cases.
 +      (korean-ksc5601): Fix ranges with symbol syntax.
 +
 +2002-09-14  Dave Love  <fx@gnu.org>
 +
 +      * Makefile.in (DONTCOMPILE): Add indian.el.
 +
 +      * language/ind-util.el:
 +      (ucs-bengali-to-is13194-alist, ucs-assamese-to-is13194-alist)
 +      (ucs-gurmukhi-to-is13194-alist, ucs-gujarati-to-is13194-alist)
 +      (ucs-oriya-to-is13194-alist, ucs-tamil-to-is13194-alist)
 +      (ucs-telugu-to-is13194-alist, ucs-malayalam-to-is13194-alist):
 +      Remove declarations and let-bind them in re-written top-level loop
 +      over scripts, including ucs-devanagari-to-is13194-alist.
 +
 +2002-09-14  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-cmds.el (charset): Move.
 +      (language-info-custom-alist): Move.  Alter :set.
 +      (find-coding-systems-for-charsets): Check charset type before
 +      getting :charset-list.
 +
 +      * language/ind-util.el (iscii-to-ucs-region): Fix typo.
 +
 +2002-09-12  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/mule-conf.el (emacs-mule, iso-2022-7bit)
 +      (iso-2022-7bit-ss2, iso-2022-7bit-lock, iso-2022-8bit-ss2)
 +      (compound-text, ctext-no-compositions): Cancel provious change.
 +
 +2002-09-09  Dave Love  <fx@gnu.org>
 +
 +      * wid-edit.el (widget-string-complete): New.
 +      (widget-coding-system-prompt-value-history): Deleted.
 +      (coding-system): Use coding-system-value-history.
 +
 +      * international/mule-cmds.el (charset): New widget.
 +      (language-info-custom-alist): Use it.
 +      (default-input-method): Modify :type.
 +
 +2002-09-08  Dave Love  <fx@gnu.org>
 +
 +      * language/ind-util.el (ucs-devanagari-to-is13194-alist)
 +      (indian-glyph-char, indian-char-glyph): Delete.
 +      (is13194-default-repertory): Rename from is13194-default-repartory.
 +      (iscii-to-ucs-region): Hoist evals from loop.
 +
 +      * language/devan-util.el (dev-charseq): Avoid indian-glyph-char.
 +
 +      * language/indian.el (indian-script-table)
 +      (ccl-encode-indian-glyph-font): Delete.
 +
 +      * international/mule-conf.el (emacs-mule, iso-2022-7bit)
 +      (iso-2022-7bit-ss2, iso-2022-7bit-lock, iso-2022-8bit-ss2)
 +      (compound-text, ctext-no-compositions): Remove :charset-list.
 +
 +      * international/mule-cmds.el (language-info-custom-alist): New.
 +      (input-method-activate-hook, input-method-inactivate-hook)
 +      (input-method-after-insert-chunk-hook)
 +      (input-method-use-echo-area, set-language-environment-hook)
 +      (exit-language-environment-hook): Customize.
 +      (find-coding-systems-for-charsets): Rewritten.
 +      (default-input-method): Add :link.
 +
 +2002-09-08  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-conf.el (eight-bit): Add :docstring,
 +      :short-name properties.
 +      (cp851): Doc fix.
 +      (unicode-bmp): New.
 +
 +      * case-table.el (set-case-syntax-pair): Remove check on byte lengths.
 +
 +      * language/european.el (cp858): New.
 +      ("Turkish"): Add special case rules.
 +
 +2002-09-05  Dave Love  <fx@gnu.org>
 +
 +      * international/characters.el: Make \e,_/\e(B and \e,A\7f\e(B a case pair.
 +
 +2002-09-03  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/mule-conf.el: Don't define the charset iso-8859-1
 +      here, just setup its properties.
 +
 +2002-08-21  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/mule-conf.el (utf-8): Give :mime-charset property.
 +
 +2002-08-20  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/characters.el: Remove duplicated case setting for
 +      Cyrillic and Greek letters.   Don't setup printable-chars here.
 +
 +      * case-table.el (describe-buffer-case-table): Handle the case
 +      that KEY is a cons within map-char-table.
 +
 +2002-08-19  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/characters.el: Fix categories ?A and ?C.
 +      Treat ASCII characters as `latin' script.
 +
 +2002-08-18  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/fontset.el (fontset-plain-name): If the fontset
 +      name doesn't ends with "-fontset-*", use family name as the first
 +      part of the plain name.
 +      (create-fontset-from-ascii-font): If "fontset-startup" is not yet
 +      created, use that name for the fontset.  Fix arguments to
 +      subst-char-in-string.
 +
 +2002-08-18  Dave Love  <fx@gnu.org>
 +
 +      * term.el (term-char-mode): Remove generic-character-list code.
 +
 +      * ruler-mode.el (ruler-mode-character-validate): Use characterp.
 +
 +      * wid-edit.el (character): Use characterp.
 +
 +      * international/mule-diag.el (describe-coding-system): Add utf-16 case.
 +
 +      * language/viet-util.el (viet-encode-viscii-char): Use encode-char.
 +
 +      * language/cyrillic.el ("Tajik", "Bulgarian", "Belarusian"):
 +      Add charset.
 +      ("Ukrainian"): New.
 +
 +      * language/georgian.el (georgian-ps): New coding system.
 +
 +2002-08-15  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/mule-cmds.el (reset-language-environment):
 +      Don't set nonascii-translation-table and nonascii-insert-offset.
 +      Call set-unibyte-charset, not set-primary-charset.
 +      (nonascii-translation-table, nonascii-insert-offset):
 +      Declare these variable as obsolete ones.
 +      (set-language-environment): Call set-unibyte-charset, not
 +      set-primary-charset.  Call set-charset-priority with `charset'
 +      info of the language environment.
 +
 +2002-08-08  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * tar-mode.el (tar-extract): Fix previous change.
 +
 +2002-08-02  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/characters.el (next-word-boundary-han):
 +      Don't treat katakana following han characters as a part of a word.
 +
 +2002-08-01  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/characters.el: Call map-charset-chars on big5 (not
 +      chinese-big5-1/2) to set categories `c', `C', and `|'.
 +      (next-word-boundary-han): New function.  Register it in
 +      next-word-boundary-function-table.
 +      (next-word-boundary-kana): Likewise.
 +
 +2002-07-31  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * arc-mode.el (archive-file-name-coding-system): New variable.
 +      Make it permanent-local.
 +      (byte-after, bref, insert-unibyte): New function.  Change most of
 +      char-after, aref, insert to them respectively.
 +      (archive-mode): Set archive-file-name-coding-system.
 +      (archive-summarize): Don't change the buffer's multibyteness.
 +      (archive-extract): Inherit archive-file-name-coding-system from
 +      archive-superior-buffer.  Bind coding-system-for-write to
 +      archive-file-name-coding-system.
 +      (archive-*-write-file-member): Encode ENAME by
 +      archive-file-name-coding-system.  Bind coding-system-for-write to
 +      no-conversion.
 +      (archive-rename-entry): Encode the filename by
 +      archive-file-name-coding-system.
 +      (archive-mode-revert): Don't change the buffer's multibyteness.
 +      (archive-arc-summarize, archive-lzh-summarize)
 +      (archive-zoo-summarize): Don't change the buffer's multibyteness.
 +      Decode filenames by archive-file-name-coding-system.
 +      (archive-arc-rename-entry, archive-zip-chmod-entry): Don't change
 +      the buffer's multibyteness.
 +
 +      * tar-mode.el (tar-file-name-coding-system): New variable.
 +      Make it permanent-local.
 +      (tar-header-block-tokenize): Decode filename and linkname by
 +      tar-file-name-coding-system.
 +      (tar-header-block-checksum): Call multibyte-char-to-unibyte to get
 +      the byte value of eight-bit chars.
 +      (tar-summarize-buffer): Call set-buffer-multibyte with METHOD
 +      `to'.  Delete unnecessary call of position-bytes.
 +      (tar-mode): Set tar-file-name-coding-system.  Delete unnecessary
 +      call of position-bytes.
 +      (tar-extract): Simplify by calling decode-coding-region with
 +      DESTINATION argument.  Don't toggle multibyteness of tar buffer.
 +      (tar-copy): Don't toggle multibyteness of tar buffer.
 +      (tar-expunge): Likewise.
 +      (tar-clear-modification-flags): Delete unnecessary call of
 +      position-bytes.
 +      (tar-rename-entry): Call tar-alter-one-field with encoded new name.
 +      (tar-alter-one-field): Don't toggle multibyteness of tar buffer.
 +      Convert new-data-string by string-to-multibyte before inserting it.
 +      (tar-subfile-save-buffer): Don't toggle multibyteness of tar
 +      buffer.  Simplify by calling encoding-coding-region with
 +      DESTINATION argument.
 +      (tar-mode-write-file): Delete unnecessary call of byte-to-position.
 +
 +2002-07-30  Dave Love  <fx@gnu.org>
 +
 +      * international/titdic-cnv.el (quail-cxterm-package-ext-info): Doc fix.
 +
 +      * emacs-lisp/copyright.el (copyright-regexp): Remove redundancy.
 +
 +2002-07-26  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/characters.el: Setup char-script-table.
 +
 +      * international/fontset.el: Setup the default fontset by the new
 +      script based way.
 +      (x-complement-fontset-spec): Change the format of arg FONTLIST to
 +      an alist of charsets vs font name lists.
 +      (charset-script-alist): New variable.
 +      (create-fontset-from-fontset-spec): Allow script name in
 +      FONTSET-SPEC.  If charset is specified in FONTSET-SPEC, change it
 +      to the corresponding script name.
 +      (create-fontset-from-ascii-font): Slightly tuned.
 +
 +      * international/mule-conf.el (devanagari-glyph): New charset.
 +      Unify these charsets: korean-ksc5601, ipa, tibetan, ethiopic,
 +      japanese-jisx0208, japanese-jisx0212, japanese-jisx0213-1,
 +      japanese-jisx0213-2.
 +
 +      * international/mule-diag.el (print-fontset): Use describe-vector
 +      to handle a char table returned by fontset-info.
 +
 +      * language/indian.el: Don't register ccl-encode-indian-glyph-font
 +      and ccl-encode-unicode-font in font-ccl-encoder-alist.
 +
 +2002-07-18  Dave Love  <fx@gnu.org>
 +
 +      * startup.el (fancy-splash-head): Warn about status.
 +      (fancy-splash-tail): Copyright up-date.
 +
 +2002-07-17  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/mule-util.el (detect-coding-with-priority):
 +      Fix the place of using `,' marker in backguote form.
 +
 +2002-07-12  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-conf.el (mule-unicode-e000-ffff): Set :max-code.
 +
 +      * international/mule-util.el (with-coding-priority): Fix.
 +
 +      * international/mule.el (set-coding-priority): Fix obsolete spec.
 +
 +2002-07-05  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-cmds.el (leim-list-header): Add coding tag.
 +
 +2002-07-05  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-cmds.el (find-coding-systems-region)
 +      (language-info-alist, reset-language-environment, princ-list): Doc
 +      fix.
 +      (input-method-verbose-flag): Fix :type.
 +      (set-locale-environment): Revert last change.
 +
 +2002-07-03  Dave Love  <fx@gnu.org>
 +
 +      * international/mule.el (set-char-table-default): Make obsolete.
 +
 +2002-07-01  Dave Love  <fx@gnu.org>
 +
 +      * language/devanagari.el ("Devanagari"): Fix coding-system,
 +      coding-priority.
 +
 +      * international/mule-diag.el (describe-char-after): Modify display
 +      list processing.
 +      (unicodedata-file, unicodedata-find): New.
 +
 +2002-06-29  Dave Love  <fx@gnu.org>
 +
 +      * emacs-lisp/bytecomp.el (batch-byte-compile-if-not-done): Add
 +      autoload cookie.
 +
 +      * international/ja-dic-cnv.el (skkdic-convert): Add coding tag.
 +
 +2002-06-28  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-util.el (detect-coding-with-priority):
 +      Rewritten.
 +
 +2002-06-27  Dave Love  <fx@gnu.org>
 +
 +      * composite.el (compose-string): Doc fix.
 +
 +      * language/georgian.el ("Georgian"): Delete code-pages feature,
 +      add nonascii-translation.
 +
 +      * language/european.el ("German", "French", "Spanish"): Add
 +      latin-9 as alternative coding system.
 +      ("Slovenian", "Polish"): Add windows-1250 as alternative coding
 +      system.
 +      ("Dutch"): Add latin-9 as alternative coding system.  Add input
 +      method.
 +      ("Turkish"): Add windows-1254 and latin-3 as alternative coding
 +      systems.
 +      ("Lithuanian", "Latvian"): Add windows-1257 as alternative coding
 +      system.
 +
 +      * emacs-lisp/byte-opt.el (side-effect-free-fns): Add decode-char,
 +      encode-coding-char.
 +      (side-effect-and-error-free-fns): Add charsetp, max-char,
 +      primary-charset.
 +
 +      * simple.el: Don't require cl when compiling.
 +
 +      * Makefile.in (DONTCOMPILE): Fix duplicates.
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-insert-header): Fix typo.
 +
 +      * international/mule.el: Doc fixes.
 +      (load-with-code-conversion): Fix coding-system-type test.
 +
 +      * international/mule-cmds.el (sort-coding-systems): Comment out
 +      iso-2022 case.
 +      (encoded-string-description): Fix coding-system-type test.
 +
 +2002-06-24  Dave Love  <fx@gnu.org>
 +
 +      * international/characters.el: Make korean-ksc5601 double-width.
 +
 +      * international/mule.el (auto-coding-regexp-alist): Recognize
 +      Emacs 20/1 byte-compiled files.
 +
 +      * international/mule-conf.el (file-coding-system-alist): Change
 +      .elc to utf-8-emacs.
 +
 +      * emacs-lisp/bytecomp.el (byte-recompile-directory)
 +      (batch-byte-recompile-directory): Update from trunk.
 +      (byte-compile-fix-header): Adjust for use of utf-8-emacs.
 +      (byte-compile-insert-header): Update magic number.  Add ballast.
 +      (map-char-table): Use byte-compile-funarg-2.
 +
 +2002-06-16  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-cmds.el (set-locale-environment): Use
 +      locale-codeset.
 +
 +2002-06-15  Dave Love  <fx@gnu.org>
 +
 +      * language/cyrillic.el ("Belarusian"): Doc fix.
 +      (cp1125, koi8-t): Doc fix.
 +
 +      * international/mule-cmds.el (find-multibyte-characters): Doc fix.
 +      (find-multibyte-characters): Don't test for charset `unknown'.
 +      (locale-language-names): Change or add: be, bs, cy, mk, ru.koi8,
 +      ru, sr_YU, tg, wa, zh.gbk.
 +      (locale-language-names): Change sp to Cyrillic.
 +      (locale-charset-language-names): Match @euro after utf-8.
 +
 +2002-06-13  Dave Love  <fx@gnu.org>
 +
 +      * language/chinese.el (chinese-gbk, gbk, cp936, windows-936): New
 +      coding systems.
 +      ("Chinese-GBK"): New environment.
 +
 +2002-06-12  Dave Love  <fx@gnu.org>
 +
 +      * language/chinese.el (chinese-gbk, gbk, cp936, windows-936): New
 +      coding systems.
 +      ("Chinese-GBK"): New environment.
 +
 +      * language/thai-util.el: Remove redundant unicodes in
 +      category-setting.
 +
 +      * language/lao-util.el: Remove redundant unicodes in
 +      category-setting.
 +
 +      * international/mule-conf.el (japanese-jisx0213-1)
 +      (japanese-jisx0213-2): Add unify-map.
 +
 +2002-06-12  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/quail.el (quail-update-leim-list-file): Force
 +      writing the file by iso-2022-7bit.
 +
 +      * international/titdic-cnv.el (miscdic-convert): Force writing the
 +      file by iso-2022-7bit.
 +
 +      * international/mule.el (define-charset): Change the attribute
 +      :parents to :subset or :superset.
 +
 +      * international/mule-conf.el: Adjusted for the change of
 +      define-charset (:parent -> :subset or :superset).
 +
 +      * international/characters.el: Fix the last change.
 +
 +2002-06-11  Dave Love  <fx@gnu.org>
 +
 +      * language/cyril-util.el (cyrillic-encode-koi8-r-char)
 +      (cyrillic-encode-alternativnyj-char): Fixed.
 +      (standard-display-cyrillic-translit): Remove redundant unicodes.
 +
 +2002-06-10  Dave Love  <fx@gnu.org>
 +
 +      * language/cyrillic.el ("Tajik", "Bulgarian", "Belarusian"): New
 +      environments.
 +
 +      * international/mule-conf.el (control-1): New charset.
 +      (eight-bit-control, eight-bit-graphic): Redefined to use raw-bytes
 +      space.
 +      (korean-ksc5601): Redefine to use code-offset and unify-map.
 +
 +2002-06-07  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-conf.el (tcvn-5712): New charset.
 +
 +      * language/vietnamese.el (vietnamese-tcvn, tcvn): New coding
 +      system.
 +      ("Vietnamese"): Doc fix.
 +
 +2002-06-06  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-conf.el (windows-936): New alias.
 +
 +      * cus-start.el: Add scalable-fonts-allowed.
 +
 +      * international/characters.el: Reinstate various CJK syntax and
 +      category setup.  Remove obsolete syntax setting in Greek section.
 +      Optimize the char tables.
 +
 +      * language/thai.el ("Thai"): Add cp874, iso-8859-11 coding
 +      systems.
 +
 +      * language/vietnamese.el ("Vietnamese"): Add windows-1258 coding
 +      system.
 +
 +      * language/greek.el ("Greek"): Add windows-1253, cp851, cp869
 +      coding systems.
 +
 +      * language/romanian.el ("Romanian"): Add iso-latin-10 coding
 +      system.
 +
 +2002-06-03  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/characters.el (printable-chars): Setup correctly.
 +
 +2002-06-02  Dave Love  <fx@gnu.org>
 +
 +      * cus-start.el: Add selection-coding-system.
 +
 +      * language/hebrew.el ("Hebrew"): Add windows-1255, cp862 coding
 +      systems.
 +
 +      * language/china-util.el (post-read-decode-hz)
 +      (pre-write-encode-hz): Moved from chinese.el.
 +      (big5-to-flat-code, flat-code-to-big5, euc-to-flat-code)
 +      (flat-code-to-euc, expand-euc-big5-alist, big5-to-cns): Deleted.
 +
 +      * language/chinese.el (post-read-decode-hz)
 +      (pre-write-encode-hz): Moved to china-util.el.
 +
 +      * case-table.el (set-case-syntax-pair): Test again for equal byte
 +      lengths of the pair.
 +
 +      * international/characters.el: Add Vietnamese category to
 +      equivalent unicodes.
 +
 +2002-05-31  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-conf.el (chinese-sisheng, ipa)
 +      (indian-is13194, tibetan, ethiopic): Add :unify-map.
 +
 +      * international/mule-diag.el (describe-character-set): Account for
 +      more than two dimensions of possibly different size.
 +      (describe-current-coding-system): Add selection-coding-system.
 +
 +      * international/mule-cmds.el (unify-8859-on-encoding-mode)
 +      (unify-8859-on-decoding-mode): Moved from mule.el.
 +
 +      * international/mule.el (unify-8859-on-encoding-mode)
 +      (unify-8859-on-decoding-mode): Remove :init-value.
 +      (charset-chars): Add optional dimension arg.
 +      (unify-8859-on-encoding-mode, unify-8859-on-decoding-mode): Moved
 +      to mule-cmds.el.
 +
 +2002-05-31  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/fontset.el: Change registry for japanese-jisx0208
 +      to "JISX0208*" in the default fontset.
 +      (font-encoding-alist): Add an entry for "JISX0208.1983" and
 +      "ISO10646.indian-1".
 +
 +2002-05-30  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * language/japanese.el (japanese-iso-7bit-1978-irv): Add
 +      `designation' to :flags, `ascii' to :charset-list.
 +
 +      * international/mule.el (define-charset): New args :min-code and
 +      :max-code.
 +      (coding-system-iso-2022-flags): Add use-roman, use-oldjis.
 +
 +      * international/mule-conf.el (chinese-gbk): Change :code-offset to
 +      #x160000.
 +      (gb18030-2-byte, gb18030-4-byte-bmp, gb18030-4-byte-smp,
 +      gb18030-4-byte-ext-1, gb18030-4-byte-ext-2, gb18030): New
 +      charsets.
 +
 +2002-05-29  Dave Love  <fx@gnu.org>
 +
 +      * language/thai.el (iso-8859-11): New coding system.
 +
 +      * international/mule-conf.el: Doc fixes.
 +      (iso-8859-11): New.
 +
 +2002-05-28  Dave Love  <fx@albion.dl.ac.uk>
 +
 +      * cus-start.el (scalable-fonts-allowed): Add.
 +
 +2002-05-27  Dave Love  <fx@gnu.org>
 +
 +      * international/mule.el (unify-8859-on-encoding-mode)
 +      (unify-8859-on-decoding-mode): Dummy versions.
 +
 +      * international/ucs-tables.el: Removed.
 +
 +      * Makefile.in (DONTCOMPILE): Add language/chinese.el,
 +      language/japanese.el.
 +
 +      * international/mule-conf.el: Doc fixes.
 +      (cp936): New alias.
 +      (cp720, cp858): New charsets.
 +
 +      * mail/sendmail.el (mail-recover-1, mail-recover): Use utf-8-emacs
 +      coding system, not emacs-mule.
 +
 +      * files.el (revert-buffer, recover-file): Likewise.
 +
 +      * desktop.el (desktop-save): Likewise.
 +
 +2002-05-26  Dave Love  <fx@gnu.org>
 +
 +      * international/mule.el (with-category-table): Use make-symbol.
 +      (coding-system-list): Use coding-system-aliases.
 +      (make-translation-table): Don't deal with generic characters.
 +
 +      * international/mule-util.el: (coding-system-post-read-conversion)
 +      (coding-system-pre-write-conversion)
 +      (coding-system-translation-table-for-decode)
 +      (coding-system-translation-table-for-encode): Get the right
 +      properties.
 +      (with-coding-priority): New macro.
 +      (detect-coding-with-language-environment): Use it.
 +      (coding-system-equal): Use coding-system-plist.
 +
 +      * encoded-kb.el: (encoded-kbd-setup-keymap) <ccl>:
 +      Use :valid property.
 +
 +      * mule-cmds.el (encode-coding-char): Use
 +      find-coding-systems-string.  Don't use make-char.
 +      (describe-language-environment): Use coding-system-aliases.
 +      (prefer-coding-system): Doc fix.
 +
 +      * mule-diag.el (describe-current-coding-system): Fix aliases
 +      listing.
 +      (print-iso-2022-flags): Deleted.
 +      (print-designation): Partly re-written.
 +      (describe-coding-system): Deal with iso-2022 designations, flags.
 +      Fix shift_jis case.
 +      (describe-char-after): Use characterp.  Print explicit unicode.
 +      Remove some obsolete code.
 +      (print-coding-system-briefly): Fix printing aliases.
 +      (print-coding-system): Use coding-system-aliases.
 +      (mule-diag): Don't list coding categories.
 +
 +      * mule-conf.el: Doc fixes.  Remove redundant
 +      :long-name properties.  Re-order charset priorities.
 +      (binary): New alias.
 +      (iso-8859-16): Fix nickname.
 +      (define-iso-single-byte-charset): Un-define after use.
 +
 +2002-05-26  Dave Love  <fx@gnu.org>
 +
 +      * international/mule.el (coding-system-iso-2022-flags): Revert
 +      last change.
 +
 +2002-05-25  Dave Love  <fx@gnu.org>
 +
 +      * international/characters.el: Additional double width
 +      specifications.
 +
 +      * international/mule-diag.el (print-coding-system): Incomplete
 +      updates.
 +      (describe-character-set): List more properties.
 +      (print-fontset): Fix case of vector font-spec.
 +      (describe-current-coding-system): Fix iso-7, iso-7-else.
 +
 +      * international/mule-conf.el (ibm866): Fix alias.
 +      (iso-8859-16): Fix nickname.
 +
 +      * international/mule.el (coding-system-iso-2022-flags): Add
 +      use-roman, use-oldjis.
 +
 +2002-05-23  Dave Love  <fx@gnu.org>
 +
 +      * language/ind-util.el: Avoid decode-char.
 +      (indian--puthash-char, indian--puthash-c, indian--puthash-cv):
 +      Use characterp, not char-valid-p.
 +
 +      * language/devan-util.el: Add coding tag, avoid decode-char.
 +
 +      * international/titdic-cnv.el: Add coding tag.
 +      (tit-process-header): Add coding tag to output.
 +
 +      * language/thai.el (cp874, ibm874): New coding systems.
 +
 +      * emacs-lisp/byte-opt.el <side-effect-and-error-free-fns>: Add
 +      character-p.
 +
 +      * language/european.el (cp852, ibm852, cp857, ibm857, cp860)
 +      (ibm860, cp861, ibm861, cp863, cp865, ibm865, cp437, ibm437): New
 +      coding systems.
 +      <set-language-info-alist>: Avoid decode-char.
 +
 +      * language/hebrew.el (cp862, ibm862): New coding systems.
 +
 +      * language/greek.el (cp851, ibm851, cp869, ibm869): New coding
 +      systems.
 +
 +      * language/cyrillic.el (cp855, ibm855): New coding systems.
 +
 +      * international/mule-conf.el: Avoid decode-char in top-level code
 +      for self-inserting multibyte chars.
 +      (cp437, cp737, cp775, cp851, cp852, cp855, cp857, cp855, cp857)
 +      (cp860, cp861, cp862, cp863, cp864, cp865, cp869, cp874):  New
 +      charsets.
 +
 +      * international/characters.el: Various simplifications and
 +      additions.
 +
 +2002-05-22  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-conf.el (code-pages): Provide, for
 +      compatibility.
 +
 +      * international/code-pages.el: Removed.
 +
 +2002-05-22  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * Makefile.in: Cancel the 2002-05-17 change of mine.
 +
 +      * international/fontset.el: Add setting for unicode font at the
 +      end of the default fontset.
 +
 +2002-05-21  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-conf.el (adobe-standard-encoding, symbol):
 +      Adjust :code-space.
 +      (ibm850): Add :ascii-compatible-p.
 +
 +2002-05-21  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/mule-conf.el (vietnamese-viscii-lower)
 +      (vietnamese-viscii-upper): Supply them :code-offset, then unify by
 +      mapping table.
 +
 +2002-05-20  Dave Love  <fx@gnu.org>
 +
 +      * cus-start.el: Add charset-map-directory.
 +
 +      * international/fontset.el (font-encoding-alist): Add
 +      adobe-symbol.
 +
 +      * format.el (format-alist): Remove ibm, mac, hp entries (available
 +      natively).
 +
 +      * language/romanian.el (iso-latin-10): Add :mime-charset.
 +      ("Romanian"): Add doc.
 +
 +      * international/mule-conf.el (iso-8859-10, symbol)
 +      (adobe-standard-encoding, ibm850): New charsets.
 +      (iso-8859-13): Fix IR number, final char.
 +      (file-coding-system-alist): Add .xml.
 +
 +      * language/european.el (iso-latin-6, iso-8859-10, latin-6)
 +      (iso-latin-7, iso-8859-13, latin-7, hp-roman8, roman8)
 +      (adobe-standard-encoding, cp850, ibm850): New coding systems.
 +      ("Latin-6", "Latin-7"): New language environments.
 +
 +2002-05-19  Dave Love  <fx@gnu.org>
 +
 +      * Makefile.in (DONTCOMPILE): Remove ucs-tables, utf-8,
 +      utf-8-subst; add vietnamese, cyrillic, czech.
 +
 +      * language/romanian.el (iso-latin-10): New coding system.
 +
 +      * international/mule-conf.el (emacs-mule): Set :charset-list,
 +      consistent with coding-system-charset-list doc.
 +      (iso-8859-16): New charset.
 +
 +      * international/mule-diag.el (describe-coding-system): Avoid error
 +      for iso-2022, emacs-mule.
 +
 +2002-05-17  Dave Love  <fx@gnu.org>
 +
 +      * international/codepage.el: Most of code removed or commented
 +      out.
 +      (codepage-setup): Re-written as trivial, obsolete function.
 +
 +      * language/utf-8-lang.el ("UTF-8"): Use utf-8, not mule-utf-8.
 +      Remove setup function.
 +
 +      * language/english.el (ebcdic-us, ebcdic-uk): New coding systems.
 +
 +      * Makefile.in (DONTCOMPILE): Add language/vietnamese.el,
 +      language/cyrillic.el, language/czech.el.
 +
 +      * language/vietnamese.el (windows-1258, cp1258): New coding
 +      systems.
 +      (font-ccl-encoder-alist): Remove viscii, vscii.
 +
 +      * language/hebrew.el (windows-1255, cp1255): New coding systems.
 +
 +      * language/european.el (windows-1254, cp1254, windows-1257)
 +      (cp1257, next, iso-latin-7, iso-8859-13, latin-7): New coding
 +      systems.
 +      ("Latin-7", "Lithuanian", "Latvian"): Don't require code-pages.
 +
 +      * language/greek.el (windows-1253, cp1253): New coding systems.
 +
 +      * international/mule-conf.el (ebcdic-us, ebcdic-uk): Change map
 +      file name.
 +      (windows-1253, windows-1254, windows-1255, windows-1256)
 +      (windows-1257, windows-1258, next): New charsets.
 +
 +      * international/utf-8.el, international/utf-8-subst.el: Removed.
 +
 +      * international/mule.el: Doc fixes.
 +      (charset-list, generic-char-p, set-coding-priority): Make
 +      obsolete.
 +      (coding-system-get): Try to convert old-style symbol to keyword.
 +      (define-charset): Purecopy strings in property list.
 +      (define-coding-system): Purecopy docstring.
 +
 +      * international/mule-diag.el (list-character-sets-2): Avoid
 +      charset-bytes.
 +      (list-iso-charset-chars, list-non-iso-charset-chars): Deleted.
 +      (list-block-of-chars): Re-written.
 +      (describe-character-set): Show more properties.
 +      (describe-char-after): Correct codepoint display.
 +      (print-coding-system): Use symbolic types.
 +
 +2002-05-17  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * Makefile.in: Be sure also to run emacs with LANG=C.
 +
 +2002-05-16  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-diag.el: Doc fixes.
 +      (sort-charset-list, charset-multibyte-form-string): Removed.
 +      (list-character-sets, list-character-sets-1)
 +      (list-character-sets-2): Re-written.
 +      (non-iso-charset-alist): Set to nil and made obsolete.
 +      (decode-codepage-char): Re-written and made obsolete.
 +      (read-charset): Don't use non-iso-charset-alist.
 +      (describe-coding-system): Use keyword properties.
 +      (describe-character-set): Re-written.
 +
 +      * international/mule-conf.el (koi8-u, koi8-t, georgian-ps)
 +      (windows-1250, windows-1251, windows-1252, cp1125, ebcdic-us)
 +      (ebcdic-uk): New charsets.
 +
 +      * language/cyrillic.el (koi8-u, koi8-t, windows-1251, cp1125): New
 +      coding systems.
 +
 +      * language/european.el (windows-1252): New coding system.
 +
 +2002-05-16  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * Makefile.in: By sure to run emacs with LC_ALL=C.
 +
 +      * international/encoded-kb.el (encoded-kbd-handle-8bit): Call
 +      encoded-kbd-self-insert-iso2022-8bit with argument 1.
 +      (encoded-kbd-self-insert-charset): New function.
 +      (encoded-kbd-setup-keymap): Handle a coding-system of type
 +      charset.
 +      (encoded-kbd-mode): Likewise.
 +
 +2002-05-15  Dave Love  <fx@gnu.org>
 +
 +      * international/mule-cmds.el (set-locale-environment): Comment out
 +      set-keyboard-coding-system stuff.
 +
 +2002-05-14  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/mule.el (define-coding-system): Docstring
 +      fixed (sjis->shift-jis).
 +
 +      * international/mule-conf.el: Use decode-char instead of
 +      make-char.
 +
 +      * international/encoded-kb.el
 +      (encoded-kbd-self-insert-iso2022-8bit): New arg ARG.  Directly
 +      call self-insert-command.   This is a temporary workaround to
 +      make it work with latin-1.
 +      (encoded-kbd-mode): Change `sjis' to `shift-jis'.
 +
 +      * international/characters.el: Setup char-width-table for CJK
 +      characters.
 +
 +2002-05-15  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/ja-dic-utl.el (skkdic-jisx0208-hiragana-block):
 +      Fix the initial value to specify character range of
 +      japanese-jisx0208, not unicode.
 +
 +      * international/characters.el: Set syntax/category for
 +      japanese-jisx0208.
 +
 +2002-05-14  Dave Love  <fx@gnu.org>
 +
 +      * mail/sendmail.el (sendmail-send-it): Use :mime-charset, not
 +      mime-charset.
 +
 +      * language/vietnamese.el, language/korean.el, language/japanese.el:
 +      * language/hebrew.el, language/greek.el, language/chinese.el:
 +      Fix :mime-charset properties.
 +
 +      * language/cyrillic.el (cyrillic-iso-8bit, cyrillic-koi8)
 +      (cyrillic-alternativnyj): Fix :mime-charset.
 +      (cp878, cp866): New alias.
 +
 +      * language/european.el: Fix mime-charset properties.
 +
 +      * international/mule-cmds.el (sort-coding-systems)
 +      (select-safe-coding-system, select-message-coding-system): Use
 +      :mime-charset, not 'mime-charset.
 +
 +      * international/mule-conf.el: Add various :mime-charset
 +      properties.
 +
 +2002-05-13  Dave Love  <fx@gnu.org>
 +
 +      * international/encoded-kb.el (encoded-kbd-self-insert-ccl): Fix
 +      getting decoder.
 +      (encoded-kbd-mode): Fix code for coding system type and
 +      designations.
 +
 +      * international/mule-conf.el: Speling fixes.
 +
 +2002-05-13  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/fontset.el (fontset-plain-name): Handle the case
 +      that size, weight, slant are not specified in the fontset name.
 +
 +2002-05-10  Yong Lu <lyongu@asia-infonet.com>
 +
 +      * language/greek.el (greek-iso-8bit): Fix typo.
 +
 +2002-05-10  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * language/chinese.el (chinese-big5): Change :coding-type to
 +      `charset'.
 +
 +2002-05-09  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/characters.el: Change encoding to utf-8-emacs.
 +      Remove apparent duplicate codes.
 +
 +2002-05-07  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/fontset.el: Change the registry for
 +      chinese-gb2312 and add the registry for chinese-gbk.
 +
 +      * international/mule.el (charset-chars): Fix typo.
 +
 +      * international/mule-conf.el (chinese-gbk): New charset.
 +
 +      * international/titdic-cnv.el (titdic-convert): Read into a
 +      unibyte buffer then make the buffer multibyte.
 +
 +2002-03-07  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * international/mule-conf.el (utf-16-le): Use :bom attribute
 +      instead of :signature.
 +      (utf-16-be): Likewise.
 +
 +2002-03-05  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * language/czech.el ("Czech"): Set `iso-8859-2' for
 +      `nonascii-translation'.
 +
 +      * language/romanian.el ("Romanian"): Likewise.
 +
 +      * language/slovak.el ("Slovak"): Likewise.
 +
 +      * international/characters.el: Optimize calls of
 +      modify-category-entry.
 +
 +2002-03-01  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * bindings.el: Don't bind multibyte characters to
 +      self-insert-command here.  It's done in mule-conf.el
 +
 +      * case-table.el (set-case-syntax-offset): Variable deleted.
 +      (set-case-syntax-1): Function deleted.  Callers changed.
 +      (set-case-syntax-delims): Don't check byte length of characters.
 +
 +      * isearch.el (isearch-mode-map): Call set-char-table-range to bind
 +      characters to isearch-printing-char.
 +
 +      * loadup.el: Don't load "international/utf-8".  Don't call
 +      update-coding-systems-internal.  Bind coding-system-for-write to
 +      `utf-8' while writing fns-XXX.el.  Call clear-charset-maps before
 +      dumping.
 +
 +      * version.el (emacs-version): Set to "22.0.0".
 +
 +      * emacs-lisp/regexp-opt.el (regexp-opt-charset): Adjusted for the
 +      change of map-char-table.
 +
 +      * eshell/esh-mode.el: Adjusted for the change of map-char-table.
 +
 +      * international/characters.el: Adjusted for the deletion of
 +      generic characters.
 +
 +      * international/code-pages.el (cp-make-translation-table,
 +      cp-valid-codes, cp-fix-safe-chars): Deleted.  Caller changed.
 +      (cp-make-coding-system): Call define-coding-system.
 +
 +      * international/fontset.el: Mostly re-written.
 +
 +      * international/ja-dic-cnv.el (skkdic-get-kana-compact-codes):
 +      Call encode-char instead of split-char.
 +
 +      * international/ja-dic-utl.el (skkdic-jisx0208-hiragana-block):
 +      Value changed.
 +      (skkdic-lookup-key): Call encode-char instead of split-char.
 +
 +      * international/titdic-cnv.el (titdic-convert): Bind
 +      coding-system-for-write to 'iso-2022-7bit.  Don't work on unibyte
 +      buffer.
 +
 +      * international/latin-1.el: Don't bind set-case-syntax-offset.
 +
 +      * international/latin-2.el: Don't bind set-case-syntax-offset.
 +
 +      * international/latin-3.el: Don't bind set-case-syntax-offset.
 +
 +      * international/latin-4.el: Don't bind set-case-syntax-offset.
 +
 +      * international/latin-5.el: Don't bind set-case-syntax-offset.
 +
 +      * international/latin-8.el: Don't bind set-case-syntax-offset.
 +
 +      * international/latin-9.el: Don't bind set-case-syntax-offset.
 +
 +      * international/mule-cmds.el: Don't use coding category.  Call
 +      set-coding-system-priority instead of set-coding-priority.
 +      (sort-coding-systems): Call coding-system-priority-list to get the
 +      most preferred one.
 +      (select-safe-coding-system): Likewise.
 +      (reset-language-environment): Order of coding system priority
 +      changed.  Set primary charset to iso-8859-1.
 +      (set-language-environment-coding-systems): Call
 +      set-coding-system-priority instead of set-coding-priority.
 +      (get-charset-property, put-charset-property): Moved to mule.el.
 +
 +      * international/mule-conf.el: Fully Re-written.
 +
 +      * international/mule-diag.el (print-designation): Arguments
 +      changed.
 +      (print-iso-2022-flags): New function.
 +      (describe-coding-system): Adjusted for the new structure of coding
 +      system.
 +      (describe-current-coding-system): Likewise.
 +
 +      * international/mule.el (char-valid-p): Make it an alias of
 +      characterp.
 +      (define-charset): Fully re-designed.
 +      (charset-quoted-standard-p): Deleted.
 +      (charsetp): Moved to charset.c.
 +      (charset-info, charset-id, charset-bytes, charset-width,
 +      charset-directioin, charset-iso-graphic-plane,
 +      charset-reverse-charset): Deleted.
 +      (charset-dimension, charset-chars, charset-iso-final-char,
 +      charset-description, charset-short-name, charset-long-name): Call
 +      charset-plist instead of charset-info.
 +      (charset-plist, set-charset-plist): Moved to charset.c.
 +      (get-charset-property, put-charset-property): Moved from
 +      mule-cmds.el.  Call charset-plist and set-charset-plist.
 +      (make-char): Deleted.
 +      (generic-char-p): Make it always return nil.
 +      (decode-char, encode-char): Moved to charset.c.
 +      (coding-spec-XXX-idx): Variables deleted.
 +      (coding-system-iso-2022-flags): New variable.
 +      (define-coding-system): New function.
 +      (transform-make-coding-system-args, make-coding-system): Delete.
 +      (set-coding-priority): Make it obsolete.
 +      (after-insert-file-set-buffer-file-coding-system): Adjust for
 +      the new coding system structure.
 +      (find-new-buffer-file-coding-system): Likewise.
 +
 +      * language/chinese.el, language/cyrillic.el, language/european.el,
 +      language/greek.el, language/hebrew.el, language/indian.el,
 +      language/japanese.el, language/korean.el, language/lao.el,
 +      language/thai.el, language/tibetan.el, language/vietnamese.el:
 +      Call define-coding-system instead of make-coding-system.  All CCL
 +      program deleted.
 +
 +      * textmodes/sgml-mode.el (sgml-mode-map): Use encode-char instead
 +      of make-char.
 +      (sgml-char-names-table): Iteration limit fixed.
 +
 +      * term/mac-win.el: Deleted unnecessary calls of set-fontset-font.
 +      (ccl-encode-mac-roman-font): Delete.
 +
 +      * Makefile.in (DONTCOMPILE): Add latin1-disp.el, ucs-tables.el,
 +      utf-8.el, and utf-8-subst.el as they can't be bytecompiled
 +      currently.  This is just a temporary workaround.
 +
 +;; Local Variables:
 +;; coding: iso-2022-7bit
 +;; End:
 +
 +    Copyright (C) 2002 Free Software Foundation, Inc.
 +  Copying and distribution of this file, with or without modification,
 +  are permitted provided the copyright notice and this notice are preserved.
 +
 +;;; arch-tag: d0d613db-0a9b-459c-a1c7-8a1722c771c1
Simple merge
Simple merge
Simple merge
diff --cc lisp/desktop.el
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 164c3d7ca9902920982d42b0a0545c379a1596e8,77ef1f9cd40c384b684ee1652f18b8ae499dcc35..111c45dd50a6357b667d8ce0a576009ca676805a
@@@ -2573,25 -2622,11 +2579,25 @@@ See also `locale-charset-language-names
          ;; Fixme: perhaps prefer-coding-system should set this too.
          ;; But it's not the time to do such a fundamental change.
          (setq default-sendmail-coding-system coding-system)
 -        (setq locale-coding-system coding-system))))
 +        (setq locale-coding-system coding-system))
 +
 +      (when (get-language-info current-language-environment 'coding-priority)
 +        (let ((codeset (locale-info 'codeset))
 +              (coding-system (car (coding-system-priority-list))))
 +          (when codeset
 +            (let ((cs (coding-system-aliases coding-system))
 +                  result)
 +              (while (and cs (not result))
 +                (setq result
 +                      (locale-charset-match-p (symbol-name (pop cs))
 +                                              (locale-info 'codeset))))
 +              (unless result
 +                (message "Warning: Default coding system `%s' disagrees with
 +system codeset `%s' for this locale." coding-system codeset))))))))
  
      ;; On Windows, override locale-coding-system,
-     ;; keyboard-coding-system with system codepage.  Note:
-     ;; selection-coding-system is already set in w32select.c.
+     ;; default-file-name-coding-system, keyboard-coding-system,
+     ;; terminal-coding-system with system codepage.
      (when (boundp 'w32-ansi-code-page)
        (let ((code-page-coding (intern (format "cp%d" w32-ansi-code-page))))
        (when (coding-system-p code-page-coding)
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc lisp/select.el
Simple merge
diff --cc lisp/simple.el
Simple merge
diff --cc lisp/subr.el
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc lisp/w32-fns.el
Simple merge
Simple merge
diff --cc make-dist
index 8a67e7a459c4f44c516786366f1e90f68579bb98,6da62d83f21d929c6be23c8f471d1b5407aee695..08768e16bebd42b6a309d03ddf093c789d18bb27
+++ b/make-dist
@@@ -318,7 -318,7 +318,7 @@@ for subdir in lisp site-lisp 
              leim/SKK-DIC leim/ja-dic leim/quail \
              src src/m src/s src/bitmaps lib-src oldXMenu lwlib \
              nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \
-             etc etc/charsets etc/e etc/gnus \
 -            etc etc/e etc/gnus etc/nxml \
++            etc etc/charsets etc/e etc/gnus etc/nxml \
              etc/images etc/images/ezimage etc/images/gnus etc/images/gud \
              etc/images/icons etc/images/low-color etc/images/mail \
              etc/images/smilies etc/images/smilies/grayscale \
@@@ -575,7 -575,8 +575,8 @@@ echo "Making links to \`etc'
  ### tex litter.
  (cd etc
   files=`ls -d * | grep -v CVS | grep -v RCS | grep -v 'Old' | grep -v '^e$' \
-         | grep -v '^charsets$' | grep -v '^images$' | grep -v '^refcards$' | grep -v '^tutorials$'`
 -        | grep -v '^gnus$' | grep -v '^images$' | grep -v '^nxml$' \
++        | grep -v '^charsets$' | grep -v '^gnus$' | grep -v '^images$' | grep -v '^nxml$' \
+         | grep -v '^refcards$' | grep -v '^tutorials$'| grep -v '^schema$'`
   ln $files ../${tempdir}/etc
   ## If we ended up with a symlink, or if we did not get anything
   ## due to a cross-device symlink, copy the file.
   rm -f DOC* *~ \#*\# *.dvi *.log *.orig *.rej *,v =* core
   rm -f TAGS)
  
- for dir in etc/charsets etc/e etc/gnus etc/tutorials etc/refcards ; do
 -for dir in etc/e etc/gnus etc/nxml etc/tutorials etc/refcards etc/schema ; do
++for dir in etc/charsets etc/e etc/gnus etc/nxml etc/tutorials etc/refcards etc/schema ; do
      echo "Making links to \`${dir}'"
      (cd ${dir}
        ln `ls -d * | grep -v CVS | grep -v RCS` ../../${tempdir}/${dir}
diff --cc src/Makefile.in
index 5e476cd59caa63b6cccccb0db4102f3655a027d9,fd8afdc99ba8152a16e49f3a170bbdd7a43543cc..e1e5d457fc23fe1516d3da4fe4ec1d5d7aa141e9
@@@ -276,7 -281,7 +282,7 @@@ DBUS_OBJ = dbusbind.
  
  /* C_SWITCH_X_SITE must come before C_SWITCH_X_MACHINE and C_SWITCH_X_SYSTEM
     since it may have -I options that should override those two.  */
- ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(TOOLKIT_DEFINES) $(MYCPPFLAGS) -I. -I${srcdir} C_SWITCH_MACHINE C_SWITCH_SYSTEM C_SWITCH_SITE C_SWITCH_X_SITE C_SWITCH_X_MACHINE C_SWITCH_X_SYSTEM C_SWITCH_SYSTEM_TEMACS ${CFLAGS_SOUND} ${RSVG_CFLAGS} ${CFLAGS} @FREETYPE_CFLAGS@ @FONTCONFIG_CFLAGS@ @LIBOTF_CFLAGS@ @M17N_FLT_CFLAGS@
 -ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(TOOLKIT_DEFINES) $(MYCPPFLAGS) -I. -I${srcdir} C_SWITCH_MACHINE C_SWITCH_SYSTEM C_SWITCH_SITE C_SWITCH_X_SITE C_SWITCH_X_MACHINE C_SWITCH_X_SYSTEM C_SWITCH_SYSTEM_TEMACS ${CFLAGS_SOUND} ${RSVG_CFLAGS} ${DBUS_CFLAGS} ${CFLAGS}
++ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(TOOLKIT_DEFINES) $(MYCPPFLAGS) -I. -I${srcdir} C_SWITCH_MACHINE C_SWITCH_SYSTEM C_SWITCH_SITE C_SWITCH_X_SITE C_SWITCH_X_MACHINE C_SWITCH_X_SYSTEM C_SWITCH_SYSTEM_TEMACS ${CFLAGS_SOUND} ${RSVG_CFLAGS} ${DBUS_CFLAGS} ${CFLAGS} @FREETYPE_CFLAGS@ @FONTCONFIG_CFLAGS@ @LIBOTF_CFLAGS@ @M17N_FLT_CFLAGS@
  .c.o:
        $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
  
@@@ -607,8 -593,8 +613,8 @@@ FONTOBJ = font.
  /* lastfile must follow all files
     whose initialized data areas should be dumped as pure by dump-emacs.  */
  obj=    dispnew.o frame.o scroll.o xdisp.o $(XMENU_OBJ) window.o \
 -      charset.o coding.o category.o ccl.o \
 +      charset.o coding.o category.o ccl.o character.o chartab.o \
-       cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ)\
+       cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ) $(DBUS_OBJ) \
        emacs.o keyboard.o macros.o keymap.o sysdep.o \
        buffer.o filelock.o insdel.o marker.o \
        minibuf.o fileio.o dired.o filemode.o \
@@@ -943,11 -944,10 +949,11 @@@ SOME_MACHINE_LISP = ${dotdot}/lisp/mous
     Note that SunOS needs -lm to come before -lc; otherwise, you get
     duplicated symbols.  If the standard libraries were compiled
     with GCC, we might need gnulib again after them.  */
- LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) $(RSVG_LIBS) LIBGPM \
-    LIBRESOLV LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \
+ LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) $(RSVG_LIBS) $(DBUS_LIBS) \
+    LIBGPM LIBRESOLV LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \
 -   LIBS_DEBUG $(GETLOADAVG_LIBS) $(GNULIB_VAR) LIB_MATH LIB_STANDARD \
 -   $(GNULIB_VAR)
 +   LIBS_DEBUG $(GETLOADAVG_LIBS) \
 +   @FREETYPE_LIBS@ @FONTCONFIG_LIBS@ @LIBOTF_LIBS@ @M17N_FLT_LIBS@ \
 +   $(GNULIB_VAR) LIB_MATH LIB_STANDARD $(GNULIB_VAR)
  
  /* Enable recompilation of certain other files depending on system type.  */
  
diff --cc src/alloc.c
Simple merge
diff --cc src/buffer.c
Simple merge
diff --cc src/buffer.h
Simple merge
diff --cc src/config.in
Simple merge
diff --cc src/data.c
Simple merge
diff --cc src/dispnew.c
Simple merge
diff --cc src/editfns.c
index 66e3883494ff0ddd8a37bedd2c9bcd6057fd0072,f5b71f2aa1826750e0f84a5bf7bc99cb453f8563..fa1b229bfc4cc16eed57802bd514616776c42150
@@@ -3735,11 -3605,11 +3737,11 @@@ usage: (format STRING &rest OBJECTS)  *
                  && *format != 'i' && *format != 'X' && *format != 'c')
                error ("Invalid format operation %%%c", *format);
  
-           thissize = 30;
+           thissize = 30 + (precision[n] > 0 ? precision[n] : 0);
            if (*format == 'c')
              {
 -              if (! SINGLE_BYTE_CHAR_P (XINT (args[n]))
 -                  /* Note: No one can remember why we have to treat
 +              if (! ASCII_CHAR_P (XINT (args[n]))
 +                  /* Note: No one can remeber why we have to treat
                       the character 0 as a multibyte character here.
                       But, until it causes a real problem, let's
                       don't change it.  */
diff --cc src/emacs.c
index 71743c45964f8c29a49a04eaf473ca0e9a7abf72,85aa2f3a6f79c1f413e8fddd80a79763f602dbc9..21e583f7d91ec0851566f6a61d3087bd177d86bb
@@@ -1691,8 -1670,7 +1695,9 @@@ main (argc, arg
  #endif  /* HAVE_NTGUI */
      }
  
 +  init_charset ();
 +
+   init_editfns (); /* init_process uses Voperating_system_release. */
    init_process (); /* init_display uses add_keyboard_wait_descriptor. */
  #ifndef MAC_OS8
    /* Called before init_window_once for Mac OS Classic.  */
diff --cc src/keyboard.c
index 0678fcdb4ded7d5d2893926f840773a871580d35,7febb3f064fa1595dfcee561d09c694344286269..6595b7f800d2199a2fcec0aee7683580d3b6edd9
@@@ -10069,50 -10116,27 +10116,57 @@@ read_key_sequence (keybuf, bufsize, pro
  
        /* If KEY is not defined in any of the keymaps,
         and cannot be part of a function key or translation,
 -       and is an upper case letter or shifted key,
 -       use the corresponding lower-case/unshifted key instead.  */
 +       and is an upper case letter
 +       use the corresponding lower-case letter instead.  */
 +      if (first_binding >= nmaps
 +        && /* indec.start >= t && fkey.start >= t && */ keytran.start >= t
 +        && INTEGERP (key)
 +        && ((CHARACTERP (make_number (XINT (key) & ~CHAR_MODIFIER_MASK))
 +             && UPPERCASEP (XINT (key) & ~CHAR_MODIFIER_MASK))
 +            || (XINT (key) & shift_modifier)))
 +      {
 +        Lisp_Object new_key;
 +
 +        original_uppercase = key;
 +        original_uppercase_position = t - 1;
 +
 +        if (XINT (key) & shift_modifier)
 +          XSETINT (new_key, XINT (key) & ~shift_modifier);
 +        else
 +          XSETINT (new_key, (DOWNCASE (XINT (key) & ~CHAR_MODIFIER_MASK)
 +                             | (XINT (key) & ~CHAR_MODIFIER_MASK)));
 +
 +        /* We have to do this unconditionally, regardless of whether
 +           the lower-case char is defined in the keymaps, because they
 +           might get translated through function-key-map.  */
 +        keybuf[t - 1] = new_key;
 +        mock_input = max (t, mock_input);
 +
 +        goto replay_sequence;
 +      }
 +      /* If KEY is not defined in any of the keymaps,
 +       and cannot be part of a function key or translation,
 +       and is a shifted function key,
 +       use the corresponding unshifted function key instead.  */
        if (first_binding >= nmaps
-         && /* indec.start >= t && fkey.start >= t && */ keytran.start >= t
-         && SYMBOLP (key))
-       {
-         Lisp_Object breakdown;
-         int modifiers;
-         breakdown = parse_modifiers (key);
-         modifiers = XINT (XCAR (XCDR (breakdown)));
-         if (modifiers & shift_modifier)
+         && /* indec.start >= t && fkey.start >= t && */ keytran.start >= t)
+       {
+         Lisp_Object breakdown = parse_modifiers (key);
+         int modifiers
+           = CONSP (breakdown) ? (XINT (XCAR (XCDR (breakdown)))) : 0;
+         if (modifiers & shift_modifier
+             /* Treat uppercase keys as shifted.  */
+             || (INTEGERP (key)
+                 & (KEY_TO_CHAR (key)
+                    < XCHAR_TABLE (current_buffer->downcase_table)->size)
+                 && UPPERCASEP (KEY_TO_CHAR (key))))
            {
-             Lisp_Object new_key;
+             Lisp_Object new_key
+               = (modifiers & shift_modifier
+                  ? apply_modifiers (modifiers & ~shift_modifier,
+                                     XCAR (breakdown))
+                  : make_number (DOWNCASE (KEY_TO_CHAR (key)) | modifiers));
  
              original_uppercase = key;
              original_uppercase_position = t - 1;
diff --cc src/keymap.c
Simple merge
diff --cc src/lisp.h
index f4b93ff9dceed0eb52009e704ca0a0c0cc2da632,ee51db1f425e4e76de97c1df7d788b8b7cf45329..fb53f68b07352b1a2088e5c35b81e2a483cc94ee
@@@ -348,8 -348,8 +348,9 @@@ enum pvec_typ
    PVEC_BUFFER = 0x20000,
    PVEC_HASH_TABLE = 0x40000,
    PVEC_TERMINAL = 0x80000,
 -  PVEC_OTHER = 0x100000,
 -  PVEC_TYPE_MASK = 0x1ffe00
 +  PVEC_SUB_CHAR_TABLE = 0x100000,
-   PVEC_TYPE_MASK = 0x1ffe00
++  PVEC_OTHER = 0x200000,
++  PVEC_TYPE_MASK = 0x2ffe00
  
  #if 0 /* This is used to make the value of PSEUDOVECTOR_FLAG available to
         GDB.  It doesn't work on OS Alpha.  Moved to a variable in
@@@ -2566,9 -2604,15 +2568,13 @@@ extern Lisp_Object make_pure_vector P_ 
  EXFUN (Fgarbage_collect, 0);
  EXFUN (Fmake_byte_code, MANY);
  EXFUN (Fmake_bool_vector, 2);
 -EXFUN (Fmake_char_table, 2);
 -extern Lisp_Object make_sub_char_table P_ ((Lisp_Object));
  extern Lisp_Object Qchar_table_extra_slots;
  extern struct Lisp_Vector *allocate_vector P_ ((EMACS_INT));
- extern struct Lisp_Vector *allocate_other_vector P_ ((EMACS_INT));
+ extern struct Lisp_Vector *allocate_pseudovector P_ ((int memlen, int lisplen, EMACS_INT tag));
+ #define ALLOCATE_PSEUDOVECTOR(typ,field,tag)                          \
+   ((typ*)                                                             \
+    allocate_pseudovector                                              \
+        (VECSIZE (typ), PSEUDOVECSIZE (typ, field), tag))
  extern struct Lisp_Hash_Table *allocate_hash_table P_ ((void));
  extern struct window *allocate_window P_ ((void));
  extern struct frame *allocate_frame P_ ((void));
diff --cc src/macfns.c
Simple merge
diff --cc src/macterm.c
Simple merge
diff --cc src/print.c
Simple merge
diff --cc src/process.c
Simple merge
diff --cc src/search.c
Simple merge
diff --cc src/term.c
Simple merge
diff --cc src/w32bdf.c
Simple merge
index 72411d7d4be01945df31c0067dcf76cbab828645,b1514f960b71e3f5309ea3e56daa30c401e08cd9..d5f7a66a0e84cd32ab753160562898a9407994be
@@@ -32,11 -32,9 +32,9 @@@ Boston, MA 02110-1301, USA
  #include <string.h>
  
  #include "lisp.h"
 -#include "charset.h"
 +#include "character.h"
  #include "coding.h"
  #include "disptab.h"
- /* Disable features in frame.h that require a Window System.  */
- #undef HAVE_WINDOW_SYSTEM
  #include "frame.h"
  #include "termhooks.h"
  #include "termchar.h"
diff --cc src/w32fns.c
index 03179c6952efc92bad05400cf335294078ba2258,491ccedeb135b727d8cd85fb9f86464a39be43bd..3e4413a0beee8b0a2b05bf78e85eba8a3d8f7df1
@@@ -5535,14 -5344,12 +5527,17 @@@ w32_to_x_font (lplogfont, lpxstr, len, 
    coding.mode |= CODING_MODE_LAST_BLOCK;
    /* We explicitely disable composition handling because selection
       data should not contain any composition sequence.  */
 -  coding.composing = COMPOSITION_DISABLED;
 -  bufsz = decoding_buffer_size (&coding, LF_FACESIZE);
 +  coding.common_flags &= ~CODING_ANNOTATION_MASK;
 +
 +  coding.dst_bytes = LF_FACESIZE * 2;
 +  coding.destination = (unsigned char *) xmalloc (coding.dst_bytes + 1);
 +  decode_coding_c_string (&coding, lplogfont->lfFaceName,
 +                        strlen(lplogfont->lfFaceName), Qnil);
 +  fontname = coding.destination;
  
+   fontname = alloca (sizeof (*fontname) * bufsz);
+   decode_coding (&coding, lplogfont->lfFaceName, fontname,
+                  strlen (lplogfont->lfFaceName), bufsz - 1);
    *(fontname + coding.produced) = '\0';
  
    /* Replace dashes with underscores so the dashes are not
diff --cc src/w32proc.c
Simple merge
diff --cc src/w32term.h
Simple merge
diff --cc src/window.c
Simple merge
diff --cc src/xdisp.c
Simple merge
diff --cc src/xfaces.c
Simple merge
diff --cc src/xfns.c
Simple merge
diff --cc src/xterm.c
index 55185fb57f2b588355874c6ae3cb960a0b3ed883,895d61df71400827d1475dceafc6a7bd2face454..023d0194c59bd9fd9fd51fdd073c3c2996b744cd
@@@ -4205,11 -3958,11 +4205,11 @@@ x_window_to_scroll_bar (display, window
        for (bar = FRAME_SCROLL_BARS (XFRAME (frame));
           /* This trick allows us to search both the ordinary and
                condemned scroll bar lists with one loop.  */
 -         ! GC_NILP (bar) || (bar = condemned,
 +         ! NILP (bar) || (bar = condemned,
                               condemned = Qnil,
 -                             ! GC_NILP (bar));
 +                             ! NILP (bar));
           bar = XSCROLL_BAR (bar)->next)
-       if (SCROLL_BAR_X_WINDOW (XSCROLL_BAR (bar)) == window_id &&
+       if (XSCROLL_BAR (bar)->x_window == window_id &&
              FRAME_X_DISPLAY (XFRAME (frame)) == display)
          return XSCROLL_BAR (bar);
      }
diff --cc src/xterm.h
Simple merge