-longer used by Emacs. These changes to PSGML 1.2.2 fix that.
-
---- psgml-edit.el 2001/03/03 00:23:31 1.1
-+++ psgml-edit.el 2001/03/03 00:24:22
-@@ -264,4 +264,4 @@
- ; inhibit-read-only
-- (before-change-function nil)
-- (after-change-function nil))
-+ (before-change-functions nil)
-+ (after-change-functions nil))
- (setq selective-display t)
-@@ -1544,3 +1544,3 @@
- (buffer-read-only nil)
-- (before-change-function nil)
-+ (before-change-functions nil)
- (markup-index ; match-data index in tag regexp
-@@ -1596,3 +1596,3 @@
- (defun sgml-expand-shortref-to-text (name)
-- (let (before-change-function
-+ (let (before-change-functions
- (entity (sgml-lookup-entity name (sgml-dtd-entities sgml-dtd-info))))
-@@ -1613,3 +1613,3 @@
- (re-found nil)
-- before-change-function)
-+ before-change-functions)
- (goto-char sgml-markup-start)
-@@ -1646,3 +1646,3 @@
- (goto-char (sgml-element-end element))
-- (let ((before-change-function nil))
-+ (let ((before-change-functions nil))
- (sgml-normalize-content element only-one)))
---- psgml-other.el 2001/03/03 00:23:42 1.1
-+++ psgml-other.el 2001/03/03 00:30:05
-@@ -32,2 +32,3 @@
- (require 'easymenu)
-+(eval-when-compile (require 'cl))
-
-@@ -61,4 +62,9 @@
- (let ((submenu
-- (subseq entries 0 (min (length entries)
-- sgml-max-menu-size))))
-+;;; (subseq entries 0 (min (length entries)
-+;;; sgml-max-menu-size))
-+ (let ((new (copy-sequence entries)))
-+ (setcdr (nthcdr (1- (min (length entries)
-+ sgml-max-menu-size))
-+ new) nil)
-+ new)))
- (setq entries (nthcdr sgml-max-menu-size entries))
-@@ -113,9 +119,10 @@
- (let ((inhibit-read-only t)
-- (after-change-function nil) ; obsolete variable
-- (before-change-function nil) ; obsolete variable
- (after-change-functions nil)
-- (before-change-functions nil))
-+ (before-change-functions nil)
-+ (modified (buffer-modified-p))
-+ (buffer-undo-list t)
-+ deactivate-mark)
- (put-text-property start end 'face face)
-- (when (< start end)
-- (put-text-property (1- end) end 'rear-nonsticky '(face)))))
-+ (when (and (not modified) (buffer-modified-p))
-+ (set-buffer-modified-p nil))))
- (t
---- psgml-parse.el 2001/03/03 00:23:57 1.1
-+++ psgml-parse.el 2001/03/03 00:29:56
-@@ -40,2 +40,4 @@
-
-+(eval-when-compile (require 'cl))
-+
- \f
-@@ -2493,8 +2495,8 @@
- (setq sgml-scratch-buffer nil))
-- (when after-change-function ;***
-- (message "OOPS: after-change-function not NIL in scratch buffer %s: %s"
-+ (when after-change-functions ;***
-+ (message "OOPS: after-change-functions not NIL in scratch buffer %s: %S"
- (current-buffer)
-- after-change-function)
-- (setq before-change-function nil
-- after-change-function nil))
-+ after-change-functions)
-+ (setq before-change-functions nil
-+ after-change-functions nil))
- (setq sgml-last-entity-buffer (current-buffer))
-@@ -2878,6 +2880,5 @@
- "Set initial state of parsing"
-- (make-local-variable 'before-change-function)
-- (setq before-change-function 'sgml-note-change-at)
-- (make-local-variable 'after-change-function)
-- (setq after-change-function 'sgml-set-face-after-change)
-+ (set (make-local-variable 'before-change-functions) '(sgml-note-change-at))
-+ (set (make-local-variable 'after-change-functions)
-+ '(sgml-set-face-after-change))
- (sgml-set-active-dtd-indicator (sgml-dtd-doctype dtd))
-@@ -3925,7 +3926,7 @@
- (sgml-need-dtd)
-- (unless before-change-function
-- (message "WARN: before-change-function has been lost, restoring (%s)"
-+ (unless before-change-functions
-+ (message "WARN: before-change-functions has been lost, restoring (%s)"
- (current-buffer))
-- (setq before-change-function 'sgml-note-change-at)
-- (setq after-change-function 'sgml-set-face-after-change))
-+ (setq before-change-functions '(sgml-note-change-at))
-+ (setq after-change-functions '(sgml-set-face-after-change)))
- (sgml-with-parser-syntax-ro
-
-* The Calc package fails to build and signals errors with Emacs 21.
-
-Apply the following patches which reportedly fix several problems:
-
---- calc-ext.el.~1~ Sun Apr 3 02:26:34 1994
-+++ calc-ext.el Wed Sep 18 17:35:01 1996
-@@ -1354,6 +1354,25 @@
- (calc-fancy-prefix 'calc-inverse-flag "Inverse..." n)
- )
-
-+(defconst calc-fancy-prefix-map
-+ (let ((map (make-sparse-keymap)))
-+ (define-key map [t] 'calc-fancy-prefix-other-key)
-+ (define-key map (vector meta-prefix-char t) 'calc-fancy-prefix-other-key)
-+ (define-key map [switch-frame] nil)
-+ (define-key map [?\C-u] 'universal-argument)
-+ (define-key map [?0] 'digit-argument)
-+ (define-key map [?1] 'digit-argument)
-+ (define-key map [?2] 'digit-argument)
-+ (define-key map [?3] 'digit-argument)
-+ (define-key map [?4] 'digit-argument)
-+ (define-key map [?5] 'digit-argument)
-+ (define-key map [?6] 'digit-argument)
-+ (define-key map [?7] 'digit-argument)
-+ (define-key map [?8] 'digit-argument)
-+ (define-key map [?9] 'digit-argument)
-+ map)
-+ "Keymap used while processing calc-fancy-prefix.")
-+
- (defun calc-fancy-prefix (flag msg n)
- (let (prefix)
- (calc-wrapper
-@@ -1364,6 +1383,8 @@
- (message (if prefix msg "")))
- (and prefix
- (not calc-is-keypad-press)
-+ (if (boundp 'overriding-terminal-local-map)
-+ (setq overriding-terminal-local-map calc-fancy-prefix-map)
- (let ((event (calc-read-key t)))
- (if (eq (setq last-command-char (car event)) ?\C-u)
- (universal-argument)
-@@ -1376,9 +1397,18 @@
- (if (or (not (integerp last-command-char))
- (eq last-command-char ?-))
- (calc-unread-command)
-- (digit-argument n))))))
-+ (digit-argument n)))))))
- )
- (setq calc-is-keypad-press nil)
-+
-+(defun calc-fancy-prefix-other-key (arg)
-+ (interactive "P")
-+ (if (or (not (integerp last-command-char))
-+ (and (>= last-command-char 0) (< last-command-char ? )
-+ (not (eq last-command-char meta-prefix-char))))
-+ (calc-wrapper)) ; clear flags if not a Calc command.
-+ (calc-unread-command)
-+ (setq overriding-terminal-local-map nil))
-
- (defun calc-invert-func ()
- (save-excursion
-
---- Makefile.~1~ Sun Dec 15 23:50:45 1996
-+++ Makefile Thu Nov 30 15:09:45 2000
-@@ -41,7 +41,7 @@
-
- # Other macros.
- EFLAGS = -batch
--MAINT = -l calc-maint.elc
-+MAINT = -l calc-maint.el
-
- # Control whether intermediate files are kept.
- PURGE = -rm -f
-@@ -154,10 +154,7 @@
-
-
- # All this because "-l calc-maint" doesn't work.
--maint: calc-maint.elc
--calc-maint.elc: calc-maint.el
-- cp calc-maint.el calc-maint.elc
--
-+maint: calc-maint.el
-
- # Create an Emacs TAGS file
- tags: TAGS
-
---- calc-aent.el.~1~ Sun Dec 15 23:50:36 1996
-+++ calc-aent.el Tue Nov 21 18:34:33 2000
-@@ -385,7 +385,7 @@
- (calc-minibuffer-contains
- "\\`\\([^\"]*\"[^\"]*\"\\)*[^\"]*\"[^\"]*\\'"))
- (insert "`")
-- (setq alg-exp (buffer-string))
-+ (setq alg-exp (field-string))
- (and (> (length alg-exp) 0) (setq calc-previous-alg-entry alg-exp))
- (exit-minibuffer))
- )
-@@ -393,14 +393,14 @@
-
- (defun calcAlg-enter ()
- (interactive)
-- (let* ((str (buffer-string))
-+ (let* ((str (field-string))
- (exp (and (> (length str) 0)
- (save-excursion
- (set-buffer calc-buffer)
- (math-read-exprs str)))))
- (if (eq (car-safe exp) 'error)
- (progn
-- (goto-char (point-min))
-+ (goto-char (field-beginning))
- (forward-char (nth 1 exp))
- (beep)
- (calc-temp-minibuffer-message
-@@ -455,14 +455,14 @@
- (interactive)
- (if (calc-minibuffer-contains ".*[@oh] *[^'m ]+[^'m]*\\'")
- (calcDigit-key)
-- (setq calc-digit-value (buffer-string))
-+ (setq calc-digit-value (field-string))
- (exit-minibuffer))
- )
-
- (defun calcDigit-edit ()
- (interactive)
- (calc-unread-command)
-- (setq calc-digit-value (buffer-string))
-+ (setq calc-digit-value (field-string))
- (exit-minibuffer)
- )
-
---- calc.el.~1~ Sun Dec 15 23:50:47 1996
-+++ calc.el Wed Nov 22 13:08:49 2000
-@@ -2051,11 +2051,11 @@
- ;; Exercise for the reader: Figure out why this is a good precaution!
- (or (boundp 'calc-buffer)
- (use-local-map minibuffer-local-map))
-- (let ((str (buffer-string)))
-+ (let ((str (field-string)))
- (setq calc-digit-value (save-excursion
- (set-buffer calc-buffer)
- (math-read-number str))))
-- (if (and (null calc-digit-value) (> (buffer-size) 0))
-+ (if (and (null calc-digit-value) (> (field-end) (field-beginning)))
- (progn
- (beep)
- (calc-temp-minibuffer-message " [Bad format]"))
-@@ -2071,7 +2071,7 @@
-
- (defun calc-minibuffer-contains (rex)
- (save-excursion
-- (goto-char (point-min))
-+ (goto-char (field-end (point-min)))
- (looking-at rex))
- )
-
-@@ -2158,10 +2158,8 @@
- (upcase last-command-char))))
- (and dig
- (< dig radix)))))))
-- (save-excursion
-- (goto-char (point-min))
-- (looking-at
-- "[-+]?\\(.*\\+/- *\\|.*mod *\\)?\\([0-9]+\\.?0*[@oh] *\\)?\\([0-9]+\\.?0*['m] *\\)?[0-9]*\\(\\.?[0-9]*\\(e[-+]?[0-3]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?\\)?\\|[0-9]:\\([0-9]+:\\)?[0-9]*\\)?[\"s]?\\'")))
-+ (calc-minibuffer-contains
-+ "[-+]?\\(.*\\+/- *\\|.*mod *\\)?\\([0-9]+\\.?0*[@oh] *\\)?\\([0-9]+\\.?0*['m] *\\)?[0-9]*\\(\\.?[0-9]*\\(e[-+]?[0-3]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?\\)?\\|[0-9]:\\([0-9]+:\\)?[0-9]*\\)?[\"s]?\\'"))
- (if (and (memq last-command-char '(?@ ?o ?h ?\' ?m))
- (string-match " " calc-hms-format))
- (insert " "))
-@@ -2190,7 +2188,7 @@
- ((eq last-command 'calcDigit-start)
- (erase-buffer))
- (t (backward-delete-char 1)))
-- (if (= (buffer-size) 0)
-+ (if (= (field-beginning) (field-end))
- (progn
- (setq last-command-char 13)
- (calcDigit-nondigit)))
-
-* TeX'ing the Calc manual fails.
-
-The following patches allow to build the Calc manual using texinfo.tex
-from Emacs 19.34 distribution:
-
-*** calc-maint.e~0 Mon Dec 16 07:11:26 1996
---- calc-maint.el Sun Dec 10 14:32:38 2000
-***************
-*** 308,314 ****
- (insert "@tex\n"
- "\\global\\advance\\appendixno2\n"
- "\\gdef\\xref#1.{See ``#1.''}\n")
-! (setq midpos (point))
- (insert "@end tex\n")
- (insert-buffer-substring srcbuf sumpos endpos)
- (insert "@bye\n")
---- 308,314 ----
- (insert "@tex\n"
- "\\global\\advance\\appendixno2\n"
- "\\gdef\\xref#1.{See ``#1.''}\n")
-! (setq midpos (point-marker))
- (insert "@end tex\n")
- (insert-buffer-substring srcbuf sumpos endpos)
- (insert "@bye\n")
-*** Makefile.~0 Mon Dec 16 07:11:24 1996
---- Makefile Sun Dec 10 14:44:00 2000
-***************
-*** 98,106 ****
- # Format the Calc manual as one printable volume using TeX.
- tex:
- $(REMOVE) calc.aux
-! $(TEX) calc.texinfo
- $(TEXINDEX) calc.[cfkptv]?
-! $(TEX) calc.texinfo
- $(PURGE) calc.cp calc.fn calc.pg calc.tp calc.vr
- $(PURGE) calc.cps calc.fns calc.kys calc.pgs calc.tps calc.vrs
- $(PURGE) calc.toc
---- 98,106 ----
- # Format the Calc manual as one printable volume using TeX.
- tex:
- $(REMOVE) calc.aux
-! -$(TEX) calc.texinfo
- $(TEXINDEX) calc.[cfkptv]?
-! -$(TEX) calc.texinfo
- $(PURGE) calc.cp calc.fn calc.pg calc.tp calc.vr
- $(PURGE) calc.cps calc.fns calc.kys calc.pgs calc.tps calc.vrs
- $(PURGE) calc.toc
-*** calc.texinfo.~1~ Thu Oct 10 18:18:56 1996
---- calc.texinfo Mon Dec 11 08:25:00 2000
-***************
-*** 12,17 ****
---- 12,19 ----
- % Because makeinfo.c exists, we can't just define new commands.
- % So instead, we take over little-used existing commands.
- %
-+ % Suggested by Karl Berry <karl@@freefriends.org>
-+ \gdef\!{\mskip-\thinmuskip}
- % Redefine @cite{text} to act like $text$ in regular TeX.
- % Info will typeset this same as @samp{text}.
- \gdef\goodtex{\tex \let\rm\goodrm \let\t\ttfont \turnoffactive}
-***************
-*** 23686,23692 ****
- a vector of the actual parameter values, written as equations:
- @cite{[a = 3, b = 2]}, in case you'd rather read them in a list
- than pick them out of the formula. (You can type @kbd{t y}
-! to move this vector to the stack; @pxref{Trail Commands})
-
- Specifying a different independent variable name will affect the
- resulting formula: @kbd{a F 1 k RET} produces @kbd{3 + 2 k}.
---- 23689,23695 ----
- a vector of the actual parameter values, written as equations:
- @cite{[a = 3, b = 2]}, in case you'd rather read them in a list
- than pick them out of the formula. (You can type @kbd{t y}
-! to move this vector to the stack; see @ref{Trail Commands}.)
-
- Specifying a different independent variable name will affect the
- resulting formula: @kbd{a F 1 k RET} produces @kbd{3 + 2 k}.
+longer used by Emacs. Please use PSGML 1.2.3 or later.
+
+* PSGML conflicts with sgml-mode.
+
+PSGML package uses the same names of some variables (like keymap)
+as built-in sgml-mode.el because it was created as a replacement
+of that package. The conflict will be shown if you load
+sgml-mode.el before psgml.el. E.g. this could happen if you edit
+HTML page and then start to work with SGML or XML file. html-mode
+(from sgml-mode.el) is used for HTML file and loading of psgml.el
+(for sgml-mode or xml-mode) will cause an error.
+
+* The LDAP support rely on ldapsearch program from OpenLDAP version 2.
+
+It can fail to work with ldapsearch program from OpenLDAP version 1.
+Version 1 of OpenLDAP is now deprecated. If you are still using it,
+please upgrade to version 2. As a temporary workaround, remove
+argument "-x" from the variable `ldap-ldapsearch-args'.
+
+* Unicode characters are not unified with other Mule charsets.
+
+As of v21.1, Emacs charsets are still not unified. This means that
+characters which belong to charsets such as Latin-2, Greek, Hebrew,
+etc. and the same characters in the `mule-unicode-*' charsets are
+different characters, as far as Emacs is concerned. For example, text
+which includes Unicode characters from the Latin-2 locale cannot be
+encoded by Emacs with ISO 8859-2 coding system; and if you yank Greek
+text from a buffer whose buffer-file-coding-system is greek-iso-8bit
+into a mule-unicode-0100-24ff buffer, Emacs won't be able to save that
+buffer neither as ISO 8859-7 nor as UTF-8.
+
+To work around this, install some add-on package such as Mule-UCS.
+
+* Problems when using Emacs with UTF-8 locales
+
+Some systems, including recent versions of GNU/Linux, have terminals
+or X11 subsystems that can be configured to provide Unicode/UTF-8
+input and display. Normally, such a system sets environment variables
+such as LANG, LC_CTYPE, or LC_ALL to a string which ends with a
+`.UTF-8'. For example, a system like this in a French locale might
+use `fr_FR.UTF-8' as the value of LANG.
+
+Since Unicode support in Emacs, as of v21.1, is not yet complete (see
+the previous entry in this file), UTF-8 support is not enabled by
+default, even in UTF-8 locales. Thus, some Emacs features, such as
+non-ASCII keyboard input, might appear to be broken in these locales.
+To solve these problems, you need to turn on some options in your
+`.emacs' file. Specifically, the following customizations should make
+Emacs work correctly with UTF-8 input and text:
+
+ (setq locale-coding-system 'utf-8)
+ (set-terminal-coding-system 'utf-8)
+ (set-keyboard-coding-system 'utf-8)
+ (set-selection-coding-system 'utf-8)
+ (prefer-coding-system 'utf-8)