From: Miles Bader Date: Thu, 6 Dec 2007 09:51:45 +0000 (+0000) Subject: Merge from emacs--devo--0 X-Git-Tag: emacs-pretest-23.0.90~8295^2~163 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0bd508417142ff377f34aec8dcec9438d9175c2c;p=emacs.git Merge from emacs--devo--0 Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-294 --- 0bd508417142ff377f34aec8dcec9438d9175c2c diff --cc configure index 1fc2db097b8,b222b9bc902..74ab9d542f9 --- a/configure +++ 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 @@@ -12012,83 -12013,236 +12045,190 @@@ _ACEO fi fi + 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 + -### 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_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 +#include +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 @@@ -25164,13 -24759,6 +25263,15 @@@ _ACEO 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 7150e5fa0ba,804fd5484a8..76fd9a48173 --- a/configure.in +++ b/configure.in @@@ -2252,6 -2260,48 +2267,17 @@@ if test "${HAVE_GTK}" = "yes"; the 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 + -### 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 Do not put whitespace before the #include statements below. dnl Older compilers (eg sunos4 cc) choke on it. HAVE_XAW3D=no diff --cc etc/schema/calstbl.rnc index 00000000000,5d334e8ebd2..df71a7cb1fe mode 000000,100644..100644 --- a/etc/schema/calstbl.rnc +++ b/etc/schema/calstbl.rnc @@@ -1,0 -1,184 +1,184 @@@ + # 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.2 2003/08/30 06:04:02 jjc Exp $ ++# $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 ................................. + + # ...................................................................... diff --cc etc/schema/dbhier.rnc index 00000000000,1671b01fbce..fd735bc62da mode 000000,100644..100644 --- a/etc/schema/dbhier.rnc +++ b/etc/schema/dbhier.rnc @@@ -1,0 -1,1467 +1,1467 @@@ + # ...................................................................... + + # 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 2003/08/30 04:19:27 jjc Exp $ ++# $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: + # + # + # %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 ........................ + + # ...................................................................... diff --cc etc/schema/dbnotn.rnc index 00000000000,2a6185f27fd..bb1116fc19f mode 000000,100644..100644 --- a/etc/schema/dbnotn.rnc +++ b/etc/schema/dbnotn.rnc @@@ -1,0 -1,84 +1,84 @@@ + # ...................................................................... + + # 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 2003/08/30 04:19:27 jjc Exp $ ++# $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: + # + # + # %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 ................................. + + # ...................................................................... diff --cc etc/schema/dbpool.rnc index 00000000000,46236eb7b7b..ec99516700e mode 000000,100644..100644 --- a/etc/schema/dbpool.rnc +++ b/etc/schema/dbpool.rnc @@@ -1,0 -1,5083 +1,5083 @@@ + # 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.4 2003/08/30 07:48:31 jjc Exp $ ++# $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: + # + # + # %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., Δ + 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 ...................... + + # ...................................................................... diff --cc etc/schema/xslt.rnc index 00000000000,eaa332f86b3..573e6f93478 mode 000000,100644..100644 --- a/etc/schema/xslt.rnc +++ b/etc/schema/xslt.rnc @@@ -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 = + """([^\{\}]|\{\{|\}\}|\{([^"'\{\}]|"[^"]*"|'[^']*')+\})*""" + } diff --cc lib-src/makefile.w32-in index 8e01c9dfeaf,a61edad3820..8b327bfabf8 --- a/lib-src/makefile.w32-in +++ b/lib-src/makefile.w32-in @@@ -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.unicode index b12b4b5cb71,00000000000..4c42467b605 mode 100644,000000..100644 --- a/lisp/ChangeLog.unicode +++ b/lisp/ChangeLog.unicode @@@ -1,3220 -1,0 +1,3224 @@@ +2007-12-06 Kenichi Handa + + * 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 + + * international/fontset.el (x-complement-fontset-spec): Use + font-spec. + +2007-12-01 Kenichi Handa + + * 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 + + * ps-print.el (ps-lpr-switches): Docstring fix. + (ps-string-list): New fun. + (ps-do-despool): Code fix. + +2007-11-19 Kenichi Handa + + * 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 + + * 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 + + * 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 + + * term/w32-win.el (w32-initialize-window-system): Use t, not nil + to signify default fontset. + +2007-06-19 Kenichi Handa + + * international/mule-cmds.el (describe-language-environment): + Check if the specified input method exists or not. + ++2007-11-12 Katsumi Yamaoka ++ ++ * ldefs-boot.el: Regenerate. ++ +2007-11-11 Vinicius Jose Latorre + + * 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 + + * 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 + + * ps-print.el: Eliminate the check if ps-print was running on Lucid or + Epoch emacsen. + +2007-10-27 Vinicius Jose Latorre + + * 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 + + * 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 + + * 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 + + * 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 + + 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 + + * ps-print.el: Fix the usage of :foreground and :background face + attributes. Reported by Nikolaj Schumacher . + (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 + + * skeleton.el (skeleton-internal-1): Use integerp and stringp + instead of char-or-string-p to catch -1. + +2007-09-04 Kenichi Handa + + * 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 + + * 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 + + * 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 + + * ps-print.el (ps-font-size): Doc fix. + +2007-08-08 Vinicius Jose Latorre + + * 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 . + +2007-08-06 Vinicius Jose Latorre + + * printing.el (pr-update-menus): Docstring fix. + +2007-08-05 Vinicius Jose Latorre + + * printing.el: Require lpr and ps-print when loading printing package. + Reported by Glenn Morris . + +2007-08-03 Vinicius Jose Latorre + + * 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 + + * 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 + + * international/mule-diag.el (print-fontset-element): Use fontp + only if defined. + +2007-07-25 Vinicius Jose Latorre + + * 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 + + * ps-print.el: Problem with foreground and background color when + printing a buffer with and without faces. Reported by Christian + Schlauer . + (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 + + * dnd.el (dnd-get-local-file-name): Call replace-regexp-in-string + with FIXEDCASE t. + +2007-06-20 Kenichi Handa + + * 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 + + * descr-text.el (describe-char): Fix for the case that a component + character is TAB. + +2007-06-16 Kenichi Handa + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * printing.el (pr-ps-fast-fire): Fix typos in docstring. + +2007-05-13 Vinicius Jose Latorre + + * ps-print.el: Use default color when foreground or background color + are unspecified. Reported by Leo . + (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 + + * vc-bzr.el: New file. + +2007-03-23 Kenichi Handa + + * international/characters.el: Add more cases/syntaxes from Latin + characters. + +2007-03-09 Vinicius Jose Latorre + + * 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 + + * ps-print.el: Replace some (defvar VAR) by (defvar VAR nil). + +2007-03-01 Vinicius Jose Latorre + + * 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 + + * 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 + + * international/titdic-cnv.el: Synch with HEAD. + +2007-02-11 Vinicius Jose Latorre + + * 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 + + * ps-print.ps: The ps-print commands without face printing should not + print background color. Reported by Leo . + (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 + + * international/mule-diag.el (list-character-sets-2): Don't print + width. + +2007-01-26 Vinicius Jose Latorre + + * ps-print.ps: Fix background height. + (ps-print-version): New version 7.2.1. + +2007-01-25 Vinicius Jose Latorre + + * 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 + + * ps-print.el: Handle frame parameters (background and/or foreground + colors) changing dynamically. Reported by Leo . + (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 + + * 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 + + * ps-print.el : Fix doc. + (ps-print-version): New version 7.0. + +2006-11-29 Kenichi Handa + + * mail/emacsbug.el (report-emacs-bug): Insert also the value of + XMODIFIERS. + +2006-11-28 Vinicius Jose Latorre + + * 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 + + * international/quail.el (quail-get-translations): Make + quail-current-key multibyte if not yet done. + +2006-11-27 Zhang Wei + + * 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 (tiny change) + + * ps-mule.el: Fix maintainer email. + +2006-11-22 Kenichi Handa + + * 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 + + * 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 + + * ruler-mode.el (ruler-mode-ruler): Make the string `ruler' + mulitbyte. + +2006-11-13 Kenichi Handa + + * international/mule-cmds.el (ucs-insert): Re-implement. + +2006-11-09 Kenichi Handa + + * composite.el (terminal-composition-modification): New function. + (terminal-composition-function): Create composition with the above + modification function. + +2006-11-08 Zhang Wei (tiny change) + + * international/characters.el: Add more full-width characters in + char-width-table. + +2006-10-30 Kenichi Handa + + * international/fontset.el (create-fontset-from-fontset-spec): Fix + script name handling. + +2006-10-26 Kenichi Handa + + * 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 + + * 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 + + * international/mule.el (coding-system-list): Be sure to exclude + subsidiary coding systems. + +2006-10-05 Kenichi Handa + + * 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 + + * language/misc-lang.el (iso-8859-6): New coding system. + +2006-09-21 Kenichi Handa + + * dnd.el (dnd-get-local-file-name): Give a unibyte string to + replace-regexp-in-string as replacement. + +2006-08-28 Kenichi Handa + + * 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 + + * 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 + + * international/mule-cmds.el (select-safe-coding-system): Fix + synching with head. + +2006-08-03 Katsumi Yamaoka + + * ldefs-boot.el: Delete the section for utf-7. + +2006-07-24 Kenichi Handa + + * composite.el (auto-compose-current-font): New variable. + (auto-compose-chars): New arg FONT-OBJECT. + +2006-07-20 Kenichi Handa + + * international/characters.el: Modify category-table and + script-table for new Ethiopic character range. + +2006-07-07 Kenichi Handa + + * 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 + + * international/fontset.el (otf-script-alist): Set it. + +2006-06-28 Kenichi Handa + + * international/fontset.el (font-encoding-alist): Fix for + "ethiopic-unicode". + +2006-06-23 Kenichi Handa + + * international/fontset.el (script-representative-chars): Add an + entry for latin script. + +2006-06-19 Kenichi Handa + + * 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 + + * tar-mode.el (tar-extract): Sync with HEAD. + +2006-06-06 Kenichi Handa + + 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 + + * 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 + + * international/characters.el: Cancel unnecessary sync code for + HEAD. + +2006-03-28 Kenichi Handa + + * tar-mode.el (tar-untar-buffer, tar-summarize-buffer): Call + set-buffer-multibyte with arg `to'. + +2006-03-14 Kenichi Handa + + * info.el (Info-fontify-node): Check if already fontified or not + by next-single-property-change. + +2006-03-08 Kenichi Handa + + * international/mule.el (ctext-pre-write-conversion): Produce + extra designation sequence for ASCII at the end off extended + segment. + +2006-03-07 Kenichi Handa + + * 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 + + * international/fontset.el (create-fontset-from-fontset-spec): Fix + regexp for paring FONTSET-SPEC (allow spaces after `:'). + +2006-03-03 Kenichi Handa + + * 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 + + * 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 + + * 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 + + * 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 (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 + + * international/kkc.el (kkc-region): Use + this-single-command-raw-keys on pushing back an unhandled key + sequence. + +2006-02-24 Kenichi Handa + + * 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 + + * 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 + + * descr-text.el (describe-char): Use insert-text-button instead of + widget-create for "customize what to show" button. + +2006-01-19 Stefan Monnier + + * 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 + + * 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 + + * international/mule.el (autoload-coding-system): Install the same + function as in HEAD. + +2005-12-28 Kenichi Handa + + * international/characters.el: Register characters in + auto-fill-chars. Put nospace-between-words to more charsets. + +2005-10-27 Zhang Wei (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 + + * 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 + + * term/mac-win.el: Delete the code to create a fontset from the X + resource "Font". + +2005-07-29 Naoto Takahashi + + * international/robin.el (robin-define-package): Be sure to call + put-char-code-property. + +2005-07-29 Kenichi Handa + + * 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 + + * international/robin.el (robin-define-package): Delete redundant code. + (robin-add-rule): Allow N-1 reverse conversion. + +2005-07-26 Naoto Takahashi + + * international/robin.el (robin-define-package): Make the + expaneded form shorter. + +2005-06-05 Zhang Wei (tiny change) + + * language/chinese.el (chinese-iso-8bit): Fix mime-charset of + chiense-iso-8bit. + +2005-05-11 Kenichi Handa + + * 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 + + * loadup.el: Load international/charprop.el with NOERROR t. + + * Makefile.in (AUTOGENEL): Add charprop.el and uni-*.el. + +2005-05-07 Kenichi Handa + + * 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 + + * 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 + + * international/characters.el: Set syntax of NBSP to punctuation. + +2005-04-11 Kenichi Handa + + * international/mule-cmds.el: Don't require wid-edit. + +2005-04-09 Kenichi Handa + + * language/thai-util.el: Fix previous change. + +2005-03-28 Kenichi Handa + + * language/thai-util.el: Sync with the main trunk. + +2005-03-16 Naoto Takahashi + + * 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 + + * international/uni-name.el: Re-generated. + +2005-02-24 Miles Bader + + * 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 + + * 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 + + * case-table.el: Adjust code merged from trunk for unicode + branch (for the change on 2005-02-02). + +2005-01-30 Kenichi Handa + + * 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 + + * 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 + + * international/mule-util.el (char-displayable-p): Check + :charset-list property of CODING. + +2004-12-06 Kenichi Handa + + * 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 + + * international/mule-conf.el: New coding system aliases unix, dos, + and mac. + +2004-10-19 Kenichi Handa + + * 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 + + * 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 + + * 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 + + * 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 + + * international/mule-cmds.el (locale-language-names): Fix for + gb18030 and gdk. + +2004-10-05 Kenichi Handa + + * international/fontset.el (font-encoding-alist): Add gbk. + (charset-script-alist): Add chinese-gbk. + +2004-10-04 Kenichi Handa + + * 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 + + * language/japanese.el ("Japanese"): Fix ordering of charsets. + +2004-08-18 Kenichi Handa + + * 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 + + * descr-text.el (describe-char): Fix for the case CODE is a cons + of integers. + +2004-08-03 Steven Tamm + + * term/mac-win.el: Use mac-standard-fontset-spec to create + fontset-mac + (mac-standard-fontset-spec): Created + +2004-04-27 Kenichi Handa + + * international/mule-diag.el (unicode-data): Call + find-file-noselect with NOWARN t. + +2004-04-21 Kenichi Handa + + * international/mule-conf.el (cp932-2-byte): Fix :code-space. + +2004-04-20 Kenichi Handa + + * 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 + + * international/characters.el: Fix invalid encoding caused by the + previous sync. + +2004-04-16 Kenichi Handa + + Sync all files to HEAD. + +2004-04-15 Kenichi Handa + + * composite.el (auto-compose-chars): Execute the main code in + condition-case. + +2004-04-14 Kenichi Handa + + * 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 + + * international/characters.el (next-word-boundary-kana): Handle + half-width kana. + +2004-04-12 Kenichi Handa + + * international/mule-conf.el (indian-1-column): Fix :emacs-mule-id. + +2004-04-09 Kenichi Handa + + * 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 + + * 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 + + * 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 + + * international/mule.el (translate-region): Re-implement it here. + Make it interactive. + +2004-03-03 Kenichi Handa + + * ps-mule.el (ps-mule-font-info-database): Typo in doc fixed. + +2004-02-16 Kenichi Handa + + * international/fontset.el (font-encoding-alist): Cancel previous + change. + +2004-02-13 Kenichi Handa + + * international/fontset.el (font-encoding-alist): Register + "iso10646-2" for unicode-sip. + +2004-02-12 Kenichi Handa + + * international/mule-conf.el (chinese-cns11643-15): New charset. + +2004-02-09 Kenichi Handa + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * cus-start.el: Handle charset-map-path, not + charset-map-directory. + +2004-01-29 Kenichi Handa + + * term/x-win.el (x-selection-value): Optimize for ASCII only case. + +2004-01-28 Kenichi Handa + + * language/japanese.el: Add map #x00A6 <-> #xFFE4 to translation + tables japanese-ucs-*-map. + +2004-01-27 Kenichi Handa + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * language/chinese.el (chinese-gb18030): Fix :charset-list. + +2003-11-26 Kenichi Handa + + * composite.el (auto-compose-chars): Fix previous change. + +2003-11-25 Kenichi Handa + + * 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 + + * 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 + + * composite.el (auto-compose-chars): Don't do unnecessary + save-exclusion and save-restriction. + +2003-11-22 Kenichi Handa + + * 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 + + * 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 + + * 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 + + * w32-charset-info-alist: Define iso10646-1 always. + +2003-10-24 Kenichi Handa + + * composite.el (compose-region): Doc fix (delete duplicated line). + +2003-10-17 Kenichi Handa + + * international/characters.el: Fix syntax for Ethiopic. + +2003-10-12 Jason Rumney + + * 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 + + * term/w32-win.el: Don't set fontsets to use sjis. + +2003-10-01 Kenichi Handa + + * 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 + + * composite.el (auto-composition-chunk-size): Variable deleted. + (auto-compose-chars): Always stop after processing a newline. + +2003-09-28 Kenichi Handa + + * international/mule.el (define-coding-system): Fix attribute + name :for-unibyte. + +2003-09-26 Kenichi Handa + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * international/utf-7.el: New file. + + * international/mule-conf.el (utf-7): New. + +2003-05-06 Kenichi Handa + + * 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 + + * mule-conf.el (utf-16-be) + (utf-16-be-with-signature): Comment-out :endian. + + * mule-diag.el (describe-character-set): Fix + printing dimensions. Use `,AW(B', not `x'. + +2003-04-12 Kenichi Handa + + * international/fontset.el: Register CDAC fonts in + face-font-rescale-alist instead of face-resizing-fonts. + +2003-03-28 Kenichi Handa + + * 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 + + * 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 + + * international/mule.el (charset-iso-final-char) + (define-coding-system): Doc fix. + +2003-01-30 Kenichi Handa + + * international/ccl.el (define-ccl-program): Fset charset-id + to charset-id-internal temporarily. + +2003-01-21 Kenichi Handa + + * international/mule-diag.el (list-block-of-chars): Use + decode-char instead of make-char. + +2003-01-10 Kenichi Handa + + * 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 + + * international/mule-diag.el (print-fontset): Insert proper + newline and indentation spaces. + +2003-01-07 Dave Love + + * 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 + + * 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 + + * international/mule-conf.el (mik, pt154): New charsets. + + * language/cyrillic.el (mik, pt154): New coding systems. + +2002-12-05 Dave Love + + * 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 + + * progmodes/cap-words.el: New file. + +2002-11-07 Kenichi Handa + + 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 + + * international/mule-diag.el (unicode-data): Find unicodedata-file + literally. + +2002-10-31 Dave Love + + * international/fontset.el: Doc fixes. + ("fontset-default"): Add iso8859-15. + +2002-10-30 Kenichi Handa + + * 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 + + * 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 + + * term/x-win.el: Fix typo in loop setting x-keysym-table. + +2002-10-27 Dave Love + + * 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 + + * language/indian.el (in-is13194-devanagari): Fix + :post-read-conversion and :pre-write-conversion. + +2002-10-16 Dave Love + + * international/mule-cmds.el (charset): Supply doc, :tag. + +2002-10-16 Kenichi Handa + + * emacs-lisp/bytecomp.el (byte-compile-lapcode): Be sure to + return a unibyte string. + +2002-10-15 Kenichi Handa + + * international/mule-cmds.el (set-locale-environment): Delete + superfluous ')'s at the tail. + +2002-10-14 Kenichi Handa + + * international/mule.el (define-coding-system): Fix typo; + "docode" -> "decode". + +2002-10-14 Dave Love + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * international/fontset.el (charset-script-alist): Fix script + names. + +2002-10-01 Kenichi Handa + + * 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 + + * international/fontset.el (generate-fontset-menu): Exclude the + default fontset. + + * faces.el (describe-face): Describe :fontset property too. + +2002-09-25 Dave Love + + * international/characters.el: Fix last change. + +2002-09-23 Dave Love + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * international/characters.el: Make ,_/(B and ,A(B a case pair. + +2002-09-03 Kenichi Handa + + * international/mule-conf.el: Don't define the charset iso-8859-1 + here, just setup its properties. + +2002-08-21 Kenichi Handa + + * international/mule-conf.el (utf-8): Give :mime-charset property. + +2002-08-20 Kenichi Handa + + * 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 + + * international/characters.el: Fix categories ?A and ?C. + Treat ASCII characters as `latin' script. + +2002-08-18 Kenichi Handa + + * 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 + + * 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 + + * 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 + + * tar-mode.el (tar-extract): Fix previous change. + +2002-08-02 Kenichi Handa + + * 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 + + * 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 + + * 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 + + * international/titdic-cnv.el (quail-cxterm-package-ext-info): Doc fix. + + * emacs-lisp/copyright.el (copyright-regexp): Remove redundancy. + +2002-07-26 Kenichi Handa + + * 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 + + * startup.el (fancy-splash-head): Warn about status. + (fancy-splash-tail): Copyright up-date. + +2002-07-17 Kenichi Handa + + * international/mule-util.el (detect-coding-with-priority): + Fix the place of using `,' marker in backguote form. + +2002-07-12 Dave Love + + * 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 + + * international/mule-cmds.el (leim-list-header): Add coding tag. + +2002-07-05 Dave Love + + * 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 + + * international/mule.el (set-char-table-default): Make obsolete. + +2002-07-01 Dave Love + + * 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 + + * 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 + + * international/mule-util.el (detect-coding-with-priority): + Rewritten. + +2002-06-27 Dave Love + + * 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 + + * 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 + + * international/mule-cmds.el (set-locale-environment): Use + locale-codeset. + +2002-06-15 Dave Love + + * 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 + + * language/chinese.el (chinese-gbk, gbk, cp936, windows-936): New + coding systems. + ("Chinese-GBK"): New environment. + +2002-06-12 Dave Love + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * international/characters.el (printable-chars): Setup correctly. + +2002-06-02 Dave Love + + * 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 + + * 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 + + * 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 + + * 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 + + * language/thai.el (iso-8859-11): New coding system. + + * international/mule-conf.el: Doc fixes. + (iso-8859-11): New. + +2002-05-28 Dave Love + + * cus-start.el (scalable-fonts-allowed): Add. + +2002-05-27 Dave Love + + * 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 + + * 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) : + 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 + + * international/mule.el (coding-system-iso-2022-flags): Revert + last change. + +2002-05-25 Dave Love + + * 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 + + * 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 : Add + character-p. + + * language/european.el (cp852, ibm852, cp857, ibm857, cp860) + (ibm860, cp861, ibm861, cp863, cp865, ibm865, cp437, ibm437): New + coding systems. + : 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 + + * international/mule-conf.el (code-pages): Provide, for + compatibility. + + * international/code-pages.el: Removed. + +2002-05-22 Kenichi Handa + + * 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 + + * international/mule-conf.el (adobe-standard-encoding, symbol): + Adjust :code-space. + (ibm850): Add :ascii-compatible-p. + +2002-05-21 Kenichi Handa + + * international/mule-conf.el (vietnamese-viscii-lower) + (vietnamese-viscii-upper): Supply them :code-offset, then unify by + mapping table. + +2002-05-20 Dave Love + + * 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 + + * 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 + + * 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 + + * Makefile.in: Be sure also to run emacs with LANG=C. + +2002-05-16 Dave Love + + * 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 + + * 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 + + * international/mule-cmds.el (set-locale-environment): Comment out + set-keyboard-coding-system stuff. + +2002-05-14 Kenichi Handa + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * language/greek.el (greek-iso-8bit): Fix typo. + +2002-05-10 Kenichi Handa + + * language/chinese.el (chinese-big5): Change :coding-type to + `charset'. + +2002-05-09 Kenichi Handa + + * international/characters.el: Change encoding to utf-8-emacs. + Remove apparent duplicate codes. + +2002-05-07 Kenichi Handa + + * 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 + + * international/mule-conf.el (utf-16-le): Use :bom attribute + instead of :signature. + (utf-16-be): Likewise. + +2002-03-05 Kenichi Handa + + * 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 + + * 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 diff --cc lisp/international/mule-cmds.el index 164c3d7ca99,77ef1f9cd40..111c45dd50a --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@@ -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) diff --cc make-dist index 8a67e7a459c,6da62d83f21..08768e16beb --- a/make-dist +++ 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. @@@ -598,7 -599,7 +599,7 @@@ 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 5e476cd59ca,fd8afdc99ba..e1e5d457fc2 --- a/src/Makefile.in +++ b/src/Makefile.in @@@ -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/editfns.c index 66e3883494f,f5b71f2aa18..fa1b229bfc4 --- a/src/editfns.c +++ b/src/editfns.c @@@ -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 71743c45964,85aa2f3a6f7..21e583f7d91 --- a/src/emacs.c +++ b/src/emacs.c @@@ -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 0678fcdb4de,7febb3f064f..6595b7f800d --- a/src/keyboard.c +++ b/src/keyboard.c @@@ -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/lisp.h index f4b93ff9dce,ee51db1f425..fb53f68b073 --- a/src/lisp.h +++ b/src/lisp.h @@@ -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/w32console.c index 72411d7d4be,b1514f960b7..d5f7a66a0e8 --- a/src/w32console.c +++ b/src/w32console.c @@@ -32,11 -32,9 +32,9 @@@ Boston, MA 02110-1301, USA #include #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 03179c6952e,491ccedeb13..3e4413a0bee --- a/src/w32fns.c +++ b/src/w32fns.c @@@ -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/xterm.c index 55185fb57f2,895d61df714..023d0194c59 --- a/src/xterm.c +++ b/src/xterm.c @@@ -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); }