aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoakim Verona2013-03-06 00:04:01 +0100
committerJoakim Verona2013-03-06 00:04:01 +0100
commit79157e99328fb1d835985dfa89fc2a2fa427d077 (patch)
treeac0e5a6a03089e3d6352cb3311510cfac0b7d051
parent15cb771195328913a9c24467db7e373acb92a769 (diff)
parent707431575aef93ac3e9923d450a6cbf18192c933 (diff)
downloademacs-79157e99328fb1d835985dfa89fc2a2fa427d077.tar.gz
emacs-79157e99328fb1d835985dfa89fc2a2fa427d077.zip
auto upstream
-rw-r--r--ChangeLog4
-rw-r--r--Makefile.in8
-rw-r--r--admin/ChangeLog4
-rw-r--r--admin/make-tarball.txt4
-rw-r--r--admin/notes/unicode66
-rw-r--r--configure.ac3
-rw-r--r--doc/lispintro/ChangeLog2
-rw-r--r--doc/lispintro/emacs-lisp-intro.texi2
-rw-r--r--etc/ChangeLog5
-rw-r--r--etc/NEWS7
-rw-r--r--etc/images/mail/README4
-rw-r--r--etc/images/smilies/grayscale/README5
-rw-r--r--etc/images/smilies/medium/README5
-rw-r--r--leim/quail/croatian.el184
-rw-r--r--lib-src/etags.c14
-rw-r--r--lisp/ChangeLog19
-rw-r--r--lisp/battery.el4
-rw-r--r--lisp/filesets.el6
-rw-r--r--lisp/gnus/ChangeLog.118
-rw-r--r--lisp/gnus/deuglify.el4
-rw-r--r--lisp/gnus/gnus-delay.el4
-rw-r--r--lisp/gnus/gnus-spec.el8
-rw-r--r--lisp/gnus/gnus-sum.el6
-rw-r--r--lisp/gnus/html2text.el6
-rw-r--r--lisp/gnus/message.el4
-rw-r--r--lisp/gnus/mm-decode.el4
-rw-r--r--lisp/gnus/mml1991.el4
-rw-r--r--lisp/gnus/nnir.el4
-rw-r--r--lisp/gnus/shr.el8
-rw-r--r--lisp/gnus/utf7.el6
-rw-r--r--lisp/international/iso-cvt.el1222
-rw-r--r--lisp/international/iso-transl.el294
-rw-r--r--lisp/language/romanian.el4
-rw-r--r--lisp/mh-e/ChangeLog.16
-rw-r--r--lisp/minibuffer.el36
-rw-r--r--lisp/net/eudc-bob.el4
-rw-r--r--lisp/net/eudc-export.el4
-rw-r--r--lisp/net/eudc-hotlist.el4
-rw-r--r--lisp/net/eudc-vars.el4
-rw-r--r--lisp/net/eudc.el4
-rw-r--r--lisp/net/eudcb-bbdb.el4
-rw-r--r--lisp/net/eudcb-ldap.el4
-rw-r--r--lisp/net/eudcb-ph.el4
-rw-r--r--lisp/net/tramp-compat.el41
-rw-r--r--lisp/obsolete/iso-insert.el194
-rw-r--r--lisp/org/org-freemind.el3
-rw-r--r--lisp/play/bubbles.el4
-rw-r--r--lisp/play/handwrite.el20
-rw-r--r--lisp/progmodes/cc-engine.el24
-rw-r--r--lisp/progmodes/cc-langs.el4
-rw-r--r--lisp/progmodes/hideshow.el4
-rw-r--r--lisp/progmodes/prolog.el6
-rw-r--r--lisp/progmodes/sh-script.el2
-rw-r--r--lisp/ruler-mode.el10
-rw-r--r--lisp/textmodes/conf-mode.el4
-rw-r--r--lisp/textmodes/po.el4
-rw-r--r--lisp/textmodes/tildify.el4
-rw-r--r--lisp/wdired.el4
-rw-r--r--nt/ChangeLog5
-rw-r--r--nt/inc/unistd.h3
-rw-r--r--src/ChangeLog76
-rw-r--r--src/bidi.c14
-rw-r--r--src/composite.c4
-rw-r--r--src/filelock.c439
-rw-r--r--src/font.c9
-rw-r--r--src/sysdep.c8
-rw-r--r--src/w32.c18
-rw-r--r--src/w32.h2
-rw-r--r--src/xgselect.c2
-rw-r--r--src/xselect.c2
-rw-r--r--test/ChangeLog4
-rw-r--r--test/indent/octave.m4
72 files changed, 1613 insertions, 1321 deletions
diff --git a/ChangeLog b/ChangeLog
index 2737f6284b0..293a554c9f5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
12013-03-05 Glenn Morris <rgm@gnu.org>
2
3 * Makefile.in (install-man): Ignore gzip exit status.
4
12013-03-03 Glenn Morris <rgm@gnu.org> 52013-03-03 Glenn Morris <rgm@gnu.org>
2 6
3 * make-dist: Remove lzma (it's replaced by xz). 7 * make-dist: Remove lzma (it's replaced by xz).
diff --git a/Makefile.in b/Makefile.in
index 42b900401f7..b112c6abf11 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -624,6 +624,12 @@ install-info: info
624 ${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \ 624 ${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \
625 done) 625 done)
626 626
627## "gzip || true" is because some gzips exit with non-zero status
628## if compression would not reduce the file size. Eg, the gzip in
629## OpenBSD 4.9 seems to do this (2013/03). In Emacs, this can
630## only happen with the tiny ctags.1 manpage. We don't really care if
631## ctags.1 is compressed or not. "gzip -f" is another option here,
632## but not sure if portable.
627install-man: 633install-man:
628 umask 022; ${MKDIR_P} $(DESTDIR)${man1dir} 634 umask 022; ${MKDIR_P} $(DESTDIR)${man1dir}
629 thisdir=`/bin/pwd`; \ 635 thisdir=`/bin/pwd`; \
@@ -634,7 +640,7 @@ install-man:
634 ${INSTALL_DATA} ${mansrcdir}/$${page} $(DESTDIR)${man1dir}/$${dest}); \ 640 ${INSTALL_DATA} ${mansrcdir}/$${page} $(DESTDIR)${man1dir}/$${dest}); \
635 ( [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ] ) || continue ; \ 641 ( [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ] ) || continue ; \
636 rm -f $(DESTDIR)${man1dir}/$${dest}.gz; \ 642 rm -f $(DESTDIR)${man1dir}/$${dest}.gz; \
637 ${GZIP_PROG} -9n $(DESTDIR)${man1dir}/$${dest}; \ 643 ${GZIP_PROG} -9n $(DESTDIR)${man1dir}/$${dest} || true; \
638 done 644 done
639 645
640## Install those items from etc/ that need to end up elsewhere. 646## Install those items from etc/ that need to end up elsewhere.
diff --git a/admin/ChangeLog b/admin/ChangeLog
index fe20d77d9f2..6a636091a7c 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,3 +1,7 @@
12013-03-05 Paul Eggert <eggert@cs.ucla.edu>
2
3 * notes/unicode: Add notes about Emacs source file encoding.
4
12013-03-04 Paul Eggert <eggert@cs.ucla.edu> 52013-03-04 Paul Eggert <eggert@cs.ucla.edu>
2 6
3 * grammars/java-tags.wy (CHAR): Remove "('\u0000' to '\uffff')" 7 * grammars/java-tags.wy (CHAR): Remove "('\u0000' to '\uffff')"
diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt
index 3825ac49278..144c34da15c 100644
--- a/admin/make-tarball.txt
+++ b/admin/make-tarball.txt
@@ -1,5 +1,5 @@
1Instructions to create pretest or release tarballs. 1Instructions to create pretest or release tarballs. -*- coding: utf-8 -*-
2-- originally written by Gerd Moellmann, amended by Francesco Potort 2-- originally written by Gerd Moellmann, amended by Francesco Potortì
3 with the initial help of Eli Zaretskii 3 with the initial help of Eli Zaretskii
4 4
5 5
diff --git a/admin/notes/unicode b/admin/notes/unicode
index 21704c78a00..0654036d364 100644
--- a/admin/notes/unicode
+++ b/admin/notes/unicode
@@ -1,4 +1,4 @@
1 -*-mode: text; coding: latin-1;-*- 1 -*-mode: text; coding: utf-8;-*-
2 2
3Copyright (C) 2002-2013 Free Software Foundation, Inc. 3Copyright (C) 2002-2013 Free Software Foundation, Inc.
4See the end of the file for license conditions. 4See the end of the file for license conditions.
@@ -12,9 +12,9 @@ regard to completeness.
12 12
13 * SINGLE_BYTE_CHAR_P returns true for Latin-1 characters, which has 13 * SINGLE_BYTE_CHAR_P returns true for Latin-1 characters, which has
14 undesirable effects. E.g.: 14 undesirable effects. E.g.:
15 (multibyte-string-p (let ((s "x")) (aset s 0 ?) s)) => nil 15 (multibyte-string-p (let ((s "x")) (aset s 0 ?) s)) => nil
16 (multibyte-string-p (concat [?])) => nil 16 (multibyte-string-p (concat [?])) => nil
17 (text-char-description ?) => "M-#" 17 (text-char-description ?) => "M-#"
18 18
19 These examples are all fixed by the change of 2002-10-14, but 19 These examples are all fixed by the change of 2002-10-14, but
20 there still exist questionable SINGLE_BYTE_CHAR_P in the 20 there still exist questionable SINGLE_BYTE_CHAR_P in the
@@ -77,7 +77,7 @@ regard to completeness.
77 spelling and calendar, but that's not a Unicode issue.) 77 spelling and calendar, but that's not a Unicode issue.)
78 78
79 * Handle Unicode combining characters usefully, e.g. diacritics, and 79 * Handle Unicode combining characters usefully, e.g. diacritics, and
80 handle more scripts specifically ( la Devanagari). There are 80 handle more scripts specifically (à la Devanagari). There are
81 issues with canonicalization. 81 issues with canonicalization.
82 82
83 * We need tabular input methods, e.g. for maths symbols. (Not 83 * We need tabular input methods, e.g. for maths symbols. (Not
@@ -98,6 +98,62 @@ regard to completeness.
98 * Old auto-save files, and similar files, such as Gnus drafts, 98 * Old auto-save files, and similar files, such as Gnus drafts,
99 containing non-ASCII characters probably won't be re-read correctly. 99 containing non-ASCII characters probably won't be re-read correctly.
100 100
101
102Source file encoding
103--------------------
104
105Most Emacs source files are encoded in UTF-8 (or in ASCII, which is a
106subset), but there are a few exceptions, listed below. Perhaps
107someday these files will be converted to UTF-8, for convenience when
108using tools like 'grep -r', but this might need nontrivial changes to
109the build process.
110
111 * chinese-big5
112
113 leim/CXTERM-DIC/4Corner.tit
114 leim/CXTERM-DIC/ARRAY30.tit
115 leim/CXTERM-DIC/ECDICT.tit
116 leim/CXTERM-DIC/ETZY.tit
117 leim/CXTERM-DIC/PY-b5.tit
118 leim/CXTERM-DIC/Punct-b5.tit
119 leim/CXTERM-DIC/QJ-b5.tit
120 leim/CXTERM-DIC/ZOZY.tit
121 leim/MISC-DIC/CTLau-b5.html
122 leim/MISC-DIC/cangjie-table.b5
123
124 * chinese-iso-8bit
125
126 leim/CXTERM-DIC/CCDOSPY.tit
127 leim/CXTERM-DIC/Punct.tit
128 leim/CXTERM-DIC/QJ.tit
129 leim/CXTERM-DIC/SW.tit
130 leim/CXTERM-DIC/TONEPY.tit
131 leim/MISC-DIC/pinyin.map
132 leim/MISC-DIC/CTLau.html
133 leim/MISC-DIC/ziranma.cin
134
135 * iso-latin-2
136
137 etc/refcards/cs-refcard.tex
138 etc/refcards/sk-survival.tex
139 etc/refcards/cs-survival.tex
140 etc/refcards/cs-dired-ref.tex
141 etc/refcards/sk-dired-ref.tex
142 etc/refcards/sk-refcard.tex
143
144 * japanese-iso-8bit
145
146 leim/SKK-DIC/SKK-JISYO.L
147 leim/ja-dic/ja-dic.el
148
149 * japanese-shift-jis
150
151 admin/charsets/mapfiles/cns2ucsdkw.txt
152
153 * no-conversion
154
155 lib-src/testfile
156
101 157
102This file is part of GNU Emacs. 158This file is part of GNU Emacs.
103 159
diff --git a/configure.ac b/configure.ac
index 4d3c6f0c018..37ebab86296 100644
--- a/configure.ac
+++ b/configure.ac
@@ -596,7 +596,8 @@ else
596 test "x$NON_GCC_TEST_OPTIONS" != x && CC="$CC $NON_GCC_TEST_OPTIONS" 596 test "x$NON_GCC_TEST_OPTIONS" != x && CC="$CC $NON_GCC_TEST_OPTIONS"
597fi 597fi
598 598
599# Avoid gnulib's tests for O_NOATIME and O_NOFOLLOW, as we don't use them. 599# Avoid gnulib's tests for HAVE_WORKING_O_NOATIME and HAVE_WORKING_O_NOFOLLOW,
600# as we don't use them.
600AC_DEFUN([gl_FCNTL_O_FLAGS]) 601AC_DEFUN([gl_FCNTL_O_FLAGS])
601# Avoid gnulib's threadlib module, as we do threads our own way. 602# Avoid gnulib's threadlib module, as we do threads our own way.
602AC_DEFUN([gl_THREADLIB]) 603AC_DEFUN([gl_THREADLIB])
diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog
index 615551225cb..e31c63fd8f6 100644
--- a/doc/lispintro/ChangeLog
+++ b/doc/lispintro/ChangeLog
@@ -1,7 +1,7 @@
12013-03-03 Glenn Morris <rgm@gnu.org> 12013-03-03 Glenn Morris <rgm@gnu.org>
2 2
3 * emacs-lisp-intro.texi (Digression into C): Update example. 3 * emacs-lisp-intro.texi (Digression into C): Update example.
4 (defcustom): Fix typo. 4 (defcustom, Simple Extension): Fix typos.
5 5
62012-12-22 Glenn Morris <rgm@gnu.org> 62012-12-22 Glenn Morris <rgm@gnu.org>
7 7
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi
index f1f9315747a..43e2539d2f2 100644
--- a/doc/lispintro/emacs-lisp-intro.texi
+++ b/doc/lispintro/emacs-lisp-intro.texi
@@ -17811,7 +17811,7 @@ emacs -q --no-site-file -eval '(blink-cursor-mode nil)'
17811 17811
17812@exdent Or nowadays, using an even more sophisticated set of options, 17812@exdent Or nowadays, using an even more sophisticated set of options,
17813 17813
17814emacs -Q - D 17814emacs -Q -D
17815@end smallexample 17815@end smallexample
17816}: 17816}:
17817 17817
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 367f7c63264..efa2c26b808 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,8 @@
12013-03-05 Paul Eggert <eggert@cs.ucla.edu>
2
3 FILE's lock is now always .#FILE and may be a regular file (Bug#13807).
4 * NEWS: Document this.
5
12013-03-02 Bill Wohler <wohler@newt.com> 62013-03-02 Bill Wohler <wohler@newt.com>
2 7
3 Release MH-E version 8.5. 8 Release MH-E version 8.5.
diff --git a/etc/NEWS b/etc/NEWS
index 8ae8ae3bf16..29ff9399930 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -320,7 +320,7 @@ text-property on the first char.
320** The `defalias-fset-function' property lets you catch calls to defalias 320** The `defalias-fset-function' property lets you catch calls to defalias
321and redirect them to your own function instead of `fset'. 321and redirect them to your own function instead of `fset'.
322 322
323** The lock for 'DIR/FILE' is now 'DIR/.#FILE' or 'DIR/.#-FILE'. 323** The lock for 'DIR/FILE' is now 'DIR/.#FILE' and may be a regular file.
324When you edit DIR/FILE, Emacs normally creates a symbolic link 324When you edit DIR/FILE, Emacs normally creates a symbolic link
325DIR/.#FILE as a lock that warns other instances of Emacs that DIR/FILE 325DIR/.#FILE as a lock that warns other instances of Emacs that DIR/FILE
326is being edited. Formerly, if there was already a non-symlink file 326is being edited. Formerly, if there was already a non-symlink file
@@ -328,9 +328,8 @@ named DIR/.#FILE, Emacs fell back on the lock names DIR/.#FILE.0
328through DIR/.#FILE.9. These fallbacks have been removed, so that 328through DIR/.#FILE.9. These fallbacks have been removed, so that
329Emacs now no longer locks DIR/FILE in that case. 329Emacs now no longer locks DIR/FILE in that case.
330 330
331On MS-Windows the lock is a regular file DIR/.#-FILE, not a symlink. 331On file systems that do not support symbolic links, the lock is now a
332MS-Windows and non-MS-Windows implementations of Emacs ignore each 332regular file with contents being what would have been in the symlink.
333other's locks.
334 333
335** The 9th element returned by `file-attributes' is now unspecified. 334** The 9th element returned by `file-attributes' is now unspecified.
336Formerly, it was t if the file's gid would change if file were deleted 335Formerly, it was t if the file's gid would change if file were deleted
diff --git a/etc/images/mail/README b/etc/images/mail/README
index 962206e6ae8..279e9cc5723 100644
--- a/etc/images/mail/README
+++ b/etc/images/mail/README
@@ -1,4 +1,4 @@
1COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES 1COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES -*- coding: utf-8 -*-
2 2
3The following icons are from GNOME 2.x. They are not part of Emacs, 3The following icons are from GNOME 2.x. They are not part of Emacs,
4but are distributed and used by Emacs. They are licensed under the 4but are distributed and used by Emacs. They are licensed under the
@@ -25,7 +25,7 @@ save.xpm combines stock_mail, io/stock_save and
25send.xpm stock_mail-send 25send.xpm stock_mail-send
26spam.xpm stock_spam 26spam.xpm stock_spam
27 27
28(preview and save were contributed by Adam Sjgren <asjo@koldfront.dk>) 28(preview and save were contributed by Adam Sjøgren <asjo@koldfront.dk>)
29 29
30repack is a slightly modified version of package-x-generic. 30repack is a slightly modified version of package-x-generic.
31reply-from is a slightly modified version of reply. 31reply-from is a slightly modified version of reply.
diff --git a/etc/images/smilies/grayscale/README b/etc/images/smilies/grayscale/README
index 43f91b7af3a..031b096ee21 100644
--- a/etc/images/smilies/grayscale/README
+++ b/etc/images/smilies/grayscale/README
@@ -1,6 +1,7 @@
1-*- coding: utf-8 -*-
1Files: blink.xpm braindamaged.xpm cry.xpm dead.xpm evil.xpm forced.xpm 2Files: blink.xpm braindamaged.xpm cry.xpm dead.xpm evil.xpm forced.xpm
2 frown.xpm grin.xpm indifferent.xpm reverse-smile.xpm sad.xpm 3 frown.xpm grin.xpm indifferent.xpm reverse-smile.xpm sad.xpm
3 smile.xpm wry.xpm 4 smile.xpm wry.xpm
4Author: Adam Sjgren 5Author: Adam Sjøgren
5Copyright (C) 2007-2013 Free Software Foundation, Inc. 6Copyright (C) 2007-2013 Free Software Foundation, Inc.
6License: GNU General Public License version 3 or later (see COPYING) 7License: GNU General Public License version 3 or later (see COPYING)
diff --git a/etc/images/smilies/medium/README b/etc/images/smilies/medium/README
index 43f91b7af3a..031b096ee21 100644
--- a/etc/images/smilies/medium/README
+++ b/etc/images/smilies/medium/README
@@ -1,6 +1,7 @@
1-*- coding: utf-8 -*-
1Files: blink.xpm braindamaged.xpm cry.xpm dead.xpm evil.xpm forced.xpm 2Files: blink.xpm braindamaged.xpm cry.xpm dead.xpm evil.xpm forced.xpm
2 frown.xpm grin.xpm indifferent.xpm reverse-smile.xpm sad.xpm 3 frown.xpm grin.xpm indifferent.xpm reverse-smile.xpm sad.xpm
3 smile.xpm wry.xpm 4 smile.xpm wry.xpm
4Author: Adam Sjgren 5Author: Adam Sjøgren
5Copyright (C) 2007-2013 Free Software Foundation, Inc. 6Copyright (C) 2007-2013 Free Software Foundation, Inc.
6License: GNU General Public License version 3 or later (see COPYING) 7License: GNU General Public License version 3 or later (see COPYING)
diff --git a/leim/quail/croatian.el b/leim/quail/croatian.el
index 2b5755f3557..412f68fe70a 100644
--- a/leim/quail/croatian.el
+++ b/leim/quail/croatian.el
@@ -1,8 +1,8 @@
1;;; quail/croatian.el -- Quail package for inputting Croatian -*-coding: iso-8859-2;-*- 1;;; quail/croatian.el -- Quail package for inputting Croatian -*-coding: utf-8;-*-
2 2
3;; Copyright (C) 2003-2013 Free Software Foundation, Inc. 3;; Copyright (C) 2003-2013 Free Software Foundation, Inc.
4 4
5;; Author: Hrvoje Niki <hniksic@xemacs.org> 5;; Author: Hrvoje Nikšić <hniksic@xemacs.org>
6;; Keywords: i18n 6;; Keywords: i18n
7 7
8;; This file is part of GNU Emacs. 8;; This file is part of GNU Emacs.
@@ -44,16 +44,16 @@
44 ("_" ??) 44 ("_" ??)
45 ("=" ?+) 45 ("=" ?+)
46 ("+" ?*) 46 ("+" ?*)
47 ("[" ?) 47 ("[" ?š)
48 ("{" ?) 48 ("{" ?Š)
49 ("]" ?) 49 ("]" ?đ)
50 ("}" ?) 50 ("}" ?Đ)
51 (";" ?) 51 (";" ?č)
52 (":" ?) 52 (":" ?Č)
53 ("'" ?) 53 ("'" ?ć)
54 ("\"" ?) 54 ("\"" ?Ć)
55 ("\\" ?) 55 ("\\" ?)
56 ("|" ?) 56 ("|" ?Ž)
57 ("<" ?\;) 57 ("<" ?\;)
58 (">" ?:) 58 (">" ?:)
59 ("/" ?-) 59 ("/" ?-)
@@ -79,16 +79,16 @@
79 ("_" ??) 79 ("_" ??)
80 ("=" ?+) 80 ("=" ?+)
81 ("+" ?*) 81 ("+" ?*)
82 ("[" ?) 82 ("[" ?š)
83 ("{" ?) 83 ("{" ?Š)
84 ("]" ?) 84 ("]" ?đ)
85 ("}" ?) 85 ("}" ?Đ)
86 (";" ?) 86 (";" ?č)
87 (":" ?) 87 (":" ?Č)
88 ("'" ?) 88 ("'" ?ć)
89 ("\"" ?) 89 ("\"" ?Ć)
90 ("\\" ?) 90 ("\\" ?)
91 ("|" ?) 91 ("|" ?Ž)
92 ("<" ?\;) 92 ("<" ?\;)
93 (">" ?:) 93 (">" ?:)
94 ("/" ?-) 94 ("/" ?-)
@@ -98,102 +98,102 @@
98 "croatian-prefix" "Croatian" "HR" nil 98 "croatian-prefix" "Croatian" "HR" nil
99 "Croatian input method, postfix. 99 "Croatian input method, postfix.
100 100
101\"c -> 101\"c -> č
102'c -> 102'c -> ć
103\"s -> 103\"s -> š
104\"z -> 104\"z ->
105/d -> " 105/d -> đ"
106 nil t nil nil nil nil nil nil nil nil t) 106 nil t nil nil nil nil nil nil nil nil t)
107 107
108(quail-define-rules 108(quail-define-rules
109 ("\"c" ?) 109 ("\"c" ?č)
110 ("\"C" ?) 110 ("\"C" ?Č)
111 ("'c" ?) 111 ("'c" ?ć)
112 ("'C" ?) 112 ("'C" ?Ć)
113 ("\"s" ?) 113 ("\"s" ?š)
114 ("\"S" ?) 114 ("\"S" ?Š)
115 ("\"z" ?) 115 ("\"z" ?)
116 ("\"Z" ?) 116 ("\"Z" ?Ž)
117 ("/d" ?) 117 ("/d" ?đ)
118 ("/D" ?)) 118 ("/D" ?Đ))
119 119
120(quail-define-package 120(quail-define-package
121 "croatian-postfix" "Croatian" "HR" nil 121 "croatian-postfix" "Croatian" "HR" nil
122 "Croatian input method, postfix. 122 "Croatian input method, postfix.
123 123
124c\" -> 124c\" -> č
125c' -> 125c' -> ć
126s\" -> 126s\" -> š
127z\" -> 127z\" ->
128d/ -> " 128d/ -> đ"
129 nil t nil nil nil nil nil nil nil nil t) 129 nil t nil nil nil nil nil nil nil nil t)
130 130
131(quail-define-rules 131(quail-define-rules
132 ("c\"" ?) 132 ("c\"" ?č)
133 ("C\"" ?) 133 ("C\"" ?Č)
134 ("c'" ?) 134 ("c'" ?ć)
135 ("C'" ?) 135 ("C'" ?Ć)
136 ("s\"" ?) 136 ("s\"" ?š)
137 ("S\"" ?) 137 ("S\"" ?Š)
138 ("z\"" ?) 138 ("z\"" ?)
139 ("Z\"" ?) 139 ("Z\"" ?Ž)
140 ("d/" ?) 140 ("d/" ?đ)
141 ("D/" ?)) 141 ("D/" ?Đ))
142 142
143(quail-define-package 143(quail-define-package
144 "croatian-xy" "Croatian" "HR" nil 144 "croatian-xy" "Croatian" "HR" nil
145 "An alternative Croatian input method. 145 "An alternative Croatian input method.
146 146
147cx -> 147cx -> č
148cy -> 148cy -> ć
149sx -> 149sx -> š
150zx -> 150zx ->
151dy -> " 151dy -> đ"
152 nil t nil nil nil nil nil nil nil nil t) 152 nil t nil nil nil nil nil nil nil nil t)
153 153
154(quail-define-rules 154(quail-define-rules
155 ("cx" ?) 155 ("cx" ?č)
156 ("CX" ?) 156 ("CX" ?Č)
157 ("Cx" ?) 157 ("Cx" ?Č)
158 ("cy" ?) 158 ("cy" ?ć)
159 ("CY" ?) 159 ("CY" ?Ć)
160 ("Cy" ?) 160 ("Cy" ?Ć)
161 ("sx" ?) 161 ("sx" ?š)
162 ("SX" ?) 162 ("SX" ?Š)
163 ("Sx" ?) 163 ("Sx" ?Š)
164 ("zx" ?) 164 ("zx" ?)
165 ("ZX" ?) 165 ("ZX" ?Ž)
166 ("Zx" ?) 166 ("Zx" ?Ž)
167 ("dy" ?) 167 ("dy" ?đ)
168 ("DY" ?) 168 ("DY" ?Đ)
169 ("Dy" ?)) 169 ("Dy" ?Đ))
170 170
171(quail-define-package 171(quail-define-package
172 "croatian-cc" "Croatian" "HR" nil 172 "croatian-cc" "Croatian" "HR" nil
173 "Another alternative Croatian input method. 173 "Another alternative Croatian input method.
174 174
175cc -> 175cc -> č
176ch -> 176ch -> ć
177ss -> 177ss -> š
178zz -> 178zz ->
179dd -> " 179dd -> đ"
180 nil t nil nil nil nil nil nil nil nil t) 180 nil t nil nil nil nil nil nil nil nil t)
181 181
182(quail-define-rules 182(quail-define-rules
183 ("cc" ?) 183 ("cc" ?č)
184 ("CC" ?) 184 ("CC" ?Č)
185 ("Cc" ?) 185 ("Cc" ?Č)
186 ("ch" ?) 186 ("ch" ?ć)
187 ("CH" ?) 187 ("CH" ?Ć)
188 ("Ch" ?) 188 ("Ch" ?Ć)
189 ("ss" ?) 189 ("ss" ?š)
190 ("SS" ?) 190 ("SS" ?Š)
191 ("Ss" ?) 191 ("Ss" ?Š)
192 ("zz" ?) 192 ("zz" ?)
193 ("ZZ" ?) 193 ("ZZ" ?Ž)
194 ("Zz" ?) 194 ("Zz" ?Ž)
195 ("dd" ?) 195 ("dd" ?đ)
196 ("DD" ?) 196 ("DD" ?Đ)
197 ("Dd" ?)) 197 ("Dd" ?Đ))
198 198
199;;; croatian.el ends here 199;;; croatian.el ends here
diff --git a/lib-src/etags.c b/lib-src/etags.c
index ec96f45fc94..c1e12e95da4 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -1,4 +1,4 @@
1/* Tags file maker to go with GNU Emacs -*- coding: latin-1 -*- 1/* Tags file maker to go with GNU Emacs -*- coding: utf-8 -*-
2 2
3Copyright (C) 1984 The Regents of the University of California 3Copyright (C) 1984 The Regents of the University of California
4 4
@@ -64,12 +64,12 @@ University of California, as described above. */
64 * 1985 Emacs TAGS format by Richard Stallman. 64 * 1985 Emacs TAGS format by Richard Stallman.
65 * 1989 Sam Kendall added C++. 65 * 1989 Sam Kendall added C++.
66 * 1992 Joseph B. Wells improved C and C++ parsing. 66 * 1992 Joseph B. Wells improved C and C++ parsing.
67 * 1993 Francesco Potort reorganized C and C++. 67 * 1993 Francesco Potortì reorganized C and C++.
68 * 1994 Line-by-line regexp tags by Tom Tromey. 68 * 1994 Line-by-line regexp tags by Tom Tromey.
69 * 2001 Nested classes by Francesco Potort (concept by Mykola Dzyuba). 69 * 2001 Nested classes by Francesco Potortì (concept by Mykola Dzyuba).
70 * 2002 #line directives by Francesco Potort. 70 * 2002 #line directives by Francesco Potortì.
71 * 71 *
72 * Francesco Potort <pot@gnu.org> has maintained and improved it since 1993. 72 * Francesco Potortì <pot@gnu.org> has maintained and improved it since 1993.
73 */ 73 */
74 74
75/* 75/*
@@ -4275,7 +4275,7 @@ Asm_labels (FILE *inf)
4275 * Perl variable names: /^(my|local).../ 4275 * Perl variable names: /^(my|local).../
4276 * Original code by Bart Robinson <lomew@cs.utah.edu> (1995) 4276 * Original code by Bart Robinson <lomew@cs.utah.edu> (1995)
4277 * Additions by Michael Ernst <mernst@alum.mit.edu> (1997) 4277 * Additions by Michael Ernst <mernst@alum.mit.edu> (1997)
4278 * Ideas by Kai Grojohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> (2001) 4278 * Ideas by Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> (2001)
4279 */ 4279 */
4280static void 4280static void
4281Perl_functions (FILE *inf) 4281Perl_functions (FILE *inf)
@@ -5105,7 +5105,7 @@ Texinfo_nodes (FILE *inf)
5105 * Contents of <title>, <h1>, <h2>, <h3> are tags. 5105 * Contents of <title>, <h1>, <h2>, <h3> are tags.
5106 * Contents of <a name=xxx> are tags with name xxx. 5106 * Contents of <a name=xxx> are tags with name xxx.
5107 * 5107 *
5108 * Francesco Potort, 2002. 5108 * Francesco Potortì, 2002.
5109 */ 5109 */
5110static void 5110static void
5111HTML_labels (FILE *inf) 5111HTML_labels (FILE *inf)
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 4cf18ebb1f6..ac56cd8ba79 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,22 @@
12013-03-05 Michael Albinus <michael.albinus@gmx.de>
2
3 * net/tramp-compat.el (tramp-compat-delete-directory): Implement
4 TRASH argument.
5
62013-03-05 Dmitry Gutov <dgutov@yandex.ru>
7
8 Keep pre-existing highlighting in completion candidates (Bug#13250).
9 * minibuffer.el (completions-first-difference): State that the
10 face is "added" in the docstring.
11 (completions-common-part): Same. And don't inherit from default.
12 (completion-hilit-commonality): Prepend 'completions-common-part
13 and 'completion-first-difference faces to the 'face property,
14 instead of replacing the value(s).
15 (completion--insert-strings): Same with 'completions-annotations face.
16 (completion-hilit-commonality): Use 'face instead of
17 'font-lock-face, because it gets priority if the completion
18 strings already have 'face set.
19
12013-03-04 Alan Mackenzie <acm@muc.de> 202013-03-04 Alan Mackenzie <acm@muc.de>
2 21
3 Replace `last-command-event' by `last-command-char' in XEmacs. 22 Replace `last-command-event' by `last-command-char' in XEmacs.
diff --git a/lisp/battery.el b/lisp/battery.el
index 98ba7d1b631..d4e4d8b3a31 100644
--- a/lisp/battery.el
+++ b/lisp/battery.el
@@ -1,4 +1,4 @@
1;;; battery.el --- display battery status information -*- coding: iso-8859-1 -*- 1;;; battery.el --- display battery status information -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 1997-1998, 2000-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1997-1998, 2000-2013 Free Software Foundation, Inc.
4 4
@@ -116,7 +116,7 @@ string are substituted as defined by the current value of the variable
116 116
117(defcustom battery-mode-line-format 117(defcustom battery-mode-line-format
118 (cond ((eq battery-status-function 'battery-linux-proc-acpi) 118 (cond ((eq battery-status-function 'battery-linux-proc-acpi)
119 "[%b%p%%,%dC]") 119 "[%b%p%%,%dC]")
120 (battery-status-function 120 (battery-status-function
121 "[%b%p%%]")) 121 "[%b%p%%]"))
122 "Control string formatting the string to display in the mode line. 122 "Control string formatting the string to display in the mode line.
diff --git a/lisp/filesets.el b/lisp/filesets.el
index 62ab7423f67..978512bd3a4 100644
--- a/lisp/filesets.el
+++ b/lisp/filesets.el
@@ -1,4 +1,4 @@
1;;; filesets.el --- handle group of files 1;;; filesets.el --- handle group of files -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 2002-2013 Free Software Foundation, Inc. 3;; Copyright (C) 2002-2013 Free Software Foundation, Inc.
4 4
@@ -805,8 +805,8 @@ In order to view pdf or rtf files in an Emacs buffer, you could use these:
805 (:match-number 2) 805 (:match-number 2)
806 (:get-file-name (lambda (master file) 806 (:get-file-name (lambda (master file)
807 (filesets-which-file master file load-path)))))) 807 (filesets-which-file master file load-path))))))
808 ("^\\([A-Z][a-z]+\\([A-Z][a-z]+\\)+\\)$" t 808 ("^\\([A-ZÄÖÜ][a-zäöüß]+\\([A-ZÄÖÜ][a-zäöüß]+\\)+\\)$" t
809 (((:pattern "\\<\\([A-Z][a-z]+\\([A-Z][a-z]+\\)+\\)\\>") 809 (((:pattern "\\<\\([A-ZÄÖÜ][a-zäöüß]+\\([A-ZÄÖÜ][a-zäöüß]+\\)+\\)\\>")
810 (:scan-depth 5) 810 (:scan-depth 5)
811 (:stubp (lambda (a b) (not (filesets-files-in-same-directory-p a b)))) 811 (:stubp (lambda (a b) (not (filesets-files-in-same-directory-p a b))))
812 (:case-sensitive t) 812 (:case-sensitive t)
diff --git a/lisp/gnus/ChangeLog.1 b/lisp/gnus/ChangeLog.1
index 34533f31bff..9043a23361e 100644
--- a/lisp/gnus/ChangeLog.1
+++ b/lisp/gnus/ChangeLog.1
@@ -452,7 +452,7 @@
452 * gnus-sum.el (gnus-remove-thread): Didn't work with sparse 452 * gnus-sum.el (gnus-remove-thread): Didn't work with sparse
453 threads. 453 threads.
454 454
4551998-08-14 Franois Pinard <pinard@iro.umontreal.ca> 4551998-08-14 François Pinard <pinard@iro.umontreal.ca>
456 456
457 * nndoc.el (nndoc-generate-mime-parts-head): Use original Subject, 457 * nndoc.el (nndoc-generate-mime-parts-head): Use original Subject,
458 Message-ID, and References in fully blown articles. 458 Message-ID, and References in fully blown articles.
@@ -619,7 +619,7 @@
619 619
620 * gnus.el: Gnus v5.6.31 is released. 620 * gnus.el: Gnus v5.6.31 is released.
621 621
6221998-08-09 Franois Pinard <pinard@iro.umontreal.ca> 6221998-08-09 François Pinard <pinard@iro.umontreal.ca>
623 623
624 * nndoc.el: Split MIME multipart messages, maybe recursively. 624 * nndoc.el: Split MIME multipart messages, maybe recursively.
625 (nndoc-mime-parts-type-p, nndoc-transform-mime-parts, 625 (nndoc-mime-parts-type-p, nndoc-transform-mime-parts,
@@ -760,7 +760,7 @@
760 * gnus-group.el (gnus-group-read-ephemeral-group): Make the server 760 * gnus-group.el (gnus-group-read-ephemeral-group): Make the server
761 unique. 761 unique.
762 762
7631998-07-28 Franois Pinard <pinard@iro.umontreal.ca> 7631998-07-28 François Pinard <pinard@iro.umontreal.ca>
764 764
765 * gnus-uu.el (gnus-uu-reginize-string): Consider the number of 765 * gnus-uu.el (gnus-uu-reginize-string): Consider the number of
766 parts as part of the fixed subject, instead of a wild quantity. 766 parts as part of the fixed subject, instead of a wild quantity.
@@ -943,7 +943,7 @@
943 943
944 * nntp.el (nntp-server-opened-hook): Doc change. 944 * nntp.el (nntp-server-opened-hook): Doc change.
945 945
9461998-07-10 Franois Pinard <pinard@iro.umontreal.ca> 9461998-07-10 François Pinard <pinard@iro.umontreal.ca>
947 947
948 * gnus-sum.el (gnus-summary-respool-trace): New command and 948 * gnus-sum.el (gnus-summary-respool-trace): New command and
949 keystroke. 949 keystroke.
@@ -1003,7 +1003,7 @@
1003 * nntp.el (nntp-record-command): Give more precise time info. 1003 * nntp.el (nntp-record-command): Give more precise time info.
1004 (nntp-next-result-arrived-p): Look for the end of error lines. 1004 (nntp-next-result-arrived-p): Look for the end of error lines.
1005 1005
10061998-07-01 Franois Pinard <pinard@iro.umontreal.ca> 10061998-07-01 François Pinard <pinard@iro.umontreal.ca>
1007 1007
1008 * gnus-util.el (gnus-delete-if): Would do the opposite. 1008 * gnus-util.el (gnus-delete-if): Would do the opposite.
1009 1009
@@ -2016,7 +2016,7 @@
2016 * gnus-picon.el (gnus-picons-display-x-face): `buf' -- unbound 2016 * gnus-picon.el (gnus-picons-display-x-face): `buf' -- unbound
2017 var. 2017 var.
2018 2018
20191998-02-28 Franois Pinard <pinard@iro.umontreal.ca> 20191998-02-28 François Pinard <pinard@iro.umontreal.ca>
2020 2020
2021 * gnus: configure'd. 2021 * gnus: configure'd.
2022 2022
@@ -2370,7 +2370,7 @@
2370 2370
2371 * gnus-sum.el (gnus-summary-exit): Call purging function. 2371 * gnus-sum.el (gnus-summary-exit): Call purging function.
2372 2372
23731998-02-13 Franois Pinard <pinard@iro.umontreal.ca> 23731998-02-13 François Pinard <pinard@iro.umontreal.ca>
2374 2374
2375 * nnmail.el (nnmail-get-new-mail): Don't clear split-history. 2375 * nnmail.el (nnmail-get-new-mail): Don't clear split-history.
2376 (nnmail-purge-split-history): New function. 2376 (nnmail-purge-split-history): New function.
@@ -3724,3 +3724,7 @@
3724 3724
3725 You should have received a copy of the GNU General Public License 3725 You should have received a copy of the GNU General Public License
3726 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. 3726 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
3727
3728;; Local Variables:
3729;; coding: utf-8
3730;; End:
diff --git a/lisp/gnus/deuglify.el b/lisp/gnus/deuglify.el
index 8ef89a9e56d..36e91980ba2 100644
--- a/lisp/gnus/deuglify.el
+++ b/lisp/gnus/deuglify.el
@@ -270,7 +270,7 @@
270 :group 'gnus-outlook-deuglify) 270 :group 'gnus-outlook-deuglify)
271 271
272(defcustom gnus-outlook-deuglify-attrib-verb-regexp 272(defcustom gnus-outlook-deuglify-attrib-verb-regexp
273 "wrote\\|writes\\|says\\|schrieb\\|schreibt\\|meinte\\|skrev\\|a crit\\|schreef\\|escribi" 273 "wrote\\|writes\\|says\\|schrieb\\|schreibt\\|meinte\\|skrev\\|a écrit\\|schreef\\|escribió"
274 "Regular expression matching the verb used in an attribution line." 274 "Regular expression matching the verb used in an attribution line."
275 :version "22.1" 275 :version "22.1"
276 :type 'string 276 :type 'string
@@ -472,7 +472,7 @@ NODISPLAY is non-nil, don't redisplay the article buffer."
472(provide 'deuglify) 472(provide 'deuglify)
473 473
474;; Local Variables: 474;; Local Variables:
475;; coding: iso-8859-1 475;; coding: utf-8
476;; End: 476;; End:
477 477
478;;; deuglify.el ends here 478;;; deuglify.el ends here
diff --git a/lisp/gnus/gnus-delay.el b/lisp/gnus/gnus-delay.el
index 5c14ffcfbdf..921d24109c2 100644
--- a/lisp/gnus/gnus-delay.el
+++ b/lisp/gnus/gnus-delay.el
@@ -2,7 +2,7 @@
2 2
3;; Copyright (C) 2001-2013 Free Software Foundation, Inc. 3;; Copyright (C) 2001-2013 Free Software Foundation, Inc.
4 4
5;; Author: Kai Grojohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> 5;; Author: Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
6;; Keywords: mail, news, extensions 6;; Keywords: mail, news, extensions
7 7
8;; This file is part of GNU Emacs. 8;; This file is part of GNU Emacs.
@@ -186,7 +186,7 @@ Checking delayed messages is skipped if optional arg NO-CHECK is non-nil."
186(provide 'gnus-delay) 186(provide 'gnus-delay)
187 187
188;; Local Variables: 188;; Local Variables:
189;; coding: iso-8859-1 189;; coding: utf-8
190;; End: 190;; End:
191 191
192;;; gnus-delay.el ends here 192;;; gnus-delay.el ends here
diff --git a/lisp/gnus/gnus-spec.el b/lisp/gnus/gnus-spec.el
index 446e8260203..2606b8860af 100644
--- a/lisp/gnus/gnus-spec.el
+++ b/lisp/gnus/gnus-spec.el
@@ -418,7 +418,7 @@ characters when given a pad value."
418 ;; them will have the balloon-help text property. 418 ;; them will have the balloon-help text property.
419 (let ((case-fold-search nil)) 419 (let ((case-fold-search nil))
420 (if (string-match 420 (if (string-match
421 "\\`\\(.*\\)%[0-9]?[{(]\\(.*\\)%[0-9]?[})]\\(.*\n?\\)\\'\\|%[-0-9]*=\\|%[-0-9]*\\*" 421 "\\`\\(.*\\)%[0-9]?[{(]\\(.*\\)%[0-9]?[})]\\(.*\n?\\)\\'\\|%[-0-9]*=\\|%[-0-9]*\\*"
422 format) 422 format)
423 (gnus-parse-complex-format format spec-alist) 423 (gnus-parse-complex-format format spec-alist)
424 ;; This is a simple format. 424 ;; This is a simple format.
@@ -435,13 +435,13 @@ characters when given a pad value."
435 (goto-char (point-min)) 435 (goto-char (point-min))
436 (insert "(\"") 436 (insert "(\"")
437 ;; Convert all font specs into font spec lists. 437 ;; Convert all font specs into font spec lists.
438 (while (re-search-forward "%\\([0-9]+\\)?\\([{}()]\\)" nil t) 438 (while (re-search-forward "%\\([0-9]+\\)?\\([{}()]\\)" nil t)
439 (let ((number (if (match-beginning 1) 439 (let ((number (if (match-beginning 1)
440 (match-string 1) "0")) 440 (match-string 1) "0"))
441 (delim (aref (match-string 2) 0))) 441 (delim (aref (match-string 2) 0)))
442 (if (or (= delim ?\() 442 (if (or (= delim ?\()
443 (= delim ?\{) 443 (= delim ?\{)
444 (= delim ?\)) 444 (= delim ?\))
445 (replace-match (concat "\"(" 445 (replace-match (concat "\"("
446 (cond ((= delim ?\() "mouse") 446 (cond ((= delim ?\() "mouse")
447 ((= delim ?\{) "face") 447 ((= delim ?\{) "face")
@@ -733,7 +733,7 @@ If PROPS, insert the result."
733(provide 'gnus-spec) 733(provide 'gnus-spec)
734 734
735;; Local Variables: 735;; Local Variables:
736;; coding: iso-8859-1 736;; coding: utf-8
737;; End: 737;; End:
738 738
739;;; gnus-spec.el ends here 739;;; gnus-spec.el ends here
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index 183eabca6dc..93bc35af3bd 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -451,7 +451,7 @@ current article is unread."
451 :group 'gnus-summary-maneuvering 451 :group 'gnus-summary-maneuvering
452 :type 'boolean) 452 :type 'boolean)
453 453
454(defcustom gnus-auto-center-summary 454(defcustom gnus-auto-center-summary
455 (max (or (bound-and-true-p scroll-margin) 0) 2) 455 (max (or (bound-and-true-p scroll-margin) 0) 2)
456 "*If non-nil, always center the current summary buffer. 456 "*If non-nil, always center the current summary buffer.
457In particular, if `vertical' do only vertical recentering. If non-nil 457In particular, if `vertical' do only vertical recentering. If non-nil
@@ -9788,7 +9788,7 @@ installed for this command to work."
9788 (when (message-goto-body) 9788 (when (message-goto-body)
9789 (gnus-narrow-to-body)) 9789 (gnus-narrow-to-body))
9790 (goto-char (point-min)) 9790 (goto-char (point-min))
9791 (while (search-forward "" (point-max) t) 9791 (while (search-forward "" (point-max) t)
9792 (replace-match ".")) 9792 (replace-match "."))
9793 (unmorse-region (point-min) (point-max)) 9793 (unmorse-region (point-min) (point-max))
9794 (widen) 9794 (widen)
@@ -12978,7 +12978,7 @@ BOOKMARK is a bookmark name or a bookmark record."
12978(run-hooks 'gnus-sum-load-hook) 12978(run-hooks 'gnus-sum-load-hook)
12979 12979
12980;; Local Variables: 12980;; Local Variables:
12981;; coding: iso-8859-1 12981;; coding: utf-8
12982;; End: 12982;; End:
12983 12983
12984;;; gnus-sum.el ends here 12984;;; gnus-sum.el ends here
diff --git a/lisp/gnus/html2text.el b/lisp/gnus/html2text.el
index 4e05f1abb40..68e75196c87 100644
--- a/lisp/gnus/html2text.el
+++ b/lisp/gnus/html2text.el
@@ -1,4 +1,4 @@
1;;; html2text.el --- a simple html to plain text converter 1;;; html2text.el --- a simple html to plain text converter -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 2002-2013 Free Software Foundation, Inc. 3;; Copyright (C) 2002-2013 Free Software Foundation, Inc.
4 4
@@ -65,14 +65,14 @@
65 ("&ndash;" . "-") 65 ("&ndash;" . "-")
66 ("&permil;" . "%%") 66 ("&permil;" . "%%")
67 ("&plusmn;" . "+-") 67 ("&plusmn;" . "+-")
68 ("&pound;" . "") 68 ("&pound;" . "")
69 ("&quot;" . "\"") 69 ("&quot;" . "\"")
70 ("&raquo;" . ">>") 70 ("&raquo;" . ">>")
71 ("&rdquo" . "\"") 71 ("&rdquo" . "\"")
72 ("&reg;" . "(R)") 72 ("&reg;" . "(R)")
73 ("&rsaquo;" . ")") 73 ("&rsaquo;" . ")")
74 ("&rsquo;" . "'") 74 ("&rsquo;" . "'")
75 ("&sect;" . "") 75 ("&sect;" . "")
76 ("&sup1;" . "^1") 76 ("&sup1;" . "^1")
77 ("&sup2;" . "^2") 77 ("&sup2;" . "^2")
78 ("&sup3;" . "^3") 78 ("&sup3;" . "^3")
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 808e1edd6c3..a6638097b47 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -1743,7 +1743,7 @@ no, only reply back to the author."
1743 (file-error)) 1743 (file-error))
1744 (mm-coding-system-p 'utf-8) 1744 (mm-coding-system-p 'utf-8)
1745 (executable-find idna-program) 1745 (executable-find idna-program)
1746 (string= (idna-to-ascii "rksmrgs") 1746 (string= (idna-to-ascii "räksmörgås")
1747 "xn--rksmrgs-5wao1o") 1747 "xn--rksmrgs-5wao1o")
1748 t) 1748 t)
1749 "Whether to encode non-ASCII in domain names into ASCII according to IDNA. 1749 "Whether to encode non-ASCII in domain names into ASCII according to IDNA.
@@ -8421,7 +8421,7 @@ Used in `message-simplify-recipients'."
8421(run-hooks 'message-load-hook) 8421(run-hooks 'message-load-hook)
8422 8422
8423;; Local Variables: 8423;; Local Variables:
8424;; coding: iso-8859-1 8424;; coding: utf-8
8425;; End: 8425;; End:
8426 8426
8427;;; message.el ends here 8427;;; message.el ends here
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index 812ee7396dd..04f325633ba 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -1803,7 +1803,7 @@ If RECURSIVE, search recursively."
1803 (replace-match (char-to-string char)))) 1803 (replace-match (char-to-string char))))
1804 ;; Remove "soft hyphens". 1804 ;; Remove "soft hyphens".
1805 (goto-char (point-min)) 1805 (goto-char (point-min))
1806 (while (search-forward "" nil t) 1806 (while (search-forward "" nil t)
1807 (replace-match "" t t)) 1807 (replace-match "" t t))
1808 (libxml-parse-html-region (point-min) (point-max)))) 1808 (libxml-parse-html-region (point-min) (point-max))))
1809 (unless (bobp) 1809 (unless (bobp)
@@ -1825,7 +1825,7 @@ If RECURSIVE, search recursively."
1825(provide 'mm-decode) 1825(provide 'mm-decode)
1826 1826
1827;; Local Variables: 1827;; Local Variables:
1828;; coding: iso-8859-1 1828;; coding: utf-8
1829;; End: 1829;; End:
1830 1830
1831;;; mm-decode.el ends here 1831;;; mm-decode.el ends here
diff --git a/lisp/gnus/mml1991.el b/lisp/gnus/mml1991.el
index 88dee4ad883..5af7639019a 100644
--- a/lisp/gnus/mml1991.el
+++ b/lisp/gnus/mml1991.el
@@ -2,7 +2,7 @@
2 2
3;; Copyright (C) 1998-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1998-2013 Free Software Foundation, Inc.
4 4
5;; Author: Sascha Ldecke <sascha@meta-x.de>, 5;; Author: Sascha Lüdecke <sascha@meta-x.de>,
6;; Simon Josefsson <simon@josefsson.org> (Mailcrypt interface, Gnus glue) 6;; Simon Josefsson <simon@josefsson.org> (Mailcrypt interface, Gnus glue)
7;; Keywords: PGP 7;; Keywords: PGP
8 8
@@ -480,7 +480,7 @@ If no one is selected, default secret key is used. "
480(provide 'mml1991) 480(provide 'mml1991)
481 481
482;; Local Variables: 482;; Local Variables:
483;; coding: iso-8859-1 483;; coding: utf-8
484;; End: 484;; End:
485 485
486;;; mml1991.el ends here 486;;; mml1991.el ends here
diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el
index 0e2e76f25be..cf5a813c5a8 100644
--- a/lisp/gnus/nnir.el
+++ b/lisp/gnus/nnir.el
@@ -1,8 +1,8 @@
1;;; nnir.el --- search mail with various search engines -*- coding: iso-8859-1 -*- 1;;; nnir.el --- search mail with various search engines -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 1998-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1998-2013 Free Software Foundation, Inc.
4 4
5;; Author: Kai Grojohann <grossjohann@ls6.cs.uni-dortmund.de> 5;; Author: Kai Großjohann <grossjohann@ls6.cs.uni-dortmund.de>
6;; Swish-e and Swish++ backends by: 6;; Swish-e and Swish++ backends by:
7;; Christoph Conrad <christoph.conrad@gmx.de>. 7;; Christoph Conrad <christoph.conrad@gmx.de>.
8;; IMAP backend by: Simon Josefsson <jas@pdc.kth.se>. 8;; IMAP backend by: Simon Josefsson <jas@pdc.kth.se>.
diff --git a/lisp/gnus/shr.el b/lisp/gnus/shr.el
index 9bf14ee147a..5df5297ba8a 100644
--- a/lisp/gnus/shr.el
+++ b/lisp/gnus/shr.el
@@ -347,11 +347,11 @@ size, and full-buffer size."
347 ((eq shr-folding-mode 'none) 347 ((eq shr-folding-mode 'none)
348 (insert text)) 348 (insert text))
349 (t 349 (t
350 (when (and (string-match "\\`[ \t\n]" text) 350 (when (and (string-match "\\`[ \t\n]" text)
351 (not (bolp)) 351 (not (bolp))
352 (not (eq (char-after (1- (point))) ? ))) 352 (not (eq (char-after (1- (point))) ? )))
353 (insert " ")) 353 (insert " "))
354 (dolist (elem (split-string text "[ \f\t\n\r\v]+" t)) 354 (dolist (elem (split-string text "[ \f\t\n\r\v]+" t))
355 (when (and (bolp) 355 (when (and (bolp)
356 (> shr-indentation 0)) 356 (> shr-indentation 0))
357 (shr-indent)) 357 (shr-indent))
@@ -391,7 +391,7 @@ size, and full-buffer size."
391 (shr-indent)) 391 (shr-indent))
392 (end-of-line)) 392 (end-of-line))
393 (insert " "))) 393 (insert " ")))
394 (unless (string-match "[ \t\r\n]\\'" text) 394 (unless (string-match "[ \t\r\n]\\'" text)
395 (delete-char -1))))) 395 (delete-char -1)))))
396 396
397(defun shr-find-fill-point () 397(defun shr-find-fill-point ()
@@ -1476,7 +1476,7 @@ ones, in case fg and bg are nil."
1476(provide 'shr) 1476(provide 'shr)
1477 1477
1478;; Local Variables: 1478;; Local Variables:
1479;; coding: iso-8859-1 1479;; coding: utf-8
1480;; End: 1480;; End:
1481 1481
1482;;; shr.el ends here 1482;;; shr.el ends here
diff --git a/lisp/gnus/utf7.el b/lisp/gnus/utf7.el
index 69b189b6b53..b55b77a383b 100644
--- a/lisp/gnus/utf7.el
+++ b/lisp/gnus/utf7.el
@@ -1,4 +1,4 @@
1;;; utf7.el --- UTF-7 encoding/decoding for Emacs -*-coding: iso-8859-1;-*- 1;;; utf7.el --- UTF-7 encoding/decoding for Emacs -*-coding: utf-8;-*-
2 2
3;; Copyright (C) 1999-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
4 4
@@ -52,10 +52,10 @@
52;; necessary coding system. The code below doesn't seem to DTRT 52;; necessary coding system. The code below doesn't seem to DTRT
53;; generally. E.g.: 53;; generally. E.g.:
54;; 54;;
55;; (utf7-encode "a+") 55;; (utf7-encode "a+")
56;; => "a+ACsAow-" 56;; => "a+ACsAow-"
57;; 57;;
58;; $ echo "a+"|iconv -f iso-8859-1 -t utf-7 58;; $ echo "a+"|iconv -f utf-8 -t utf-7
59;; a+-+AKM 59;; a+-+AKM
60;; 60;;
61;; -- fx 61;; -- fx
diff --git a/lisp/international/iso-cvt.el b/lisp/international/iso-cvt.el
index 34488db5f17..407ff3ae7a4 100644
--- a/lisp/international/iso-cvt.el
+++ b/lisp/international/iso-cvt.el
@@ -1,4 +1,4 @@
1;;; iso-cvt.el --- translate ISO 8859-1 from/to various encodings -*- coding: iso-latin-1 -*- 1;;; iso-cvt.el --- translate ISO 8859-1 from/to various encodings -*- coding: utf-8 -*-
2;; This file was formerly called gm-lingo.el. 2;; This file was formerly called gm-lingo.el.
3 3
4;; Copyright (C) 1993-1998, 2000-2013 Free Software Foundation, Inc. 4;; Copyright (C) 1993-1998, 2000-2013 Free Software Foundation, Inc.
@@ -45,19 +45,19 @@
45 45
46(defvar iso-spanish-trans-tab 46(defvar iso-spanish-trans-tab
47 '( 47 '(
48 ("~n" "") 48 ("~n" "ñ")
49 ("\([a-zA-Z]\)#" "\\1") 49 ("\([a-zA-Z]\)#" "\\1ñ")
50 ("~N" "") 50 ("~N" "Ñ")
51 ("\\([-a-zA-Z\"`]\\)\"u" "\\1") 51 ("\\([-a-zA-Z\"`]\\)\"u" "\\1ü")
52 ("\\([-a-zA-Z\"`]\\)\"U" "\\1") 52 ("\\([-a-zA-Z\"`]\\)\"U" "\\1Ü")
53 ("\\([-a-zA-Z]\\)'o" "\\1") 53 ("\\([-a-zA-Z]\\)'o" "\\1ó")
54 ("\\([-a-zA-Z]\\)'O" "\\") 54 ("\\([-a-zA-Z]\\)'O" "\\Ó")
55 ("\\([-a-zA-Z]\\)'e" "\\1") 55 ("\\([-a-zA-Z]\\)'e" "\\1é")
56 ("\\([-a-zA-Z]\\)'E" "\\1") 56 ("\\([-a-zA-Z]\\)'E" "\\1É")
57 ("\\([-a-zA-Z]\\)'a" "\\1") 57 ("\\([-a-zA-Z]\\)'a" "\\1á")
58 ("\\([-a-zA-Z]\\)'A" "\\1A") 58 ("\\([-a-zA-Z]\\)'A" "\\1A")
59 ("\\([-a-zA-Z]\\)'i" "\\1") 59 ("\\([-a-zA-Z]\\)'i" "\\1í")
60 ("\\([-a-zA-Z]\\)'I" "\\1") 60 ("\\([-a-zA-Z]\\)'I" "\\1Í")
61 ) 61 )
62 "Spanish translation table.") 62 "Spanish translation table.")
63 63
@@ -89,14 +89,14 @@ Optional arg BUFFER is ignored (for use in `format-alist')."
89 89
90(defvar iso-aggressive-german-trans-tab 90(defvar iso-aggressive-german-trans-tab
91 '( 91 '(
92 ("\"a" "") 92 ("\"a" "ä")
93 ("\"A" "") 93 ("\"A" "Ä")
94 ("\"o" "") 94 ("\"o" "ö")
95 ("\"O" "") 95 ("\"O" "Ö")
96 ("\"u" "") 96 ("\"u" "ü")
97 ("\"U" "") 97 ("\"U" "Ü")
98 ("\"s" "") 98 ("\"s" "ß")
99 ("\\\\3" "") 99 ("\\\\3" "ß")
100 ) 100 )
101 "German translation table. 101 "German translation table.
102This table uses an aggressive translation approach 102This table uses an aggressive translation approach
@@ -104,14 +104,14 @@ and may erroneously translate too much.")
104 104
105(defvar iso-conservative-german-trans-tab 105(defvar iso-conservative-german-trans-tab
106 '( 106 '(
107 ("\\([-a-zA-Z\"`]\\)\"a" "\\1") 107 ("\\([-a-zA-Z\"`]\\)\"a" "\\1ä")
108 ("\\([-a-zA-Z\"`]\\)\"A" "\\1") 108 ("\\([-a-zA-Z\"`]\\)\"A" "\\1Ä")
109 ("\\([-a-zA-Z\"`]\\)\"o" "\\1") 109 ("\\([-a-zA-Z\"`]\\)\"o" "\\1ö")
110 ("\\([-a-zA-Z\"`]\\)\"O" "\\1") 110 ("\\([-a-zA-Z\"`]\\)\"O" "\\1Ö")
111 ("\\([-a-zA-Z\"`]\\)\"u" "\\1") 111 ("\\([-a-zA-Z\"`]\\)\"u" "\\1ü")
112 ("\\([-a-zA-Z\"`]\\)\"U" "\\1") 112 ("\\([-a-zA-Z\"`]\\)\"U" "\\1Ü")
113 ("\\([-a-zA-Z\"`]\\)\"s" "\\1") 113 ("\\([-a-zA-Z\"`]\\)\"s" "\\1ß")
114 ("\\([-a-zA-Z\"`]\\)\\\\3" "\\1") 114 ("\\([-a-zA-Z\"`]\\)\\\\3" "\\1ß")
115 ) 115 )
116 "German translation table. 116 "German translation table.
117This table uses a conservative translation approach 117This table uses a conservative translation approach
@@ -131,65 +131,65 @@ Optional arg BUFFER is ignored (for use in `format-alist')."
131 131
132(defvar iso-iso2tex-trans-tab 132(defvar iso-iso2tex-trans-tab
133 '( 133 '(
134 ("" "{\\\\\"a}") 134 ("ä" "{\\\\\"a}")
135 ("" "{\\\\`a}") 135 ("à" "{\\\\`a}")
136 ("" "{\\\\'a}") 136 ("á" "{\\\\'a}")
137 ("" "{\\\\~a}") 137 ("ã" "{\\\\~a}")
138 ("" "{\\\\^a}") 138 ("â" "{\\\\^a}")
139 ("" "{\\\\\"e}") 139 ("ë" "{\\\\\"e}")
140 ("" "{\\\\`e}") 140 ("è" "{\\\\`e}")
141 ("" "{\\\\'e}") 141 ("é" "{\\\\'e}")
142 ("" "{\\\\^e}") 142 ("ê" "{\\\\^e}")
143 ("" "{\\\\\"\\\\i}") 143 ("ï" "{\\\\\"\\\\i}")
144 ("" "{\\\\`\\\\i}") 144 ("ì" "{\\\\`\\\\i}")
145 ("" "{\\\\'\\\\i}") 145 ("í" "{\\\\'\\\\i}")
146 ("" "{\\\\^\\\\i}") 146 ("î" "{\\\\^\\\\i}")
147 ("" "{\\\\\"o}") 147 ("ö" "{\\\\\"o}")
148 ("" "{\\\\`o}") 148 ("ò" "{\\\\`o}")
149 ("" "{\\\\'o}") 149 ("ó" "{\\\\'o}")
150 ("" "{\\\\~o}") 150 ("õ" "{\\\\~o}")
151 ("" "{\\\\^o}") 151 ("ô" "{\\\\^o}")
152 ("" "{\\\\\"u}") 152 ("ü" "{\\\\\"u}")
153 ("" "{\\\\`u}") 153 ("ù" "{\\\\`u}")
154 ("" "{\\\\'u}") 154 ("ú" "{\\\\'u}")
155 ("" "{\\\\^u}") 155 ("û" "{\\\\^u}")
156 ("" "{\\\\\"A}") 156 ("Ä" "{\\\\\"A}")
157 ("" "{\\\\`A}") 157 ("À" "{\\\\`A}")
158 ("" "{\\\\'A}") 158 ("Á" "{\\\\'A}")
159 ("" "{\\\\~A}") 159 ("" "{\\\\~A}")
160 ("" "{\\\\^A}") 160 ("Â" "{\\\\^A}")
161 ("" "{\\\\\"E}") 161 ("Ë" "{\\\\\"E}")
162 ("" "{\\\\`E}") 162 ("È" "{\\\\`E}")
163 ("" "{\\\\'E}") 163 ("É" "{\\\\'E}")
164 ("" "{\\\\^E}") 164 ("Ê" "{\\\\^E}")
165 ("" "{\\\\\"I}") 165 ("Ï" "{\\\\\"I}")
166 ("" "{\\\\`I}") 166 ("Ì" "{\\\\`I}")
167 ("" "{\\\\'I}") 167 ("Í" "{\\\\'I}")
168 ("" "{\\\\^I}") 168 ("Î" "{\\\\^I}")
169 ("" "{\\\\\"O}") 169 ("Ö" "{\\\\\"O}")
170 ("" "{\\\\`O}") 170 ("Ò" "{\\\\`O}")
171 ("" "{\\\\'O}") 171 ("Ó" "{\\\\'O}")
172 ("" "{\\\\~O}") 172 ("Õ" "{\\\\~O}")
173 ("" "{\\\\^O}") 173 ("Ô" "{\\\\^O}")
174 ("" "{\\\\\"U}") 174 ("Ü" "{\\\\\"U}")
175 ("" "{\\\\`U}") 175 ("Ù" "{\\\\`U}")
176 ("" "{\\\\'U}") 176 ("Ú" "{\\\\'U}")
177 ("" "{\\\\^U}") 177 ("Û" "{\\\\^U}")
178 ("" "{\\\\~n}") 178 ("ñ" "{\\\\~n}")
179 ("" "{\\\\~N}") 179 ("Ñ" "{\\\\~N}")
180 ("" "{\\\\c c}") 180 ("ç" "{\\\\c c}")
181 ("" "{\\\\c C}") 181 ("Ç" "{\\\\c C}")
182 ("" "{\\\\ss}") 182 ("ß" "{\\\\ss}")
183 ("\306" "{\\\\AE}") 183 ("\306" "{\\\\AE}")
184 ("\346" "{\\\\ae}") 184 ("\346" "{\\\\ae}")
185 ("\305" "{\\\\AA}") 185 ("\305" "{\\\\AA}")
186 ("\345" "{\\\\aa}") 186 ("\345" "{\\\\aa}")
187 ("\251" "{\\\\copyright}") 187 ("\251" "{\\\\copyright}")
188 ("" "{\\\\pounds}") 188 ("" "{\\\\pounds}")
189 ("" "{\\\\P}") 189 ("" "{\\\\P}")
190 ("" "{\\\\S}") 190 ("" "{\\\\S}")
191 ("" "{?`}") 191 ("" "{?`}")
192 ("" "{!`}") 192 ("" "{!`}")
193 ) 193 )
194 "Translation table for translating ISO 8859-1 characters to TeX sequences.") 194 "Translation table for translating ISO 8859-1 characters to TeX sequences.")
195 195
@@ -204,183 +204,183 @@ Optional arg BUFFER is ignored (for use in `format-alist')."
204 204
205(defvar iso-tex2iso-trans-tab 205(defvar iso-tex2iso-trans-tab
206 '( 206 '(
207 ("{\\\\\"a}" "") 207 ("{\\\\\"a}" "ä")
208 ("{\\\\`a}" "") 208 ("{\\\\`a}" "à")
209 ("{\\\\'a}" "") 209 ("{\\\\'a}" "á")
210 ("{\\\\~a}" "") 210 ("{\\\\~a}" "ã")
211 ("{\\\\^a}" "") 211 ("{\\\\^a}" "â")
212 ("{\\\\\"e}" "") 212 ("{\\\\\"e}" "ë")
213 ("{\\\\`e}" "") 213 ("{\\\\`e}" "è")
214 ("{\\\\'e}" "") 214 ("{\\\\'e}" "é")
215 ("{\\\\^e}" "") 215 ("{\\\\^e}" "ê")
216 ("{\\\\\"\\\\i}" "") 216 ("{\\\\\"\\\\i}" "ï")
217 ("{\\\\`\\\\i}" "") 217 ("{\\\\`\\\\i}" "ì")
218 ("{\\\\'\\\\i}" "") 218 ("{\\\\'\\\\i}" "í")
219 ("{\\\\^\\\\i}" "") 219 ("{\\\\^\\\\i}" "î")
220 ("{\\\\\"i}" "") 220 ("{\\\\\"i}" "ï")
221 ("{\\\\`i}" "") 221 ("{\\\\`i}" "ì")
222 ("{\\\\'i}" "") 222 ("{\\\\'i}" "í")
223 ("{\\\\^i}" "") 223 ("{\\\\^i}" "î")
224 ("{\\\\\"o}" "") 224 ("{\\\\\"o}" "ö")
225 ("{\\\\`o}" "") 225 ("{\\\\`o}" "ò")
226 ("{\\\\'o}" "") 226 ("{\\\\'o}" "ó")
227 ("{\\\\~o}" "") 227 ("{\\\\~o}" "õ")
228 ("{\\\\^o}" "") 228 ("{\\\\^o}" "ô")
229 ("{\\\\\"u}" "") 229 ("{\\\\\"u}" "ü")
230 ("{\\\\`u}" "") 230 ("{\\\\`u}" "ù")
231 ("{\\\\'u}" "") 231 ("{\\\\'u}" "ú")
232 ("{\\\\^u}" "") 232 ("{\\\\^u}" "û")
233 ("{\\\\\"A}" "") 233 ("{\\\\\"A}" "Ä")
234 ("{\\\\`A}" "") 234 ("{\\\\`A}" "À")
235 ("{\\\\'A}" "") 235 ("{\\\\'A}" "Á")
236 ("{\\\\~A}" "") 236 ("{\\\\~A}" "")
237 ("{\\\\^A}" "") 237 ("{\\\\^A}" "Â")
238 ("{\\\\\"E}" "") 238 ("{\\\\\"E}" "Ë")
239 ("{\\\\`E}" "") 239 ("{\\\\`E}" "È")
240 ("{\\\\'E}" "") 240 ("{\\\\'E}" "É")
241 ("{\\\\^E}" "") 241 ("{\\\\^E}" "Ê")
242 ("{\\\\\"I}" "") 242 ("{\\\\\"I}" "Ï")
243 ("{\\\\`I}" "") 243 ("{\\\\`I}" "Ì")
244 ("{\\\\'I}" "") 244 ("{\\\\'I}" "Í")
245 ("{\\\\^I}" "") 245 ("{\\\\^I}" "Î")
246 ("{\\\\\"O}" "") 246 ("{\\\\\"O}" "Ö")
247 ("{\\\\`O}" "") 247 ("{\\\\`O}" "Ò")
248 ("{\\\\'O}" "") 248 ("{\\\\'O}" "Ó")
249 ("{\\\\~O}" "") 249 ("{\\\\~O}" "Õ")
250 ("{\\\\^O}" "") 250 ("{\\\\^O}" "Ô")
251 ("{\\\\\"U}" "") 251 ("{\\\\\"U}" "Ü")
252 ("{\\\\`U}" "") 252 ("{\\\\`U}" "Ù")
253 ("{\\\\'U}" "") 253 ("{\\\\'U}" "Ú")
254 ("{\\\\^U}" "") 254 ("{\\\\^U}" "Û")
255 ("{\\\\~n}" "") 255 ("{\\\\~n}" "ñ")
256 ("{\\\\~N}" "") 256 ("{\\\\~N}" "Ñ")
257 ("{\\\\c c}" "") 257 ("{\\\\c c}" "ç")
258 ("{\\\\c C}" "") 258 ("{\\\\c C}" "Ç")
259 ("\\\\\"a" "") 259 ("\\\\\"a" "ä")
260 ("\\\\`a" "") 260 ("\\\\`a" "à")
261 ("\\\\'a" "") 261 ("\\\\'a" "á")
262 ("\\\\~a" "") 262 ("\\\\~a" "ã")
263 ("\\\\^a" "") 263 ("\\\\^a" "â")
264 ("\\\\\"e" "") 264 ("\\\\\"e" "ë")
265 ("\\\\`e" "") 265 ("\\\\`e" "è")
266 ("\\\\'e" "") 266 ("\\\\'e" "é")
267 ("\\\\^e" "") 267 ("\\\\^e" "ê")
268 ;; Discard spaces and/or one EOF after macro \i. 268 ;; Discard spaces and/or one EOF after macro \i.
269 ;; Converting it back will use braces. 269 ;; Converting it back will use braces.
270 ("\\\\\"\\\\i *\n\n" "\n\n") 270 ("\\\\\"\\\\i *\n\n" "ï\n\n")
271 ("\\\\\"\\\\i *\n?" "") 271 ("\\\\\"\\\\i *\n?" "ï")
272 ("\\\\`\\\\i *\n\n" "\n\n") 272 ("\\\\`\\\\i *\n\n" "ì\n\n")
273 ("\\\\`\\\\i *\n?" "") 273 ("\\\\`\\\\i *\n?" "ì")
274 ("\\\\'\\\\i *\n\n" "\n\n") 274 ("\\\\'\\\\i *\n\n" "í\n\n")
275 ("\\\\'\\\\i *\n?" "") 275 ("\\\\'\\\\i *\n?" "í")
276 ("\\\\^\\\\i *\n\n" "\n\n") 276 ("\\\\^\\\\i *\n\n" "î\n\n")
277 ("\\\\^\\\\i *\n?" "") 277 ("\\\\^\\\\i *\n?" "î")
278 ("\\\\\"i" "") 278 ("\\\\\"i" "ï")
279 ("\\\\`i" "") 279 ("\\\\`i" "ì")
280 ("\\\\'i" "") 280 ("\\\\'i" "í")
281 ("\\\\^i" "") 281 ("\\\\^i" "î")
282 ("\\\\\"o" "") 282 ("\\\\\"o" "ö")
283 ("\\\\`o" "") 283 ("\\\\`o" "ò")
284 ("\\\\'o" "") 284 ("\\\\'o" "ó")
285 ("\\\\~o" "") 285 ("\\\\~o" "õ")
286 ("\\\\^o" "") 286 ("\\\\^o" "ô")
287 ("\\\\\"u" "") 287 ("\\\\\"u" "ü")
288 ("\\\\`u" "") 288 ("\\\\`u" "ù")
289 ("\\\\'u" "") 289 ("\\\\'u" "ú")
290 ("\\\\^u" "") 290 ("\\\\^u" "û")
291 ("\\\\\"A" "") 291 ("\\\\\"A" "Ä")
292 ("\\\\`A" "") 292 ("\\\\`A" "À")
293 ("\\\\'A" "") 293 ("\\\\'A" "Á")
294 ("\\\\~A" "") 294 ("\\\\~A" "")
295 ("\\\\^A" "") 295 ("\\\\^A" "Â")
296 ("\\\\\"E" "") 296 ("\\\\\"E" "Ë")
297 ("\\\\`E" "") 297 ("\\\\`E" "È")
298 ("\\\\'E" "") 298 ("\\\\'E" "É")
299 ("\\\\^E" "") 299 ("\\\\^E" "Ê")
300 ("\\\\\"I" "") 300 ("\\\\\"I" "Ï")
301 ("\\\\`I" "") 301 ("\\\\`I" "Ì")
302 ("\\\\'I" "") 302 ("\\\\'I" "Í")
303 ("\\\\^I" "") 303 ("\\\\^I" "Î")
304 ("\\\\\"O" "") 304 ("\\\\\"O" "Ö")
305 ("\\\\`O" "") 305 ("\\\\`O" "Ò")
306 ("\\\\'O" "") 306 ("\\\\'O" "Ó")
307 ("\\\\~O" "") 307 ("\\\\~O" "Õ")
308 ("\\\\^O" "") 308 ("\\\\^O" "Ô")
309 ("\\\\\"U" "") 309 ("\\\\\"U" "Ü")
310 ("\\\\`U" "") 310 ("\\\\`U" "Ù")
311 ("\\\\'U" "") 311 ("\\\\'U" "Ú")
312 ("\\\\^U" "") 312 ("\\\\^U" "Û")
313 ("\\\\~n" "") 313 ("\\\\~n" "ñ")
314 ("\\\\~N" "") 314 ("\\\\~N" "Ñ")
315 ("\\\\\"{a}" "") 315 ("\\\\\"{a}" "ä")
316 ("\\\\`{a}" "") 316 ("\\\\`{a}" "à")
317 ("\\\\'{a}" "") 317 ("\\\\'{a}" "á")
318 ("\\\\~{a}" "") 318 ("\\\\~{a}" "ã")
319 ("\\\\^{a}" "") 319 ("\\\\^{a}" "â")
320 ("\\\\\"{e}" "") 320 ("\\\\\"{e}" "ë")
321 ("\\\\`{e}" "") 321 ("\\\\`{e}" "è")
322 ("\\\\'{e}" "") 322 ("\\\\'{e}" "é")
323 ("\\\\^{e}" "") 323 ("\\\\^{e}" "ê")
324 ("\\\\\"{\\\\i}" "") 324 ("\\\\\"{\\\\i}" "ï")
325 ("\\\\`{\\\\i}" "") 325 ("\\\\`{\\\\i}" "ì")
326 ("\\\\'{\\\\i}" "") 326 ("\\\\'{\\\\i}" "í")
327 ("\\\\^{\\\\i}" "") 327 ("\\\\^{\\\\i}" "î")
328 ("\\\\\"{i}" "") 328 ("\\\\\"{i}" "ï")
329 ("\\\\`{i}" "") 329 ("\\\\`{i}" "ì")
330 ("\\\\'{i}" "") 330 ("\\\\'{i}" "í")
331 ("\\\\^{i}" "") 331 ("\\\\^{i}" "î")
332 ("\\\\\"{o}" "") 332 ("\\\\\"{o}" "ö")
333 ("\\\\`{o}" "") 333 ("\\\\`{o}" "ò")
334 ("\\\\'{o}" "") 334 ("\\\\'{o}" "ó")
335 ("\\\\~{o}" "") 335 ("\\\\~{o}" "õ")
336 ("\\\\^{o}" "") 336 ("\\\\^{o}" "ô")
337 ("\\\\\"{u}" "") 337 ("\\\\\"{u}" "ü")
338 ("\\\\`{u}" "") 338 ("\\\\`{u}" "ù")
339 ("\\\\'{u}" "") 339 ("\\\\'{u}" "ú")
340 ("\\\\^{u}" "") 340 ("\\\\^{u}" "û")
341 ("\\\\\"{A}" "") 341 ("\\\\\"{A}" "Ä")
342 ("\\\\`{A}" "") 342 ("\\\\`{A}" "À")
343 ("\\\\'{A}" "") 343 ("\\\\'{A}" "Á")
344 ("\\\\~{A}" "") 344 ("\\\\~{A}" "")
345 ("\\\\^{A}" "") 345 ("\\\\^{A}" "Â")
346 ("\\\\\"{E}" "") 346 ("\\\\\"{E}" "Ë")
347 ("\\\\`{E}" "") 347 ("\\\\`{E}" "È")
348 ("\\\\'{E}" "") 348 ("\\\\'{E}" "É")
349 ("\\\\^{E}" "") 349 ("\\\\^{E}" "Ê")
350 ("\\\\\"{I}" "") 350 ("\\\\\"{I}" "Ï")
351 ("\\\\`{I}" "") 351 ("\\\\`{I}" "Ì")
352 ("\\\\'{I}" "") 352 ("\\\\'{I}" "Í")
353 ("\\\\^{I}" "") 353 ("\\\\^{I}" "Î")
354 ("\\\\\"{O}" "") 354 ("\\\\\"{O}" "Ö")
355 ("\\\\`{O}" "") 355 ("\\\\`{O}" "Ò")
356 ("\\\\'{O}" "") 356 ("\\\\'{O}" "Ó")
357 ("\\\\~{O}" "") 357 ("\\\\~{O}" "Õ")
358 ("\\\\^{O}" "") 358 ("\\\\^{O}" "Ô")
359 ("\\\\\"{U}" "") 359 ("\\\\\"{U}" "Ü")
360 ("\\\\`{U}" "") 360 ("\\\\`{U}" "Ù")
361 ("\\\\'{U}" "") 361 ("\\\\'{U}" "Ú")
362 ("\\\\^{U}" "") 362 ("\\\\^{U}" "Û")
363 ("\\\\~{n}" "") 363 ("\\\\~{n}" "ñ")
364 ("\\\\~{N}" "") 364 ("\\\\~{N}" "Ñ")
365 ("\\\\c{c}" "") 365 ("\\\\c{c}" "ç")
366 ("\\\\c{C}" "") 366 ("\\\\c{C}" "Ç")
367 ("{\\\\ss}" "") 367 ("{\\\\ss}" "ß")
368 ("{\\\\AE}" "\306") 368 ("{\\\\AE}" "\306")
369 ("{\\\\ae}" "\346") 369 ("{\\\\ae}" "\346")
370 ("{\\\\AA}" "\305") 370 ("{\\\\AA}" "\305")
371 ("{\\\\aa}" "\345") 371 ("{\\\\aa}" "\345")
372 ("{\\\\copyright}" "\251") 372 ("{\\\\copyright}" "\251")
373 ("\\\\copyright{}" "\251") 373 ("\\\\copyright{}" "\251")
374 ("{\\\\pounds}" "" ) 374 ("{\\\\pounds}" "" )
375 ("{\\\\P}" "" ) 375 ("{\\\\P}" "" )
376 ("{\\\\S}" "" ) 376 ("{\\\\S}" "" )
377 ("\\\\pounds{}" "" ) 377 ("\\\\pounds{}" "" )
378 ("\\\\P{}" "" ) 378 ("\\\\P{}" "" )
379 ("\\\\S{}" "" ) 379 ("\\\\S{}" "" )
380 ("{\\?`}" "") 380 ("{\\?`}" "")
381 ("{!`}" "") 381 ("{!`}" "")
382 ("\\?`" "") 382 ("\\?`" "")
383 ("!`" "") 383 ("!`" "")
384 ) 384 )
385 "Translation table for translating TeX sequences to ISO 8859-1 characters. 385 "Translation table for translating TeX sequences to ISO 8859-1 characters.
386This table is not exhaustive (and due to TeX's power can never be). 386This table is not exhaustive (and due to TeX's power can never be).
@@ -397,185 +397,185 @@ Optional arg BUFFER is ignored (for use in `format-alist')."
397 397
398(defvar iso-gtex2iso-trans-tab 398(defvar iso-gtex2iso-trans-tab
399 '( 399 '(
400 ("{\\\\\"a}" "") 400 ("{\\\\\"a}" "ä")
401 ("{\\\\`a}" "") 401 ("{\\\\`a}" "à")
402 ("{\\\\'a}" "") 402 ("{\\\\'a}" "á")
403 ("{\\\\~a}" "") 403 ("{\\\\~a}" "ã")
404 ("{\\\\^a}" "") 404 ("{\\\\^a}" "â")
405 ("{\\\\\"e}" "") 405 ("{\\\\\"e}" "ë")
406 ("{\\\\`e}" "") 406 ("{\\\\`e}" "è")
407 ("{\\\\'e}" "") 407 ("{\\\\'e}" "é")
408 ("{\\\\^e}" "") 408 ("{\\\\^e}" "ê")
409 ("{\\\\\"\\\\i}" "") 409 ("{\\\\\"\\\\i}" "ï")
410 ("{\\\\`\\\\i}" "") 410 ("{\\\\`\\\\i}" "ì")
411 ("{\\\\'\\\\i}" "") 411 ("{\\\\'\\\\i}" "í")
412 ("{\\\\^\\\\i}" "") 412 ("{\\\\^\\\\i}" "î")
413 ("{\\\\\"i}" "") 413 ("{\\\\\"i}" "ï")
414 ("{\\\\`i}" "") 414 ("{\\\\`i}" "ì")
415 ("{\\\\'i}" "") 415 ("{\\\\'i}" "í")
416 ("{\\\\^i}" "") 416 ("{\\\\^i}" "î")
417 ("{\\\\\"o}" "") 417 ("{\\\\\"o}" "ö")
418 ("{\\\\`o}" "") 418 ("{\\\\`o}" "ò")
419 ("{\\\\'o}" "") 419 ("{\\\\'o}" "ó")
420 ("{\\\\~o}" "") 420 ("{\\\\~o}" "õ")
421 ("{\\\\^o}" "") 421 ("{\\\\^o}" "ô")
422 ("{\\\\\"u}" "") 422 ("{\\\\\"u}" "ü")
423 ("{\\\\`u}" "") 423 ("{\\\\`u}" "ù")
424 ("{\\\\'u}" "") 424 ("{\\\\'u}" "ú")
425 ("{\\\\^u}" "") 425 ("{\\\\^u}" "û")
426 ("{\\\\\"A}" "") 426 ("{\\\\\"A}" "Ä")
427 ("{\\\\`A}" "") 427 ("{\\\\`A}" "À")
428 ("{\\\\'A}" "") 428 ("{\\\\'A}" "Á")
429 ("{\\\\~A}" "") 429 ("{\\\\~A}" "")
430 ("{\\\\^A}" "") 430 ("{\\\\^A}" "Â")
431 ("{\\\\\"E}" "") 431 ("{\\\\\"E}" "Ë")
432 ("{\\\\`E}" "") 432 ("{\\\\`E}" "È")
433 ("{\\\\'E}" "") 433 ("{\\\\'E}" "É")
434 ("{\\\\^E}" "") 434 ("{\\\\^E}" "Ê")
435 ("{\\\\\"I}" "") 435 ("{\\\\\"I}" "Ï")
436 ("{\\\\`I}" "") 436 ("{\\\\`I}" "Ì")
437 ("{\\\\'I}" "") 437 ("{\\\\'I}" "Í")
438 ("{\\\\^I}" "") 438 ("{\\\\^I}" "Î")
439 ("{\\\\\"O}" "") 439 ("{\\\\\"O}" "Ö")
440 ("{\\\\`O}" "") 440 ("{\\\\`O}" "Ò")
441 ("{\\\\'O}" "") 441 ("{\\\\'O}" "Ó")
442 ("{\\\\~O}" "") 442 ("{\\\\~O}" "Õ")
443 ("{\\\\^O}" "") 443 ("{\\\\^O}" "Ô")
444 ("{\\\\\"U}" "") 444 ("{\\\\\"U}" "Ü")
445 ("{\\\\`U}" "") 445 ("{\\\\`U}" "Ù")
446 ("{\\\\'U}" "") 446 ("{\\\\'U}" "Ú")
447 ("{\\\\^U}" "") 447 ("{\\\\^U}" "Û")
448 ("{\\\\~n}" "") 448 ("{\\\\~n}" "ñ")
449 ("{\\\\~N}" "") 449 ("{\\\\~N}" "Ñ")
450 ("{\\\\c c}" "") 450 ("{\\\\c c}" "ç")
451 ("{\\\\c C}" "") 451 ("{\\\\c C}" "Ç")
452 ("\\\\\"a" "") 452 ("\\\\\"a" "ä")
453 ("\\\\`a" "") 453 ("\\\\`a" "à")
454 ("\\\\'a" "") 454 ("\\\\'a" "á")
455 ("\\\\~a" "") 455 ("\\\\~a" "ã")
456 ("\\\\^a" "") 456 ("\\\\^a" "â")
457 ("\\\\\"e" "") 457 ("\\\\\"e" "ë")
458 ("\\\\`e" "") 458 ("\\\\`e" "è")
459 ("\\\\'e" "") 459 ("\\\\'e" "é")
460 ("\\\\^e" "") 460 ("\\\\^e" "ê")
461 ("\\\\\"\\\\i" "") 461 ("\\\\\"\\\\i" "ï")
462 ("\\\\`\\\\i" "") 462 ("\\\\`\\\\i" "ì")
463 ("\\\\'\\\\i" "") 463 ("\\\\'\\\\i" "í")
464 ("\\\\^\\\\i" "") 464 ("\\\\^\\\\i" "î")
465 ("\\\\\"i" "") 465 ("\\\\\"i" "ï")
466 ("\\\\`i" "") 466 ("\\\\`i" "ì")
467 ("\\\\'i" "") 467 ("\\\\'i" "í")
468 ("\\\\^i" "") 468 ("\\\\^i" "î")
469 ("\\\\\"o" "") 469 ("\\\\\"o" "ö")
470 ("\\\\`o" "") 470 ("\\\\`o" "ò")
471 ("\\\\'o" "") 471 ("\\\\'o" "ó")
472 ("\\\\~o" "") 472 ("\\\\~o" "õ")
473 ("\\\\^o" "") 473 ("\\\\^o" "ô")
474 ("\\\\\"u" "") 474 ("\\\\\"u" "ü")
475 ("\\\\`u" "") 475 ("\\\\`u" "ù")
476 ("\\\\'u" "") 476 ("\\\\'u" "ú")
477 ("\\\\^u" "") 477 ("\\\\^u" "û")
478 ("\\\\\"A" "") 478 ("\\\\\"A" "Ä")
479 ("\\\\`A" "") 479 ("\\\\`A" "À")
480 ("\\\\'A" "") 480 ("\\\\'A" "Á")
481 ("\\\\~A" "") 481 ("\\\\~A" "")
482 ("\\\\^A" "") 482 ("\\\\^A" "Â")
483 ("\\\\\"E" "") 483 ("\\\\\"E" "Ë")
484 ("\\\\`E" "") 484 ("\\\\`E" "È")
485 ("\\\\'E" "") 485 ("\\\\'E" "É")
486 ("\\\\^E" "") 486 ("\\\\^E" "Ê")
487 ("\\\\\"I" "") 487 ("\\\\\"I" "Ï")
488 ("\\\\`I" "") 488 ("\\\\`I" "Ì")
489 ("\\\\'I" "") 489 ("\\\\'I" "Í")
490 ("\\\\^I" "") 490 ("\\\\^I" "Î")
491 ("\\\\\"O" "") 491 ("\\\\\"O" "Ö")
492 ("\\\\`O" "") 492 ("\\\\`O" "Ò")
493 ("\\\\'O" "") 493 ("\\\\'O" "Ó")
494 ("\\\\~O" "") 494 ("\\\\~O" "Õ")
495 ("\\\\^O" "") 495 ("\\\\^O" "Ô")
496 ("\\\\\"U" "") 496 ("\\\\\"U" "Ü")
497 ("\\\\`U" "") 497 ("\\\\`U" "Ù")
498 ("\\\\'U" "") 498 ("\\\\'U" "Ú")
499 ("\\\\^U" "") 499 ("\\\\^U" "Û")
500 ("\\\\~n" "") 500 ("\\\\~n" "ñ")
501 ("\\\\~N" "") 501 ("\\\\~N" "Ñ")
502 ("\\\\\"{a}" "") 502 ("\\\\\"{a}" "ä")
503 ("\\\\`{a}" "") 503 ("\\\\`{a}" "à")
504 ("\\\\'{a}" "") 504 ("\\\\'{a}" "á")
505 ("\\\\~{a}" "") 505 ("\\\\~{a}" "ã")
506 ("\\\\^{a}" "") 506 ("\\\\^{a}" "â")
507 ("\\\\\"{e}" "") 507 ("\\\\\"{e}" "ë")
508 ("\\\\`{e}" "") 508 ("\\\\`{e}" "è")
509 ("\\\\'{e}" "") 509 ("\\\\'{e}" "é")
510 ("\\\\^{e}" "") 510 ("\\\\^{e}" "ê")
511 ("\\\\\"{\\\\i}" "") 511 ("\\\\\"{\\\\i}" "ï")
512 ("\\\\`{\\\\i}" "") 512 ("\\\\`{\\\\i}" "ì")
513 ("\\\\'{\\\\i}" "") 513 ("\\\\'{\\\\i}" "í")
514 ("\\\\^{\\\\i}" "") 514 ("\\\\^{\\\\i}" "î")
515 ("\\\\\"{i}" "") 515 ("\\\\\"{i}" "ï")
516 ("\\\\`{i}" "") 516 ("\\\\`{i}" "ì")
517 ("\\\\'{i}" "") 517 ("\\\\'{i}" "í")
518 ("\\\\^{i}" "") 518 ("\\\\^{i}" "î")
519 ("\\\\\"{o}" "") 519 ("\\\\\"{o}" "ö")
520 ("\\\\`{o}" "") 520 ("\\\\`{o}" "ò")
521 ("\\\\'{o}" "") 521 ("\\\\'{o}" "ó")
522 ("\\\\~{o}" "") 522 ("\\\\~{o}" "õ")
523 ("\\\\^{o}" "") 523 ("\\\\^{o}" "ô")
524 ("\\\\\"{u}" "") 524 ("\\\\\"{u}" "ü")
525 ("\\\\`{u}" "") 525 ("\\\\`{u}" "ù")
526 ("\\\\'{u}" "") 526 ("\\\\'{u}" "ú")
527 ("\\\\^{u}" "") 527 ("\\\\^{u}" "û")
528 ("\\\\\"{A}" "") 528 ("\\\\\"{A}" "Ä")
529 ("\\\\`{A}" "") 529 ("\\\\`{A}" "À")
530 ("\\\\'{A}" "") 530 ("\\\\'{A}" "Á")
531 ("\\\\~{A}" "") 531 ("\\\\~{A}" "")
532 ("\\\\^{A}" "") 532 ("\\\\^{A}" "Â")
533 ("\\\\\"{E}" "") 533 ("\\\\\"{E}" "Ë")
534 ("\\\\`{E}" "") 534 ("\\\\`{E}" "È")
535 ("\\\\'{E}" "") 535 ("\\\\'{E}" "É")
536 ("\\\\^{E}" "") 536 ("\\\\^{E}" "Ê")
537 ("\\\\\"{I}" "") 537 ("\\\\\"{I}" "Ï")
538 ("\\\\`{I}" "") 538 ("\\\\`{I}" "Ì")
539 ("\\\\'{I}" "") 539 ("\\\\'{I}" "Í")
540 ("\\\\^{I}" "") 540 ("\\\\^{I}" "Î")
541 ("\\\\\"{O}" "") 541 ("\\\\\"{O}" "Ö")
542 ("\\\\`{O}" "") 542 ("\\\\`{O}" "Ò")
543 ("\\\\'{O}" "") 543 ("\\\\'{O}" "Ó")
544 ("\\\\~{O}" "") 544 ("\\\\~{O}" "Õ")
545 ("\\\\^{O}" "") 545 ("\\\\^{O}" "Ô")
546 ("\\\\\"{U}" "") 546 ("\\\\\"{U}" "Ü")
547 ("\\\\`{U}" "") 547 ("\\\\`{U}" "Ù")
548 ("\\\\'{U}" "") 548 ("\\\\'{U}" "Ú")
549 ("\\\\^{U}" "") 549 ("\\\\^{U}" "Û")
550 ("\\\\~{n}" "") 550 ("\\\\~{n}" "ñ")
551 ("\\\\~{N}" "") 551 ("\\\\~{N}" "Ñ")
552 ("\\\\c{c}" "") 552 ("\\\\c{c}" "ç")
553 ("\\\\c{C}" "") 553 ("\\\\c{C}" "Ç")
554 ("{\\\\ss}" "") 554 ("{\\\\ss}" "ß")
555 ("{\\\\AE}" "\306") 555 ("{\\\\AE}" "\306")
556 ("{\\\\ae}" "\346") 556 ("{\\\\ae}" "\346")
557 ("{\\\\AA}" "\305") 557 ("{\\\\AA}" "\305")
558 ("{\\\\aa}" "\345") 558 ("{\\\\aa}" "\345")
559 ("{\\\\copyright}" "\251") 559 ("{\\\\copyright}" "\251")
560 ("\\\\copyright{}" "\251") 560 ("\\\\copyright{}" "\251")
561 ("{\\\\pounds}" "" ) 561 ("{\\\\pounds}" "" )
562 ("{\\\\P}" "" ) 562 ("{\\\\P}" "" )
563 ("{\\\\S}" "" ) 563 ("{\\\\S}" "" )
564 ("\\\\pounds{}" "" ) 564 ("\\\\pounds{}" "" )
565 ("\\\\P{}" "" ) 565 ("\\\\P{}" "" )
566 ("\\\\S{}" "" ) 566 ("\\\\S{}" "" )
567 ("?`" "") 567 ("?`" "")
568 ("!`" "") 568 ("!`" "")
569 ("{?`}" "") 569 ("{?`}" "")
570 ("{!`}" "") 570 ("{!`}" "")
571 ("\"a" "") 571 ("\"a" "ä")
572 ("\"A" "") 572 ("\"A" "Ä")
573 ("\"o" "") 573 ("\"o" "ö")
574 ("\"O" "") 574 ("\"O" "Ö")
575 ("\"u" "") 575 ("\"u" "ü")
576 ("\"U" "") 576 ("\"U" "Ü")
577 ("\"s" "") 577 ("\"s" "ß")
578 ("\\\\3" "") 578 ("\\\\3" "ß")
579 ) 579 )
580 "Translation table for translating German TeX sequences to ISO 8859-1. 580 "Translation table for translating German TeX sequences to ISO 8859-1.
581This table is not exhaustive (and due to TeX's power can never be). 581This table is not exhaustive (and due to TeX's power can never be).
@@ -583,65 +583,65 @@ It only contains commonly used sequences.")
583 583
584(defvar iso-iso2gtex-trans-tab 584(defvar iso-iso2gtex-trans-tab
585 '( 585 '(
586 ("" "\"a") 586 ("ä" "\"a")
587 ("" "{\\\\`a}") 587 ("à" "{\\\\`a}")
588 ("" "{\\\\'a}") 588 ("á" "{\\\\'a}")
589 ("" "{\\\\~a}") 589 ("ã" "{\\\\~a}")
590 ("" "{\\\\^a}") 590 ("â" "{\\\\^a}")
591 ("" "{\\\\\"e}") 591 ("ë" "{\\\\\"e}")
592 ("" "{\\\\`e}") 592 ("è" "{\\\\`e}")
593 ("" "{\\\\'e}") 593 ("é" "{\\\\'e}")
594 ("" "{\\\\^e}") 594 ("ê" "{\\\\^e}")
595 ("" "{\\\\\"\\\\i}") 595 ("ï" "{\\\\\"\\\\i}")
596 ("" "{\\\\`\\\\i}") 596 ("ì" "{\\\\`\\\\i}")
597 ("" "{\\\\'\\\\i}") 597 ("í" "{\\\\'\\\\i}")
598 ("" "{\\\\^\\\\i}") 598 ("î" "{\\\\^\\\\i}")
599 ("" "\"o") 599 ("ö" "\"o")
600 ("" "{\\\\`o}") 600 ("ò" "{\\\\`o}")
601 ("" "{\\\\'o}") 601 ("ó" "{\\\\'o}")
602 ("" "{\\\\~o}") 602 ("õ" "{\\\\~o}")
603 ("" "{\\\\^o}") 603 ("ô" "{\\\\^o}")
604 ("" "\"u") 604 ("ü" "\"u")
605 ("" "{\\\\`u}") 605 ("ù" "{\\\\`u}")
606 ("" "{\\\\'u}") 606 ("ú" "{\\\\'u}")
607 ("" "{\\\\^u}") 607 ("û" "{\\\\^u}")
608 ("" "\"A") 608 ("Ä" "\"A")
609 ("" "{\\\\`A}") 609 ("À" "{\\\\`A}")
610 ("" "{\\\\'A}") 610 ("Á" "{\\\\'A}")
611 ("" "{\\\\~A}") 611 ("" "{\\\\~A}")
612 ("" "{\\\\^A}") 612 ("Â" "{\\\\^A}")
613 ("" "{\\\\\"E}") 613 ("Ë" "{\\\\\"E}")
614 ("" "{\\\\`E}") 614 ("È" "{\\\\`E}")
615 ("" "{\\\\'E}") 615 ("É" "{\\\\'E}")
616 ("" "{\\\\^E}") 616 ("Ê" "{\\\\^E}")
617 ("" "{\\\\\"I}") 617 ("Ï" "{\\\\\"I}")
618 ("" "{\\\\`I}") 618 ("Ì" "{\\\\`I}")
619 ("" "{\\\\'I}") 619 ("Í" "{\\\\'I}")
620 ("" "{\\\\^I}") 620 ("Î" "{\\\\^I}")
621 ("" "\"O") 621 ("Ö" "\"O")
622 ("" "{\\\\`O}") 622 ("Ò" "{\\\\`O}")
623 ("" "{\\\\'O}") 623 ("Ó" "{\\\\'O}")
624 ("" "{\\\\~O}") 624 ("Õ" "{\\\\~O}")
625 ("" "{\\\\^O}") 625 ("Ô" "{\\\\^O}")
626 ("" "\"U") 626 ("Ü" "\"U")
627 ("" "{\\\\`U}") 627 ("Ù" "{\\\\`U}")
628 ("" "{\\\\'U}") 628 ("Ú" "{\\\\'U}")
629 ("" "{\\\\^U}") 629 ("Û" "{\\\\^U}")
630 ("" "{\\\\~n}") 630 ("ñ" "{\\\\~n}")
631 ("" "{\\\\~N}") 631 ("Ñ" "{\\\\~N}")
632 ("" "{\\\\c c}") 632 ("ç" "{\\\\c c}")
633 ("" "{\\\\c C}") 633 ("Ç" "{\\\\c C}")
634 ("" "\"s") 634 ("ß" "\"s")
635 ("\306" "{\\\\AE}") 635 ("\306" "{\\\\AE}")
636 ("\346" "{\\\\ae}") 636 ("\346" "{\\\\ae}")
637 ("\305" "{\\\\AA}") 637 ("\305" "{\\\\AA}")
638 ("\345" "{\\\\aa}") 638 ("\345" "{\\\\aa}")
639 ("\251" "{\\\\copyright}") 639 ("\251" "{\\\\copyright}")
640 ("" "{\\\\pounds}") 640 ("" "{\\\\pounds}")
641 ("" "{\\\\P}") 641 ("" "{\\\\P}")
642 ("" "{\\\\S}") 642 ("" "{\\\\S}")
643 ("" "{?`}") 643 ("" "{?`}")
644 ("" "{!`}") 644 ("" "{!`}")
645 ) 645 )
646 "Translation table for translating ISO 8859-1 characters to German TeX.") 646 "Translation table for translating ISO 8859-1 characters to German TeX.")
647 647
@@ -664,13 +664,13 @@ Optional arg BUFFER is ignored (for use in `format-alist')."
664 (iso-translate-conventions from to iso-iso2gtex-trans-tab)) 664 (iso-translate-conventions from to iso-iso2gtex-trans-tab))
665 665
666(defvar iso-iso2duden-trans-tab 666(defvar iso-iso2duden-trans-tab
667 '(("" "ae") 667 '(("ä" "ae")
668 ("" "Ae") 668 ("Ä" "Ae")
669 ("" "oe") 669 ("ö" "oe")
670 ("" "Oe") 670 ("Ö" "Oe")
671 ("" "ue") 671 ("ü" "ue")
672 ("" "Ue") 672 ("Ü" "Ue")
673 ("" "ss")) 673 ("ß" "ss"))
674 "Translation table for translating ISO 8859-1 characters to Duden sequences.") 674 "Translation table for translating ISO 8859-1 characters to Duden sequences.")
675 675
676;;;###autoload 676;;;###autoload
@@ -683,133 +683,133 @@ Optional arg BUFFER is ignored (for use in `format-alist')."
683 (iso-translate-conventions from to iso-iso2duden-trans-tab)) 683 (iso-translate-conventions from to iso-iso2duden-trans-tab))
684 684
685(defvar iso-iso2sgml-trans-tab 685(defvar iso-iso2sgml-trans-tab
686 '(("" "&Agrave;") 686 '(("À" "&Agrave;")
687 ("" "&Aacute;") 687 ("Á" "&Aacute;")
688 ("" "&Acirc;") 688 ("Â" "&Acirc;")
689 ("" "&Atilde;") 689 ("" "&Atilde;")
690 ("" "&Auml;") 690 ("Ä" "&Auml;")
691 ("" "&Aring;") 691 ("Å" "&Aring;")
692 ("" "&AElig;") 692 ("Æ" "&AElig;")
693 ("" "&Ccedil;") 693 ("Ç" "&Ccedil;")
694 ("" "&Egrave;") 694 ("È" "&Egrave;")
695 ("" "&Eacute;") 695 ("É" "&Eacute;")
696 ("" "&Ecirc;") 696 ("Ê" "&Ecirc;")
697 ("" "&Euml;") 697 ("Ë" "&Euml;")
698 ("" "&Igrave;") 698 ("Ì" "&Igrave;")
699 ("" "&Iacute;") 699 ("Í" "&Iacute;")
700 ("" "&Icirc;") 700 ("Î" "&Icirc;")
701 ("" "&Iuml;") 701 ("Ï" "&Iuml;")
702 ("" "&ETH;") 702 ("Ð" "&ETH;")
703 ("" "&Ntilde;") 703 ("Ñ" "&Ntilde;")
704 ("" "&Ograve;") 704 ("Ò" "&Ograve;")
705 ("" "&Oacute;") 705 ("Ó" "&Oacute;")
706 ("" "&Ocirc;") 706 ("Ô" "&Ocirc;")
707 ("" "&Otilde;") 707 ("Õ" "&Otilde;")
708 ("" "&Ouml;") 708 ("Ö" "&Ouml;")
709 ("" "&Oslash;") 709 ("Ø" "&Oslash;")
710 ("" "&Ugrave;") 710 ("Ù" "&Ugrave;")
711 ("" "&Uacute;") 711 ("Ú" "&Uacute;")
712 ("" "&Ucirc;") 712 ("Û" "&Ucirc;")
713 ("" "&Uuml;") 713 ("Ü" "&Uuml;")
714 ("" "&Yacute;") 714 ("Ý" "&Yacute;")
715 ("" "&THORN;") 715 ("Þ" "&THORN;")
716 ("" "&szlig;") 716 ("ß" "&szlig;")
717 ("" "&agrave;") 717 ("à" "&agrave;")
718 ("" "&aacute;") 718 ("á" "&aacute;")
719 ("" "&acirc;") 719 ("â" "&acirc;")
720 ("" "&atilde;") 720 ("ã" "&atilde;")
721 ("" "&auml;") 721 ("ä" "&auml;")
722 ("" "&aring;") 722 ("å" "&aring;")
723 ("" "&aelig;") 723 ("æ" "&aelig;")
724 ("" "&ccedil;") 724 ("ç" "&ccedil;")
725 ("" "&egrave;") 725 ("è" "&egrave;")
726 ("" "&eacute;") 726 ("é" "&eacute;")
727 ("" "&ecirc;") 727 ("ê" "&ecirc;")
728 ("" "&euml;") 728 ("ë" "&euml;")
729 ("" "&igrave;") 729 ("ì" "&igrave;")
730 ("" "&iacute;") 730 ("í" "&iacute;")
731 ("" "&icirc;") 731 ("î" "&icirc;")
732 ("" "&iuml;") 732 ("ï" "&iuml;")
733 ("" "&eth;") 733 ("ð" "&eth;")
734 ("" "&ntilde;") 734 ("ñ" "&ntilde;")
735 ("" "&ograve;") 735 ("ò" "&ograve;")
736 ("" "&oacute;") 736 ("ó" "&oacute;")
737 ("" "&ocirc;") 737 ("ô" "&ocirc;")
738 ("" "&otilde;") 738 ("õ" "&otilde;")
739 ("" "&ouml;") 739 ("ö" "&ouml;")
740 ("" "&oslash;") 740 ("ø" "&oslash;")
741 ("" "&ugrave;") 741 ("ù" "&ugrave;")
742 ("" "&uacute;") 742 ("ú" "&uacute;")
743 ("" "&ucirc;") 743 ("û" "&ucirc;")
744 ("" "&uuml;") 744 ("ü" "&uuml;")
745 ("" "&yacute;") 745 ("ý" "&yacute;")
746 ("" "&thorn;") 746 ("þ" "&thorn;")
747 ("" "&yuml;"))) 747 ("ÿ" "&yuml;")))
748 748
749(defvar iso-sgml2iso-trans-tab 749(defvar iso-sgml2iso-trans-tab
750 '(("&Agrave;" "") 750 '(("&Agrave;" "À")
751 ("&Aacute;" "") 751 ("&Aacute;" "Á")
752 ("&Acirc;" "") 752 ("&Acirc;" "Â")
753 ("&Atilde;" "") 753 ("&Atilde;" "")
754 ("&Auml;" "") 754 ("&Auml;" "Ä")
755 ("&Aring;" "") 755 ("&Aring;" "Å")
756 ("&AElig;" "") 756 ("&AElig;" "Æ")
757 ("&Ccedil;" "") 757 ("&Ccedil;" "Ç")
758 ("&Egrave;" "") 758 ("&Egrave;" "È")
759 ("&Eacute;" "") 759 ("&Eacute;" "É")
760 ("&Ecirc;" "") 760 ("&Ecirc;" "Ê")
761 ("&Euml;" "") 761 ("&Euml;" "Ë")
762 ("&Igrave;" "") 762 ("&Igrave;" "Ì")
763 ("&Iacute;" "") 763 ("&Iacute;" "Í")
764 ("&Icirc;" "") 764 ("&Icirc;" "Î")
765 ("&Iuml;" "") 765 ("&Iuml;" "Ï")
766 ("&ETH;" "") 766 ("&ETH;" "Ð")
767 ("&Ntilde;" "") 767 ("&Ntilde;" "Ñ")
768 ("&Ograve;" "") 768 ("&Ograve;" "Ò")
769 ("&Oacute;" "") 769 ("&Oacute;" "Ó")
770 ("&Ocirc;" "") 770 ("&Ocirc;" "Ô")
771 ("&Otilde;" "") 771 ("&Otilde;" "Õ")
772 ("&Ouml;" "") 772 ("&Ouml;" "Ö")
773 ("&Oslash;" "") 773 ("&Oslash;" "Ø")
774 ("&Ugrave;" "") 774 ("&Ugrave;" "Ù")
775 ("&Uacute;" "") 775 ("&Uacute;" "Ú")
776 ("&Ucirc;" "") 776 ("&Ucirc;" "Û")
777 ("&Uuml;" "") 777 ("&Uuml;" "Ü")
778 ("&Yacute;" "") 778 ("&Yacute;" "Ý")
779 ("&THORN;" "") 779 ("&THORN;" "Þ")
780 ("&szlig;" "") 780 ("&szlig;" "ß")
781 ("&agrave;" "") 781 ("&agrave;" "à")
782 ("&aacute;" "") 782 ("&aacute;" "á")
783 ("&acirc;" "") 783 ("&acirc;" "â")
784 ("&atilde;" "") 784 ("&atilde;" "ã")
785 ("&auml;" "") 785 ("&auml;" "ä")
786 ("&aring;" "") 786 ("&aring;" "å")
787 ("&aelig;" "") 787 ("&aelig;" "æ")
788 ("&ccedil;" "") 788 ("&ccedil;" "ç")
789 ("&egrave;" "") 789 ("&egrave;" "è")
790 ("&eacute;" "") 790 ("&eacute;" "é")
791 ("&ecirc;" "") 791 ("&ecirc;" "ê")
792 ("&euml;" "") 792 ("&euml;" "ë")
793 ("&igrave;" "") 793 ("&igrave;" "ì")
794 ("&iacute;" "") 794 ("&iacute;" "í")
795 ("&icirc;" "") 795 ("&icirc;" "î")
796 ("&iuml;" "") 796 ("&iuml;" "ï")
797 ("&eth;" "") 797 ("&eth;" "ð")
798 ("&ntilde;" "") 798 ("&ntilde;" "ñ")
799 ("&nbsp;" "") 799 ("&nbsp;" "")
800 ("&ograve;" "") 800 ("&ograve;" "ò")
801 ("&oacute;" "") 801 ("&oacute;" "ó")
802 ("&ocirc;" "") 802 ("&ocirc;" "ô")
803 ("&otilde;" "") 803 ("&otilde;" "õ")
804 ("&ouml;" "") 804 ("&ouml;" "ö")
805 ("&oslash;" "") 805 ("&oslash;" "ø")
806 ("&ugrave;" "") 806 ("&ugrave;" "ù")
807 ("&uacute;" "") 807 ("&uacute;" "ú")
808 ("&ucirc;" "") 808 ("&ucirc;" "û")
809 ("&uuml;" "") 809 ("&uuml;" "ü")
810 ("&yacute;" "") 810 ("&yacute;" "ý")
811 ("&thorn;" "") 811 ("&thorn;" "þ")
812 ("&yuml;" ""))) 812 ("&yuml;" "ÿ")))
813 813
814;;;###autoload 814;;;###autoload
815(defun iso-iso2sgml (from to &optional buffer) 815(defun iso-iso2sgml (from to &optional buffer)
diff --git a/lisp/international/iso-transl.el b/lisp/international/iso-transl.el
index 4bc0400ef23..4bbb89c7087 100644
--- a/lisp/international/iso-transl.el
+++ b/lisp/international/iso-transl.el
@@ -1,4 +1,4 @@
1;;; iso-transl.el --- keyboard input definitions for ISO 8859-1 -*- coding: iso-8859-1 -*- 1;;; iso-transl.el --- keyboard input definitions for ISO 8859-1 -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 1987, 1993-1999, 2001-2013 Free Software Foundation, 3;; Copyright (C) 1987, 1993-1999, 2001-2013 Free Software Foundation,
4;; Inc. 4;; Inc.
@@ -73,125 +73,125 @@
73;; language-specific table might override the short form for its own use. 73;; language-specific table might override the short form for its own use.
74 74
75(defvar iso-transl-char-map 75(defvar iso-transl-char-map
76 '(("* " . [?]) 76 '(("* " . [?])
77 (" " . [?]) 77 (" " . [?])
78 ("*!" . [?]) 78 ("*!" . [?])
79 ("!" . [?]) 79 ("!" . [?])
80 ("\"\"" . [?]) 80 ("\"\"" . [?])
81 ("\"A" . [?]) 81 ("\"A" . [?Ä])
82 ("\"E" . [?]) 82 ("\"E" . [?Ë])
83 ("\"I" . [?]) 83 ("\"I" . [?Ï])
84 ("\"O" . [?]) 84 ("\"O" . [?Ö])
85 ("\"U" . [?]) 85 ("\"U" . [?Ü])
86 ("\"a" . [?]) 86 ("\"a" . [?ä])
87 ("\"e" . [?]) 87 ("\"e" . [?ë])
88 ("\"i" . [?]) 88 ("\"i" . [?ï])
89 ("\"o" . [?]) 89 ("\"o" . [?ö])
90 ("\"s" . [?]) 90 ("\"s" . [?ß])
91 ("\"u" . [?]) 91 ("\"u" . [?ü])
92 ("\"y" . [?]) 92 ("\"y" . [?ÿ])
93 ("''" . [?]) 93 ("''" . [?])
94 ("'A" . [?]) 94 ("'A" . [?Á])
95 ("'E" . [?]) 95 ("'E" . [?É])
96 ("'I" . [?]) 96 ("'I" . [?Í])
97 ("'O" . [?]) 97 ("'O" . [?Ó])
98 ("'U" . [?]) 98 ("'U" . [?Ú])
99 ("'Y" . [?]) 99 ("'Y" . [?Ý])
100 ("'a" . [?]) 100 ("'a" . [?á])
101 ("'e" . [?]) 101 ("'e" . [?é])
102 ("'i" . [?]) 102 ("'i" . [?í])
103 ("'o" . [?]) 103 ("'o" . [?ó])
104 ("'u" . [?]) 104 ("'u" . [?ú])
105 ("'y" . [?]) 105 ("'y" . [?ý])
106 ("*$" . [?]) 106 ("*$" . [?])
107 ("$" . [?]) 107 ("$" . [?])
108 ("*+" . [?]) 108 ("*+" . [?])
109 ("+" . [?]) 109 ("+" . [?])
110 (",," . [?]) 110 (",," . [?])
111 (",C" . [?]) 111 (",C" . [?Ç])
112 (",c" . [?]) 112 (",c" . [?ç])
113 ("*-" . [?]) 113 ("*-" . [?])
114 ("-" . [?]) 114 ("-" . [?])
115 ("*." . [?]) 115 ("*." . [?])
116 ("." . [?]) 116 ("." . [?])
117 ("//" . [?]) 117 ("//" . [?÷])
118 ("/A" . [?]) 118 ("/A" . [?Å])
119 ("/E" . [?]) 119 ("/E" . [?Æ])
120 ("/O" . [?]) 120 ("/O" . [?Ø])
121 ("/a" . [?]) 121 ("/a" . [?å])
122 ("/e" . [?]) 122 ("/e" . [?æ])
123 ("/o" . [?]) 123 ("/o" . [?ø])
124 ("1/2" . [?]) 124 ("1/2" . [?])
125 ("1/4" . [?]) 125 ("1/4" . [?])
126 ("3/4" . [?]) 126 ("3/4" . [?])
127 ("*<" . [?]) 127 ("*<" . [?])
128 ("<" . [?]) 128 ("<" . [?])
129 ("*=" . [?]) 129 ("*=" . [?])
130 ("=" . [?]) 130 ("=" . [?])
131 ("*>" . [?]) 131 ("*>" . [?])
132 (">" . [?]) 132 (">" . [?])
133 ("*?" . [?]) 133 ("*?" . [?])
134 ("?" . [?]) 134 ("?" . [?])
135 ("*C" . [?]) 135 ("*C" . [?])
136 ("C" . [?]) 136 ("C" . [?])
137 ("*L" . [?]) 137 ("*L" . [?])
138 ("L" . [?]) 138 ("L" . [?])
139 ("*P" . [?]) 139 ("*P" . [?])
140 ("P" . [?]) 140 ("P" . [?])
141 ("*R" . [?]) 141 ("*R" . [?])
142 ("R" . [?]) 142 ("R" . [?])
143 ("*S" . [?]) 143 ("*S" . [?])
144 ("S" . [?]) 144 ("S" . [?])
145 ("*Y" . [?]) 145 ("*Y" . [?])
146 ("Y" . [?]) 146 ("Y" . [?])
147 ("^1" . [?]) 147 ("^1" . [?])
148 ("^2" . [?]) 148 ("^2" . [?])
149 ("^3" . [?]) 149 ("^3" . [?])
150 ("^A" . [?]) 150 ("^A" . [?Â])
151 ("^E" . [?]) 151 ("^E" . [?Ê])
152 ("^I" . [?]) 152 ("^I" . [?Î])
153 ("^O" . [?]) 153 ("^O" . [?Ô])
154 ("^U" . [?]) 154 ("^U" . [?Û])
155 ("^a" . [?]) 155 ("^a" . [?â])
156 ("^e" . [?]) 156 ("^e" . [?ê])
157 ("^i" . [?]) 157 ("^i" . [?î])
158 ("^o" . [?]) 158 ("^o" . [?ô])
159 ("^u" . [?]) 159 ("^u" . [?û])
160 ("_a" . [?]) 160 ("_a" . [?])
161 ("_o" . [?]) 161 ("_o" . [?])
162 ("`A" . [?]) 162 ("`A" . [?À])
163 ("`E" . [?]) 163 ("`E" . [?È])
164 ("`I" . [?]) 164 ("`I" . [?Ì])
165 ("`O" . [?]) 165 ("`O" . [?Ò])
166 ("`U" . [?]) 166 ("`U" . [?Ù])
167 ("`a" . [?]) 167 ("`a" . [?à])
168 ("`e" . [?]) 168 ("`e" . [?è])
169 ("`i" . [?]) 169 ("`i" . [?ì])
170 ("`o" . [?]) 170 ("`o" . [?ò])
171 ("`u" . [?]) 171 ("`u" . [?ù])
172 ("*c" . [?]) 172 ("*c" . [?])
173 ("c" . [?]) 173 ("c" . [?])
174 ("*o" . [?]) 174 ("*o" . [?])
175 ("o" . [?]) 175 ("o" . [?])
176 ("*u" . [?]) 176 ("*u" . [?])
177 ("u" . [?]) 177 ("u" . [?])
178 ("*m" . [?]) 178 ("*m" . [?])
179 ("m" . [?]) 179 ("m" . [?])
180 ("*x" . [?]) 180 ("*x" . [?×])
181 ("x" . [?]) 181 ("x" . [?×])
182 ("*|" . [?]) 182 ("*|" . [?])
183 ("|" . [?]) 183 ("|" . [?])
184 ("~A" . [?]) 184 ("~A" . [?])
185 ("~D" . [?]) 185 ("~D" . [?Ð])
186 ("~N" . [?]) 186 ("~N" . [?Ñ])
187 ("~O" . [?]) 187 ("~O" . [?Õ])
188 ("~T" . [?]) 188 ("~T" . [?Þ])
189 ("~a" . [?]) 189 ("~a" . [?ã])
190 ("~d" . [?]) 190 ("~d" . [?ð])
191 ("~n" . [?]) 191 ("~n" . [?ñ])
192 ("~o" . [?]) 192 ("~o" . [?õ])
193 ("~t" . [?]) 193 ("~t" . [?þ])
194 ("~~" . [?]) 194 ("~~" . [?])
195 ("' " . "'") 195 ("' " . "'")
196 ("` " . "`") 196 ("` " . "`")
197 ("\" " . "\"") 197 ("\" " . "\"")
@@ -205,37 +205,37 @@ sequence VECTOR. (VECTOR is normally one character long.)")
205;; Language-specific translation lists. 205;; Language-specific translation lists.
206(defvar iso-transl-language-alist 206(defvar iso-transl-language-alist
207 '(("Esperanto" 207 '(("Esperanto"
208 ("C" . [?]) 208 ("C" . [?Æ])
209 ("G" . [?]) 209 ("G" . [?Ø])
210 ("H" . [?]) 210 ("H" . [?])
211 ("J" . [?]) 211 ("J" . [?])
212 ("S" . [?]) 212 ("S" . [?Þ])
213 ("U" . [?]) 213 ("U" . [?Ý])
214 ("c" . [?]) 214 ("c" . [?æ])
215 ("g" . [?]) 215 ("g" . [?ø])
216 ("h" . [?]) 216 ("h" . [?])
217 ("j" . [?]) 217 ("j" . [?])
218 ("s" . [?]) 218 ("s" . [?þ])
219 ("u" . [?])) 219 ("u" . [?ý]))
220 ("French" 220 ("French"
221 ("C" . [?]) 221 ("C" . [?Ç])
222 ("c" . [?])) 222 ("c" . [?ç]))
223 ("German" 223 ("German"
224 ("A" . [?]) 224 ("A" . [?Ä])
225 ("O" . [?]) 225 ("O" . [?Ö])
226 ("U" . [?]) 226 ("U" . [?Ü])
227 ("a" . [?]) 227 ("a" . [?ä])
228 ("o" . [?]) 228 ("o" . [?ö])
229 ("s" . [?]) 229 ("s" . [?ß])
230 ("u" . [?])) 230 ("u" . [?ü]))
231 ("Portuguese" 231 ("Portuguese"
232 ("C" . [?]) 232 ("C" . [?Ç])
233 ("c" . [?])) 233 ("c" . [?ç]))
234 ("Spanish" 234 ("Spanish"
235 ("!" . [?]) 235 ("!" . [?])
236 ("?" . [?]) 236 ("?" . [?])
237 ("N" . [?]) 237 ("N" . [?Ñ])
238 ("n" . [?])))) 238 ("n" . [?ñ]))))
239 239
240(defvar iso-transl-ctl-x-8-map nil 240(defvar iso-transl-ctl-x-8-map nil
241 "Keymap for C-x 8 prefix.") 241 "Keymap for C-x 8 prefix.")
diff --git a/lisp/language/romanian.el b/lisp/language/romanian.el
index 98eff2a7db7..608ff811923 100644
--- a/lisp/language/romanian.el
+++ b/lisp/language/romanian.el
@@ -1,4 +1,4 @@
1;;; romanian.el --- support for Romanian -*- coding: iso-latin-2 -*- 1;;; romanian.el --- support for Romanian -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 1998, 2001-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1998, 2001-2013 Free Software Foundation, Inc.
4 4
@@ -34,7 +34,7 @@
34 (input-method . "latin-2-postfix") 34 (input-method . "latin-2-postfix")
35 (unibyte-display . iso-8859-2) 35 (unibyte-display . iso-8859-2)
36 (tutorial . "TUTORIAL.ro") 36 (tutorial . "TUTORIAL.ro")
37 (sample-text . "Bun ziua, bine ai venit!") 37 (sample-text . "Bună ziua, bine aţi venit!")
38 (documentation . "Romanian environment using Latin-2 encoding. 38 (documentation . "Romanian environment using Latin-2 encoding.
39An environment for generic Latin-10 encoding is also available.")) 39An environment for generic Latin-10 encoding is also available."))
40 '("European")) 40 '("European"))
diff --git a/lisp/mh-e/ChangeLog.1 b/lisp/mh-e/ChangeLog.1
index 07320246c49..e57911947b1 100644
--- a/lisp/mh-e/ChangeLog.1
+++ b/lisp/mh-e/ChangeLog.1
@@ -5114,7 +5114,7 @@
5114 (mail-abbrevs): Declare it in XEmacs. 5114 (mail-abbrevs): Declare it in XEmacs.
5115 (mh-alias-add-alias-to-file): Remove unused code. 5115 (mh-alias-add-alias-to-file): Remove unused code.
5116 5116
51172003-02-14 Ville Skytt <scop@xemacs.org> 51172003-02-14 Ville Skyttä <scop@xemacs.org>
5118 5118
5119 * mh-comp.el: Add autoloaded auto-mode-alist association. 5119 * mh-comp.el: Add autoloaded auto-mode-alist association.
5120 5120
@@ -11416,3 +11416,7 @@
11416 11416
11417 You should have received a copy of the GNU General Public License 11417 You should have received a copy of the GNU General Public License
11418 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. 11418 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
11419
11420;; Local Variables:
11421;; coding: utf-8
11422;; End:
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index e18f4c9c77f..ec237f0f664 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -1458,9 +1458,11 @@ It also eliminates runs of equal strings."
1458 'mouse-face 'highlight) 1458 'mouse-face 'highlight)
1459 (put-text-property (point) (progn (insert (car str)) (point)) 1459 (put-text-property (point) (progn (insert (car str)) (point))
1460 'mouse-face 'highlight) 1460 'mouse-face 'highlight)
1461 (add-text-properties (point) (progn (insert (cadr str)) (point)) 1461 (let ((beg (point))
1462 '(mouse-face nil 1462 (end (progn (insert (cadr str)) (point))))
1463 face completions-annotations))) 1463 (put-text-property beg end 'mouse-face nil)
1464 (font-lock-prepend-text-property beg end 'face
1465 'completions-annotations)))
1464 (cond 1466 (cond
1465 ((eq completions-format 'vertical) 1467 ((eq completions-format 'vertical)
1466 ;; Vertical format 1468 ;; Vertical format
@@ -1487,12 +1489,11 @@ See also `display-completion-list'.")
1487 1489
1488(defface completions-first-difference 1490(defface completions-first-difference
1489 '((t (:inherit bold))) 1491 '((t (:inherit bold)))
1490 "Face put on the first uncommon character in completions in *Completions* buffer." 1492 "Face added on the first uncommon character in completions in *Completions* buffer."
1491 :group 'completion) 1493 :group 'completion)
1492 1494
1493(defface completions-common-part 1495(defface completions-common-part '((t nil))
1494 '((t (:inherit default))) 1496 "Face added on the common prefix substring in completions in *Completions* buffer.
1495 "Face put on the common prefix substring in completions in *Completions* buffer.
1496The idea of `completions-common-part' is that you can use it to 1497The idea of `completions-common-part' is that you can use it to
1497make the common parts less visible than normal, so that the rest 1498make the common parts less visible than normal, so that the rest
1498of the differing parts is, by contrast, slightly highlighted." 1499of the differing parts is, by contrast, slightly highlighted."
@@ -1513,17 +1514,18 @@ of the differing parts is, by contrast, slightly highlighted."
1513 (car (setq elem (cons (copy-sequence (car elem)) 1514 (car (setq elem (cons (copy-sequence (car elem))
1514 (cdr elem)))) 1515 (cdr elem))))
1515 (setq elem (copy-sequence elem))))) 1516 (setq elem (copy-sequence elem)))))
1516 (put-text-property 0 1517 (font-lock-prepend-text-property
1517 ;; If completion-boundaries returns incorrect 1518 0
1518 ;; values, all-completions may return strings 1519 ;; If completion-boundaries returns incorrect
1519 ;; that don't contain the prefix. 1520 ;; values, all-completions may return strings
1520 (min com-str-len (length str)) 1521 ;; that don't contain the prefix.
1521 'font-lock-face 'completions-common-part 1522 (min com-str-len (length str))
1522 str) 1523 'face 'completions-common-part str)
1523 (if (> (length str) com-str-len) 1524 (if (> (length str) com-str-len)
1524 (put-text-property com-str-len (1+ com-str-len) 1525 (font-lock-prepend-text-property com-str-len (1+ com-str-len)
1525 'font-lock-face 'completions-first-difference 1526 'face
1526 str))) 1527 'completions-first-difference
1528 str)))
1527 elem) 1529 elem)
1528 completions) 1530 completions)
1529 base-size)))) 1531 base-size))))
diff --git a/lisp/net/eudc-bob.el b/lisp/net/eudc-bob.el
index 45f15b14a54..106aab2ac0a 100644
--- a/lisp/net/eudc-bob.el
+++ b/lisp/net/eudc-bob.el
@@ -1,9 +1,9 @@
1;;; eudc-bob.el --- Binary Objects Support for EUDC 1;;; eudc-bob.el --- Binary Objects Support for EUDC -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 1999-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
4 4
5;; Author: Oscar Figueiredo <oscar@cpe.fr> 5;; Author: Oscar Figueiredo <oscar@cpe.fr>
6;; Maintainer: Pavel Jank <Pavel@Janik.cz> 6;; Maintainer: Pavel Janík <Pavel@Janik.cz>
7;; Keywords: comm 7;; Keywords: comm
8;; Package: eudc 8;; Package: eudc
9 9
diff --git a/lisp/net/eudc-export.el b/lisp/net/eudc-export.el
index 690a5f15c40..b43a8c631e3 100644
--- a/lisp/net/eudc-export.el
+++ b/lisp/net/eudc-export.el
@@ -1,9 +1,9 @@
1;;; eudc-export.el --- functions to export EUDC query results 1;;; eudc-export.el --- functions to export EUDC query results -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 1998-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1998-2013 Free Software Foundation, Inc.
4 4
5;; Author: Oscar Figueiredo <oscar@cpe.fr> 5;; Author: Oscar Figueiredo <oscar@cpe.fr>
6;; Maintainer: Pavel Jank <Pavel@Janik.cz> 6;; Maintainer: Pavel Janík <Pavel@Janik.cz>
7;; Keywords: comm 7;; Keywords: comm
8;; Package: eudc 8;; Package: eudc
9 9
diff --git a/lisp/net/eudc-hotlist.el b/lisp/net/eudc-hotlist.el
index 0322fa766f3..a8a51b7d61b 100644
--- a/lisp/net/eudc-hotlist.el
+++ b/lisp/net/eudc-hotlist.el
@@ -1,9 +1,9 @@
1;;; eudc-hotlist.el --- hotlist management for EUDC 1;;; eudc-hotlist.el --- hotlist management for EUDC -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 1998-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1998-2013 Free Software Foundation, Inc.
4 4
5;; Author: Oscar Figueiredo <oscar@cpe.fr> 5;; Author: Oscar Figueiredo <oscar@cpe.fr>
6;; Maintainer: Pavel Jank <Pavel@Janik.cz> 6;; Maintainer: Pavel Janík <Pavel@Janik.cz>
7;; Keywords: comm 7;; Keywords: comm
8;; Package: eudc 8;; Package: eudc
9 9
diff --git a/lisp/net/eudc-vars.el b/lisp/net/eudc-vars.el
index c2cc0154151..d53fd83eee7 100644
--- a/lisp/net/eudc-vars.el
+++ b/lisp/net/eudc-vars.el
@@ -1,9 +1,9 @@
1;;; eudc-vars.el --- Emacs Unified Directory Client 1;;; eudc-vars.el --- Emacs Unified Directory Client -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 1998-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1998-2013 Free Software Foundation, Inc.
4 4
5;; Author: Oscar Figueiredo <oscar@cpe.fr> 5;; Author: Oscar Figueiredo <oscar@cpe.fr>
6;; Maintainer: Pavel Jank <Pavel@Janik.cz> 6;; Maintainer: Pavel Janík <Pavel@Janik.cz>
7;; Keywords: comm 7;; Keywords: comm
8;; Package: eudc 8;; Package: eudc
9 9
diff --git a/lisp/net/eudc.el b/lisp/net/eudc.el
index 621b9b90879..ef09267f854 100644
--- a/lisp/net/eudc.el
+++ b/lisp/net/eudc.el
@@ -1,9 +1,9 @@
1;;; eudc.el --- Emacs Unified Directory Client 1;;; eudc.el --- Emacs Unified Directory Client -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 1998-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1998-2013 Free Software Foundation, Inc.
4 4
5;; Author: Oscar Figueiredo <oscar@cpe.fr> 5;; Author: Oscar Figueiredo <oscar@cpe.fr>
6;; Maintainer: Pavel Jank <Pavel@Janik.cz> 6;; Maintainer: Pavel Janík <Pavel@Janik.cz>
7;; Keywords: comm 7;; Keywords: comm
8 8
9;; This file is part of GNU Emacs. 9;; This file is part of GNU Emacs.
diff --git a/lisp/net/eudcb-bbdb.el b/lisp/net/eudcb-bbdb.el
index 58d94622486..9f6dba703b1 100644
--- a/lisp/net/eudcb-bbdb.el
+++ b/lisp/net/eudcb-bbdb.el
@@ -1,9 +1,9 @@
1;;; eudcb-bbdb.el --- Emacs Unified Directory Client - BBDB Backend 1;;; eudcb-bbdb.el --- Emacs Unified Directory Client - BBDB Backend -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 1998-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1998-2013 Free Software Foundation, Inc.
4 4
5;; Author: Oscar Figueiredo <oscar@cpe.fr> 5;; Author: Oscar Figueiredo <oscar@cpe.fr>
6;; Maintainer: Pavel Jank <Pavel@Janik.cz> 6;; Maintainer: Pavel Janík <Pavel@Janik.cz>
7;; Keywords: comm 7;; Keywords: comm
8;; Package: eudc 8;; Package: eudc
9 9
diff --git a/lisp/net/eudcb-ldap.el b/lisp/net/eudcb-ldap.el
index 23eed4b3c0a..d0ba47ad753 100644
--- a/lisp/net/eudcb-ldap.el
+++ b/lisp/net/eudcb-ldap.el
@@ -1,9 +1,9 @@
1;;; eudcb-ldap.el --- Emacs Unified Directory Client - LDAP Backend 1;;; eudcb-ldap.el --- Emacs Unified Directory Client - LDAP Backend -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 1998-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1998-2013 Free Software Foundation, Inc.
4 4
5;; Author: Oscar Figueiredo <oscar@cpe.fr> 5;; Author: Oscar Figueiredo <oscar@cpe.fr>
6;; Maintainer: Pavel Jank <Pavel@Janik.cz> 6;; Maintainer: Pavel Janík <Pavel@Janik.cz>
7;; Keywords: comm 7;; Keywords: comm
8;; Package: eudc 8;; Package: eudc
9 9
diff --git a/lisp/net/eudcb-ph.el b/lisp/net/eudcb-ph.el
index 3033e945c24..1796f2d9806 100644
--- a/lisp/net/eudcb-ph.el
+++ b/lisp/net/eudcb-ph.el
@@ -1,9 +1,9 @@
1;;; eudcb-ph.el --- Emacs Unified Directory Client - CCSO PH/QI Backend 1;;; eudcb-ph.el --- Emacs Unified Directory Client - CCSO PH/QI Backend -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 1998-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1998-2013 Free Software Foundation, Inc.
4 4
5;; Author: Oscar Figueiredo <oscar@cpe.fr> 5;; Author: Oscar Figueiredo <oscar@cpe.fr>
6;; Maintainer: Pavel Jank <Pavel@Janik.cz> 6;; Maintainer: Pavel Janík <Pavel@Janik.cz>
7;; Keywords: comm 7;; Keywords: comm
8;; Package: eudc 8;; Package: eudc
9 9
diff --git a/lisp/net/tramp-compat.el b/lisp/net/tramp-compat.el
index 81c4d5ccced..d4639817b18 100644
--- a/lisp/net/tramp-compat.el
+++ b/lisp/net/tramp-compat.el
@@ -384,25 +384,30 @@ Not actually used. Use `(format \"%o\" i)' instead?"
384 trash))) 384 trash)))
385 (delete-file filename))))) 385 (delete-file filename)))))
386 386
387;; RECURSIVE has been introduced with Emacs 23.2. 387;; RECURSIVE has been introduced with Emacs 23.2. TRASH has been
388(defun tramp-compat-delete-directory (directory &optional recursive) 388;; introduced with Emacs 24.1.
389(defun tramp-compat-delete-directory (directory &optional recursive trash)
389 "Like `delete-directory' for Tramp files (compat function)." 390 "Like `delete-directory' for Tramp files (compat function)."
390 (if (null recursive) 391 (condition-case nil
391 (delete-directory directory) 392 (cond
392 (condition-case nil 393 (trash
393 (tramp-compat-funcall 'delete-directory directory recursive) 394 (tramp-compat-funcall 'delete-directory directory recursive trash))
394 ;; This Emacs version does not support the RECURSIVE flag. We 395 (recursive
395 ;; use the implementation from Emacs 23.2. 396 (tramp-compat-funcall 'delete-directory directory recursive))
396 (wrong-number-of-arguments 397 (t
397 (setq directory (directory-file-name (expand-file-name directory))) 398 (delete-directory directory)))
398 (if (not (file-symlink-p directory)) 399 ;; This Emacs version does not support the RECURSIVE or TRASH flag. We
399 (mapc (lambda (file) 400 ;; use the implementation from Emacs 23.2.
400 (if (eq t (car (file-attributes file))) 401 (wrong-number-of-arguments
401 (tramp-compat-delete-directory file recursive) 402 (setq directory (directory-file-name (expand-file-name directory)))
402 (delete-file file))) 403 (if (not (file-symlink-p directory))
403 (directory-files 404 (mapc (lambda (file)
404 directory 'full "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*"))) 405 (if (eq t (car (file-attributes file)))
405 (delete-directory directory))))) 406 (tramp-compat-delete-directory file recursive trash)
407 (tramp-compat-delete-file file trash)))
408 (directory-files
409 directory 'full "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*")))
410 (delete-directory directory))))
406 411
407;; `number-sequence' does not exist in XEmacs. Implementation is 412;; `number-sequence' does not exist in XEmacs. Implementation is
408;; taken from Emacs 23. 413;; taken from Emacs 23.
diff --git a/lisp/obsolete/iso-insert.el b/lisp/obsolete/iso-insert.el
index 18cf87a4c6f..2c0adf32d12 100644
--- a/lisp/obsolete/iso-insert.el
+++ b/lisp/obsolete/iso-insert.el
@@ -1,4 +1,4 @@
1;;; iso-insert.el --- insert functions for ISO 8859/1 -*- coding: iso-8859-1;-*- 1;;; iso-insert.el --- insert functions for ISO 8859/1 -*- coding: utf-8;-*-
2 2
3;; Copyright (C) 1987, 1994, 2001-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1987, 1994, 2001-2013 Free Software Foundation, Inc.
4 4
@@ -31,482 +31,482 @@
31 31
32(defun insert-no-break-space () 32(defun insert-no-break-space ()
33 (interactive "*") 33 (interactive "*")
34 (insert ?\) 34 (insert ?\)
35) 35)
36 36
37(defun insert-inverted-exclamation-mark () 37(defun insert-inverted-exclamation-mark ()
38 (interactive "*") 38 (interactive "*")
39 (insert ?\) 39 (insert ?\)
40) 40)
41 41
42(defun insert-cent-sign () 42(defun insert-cent-sign ()
43 (interactive "*") 43 (interactive "*")
44 (insert ?\) 44 (insert ?\)
45) 45)
46 46
47(defun insert-pound-sign () 47(defun insert-pound-sign ()
48 (interactive "*") 48 (interactive "*")
49 (insert ?\) 49 (insert ?\)
50) 50)
51 51
52(defun insert-general-currency-sign () 52(defun insert-general-currency-sign ()
53 (interactive "*") 53 (interactive "*")
54 (insert ?\) 54 (insert ?\)
55) 55)
56 56
57(defun insert-yen-sign () 57(defun insert-yen-sign ()
58 (interactive "*") 58 (interactive "*")
59 (insert ?\) 59 (insert ?\)
60) 60)
61 61
62(defun insert-broken-vertical-line () 62(defun insert-broken-vertical-line ()
63 (interactive "*") 63 (interactive "*")
64 (insert ?\) 64 (insert ?\)
65) 65)
66 66
67(defun insert-section-sign () 67(defun insert-section-sign ()
68 (interactive "*") 68 (interactive "*")
69 (insert ?\) 69 (insert ?\)
70) 70)
71 71
72(defun insert-diaeresis () 72(defun insert-diaeresis ()
73 (interactive "*") 73 (interactive "*")
74 (insert ?\) 74 (insert ?\)
75) 75)
76 76
77(defun insert-copyright-sign () 77(defun insert-copyright-sign ()
78 (interactive "*") 78 (interactive "*")
79 (insert ?\) 79 (insert ?\)
80) 80)
81 81
82(defun insert-ordinal-indicator-feminine () 82(defun insert-ordinal-indicator-feminine ()
83 (interactive "*") 83 (interactive "*")
84 (insert ?\) 84 (insert ?\)
85) 85)
86 86
87(defun insert-angle-quotation-mark-left () 87(defun insert-angle-quotation-mark-left ()
88 (interactive "*") 88 (interactive "*")
89 (insert ?\) 89 (insert ?\)
90) 90)
91 91
92(defun insert-not-sign () 92(defun insert-not-sign ()
93 (interactive "*") 93 (interactive "*")
94 (insert ?\) 94 (insert ?\)
95) 95)
96 96
97(defun insert-soft-hyphen () 97(defun insert-soft-hyphen ()
98 (interactive "*") 98 (interactive "*")
99 (insert ?\) 99 (insert ?\)
100) 100)
101 101
102(defun insert-registered-sign () 102(defun insert-registered-sign ()
103 (interactive "*") 103 (interactive "*")
104 (insert ?\) 104 (insert ?\)
105) 105)
106 106
107(defun insert-macron () 107(defun insert-macron ()
108 (interactive "*") 108 (interactive "*")
109 (insert ?\) 109 (insert ?\)
110) 110)
111 111
112(defun insert-degree-sign () 112(defun insert-degree-sign ()
113 (interactive "*") 113 (interactive "*")
114 (insert ?\) 114 (insert ?\)
115) 115)
116 116
117(defun insert-plus-or-minus-sign () 117(defun insert-plus-or-minus-sign ()
118 (interactive "*") 118 (interactive "*")
119 (insert ?\) 119 (insert ?\)
120) 120)
121 121
122(defun insert-superscript-two () 122(defun insert-superscript-two ()
123 (interactive "*") 123 (interactive "*")
124 (insert ?\) 124 (insert ?\)
125) 125)
126 126
127(defun insert-superscript-three () 127(defun insert-superscript-three ()
128 (interactive "*") 128 (interactive "*")
129 (insert ?\) 129 (insert ?\)
130) 130)
131 131
132(defun insert-acute-accent () 132(defun insert-acute-accent ()
133 (interactive "*") 133 (interactive "*")
134 (insert ?\) 134 (insert ?\)
135) 135)
136 136
137(defun insert-micro-sign () 137(defun insert-micro-sign ()
138 (interactive "*") 138 (interactive "*")
139 (insert ?\) 139 (insert ?\)
140) 140)
141 141
142(defun insert-pilcrow () 142(defun insert-pilcrow ()
143 (interactive "*") 143 (interactive "*")
144 (insert ?\) 144 (insert ?\)
145) 145)
146 146
147(defun insert-middle-dot () 147(defun insert-middle-dot ()
148 (interactive "*") 148 (interactive "*")
149 (insert ?\) 149 (insert ?\)
150) 150)
151 151
152(defun insert-cedilla () 152(defun insert-cedilla ()
153 (interactive "*") 153 (interactive "*")
154 (insert ?\) 154 (insert ?\)
155) 155)
156 156
157(defun insert-superscript-one () 157(defun insert-superscript-one ()
158 (interactive "*") 158 (interactive "*")
159 (insert ?\) 159 (insert ?\)
160) 160)
161 161
162(defun insert-ordinal-indicator-masculine () 162(defun insert-ordinal-indicator-masculine ()
163 (interactive "*") 163 (interactive "*")
164 (insert ?\) 164 (insert ?\)
165) 165)
166 166
167(defun insert-angle-quotation-mark-right () 167(defun insert-angle-quotation-mark-right ()
168 (interactive "*") 168 (interactive "*")
169 (insert ?\) 169 (insert ?\)
170) 170)
171 171
172(defun insert-fraction-one-quarter () 172(defun insert-fraction-one-quarter ()
173 (interactive "*") 173 (interactive "*")
174 (insert ?\) 174 (insert ?\)
175) 175)
176 176
177(defun insert-fraction-one-half () 177(defun insert-fraction-one-half ()
178 (interactive "*") 178 (interactive "*")
179 (insert ?\) 179 (insert ?\)
180) 180)
181 181
182(defun insert-fraction-three-quarters () 182(defun insert-fraction-three-quarters ()
183 (interactive "*") 183 (interactive "*")
184 (insert ?\) 184 (insert ?\)
185) 185)
186 186
187(defun insert-inverted-question-mark () 187(defun insert-inverted-question-mark ()
188 (interactive "*") 188 (interactive "*")
189 (insert ?\) 189 (insert ?\)
190) 190)
191 191
192(defun insert-A-grave () 192(defun insert-A-grave ()
193 (interactive "*") 193 (interactive "*")
194 (insert ?\) 194 (insert ?\À)
195) 195)
196 196
197(defun insert-A-acute () 197(defun insert-A-acute ()
198 (interactive "*") 198 (interactive "*")
199 (insert ?\) 199 (insert ?\Á)
200) 200)
201 201
202(defun insert-A-circumflex () 202(defun insert-A-circumflex ()
203 (interactive "*") 203 (interactive "*")
204 (insert ?\) 204 (insert ?\Â)
205) 205)
206 206
207(defun insert-A-tilde () 207(defun insert-A-tilde ()
208 (interactive "*") 208 (interactive "*")
209 (insert ?\) 209 (insert ?\)
210) 210)
211 211
212(defun insert-A-umlaut () 212(defun insert-A-umlaut ()
213 (interactive "*") 213 (interactive "*")
214 (insert ?\) 214 (insert ?\Ä)
215) 215)
216 216
217(defun insert-A-ring () 217(defun insert-A-ring ()
218 (interactive "*") 218 (interactive "*")
219 (insert ?\) 219 (insert ?\Å)
220) 220)
221 221
222(defun insert-AE () 222(defun insert-AE ()
223 (interactive "*") 223 (interactive "*")
224 (insert ?\) 224 (insert ?\Æ)
225) 225)
226 226
227(defun insert-C-cedilla () 227(defun insert-C-cedilla ()
228 (interactive "*") 228 (interactive "*")
229 (insert ?\) 229 (insert ?\Ç)
230) 230)
231 231
232(defun insert-E-grave () 232(defun insert-E-grave ()
233 (interactive "*") 233 (interactive "*")
234 (insert ?\) 234 (insert ?\È)
235) 235)
236 236
237(defun insert-E-acute () 237(defun insert-E-acute ()
238 (interactive "*") 238 (interactive "*")
239 (insert ?\) 239 (insert ?\É)
240) 240)
241 241
242(defun insert-E-circumflex () 242(defun insert-E-circumflex ()
243 (interactive "*") 243 (interactive "*")
244 (insert ?\) 244 (insert ?\Ê)
245) 245)
246 246
247(defun insert-E-umlaut () 247(defun insert-E-umlaut ()
248 (interactive "*") 248 (interactive "*")
249 (insert ?\) 249 (insert ?\Ë)
250) 250)
251 251
252(defun insert-I-grave () 252(defun insert-I-grave ()
253 (interactive "*") 253 (interactive "*")
254 (insert ?\) 254 (insert ?\Ì)
255) 255)
256 256
257(defun insert-I-acute () 257(defun insert-I-acute ()
258 (interactive "*") 258 (interactive "*")
259 (insert ?\) 259 (insert ?\Í)
260) 260)
261 261
262(defun insert-I-circumflex () 262(defun insert-I-circumflex ()
263 (interactive "*") 263 (interactive "*")
264 (insert ?\) 264 (insert ?\Î)
265) 265)
266 266
267(defun insert-I-umlaut () 267(defun insert-I-umlaut ()
268 (interactive "*") 268 (interactive "*")
269 (insert ?\) 269 (insert ?\Ï)
270) 270)
271 271
272(defun insert-D-stroke () 272(defun insert-D-stroke ()
273 (interactive "*") 273 (interactive "*")
274 (insert ?\) 274 (insert ?\Ð)
275) 275)
276 276
277(defun insert-N-tilde () 277(defun insert-N-tilde ()
278 (interactive "*") 278 (interactive "*")
279 (insert ?\) 279 (insert ?\Ñ)
280) 280)
281 281
282(defun insert-O-grave () 282(defun insert-O-grave ()
283 (interactive "*") 283 (interactive "*")
284 (insert ?\) 284 (insert ?\Ò)
285) 285)
286 286
287(defun insert-O-acute () 287(defun insert-O-acute ()
288 (interactive "*") 288 (interactive "*")
289 (insert ?\) 289 (insert ?\Ó)
290) 290)
291 291
292(defun insert-O-circumflex () 292(defun insert-O-circumflex ()
293 (interactive "*") 293 (interactive "*")
294 (insert ?\) 294 (insert ?\Ô)
295) 295)
296 296
297(defun insert-O-tilde () 297(defun insert-O-tilde ()
298 (interactive "*") 298 (interactive "*")
299 (insert ?\) 299 (insert ?\Õ)
300) 300)
301 301
302(defun insert-O-umlaut () 302(defun insert-O-umlaut ()
303 (interactive "*") 303 (interactive "*")
304 (insert ?\) 304 (insert ?\Ö)
305) 305)
306 306
307(defun insert-multiplication-sign () 307(defun insert-multiplication-sign ()
308 (interactive "*") 308 (interactive "*")
309 (insert ?\) 309 (insert ?\×)
310) 310)
311 311
312(defun insert-O-slash () 312(defun insert-O-slash ()
313 (interactive "*") 313 (interactive "*")
314 (insert ?\) 314 (insert ?\Ø)
315) 315)
316 316
317(defun insert-U-grave () 317(defun insert-U-grave ()
318 (interactive "*") 318 (interactive "*")
319 (insert ?\) 319 (insert ?\Ù)
320) 320)
321 321
322(defun insert-U-acute () 322(defun insert-U-acute ()
323 (interactive "*") 323 (interactive "*")
324 (insert ?\) 324 (insert ?\Ú)
325) 325)
326 326
327(defun insert-U-circumflex () 327(defun insert-U-circumflex ()
328 (interactive "*") 328 (interactive "*")
329 (insert ?\) 329 (insert ?\Û)
330) 330)
331 331
332(defun insert-U-umlaut () 332(defun insert-U-umlaut ()
333 (interactive "*") 333 (interactive "*")
334 (insert ?\) 334 (insert ?\Ü)
335) 335)
336 336
337(defun insert-Y-acute () 337(defun insert-Y-acute ()
338 (interactive "*") 338 (interactive "*")
339 (insert ?\) 339 (insert ?\Ý)
340) 340)
341 341
342(defun insert-THORN () 342(defun insert-THORN ()
343 (interactive "*") 343 (interactive "*")
344 (insert ?\) 344 (insert ?\Þ)
345) 345)
346 346
347(defun insert-ss () 347(defun insert-ss ()
348 (interactive "*") 348 (interactive "*")
349 (insert ?\) 349 (insert ?\ß)
350) 350)
351 351
352(defun insert-a-grave () 352(defun insert-a-grave ()
353 (interactive "*") 353 (interactive "*")
354 (insert ?\) 354 (insert ?\à)
355) 355)
356 356
357(defun insert-a-acute () 357(defun insert-a-acute ()
358 (interactive "*") 358 (interactive "*")
359 (insert ?\) 359 (insert ?\á)
360) 360)
361 361
362(defun insert-a-circumflex () 362(defun insert-a-circumflex ()
363 (interactive "*") 363 (interactive "*")
364 (insert ?\) 364 (insert ?\â)
365) 365)
366 366
367(defun insert-a-tilde () 367(defun insert-a-tilde ()
368 (interactive "*") 368 (interactive "*")
369 (insert ?\) 369 (insert ?\ã)
370) 370)
371 371
372(defun insert-a-umlaut () 372(defun insert-a-umlaut ()
373 (interactive "*") 373 (interactive "*")
374 (insert ?\) 374 (insert ?\ä)
375) 375)
376 376
377(defun insert-a-ring () 377(defun insert-a-ring ()
378 (interactive "*") 378 (interactive "*")
379 (insert ?\) 379 (insert ?\å)
380) 380)
381 381
382(defun insert-ae () 382(defun insert-ae ()
383 (interactive "*") 383 (interactive "*")
384 (insert ?\) 384 (insert ?\æ)
385) 385)
386 386
387(defun insert-c-cedilla () 387(defun insert-c-cedilla ()
388 (interactive "*") 388 (interactive "*")
389 (insert ?\) 389 (insert ?\ç)
390) 390)
391 391
392(defun insert-e-grave () 392(defun insert-e-grave ()
393 (interactive "*") 393 (interactive "*")
394 (insert ?\) 394 (insert ?\è)
395) 395)
396 396
397(defun insert-e-acute () 397(defun insert-e-acute ()
398 (interactive "*") 398 (interactive "*")
399 (insert ?\) 399 (insert ?\é)
400) 400)
401 401
402(defun insert-e-circumflex () 402(defun insert-e-circumflex ()
403 (interactive "*") 403 (interactive "*")
404 (insert ?\) 404 (insert ?\ê)
405) 405)
406 406
407(defun insert-e-umlaut () 407(defun insert-e-umlaut ()
408 (interactive "*") 408 (interactive "*")
409 (insert ?\) 409 (insert ?\ë)
410) 410)
411 411
412(defun insert-i-grave () 412(defun insert-i-grave ()
413 (interactive "*") 413 (interactive "*")
414 (insert ?\) 414 (insert ?\ì)
415) 415)
416 416
417(defun insert-i-acute () 417(defun insert-i-acute ()
418 (interactive "*") 418 (interactive "*")
419 (insert ?\) 419 (insert ?\í)
420) 420)
421 421
422(defun insert-i-circumflex () 422(defun insert-i-circumflex ()
423 (interactive "*") 423 (interactive "*")
424 (insert ?\) 424 (insert ?\î)
425) 425)
426 426
427(defun insert-i-umlaut () 427(defun insert-i-umlaut ()
428 (interactive "*") 428 (interactive "*")
429 (insert ?\) 429 (insert ?\ï)
430) 430)
431 431
432(defun insert-d-stroke () 432(defun insert-d-stroke ()
433 (interactive "*") 433 (interactive "*")
434 (insert ?\) 434 (insert ?\ð)
435) 435)
436 436
437(defun insert-n-tilde () 437(defun insert-n-tilde ()
438 (interactive "*") 438 (interactive "*")
439 (insert ?\) 439 (insert ?\ñ)
440) 440)
441 441
442(defun insert-o-grave () 442(defun insert-o-grave ()
443 (interactive "*") 443 (interactive "*")
444 (insert ?\) 444 (insert ?\ò)
445) 445)
446 446
447(defun insert-o-acute () 447(defun insert-o-acute ()
448 (interactive "*") 448 (interactive "*")
449 (insert ?\) 449 (insert ?\ó)
450) 450)
451 451
452(defun insert-o-circumflex () 452(defun insert-o-circumflex ()
453 (interactive "*") 453 (interactive "*")
454 (insert ?\) 454 (insert ?\ô)
455) 455)
456 456
457(defun insert-o-tilde () 457(defun insert-o-tilde ()
458 (interactive "*") 458 (interactive "*")
459 (insert ?\) 459 (insert ?\õ)
460) 460)
461 461
462(defun insert-o-umlaut () 462(defun insert-o-umlaut ()
463 (interactive "*") 463 (interactive "*")
464 (insert ?\) 464 (insert ?\ö)
465) 465)
466 466
467(defun insert-division-sign () 467(defun insert-division-sign ()
468 (interactive "*") 468 (interactive "*")
469 (insert ?\) 469 (insert ?\÷)
470) 470)
471 471
472(defun insert-o-slash () 472(defun insert-o-slash ()
473 (interactive "*") 473 (interactive "*")
474 (insert ?\) 474 (insert ?\ø)
475) 475)
476 476
477(defun insert-u-grave () 477(defun insert-u-grave ()
478 (interactive "*") 478 (interactive "*")
479 (insert ?\) 479 (insert ?\ù)
480) 480)
481 481
482(defun insert-u-acute () 482(defun insert-u-acute ()
483 (interactive "*") 483 (interactive "*")
484 (insert ?\) 484 (insert ?\ú)
485) 485)
486 486
487(defun insert-u-circumflex () 487(defun insert-u-circumflex ()
488 (interactive "*") 488 (interactive "*")
489 (insert ?\) 489 (insert ?\û)
490) 490)
491 491
492(defun insert-u-umlaut () 492(defun insert-u-umlaut ()
493 (interactive "*") 493 (interactive "*")
494 (insert ?\) 494 (insert ?\ü)
495) 495)
496 496
497(defun insert-y-acute () 497(defun insert-y-acute ()
498 (interactive "*") 498 (interactive "*")
499 (insert ?\) 499 (insert ?\ý)
500) 500)
501 501
502(defun insert-thorn () 502(defun insert-thorn ()
503 (interactive "*") 503 (interactive "*")
504 (insert ?\) 504 (insert ?\þ)
505) 505)
506 506
507(defun insert-y-umlaut () 507(defun insert-y-umlaut ()
508 (interactive "*") 508 (interactive "*")
509 (insert ?\) 509 (insert ?\ÿ)
510) 510)
511 511
512(defvar 8859-1-map nil "Keymap for ISO 8859/1 character insertion.") 512(defvar 8859-1-map nil "Keymap for ISO 8859/1 character insertion.")
diff --git a/lisp/org/org-freemind.el b/lisp/org/org-freemind.el
index c33b70224fa..3b1c6863f54 100644
--- a/lisp/org/org-freemind.el
+++ b/lisp/org/org-freemind.el
@@ -275,7 +275,7 @@ will also unescape &#nn;."
275 ))) 275 )))
276 org-str)))) 276 org-str))))
277 277
278;; (let* ((str1 "a quote: \", an amp: &, lt: <; over 256: ") 278;; (let* ((str1 "a quote: \", an amp: &, lt: <; over 256: öåäÖÅÄ")
279;; (str2 (org-freemind-escape-str-from-org str1)) 279;; (str2 (org-freemind-escape-str-from-org str1))
280;; (str3 (org-freemind-unescape-str-to-org str2))) 280;; (str3 (org-freemind-unescape-str-to-org str2)))
281;; (unless (string= str1 str3) 281;; (unless (string= str1 str3)
@@ -1221,6 +1221,7 @@ PATH should be a list of steps, where each step has the form
1221 1221
1222;; Local variables: 1222;; Local variables:
1223;; generated-autoload-file: "org-loaddefs.el" 1223;; generated-autoload-file: "org-loaddefs.el"
1224;; coding: utf-8
1224;; End: 1225;; End:
1225 1226
1226;;; org-freemind.el ends here 1227;;; org-freemind.el ends here
diff --git a/lisp/play/bubbles.el b/lisp/play/bubbles.el
index 10493093aad..665e98a69b2 100644
--- a/lisp/play/bubbles.el
+++ b/lisp/play/bubbles.el
@@ -1,4 +1,4 @@
1;;; bubbles.el --- Puzzle game for Emacs 1;;; bubbles.el --- Puzzle game for Emacs -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 2007-2013 Free Software Foundation, Inc. 3;; Copyright (C) 2007-2013 Free Software Foundation, Inc.
4 4
@@ -198,7 +198,7 @@ types are present."
198 :group 'bubbles) 198 :group 'bubbles)
199 199
200(defcustom bubbles-chars 200(defcustom bubbles-chars
201 '(?+ ?O ?# ?X ?. ?* ?& ?) 201 '(?+ ?O ?# ?X ?. ?* ?& ?)
202 "Characters used for bubbles. 202 "Characters used for bubbles.
203Note that the actual number of different bubbles is determined by 203Note that the actual number of different bubbles is determined by
204the number of colors, see `bubbles-colors'." 204the number of colors, see `bubbles-colors'."
diff --git a/lisp/play/handwrite.el b/lisp/play/handwrite.el
index de6c198092e..63b09895e85 100644
--- a/lisp/play/handwrite.el
+++ b/lisp/play/handwrite.el
@@ -1,4 +1,4 @@
1;;; handwrite.el --- turns your emacs buffer into a handwritten document -*- coding: iso-latin-1; -*- 1;;; handwrite.el --- turns your emacs buffer into a handwritten document -*- coding: utf-8; -*-
2 2
3;; Copyright (C) 1996, 2001-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1996, 2001-2013 Free Software Foundation, Inc.
4 4
@@ -170,15 +170,15 @@ Variables: `handwrite-linespace' (default 12)
170 (textp) 170 (textp)
171 (ps-buf-name) ;name of the PostScript buffer 171 (ps-buf-name) ;name of the PostScript buffer
172 (trans-table 172 (trans-table
173 '(("" . "264") ("" . "207") ("" . "210") ("" . "211") 173 '(("ÿ" . "264") ("á" . "207") ("à" . "210") ("â" . "211")
174 ("" . "212") ("" . "213") ("" . "214") ("" . "216") 174 ("ä" . "212") ("ã" . "213") ("å" . "214") ("é" . "216")
175 ("" . "217") ("" . "220") ("" . "221") ("" . "222") 175 ("è" . "217") ("ê" . "220") ("ë" . "221") ("í" . "222")
176 ("" . "223") ("" . "224") ("" . "225") ("" . "227") 176 ("ì" . "223") ("î" . "224") ("ï" . "225") ("ó" . "227")
177 ("" . "230") ("" . "231") ("" . "232") ("" . "233") 177 ("ò" . "230") ("ô" . "231") ("ö" . "232") ("õ" . "233")
178 ("" . "234") ("" . "235") ("" . "236") ("" . "237") 178 ("ú" . "234") ("ù" . "235") ("û" . "236") ("ü" . "237")
179 ("" . "247") ("" . "241") ("" . "250") ("" . "251") 179 ("ß" . "247") ("" . "241") ("" . "250") ("" . "251")
180 ("ij" . "264") ("" . "215") ("" . "244") ("" . "226") 180 ("ij" . "264") ("ç" . "215") ("" . "244") ("ñ" . "226")
181 ("" . "243"))) 181 ("" . "243")))
182 (escape-table '("\\\\" "(" ")")) ; \\ comes first to not work 182 (escape-table '("\\\\" "(" ")")) ; \\ comes first to not work
183 ; on inserted backslashes 183 ; on inserted backslashes
184 line) 184 line)
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index 977bc755e32..368b1fc50dc 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -1,4 +1,4 @@
1;;; cc-engine.el --- core syntax guessing engine for CC mode 1;;; cc-engine.el --- core syntax guessing engine for CC mode -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 1985, 1987, 1992-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1985, 1987, 1992-2013 Free Software Foundation, Inc.
4 4
@@ -2280,25 +2280,25 @@ comment at the start of cc-engine.el for more info."
2280 (while (and c (> (car c) c-state-semi-nonlit-pos-cache-limit)) 2280 (while (and c (> (car c) c-state-semi-nonlit-pos-cache-limit))
2281 (setq c (cdr c))) 2281 (setq c (cdr c)))
2282 (setq c-state-semi-nonlit-pos-cache c) 2282 (setq c-state-semi-nonlit-pos-cache c)
2283 2283
2284 (while (and c (> (car c) here)) 2284 (while (and c (> (car c) here))
2285 (setq high-pos (car c)) 2285 (setq high-pos (car c))
2286 (setq c (cdr c))) 2286 (setq c (cdr c)))
2287 (setq pos (or (car c) (point-min))) 2287 (setq pos (or (car c) (point-min)))
2288 2288
2289 (unless high-pos 2289 (unless high-pos
2290 (while 2290 (while
2291 ;; Add an element to `c-state-semi-nonlit-pos-cache' each iteration. 2291 ;; Add an element to `c-state-semi-nonlit-pos-cache' each iteration.
2292 (and 2292 (and
2293 (<= (setq npos (+ pos c-state-nonlit-pos-interval)) here) 2293 (<= (setq npos (+ pos c-state-nonlit-pos-interval)) here)
2294 2294
2295 ;; Test for being in a literal. If so, go to after it. 2295 ;; Test for being in a literal. If so, go to after it.
2296 (progn 2296 (progn
2297 (setq lit (car (cddr (c-state-pp-to-literal pos npos)))) 2297 (setq lit (car (cddr (c-state-pp-to-literal pos npos))))
2298 (or (null lit) 2298 (or (null lit)
2299 (prog1 (<= (cdr lit) here) 2299 (prog1 (<= (cdr lit) here)
2300 (setq npos (cdr lit)))))) 2300 (setq npos (cdr lit))))))
2301 2301
2302 (setq pos npos) 2302 (setq pos npos)
2303 (setq c-state-semi-nonlit-pos-cache 2303 (setq c-state-semi-nonlit-pos-cache
2304 (cons pos c-state-semi-nonlit-pos-cache)))) 2304 (cons pos c-state-semi-nonlit-pos-cache))))
@@ -2606,11 +2606,11 @@ comment at the start of cc-engine.el for more info."
2606 ;; OLD: { (.) {...........} 2606 ;; OLD: { (.) {...........}
2607 ;; ^ ^ 2607 ;; ^ ^
2608 ;; FROM HERE 2608 ;; FROM HERE
2609 ;; 2609 ;;
2610 ;; NEW: { {....} (.) {......... 2610 ;; NEW: { {....} (.) {.........
2611 ;; ^ ^ ^ 2611 ;; ^ ^ ^
2612 ;; LOWER BRACE PAIR HERE or HERE 2612 ;; LOWER BRACE PAIR HERE or HERE
2613 ;; 2613 ;;
2614 ;; This routine should be fast. Since it can get called a LOT, we maintain 2614 ;; This routine should be fast. Since it can get called a LOT, we maintain
2615 ;; `c-state-brace-pair-desert', a small cache of "failures", such that we 2615 ;; `c-state-brace-pair-desert', a small cache of "failures", such that we
2616 ;; reduce the time wasted in repeated fruitless searches in brace deserts. 2616 ;; reduce the time wasted in repeated fruitless searches in brace deserts.
@@ -2907,7 +2907,7 @@ comment at the start of cc-engine.el for more info."
2907 start-point)) 2907 start-point))
2908 (goto-char pos) 2908 (goto-char pos)
2909 (while (and c-state-cache 2909 (while (and c-state-cache
2910 (or (numberp (car c-state-cache)) ; Have we a { at all? 2910 (or (numberp (car c-state-cache)) ; Have we a { at all?
2911 (cdr c-state-cache)) 2911 (cdr c-state-cache))
2912 (< (point) here)) 2912 (< (point) here))
2913 (cond 2913 (cond
@@ -4610,7 +4610,7 @@ comment at the start of cc-engine.el for more info."
4610 s ; state 4610 s ; state
4611 'syntax-table))) ; stop-comment 4611 'syntax-table))) ; stop-comment
4612 (setq pos (point))) 4612 (setq pos (point)))
4613 4613
4614 ;; Now try and find enough non-literal characters recorded on the stack. 4614 ;; Now try and find enough non-literal characters recorded on the stack.
4615 ;; Go back one recorded literal each time round this loop. 4615 ;; Go back one recorded literal each time round this loop.
4616 (while (and (< count how-far-back) 4616 (while (and (< count how-far-back)
@@ -8516,8 +8516,8 @@ comment at the start of cc-engine.el for more info."
8516 )) 8516 ))
8517 8517
8518(defun c-looking-at-special-brace-list (&optional lim) 8518(defun c-looking-at-special-brace-list (&optional lim)
8519 ;; If we're looking at the start of a pike-style list, ie `({})', 8519 ;; If we're looking at the start of a pike-style list, i.e., `({})',
8520 ;; `([])', `(<>)' etc, a cons of a cons of its starting and ending 8520 ;; `([])', `(<>)', etc., a cons of a cons of its starting and ending
8521 ;; positions and its entry in c-special-brace-lists is returned, nil 8521 ;; positions and its entry in c-special-brace-lists is returned, nil
8522 ;; otherwise. The ending position is nil if the list is still open. 8522 ;; otherwise. The ending position is nil if the list is still open.
8523 ;; LIM is the limit for forward search. The point may either be at 8523 ;; LIM is the limit for forward search. The point may either be at
@@ -8762,7 +8762,7 @@ comment at the start of cc-engine.el for more info."
8762 (c-simple-skip-symbol-backward) 8762 (c-simple-skip-symbol-backward)
8763 (looking-at c-macro-with-semi-re) 8763 (looking-at c-macro-with-semi-re)
8764 (goto-char pos) 8764 (goto-char pos)
8765 (not (c-in-literal)))))) ; The most expensive check last. 8765 (not (c-in-literal)))))) ; The most expensive check last.
8766 8766
8767(defun c-macro-vsemi-status-unknown-p () t) ; See cc-defs.el. 8767(defun c-macro-vsemi-status-unknown-p () t) ; See cc-defs.el.
8768 8768
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el
index 0d5549e4441..ba9c42e4c89 100644
--- a/lisp/progmodes/cc-langs.el
+++ b/lisp/progmodes/cc-langs.el
@@ -1,4 +1,4 @@
1;;; cc-langs.el --- language specific settings for CC Mode 1;;; cc-langs.el --- language specific settings for CC Mode -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 1985, 1987, 1992-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1985, 1987, 1992-2013 Free Software Foundation, Inc.
4 4
@@ -2907,7 +2907,7 @@ is in effect or not."
2907 2907
2908(c-lang-defconst c-special-brace-lists 2908(c-lang-defconst c-special-brace-lists
2909"List of open- and close-chars that makes up a pike-style brace list, 2909"List of open- and close-chars that makes up a pike-style brace list,
2910i.e. for a ([]) list there should be a cons (?\\[ . ?\\]) in this 2910i.e. for a ([]) list there should be a cons (?\\[ . ?\\]) in this
2911list." 2911list."
2912 t nil 2912 t nil
2913 pike '((?{ . ?}) (?\[ . ?\]) (?< . ?>))) 2913 pike '((?{ . ?}) (?\[ . ?\]) (?< . ?>)))
diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el
index fbd1ded35a0..fc753bf7264 100644
--- a/lisp/progmodes/hideshow.el
+++ b/lisp/progmodes/hideshow.el
@@ -1,4 +1,4 @@
1;;; hideshow.el --- minor mode cmds to selectively display code/comment blocks 1;;; hideshow.el --- minor mode cmds to selectively display code/comment blocks -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 1994-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1994-2013 Free Software Foundation, Inc.
4 4
@@ -207,7 +207,7 @@
207;; Dean Andrews, Alf-Ivar Holm, Holger Bauer, Christoph Conrad, Dave Love, 207;; Dean Andrews, Alf-Ivar Holm, Holger Bauer, Christoph Conrad, Dave Love,
208;; Dirk Herrmann, Gael Marziou, Jan Djarv, Guillaume Leray, Moody Ahmad, 208;; Dirk Herrmann, Gael Marziou, Jan Djarv, Guillaume Leray, Moody Ahmad,
209;; Preston F. Crow, Lars Lindberg, Reto Zimmermann, Keith Sheffield, 209;; Preston F. Crow, Lars Lindberg, Reto Zimmermann, Keith Sheffield,
210;; Chew Meng Kuan, Tony Lam, Pete Ware, Franois Pinard, Stefan Monnier, 210;; Chew Meng Kuan, Tony Lam, Pete Ware, François Pinard, Stefan Monnier,
211;; Joseph Eydelnant, Michael Ernst, Peter Heslin 211;; Joseph Eydelnant, Michael Ernst, Peter Heslin
212;; 212;;
213;; Special thanks go to Dan Nicolaescu, who reimplemented hideshow using 213;; Special thanks go to Dan Nicolaescu, who reimplemented hideshow using
diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el
index 460dcd69447..85e4172c8fe 100644
--- a/lisp/progmodes/prolog.el
+++ b/lisp/progmodes/prolog.el
@@ -1,9 +1,9 @@
1;;; prolog.el --- major mode for editing and running Prolog (and Mercury) code 1;;; prolog.el --- major mode for Prolog (and Mercury) -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 1986-1987, 1997-1999, 2002-2003, 2011-2013 Free 3;; Copyright (C) 1986-1987, 1997-1999, 2002-2003, 2011-2013 Free
4;; Software Foundation, Inc. 4;; Software Foundation, Inc.
5 5
6;; Authors: Emil strm <emil_astrom(at)hotmail(dot)com> 6;; Authors: Emil Åström <emil_astrom(at)hotmail(dot)com>
7;; Milan Zamazal <pdm(at)freesoft(dot)cz> 7;; Milan Zamazal <pdm(at)freesoft(dot)cz>
8;; Stefan Bruda <stefan(at)bruda(dot)ca> 8;; Stefan Bruda <stefan(at)bruda(dot)ca>
9;; * See below for more details 9;; * See below for more details
@@ -31,7 +31,7 @@
31;; Original author: Masanobu UMEDA <umerin(at)mse(dot)kyutech(dot)ac(dot)jp> 31;; Original author: Masanobu UMEDA <umerin(at)mse(dot)kyutech(dot)ac(dot)jp>
32;; Parts of this file was taken from a modified version of the original 32;; Parts of this file was taken from a modified version of the original
33;; by Johan Andersson, Peter Olin, Mats Carlsson, Johan Bevemyr, Stefan 33;; by Johan Andersson, Peter Olin, Mats Carlsson, Johan Bevemyr, Stefan
34;; Andersson, and Per Danielsson (all SICS people), and Henrik Bkman 34;; Andersson, and Per Danielsson (all SICS people), and Henrik Båkman
35;; at Uppsala University, Sweden. 35;; at Uppsala University, Sweden.
36;; 36;;
37;; Some ideas and also a few lines of code have been borrowed (not stolen ;-) 37;; Some ideas and also a few lines of code have been borrowed (not stolen ;-)
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index da30edf272b..8f1954402e5 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -1842,7 +1842,7 @@ May return nil if the line should not be treated as continued."
1842;; (defconst sh-smie-csh-grammar 1842;; (defconst sh-smie-csh-grammar
1843;; (smie-prec2->grammar 1843;; (smie-prec2->grammar
1844;; (smie-bnf->prec2 1844;; (smie-bnf->prec2
1845;; '((exp) ;A constant, or a $var, or a sequence of them 1845;; '((exp) ;A constant, or a $var, or a sequence of them...
1846;; (elseifcmd (cmd) 1846;; (elseifcmd (cmd)
1847;; (cmd "else" "else-if" exp "then" elseifcmd)) 1847;; (cmd "else" "else-if" exp "then" elseifcmd))
1848;; (cmd ("switch" branches "endsw") 1848;; (cmd ("switch" branches "endsw")
diff --git a/lisp/ruler-mode.el b/lisp/ruler-mode.el
index 08c4ba51905..009bb11fc10 100644
--- a/lisp/ruler-mode.el
+++ b/lisp/ruler-mode.el
@@ -137,8 +137,8 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or
137 (format "Invalid character value: %S" value)) 137 (format "Invalid character value: %S" value))
138 widget)))) 138 widget))))
139 139
140(defcustom ruler-mode-fill-column-char (if (char-displayable-p ?) 140(defcustom ruler-mode-fill-column-char (if (char-displayable-p ?)
141 ?\ 141 ?\
142 ?\|) 142 ?\|)
143 "Character used at the `fill-column' location." 143 "Character used at the `fill-column' location."
144 :group 'ruler-mode 144 :group 'ruler-mode
@@ -163,8 +163,8 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or
163 (integer :tag "Integer char value" 163 (integer :tag "Integer char value"
164 :validate ruler-mode-character-validate))) 164 :validate ruler-mode-character-validate)))
165 165
166(defcustom ruler-mode-current-column-char (if (char-displayable-p ?) 166(defcustom ruler-mode-current-column-char (if (char-displayable-p ?)
167 ?\ 167 ?\
168 ?\@) 168 ?\@)
169 "Character used at the `current-column' location." 169 "Character used at the `current-column' location."
170 :group 'ruler-mode 170 :group 'ruler-mode
@@ -774,7 +774,7 @@ Optional argument PROPS specifies other text properties to apply."
774(provide 'ruler-mode) 774(provide 'ruler-mode)
775 775
776;; Local Variables: 776;; Local Variables:
777;; coding: iso-latin-1 777;; coding: utf-8
778;; End: 778;; End:
779 779
780;;; ruler-mode.el ends here 780;;; ruler-mode.el ends here
diff --git a/lisp/textmodes/conf-mode.el b/lisp/textmodes/conf-mode.el
index 93ff179229b..67f2d96d003 100644
--- a/lisp/textmodes/conf-mode.el
+++ b/lisp/textmodes/conf-mode.el
@@ -1,4 +1,4 @@
1;;; conf-mode.el --- Simple major mode for editing conf/ini/properties files 1;;; conf-mode.el --- Simple major mode for editing conf/ini/properties files -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 2004-2013 Free Software Foundation, Inc. 3;; Copyright (C) 2004-2013 Free Software Foundation, Inc.
4 4
@@ -23,7 +23,7 @@
23;;; Commentary: 23;;; Commentary:
24;; 24;;
25;; This mode is designed to edit many similar varieties of Conf/Ini files and 25;; This mode is designed to edit many similar varieties of Conf/Ini files and
26;; Java properties. It started out from Aurlien Tisn's ini-mode. 26;; Java properties. It started out from Aurélien Tisné's ini-mode.
27;; `conf-space-keywords' were inspired by Robert Fitzgerald's any-ini-mode. 27;; `conf-space-keywords' were inspired by Robert Fitzgerald's any-ini-mode.
28 28
29 29
diff --git a/lisp/textmodes/po.el b/lisp/textmodes/po.el
index 331f220f95b..610227af794 100644
--- a/lisp/textmodes/po.el
+++ b/lisp/textmodes/po.el
@@ -1,8 +1,8 @@
1;;; po.el --- basic support of PO translation files -*- coding: latin-1; -*- 1;;; po.el --- basic support of PO translation files -*- coding: utf-8; -*-
2 2
3;; Copyright (C) 1995-1998, 2000-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1995-1998, 2000-2013 Free Software Foundation, Inc.
4 4
5;; Authors: Franois Pinard <pinard@iro.umontreal.ca>, 5;; Authors: François Pinard <pinard@iro.umontreal.ca>,
6;; Greg McGary <gkm@magilla.cichlid.com>, 6;; Greg McGary <gkm@magilla.cichlid.com>,
7;; Bruno Haible <bruno@clisp.org>. 7;; Bruno Haible <bruno@clisp.org>.
8;; Keywords: i18n, files 8;; Keywords: i18n, files
diff --git a/lisp/textmodes/tildify.el b/lisp/textmodes/tildify.el
index 3ba19bb9f40..f25fa87d0ec 100644
--- a/lisp/textmodes/tildify.el
+++ b/lisp/textmodes/tildify.el
@@ -40,7 +40,7 @@
40;; The default variable settings are suited for Czech, so do not try to 40;; The default variable settings are suited for Czech, so do not try to
41;; understand them if you are not familiar with Czech grammar and spelling. 41;; understand them if you are not familiar with Czech grammar and spelling.
42;; 42;;
43;; The algorithm was inspired by Petr Olk's program `vlna'. Abilities of 43;; The algorithm was inspired by Petr Olšák's program `vlna'. Abilities of
44;; `tildify.el' are a little limited; if you have improvement suggestions, let 44;; `tildify.el' are a little limited; if you have improvement suggestions, let
45;; me know. 45;; me know.
46 46
@@ -349,7 +349,7 @@ further questions)."
349 349
350 350
351;; Local variables: 351;; Local variables:
352;; coding: iso-latin-2 352;; coding: utf-8
353;; End: 353;; End:
354 354
355;;; tildify.el ends here 355;;; tildify.el ends here
diff --git a/lisp/wdired.el b/lisp/wdired.el
index 59a09d6d5a0..47cd99f45ac 100644
--- a/lisp/wdired.el
+++ b/lisp/wdired.el
@@ -3,7 +3,7 @@
3;; Copyright (C) 2004-2013 Free Software Foundation, Inc. 3;; Copyright (C) 2004-2013 Free Software Foundation, Inc.
4 4
5;; Filename: wdired.el 5;; Filename: wdired.el
6;; Author: Juan Len Lahoz Garca <juanleon1@gmail.com> 6;; Author: Juan León Lahoz García <juanleon1@gmail.com>
7;; Version: 2.0 7;; Version: 2.0
8;; Keywords: dired, environment, files, renaming 8;; Keywords: dired, environment, files, renaming
9 9
@@ -851,7 +851,7 @@ Like original function but it skips read-only words."
851(provide 'wdired) 851(provide 'wdired)
852 852
853;; Local Variables: 853;; Local Variables:
854;; coding: latin-1 854;; coding: utf-8
855;; byte-compile-dynamic: t 855;; byte-compile-dynamic: t
856;; End: 856;; End:
857 857
diff --git a/nt/ChangeLog b/nt/ChangeLog
index e9ff443b947..dcda682cfc6 100644
--- a/nt/ChangeLog
+++ b/nt/ChangeLog
@@ -1,3 +1,8 @@
12013-03-05 Paul Eggert <eggert@cs.ucla.edu>
2
3 FILE's lock is now always .#FILE and may be a regular file (Bug#13807).
4 * inc/unistd.h (O_NOFOLLOW): New macro.
5
12013-03-04 Juanma Barranquero <lekktu@gmail.com> 62013-03-04 Juanma Barranquero <lekktu@gmail.com>
2 7
3 * config.nt: Sync with autogen/config.in. 8 * config.nt: Sync with autogen/config.in.
diff --git a/nt/inc/unistd.h b/nt/inc/unistd.h
index 3fd9289d83d..e07c46533f7 100644
--- a/nt/inc/unistd.h
+++ b/nt/inc/unistd.h
@@ -27,8 +27,9 @@ extern int faccessat (int, char const *, int, int);
27#define AT_EACCESS 4 27#define AT_EACCESS 4
28#define AT_SYMLINK_NOFOLLOW 4096 28#define AT_SYMLINK_NOFOLLOW 4096
29 29
30#define O_NOCTTY 0
31#define O_IGNORE_CTTY 0 30#define O_IGNORE_CTTY 0
31#define O_NOCTTY 0
32#define O_NOFOLLOW 0
32 33
33/* This is normally on stdlib.h, but we don't override that header. */ 34/* This is normally on stdlib.h, but we don't override that header. */
34extern int unsetenv (const char *); 35extern int unsetenv (const char *);
diff --git a/src/ChangeLog b/src/ChangeLog
index 08fd647074f..af03fa54291 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,79 @@
12013-03-05 Paul Eggert <eggert@cs.ucla.edu>
2
3 FILE's lock is now always .#FILE and may be a regular file (Bug#13807).
4 * filelock.c: Include <c-ctype.h>.
5 (MAX_LFINFO): New top-level constant.
6 (lock_info_type): Remove members pid, boot_time. Add members at,
7 dot, colon. Change user member to be the entire buffer, not a
8 pointer. This allows us to handle the case where a foreign
9 pid or boot time exceeds the local range. All uses changed.
10 (LINKS_MIGHT_NOT_WORK): New constant.
11 (FREE_LOCK_INFO): Remove, as the pieces no longer need freeing.
12 (defined_WINDOWSNT): Remove.
13 (MAKE_LOCK_NAME, file_in_lock_file_name):
14 Always use .#FILE (not .#-FILE) for the file lock,
15 even if it is a regular file.
16 (rename_lock_file): New function.
17 (create_lock_file): Use it.
18 (create_lock_file, read_lock_data):
19 Prefer a symbolic link for the lock file, falling back on a
20 regular file if symlinks don't work. Do not try to create
21 symlinks on MS-Windows, due to security hassles. Stick with
22 POSIXish functions (open, read, write, close, fchmod, readlink, symlink,
23 link, rename, unlink, mkstemp) when creating locks, as a GNUish
24 host may be using a Windowsish file system, and cannot use
25 MS-Windows-only system calls. Fall back on mktemp if mkstemp
26 doesn't work. Don't fail merely because of a symlink-contents
27 length limit in the current file system; fall back on regular
28 files. Increase the symlink contents length limit to 8 KiB, this
29 should be big enough for any real use and doesn't crunch the
30 stack.
31 (create_lock_file, lock_file_1, read_lock_data):
32 Simplify allocation of lock file buffers now that they fit in 8 KiB.
33 (lock_file_1): Return error number, not bool. All callers changed.
34 (ELOOP): New macro, if not already defined.
35 (read_lock_data): Return size of lock file contents, not Lisp object.
36 All callers changed. Handle a race condition if some other process
37 replaces a regular-file lock with a symlink lock or vice versa,
38 while we're trying to read the lock.
39 (current_lock_owner): Parse contents more carefully, to help avoid
40 confusing a regular-file lock with some other application's use
41 of the file. Check for lock file contents being too long, or
42 not parsing correctly.
43 (current_lock_owner, lock_file):
44 Allow foreign pid and boot times that exceed the local range.
45 (current_lock_owner, lock_if_free, lock_file):
46 Simplify allocation of lock file contents.
47 * w32.c (sys_rename_replace): New function, containing most of
48 the contents of the old sys_rename.
49 (sys_rename): Use it.
50 (fchmod): New dummy function.
51 * w32.h (sys_rename_replace, fchmod): New decls.
52
532013-03-05 Eli Zaretskii <eliz@gnu.org>
54
55 * bidi.c (bidi_resolve_explicit_1): Don't call CHAR_TO_BYTE or
56 bidi_count_bytes, as the callers now arrange for bidi_it->charpos
57 to be in sync with bidi_it->bytepos. Suggested by Dmitry Antipov
58 <dmantipov@yandex.ru>.
59
602013-03-05 Paul Eggert <eggert@cs.ucla.edu>
61
62 Fix a build failure on OpenBSD 4.x and MirBSD.
63 * sysdep.c (KERN_PROC, kinfo_proc)
64 [BSD_SYSTEM && (!KERN_PROC || __MirBSD__)]:
65 Define to KERN_PROC2 and kinfo_proc2, for OpenBSD 4.9 and MirBSD.
66 list-system-processes still returns nil, but at least it doesn't crash.
67 Problem reported by Nelson H. F. Beebe in
68 <http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00021.html>.
69
702013-03-05 Dmitry Antipov <dmantipov@yandex.ru>
71
72 * composite.c (get_composition_id, fill_gstring_header):
73 Use make_uninit_vector where appropriate.
74 * font.c (Ffont_get_glyphs, build_style_table): Likewise.
75 * xselect.c (clean_local_selection_data): Likewise.
76
12013-03-04 Paul Eggert <eggert@cs.ucla.edu> 772013-03-04 Paul Eggert <eggert@cs.ucla.edu>
2 78
3 Fix misuse of ImageMagick that caused core dump (Bug#13846). 79 Fix misuse of ImageMagick that caused core dump (Bug#13846).
diff --git a/src/bidi.c b/src/bidi.c
index 364d7e500ba..57d154bc544 100644
--- a/src/bidi.c
+++ b/src/bidi.c
@@ -1353,15 +1353,19 @@ bidi_resolve_explicit_1 (struct bidi_it *bidi_it)
1353 : bidi_it->string.s); 1353 : bidi_it->string.s);
1354 1354
1355 if (bidi_it->charpos < 0) 1355 if (bidi_it->charpos < 0)
1356 bidi_it->charpos = 0; 1356 bidi_it->charpos = bidi_it->bytepos = 0;
1357 bidi_it->bytepos = bidi_count_bytes (p, 0, 0, bidi_it->charpos, 1357 eassert (bidi_it->bytepos == bidi_count_bytes (p, 0, 0,
1358 bidi_it->string.unibyte); 1358 bidi_it->charpos,
1359 bidi_it->string.unibyte));
1359 } 1360 }
1360 else 1361 else
1361 { 1362 {
1362 if (bidi_it->charpos < BEGV) 1363 if (bidi_it->charpos < BEGV)
1363 bidi_it->charpos = BEGV; 1364 {
1364 bidi_it->bytepos = CHAR_TO_BYTE (bidi_it->charpos); 1365 bidi_it->charpos = BEGV;
1366 bidi_it->bytepos = BEGV_BYTE;
1367 }
1368 eassert (bidi_it->bytepos == CHAR_TO_BYTE (bidi_it->charpos));
1365 } 1369 }
1366 } 1370 }
1367 /* Don't move at end of buffer/string. */ 1371 /* Don't move at end of buffer/string. */
diff --git a/src/composite.c b/src/composite.c
index 2da98cfc36c..8b1f0171a60 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -234,7 +234,7 @@ get_composition_id (ptrdiff_t charpos, ptrdiff_t bytepos, ptrdiff_t nchars,
234 key = components; 234 key = components;
235 else if (NILP (components)) 235 else if (NILP (components))
236 { 236 {
237 key = Fmake_vector (make_number (nchars), Qnil); 237 key = make_uninit_vector (nchars);
238 if (STRINGP (string)) 238 if (STRINGP (string))
239 for (i = 0; i < nchars; i++) 239 for (i = 0; i < nchars; i++)
240 { 240 {
@@ -828,7 +828,7 @@ fill_gstring_header (Lisp_Object header, Lisp_Object start, Lisp_Object end,
828 if (len <= 8) 828 if (len <= 8)
829 header = AREF (gstring_work_headers, len - 1); 829 header = AREF (gstring_work_headers, len - 1);
830 else 830 else
831 header = Fmake_vector (make_number (len + 1), Qnil); 831 header = make_uninit_vector (len + 1);
832 } 832 }
833 833
834 ASET (header, 0, font_object); 834 ASET (header, 0, font_object);
diff --git a/src/filelock.c b/src/filelock.c
index 14b9d4aaca5..32992896c2b 100644
--- a/src/filelock.c
+++ b/src/filelock.c
@@ -38,6 +38,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
38 38
39#include <errno.h> 39#include <errno.h>
40 40
41#include <c-ctype.h>
42
41#include "lisp.h" 43#include "lisp.h"
42#include "character.h" 44#include "character.h"
43#include "buffer.h" 45#include "buffer.h"
@@ -64,7 +66,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
64#define WTMP_FILE "/var/log/wtmp" 66#define WTMP_FILE "/var/log/wtmp"
65#endif 67#endif
66 68
67/* On non-MS-Windows systems, use a symbolic link to represent a lock. 69/* Normally use a symbolic link to represent a lock.
68 The strategy: to lock a file FN, create a symlink .#FN in FN's 70 The strategy: to lock a file FN, create a symlink .#FN in FN's
69 directory, with link data `user@host.pid'. This avoids a single 71 directory, with link data `user@host.pid'. This avoids a single
70 mount (== failure) point for lock files. 72 mount (== failure) point for lock files.
@@ -100,10 +102,21 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
100 102
101 --karl@cs.umb.edu/karl@hq.ileaf.com. 103 --karl@cs.umb.edu/karl@hq.ileaf.com.
102 104
103 On MS-Windows, symbolic links do not work well, so instead of a 105 On some file systems, notably those of MS-Windows, symbolic links
104 symlink .#FN -> 'user@host.pid', the lock is a regular file .#-FN 106 do not work well, so instead of a symlink .#FN -> 'user@host.pid',
105 with contents 'user@host.pid'. MS-Windows and non-MS-Windows 107 the lock is a regular file .#FN with contents 'user@host.pid'. To
106 versions of Emacs ignore each other's locks. */ 108 establish a lock, a nonce file is created and then renamed to .#FN.
109 On MS-Windows this renaming is atomic unless the lock is forcibly
110 acquired. On other systems the renaming is atomic if the lock is
111 forcibly acquired; if not, the renaming is done via hard links,
112 which is good enough for lock-file purposes.
113
114 To summarize, race conditions can occur with either:
115
116 * Forced locks on MS-Windows systems.
117
118 * Non-forced locks on non-MS-Windows systems that support neither
119 hard nor symbolic links. */
107 120
108 121
109/* Return the time of the last system boot. */ 122/* Return the time of the last system boot. */
@@ -284,30 +297,31 @@ get_boot_time_1 (const char *filename, bool newest)
284} 297}
285#endif /* BOOT_TIME */ 298#endif /* BOOT_TIME */
286 299
300/* An arbitrary limit on lock contents length. 8 K should be plenty
301 big enough in practice. */
302enum { MAX_LFINFO = 8 * 1024 };
303
287/* Here is the structure that stores information about a lock. */ 304/* Here is the structure that stores information about a lock. */
288 305
289typedef struct 306typedef struct
290{ 307{
291 char *user; 308 /* Location of '@', '.', ':' in USER. If there's no colon, COLON
292 char *host; 309 points to the end of USER. */
293 pid_t pid; 310 char *at, *dot, *colon;
294 time_t boot_time;
295} lock_info_type;
296
297/* Free the two dynamically-allocated pieces in PTR. */
298#define FREE_LOCK_INFO(i) do { xfree ((i).user); xfree ((i).host); } while (0)
299 311
300#ifdef WINDOWSNT 312 /* Lock file contents USER@HOST.PID with an optional :BOOT_TIME
301enum { defined_WINDOWSNT = 1 }; 313 appended. This memory is used as a lock file contents buffer, so
302#else 314 it needs room for MAX_LFINFO + 1 bytes. A string " (pid NNNN)"
303enum { defined_WINDOWSNT = 0 }; 315 may be appended to the USER@HOST while generating a diagnostic,
304#endif 316 so make room for its extra bytes (as opposed to ".NNNN") too. */
317 char user[MAX_LFINFO + 1 + sizeof " (pid )" - sizeof "."];
318} lock_info_type;
305 319
306/* Write the name of the lock file for FNAME into LOCKNAME. Length 320/* Write the name of the lock file for FNAME into LOCKNAME. Length
307 will be that of FNAME plus two more for the leading ".#", 321 will be that of FNAME plus two more for the leading ".#", plus one
308 plus one for "-" if MS-Windows, plus one for the null. */ 322 for the null. */
309#define MAKE_LOCK_NAME(lockname, fname) \ 323#define MAKE_LOCK_NAME(lockname, fname) \
310 (lockname = SAFE_ALLOCA (SBYTES (fname) + 2 + defined_WINDOWSNT + 1), \ 324 (lockname = SAFE_ALLOCA (SBYTES (fname) + 2 + 1), \
311 fill_in_lock_file_name (lockname, fname)) 325 fill_in_lock_file_name (lockname, fname))
312 326
313static void 327static void
@@ -319,70 +333,131 @@ fill_in_lock_file_name (char *lockfile, Lisp_Object fn)
319 memcpy (lockfile, SSDATA (fn), dirlen); 333 memcpy (lockfile, SSDATA (fn), dirlen);
320 lockfile[dirlen] = '.'; 334 lockfile[dirlen] = '.';
321 lockfile[dirlen + 1] = '#'; 335 lockfile[dirlen + 1] = '#';
322 if (defined_WINDOWSNT) 336 strcpy (lockfile + dirlen + 2, base);
323 lockfile[dirlen + 2] = '-';
324 strcpy (lockfile + dirlen + 2 + defined_WINDOWSNT, base);
325} 337}
326 338
339/* For some reason Linux kernels return EPERM on file systems that do
340 not support hard or symbolic links. This symbol documents the quirk.
341 There is no way to tell whether a symlink call fails due to
342 permissions issues or because links are not supported, but luckily
343 the lock file code should work either way. */
344enum { LINKS_MIGHT_NOT_WORK = EPERM };
345
346/* Rename OLD to NEW. If FORCE, replace any existing NEW.
347 It is OK if there are temporarily two hard links to OLD.
348 Return 0 if successful, -1 (setting errno) otherwise. */
327static int 349static int
328create_lock_file (char *lfname, char *lock_info_str, bool force) 350rename_lock_file (char const *old, char const *new, bool force)
329{ 351{
330 int err;
331
332#ifdef WINDOWSNT 352#ifdef WINDOWSNT
333 /* Symlinks are supported only by latest versions of Windows, and 353 return sys_rename_replace (old, new, force);
334 creating them is a privileged operation that often triggers UAC 354#else
335 elevation prompts. Therefore, instead of using symlinks, we 355 if (! force)
336 create a regular file with the lock info written as its 356 {
337 contents. */ 357 struct stat st;
338 {
339 /* Deny everybody else any kind of access to the file until we are
340 done writing it and close the handle. This makes the entire
341 open/write/close operation atomic, as far as other WINDOWSNT
342 processes are concerned. */
343 int fd = _sopen (lfname,
344 _O_WRONLY | _O_BINARY | _O_CREAT | _O_EXCL | _O_NOINHERIT,
345 _SH_DENYRW, S_IREAD | S_IWRITE);
346
347 if (fd < 0 && errno == EEXIST && force)
348 fd = _sopen (lfname, _O_WRONLY | _O_BINARY | _O_TRUNC |_O_NOINHERIT,
349 _SH_DENYRW, S_IREAD | S_IWRITE);
350 if (fd >= 0)
351 {
352 ssize_t lock_info_len = strlen (lock_info_str);
353 358
354 err = 0; 359 if (link (old, new) == 0)
355 if (emacs_write (fd, lock_info_str, lock_info_len) != lock_info_len) 360 return unlink (old) == 0 || errno == ENOENT ? 0 : -1;
356 err = -1; 361 if (errno != ENOSYS && errno != LINKS_MIGHT_NOT_WORK)
357 if (emacs_close (fd)) 362 return -1;
358 err = -1; 363
359 } 364 /* 'link' does not work on this file system. This can occur on
360 else 365 a GNU/Linux host mounting a FAT32 file system. Fall back on
361 err = -1; 366 'rename' after checking that NEW does not exist. There is a
362 } 367 potential race condition since some other process may create
368 NEW immediately after the existence check, but it's the best
369 we can portably do here. */
370 if (lstat (new, &st) == 0 || errno == EOVERFLOW)
371 {
372 errno = EEXIST;
373 return -1;
374 }
375 if (errno != ENOENT)
376 return -1;
377 }
378
379 return rename (old, new);
380#endif
381}
382
383/* Create the lock file FILE with contents CONTENTS. Return 0 if
384 successful, an errno value on failure. If FORCE, remove any
385 existing FILE if necessary. */
386
387static int
388create_lock_file (char *lfname, char *lock_info_str, bool force)
389{
390#ifdef WINDOWSNT
391 /* Symlinks are supported only by later versions of Windows, and
392 creating them is a privileged operation that often triggers
393 User Account Control elevation prompts. Avoid the problem by
394 pretending that 'symlink' does not work. */
395 int err = ENOSYS;
363#else 396#else
364 err = symlink (lock_info_str, lfname); 397 int err = symlink (lock_info_str, lfname) == 0 ? 0 : errno;
365 if (err != 0 && errno == EEXIST && force) 398#endif
399
400 if (err == EEXIST && force)
366 { 401 {
367 unlink (lfname); 402 unlink (lfname);
368 err = symlink (lock_info_str, lfname); 403 err = symlink (lock_info_str, lfname) == 0 ? 0 : errno;
369 } 404 }
405
406 if (err == ENOSYS || err == LINKS_MIGHT_NOT_WORK || err == ENAMETOOLONG)
407 {
408 static char const nonce_base[] = ".#-emacsXXXXXX";
409 char *last_slash = strrchr (lfname, '/');
410 ptrdiff_t lfdirlen = last_slash + 1 - lfname;
411 USE_SAFE_ALLOCA;
412 char *nonce = SAFE_ALLOCA (lfdirlen + sizeof nonce_base);
413 int fd;
414 bool need_fchmod;
415 mode_t world_readable = S_IRUSR | S_IRGRP | S_IROTH;
416 memcpy (nonce, lfname, lfdirlen);
417 strcpy (nonce + lfdirlen, nonce_base);
418
419#if HAVE_MKSTEMP
420 /* Prefer mkstemp if available, as it avoids a race between
421 mktemp and emacs_open. */
422 fd = mkstemp (nonce);
423 need_fchmod = 1;
424#else
425 mktemp (nonce);
426 fd = emacs_open (nonce, O_WRONLY | O_CREAT | O_EXCL | O_BINARY,
427 world_readable);
428 need_fchmod = 0;
370#endif 429#endif
371 430
431 if (fd < 0)
432 err = errno;
433 else
434 {
435 ptrdiff_t lock_info_len = strlen (lock_info_str);
436 err = 0;
437 if (emacs_write (fd, lock_info_str, lock_info_len) != lock_info_len
438 || (need_fchmod && fchmod (fd, world_readable) != 0))
439 err = errno;
440 if (emacs_close (fd) != 0)
441 err = errno;
442 if (!err && rename_lock_file (nonce, lfname, force) != 0)
443 err = errno;
444 if (err)
445 unlink (nonce);
446 }
447
448 SAFE_FREE ();
449 }
450
372 return err; 451 return err;
373} 452}
374 453
375/* Lock the lock file named LFNAME. 454/* Lock the lock file named LFNAME.
376 If FORCE, do so even if it is already locked. 455 If FORCE, do so even if it is already locked.
377 Return true if successful. */ 456 Return 0 if successful, an error number on failure. */
378 457
379static bool 458static int
380lock_file_1 (char *lfname, bool force) 459lock_file_1 (char *lfname, bool force)
381{ 460{
382 int err;
383 int symlink_errno;
384 USE_SAFE_ALLOCA;
385
386 /* Call this first because it can GC. */ 461 /* Call this first because it can GC. */
387 printmax_t boot = get_boot_time (); 462 printmax_t boot = get_boot_time ();
388 463
@@ -390,20 +465,16 @@ lock_file_1 (char *lfname, bool force)
390 char const *user_name = STRINGP (luser_name) ? SSDATA (luser_name) : ""; 465 char const *user_name = STRINGP (luser_name) ? SSDATA (luser_name) : "";
391 Lisp_Object lhost_name = Fsystem_name (); 466 Lisp_Object lhost_name = Fsystem_name ();
392 char const *host_name = STRINGP (lhost_name) ? SSDATA (lhost_name) : ""; 467 char const *host_name = STRINGP (lhost_name) ? SSDATA (lhost_name) : "";
393 ptrdiff_t lock_info_size = (strlen (user_name) + strlen (host_name) 468 char lock_info_str[MAX_LFINFO + 1];
394 + 2 * INT_STRLEN_BOUND (printmax_t)
395 + sizeof "@.:");
396 char *lock_info_str = SAFE_ALLOCA (lock_info_size);
397 printmax_t pid = getpid (); 469 printmax_t pid = getpid ();
398 470
399 esprintf (lock_info_str, boot ? "%s@%s.%"pMd":%"pMd : "%s@%s.%"pMd, 471 if (sizeof lock_info_str
400 user_name, host_name, pid, boot); 472 <= snprintf (lock_info_str, sizeof lock_info_str,
401 err = create_lock_file (lfname, lock_info_str, force); 473 boot ? "%s@%s.%"pMd":%"pMd : "%s@%s.%"pMd,
474 user_name, host_name, pid, boot))
475 return ENAMETOOLONG;
402 476
403 symlink_errno = errno; 477 return create_lock_file (lfname, lock_info_str, force);
404 SAFE_FREE ();
405 errno = symlink_errno;
406 return err == 0;
407} 478}
408 479
409/* Return true if times A and B are no more than one second apart. */ 480/* Return true if times A and B are no more than one second apart. */
@@ -414,32 +485,44 @@ within_one_second (time_t a, time_t b)
414 return (a - b >= -1 && a - b <= 1); 485 return (a - b >= -1 && a - b <= 1);
415} 486}
416 487
417static Lisp_Object 488/* On systems lacking ELOOP, test for an errno value that shouldn't occur. */
418read_lock_data (char *lfname) 489#ifndef ELOOP
419{ 490# define ELOOP (-1)
420#ifndef WINDOWSNT 491#endif
421 return emacs_readlinkat (AT_FDCWD, lfname);
422#else
423 int fd = emacs_open (lfname, O_RDONLY | O_BINARY, S_IREAD);
424 ssize_t nbytes;
425 /* 256 chars for user, 1024 chars for host, 10 digits for each of 2 int's. */
426 enum { MAX_LFINFO = 256 + 1024 + 10 + 10 + 2 };
427 char lfinfo[MAX_LFINFO + 1];
428 492
429 if (fd < 0) 493/* Read the data for the lock file LFNAME into LFINFO. Read at most
430 return Qnil; 494 MAX_LFINFO + 1 bytes. Return the number of bytes read, or -1
495 (setting errno) on error. */
431 496
432 nbytes = emacs_read (fd, lfinfo, MAX_LFINFO); 497static ptrdiff_t
433 emacs_close (fd); 498read_lock_data (char *lfname, char lfinfo[MAX_LFINFO + 1])
499{
500 ptrdiff_t nbytes;
434 501
435 if (nbytes > 0) 502 while ((nbytes = readlinkat (AT_FDCWD, lfname, lfinfo, MAX_LFINFO + 1)) < 0
503 && errno == EINVAL)
436 { 504 {
437 lfinfo[nbytes] = '\0'; 505 int fd = emacs_open (lfname, O_RDONLY | O_BINARY | O_NOFOLLOW, 0);
438 return build_string (lfinfo); 506 if (0 <= fd)
507 {
508 ptrdiff_t read_bytes = emacs_read (fd, lfinfo, MAX_LFINFO + 1);
509 int read_errno = errno;
510 if (emacs_close (fd) != 0)
511 return -1;
512 errno = read_errno;
513 return read_bytes;
514 }
515
516 if (errno != ELOOP)
517 return -1;
518
519 /* readlinkat saw a non-symlink, but emacs_open saw a symlink.
520 The former must have been removed and replaced by the latter.
521 Try again. */
522 QUIT;
439 } 523 }
440 else 524
441 return Qnil; 525 return nbytes;
442#endif
443} 526}
444 527
445/* Return 0 if nobody owns the lock file LFNAME or the lock is obsolete, 528/* Return 0 if nobody owns the lock file LFNAME or the lock is obsolete,
@@ -451,83 +534,78 @@ static int
451current_lock_owner (lock_info_type *owner, char *lfname) 534current_lock_owner (lock_info_type *owner, char *lfname)
452{ 535{
453 int ret; 536 int ret;
454 ptrdiff_t len;
455 lock_info_type local_owner; 537 lock_info_type local_owner;
456 intmax_t n; 538 ptrdiff_t lfinfolen;
457 char *at, *dot, *colon; 539 intmax_t pid, boot_time;
458 Lisp_Object lfinfo_object = read_lock_data (lfname); 540 char *at, *dot, *lfinfo_end;
459 char *lfinfo;
460 struct gcpro gcpro1;
461
462 /* If nonexistent lock file, all is well; otherwise, got strange error. */
463 if (NILP (lfinfo_object))
464 return errno == ENOENT ? 0 : -1;
465 lfinfo = SSDATA (lfinfo_object);
466 541
467 /* Even if the caller doesn't want the owner info, we still have to 542 /* Even if the caller doesn't want the owner info, we still have to
468 read it to determine return value. */ 543 read it to determine return value. */
469 if (!owner) 544 if (!owner)
470 owner = &local_owner; 545 owner = &local_owner;
471 546
547 /* If nonexistent lock file, all is well; otherwise, got strange error. */
548 lfinfolen = read_lock_data (lfname, owner->user);
549 if (lfinfolen < 0)
550 return errno == ENOENT ? 0 : -1;
551 if (MAX_LFINFO < lfinfolen)
552 return -1;
553 owner->user[lfinfolen] = 0;
554
472 /* Parse USER@HOST.PID:BOOT_TIME. If can't parse, return -1. */ 555 /* Parse USER@HOST.PID:BOOT_TIME. If can't parse, return -1. */
473 /* The USER is everything before the last @. */ 556 /* The USER is everything before the last @. */
474 at = strrchr (lfinfo, '@'); 557 owner->at = at = memrchr (owner->user, '@', lfinfolen);
475 dot = strrchr (lfinfo, '.'); 558 if (!at)
476 if (!at || !dot) 559 return -1;
560 owner->dot = dot = strrchr (at, '.');
561 if (!dot)
477 return -1; 562 return -1;
478 len = at - lfinfo;
479 GCPRO1 (lfinfo_object);
480 owner->user = xmalloc (len + 1);
481 memcpy (owner->user, lfinfo, len);
482 owner->user[len] = 0;
483 563
484 /* The PID is everything from the last `.' to the `:'. */ 564 /* The PID is everything from the last `.' to the `:'. */
565 if (! c_isdigit (dot[1]))
566 return -1;
485 errno = 0; 567 errno = 0;
486 n = strtoimax (dot + 1, NULL, 10); 568 pid = strtoimax (dot + 1, &owner->colon, 10);
487 owner->pid = 569 if (errno == ERANGE)
488 ((0 <= n && n <= TYPE_MAXIMUM (pid_t) 570 pid = -1;
489 && (TYPE_MAXIMUM (pid_t) < INTMAX_MAX || errno != ERANGE))
490 ? n : 0);
491 571
492 colon = strchr (dot + 1, ':');
493 /* After the `:', if there is one, comes the boot time. */ 572 /* After the `:', if there is one, comes the boot time. */
494 n = 0; 573 switch (owner->colon[0])
495 if (colon)
496 { 574 {
497 errno = 0; 575 case 0:
498 n = strtoimax (colon + 1, NULL, 10); 576 boot_time = 0;
577 lfinfo_end = owner->colon;
578 break;
579
580 case ':':
581 if (! c_isdigit (owner->colon[1]))
582 return -1;
583 boot_time = strtoimax (owner->colon + 1, &lfinfo_end, 10);
584 break;
585
586 default:
587 return -1;
499 } 588 }
500 owner->boot_time = 589 if (lfinfo_end != owner->user + lfinfolen)
501 ((0 <= n && n <= TYPE_MAXIMUM (time_t) 590 return -1;
502 && (TYPE_MAXIMUM (time_t) < INTMAX_MAX || errno != ERANGE))
503 ? n : 0);
504
505 /* The host is everything in between. */
506 len = dot - at - 1;
507 owner->host = xmalloc (len + 1);
508 memcpy (owner->host, at + 1, len);
509 owner->host[len] = 0;
510
511 /* We're done looking at the link info. */
512 UNGCPRO;
513 591
514 /* On current host? */ 592 /* On current host? */
515 if (STRINGP (Fsystem_name ()) 593 if (STRINGP (Vsystem_name)
516 && strcmp (owner->host, SSDATA (Fsystem_name ())) == 0) 594 && dot - (at + 1) == SBYTES (Vsystem_name)
595 && memcmp (at + 1, SSDATA (Vsystem_name), SBYTES (Vsystem_name)) == 0)
517 { 596 {
518 if (owner->pid == getpid ()) 597 if (pid == getpid ())
519 ret = 2; /* We own it. */ 598 ret = 2; /* We own it. */
520 else if (owner->pid > 0 599 else if (0 < pid && pid <= TYPE_MAXIMUM (pid_t)
521 && (kill (owner->pid, 0) >= 0 || errno == EPERM) 600 && (kill (pid, 0) >= 0 || errno == EPERM)
522 && (owner->boot_time == 0 601 && (boot_time == 0
523 || within_one_second (owner->boot_time, get_boot_time ()))) 602 || (boot_time <= TYPE_MAXIMUM (time_t)
603 && within_one_second (boot_time, get_boot_time ()))))
524 ret = 1; /* An existing process on this machine owns it. */ 604 ret = 1; /* An existing process on this machine owns it. */
525 /* The owner process is dead or has a strange pid (<=0), so try to 605 /* The owner process is dead or has a strange pid, so try to
526 zap the lockfile. */ 606 zap the lockfile. */
527 else if (unlink (lfname) < 0)
528 ret = -1;
529 else 607 else
530 ret = 0; 608 return unlink (lfname);
531 } 609 }
532 else 610 else
533 { /* If we wanted to support the check for stale locks on remote machines, 611 { /* If we wanted to support the check for stale locks on remote machines,
@@ -535,11 +613,6 @@ current_lock_owner (lock_info_type *owner, char *lfname)
535 ret = 1; 613 ret = 1;
536 } 614 }
537 615
538 /* Avoid garbage. */
539 if (owner == &local_owner || ret <= 0)
540 {
541 FREE_LOCK_INFO (*owner);
542 }
543 return ret; 616 return ret;
544} 617}
545 618
@@ -551,29 +624,25 @@ current_lock_owner (lock_info_type *owner, char *lfname)
551 Return -1 if cannot lock for any other reason. */ 624 Return -1 if cannot lock for any other reason. */
552 625
553static int 626static int
554lock_if_free (lock_info_type *clasher, register char *lfname) 627lock_if_free (lock_info_type *clasher, char *lfname)
555{ 628{
556 while (! lock_file_1 (lfname, 0)) 629 int err;
630 while ((err = lock_file_1 (lfname, 0)) == EEXIST)
557 { 631 {
558 int locker; 632 switch (current_lock_owner (clasher, lfname))
559 633 {
560 if (errno != EEXIST) 634 case 2:
561 return -1; 635 return 0; /* We ourselves locked it. */
562 636 case 1:
563 locker = current_lock_owner (clasher, lfname); 637 return 1; /* Someone else has it. */
564 if (locker == 2) 638 case -1:
565 { 639 return -1; /* current_lock_owner returned strange error. */
566 FREE_LOCK_INFO (*clasher); 640 }
567 return 0; /* We ourselves locked it. */
568 }
569 else if (locker == 1)
570 return 1; /* Someone else has it. */
571 else if (locker == -1)
572 return -1; /* current_lock_owner returned strange error. */
573 641
574 /* We deleted a stale lock; try again to lock the file. */ 642 /* We deleted a stale lock; try again to lock the file. */
575 } 643 }
576 return 0; 644
645 return err ? -1 : 0;
577} 646}
578 647
579/* lock_file locks file FN, 648/* lock_file locks file FN,
@@ -645,17 +714,16 @@ lock_file (Lisp_Object fn)
645 if (0 < lock_if_free (&lock_info, lfname)) 714 if (0 < lock_if_free (&lock_info, lfname))
646 { 715 {
647 /* Someone else has the lock. Consider breaking it. */ 716 /* Someone else has the lock. Consider breaking it. */
648 ptrdiff_t locker_size = (strlen (lock_info.user) + strlen (lock_info.host)
649 + INT_STRLEN_BOUND (printmax_t)
650 + sizeof "@ (pid )");
651 char *locker = SAFE_ALLOCA (locker_size);
652 printmax_t pid = lock_info.pid;
653 Lisp_Object attack; 717 Lisp_Object attack;
654 esprintf (locker, "%s@%s (pid %"pMd")", 718 char *dot = lock_info.dot;
655 lock_info.user, lock_info.host, pid); 719 ptrdiff_t pidlen = lock_info.colon - (dot + 1);
656 FREE_LOCK_INFO (lock_info); 720 static char const replacement[] = " (pid ";
657 721 int replacementlen = sizeof replacement - 1;
658 attack = call2 (intern ("ask-user-about-lock"), fn, build_string (locker)); 722 memmove (dot + replacementlen, dot + 1, pidlen);
723 strcpy (dot + replacementlen + pidlen, ")");
724 memcpy (dot, replacement, replacementlen);
725 attack = call2 (intern ("ask-user-about-lock"), fn,
726 build_string (lock_info.user));
659 /* Take the lock if the user said so. */ 727 /* Take the lock if the user said so. */
660 if (!NILP (attack)) 728 if (!NILP (attack))
661 lock_file_1 (lfname, 1); 729 lock_file_1 (lfname, 1);
@@ -760,10 +828,7 @@ t if it is locked by you, else a string saying which user has locked it. */)
760 else if (owner == 2) 828 else if (owner == 2)
761 ret = Qt; 829 ret = Qt;
762 else 830 else
763 ret = build_string (locker.user); 831 ret = make_string (locker.user, locker.at - locker.user);
764
765 if (owner > 0)
766 FREE_LOCK_INFO (locker);
767 832
768 SAFE_FREE (); 833 SAFE_FREE ();
769 return ret; 834 return ret;
diff --git a/src/font.c b/src/font.c
index c6707cf31a8..db7bf352c94 100644
--- a/src/font.c
+++ b/src/font.c
@@ -4705,7 +4705,7 @@ the corresponding element is nil. */)
4705 chars = aref_addr (object, XFASTINT (from)); 4705 chars = aref_addr (object, XFASTINT (from));
4706 } 4706 }
4707 4707
4708 vec = Fmake_vector (make_number (len), Qnil); 4708 vec = make_uninit_vector (len);
4709 for (i = 0; i < len; i++) 4709 for (i = 0; i < len; i++)
4710 { 4710 {
4711 Lisp_Object g; 4711 Lisp_Object g;
@@ -4715,7 +4715,10 @@ the corresponding element is nil. */)
4715 4715
4716 code = font->driver->encode_char (font, c); 4716 code = font->driver->encode_char (font, c);
4717 if (code == FONT_INVALID_CODE) 4717 if (code == FONT_INVALID_CODE)
4718 continue; 4718 {
4719 ASET (vec, i, Qnil);
4720 continue;
4721 }
4719 g = LGLYPH_NEW (); 4722 g = LGLYPH_NEW ();
4720 LGLYPH_SET_FROM (g, i); 4723 LGLYPH_SET_FROM (g, i);
4721 LGLYPH_SET_TO (g, i); 4724 LGLYPH_SET_TO (g, i);
@@ -4898,7 +4901,7 @@ build_style_table (const struct table_entry *entry, int nelement)
4898 int i, j; 4901 int i, j;
4899 Lisp_Object table, elt; 4902 Lisp_Object table, elt;
4900 4903
4901 table = Fmake_vector (make_number (nelement), Qnil); 4904 table = make_uninit_vector (nelement);
4902 for (i = 0; i < nelement; i++) 4905 for (i = 0; i < nelement; i++)
4903 { 4906 {
4904 for (j = 0; entry[i].names[j]; j++); 4907 for (j = 0; entry[i].names[j]; j++);
diff --git a/src/sysdep.c b/src/sysdep.c
index 606a5b038ca..c4b937183ca 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -2543,6 +2543,14 @@ list_system_processes (void)
2543 2543
2544#elif defined BSD_SYSTEM 2544#elif defined BSD_SYSTEM
2545 2545
2546/* OpenBSD 4.9 and earlier do not have KERN_PROC. Approximate it with
2547 KERN_PROC2. MirBSD's KERN_PROC seems to be busted. */
2548# if !defined KERN_PROC || defined __MirBSD__
2549# undef KERN_PROC
2550# define KERN_PROC KERN_PROC2
2551# define kinfo_proc kinfo_proc2
2552# endif
2553
2546Lisp_Object 2554Lisp_Object
2547list_system_processes (void) 2555list_system_processes (void)
2548{ 2556{
diff --git a/src/w32.c b/src/w32.c
index f42b83af605..5a6cb894f5f 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -3416,7 +3416,13 @@ sys_open (const char * path, int oflag, int mode)
3416} 3416}
3417 3417
3418int 3418int
3419sys_rename (const char * oldname, const char * newname) 3419fchmod (int fd, mode_t mode)
3420{
3421 return 0;
3422}
3423
3424int
3425sys_rename_replace (const char *oldname, const char *newname, BOOL force)
3420{ 3426{
3421 BOOL result; 3427 BOOL result;
3422 char temp[MAX_PATH]; 3428 char temp[MAX_PATH];
@@ -3472,7 +3478,7 @@ sys_rename (const char * oldname, const char * newname)
3472 return -1; 3478 return -1;
3473 } 3479 }
3474 3480
3475 /* Emulate Unix behavior - newname is deleted if it already exists 3481 /* If FORCE, emulate Unix behavior - newname is deleted if it already exists
3476 (at least if it is a file; don't do this for directories). 3482 (at least if it is a file; don't do this for directories).
3477 3483
3478 Since we mustn't do this if we are just changing the case of the 3484 Since we mustn't do this if we are just changing the case of the
@@ -3490,7 +3496,7 @@ sys_rename (const char * oldname, const char * newname)
3490 3496
3491 result = rename (temp, newname); 3497 result = rename (temp, newname);
3492 3498
3493 if (result < 0) 3499 if (result < 0 && force)
3494 { 3500 {
3495 DWORD w32err = GetLastError (); 3501 DWORD w32err = GetLastError ();
3496 3502
@@ -3530,6 +3536,12 @@ sys_rename (const char * oldname, const char * newname)
3530} 3536}
3531 3537
3532int 3538int
3539sys_rename (char const *old, char const *new)
3540{
3541 return sys_rename_replace (old, new, TRUE);
3542}
3543
3544int
3533sys_rmdir (const char * path) 3545sys_rmdir (const char * path)
3534{ 3546{
3535 return _rmdir (map_w32_filename (path, NULL)); 3547 return _rmdir (map_w32_filename (path, NULL));
diff --git a/src/w32.h b/src/w32.h
index 6bf165f52ba..17da0778db1 100644
--- a/src/w32.h
+++ b/src/w32.h
@@ -186,6 +186,8 @@ extern BOOL init_winsock (int load_now);
186extern void srandom (int); 186extern void srandom (int);
187extern int random (void); 187extern int random (void);
188 188
189extern int fchmod (int, mode_t);
190extern int sys_rename_replace (char const *, char const *, BOOL);
189extern int sys_pipe (int *); 191extern int sys_pipe (int *);
190 192
191extern void set_process_dir (char *); 193extern void set_process_dir (char *);
diff --git a/src/xgselect.c b/src/xgselect.c
index db7dce10ad0..2c8e9671abb 100644
--- a/src/xgselect.c
+++ b/src/xgselect.c
@@ -15,7 +15,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details. 15GNU General Public License for more details.
16 16
17You should have received a copy of the GNU General Public License 17You should have received a copy of the GNU General Public License
18along with GNU Emacs. If not, see <http§://www.gnu.org/licenses/>. */ 18along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
19 19
20#include <config.h> 20#include <config.h>
21 21
diff --git a/src/xselect.c b/src/xselect.c
index decea696bfd..5b90d7def22 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -1903,7 +1903,7 @@ clean_local_selection_data (Lisp_Object obj)
1903 Lisp_Object copy; 1903 Lisp_Object copy;
1904 if (size == 1) 1904 if (size == 1)
1905 return clean_local_selection_data (AREF (obj, 0)); 1905 return clean_local_selection_data (AREF (obj, 0));
1906 copy = Fmake_vector (make_number (size), Qnil); 1906 copy = make_uninit_vector (size);
1907 for (i = 0; i < size; i++) 1907 for (i = 0; i < size; i++)
1908 ASET (copy, i, clean_local_selection_data (AREF (obj, i))); 1908 ASET (copy, i, clean_local_selection_data (AREF (obj, i)));
1909 return copy; 1909 return copy;
diff --git a/test/ChangeLog b/test/ChangeLog
index fbd27021b5c..43648ad1bb1 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,7 @@
12013-03-05 Paul Eggert <eggert@cs.ucla.edu>
2
3 * indent/octave.m: Fix encoding error in comment. Add coding tag.
4
12013-02-28 Fabián Ezequiel Gallina <fgallina@cuca> 52013-02-28 Fabián Ezequiel Gallina <fgallina@cuca>
2 6
3 * automated/python-tests.el (python-tests-with-temp-buffer): Doc fix. 7 * automated/python-tests.el (python-tests-with-temp-buffer): Doc fix.
diff --git a/test/indent/octave.m b/test/indent/octave.m
index 4c2fa6c8435..bc7784f1ba2 100644
--- a/test/indent/octave.m
+++ b/test/indent/octave.m
@@ -1,4 +1,4 @@
1## -*- octave -*- 1## -*- mode: octave; coding: utf-8 -*-
2 2
3function res = tcomp (fn) 3function res = tcomp (fn)
4 %% res = tcomp (fn) 4 %% res = tcomp (fn)
@@ -35,7 +35,7 @@ function res = tcomp (fn)
35 35
36endfunction 36endfunction
37 37
38## Copyright (C) 2005, 2006, 2007, 2008, 2009 Sren Hauberg 38## Copyright (C) 2005, 2006, 2007, 2008, 2009 Søren Hauberg
39## 39##
40## This file is part of Octave. 40## This file is part of Octave.
41## 41##