annotate lisp/international/ogonek.el @ 110410:f2e111723c3a

Merge changes made in Gnus trunk. Reimplement nnimap, and do tweaks to the rest of the code to support that. * gnus-int.el (gnus-finish-retrieve-group-infos) (gnus-retrieve-group-data-early): New functions. * gnus-range.el (gnus-range-nconcat): New function. * gnus-start.el (gnus-get-unread-articles): Support early retrieval of data. (gnus-read-active-for-groups): Support finishing the early retrieval of data. * gnus-sum.el (gnus-summary-move-article): Pass the move-to group name if the move is internal, so that nnimap can do fast internal moves. * gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for nnimap usage. * nnimap.el: Rewritten. * nnmail.el (nnmail-inhibit-default-split-group): New internal variable to allow the mail splitting to not return a default group. This is useful for nnimap, which will leave unmatched mail in the inbox. * utf7.el (utf7-encode): Autoload. Implement shell connection. * nnimap.el (nnimap-open-shell-stream): New function. (nnimap-open-connection): Use it. Get the number of lines by using BODYSTRUCTURE. (nnimap-transform-headers): Get the number of lines in each message. (nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the number of lines. Not all servers return UIDNEXT. Work past this problem. Remove junk from end of file. Fix typo in "bogus" section. Make capabilties be case-insensitive. Require cl when compiling. Don't bug out if the LIST command doesn't have any parameters. 2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change) * nnimap.el (nnimap-get-groups): Don't bug out if the LIST command doesn't have any parameters. (mm-text-html-renderer): Document gnus-article-html. 2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix) * mm-decode.el (mm-text-html-renderer): Document gnus-article-html. * dgnushack.el: Define netrc-credentials. If the user doesn't have a /etc/services, supply some sensible port defaults. Have `unseen-or-unread' select an unread unseen article first. (nntp-open-server): Return whether the open was successful or not. Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ). Save result so that it doesn't say "failed" all the time. Add ~/.authinfo to the default, since that's probably most useful for users. Don't use the "finish" method when we're reading from the agent. Add some more nnimap-relevant agent stuff to nnagent.el. * nnimap.el (nnimap-with-process-buffer): Removed. Revert one line that was changed by mistake in the last checkin. (nnimap-open-connection): Don't error out when we can't make a connection nnimap-related changes to avoid bugging out if we can't contact a server. * gnus-start.el (gnus-get-unread-articles): Don't try to scan groups from methods that are denied. * nnimap.el (nnimap-possibly-change-group): Return nil if we can't log in. (nnimap-finish-retrieve-group-infos): Make sure we're not waiting for nothing. * gnus-sum.el (gnus-select-newsgroup): Indent.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sat, 18 Sep 2010 10:02:19 +0000
parents 1d1d5d9bd884
children 7c4da622f181 376148b31b5e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
21701
bb90823eec2c Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 21646
diff changeset
1 ;;; ogonek.el --- change the encoding of Polish diacritics
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2
101078
5f4e85fd7c0a Comments (minor fixes of some header conventions).
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
3 ;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 101078
diff changeset
4 ;; 2008, 2009, 2010 Free Software Foundation, Inc.
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5
101078
5f4e85fd7c0a Comments (minor fixes of some header conventions).
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
6 ;; Author: W{\l}odek Bzyl
5f4e85fd7c0a Comments (minor fixes of some header conventions).
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
7 ;; Ryszard Kubiak
5f4e85fd7c0a Comments (minor fixes of some header conventions).
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
8 ;; Maintainer: Ryszard Kubiak <rysiek@ipipan.gda.pl>
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9 ;; Keywords: i18n
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11 ;; This file is part of GNU Emacs.
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12
94664
889bc336b89b Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
13 ;; GNU Emacs is free software: you can redistribute it and/or modify
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14 ;; it under the terms of the GNU General Public License as published by
94664
889bc336b89b Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
15 ;; the Free Software Foundation, either version 3 of the License, or
889bc336b89b Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
16 ;; (at your option) any later version.
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
18 ;; GNU Emacs is distributed in the hope that it will be useful,
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21 ;; GNU General Public License for more details.
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
23 ;; You should have received a copy of the GNU General Public License
94664
889bc336b89b Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
24 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
25
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26 ;;; Commentary:
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
27
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
28 ;; To use this library load it using
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
29 ;; M-x load-library [enter] ogonek
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
30 ;; Then, you may get a short info by calling one of
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
31 ;; M-x ogonek-jak -- in Polish
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
32 ;; M-x ogonek-how -- in English "
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
33
21646
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
34 ;;; Code:
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
35
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
36 (defgroup ogonek nil
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
37 "Change the encoding of Polish diacritic characters."
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
38 :prefix "ogonek-"
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
39 :group 'i18n)
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
40
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
41 (defconst ogonek-name-encoding-alist
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
42 '(("ascii" . (?A ?C ?E ?L ?N ?O ?S ?Z ?Z
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
43 ?a ?c ?e ?l ?n ?o ?s ?z ?z))
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
44 ("iso8859-2" . (161 198 202 163 209 211 166 172 175
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
45 177 230 234 179 241 243 182 188 191))
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
46 ("mazovia" . (143 149 144 156 165 163 152 160 161
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
47 134 141 145 146 164 162 158 166 167))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
48 ("windows-EE" . (165 198 202 163 209 211 140 143 175
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
49 185 230 234 179 241 243 156 159 191))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
50 ("windows-PL" . (165 198 202 163 209 211 140 143 175
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
51 185 230 234 179 241 243 156 159 191))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
52 ("latin-2" . (164 143 168 157 227 224 151 141 189
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
53 165 134 169 136 228 162 152 171 190))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
54 ("CP852" . (164 143 168 157 227 224 151 141 189
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
55 165 134 169 136 228 162 152 171 190))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
56 ("MeX" . (129 130 134 138 139 211 145 153 155
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
57 161 162 166 170 171 243 177 185 187))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
58 ("CorelDraw" . (197 242 201 163 209 211 255 225 237
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
59 229 236 230 198 241 243 165 170 186))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
60 ("Amiga" . (194 202 203 206 207 211 212 218 219
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
61 226 234 235 238 239 243 244 250 251))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
62 ("Mac" . (132 140 162 252 193 238 229 143 251
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
63 136 141 171 184 196 151 230 144 253))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
64 )
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
65 "The constant `ogonek-name-encoding-alist' is a list of (NAME.LIST) pairs.
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
66 Each LIST contains codes for 18 Polish diacritic characters. The codes
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
67 are given in the following order:
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
68 Aogonek Cacute Eogonek Lslash Nacute Oacute Sacute Zacute Zdotaccent
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
69 aogonek cacute eogonek lslash nacute oacute sacute zacute zdotaccent.")
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
70
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
71 ;; ------ A Little Info in Polish ---------------
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
72
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
73 (defconst ogonek-informacja
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
74 " FUNKCJE INTERAKCYJNE UDOST/EPNIANE PRZEZ BIBLIOTEK/E `ogonek'.
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
75
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
76 Je/sli czytasz ten tekst, to albo przegl/adasz plik /xr/od/lowy
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
77 biblioteki `ogonek.el', albo wywo/la/le/s polecenie `ogonek-jak'.
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
78 W drugim przypadku mo/zesz usun/a/c tekst z ekranu, stosuj/ac
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
79 polecenie `M-x kill-buffer'.
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
80
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
81 Niniejsza biblioteka dostarcza funkcji do zmiany kodowania polskich
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
82 znak/ow diakrytycznych. Funkcje te mo/zna pogrupowa/c nast/epuj/aco.
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
83
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
84 1. `ogonek-recode-region' oraz `ogonek-recode-buffer'
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
85 przekodowuj/a zaznaczony fragment wzgl/ednie ca/ly buffor.
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
86 Po wywo/laniu interakcyjnym funkcji zadawane s/a
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
87 pytania o parametry przekodowania: nazw/e kodowania
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
88 w tek/scie /xr/od/lowym i nazw/e kodowania docelowego.
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
89 Poni/zsze przyk/lady powinny wyja/sni/c, jakich parametr/ow
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
90 oczekuj/a wymienione funkcje:
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
91
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
92 (ogonek-recode-region (poczatek-fragmentu) (koniec-fragmentu)
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
93 nazwa-kodowania-w-tekscie-zrodlowym nazwa-kodowania-docelowa)
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
94 (ogonek-recode-buffer
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
95 nazwa-kodowania-w-tekscie-zrodlowym nazwa-kodowania-docelowa)
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
96
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
97 2. `ogonek-prefixify-region' oraz `ogonek-prefixify-buffer'
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
98 s/lu/z/a do wprowadzania notacji prefiksowej.
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
99
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
100 (ogonek-prefixify-region (poczatek-fragmentu) (koniec-fragmentu)
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
101 nazwa-kodowania-w-tekscie-zrodlowym znak-prefiksu)
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
102 (ogonek-prefixify-buffer
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
103 nazwa-kodowania-w-tekscie-zrodlowym znak-prefiksu)
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
104
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
105 3. `ogonek-deprefixify-region' oraz `ogonek-deprefixify-buffer'
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
106 s/lu/z/a do usuwania notacji prefiksowej.
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
107
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
108 (ogonek-deprefixify-region (poczatek-fragmentu) (koniec-fragmentu)
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
109 znak-prefiksu nazwa-kodowania-docelowa)
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
110 (ogonek-prefixify-buffer
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
111 znak-prefiksu nazwa-kodowania-docelowa)
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
112
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
113 U/zycie klawisza TAB w trybie interakcyjnym powoduje wy/swietlenie
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
114 listy dopuszczalnych nazw kod/ow, pami/etanych w sta/lej
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
115 `ogonek-name-encoding-alist'.
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
116
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
117 Funkcje biblioteki odwo/luj/a si/e do pi/eciu zmiennych, kt/ore
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
118 przechowuj/a podpowiedzi do zadawanych pyta/n. Nazwy tych zmiennych
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
119 oraz ich warto/sci domy/slne s/a nast/epuj/ace:
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
120
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
121 ogonek-from-encoding iso8859-2
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
122 ogonek-to-encoding ascii
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
123 ogonek-prefix-char /
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
124 ogonek-prefix-from-encoding iso8859-2
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
125 ogonek-prefix-to-encoding iso8859-2
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
126
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
127 Powy/zsze warto/sci domy/slne mo/zna zmieni/c przez umieszczenie w pliku
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
128 konfiguracyjnym `~/.emacs' odpowiednich przypisa/n, na przyk/lad:
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
129
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
130 (setq ogonek-prefix-char ?/)
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
131 (setq ogonek-prefix-to-encoding \"iso8859-2\")
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
132
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
133 Zamiast wczytywania ca/lej biblioteki `ogonek.el' mo/zna w pliku
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
134 `~/.emacs' za/z/ada/c wczytania wybranych funkcji, na dodatek dopiero
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
135 w chwili ich rzeczywistego u/zycia:
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
136
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
137 (autoload 'ogonek-jak \"ogonek\")
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
138 (autoload 'ogonek-recode-region \"ogonek\")
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
139 (autoload 'ogonek-prefixify-region \"ogonek\")
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
140 (autoload 'ogonek-deprefixify-region \"ogonek\")
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
141
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
142 Cz/esto wyst/epuj/ace kombinacje wywo/la/n funkcji mo/zna dla wygody
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
143 skr/oci/c i przypisa/c klawiszom. Oto praktyczne przyk/lady:
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
144
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
145 (defun deprefixify-iso8859-2-region (start end)
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
146 (interactive \"*r\")
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
147 (ogonek-deprefixify-region start end ?/ \"iso8859-2\"))
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
148 (global-set-key \"\\C-cd\" 'deprefixify-iso8859-2-region) ; ctrl-c d
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
149
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
150 (defun mazovia-to-iso8859-2 (start end)
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
151 (interactive \"*r\")
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
152 (ogonek-recode-region start end \"mazovia\" \"iso8859-2\"))
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
153 (global-set-key \"\\C-cr\" 'mazovia-to-iso8859-2) ; ctrl-c r
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
154
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
155 (defun prefixify-iso8859-2-region (start end)
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
156 (interactive \"*r\")
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
157 (ogonek-prefixify-region start end \"iso8859-2\" ?/))
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
158 (global-set-key \"\\C-cp\" 'prefixify-iso8859-2-region) ; ctrl-c p
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
159
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
160 Ka/zd/a operacj/e przekodowania mo/zna w ca/lo/sci odwo/la/c
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
161 przez wykonanie polecenia `undo'.")
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
162
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
163 (defun ogonek-jak ()
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
164 "Display `ogonek-informacja' in an auxiliary *ogonek-jak* buffer."
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
165 (interactive)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
166 (set-buffer (get-buffer-create " *ogonek-jak*"))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
167 (insert ogonek-informacja)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
168 (switch-to-buffer " *ogonek-jak*")
62314
8ef4dac936f9 (ogonek-jak, ogonek-how): Don't use beginning-of-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 62274
diff changeset
169 (goto-char (point-min)))
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
170
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
171 ;; ------ A Little Info in English --------
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
172
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
173 (defconst ogonek-information
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
174 " THE INTERACTIVE FUNCTIONS PROVIDED BY THE LIBRARY `ogonek'.
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
175
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
176 If you read this text then you are either looking at the library's
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
177 source text or you have called the `ogonek-how' command. In the
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
178 latter case you may remove this text using `M-x kill-buffer'.
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
179
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
180 The library provides functions for changing the encoding of Polish
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
181 diacritic characters, the ones with an `ogonek' below or above them.
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
182 The functions come in the following groups.
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
183
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
184 1. `ogonek-recode-region' and `ogonek-recode-buffer' to change
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
185 between one-character encodings, such as `iso-8859-2', `mazovia',
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
186 plain `ascii' or `TeX'. As the names suggest you may recode
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
187 either the entire current buffer or just a marked region
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
188 in it. You may use the functions interactively as commands.
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
189 Once you call a command you will be asked about the code
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
190 currently used in your text and the target encoding, the one
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
191 you want to get. The following example shows a non-interactive
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
192 use of the functions in a program. This also illustrates what
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
193 type of parameters the functions expect to be called with:
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
194
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
195 (ogonek-recode-region
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
196 (region-beginning) (region-end) from-code-name to-code-name)
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
197 (ogonek-recode-buffer from-code-name to-code-name)
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
198
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
199 2. `ogonek-prefixify-region' and `ogonek-prefixify-buffer' for
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
200 introducing prefix notation:
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
201
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
202 (ogonek-prefixify-region
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
203 (region-beginning) (region-end) from-code-name prefix-char)
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
204 (ogonek-prefixify-buffer from-code-name prefix-char)
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
205
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
206 3. `ogonek-deprefixify-region' and `ogonek-deprefixify-buffer' for
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
207 removing prefix notation:
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
208
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
209 (ogonek-deprefixify-region
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
210 (region-beginning) (region-end) prefix-char to-code-name)
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
211 (ogonek-prefixify-buffer prefix-char to-code-name)
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
212
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
213 The TAB character used in interactive mode makes `emacs'
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
214 display the list of encodings recognized by the library. The list
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
215 is stored in the constant `ogonek-name-encoding-alist'.
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
216
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
217 The `ogonek' functions refer to five variables in which the suggested
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
218 answers to dialogue questions are stored. The variables and their
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
219 default values are:
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
220
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
221 ogonek-from-encoding iso8859-2
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
222 ogonek-to-encoding ascii
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
223 ogonek-prefix-char /
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
224 ogonek-prefix-from-encoding iso8859-2
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
225 ogonek-prefix-to-encoding iso8859-2
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
226
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
227 The above default values can be changed by placing appropriate settings
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
228 in the '~/.emacs' file:
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
229
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
230 (setq ogonek-prefix-char ?/)
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
231 (setq ogonek-prefix-to-encoding \"iso8859-2\")
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
232
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
233 Instead of loading the whole library `ogonek' it may be better to
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
234 autoload the needed functions, for example by placing in `~/.emacs':
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
235
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
236 (autoload 'ogonek-how \"ogonek\")
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
237 (autoload 'ogonek-recode-region \"ogonek\")
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
238 (autoload 'ogonek-prefixify-region \"ogonek\")
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
239 (autoload 'ogonek-deprefixify-region \"ogonek\")
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
240
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
241 The most frequent function calls can be abbreviated and assigned to
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
242 keyboard keys. Here are a few practical examples:
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
243
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
244 (defun deprefixify-iso8859-2-region (start end)
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
245 (interactive \"*r\")
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
246 (ogonek-deprefixify-region start end ?/ \"iso8859-2\"))
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
247 (global-set-key \"\\C-cd\" 'deprefixify-iso8859-2-region) ; ctrl-c d
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
248
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
249 (defun mazovia-to-iso8859-2 (start end)
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
250 (interactive \"*r\")
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
251 (ogonek-recode-region start end \"mazovia\" \"iso8859-2\"))
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
252 (global-set-key \"\\C-cr\" 'mazovia-to-iso8859-2) ; ctrl-c r
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
253
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
254 (defun prefixify-iso8859-2-region (start end)
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
255 (interactive \"*r\")
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
256 (ogonek-prefixify-region start end \"iso8859-2\" ?/))
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
257 (global-set-key \"\\C-cp\" 'prefixify-iso8859-2-region) ; ctrl-c p
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
258
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
259 Each recoding operation can be called off using the `undo' command.")
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
260
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
261 (defun ogonek-how ()
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
262 "Display `ogonek-information' in an auxiliary *recode-how* buffer."
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
263 (interactive "*")
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
264 (set-buffer (get-buffer-create " *ogonek-how*"))
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
265 (insert ogonek-information)
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
266 (switch-to-buffer " *ogonek-how*")
62314
8ef4dac936f9 (ogonek-jak, ogonek-how): Don't use beginning-of-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 62274
diff changeset
267 (goto-char (point-min)))
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
268
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
269 ;; ---- Variables keeping the suggested answers to dialogue questions -----
21646
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
270 (defvar ogonek-encoding-choices
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
271 (cons 'choice
21646
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
272 (mapcar (lambda (x) (list 'const (car x)))
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
273 ogonek-name-encoding-alist))
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
274 "List of ogonek encodings. Used only for customization.")
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
275 (defcustom ogonek-from-encoding "iso8859-2"
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
276 "*Encoding in the source file of recoding."
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
277 :type ogonek-encoding-choices
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
278 :group 'ogonek)
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
279 (defcustom ogonek-to-encoding "ascii"
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
280 "*Encoding in the target file of recoding."
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
281 :type ogonek-encoding-choices
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
282 :group 'ogonek)
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
283 (defcustom ogonek-prefix-char ?/
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
284 "*Prefix character for prefix encodings."
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
285 :type 'character
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
286 :group 'ogonek)
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
287 (defcustom ogonek-prefix-from-encoding "iso8859-2"
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
288 "*Encoding in the source file subject to prefixifation."
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
289 :type ogonek-encoding-choices
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
290 :group 'ogonek)
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
291 (defcustom ogonek-prefix-to-encoding "iso8859-2"
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
292 "*Encoding in the target file subject to deprefixifation."
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
293 :type ogonek-encoding-choices
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
294 :group 'ogonek)
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
295
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
296 ;; ---- Auxiliary functions for reading parameters in interactive mode ----
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
297
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
298 (defun ogonek-read-encoding (prompt default-name-var)
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
299 "Read encoding name with completion based on `ogonek-name-encoding-alist'.
42686
64274328203b Fix typo.
Pavel Janík <Pavel@Janik.cz>
parents: 38436
diff changeset
300 Store the name in the parameter-variable DEFAULT-NAME-VAR.
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
301 PROMPT is a string to be shown when the user is asked for a name."
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
302 (let ((encoding
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
303 (completing-read
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
304 (format "%s (default %s): " prompt (eval default-name-var))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
305 ogonek-name-encoding-alist nil t)))
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
306 ;; change the default name to the one just read
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
307 (set default-name-var
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
308 (if (string= encoding "") (eval default-name-var) encoding))
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
309 ;; return the new default as the name you read
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
310 (eval default-name-var)))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
311
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
312 (defun ogonek-read-prefix (prompt default-prefix-var)
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
313 "Read a prefix character for prefix notation.
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
314 The result is stored in the variable DEFAULT-PREFIX-VAR.
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
315 PROMPT is a string to be shown when the user is asked for a new prefix."
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
316 (let ((prefix-string
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
317 (read-string
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
318 (format "%s (default %s): " prompt
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
319 (char-to-string (eval default-prefix-var))))))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
320 (if (> (length prefix-string) 1)
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
321 (error "! Only one character expected")
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
322 ;; set the default prefix character to the one just read
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
323 (set default-prefix-var
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
324 (if (string= prefix-string "")
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
325 (eval default-prefix-var)
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
326 (string-to-char prefix-string)))
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
327 ;; the new default prefix is the function's result:
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
328 (eval default-prefix-var))))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
329
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
330 (defun ogonek-lookup-encoding (encoding)
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
331 "Pick up an association for ENCODING in `ogonek-name-encoding-alist'.
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
332 Before returning a result test whether the string ENCODING is in
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
333 the list `ogonek-name-encoding-alist'"
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
334 (let ((code-list (assoc encoding ogonek-name-encoding-alist)))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
335 (if (null code-list)
38436
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 21701
diff changeset
336 (error "! Name `%s' not known in `ogonek-name-encoding-alist'"
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
337 encoding)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
338 (cdr code-list))))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
339
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
340 ;; ---- An auxiliary function for zipping two lists of equal length ----
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
341
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
342 (defun ogonek-zip-lists (xs ys)
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
343 "Build a list of pairs from lists XS and YS of the same length."
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
344 (let ((pairs nil))
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
345 (while xs
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
346 (setq pairs (cons (cons (car xs) (car ys)) pairs))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
347 (setq xs (cdr xs))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
348 (setq ys (cdr ys)))
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
349 ;; `pairs' are the function's result
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
350 pairs))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
351
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
352 ;; ---- An auxiliary function building a one-to-one recoding table -----
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
353
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
354 (defun ogonek-build-table (recoding-pairs)
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
355 "Build a table required by Emacs's `translate-region' function.
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
356 RECODING-PAIRS is a list of character pairs for which recoding
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
357 is not an identity.
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
358 By using the built-in `translate-region' function
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
359 we gain better performance compared to converting characters
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
360 by a hand-written routine as it is done for prefix encodings."
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
361 (let ((table (make-string 256 0))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
362 (i 0))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
363 (while (< i 256)
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
364 (aset table i i)
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
365 (setq i (1+ i)))
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
366 ;; make changes in `table' according to `recoding-pairs'
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
367 (while recoding-pairs
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
368 (aset table (car (car recoding-pairs)) (cdr (car recoding-pairs)))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
369 (setq recoding-pairs (cdr recoding-pairs)))
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
370 ;; return the table just built
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
371 table))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
372
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
373 ;; ---- Commands for one-to-one recoding -------------------------------
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
374
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
375 (defun ogonek-recode-region (start end from-encoding to-encoding)
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
376 "Recode text in a marked region in one-to-one manner.
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
377 When called interactively ask the user for the names of the FROM-
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
378 and TO- encodings."
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
379 (interactive (progn (barf-if-buffer-read-only)
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
380 (list
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
381 (region-beginning)
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
382 (region-end)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
383 (ogonek-read-encoding "From code" 'ogonek-from-encoding)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
384 (ogonek-read-encoding "To code" 'ogonek-to-encoding))))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
385 (save-excursion
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
386 (translate-region
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
387 start end
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
388 (ogonek-build-table
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
389 (ogonek-zip-lists
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
390 (ogonek-lookup-encoding from-encoding)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
391 (ogonek-lookup-encoding to-encoding))))))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
392
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
393 (defun ogonek-recode-buffer (from-encoding to-encoding)
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
394 "Call `ogonek-recode-region' on the entire buffer.
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
395 When called interactively ask the user for the names of the FROM-
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
396 and TO- encodings."
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
397 (interactive (progn (barf-if-buffer-read-only)
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
398 (list
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
399 (ogonek-read-encoding "From code" 'ogonek-from-encoding)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
400 (ogonek-read-encoding "To code" 'ogonek-to-encoding))))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
401 (ogonek-recode-region
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
402 (point-min) (point-max) from-encoding to-encoding))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
403
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
404 ;; ---- Recoding with prefix notation -------------------------------
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
405
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
406 (defconst ogonek-prefix-code '(?A ?C ?E ?L ?N ?O ?S ?X ?Z
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
407 ?a ?c ?e ?l ?n ?o ?s ?x ?z))
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
408
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
409 (defun ogonek-prefixify-region (start end from-encoding prefix-char)
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
410 "In a region, replace FROM-encoded Polish characters with PREFIX pairs.
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
411 A PREFIX pair generated consists of PREFIX-CHAR and the respective
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
412 character listed in the `ogonek-prefix-code' constant.
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
413 PREFIX-CHAR itself gets doubled."
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
414 (interactive (progn (barf-if-buffer-read-only)
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
415 (list
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
416 (region-beginning)
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
417 (region-end)
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
418 (ogonek-read-encoding "From code" 'ogonek-prefix-from-encoding)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
419 (ogonek-read-prefix "Prefix character" 'ogonek-prefix-char))))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
420 (let*
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
421 ((from-code (ogonek-lookup-encoding from-encoding))
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
422 (to-code ogonek-prefix-code)
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
423 (recoding-pairs ; `ogonek-prefix-char' added for doubling
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
424 (ogonek-zip-lists
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
425 (cons prefix-char from-code)
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
426 (cons prefix-char to-code))))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
427 (save-excursion
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
428 (goto-char start)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
429 (while (< (point) end)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
430 (let ((pair (assoc (following-char) recoding-pairs)))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
431 (if (null pair)
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
432 ;; not a Polish character -- skip it
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
433 (forward-char 1)
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
434 ;; Polish character -- insert a prefix pair instead
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
435 (delete-char 1)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
436 (insert ogonek-prefix-char)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
437 (insert (cdr pair))
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
438 ;; the region is now one character longer
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
439 (setq end (1+ end))))))))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
440
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
441 (defun ogonek-prefixify-buffer (from-encoding prefix-char)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
442 "Call `ogonek-prefixify-region' on the entire buffer."
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
443 (interactive (progn (barf-if-buffer-read-only)
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
444 (list
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
445 (ogonek-read-encoding "From code" 'ogonek-prefix-from-encoding)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
446 (ogonek-read-prefix "Prefix character" 'ogonek-prefix-char))))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
447 (ogonek-prefixify-region
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
448 (point-min) (point-max) from-encoding prefix-char))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
449
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
450 (defun ogonek-deprefixify-region (start end prefix-char to-encoding)
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
451 "In a region, replace PREFIX pairs with their corresponding TO-encodings.
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
452 PREFIX-CHAR followed by a Polish character from the `ogonek-prefix-code'
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
453 list is replaced with the corresponding TO-encoded character. A doubled
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
454 PREFIX-CHAR gets replaced with a single one. A combination of PREFIX-CHAR
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
455 followed by a non-Polish character, that is one not listed in the
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
456 `ogonek-prefix-code' constant, is left unchanged."
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
457 (interactive (progn (barf-if-buffer-read-only)
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
458 (list (region-beginning)
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
459 (region-end)
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
460 (ogonek-read-prefix
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
461 "Prefix character" 'ogonek-prefix-char)
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
462 (ogonek-read-encoding
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
463 "To code" 'ogonek-prefix-to-encoding))))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
464 (let*
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
465 ((from-code ogonek-prefix-code)
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
466 (to-code (ogonek-lookup-encoding to-encoding))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
467 (recoding-pairs
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
468 (ogonek-zip-lists
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
469 (cons prefix-char from-code)
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
470 (cons prefix-char to-code))))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
471 (save-excursion
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
472 (goto-char start)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
473 (while (< (point) end)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
474 (forward-char 1)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
475 (if (or (not (= (preceding-char) prefix-char)) (= (point) end))
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
476 ;; non-prefix character or the end-of-region -- do nothing
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
477 ()
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
478 ;; now, we can check the next character
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
479 (let ((pair (assoc (following-char) recoding-pairs)))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
480 (if (null pair)
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
481 ;; `following-char' is not a Polish character nor it is
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
482 ;; `prefix-char' since the one is among `recoding-pairs'
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
483 (forward-char 1)
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
484 ;; else prefix followed by a Polish character has been found
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
485 ;; replace it by the corresponding Polish character
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
486 (backward-char 1)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
487 (delete-char 2)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
488 (insert (cdr pair))
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
489 ;; the region got shorter by one character
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
490 (setq end (1- end)))))))))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
491
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
492 (defun ogonek-deprefixify-buffer (prefix-char to-encoding)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
493 "Call `ogonek-deprefixify-region' on the entire buffer."
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
494 (interactive (progn (barf-if-buffer-read-only)
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
495 (list
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
496 (ogonek-read-prefix "Prefix character" 'ogonek-prefix-char)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
497 (ogonek-read-encoding "To code" 'ogonek-prefix-to-encoding))))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 42686
diff changeset
498 (ogonek-deprefixify-region
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
499 (point-min) (point-max) prefix-char to-encoding))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
500
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
501 (provide 'ogonek)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
502
93975
1e3a407766b9 Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 79709
diff changeset
503 ;; arch-tag: 672d7744-28ac-412b-965e-06a27e50d1d7
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
504 ;;; ogonek.el ends here