annotate lisp/international/ogonek.el @ 41109:0bcf2d7f0112

(values, values-list, multiple-value-list, multiple-value-apply, nth-value): Use defsubst rather than defalias, to get better doc strings.
author Richard M. Stallman <rms@gnu.org>
date Thu, 15 Nov 2001 23:57:43 +0000
parents b174db545cfd
children 64274328203b
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
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3 ;; Copyright (C) 1997 Free Software Foundation, Inc.
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5 ;; Author: W{\l}odek Bzyl, Ryszard Kubiak
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6 ;; Maintainer: rysiek@ipipan.gda.pl (Ryszard Kubiak)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7 ;; Keywords: i18n
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9 ;; This file is part of GNU Emacs.
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 ;; GNU Emacs is free software; you can redistribute it and/or modify
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12 ;; it under the terms of the GNU General Public License as published by
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13 ;; the Free Software Foundation; either version 2, or (at your option)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14 ;; any later version.
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16 ;; GNU Emacs is distributed in the hope that it will be useful,
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
19 ;; GNU General Public License for more details.
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21 ;; You should have received a copy of the GNU General Public License
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22 ;; along with GNU Emacs; see the file COPYING. If not, write to the
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
23 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
24 ;; Boston, MA 02111-1307, USA.
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
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
31 ;; M-x ogonek-jak -- in Polish
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
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
42 '(("ascii" . (?A ?C ?E ?L ?N ?O ?S ?Z ?Z
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
43 ?a ?c ?e ?l ?n ?o ?s ?z ?z))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
44 ("iso8859-2" . (161 198 202 163 209 211 166 172 175
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
45 177 230 234 179 241 243 182 188 191))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
46 ("mazovia" . (143 149 144 156 165 163 152 160 161
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
47 134 141 145 146 164 162 158 166 167))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
48 ("windows-EE" . (165 198 202 163 209 211 140 143 175
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
49 185 230 234 179 241 243 156 159 191))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
50 ("windows-PL" . (165 198 202 163 209 211 140 143 175
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
51 185 230 234 179 241 243 156 159 191))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
52 ("latin-2" . (164 143 168 157 227 224 151 141 189
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
53 165 134 169 136 228 162 152 171 190))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
54 ("CP852" . (164 143 168 157 227 224 151 141 189
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
55 165 134 169 136 228 162 152 171 190))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
56 ("MeX" . (129 130 134 138 139 211 145 153 155
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
57 161 162 166 170 171 243 177 185 187))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
58 ("CorelDraw" . (197 242 201 163 209 211 255 225 237
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
59 229 236 230 198 241 243 165 170 186))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
60 ("Amiga" . (194 202 203 206 207 211 212 218 219
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
61 226 234 235 238 239 243 244 250 251))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
62 ("Mac" . (132 140 162 252 193 238 229 143 251
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
63 136 141 171 184 196 151 230 144 253))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
64 )
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
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
77 biblioteki `ogonek.el', albo wywo/la/le/s polecenie `ogonek-jak'.
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
78 W drugim przypadku mo/zesz usun/a/c tekst z ekranu, stosuj/ac
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
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
84 1. `ogonek-recode-region' oraz `ogonek-recode-buffer'
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
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
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
88 w tek/scie /xr/od/lowym i nazw/e kodowania docelowego.
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
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)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
94 (ogonek-recode-buffer
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
95 nazwa-kodowania-w-tekscie-zrodlowym nazwa-kodowania-docelowa)
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)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
102 (ogonek-prefixify-buffer
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
103 nazwa-kodowania-w-tekscie-zrodlowym znak-prefiksu)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
104
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
105 3. `ogonek-deprefixify-region' oraz `ogonek-deprefixify-buffer'
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
106 s/lu/z/a do usuwania notacji prefiksowej.
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
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)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
110 (ogonek-prefixify-buffer
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
111 znak-prefiksu nazwa-kodowania-docelowa)
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
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
115 `ogonek-name-encoding-alist'.
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
116
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
117 Funkcje biblioteki odwo/luj/a si/e do pi/eciu zmiennych, kt/ore
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
118 przechowuj/a podpowiedzi do zadawanych pyta/n. Nazwy tych zmiennych
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
119 oraz ich warto/sci domy/slne s/a nast/epuj/ace:
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
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
134 `~/.emacs' za/z/ada/c wczytania wybranych funkcji, na dodatek dopiero
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
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
150 (defun mazovia-to-iso8859-2 (start end)
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*")
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
169 (beginning-of-buffer))
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
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
185 between one-character encodings, such as `iso-8859-2', `mazovia',
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
186 plain `ascii' or `TeX'. As the names suggest you may recode
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
187 either the entire current buffer or just a marked region
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
188 in it. You may use the functions interactively as commands.
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
189 Once you call a command you will be asked about the code
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
190 currently used in your text and the target encoding, the one
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
191 you want to get. The following example shows a non-interactive
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
192 use of the functions in a program. This also illustrates what
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
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
195 (ogonek-recode-region
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
196 (region-beginning) (region-end) from-code-name to-code-name)
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
197 (ogonek-recode-buffer from-code-name to-code-name)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
198
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
199 2. `ogonek-prefixify-region' and `ogonek-prefixify-buffer' for
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
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
202 (ogonek-prefixify-region
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
203 (region-beginning) (region-end) from-code-name prefix-char)
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
204 (ogonek-prefixify-buffer from-code-name prefix-char)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
205
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
206 3. `ogonek-deprefixify-region' and `ogonek-deprefixify-buffer' for
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
207 removing prefix notation:
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
208
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
209 (ogonek-deprefixify-region
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
210 (region-beginning) (region-end) prefix-char to-code-name)
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
211 (ogonek-prefixify-buffer prefix-char to-code-name)
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'
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
214 display the list of encodings recognized by the library. The list
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
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
218 answers to dialogue questions are stored. The variables and their
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
219 default values are:
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
220
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
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
227 The above default values can be changed by placing appropriate settings
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
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
249 (defun mazovia-to-iso8859-2 (start end)
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*")
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
267 (beginning-of-buffer))
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
ec243644b3fb Customize. Add `;;; Code' line.
Stephen Eglen <stephen@gnu.org>
parents: 18363
diff changeset
271 (cons 'choice
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'.
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
300 Store the name in the the parameter-variable DEFAULT-NAME-VAR.
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."
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
302 (let ((encoding
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
303 (completing-read
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
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
307 (set default-name-var
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
308 (if (string= encoding "") (eval default-name-var) encoding))
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.
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
314 The result is stored in the variable DEFAULT-PREFIX-VAR.
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."
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
316 (let ((prefix-string
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
317 (read-string
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
318 (format "%s (default %s): " prompt
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)
38436
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 21701
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
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
324 (if (string= prefix-string "")
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
325 (eval default-prefix-var)
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'.
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
332 Before returning a result test whether the string ENCODING is in
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)
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
343 "Build a list of pairs from lists XS and YS of the same length."
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
344 (let ((pairs nil))
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
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
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
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
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))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
363 (while (< i 256)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
364 (aset table i i)
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
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
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.
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
377 When called interactively ask the user for the names of the FROM-
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
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)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
380 (list
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
381 (region-beginning)
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
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
386 (translate-region
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
387 start end
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
388 (ogonek-build-table
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.
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
395 When called interactively ask the user for the names of the FROM-
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)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
398 (list
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))))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
401 (ogonek-recode-region
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
18363
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
406 (defconst ogonek-prefix-code '(?A ?C ?E ?L ?N ?O ?S ?X ?Z
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
407 ?a ?c ?e ?l ?n ?o ?s ?x ?z))
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
408
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.
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
411 A PREFIX pair generated consists of PREFIX-CHAR and the respective
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
412 character listed in the `ogonek-prefix-code' constant.
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)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
415 (list
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
416 (region-beginning)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
417 (region-end)
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))))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
420 (let*
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
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
424 (ogonek-zip-lists
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
425 (cons prefix-char from-code)
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)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
444 (list
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))))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
447 (ogonek-prefixify-region
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.
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
452 PREFIX-CHAR followed by a Polish character from the `ogonek-prefix-code'
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
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
454 PREFIX-CHAR gets replaced with a single one. A combination of PREFIX-CHAR
31e4a16368c9 Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 18264
diff changeset
455 followed by a non-Polish character, that is one not listed in the
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)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
458 (list (region-beginning)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
459 (region-end)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
460 (ogonek-read-prefix
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
461 "Prefix character" 'ogonek-prefix-char)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
462 (ogonek-read-encoding
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
463 "To code" 'ogonek-prefix-to-encoding))))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
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))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
467 (recoding-pairs
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
468 (ogonek-zip-lists
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
469 (cons prefix-char from-code)
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)))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
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'
18264
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
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)
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
495 (list
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))))
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
498 (ogonek-deprefixify-region
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
85e7518aaf4a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
503 ;;; ogonek.el ends here