Merge from trunk.
This commit is contained in:
commit
b49e353d9d
436 changed files with 41179 additions and 11118 deletions
25
ChangeLog
25
ChangeLog
|
@ -1,4 +1,4 @@
|
|||
2011-07-29 Paul Eggert <eggert@cs.ucla.edu>
|
||||
2011-09-03 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Merge from gnulib, using build-aux to remove clutter (Bug#9169).
|
||||
* autogen/README: Update destination list.
|
||||
|
@ -32,6 +32,29 @@
|
|||
'configure'.
|
||||
* make-dist: Adjust to new build-aux and build-aux/snippit dirs.
|
||||
|
||||
2011-08-30 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* configure.in (opsys): Change pattern to *-*-linux*
|
||||
to recognize powerpc-gnu-linux-uclibc (Bug#9403).
|
||||
Remove unreachable pattern hppa*-*-linux-gnu*.
|
||||
Also, remove ia64*-hp-hpux1[1-9]*, as it also sets machine=hp800,
|
||||
and that can't possibly work now that src/m/hp800.h no longer exists.
|
||||
|
||||
2011-08-26 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* configure.in: Add -MP to DEPFLAGS (Bug#9372).
|
||||
|
||||
2011-08-13 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* configure.in: Add header check: sys/socket.h (Bug#8477),
|
||||
ifaddrs.h, net/if_dl.h. Check for getifaddrs and freeifaddrs.
|
||||
Check for sa_len in struct ifreq.ifr_addr (Bug#8477).
|
||||
|
||||
2011-08-04 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* configure.in (HAVE_PTHREAD): Add check for -lpthread (Bug#9216).
|
||||
(HAVE_GTK_AND_PTHREAD): Remove.
|
||||
|
||||
2011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
|
||||
|
||||
* configure.in (HAVE_RSVG): Allow use of -lrsvg-2 for any NextStep
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
2011-07-25 Paul Eggert <eggert@cs.ucla.edu>
|
||||
2011-09-03 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Merge from gnulib (Bug#9169).
|
||||
* notes/copyright: The files compile, config.guess, config.sub,
|
||||
|
@ -7,6 +7,40 @@
|
|||
and warn-on-use.h are now in build-aux/snippets. New file
|
||||
build-aux/snippets/_Noreturn.h.
|
||||
|
||||
2011-08-23 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* unidata/unidata-gen.el (unidata-prop-alist): Update the default
|
||||
values of bidi-class according to DerivedBidiClass.txt from the
|
||||
latest UCD.
|
||||
|
||||
2011-08-23 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* unidata/unidata-gen.el (unidata-prop-alist): Provide default
|
||||
values for name, general-category, canonical-combining-class,
|
||||
mirrored, and bidi-class. Describe the meaning of value nil for
|
||||
decimal-digit-value, digit-value, numeric-value, uppercase,
|
||||
lowercase, titlecase, and mirroring.
|
||||
(unidata-gen-table): Handle the case that default-value is a
|
||||
list. Set default values of characters not listed in a table.
|
||||
(unidata-get-name): Return an empty string if a value in a
|
||||
char-table is nil.
|
||||
(unidata-get-decomposition): Return a list of character itself if
|
||||
a value in a char-table is nil.
|
||||
|
||||
2011-08-15 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* unidata/bidimirror.awk: File removed.
|
||||
|
||||
* unidata/biditype.awk: File removed.
|
||||
|
||||
* unidata/makefile.w32-in (all): Remove src/biditype.h and
|
||||
src/bidimirror.h.
|
||||
(../../src/biditype.h, ../../src/bidimirror.h): Deleted.
|
||||
|
||||
* unidata/Makefile.in (all): Remove src/biditype.h and
|
||||
src/bidimirror.h.
|
||||
(../../src/biditype.h, ../../src/bidimirror.h): Deleted.
|
||||
|
||||
2011-07-07 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* unidata/makefile.w32-in (charprop-SH, charprop-CMD):
|
||||
|
|
86
admin/charsets/mapfiles/CP720.map
Normal file
86
admin/charsets/mapfiles/CP720.map
Normal file
|
@ -0,0 +1,86 @@
|
|||
# Created manually from <http://en.wikipedia.org/wiki/Code_page_720>.
|
||||
# The text in that page is available under the terms of the GNU Free
|
||||
# Documentation License.
|
||||
0x00-0x7F 0x0000
|
||||
0x82 0x00E9
|
||||
0x83 0x00E2
|
||||
0x85 0x00E0
|
||||
0x87 0x00E7
|
||||
0x88 0x00EA
|
||||
0x89 0x00EB
|
||||
0x8A 0x00E8
|
||||
0x8B 0x00EF
|
||||
0x8C 0x00EE
|
||||
0x91 0x0651
|
||||
0x92 0x0652
|
||||
0x93 0x00F4
|
||||
0x94 0x00A4
|
||||
0x95 0x0640
|
||||
0x96 0x00FB
|
||||
0x97 0x00F9
|
||||
0x98-0x9B 0x0621
|
||||
0x9C 0x00A3
|
||||
0x9D-0xAD 0x0625
|
||||
0xAE 0x00AB
|
||||
0xAF 0x00BB
|
||||
0xB0-0xB2 0x2591
|
||||
0xB3 0x2502
|
||||
0xB4 0x2524
|
||||
0xB5 0x2561
|
||||
0xB6 0x2562
|
||||
0xB7 0x2556
|
||||
0xB8 0x2555
|
||||
0xB9 0x2563
|
||||
0xBA 0x2551
|
||||
0xBB 0x2557
|
||||
0xBC 0x255D
|
||||
0xBD 0x255C
|
||||
0xBE 0x255B
|
||||
0xBF 0x2510
|
||||
0xC0 0x2514
|
||||
0xC1 0x2534
|
||||
0xC2 0x252C
|
||||
0xC3 0x251C
|
||||
0xC4 0x2500
|
||||
0xC5 0x253C
|
||||
0xC6 0x255E
|
||||
0xC7 0x255F
|
||||
0xC8 0x255A
|
||||
0xC9 0x2554
|
||||
0xCA 0x2569
|
||||
0xCB 0x2566
|
||||
0xCC 0x2560
|
||||
0xCD 0x2550
|
||||
0xCE 0x256C
|
||||
0xCF 0x2567
|
||||
0xD0 0x2568
|
||||
0xD1 0x2564
|
||||
0xD2 0x2565
|
||||
0xD3 0x2559
|
||||
0xD4 0x2558
|
||||
0xD5 0x2552
|
||||
0xD6 0x2553
|
||||
0xD7 0x256B
|
||||
0xD8 0x256A
|
||||
0xD9 0x2518
|
||||
0xDA 0x250C
|
||||
0xDB 0x2588
|
||||
0xDC 0x2584
|
||||
0xDD 0x258C
|
||||
0xDE 0x2590
|
||||
0xDF 0x2580
|
||||
0xE0-0xE4 0x0636
|
||||
0xE5 0x0641
|
||||
0xE6 0x00B5
|
||||
0xE7-0xEF 0x0642
|
||||
0xF0 0x2261
|
||||
0xF1-0xF6 0x064B
|
||||
0xF7 0x2248
|
||||
0xF8 0x00B0
|
||||
0xF9 0x2219
|
||||
0xFA 0x00B7
|
||||
0xFB 0x221A
|
||||
0xFC 0x207F
|
||||
0xFD 0x00B2
|
||||
0xFE 0x25A0
|
||||
0xFF 0x00A0
|
Binary file not shown.
132
admin/charsets/mapfiles/CP858.map
Normal file
132
admin/charsets/mapfiles/CP858.map
Normal file
|
@ -0,0 +1,132 @@
|
|||
# Created manually from <http://en.wikipedia.org/wiki/Code_page_858>.
|
||||
# The text in that page is available under the terms of the GNU Free
|
||||
# Documentation License.
|
||||
0x00-0x7F 0x0000
|
||||
0x80 0x00C7
|
||||
0x81 0x00FC
|
||||
0x82 0x00E9
|
||||
0x83 0x00E2
|
||||
0x84 0x00E4
|
||||
0x85 0x00E0
|
||||
0x86 0x00E5
|
||||
0x87 0x00E7
|
||||
0x88 0x00EA
|
||||
0x89 0x00EB
|
||||
0x8A 0x00E8
|
||||
0x8B 0x00EF
|
||||
0x8C 0x00EE
|
||||
0x8D 0x00EC
|
||||
0x8E 0x00C4
|
||||
0x8F 0x00C5
|
||||
0x90 0x00C9
|
||||
0x91 0x00E6
|
||||
0x92 0x00C6
|
||||
0x93 0x00F4
|
||||
0x94 0x00F6
|
||||
0x95 0x00F2
|
||||
0x96 0x00FB
|
||||
0x97 0x00F9
|
||||
0x98 0x00FF
|
||||
0x99 0x00D6
|
||||
0x9A 0x00DC
|
||||
0x9B 0x00F8
|
||||
0x9C 0x00A3
|
||||
0x9D 0x00D8
|
||||
0x9E 0x00D7
|
||||
0x9F 0x0192
|
||||
0xA0 0x00E1
|
||||
0xA1 0x00ED
|
||||
0xA2 0x00F3
|
||||
0xA3 0x00FA
|
||||
0xA4 0x00F1
|
||||
0xA5 0x00D1
|
||||
0xA6 0x00AA
|
||||
0xA7 0x00BA
|
||||
0xA8 0x00BF
|
||||
0xA9 0x00AE
|
||||
0xAA 0x00AC
|
||||
0xAB 0x00BD
|
||||
0xAC 0x00BC
|
||||
0xAD 0x00A1
|
||||
0xAE 0x00AB
|
||||
0xAF 0x00BB
|
||||
0xB0 0x2591
|
||||
0xB1 0x2592
|
||||
0xB2 0x2593
|
||||
0xB3 0x2502
|
||||
0xB4 0x2524
|
||||
0xB5 0x00C1
|
||||
0xB6 0x00C2
|
||||
0xB7 0x00C0
|
||||
0xB8 0x00A9
|
||||
0xB9 0x2563
|
||||
0xBA 0x2551
|
||||
0xBB 0x2557
|
||||
0xBC 0x255D
|
||||
0xBD 0x00A2
|
||||
0xBE 0x00A5
|
||||
0xBF 0x2510
|
||||
0xC0 0x2514
|
||||
0xC1 0x2534
|
||||
0xC2 0x252C
|
||||
0xC3 0x251C
|
||||
0xC4 0x2500
|
||||
0xC5 0x253C
|
||||
0xC6 0x00E3
|
||||
0xC7 0x00C3
|
||||
0xC8 0x255A
|
||||
0xC9 0x2554
|
||||
0xCA 0x2569
|
||||
0xCB 0x2566
|
||||
0xCC 0x2560
|
||||
0xCD 0x2550
|
||||
0xCE 0x256C
|
||||
0xCF 0x00A4
|
||||
0xD0 0x00F0
|
||||
0xD1 0x00D0
|
||||
0xD2 0x00CA
|
||||
0xD3 0x00CB
|
||||
0xD4 0x00C8
|
||||
0xD5 0x20AC
|
||||
0xD6 0x00CD
|
||||
0xD7 0x00CE
|
||||
0xD8 0x00CF
|
||||
0xD9 0x2518
|
||||
0xDA 0x250C
|
||||
0xDB 0x2588
|
||||
0xDC 0x2584
|
||||
0xDD 0x00A6
|
||||
0xDE 0x00CC
|
||||
0xDF 0x2580
|
||||
0xE0 0x00D3
|
||||
0xE1 0x00DF
|
||||
0xE2 0x00D4
|
||||
0xE3 0x00D2
|
||||
0xE4 0x00F5
|
||||
0xE5 0x00D5
|
||||
0xE6 0x00B5
|
||||
0xE7 0x00FE
|
||||
0xE8 0x00DE
|
||||
0xE9 0x00DA
|
||||
0xEA 0x00DB
|
||||
0xEB 0x00D9
|
||||
0xEC 0x00FD
|
||||
0xED 0x00DD
|
||||
0xEE 0x00AF
|
||||
0xEF 0x00B4
|
||||
0xF0 0x00AD
|
||||
0xF1 0x00B1
|
||||
0xF2 0x2017
|
||||
0xF3 0x00BE
|
||||
0xF4 0x00B6
|
||||
0xF5 0x00A7
|
||||
0xF6 0x00F7
|
||||
0xF7 0x00B8
|
||||
0xF8 0x00B0
|
||||
0xF9 0x00A8
|
||||
0xFA 0x00B7
|
||||
0xFB 0x00B9
|
||||
0xFC 0x00B3
|
||||
0xFD 0x00B2
|
||||
0xFE 0x25A0
|
||||
0xFF 0x00A0
|
Binary file not shown.
7998
admin/charsets/mapfiles/CP932.TXT
Normal file
7998
admin/charsets/mapfiles/CP932.TXT
Normal file
File diff suppressed because it is too large
Load diff
Binary file not shown.
12
admin/charsets/mapfiles/JISX213A.map
Normal file
12
admin/charsets/mapfiles/JISX213A.map
Normal file
|
@ -0,0 +1,12 @@
|
|||
# Created manually based on the description of the section 33
|
||||
# in "JIS X 0213:2004 Amendment 1".
|
||||
0x2E21 0x4FF1
|
||||
0x2F7E 0x525D
|
||||
0x4F54 0x20B9F
|
||||
0x4F7E 0x541E
|
||||
0x7427 0x5653
|
||||
0x7E7A 0x59F8
|
||||
0x7E7B 0x5C5B
|
||||
0x7E7C 0x5E77
|
||||
0x7E7D 0x7626
|
||||
0x7E7E 0x7E6B
|
Binary file not shown.
346
admin/charsets/mapfiles/MULE-ethiopic.map
Normal file
346
admin/charsets/mapfiles/MULE-ethiopic.map
Normal file
|
@ -0,0 +1,346 @@
|
|||
# Generated by running amdin/charsets/mule-charsets.el in Emacs 22.3.
|
||||
0x2121 0x1200
|
||||
0x2122 0x1201
|
||||
0x2123 0x1202
|
||||
0x2124 0x1203
|
||||
0x2125 0x1204
|
||||
0x2126 0x1205
|
||||
0x2127 0x1206
|
||||
0x2129 0x1208
|
||||
0x212A 0x1209
|
||||
0x212B 0x120A
|
||||
0x212C 0x120B
|
||||
0x212D 0x120C
|
||||
0x212E 0x120D
|
||||
0x212F 0x120E
|
||||
0x2130 0x120F
|
||||
0x2131 0x1210
|
||||
0x2132 0x1211
|
||||
0x2133 0x1212
|
||||
0x2134 0x1213
|
||||
0x2135 0x1214
|
||||
0x2136 0x1215
|
||||
0x2137 0x1216
|
||||
0x2138 0x1217
|
||||
0x2139 0x1218
|
||||
0x213A 0x1219
|
||||
0x213B 0x121A
|
||||
0x213C 0x121B
|
||||
0x213D 0x121C
|
||||
0x213E 0x121D
|
||||
0x213F 0x121E
|
||||
0x2140 0x121F
|
||||
0x2141 0x1220
|
||||
0x2142 0x1221
|
||||
0x2143 0x1222
|
||||
0x2144 0x1223
|
||||
0x2145 0x1224
|
||||
0x2146 0x1225
|
||||
0x2147 0x1226
|
||||
0x2148 0x1227
|
||||
0x2149 0x1228
|
||||
0x214A 0x1229
|
||||
0x214B 0x122A
|
||||
0x214C 0x122B
|
||||
0x214D 0x122C
|
||||
0x214E 0x122D
|
||||
0x214F 0x122E
|
||||
0x2150 0x122F
|
||||
0x2151 0x1230
|
||||
0x2152 0x1231
|
||||
0x2153 0x1232
|
||||
0x2154 0x1233
|
||||
0x2155 0x1234
|
||||
0x2156 0x1235
|
||||
0x2157 0x1236
|
||||
0x2158 0x1237
|
||||
0x2159 0x1238
|
||||
0x215A 0x1239
|
||||
0x215B 0x123A
|
||||
0x215C 0x123B
|
||||
0x215D 0x123C
|
||||
0x215E 0x123D
|
||||
0x215F 0x123E
|
||||
0x2160 0x123F
|
||||
0x2161 0x1240
|
||||
0x2162 0x1241
|
||||
0x2163 0x1242
|
||||
0x2164 0x1243
|
||||
0x2165 0x1244
|
||||
0x2166 0x1245
|
||||
0x2167 0x1246
|
||||
0x2169 0x1248
|
||||
0x216B 0x124A
|
||||
0x216C 0x124B
|
||||
0x216D 0x124C
|
||||
0x216E 0x124D
|
||||
0x2171 0x1250
|
||||
0x2172 0x1251
|
||||
0x2173 0x1252
|
||||
0x2174 0x1253
|
||||
0x2175 0x1254
|
||||
0x2176 0x1255
|
||||
0x2177 0x1256
|
||||
0x2179 0x1258
|
||||
0x217B 0x125A
|
||||
0x217C 0x125B
|
||||
0x217D 0x125C
|
||||
0x217E 0x125D
|
||||
0x2223 0x1260
|
||||
0x2224 0x1261
|
||||
0x2225 0x1262
|
||||
0x2226 0x1263
|
||||
0x2227 0x1264
|
||||
0x2228 0x1265
|
||||
0x2229 0x1266
|
||||
0x222A 0x1267
|
||||
0x222B 0x1268
|
||||
0x222C 0x1269
|
||||
0x222D 0x126A
|
||||
0x222E 0x126B
|
||||
0x222F 0x126C
|
||||
0x2230 0x126D
|
||||
0x2231 0x126E
|
||||
0x2232 0x126F
|
||||
0x2233 0x1270
|
||||
0x2234 0x1271
|
||||
0x2235 0x1272
|
||||
0x2236 0x1273
|
||||
0x2237 0x1274
|
||||
0x2238 0x1275
|
||||
0x2239 0x1276
|
||||
0x223A 0x1277
|
||||
0x223B 0x1278
|
||||
0x223C 0x1279
|
||||
0x223D 0x127A
|
||||
0x223E 0x127B
|
||||
0x223F 0x127C
|
||||
0x2240 0x127D
|
||||
0x2241 0x127E
|
||||
0x2242 0x127F
|
||||
0x2243 0x1280
|
||||
0x2244 0x1281
|
||||
0x2245 0x1282
|
||||
0x2246 0x1283
|
||||
0x2247 0x1284
|
||||
0x2248 0x1285
|
||||
0x2249 0x1286
|
||||
0x224B 0x1288
|
||||
0x224D 0x128A
|
||||
0x224E 0x128B
|
||||
0x224F 0x128C
|
||||
0x2250 0x128D
|
||||
0x2253 0x1290
|
||||
0x2254 0x1291
|
||||
0x2255 0x1292
|
||||
0x2256 0x1293
|
||||
0x2257 0x1294
|
||||
0x2258 0x1295
|
||||
0x2259 0x1296
|
||||
0x225A 0x1297
|
||||
0x225B 0x1298
|
||||
0x225C 0x1299
|
||||
0x225D 0x129A
|
||||
0x225E 0x129B
|
||||
0x225F 0x129C
|
||||
0x2260 0x129D
|
||||
0x2261 0x129E
|
||||
0x2262 0x129F
|
||||
0x2263 0x12A0
|
||||
0x2264 0x12A1
|
||||
0x2265 0x12A2
|
||||
0x2266 0x12A3
|
||||
0x2267 0x12A4
|
||||
0x2268 0x12A5
|
||||
0x2269 0x12A6
|
||||
0x226A 0x12A7
|
||||
0x226B 0x12A8
|
||||
0x226C 0x12A9
|
||||
0x226D 0x12AA
|
||||
0x226E 0x12AB
|
||||
0x226F 0x12AC
|
||||
0x2270 0x12AD
|
||||
0x2271 0x12AE
|
||||
0x2273 0x12B0
|
||||
0x2275 0x12B2
|
||||
0x2276 0x12B3
|
||||
0x2277 0x12B4
|
||||
0x2278 0x12B5
|
||||
0x227B 0x12B8
|
||||
0x227C 0x12B9
|
||||
0x227D 0x12BA
|
||||
0x227E 0x12BB
|
||||
0x2321 0x12BC
|
||||
0x2322 0x12BD
|
||||
0x2323 0x12BE
|
||||
0x2325 0x12C0
|
||||
0x2327 0x12C2
|
||||
0x2328 0x12C3
|
||||
0x2329 0x12C4
|
||||
0x232A 0x12C5
|
||||
0x232D 0x12C8
|
||||
0x232E 0x12C9
|
||||
0x232F 0x12CA
|
||||
0x2330 0x12CB
|
||||
0x2331 0x12CC
|
||||
0x2332 0x12CD
|
||||
0x2333 0x12CE
|
||||
0x2335 0x12D0
|
||||
0x2336 0x12D1
|
||||
0x2337 0x12D2
|
||||
0x2338 0x12D3
|
||||
0x2339 0x12D4
|
||||
0x233A 0x12D5
|
||||
0x233B 0x12D6
|
||||
0x233D 0x12D8
|
||||
0x233E 0x12D9
|
||||
0x233F 0x12DA
|
||||
0x2340 0x12DB
|
||||
0x2341 0x12DC
|
||||
0x2342 0x12DD
|
||||
0x2343 0x12DE
|
||||
0x2344 0x12DF
|
||||
0x2345 0x12E0
|
||||
0x2346 0x12E1
|
||||
0x2347 0x12E2
|
||||
0x2348 0x12E3
|
||||
0x2349 0x12E4
|
||||
0x234A 0x12E5
|
||||
0x234B 0x12E6
|
||||
0x234C 0x12E7
|
||||
0x234D 0x12E8
|
||||
0x234E 0x12E9
|
||||
0x234F 0x12EA
|
||||
0x2350 0x12EB
|
||||
0x2351 0x12EC
|
||||
0x2352 0x12ED
|
||||
0x2353 0x12EE
|
||||
0x2355 0x12F0
|
||||
0x2356 0x12F1
|
||||
0x2357 0x12F2
|
||||
0x2358 0x12F3
|
||||
0x2359 0x12F4
|
||||
0x235A 0x12F5
|
||||
0x235B 0x12F6
|
||||
0x235C 0x12F7
|
||||
0x235D 0x12F8
|
||||
0x235E 0x12F9
|
||||
0x235F 0x12FA
|
||||
0x2360 0x12FB
|
||||
0x2361 0x12FC
|
||||
0x2362 0x12FD
|
||||
0x2363 0x12FE
|
||||
0x2364 0x12FF
|
||||
0x2365 0x1300
|
||||
0x2366 0x1301
|
||||
0x2367 0x1302
|
||||
0x2368 0x1303
|
||||
0x2369 0x1304
|
||||
0x236A 0x1305
|
||||
0x236B 0x1306
|
||||
0x236C 0x1307
|
||||
0x236D 0x1308
|
||||
0x236E 0x1309
|
||||
0x236F 0x130A
|
||||
0x2370 0x130B
|
||||
0x2371 0x130C
|
||||
0x2372 0x130D
|
||||
0x2373 0x130E
|
||||
0x2375 0x1310
|
||||
0x2377 0x1312
|
||||
0x2378 0x1313
|
||||
0x2379 0x1314
|
||||
0x237A 0x1315
|
||||
0x237D 0x1318
|
||||
0x237E 0x1319
|
||||
0x2421 0x131A
|
||||
0x2422 0x131B
|
||||
0x2423 0x131C
|
||||
0x2424 0x131D
|
||||
0x2425 0x131E
|
||||
0x2427 0x1320
|
||||
0x2428 0x1321
|
||||
0x2429 0x1322
|
||||
0x242A 0x1323
|
||||
0x242B 0x1324
|
||||
0x242C 0x1325
|
||||
0x242D 0x1326
|
||||
0x242E 0x1327
|
||||
0x242F 0x1328
|
||||
0x2430 0x1329
|
||||
0x2431 0x132A
|
||||
0x2432 0x132B
|
||||
0x2433 0x132C
|
||||
0x2434 0x132D
|
||||
0x2435 0x132E
|
||||
0x2436 0x132F
|
||||
0x2437 0x1330
|
||||
0x2438 0x1331
|
||||
0x2439 0x1332
|
||||
0x243A 0x1333
|
||||
0x243B 0x1334
|
||||
0x243C 0x1335
|
||||
0x243D 0x1336
|
||||
0x243E 0x1337
|
||||
0x243F 0x1338
|
||||
0x2440 0x1339
|
||||
0x2441 0x133A
|
||||
0x2442 0x133B
|
||||
0x2443 0x133C
|
||||
0x2444 0x133D
|
||||
0x2445 0x133E
|
||||
0x2446 0x133F
|
||||
0x2447 0x1340
|
||||
0x2448 0x1341
|
||||
0x2449 0x1342
|
||||
0x244A 0x1343
|
||||
0x244B 0x1344
|
||||
0x244C 0x1345
|
||||
0x244D 0x1346
|
||||
0x244F 0x1348
|
||||
0x2450 0x1349
|
||||
0x2451 0x134A
|
||||
0x2452 0x134B
|
||||
0x2453 0x134C
|
||||
0x2454 0x134D
|
||||
0x2455 0x134E
|
||||
0x2456 0x134F
|
||||
0x2457 0x1350
|
||||
0x2458 0x1351
|
||||
0x2459 0x1352
|
||||
0x245A 0x1353
|
||||
0x245B 0x1354
|
||||
0x245C 0x1355
|
||||
0x245D 0x1356
|
||||
0x245E 0x1357
|
||||
0x245F 0x1358
|
||||
0x2460 0x1359
|
||||
0x2461 0x135A
|
||||
0x2468 0x1361
|
||||
0x2469 0x1362
|
||||
0x246A 0x1363
|
||||
0x246B 0x1364
|
||||
0x246C 0x1365
|
||||
0x246D 0x1366
|
||||
0x246E 0x1367
|
||||
0x246F 0x1368
|
||||
0x2470 0x1369
|
||||
0x2471 0x136A
|
||||
0x2472 0x136B
|
||||
0x2473 0x136C
|
||||
0x2474 0x136D
|
||||
0x2475 0x136E
|
||||
0x2476 0x136F
|
||||
0x2477 0x1370
|
||||
0x2478 0x1371
|
||||
0x2479 0x1372
|
||||
0x247A 0x1373
|
||||
0x247B 0x1374
|
||||
0x247C 0x1375
|
||||
0x247D 0x1376
|
||||
0x247E 0x1377
|
||||
0x2521 0x1378
|
||||
0x2522 0x1379
|
||||
0x2523 0x137A
|
||||
0x2524 0x137B
|
||||
0x2525 0x137C
|
Binary file not shown.
62
admin/charsets/mapfiles/MULE-ipa.map
Normal file
62
admin/charsets/mapfiles/MULE-ipa.map
Normal file
|
@ -0,0 +1,62 @@
|
|||
# Generated by running amdin/charsets/mule-charsets.el in Emacs 22.3.
|
||||
0x20 0x0069
|
||||
0x21 0x026A
|
||||
0x22 0x0065
|
||||
0x23 0x025B
|
||||
0x24 0x00E6
|
||||
0x25 0x0061
|
||||
0x26 0x0268
|
||||
0x27 0x0259
|
||||
0x28 0x0250
|
||||
0x29 0x026F
|
||||
0x2A 0x0264
|
||||
0x2B 0x028C
|
||||
0x2C 0x0251
|
||||
0x2D 0x0079
|
||||
0x2E 0x028F
|
||||
0x2F 0x00F8
|
||||
0x30 0x0153
|
||||
0x31 0x0276
|
||||
0x32 0x0289
|
||||
0x33 0x0275
|
||||
0x34 0x0075
|
||||
0x35 0x028A
|
||||
0x36 0x006F
|
||||
0x37 0x0254
|
||||
0x38 0x0252
|
||||
0x3A 0x025A
|
||||
0x40 0x0070
|
||||
0x41 0x0062
|
||||
0x42 0x0074
|
||||
0x43 0x0064
|
||||
0x44 0x006B
|
||||
0x45 0x0067
|
||||
0x46 0x0066
|
||||
0x47 0x0076
|
||||
0x48 0x03B8
|
||||
0x49 0x00F0
|
||||
0x4A 0x0073
|
||||
0x4B 0x007A
|
||||
0x4C 0x0283
|
||||
0x4D 0x0292
|
||||
0x4E 0x00E7
|
||||
0x4F 0x0078
|
||||
0x50 0x0281
|
||||
0x51 0x0068
|
||||
0x52 0x006D
|
||||
0x53 0x006E
|
||||
0x54 0x0272
|
||||
0x55 0x014B
|
||||
0x56 0x0072
|
||||
0x57 0x0280
|
||||
0x58 0x0279
|
||||
0x59 0x006A
|
||||
0x5A 0x006C
|
||||
0x5B 0x028E
|
||||
0x5C 0x029F
|
||||
0x5D 0x0265
|
||||
0x5E 0x0077
|
||||
0x5F 0x028D
|
||||
0x70 0x02C8
|
||||
0x71 0x02CC
|
||||
0x72 0x02D0
|
Binary file not shown.
84
admin/charsets/mapfiles/MULE-is13194.map
Normal file
84
admin/charsets/mapfiles/MULE-is13194.map
Normal file
|
@ -0,0 +1,84 @@
|
|||
# Generated by running amdin/charsets/mule-charsets.el in Emacs 22.3.
|
||||
0x21 0x0901
|
||||
0x22 0x0902
|
||||
0x23 0x0903
|
||||
0x24 0x0905
|
||||
0x25 0x0906
|
||||
0x26 0x0907
|
||||
0x27 0x0908
|
||||
0x28 0x0909
|
||||
0x29 0x090A
|
||||
0x2A 0x090B
|
||||
0x2B 0x090E
|
||||
0x2C 0x090F
|
||||
0x2D 0x0910
|
||||
0x2E 0x090D
|
||||
0x2F 0x0912
|
||||
0x30 0x0913
|
||||
0x31 0x0914
|
||||
0x32 0x090D
|
||||
0x33 0x0915
|
||||
0x34 0x0916
|
||||
0x35 0x0917
|
||||
0x36 0x0918
|
||||
0x37 0x0919
|
||||
0x38 0x091A
|
||||
0x39 0x091B
|
||||
0x3A 0x091C
|
||||
0x3B 0x091D
|
||||
0x3C 0x091E
|
||||
0x3D 0x091F
|
||||
0x3E 0x0920
|
||||
0x3F 0x0921
|
||||
0x40 0x0922
|
||||
0x41 0x0923
|
||||
0x42 0x0924
|
||||
0x43 0x0925
|
||||
0x44 0x0926
|
||||
0x45 0x0927
|
||||
0x46 0x0928
|
||||
0x47 0x0929
|
||||
0x48 0x092A
|
||||
0x49 0x092B
|
||||
0x4A 0x092C
|
||||
0x4B 0x092D
|
||||
0x4C 0x092E
|
||||
0x4D 0x092F
|
||||
0x4E 0x095F
|
||||
0x4F 0x0930
|
||||
0x50 0x0931
|
||||
0x51 0x0932
|
||||
0x52 0x0933
|
||||
0x53 0x0934
|
||||
0x54 0x0935
|
||||
0x55 0x0936
|
||||
0x56 0x0937
|
||||
0x57 0x0938
|
||||
0x58 0x0939
|
||||
0x5A 0x093E
|
||||
0x5B 0x093F
|
||||
0x5C 0x0940
|
||||
0x5D 0x0941
|
||||
0x5E 0x0942
|
||||
0x5F 0x0943
|
||||
0x60 0x0946
|
||||
0x61 0x0947
|
||||
0x62 0x0948
|
||||
0x63 0x0945
|
||||
0x64 0x094A
|
||||
0x65 0x094B
|
||||
0x66 0x094C
|
||||
0x67 0x0949
|
||||
0x68 0x094D
|
||||
0x69 0x093C
|
||||
0x6A 0x0964
|
||||
0x71 0x0966
|
||||
0x72 0x0967
|
||||
0x73 0x0968
|
||||
0x74 0x0969
|
||||
0x75 0x096A
|
||||
0x76 0x096B
|
||||
0x77 0x096C
|
||||
0x78 0x096D
|
||||
0x79 0x096E
|
||||
0x7A 0x096F
|
Binary file not shown.
68
admin/charsets/mapfiles/MULE-lviscii.map
Normal file
68
admin/charsets/mapfiles/MULE-lviscii.map
Normal file
|
@ -0,0 +1,68 @@
|
|||
# Generated by running amdin/charsets/mule-charsets.el in Emacs 22.3.
|
||||
0x21 0x1EAF
|
||||
0x22 0x1EB1
|
||||
0x23 0x1EB7
|
||||
0x24 0x1EA5
|
||||
0x25 0x1EA7
|
||||
0x26 0x1EA9
|
||||
0x27 0x1EAD
|
||||
0x28 0x1EBD
|
||||
0x29 0x1EB9
|
||||
0x2A 0x1EBF
|
||||
0x2B 0x1EC1
|
||||
0x2C 0x1EC3
|
||||
0x2D 0x1EC5
|
||||
0x2E 0x1EC7
|
||||
0x2F 0x1ED1
|
||||
0x30 0x1ED3
|
||||
0x31 0x1ED5
|
||||
0x32 0x1ED7
|
||||
0x35 0x1ED9
|
||||
0x36 0x1EDD
|
||||
0x37 0x1EDF
|
||||
0x38 0x1ECB
|
||||
0x3D 0x01A1
|
||||
0x3E 0x1EDB
|
||||
0x46 0x1EB3
|
||||
0x47 0x1EB5
|
||||
0x4F 0x1EF3
|
||||
0x51 0x1EE9
|
||||
0x55 0x1EA1
|
||||
0x56 0x1EF7
|
||||
0x57 0x1EEB
|
||||
0x58 0x1EED
|
||||
0x5B 0x1EF9
|
||||
0x5C 0x1EF5
|
||||
0x5E 0x1EE1
|
||||
0x5F 0x01B0
|
||||
0x60 0x00E0
|
||||
0x61 0x00E1
|
||||
0x62 0x00E2
|
||||
0x63 0x00E3
|
||||
0x64 0x1EA3
|
||||
0x65 0x0103
|
||||
0x66 0x1EEF
|
||||
0x67 0x1EAB
|
||||
0x68 0x00E8
|
||||
0x69 0x00E9
|
||||
0x6A 0x00EA
|
||||
0x6B 0x1EBB
|
||||
0x6C 0x00EC
|
||||
0x6D 0x00ED
|
||||
0x6E 0x0129
|
||||
0x6F 0x1EC9
|
||||
0x70 0x0111
|
||||
0x71 0x1EF1
|
||||
0x72 0x00F2
|
||||
0x73 0x00F3
|
||||
0x74 0x00F4
|
||||
0x75 0x00F5
|
||||
0x76 0x1ECF
|
||||
0x77 0x1ECD
|
||||
0x78 0x1EE5
|
||||
0x79 0x00F9
|
||||
0x7A 0x00FA
|
||||
0x7B 0x0169
|
||||
0x7C 0x1EE7
|
||||
0x7D 0x00FD
|
||||
0x7E 0x1EE3
|
Binary file not shown.
72
admin/charsets/mapfiles/MULE-sisheng.map
Normal file
72
admin/charsets/mapfiles/MULE-sisheng.map
Normal file
|
@ -0,0 +1,72 @@
|
|||
# Generated by running amdin/charsets/mule-charsets.el in Emacs 22.3.
|
||||
0x21 0x0101
|
||||
0x22 0x00E1
|
||||
0x23 0x01CE
|
||||
0x24 0x00E0
|
||||
0x25 0x0113
|
||||
0x26 0x00E9
|
||||
0x27 0x011B
|
||||
0x28 0x00E8
|
||||
0x29 0x012B
|
||||
0x2A 0x00ED
|
||||
0x2B 0x01D0
|
||||
0x2C 0x00EC
|
||||
0x2D 0x014D
|
||||
0x2E 0x00F3
|
||||
0x2F 0x01D2
|
||||
0x30 0x00F2
|
||||
0x31 0x016B
|
||||
0x32 0x00FA
|
||||
0x33 0x01D4
|
||||
0x34 0x00F9
|
||||
0x35 0x01D6
|
||||
0x36 0x01D8
|
||||
0x37 0x01DA
|
||||
0x38 0x01DC
|
||||
0x39 0x00FC
|
||||
0x3A 0x00EA
|
||||
0x3C 0x1E3F
|
||||
0x3D 0x0144
|
||||
0x3E 0x0148
|
||||
0x3F 0x01F9
|
||||
0x41 0x02C9
|
||||
0x42 0x02CA
|
||||
0x43 0x02C7
|
||||
0x44 0x02CB
|
||||
0x45 0x3105
|
||||
0x46 0x3106
|
||||
0x47 0x3107
|
||||
0x48 0x3108
|
||||
0x49 0x3109
|
||||
0x4A 0x310A
|
||||
0x4B 0x310B
|
||||
0x4C 0x310C
|
||||
0x4D 0x310D
|
||||
0x4E 0x310E
|
||||
0x4F 0x310F
|
||||
0x50 0x3110
|
||||
0x51 0x3111
|
||||
0x52 0x3112
|
||||
0x53 0x3113
|
||||
0x54 0x3114
|
||||
0x55 0x3115
|
||||
0x56 0x3116
|
||||
0x57 0x3117
|
||||
0x58 0x3118
|
||||
0x59 0x3119
|
||||
0x5A 0x311A
|
||||
0x5B 0x311B
|
||||
0x5C 0x311C
|
||||
0x5D 0x311D
|
||||
0x5E 0x311E
|
||||
0x5F 0x311F
|
||||
0x60 0x3120
|
||||
0x61 0x3121
|
||||
0x62 0x3122
|
||||
0x63 0x3123
|
||||
0x64 0x3124
|
||||
0x65 0x3125
|
||||
0x66 0x3126
|
||||
0x67 0x3127
|
||||
0x68 0x3128
|
||||
0x69 0x3129
|
Binary file not shown.
194
admin/charsets/mapfiles/MULE-tibetan.map
Normal file
194
admin/charsets/mapfiles/MULE-tibetan.map
Normal file
|
@ -0,0 +1,194 @@
|
|||
# Generated by running amdin/charsets/mule-charsets.el in Emacs 22.3.
|
||||
0x2130 0x0F00
|
||||
0x2131 0x0F01
|
||||
0x2132 0x0F02
|
||||
0x2133 0x0F03
|
||||
0x2134 0x0F04
|
||||
0x2135 0x0F05
|
||||
0x2136 0x0F06
|
||||
0x2137 0x0F07
|
||||
0x2138 0x0F08
|
||||
0x2139 0x0F09
|
||||
0x213A 0x0F0A
|
||||
0x213B 0x0F0B
|
||||
0x213C 0x0F0C
|
||||
0x213D 0x0F0D
|
||||
0x213E 0x0F0E
|
||||
0x213F 0x0F0F
|
||||
0x2140 0x0F10
|
||||
0x2141 0x0F11
|
||||
0x2142 0x0F12
|
||||
0x2143 0x0F13
|
||||
0x2144 0x0F14
|
||||
0x2145 0x0F15
|
||||
0x2146 0x0F16
|
||||
0x2147 0x0F17
|
||||
0x2148 0x0F18
|
||||
0x2149 0x0F19
|
||||
0x214A 0x0F1A
|
||||
0x214B 0x0F1B
|
||||
0x214C 0x0F1C
|
||||
0x214D 0x0F1D
|
||||
0x214E 0x0F1E
|
||||
0x214F 0x0F1F
|
||||
0x2150 0x0F20
|
||||
0x2151 0x0F21
|
||||
0x2152 0x0F22
|
||||
0x2153 0x0F23
|
||||
0x2154 0x0F24
|
||||
0x2155 0x0F25
|
||||
0x2156 0x0F26
|
||||
0x2157 0x0F27
|
||||
0x2158 0x0F28
|
||||
0x2159 0x0F29
|
||||
0x215A 0x0F2A
|
||||
0x215B 0x0F2B
|
||||
0x215C 0x0F2C
|
||||
0x215D 0x0F2D
|
||||
0x215E 0x0F2E
|
||||
0x215F 0x0F2F
|
||||
0x2160 0x0F30
|
||||
0x2161 0x0F31
|
||||
0x2162 0x0F32
|
||||
0x2163 0x0F33
|
||||
0x2164 0x0F34
|
||||
0x2165 0x0F35
|
||||
0x2166 0x0F36
|
||||
0x2167 0x0F37
|
||||
0x2168 0x0F38
|
||||
0x2169 0x0F39
|
||||
0x216A 0x0F3A
|
||||
0x216B 0x0F3B
|
||||
0x216C 0x0F3C
|
||||
0x216D 0x0F3D
|
||||
0x216E 0x0F3E
|
||||
0x216F 0x0F3F
|
||||
0x2221 0x0F40
|
||||
0x2222 0x0F41
|
||||
0x2223 0x0F42
|
||||
0x2224 0x0F43
|
||||
0x2225 0x0F44
|
||||
0x2226 0x0F45
|
||||
0x2227 0x0F46
|
||||
0x2228 0x0F47
|
||||
0x222A 0x0F49
|
||||
0x222B 0x0F4A
|
||||
0x222C 0x0F4B
|
||||
0x222D 0x0F4C
|
||||
0x222E 0x0F4D
|
||||
0x222F 0x0F4E
|
||||
0x2230 0x0F4F
|
||||
0x2231 0x0F50
|
||||
0x2232 0x0F51
|
||||
0x2233 0x0F52
|
||||
0x2234 0x0F53
|
||||
0x2235 0x0F54
|
||||
0x2236 0x0F55
|
||||
0x2237 0x0F56
|
||||
0x2238 0x0F57
|
||||
0x2239 0x0F58
|
||||
0x223A 0x0F59
|
||||
0x223B 0x0F5A
|
||||
0x223C 0x0F5B
|
||||
0x223D 0x0F5C
|
||||
0x223E 0x0F5D
|
||||
0x223F 0x0F5E
|
||||
0x2240 0x0F5F
|
||||
0x2241 0x0F60
|
||||
0x2242 0x0F61
|
||||
0x2243 0x0F62
|
||||
0x2244 0x0F63
|
||||
0x2245 0x0F64
|
||||
0x2246 0x0F65
|
||||
0x2247 0x0F66
|
||||
0x2248 0x0F67
|
||||
0x2249 0x0F68
|
||||
0x224A 0x0F69
|
||||
0x224B 0x0F6A
|
||||
0x2252 0x0F71
|
||||
0x2253 0x0F72
|
||||
0x2254 0x0F73
|
||||
0x2255 0x0F74
|
||||
0x2256 0x0F75
|
||||
0x2257 0x0F76
|
||||
0x2258 0x0F77
|
||||
0x2259 0x0F78
|
||||
0x225A 0x0F79
|
||||
0x225B 0x0F7A
|
||||
0x225C 0x0F7B
|
||||
0x225D 0x0F7C
|
||||
0x225E 0x0F7D
|
||||
0x225F 0x0F7E
|
||||
0x2260 0x0F7F
|
||||
0x2261 0x0F80
|
||||
0x2262 0x0F81
|
||||
0x2263 0x0F82
|
||||
0x2264 0x0F83
|
||||
0x2265 0x0F84
|
||||
0x2266 0x0F85
|
||||
0x2267 0x0F86
|
||||
0x2268 0x0F87
|
||||
0x2269 0x0F88
|
||||
0x226A 0x0F89
|
||||
0x226B 0x0F8A
|
||||
0x226C 0x0F8B
|
||||
0x2321 0x0F90
|
||||
0x2322 0x0F91
|
||||
0x2323 0x0F92
|
||||
0x2324 0x0F93
|
||||
0x2325 0x0F94
|
||||
0x2326 0x0F95
|
||||
0x2327 0x0F96
|
||||
0x2328 0x0F97
|
||||
0x232A 0x0F99
|
||||
0x232B 0x0F9A
|
||||
0x232C 0x0F9B
|
||||
0x232D 0x0F9C
|
||||
0x232E 0x0F9D
|
||||
0x232F 0x0F9E
|
||||
0x2330 0x0F9F
|
||||
0x2331 0x0FA0
|
||||
0x2332 0x0FA1
|
||||
0x2333 0x0FA2
|
||||
0x2334 0x0FA3
|
||||
0x2335 0x0FA4
|
||||
0x2336 0x0FA5
|
||||
0x2337 0x0FA6
|
||||
0x2338 0x0FA7
|
||||
0x2339 0x0FA8
|
||||
0x233A 0x0FA9
|
||||
0x233B 0x0FAA
|
||||
0x233C 0x0FAB
|
||||
0x233D 0x0FAC
|
||||
0x233E 0x0FAD
|
||||
0x233F 0x0FAE
|
||||
0x2340 0x0FAF
|
||||
0x2341 0x0FB0
|
||||
0x2342 0x0FB1
|
||||
0x2343 0x0FB2
|
||||
0x2344 0x0FB3
|
||||
0x2345 0x0FB4
|
||||
0x2346 0x0FB5
|
||||
0x2347 0x0FB6
|
||||
0x2348 0x0FB7
|
||||
0x2349 0x0FB8
|
||||
0x234A 0x0FB9
|
||||
0x234B 0x0FBA
|
||||
0x234C 0x0FBB
|
||||
0x234D 0x0FBC
|
||||
0x234F 0x0FBE
|
||||
0x2350 0x0FBF
|
||||
0x2351 0x0FC0
|
||||
0x2352 0x0FC1
|
||||
0x2353 0x0FC2
|
||||
0x2354 0x0FC3
|
||||
0x2355 0x0FC4
|
||||
0x2356 0x0FC5
|
||||
0x2357 0x0FC6
|
||||
0x2358 0x0FC7
|
||||
0x2359 0x0FC8
|
||||
0x235A 0x0FC9
|
||||
0x235B 0x0FCA
|
||||
0x235C 0x0FCB
|
||||
0x235D 0x0FCC
|
||||
0x2360 0x0FCF
|
Binary file not shown.
68
admin/charsets/mapfiles/MULE-uviscii.map
Normal file
68
admin/charsets/mapfiles/MULE-uviscii.map
Normal file
|
@ -0,0 +1,68 @@
|
|||
# Generated by running amdin/charsets/mule-charsets.el in Emacs 22.3.
|
||||
0x21 0x1EAE
|
||||
0x22 0x1EB0
|
||||
0x23 0x1EB6
|
||||
0x24 0x1EA4
|
||||
0x25 0x1EA6
|
||||
0x26 0x1EA8
|
||||
0x27 0x1EAC
|
||||
0x28 0x1EBC
|
||||
0x29 0x1EB8
|
||||
0x2A 0x1EBE
|
||||
0x2B 0x1EC0
|
||||
0x2C 0x1EC2
|
||||
0x2D 0x1EC4
|
||||
0x2E 0x1EC6
|
||||
0x2F 0x1ED0
|
||||
0x30 0x1ED2
|
||||
0x31 0x1ED4
|
||||
0x32 0x1ED6
|
||||
0x35 0x1ED8
|
||||
0x36 0x1EDC
|
||||
0x37 0x1EDE
|
||||
0x38 0x1ECA
|
||||
0x3D 0x01A0
|
||||
0x3E 0x1EDA
|
||||
0x46 0x1EB2
|
||||
0x47 0x1EB4
|
||||
0x4F 0x1EF2
|
||||
0x51 0x1EE8
|
||||
0x55 0x1EA0
|
||||
0x56 0x1EF6
|
||||
0x57 0x1EEA
|
||||
0x58 0x1EEC
|
||||
0x5B 0x1EF8
|
||||
0x5C 0x1EF4
|
||||
0x5E 0x1EE0
|
||||
0x5F 0x01AF
|
||||
0x60 0x00C0
|
||||
0x61 0x00C1
|
||||
0x62 0x00C2
|
||||
0x63 0x00C3
|
||||
0x64 0x1EA2
|
||||
0x65 0x0102
|
||||
0x66 0x1EEE
|
||||
0x67 0x1EAA
|
||||
0x68 0x00C8
|
||||
0x69 0x00C9
|
||||
0x6A 0x00CA
|
||||
0x6B 0x1EBA
|
||||
0x6C 0x00CC
|
||||
0x6D 0x00CD
|
||||
0x6E 0x0128
|
||||
0x6F 0x1EC8
|
||||
0x70 0x0110
|
||||
0x71 0x1EF0
|
||||
0x72 0x00D2
|
||||
0x73 0x00D3
|
||||
0x74 0x00D4
|
||||
0x75 0x00D5
|
||||
0x76 0x1ECE
|
||||
0x77 0x1ECC
|
||||
0x78 0x1EE4
|
||||
0x79 0x00D9
|
||||
0x7A 0x00DA
|
||||
0x7B 0x0168
|
||||
0x7C 0x1EE6
|
||||
0x7D 0x00DD
|
||||
0x7E 0x1EE2
|
Binary file not shown.
291
admin/charsets/mapfiles/PTCP154
Normal file
291
admin/charsets/mapfiles/PTCP154
Normal file
|
@ -0,0 +1,291 @@
|
|||
|
||||
Charset name:
|
||||
PTCP154
|
||||
|
||||
Charset aliases:
|
||||
csPTCP154
|
||||
PT154
|
||||
CP154
|
||||
Cyrillic-Asian
|
||||
|
||||
Suitability for use in MIME text:
|
||||
Yes
|
||||
|
||||
ISO 10646 equivalency table:
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the Paratype CP154 code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in Paratype CP154 order
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2a 0x002A # ASTERISK
|
||||
0x2b 0x002B # PLUS SIGN
|
||||
0x2c 0x002C # COMMA
|
||||
0x2d 0x002D # HYPHEN-MINUS
|
||||
0x2e 0x002E # FULL STOP
|
||||
0x2f 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3a 0x003A # COLON
|
||||
0x3b 0x003B # SEMICOLON
|
||||
0x3c 0x003C # LESS-THAN SIGN
|
||||
0x3d 0x003D # EQUALS SIGN
|
||||
0x3e 0x003E # GREATER-THAN SIGN
|
||||
0x3f 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4a 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4b 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4c 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4d 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4e 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4f 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005B # LEFT SQUARE BRACKET
|
||||
0x5c 0x005C # REVERSE SOLIDUS
|
||||
0x5d 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5e 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5f 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6a 0x006A # LATIN SMALL LETTER J
|
||||
0x6b 0x006B # LATIN SMALL LETTER K
|
||||
0x6c 0x006C # LATIN SMALL LETTER L
|
||||
0x6d 0x006D # LATIN SMALL LETTER M
|
||||
0x6e 0x006E # LATIN SMALL LETTER N
|
||||
0x6f 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7a 0x007A # LATIN SMALL LETTER Z
|
||||
0x7b 0x007B # LEFT CURLY BRACKET
|
||||
0x7c 0x007C # VERTICAL LINE
|
||||
0x7d 0x007D # RIGHT CURLY BRACKET
|
||||
0x7e 0x007E # TILDE
|
||||
0x7f 0x007F # DELETE (DEL)
|
||||
0x80 0x0496 # CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
|
||||
0x81 0x0492 # CYRILLIC CAPITAL LETTER GHE WITH STROKE
|
||||
0x82 0x04EE # CYRILLIC CAPITAL LETTER U WITH MACRON
|
||||
0x83 0x0493 # CYRILLIC SMALL LETTER GHE WITH STROKE
|
||||
0x84 0x201E # DOUBLE LOW-9 QUOTATION MARK
|
||||
0x85 0x2026 # HORIZONTAL ELLIPSIS
|
||||
0x86 0x04B6 # CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
|
||||
0x87 0x04AE # CYRILLIC CAPITAL LETTER STRAIGHT U
|
||||
0x88 0x04B2 # CYRILLIC CAPITAL LETTER HA WITH DESCENDER
|
||||
0x89 0x04AF # CYRILLIC SMALL LETTER STRAIGHT U
|
||||
0x8a 0x04A0 # CYRILLIC CAPITAL LETTER BASHKIR KA
|
||||
0x8b 0x04E2 # CYRILLIC CAPITAL LETTER I WITH MACRON
|
||||
0x8c 0x04A2 # CYRILLIC CAPITAL LETTER EN WITH DESCENDER
|
||||
0x8d 0x049A # CYRILLIC CAPITAL LETTER KA WITH DESCENDER
|
||||
0x8e 0x04BA # CYRILLIC CAPITAL LETTER SHHA
|
||||
0x8f 0x04B8 # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
|
||||
0x90 0x0497 # CYRILLIC SMALL LETTER ZHE WITH DESCENDER
|
||||
0x91 0x2018 # LEFT SINGLE QUOTATION MARK
|
||||
0x92 0x2019 # RIGHT SINGLE QUOTATION MARK
|
||||
0x93 0x201C # LEFT DOUBLE QUOTATION MARK
|
||||
0x94 0x201D # RIGHT DOUBLE QUOTATION MARK
|
||||
0x95 0x2022 # BULLET
|
||||
0x96 0x2013 # EN DASH
|
||||
0x97 0x2014 # EM DASH
|
||||
0x98 0x04B3 # CYRILLIC SMALL LETTER HA WITH DESCENDER
|
||||
0x99 0x04B7 # CYRILLIC SMALL LETTER CHE WITH DESCENDER
|
||||
0x9a 0x04A1 # CYRILLIC SMALL LETTER BASHKIR KA
|
||||
0x9b 0x04E3 # CYRILLIC SMALL LETTER I WITH MACRON
|
||||
0x9c 0x04A3 # CYRILLIC SMALL LETTER EN WITH DESCENDER
|
||||
0x9d 0x049B # CYRILLIC SMALL LETTER KA WITH DESCENDER
|
||||
0x9e 0x04BB # CYRILLIC SMALL LETTER SHHA
|
||||
0x9f 0x04B9 # CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
|
||||
0xa0 0x00A0 # NO-BREAK SPACE
|
||||
0xa1 0x040E # CYRILLIC CAPITAL LETTER SHORT U (Byelorussian)
|
||||
0xa2 0x045E # CYRILLIC SMALL LETTER SHORT U (Byelorussian)
|
||||
0xa3 0x0408 # CYRILLIC CAPITAL LETTER JE
|
||||
0xa4 0x04E8 # CYRILLIC CAPITAL LETTER BARRED O
|
||||
0xa5 0x0498 # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
|
||||
0xa6 0x04B0 # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
|
||||
0xa7 0x00A7 # SECTION SIGN
|
||||
0xa8 0x0401 # CYRILLIC CAPITAL LETTER IO
|
||||
0xa9 0x00A9 # COPYRIGHT SIGN
|
||||
0xaa 0x04D8 # CYRILLIC CAPITAL LETTER SCHWA
|
||||
0xab 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xac 0x00AC # NOT SIGN
|
||||
0xad 0x04EF # CYRILLIC SMALL LETTER U WITH MACRON
|
||||
0xae 0x00AE # REGISTERED SIGN
|
||||
0xaf 0x049C # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
|
||||
0xb0 0x00B0 # DEGREE SIGN
|
||||
0xb1 0x04B1 # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
|
||||
0xb2 0x0406 # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
|
||||
0xb3 0x0456 # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
|
||||
0xb4 0x0499 # CYRILLIC SMALL LETTER ZE WITH DESCENDER
|
||||
0xb5 0x04E9 # CYRILLIC SMALL LETTER BARRED O
|
||||
0xb6 0x00B6 # PILCROW SIGN
|
||||
0xb7 0x00B7 # MIDDLE DOT
|
||||
0xb8 0x0451 # CYRILLIC SMALL LETTER IO
|
||||
0xb9 0x2116 # NUMERO SIGN
|
||||
0xba 0x04D9 # CYRILLIC SMALL LETTER SCHWA
|
||||
0xbb 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xbc 0x0458 # CYRILLIC SMALL LETTER JE
|
||||
0xbd 0x04AA # CYRILLIC CAPITAL LETTER ES WITH DESCENDER
|
||||
0xbe 0x04AB # CYRILLIC SMALL LETTER ES WITH DESCENDER
|
||||
0xbf 0x049D # CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
|
||||
0xc0 0x0410 # CYRILLIC CAPITAL LETTER A
|
||||
0xc1 0x0411 # CYRILLIC CAPITAL LETTER BE
|
||||
0xc2 0x0412 # CYRILLIC CAPITAL LETTER VE
|
||||
0xc3 0x0413 # CYRILLIC CAPITAL LETTER GHE
|
||||
0xc4 0x0414 # CYRILLIC CAPITAL LETTER DE
|
||||
0xc5 0x0415 # CYRILLIC CAPITAL LETTER IE
|
||||
0xc6 0x0416 # CYRILLIC CAPITAL LETTER ZHE
|
||||
0xc7 0x0417 # CYRILLIC CAPITAL LETTER ZE
|
||||
0xc8 0x0418 # CYRILLIC CAPITAL LETTER I
|
||||
0xc9 0x0419 # CYRILLIC CAPITAL LETTER SHORT I
|
||||
0xca 0x041A # CYRILLIC CAPITAL LETTER KA
|
||||
0xcb 0x041B # CYRILLIC CAPITAL LETTER EL
|
||||
0xcc 0x041C # CYRILLIC CAPITAL LETTER EM
|
||||
0xcd 0x041D # CYRILLIC CAPITAL LETTER EN
|
||||
0xce 0x041E # CYRILLIC CAPITAL LETTER O
|
||||
0xcf 0x041F # CYRILLIC CAPITAL LETTER PE
|
||||
0xd0 0x0420 # CYRILLIC CAPITAL LETTER ER
|
||||
0xd1 0x0421 # CYRILLIC CAPITAL LETTER ES
|
||||
0xd2 0x0422 # CYRILLIC CAPITAL LETTER TE
|
||||
0xd3 0x0423 # CYRILLIC CAPITAL LETTER U
|
||||
0xd4 0x0424 # CYRILLIC CAPITAL LETTER EF
|
||||
0xd5 0x0425 # CYRILLIC CAPITAL LETTER HA
|
||||
0xd6 0x0426 # CYRILLIC CAPITAL LETTER TSE
|
||||
0xd7 0x0427 # CYRILLIC CAPITAL LETTER CHE
|
||||
0xd8 0x0428 # CYRILLIC CAPITAL LETTER SHA
|
||||
0xd9 0x0429 # CYRILLIC CAPITAL LETTER SHCHA
|
||||
0xda 0x042A # CYRILLIC CAPITAL LETTER HARD SIGN
|
||||
0xdb 0x042B # CYRILLIC CAPITAL LETTER YERU
|
||||
0xdc 0x042C # CYRILLIC CAPITAL LETTER SOFT SIGN
|
||||
0xdd 0x042D # CYRILLIC CAPITAL LETTER E
|
||||
0xde 0x042E # CYRILLIC CAPITAL LETTER YU
|
||||
0xdf 0x042F # CYRILLIC CAPITAL LETTER YA
|
||||
0xe0 0x0430 # CYRILLIC SMALL LETTER A
|
||||
0xe1 0x0431 # CYRILLIC SMALL LETTER BE
|
||||
0xe2 0x0432 # CYRILLIC SMALL LETTER VE
|
||||
0xe3 0x0433 # CYRILLIC SMALL LETTER GHE
|
||||
0xe4 0x0434 # CYRILLIC SMALL LETTER DE
|
||||
0xe5 0x0435 # CYRILLIC SMALL LETTER IE
|
||||
0xe6 0x0436 # CYRILLIC SMALL LETTER ZHE
|
||||
0xe7 0x0437 # CYRILLIC SMALL LETTER ZE
|
||||
0xe8 0x0438 # CYRILLIC SMALL LETTER I
|
||||
0xe9 0x0439 # CYRILLIC SMALL LETTER SHORT I
|
||||
0xea 0x043A # CYRILLIC SMALL LETTER KA
|
||||
0xeb 0x043B # CYRILLIC SMALL LETTER EL
|
||||
0xec 0x043C # CYRILLIC SMALL LETTER EM
|
||||
0xed 0x043D # CYRILLIC SMALL LETTER EN
|
||||
0xee 0x043E # CYRILLIC SMALL LETTER O
|
||||
0xef 0x043F # CYRILLIC SMALL LETTER PE
|
||||
0xf0 0x0440 # CYRILLIC SMALL LETTER ER
|
||||
0xf1 0x0441 # CYRILLIC SMALL LETTER ES
|
||||
0xf2 0x0442 # CYRILLIC SMALL LETTER TE
|
||||
0xf3 0x0443 # CYRILLIC SMALL LETTER U
|
||||
0xf4 0x0444 # CYRILLIC SMALL LETTER EF
|
||||
0xf5 0x0445 # CYRILLIC SMALL LETTER HA
|
||||
0xf6 0x0446 # CYRILLIC SMALL LETTER TSE
|
||||
0xf7 0x0447 # CYRILLIC SMALL LETTER CHE
|
||||
0xf8 0x0448 # CYRILLIC SMALL LETTER SHA
|
||||
0xf9 0x0449 # CYRILLIC SMALL LETTER SHCHA
|
||||
0xfa 0x044A # CYRILLIC SMALL LETTER HARD SIGN
|
||||
0xfb 0x044B # CYRILLIC SMALL LETTER YERU
|
||||
0xfc 0x044C # CYRILLIC SMALL LETTER SOFT SIGN
|
||||
0xfd 0x044D # CYRILLIC SMALL LETTER E
|
||||
0xfe 0x044E # CYRILLIC SMALL LETTER YU
|
||||
0xff 0x044F # CYRILLIC SMALL LETTER YA
|
||||
|
||||
|
||||
Additional information:
|
||||
This charset based on CP1251 with added asian cyrillic symbols.
|
||||
|
||||
Person & email address to contact for further information:
|
||||
Alexander Uskov
|
||||
InternetDataCenter of KazakhTelecom.
|
||||
e-mail: auskov&idc.kz
|
||||
|
||||
Intended usage:
|
||||
COMMON
|
||||
|
||||
(record created 2002-09-27)
|
Binary file not shown.
13147
admin/charsets/mapfiles/Uni2JIS
Normal file
13147
admin/charsets/mapfiles/Uni2JIS
Normal file
File diff suppressed because it is too large
Load diff
Binary file not shown.
223
admin/charsets/mapfiles/bulgarian-mik.txt
Normal file
223
admin/charsets/mapfiles/bulgarian-mik.txt
Normal file
|
@ -0,0 +1,223 @@
|
|||
=20 U+0020 SPACE
|
||||
=21 U+0021 EXCLAMATION MARK
|
||||
=22 U+0022 QUOTATION MARK
|
||||
=23 U+0023 NUMBER SIGN
|
||||
=24 U+0024 DOLLAR SIGN
|
||||
=25 U+0025 PERCENT SIGN
|
||||
=26 U+0026 AMPERSAND
|
||||
=27 U+0027 APOSTROPHE
|
||||
=28 U+0028 LEFT PARENTHESIS
|
||||
=29 U+0029 RIGHT PARENTHESIS
|
||||
=2A U+002A ASTERISK
|
||||
=2B U+002B PLUS SIGN
|
||||
=2C U+002C COMMA
|
||||
=2D U+002D HYPHEN-MINUS
|
||||
=2E U+002E FULL STOP
|
||||
=2F U+002F SOLIDUS
|
||||
=30 U+0030 DIGIT ZERO
|
||||
=31 U+0031 DIGIT ONE
|
||||
=32 U+0032 DIGIT TWO
|
||||
=33 U+0033 DIGIT THREE
|
||||
=34 U+0034 DIGIT FOUR
|
||||
=35 U+0035 DIGIT FIVE
|
||||
=36 U+0036 DIGIT SIX
|
||||
=37 U+0037 DIGIT SEVEN
|
||||
=38 U+0038 DIGIT EIGHT
|
||||
=39 U+0039 DIGIT NINE
|
||||
=3A U+003A COLON
|
||||
=3B U+003B SEMICOLON
|
||||
=3C U+003C LESS-THAN SIGN
|
||||
=3D U+003D EQUALS SIGN
|
||||
=3E U+003E GREATER-THAN SIGN
|
||||
=3F U+003F QUESTION MARK
|
||||
=40 U+0040 COMMERCIAL AT
|
||||
=41 U+0041 LATIN CAPITAL LETTER A
|
||||
=42 U+0042 LATIN CAPITAL LETTER B
|
||||
=43 U+0043 LATIN CAPITAL LETTER C
|
||||
=44 U+0044 LATIN CAPITAL LETTER D
|
||||
=45 U+0045 LATIN CAPITAL LETTER E
|
||||
=46 U+0046 LATIN CAPITAL LETTER F
|
||||
=47 U+0047 LATIN CAPITAL LETTER G
|
||||
=48 U+0048 LATIN CAPITAL LETTER H
|
||||
=49 U+0049 LATIN CAPITAL LETTER I
|
||||
=4A U+004A LATIN CAPITAL LETTER J
|
||||
=4B U+004B LATIN CAPITAL LETTER K
|
||||
=4C U+004C LATIN CAPITAL LETTER L
|
||||
=4D U+004D LATIN CAPITAL LETTER M
|
||||
=4E U+004E LATIN CAPITAL LETTER N
|
||||
=4F U+004F LATIN CAPITAL LETTER O
|
||||
=50 U+0050 LATIN CAPITAL LETTER P
|
||||
=51 U+0051 LATIN CAPITAL LETTER Q
|
||||
=52 U+0052 LATIN CAPITAL LETTER R
|
||||
=53 U+0053 LATIN CAPITAL LETTER S
|
||||
=54 U+0054 LATIN CAPITAL LETTER T
|
||||
=55 U+0055 LATIN CAPITAL LETTER U
|
||||
=56 U+0056 LATIN CAPITAL LETTER V
|
||||
=57 U+0057 LATIN CAPITAL LETTER W
|
||||
=58 U+0058 LATIN CAPITAL LETTER X
|
||||
=59 U+0059 LATIN CAPITAL LETTER Y
|
||||
=5A U+005A LATIN CAPITAL LETTER Z
|
||||
=5B U+005B LEFT SQUARE BRACKET
|
||||
=5C U+005C REVERSE SOLIDUS
|
||||
=5D U+005D RIGHT SQUARE BRACKET
|
||||
=5E U+005E CIRCUMFLEX ACCENT
|
||||
=5F U+005F LOW LINE
|
||||
=60 U+0060 GRAVE ACCENT
|
||||
=61 U+0061 LATIN SMALL LETTER A
|
||||
=62 U+0062 LATIN SMALL LETTER B
|
||||
=63 U+0063 LATIN SMALL LETTER C
|
||||
=64 U+0064 LATIN SMALL LETTER D
|
||||
=65 U+0065 LATIN SMALL LETTER E
|
||||
=66 U+0066 LATIN SMALL LETTER F
|
||||
=67 U+0067 LATIN SMALL LETTER G
|
||||
=68 U+0068 LATIN SMALL LETTER H
|
||||
=69 U+0069 LATIN SMALL LETTER I
|
||||
=6A U+006A LATIN SMALL LETTER J
|
||||
=6B U+006B LATIN SMALL LETTER K
|
||||
=6C U+006C LATIN SMALL LETTER L
|
||||
=6D U+006D LATIN SMALL LETTER M
|
||||
=6E U+006E LATIN SMALL LETTER N
|
||||
=6F U+006F LATIN SMALL LETTER O
|
||||
=70 U+0070 LATIN SMALL LETTER P
|
||||
=71 U+0071 LATIN SMALL LETTER Q
|
||||
=72 U+0072 LATIN SMALL LETTER R
|
||||
=73 U+0073 LATIN SMALL LETTER S
|
||||
=74 U+0074 LATIN SMALL LETTER T
|
||||
=75 U+0075 LATIN SMALL LETTER U
|
||||
=76 U+0076 LATIN SMALL LETTER V
|
||||
=77 U+0077 LATIN SMALL LETTER W
|
||||
=78 U+0078 LATIN SMALL LETTER X
|
||||
=79 U+0079 LATIN SMALL LETTER Y
|
||||
=7A U+007A LATIN SMALL LETTER Z
|
||||
=7B U+007B LEFT CURLY BRACKET
|
||||
=7C U+007C VERTICAL LINE
|
||||
=7D U+007D RIGHT CURLY BRACKET
|
||||
=7E U+007E TILDE
|
||||
=80 U+0410 CYRILLIC CAPITAL LETTER A
|
||||
=81 U+0411 CYRILLIC CAPITAL LETTER BE
|
||||
=82 U+0412 CYRILLIC CAPITAL LETTER VE
|
||||
=83 U+0413 CYRILLIC CAPITAL LETTER GHE
|
||||
=84 U+0414 CYRILLIC CAPITAL LETTER DE
|
||||
=85 U+0415 CYRILLIC CAPITAL LETTER IE
|
||||
=86 U+0416 CYRILLIC CAPITAL LETTER ZHE
|
||||
=87 U+0417 CYRILLIC CAPITAL LETTER ZE
|
||||
=88 U+0418 CYRILLIC CAPITAL LETTER I
|
||||
=89 U+0419 CYRILLIC CAPITAL LETTER SHORT I
|
||||
=8A U+041A CYRILLIC CAPITAL LETTER KA
|
||||
=8B U+041B CYRILLIC CAPITAL LETTER EL
|
||||
=8C U+041C CYRILLIC CAPITAL LETTER EM
|
||||
=8D U+041D CYRILLIC CAPITAL LETTER EN
|
||||
=8E U+041E CYRILLIC CAPITAL LETTER O
|
||||
=8F U+041F CYRILLIC CAPITAL LETTER PE
|
||||
=90 U+0420 CYRILLIC CAPITAL LETTER ER
|
||||
=91 U+0421 CYRILLIC CAPITAL LETTER ES
|
||||
=92 U+0422 CYRILLIC CAPITAL LETTER TE
|
||||
=93 U+0423 CYRILLIC CAPITAL LETTER U
|
||||
=94 U+0424 CYRILLIC CAPITAL LETTER EF
|
||||
=95 U+0425 CYRILLIC CAPITAL LETTER HA
|
||||
=96 U+0426 CYRILLIC CAPITAL LETTER TSE
|
||||
=97 U+0427 CYRILLIC CAPITAL LETTER CHE
|
||||
=98 U+0428 CYRILLIC CAPITAL LETTER SHA
|
||||
=99 U+0429 CYRILLIC CAPITAL LETTER SHCHA
|
||||
=9A U+042A CYRILLIC CAPITAL LETTER HARD SIGN
|
||||
=9B U+042B CYRILLIC CAPITAL LETTER YERU
|
||||
=9C U+042C CYRILLIC CAPITAL LETTER SOFT SIGN
|
||||
=9D U+042D CYRILLIC CAPITAL LETTER E
|
||||
=9E U+042E CYRILLIC CAPITAL LETTER YU
|
||||
=9F U+042F CYRILLIC CAPITAL LETTER YA
|
||||
=A0 U+0430 CYRILLIC SMALL LETTER A
|
||||
=A1 U+0431 CYRILLIC SMALL LETTER BE
|
||||
=A2 U+0432 CYRILLIC SMALL LETTER VE
|
||||
=A3 U+0433 CYRILLIC SMALL LETTER GHE
|
||||
=A4 U+0434 CYRILLIC SMALL LETTER DE
|
||||
=A5 U+0435 CYRILLIC SMALL LETTER IE
|
||||
=A6 U+0436 CYRILLIC SMALL LETTER ZHE
|
||||
=A7 U+0437 CYRILLIC SMALL LETTER ZE
|
||||
=A8 U+0438 CYRILLIC SMALL LETTER I
|
||||
=A9 U+0439 CYRILLIC SMALL LETTER SHORT I
|
||||
=AA U+043A CYRILLIC SMALL LETTER KA
|
||||
=AB U+043B CYRILLIC SMALL LETTER EL
|
||||
=AC U+043C CYRILLIC SMALL LETTER EM
|
||||
=AD U+043D CYRILLIC SMALL LETTER EN
|
||||
=AE U+043E CYRILLIC SMALL LETTER O
|
||||
=AF U+043F CYRILLIC SMALL LETTER PE
|
||||
=B0 U+0440 CYRILLIC SMALL LETTER ER
|
||||
=B1 U+0441 CYRILLIC SMALL LETTER ES
|
||||
=B2 U+0442 CYRILLIC SMALL LETTER TE
|
||||
=B3 U+0443 CYRILLIC SMALL LETTER U
|
||||
=B4 U+0444 CYRILLIC SMALL LETTER EF
|
||||
=B5 U+0445 CYRILLIC SMALL LETTER HA
|
||||
=B6 U+0446 CYRILLIC SMALL LETTER TSE
|
||||
=B7 U+0447 CYRILLIC SMALL LETTER CHE
|
||||
=B8 U+0448 CYRILLIC SMALL LETTER SHA
|
||||
=B9 U+0449 CYRILLIC SMALL LETTER SHCHA
|
||||
=BA U+044A CYRILLIC SMALL LETTER HARD SIGN
|
||||
=BB U+044B CYRILLIC SMALL LETTER YERU
|
||||
=BC U+044C CYRILLIC SMALL LETTER SOFT SIGN
|
||||
=BD U+044D CYRILLIC SMALL LETTER E
|
||||
=BE U+044E CYRILLIC SMALL LETTER YU
|
||||
=BF U+044F CYRILLIC SMALL LETTER YA
|
||||
=C0 U+2514 BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
=C1 U+2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
=C2 U+252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
=C3 U+251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
=C4 U+2500 BOX DRAWINGS LIGHT HORIZONTAL
|
||||
=C5 U+253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
=C6 U+2563 BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
=C7 U+2551 BOX DRAWINGS DOUBLE VERTICAL
|
||||
=C8 U+255A BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
=C9 U+2554 BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
=CA U+2569 BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
=CB U+2566 BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
=CC U+2560 BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
=CD U+2550 BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
=CE U+256C BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
=CF U+2510 BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
=D0 U+2591 LIGHT SHADE
|
||||
=D1 U+2592 MEDIUM SHADE
|
||||
=D2 U+2593 DARK SHADE
|
||||
=D3 U+2502 BOX DRAWINGS LIGHT VERTICAL
|
||||
=D4 U+2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
=D5 U+2116 NUMERO SIGN
|
||||
=D6 U+00A7 SECTION SIGN
|
||||
=D7 U+2557 BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
=D8 U+255D BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
=D9 U+2518 BOX DRAWINGS LIGHT UP AND LEFT
|
||||
=DA U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
=DB U+2588 FULL BLOCK
|
||||
=DC U+2584 LOWER HALF BLOCK
|
||||
=DD U+258C LEFT HALF BLOCK
|
||||
=DE U+2590 RIGHT HALF BLOCK
|
||||
=DF U+2580 UPPER HALF BLOCK
|
||||
=E0 U+03B1 GREEK SMALL LETTER ALPHA
|
||||
=E1 U+03B2 GREEK SMALL LETTER BETA
|
||||
=E2 U+0393 GREEK CAPITAL LETTER GAMMA
|
||||
=E3 U+03C0 GREEK SMALL LETTER PI
|
||||
=E4 U+03A3 GREEK CAPITAL LETTER SIGMA
|
||||
=E5 U+03C3 GREEK SMALL LETTER SIGMA
|
||||
=E6 U+03BC GREEK SMALL LETTER MU
|
||||
=E7 U+03C4 GREEK SMALL LETTER TAU
|
||||
=E8 U+03A6 GREEK CAPITAL LETTER PHI
|
||||
=E9 U+0398 GREEK CAPITAL LETTER THETA
|
||||
=EA U+03A9 GREEK CAPITAL LETTER OMEGA
|
||||
=EB U+03B4 GREEK SMALL LETTER DELTA
|
||||
=EC U+221E INFINITY
|
||||
=ED U+2205 EMPTY SET
|
||||
=EE U+2208 ELEMENT OF
|
||||
=EF U+2229 INTERSECTION
|
||||
=F0 U+2261 IDENTICAL TO
|
||||
=F1 U+00B1 PLUS-MINUS SIGN
|
||||
=F2 U+2265 GREATER-THAN OR EQUAL TO
|
||||
=F3 U+2264 LESS-THAN OR EQUAL TO
|
||||
=F4 U+2320 TOP HALF INTEGRAL
|
||||
=F5 U+2321 BOTTOM HALF INTEGRAL
|
||||
=F6 U+00F7 DIVISION SIGN
|
||||
=F7 U+2248 ALMOST EQUAL TO
|
||||
=F8 U+00B0 DEGREE SIGN
|
||||
=F9 U+2219 BULLET OPERATOR
|
||||
=FA U+00B7 MIDDLE DOT
|
||||
=FB U+221A SQUARE ROOT
|
||||
=FC U+207F SUPERSCRIPT LATIN SMALL LETTER N
|
||||
=FD U+00B2 SUPERSCRIPT TWO
|
||||
=FE U+25A0 BLACK SQUARE
|
||||
=FF U+00A0 NO-BREAK SPACE
|
Binary file not shown.
BIN
admin/charsets/mapfiles/cns2ucsdkw.txt
Normal file
BIN
admin/charsets/mapfiles/cns2ucsdkw.txt
Normal file
Binary file not shown.
Binary file not shown.
203
admin/charsets/mapfiles/stdenc.txt
Normal file
203
admin/charsets/mapfiles/stdenc.txt
Normal file
|
@ -0,0 +1,203 @@
|
|||
#
|
||||
# Name: Adobe Standard Encoding to Unicode
|
||||
# Unicode version: 2.0
|
||||
# Table version: 0.2
|
||||
# Date: 30 March 1999
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). No
|
||||
# claims are made as to fitness for any particular purpose. No warranties of
|
||||
# any kind are expressed or implied. The recipient agrees to determine
|
||||
# applicability of information provided. If this file has been provided on
|
||||
# magnetic media by Unicode, Inc., the sole remedy for any claim will be
|
||||
# exchange of defective media within 90 days of receipt.
|
||||
#
|
||||
# Recipient is granted the right to make copies in any form for internal
|
||||
# distribution and to freely use the information supplied in the creation of
|
||||
# products supporting Unicode. Unicode, Inc. specifically excludes the right
|
||||
# to re-distribute this file directly to third parties or other organizations
|
||||
# whether for profit or not.
|
||||
#
|
||||
# Format: 4 tab-delimited fields:
|
||||
#
|
||||
# (1) The Unicode value (in hexadecimal)
|
||||
# (2) The Adobe Standard Encoding code point (in hexadecimal)
|
||||
# (3) # Unicode name
|
||||
# (4) # PostScript character name
|
||||
#
|
||||
# General Notes:
|
||||
#
|
||||
# The Unicode values in this table were produced as the result of applying
|
||||
# the algorithm described in the section "Populating a Unicode space" in the
|
||||
# document "Unicode and Glyph Names," at
|
||||
# http://partners.adobe.com/asn/developer/typeforum/unicodegn.html
|
||||
# to the characters encoded in Adobe Standard Encoding. Note that some
|
||||
# Standard Encoding characters, such as "space", are mapped to 2 Unicode
|
||||
# values. Refer to the above document for more details.
|
||||
#
|
||||
# Revision History:
|
||||
#
|
||||
# [v0.2, 30 March 1999]
|
||||
# Different algorithm to produce Unicode values (see notes above) results in
|
||||
# some character codes being mapped to 2 Unicode values. Updated Unicode
|
||||
# names to Unicode 2.0 names.
|
||||
#
|
||||
# [v0.1, 5 May 1995] First release.
|
||||
#
|
||||
# Contact <unicode-inc@unicode.org> with any questions or comments.
|
||||
#
|
||||
0020 20 # SPACE # space
|
||||
00A0 20 # NO-BREAK SPACE # space
|
||||
0021 21 # EXCLAMATION MARK # exclam
|
||||
0022 22 # QUOTATION MARK # quotedbl
|
||||
0023 23 # NUMBER SIGN # numbersign
|
||||
0024 24 # DOLLAR SIGN # dollar
|
||||
0025 25 # PERCENT SIGN # percent
|
||||
0026 26 # AMPERSAND # ampersand
|
||||
2019 27 # RIGHT SINGLE QUOTATION MARK # quoteright
|
||||
0028 28 # LEFT PARENTHESIS # parenleft
|
||||
0029 29 # RIGHT PARENTHESIS # parenright
|
||||
002A 2A # ASTERISK # asterisk
|
||||
002B 2B # PLUS SIGN # plus
|
||||
002C 2C # COMMA # comma
|
||||
002D 2D # HYPHEN-MINUS # hyphen
|
||||
00AD 2D # SOFT HYPHEN # hyphen
|
||||
002E 2E # FULL STOP # period
|
||||
002F 2F # SOLIDUS # slash
|
||||
0030 30 # DIGIT ZERO # zero
|
||||
0031 31 # DIGIT ONE # one
|
||||
0032 32 # DIGIT TWO # two
|
||||
0033 33 # DIGIT THREE # three
|
||||
0034 34 # DIGIT FOUR # four
|
||||
0035 35 # DIGIT FIVE # five
|
||||
0036 36 # DIGIT SIX # six
|
||||
0037 37 # DIGIT SEVEN # seven
|
||||
0038 38 # DIGIT EIGHT # eight
|
||||
0039 39 # DIGIT NINE # nine
|
||||
003A 3A # COLON # colon
|
||||
003B 3B # SEMICOLON # semicolon
|
||||
003C 3C # LESS-THAN SIGN # less
|
||||
003D 3D # EQUALS SIGN # equal
|
||||
003E 3E # GREATER-THAN SIGN # greater
|
||||
003F 3F # QUESTION MARK # question
|
||||
0040 40 # COMMERCIAL AT # at
|
||||
0041 41 # LATIN CAPITAL LETTER A # A
|
||||
0042 42 # LATIN CAPITAL LETTER B # B
|
||||
0043 43 # LATIN CAPITAL LETTER C # C
|
||||
0044 44 # LATIN CAPITAL LETTER D # D
|
||||
0045 45 # LATIN CAPITAL LETTER E # E
|
||||
0046 46 # LATIN CAPITAL LETTER F # F
|
||||
0047 47 # LATIN CAPITAL LETTER G # G
|
||||
0048 48 # LATIN CAPITAL LETTER H # H
|
||||
0049 49 # LATIN CAPITAL LETTER I # I
|
||||
004A 4A # LATIN CAPITAL LETTER J # J
|
||||
004B 4B # LATIN CAPITAL LETTER K # K
|
||||
004C 4C # LATIN CAPITAL LETTER L # L
|
||||
004D 4D # LATIN CAPITAL LETTER M # M
|
||||
004E 4E # LATIN CAPITAL LETTER N # N
|
||||
004F 4F # LATIN CAPITAL LETTER O # O
|
||||
0050 50 # LATIN CAPITAL LETTER P # P
|
||||
0051 51 # LATIN CAPITAL LETTER Q # Q
|
||||
0052 52 # LATIN CAPITAL LETTER R # R
|
||||
0053 53 # LATIN CAPITAL LETTER S # S
|
||||
0054 54 # LATIN CAPITAL LETTER T # T
|
||||
0055 55 # LATIN CAPITAL LETTER U # U
|
||||
0056 56 # LATIN CAPITAL LETTER V # V
|
||||
0057 57 # LATIN CAPITAL LETTER W # W
|
||||
0058 58 # LATIN CAPITAL LETTER X # X
|
||||
0059 59 # LATIN CAPITAL LETTER Y # Y
|
||||
005A 5A # LATIN CAPITAL LETTER Z # Z
|
||||
005B 5B # LEFT SQUARE BRACKET # bracketleft
|
||||
005C 5C # REVERSE SOLIDUS # backslash
|
||||
005D 5D # RIGHT SQUARE BRACKET # bracketright
|
||||
005E 5E # CIRCUMFLEX ACCENT # asciicircum
|
||||
005F 5F # LOW LINE # underscore
|
||||
2018 60 # LEFT SINGLE QUOTATION MARK # quoteleft
|
||||
0061 61 # LATIN SMALL LETTER A # a
|
||||
0062 62 # LATIN SMALL LETTER B # b
|
||||
0063 63 # LATIN SMALL LETTER C # c
|
||||
0064 64 # LATIN SMALL LETTER D # d
|
||||
0065 65 # LATIN SMALL LETTER E # e
|
||||
0066 66 # LATIN SMALL LETTER F # f
|
||||
0067 67 # LATIN SMALL LETTER G # g
|
||||
0068 68 # LATIN SMALL LETTER H # h
|
||||
0069 69 # LATIN SMALL LETTER I # i
|
||||
006A 6A # LATIN SMALL LETTER J # j
|
||||
006B 6B # LATIN SMALL LETTER K # k
|
||||
006C 6C # LATIN SMALL LETTER L # l
|
||||
006D 6D # LATIN SMALL LETTER M # m
|
||||
006E 6E # LATIN SMALL LETTER N # n
|
||||
006F 6F # LATIN SMALL LETTER O # o
|
||||
0070 70 # LATIN SMALL LETTER P # p
|
||||
0071 71 # LATIN SMALL LETTER Q # q
|
||||
0072 72 # LATIN SMALL LETTER R # r
|
||||
0073 73 # LATIN SMALL LETTER S # s
|
||||
0074 74 # LATIN SMALL LETTER T # t
|
||||
0075 75 # LATIN SMALL LETTER U # u
|
||||
0076 76 # LATIN SMALL LETTER V # v
|
||||
0077 77 # LATIN SMALL LETTER W # w
|
||||
0078 78 # LATIN SMALL LETTER X # x
|
||||
0079 79 # LATIN SMALL LETTER Y # y
|
||||
007A 7A # LATIN SMALL LETTER Z # z
|
||||
007B 7B # LEFT CURLY BRACKET # braceleft
|
||||
007C 7C # VERTICAL LINE # bar
|
||||
007D 7D # RIGHT CURLY BRACKET # braceright
|
||||
007E 7E # TILDE # asciitilde
|
||||
00A1 A1 # INVERTED EXCLAMATION MARK # exclamdown
|
||||
00A2 A2 # CENT SIGN # cent
|
||||
00A3 A3 # POUND SIGN # sterling
|
||||
2044 A4 # FRACTION SLASH # fraction
|
||||
2215 A4 # DIVISION SLASH # fraction
|
||||
00A5 A5 # YEN SIGN # yen
|
||||
0192 A6 # LATIN SMALL LETTER F WITH HOOK # florin
|
||||
00A7 A7 # SECTION SIGN # section
|
||||
00A4 A8 # CURRENCY SIGN # currency
|
||||
0027 A9 # APOSTROPHE # quotesingle
|
||||
201C AA # LEFT DOUBLE QUOTATION MARK # quotedblleft
|
||||
00AB AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK # guillemotleft
|
||||
2039 AC # SINGLE LEFT-POINTING ANGLE QUOTATION MARK # guilsinglleft
|
||||
203A AD # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK # guilsinglright
|
||||
FB01 AE # LATIN SMALL LIGATURE FI # fi
|
||||
FB02 AF # LATIN SMALL LIGATURE FL # fl
|
||||
2013 B1 # EN DASH # endash
|
||||
2020 B2 # DAGGER # dagger
|
||||
2021 B3 # DOUBLE DAGGER # daggerdbl
|
||||
00B7 B4 # MIDDLE DOT # periodcentered
|
||||
2219 B4 # BULLET OPERATOR # periodcentered
|
||||
00B6 B6 # PILCROW SIGN # paragraph
|
||||
2022 B7 # BULLET # bullet
|
||||
201A B8 # SINGLE LOW-9 QUOTATION MARK # quotesinglbase
|
||||
201E B9 # DOUBLE LOW-9 QUOTATION MARK # quotedblbase
|
||||
201D BA # RIGHT DOUBLE QUOTATION MARK # quotedblright
|
||||
00BB BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK # guillemotright
|
||||
2026 BC # HORIZONTAL ELLIPSIS # ellipsis
|
||||
2030 BD # PER MILLE SIGN # perthousand
|
||||
00BF BF # INVERTED QUESTION MARK # questiondown
|
||||
0060 C1 # GRAVE ACCENT # grave
|
||||
00B4 C2 # ACUTE ACCENT # acute
|
||||
02C6 C3 # MODIFIER LETTER CIRCUMFLEX ACCENT # circumflex
|
||||
02DC C4 # SMALL TILDE # tilde
|
||||
00AF C5 # MACRON # macron
|
||||
02C9 C5 # MODIFIER LETTER MACRON # macron
|
||||
02D8 C6 # BREVE # breve
|
||||
02D9 C7 # DOT ABOVE # dotaccent
|
||||
00A8 C8 # DIAERESIS # dieresis
|
||||
02DA CA # RING ABOVE # ring
|
||||
00B8 CB # CEDILLA # cedilla
|
||||
02DD CD # DOUBLE ACUTE ACCENT # hungarumlaut
|
||||
02DB CE # OGONEK # ogonek
|
||||
02C7 CF # CARON # caron
|
||||
2014 D0 # EM DASH # emdash
|
||||
00C6 E1 # LATIN CAPITAL LETTER AE # AE
|
||||
00AA E3 # FEMININE ORDINAL INDICATOR # ordfeminine
|
||||
0141 E8 # LATIN CAPITAL LETTER L WITH STROKE # Lslash
|
||||
00D8 E9 # LATIN CAPITAL LETTER O WITH STROKE # Oslash
|
||||
0152 EA # LATIN CAPITAL LIGATURE OE # OE
|
||||
00BA EB # MASCULINE ORDINAL INDICATOR # ordmasculine
|
||||
00E6 F1 # LATIN SMALL LETTER AE # ae
|
||||
0131 F5 # LATIN SMALL LETTER DOTLESS I # dotlessi
|
||||
0142 F8 # LATIN SMALL LETTER L WITH STROKE # lslash
|
||||
00F8 F9 # LATIN SMALL LETTER O WITH STROKE # oslash
|
||||
0153 FA # LATIN SMALL LIGATURE OE # oe
|
||||
00DF FB # LATIN SMALL LETTER SHARP S # germandbls
|
Binary file not shown.
246
admin/charsets/mapfiles/symbol.txt
Normal file
246
admin/charsets/mapfiles/symbol.txt
Normal file
|
@ -0,0 +1,246 @@
|
|||
#
|
||||
# Name: Adobe Symbol Encoding to Unicode
|
||||
# Unicode version: 2.0
|
||||
# Table version: 0.2
|
||||
# Date: 30 March 1999
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). No
|
||||
# claims are made as to fitness for any particular purpose. No warranties of
|
||||
# any kind are expressed or implied. The recipient agrees to determine
|
||||
# applicability of information provided. If this file has been provided on
|
||||
# magnetic media by Unicode, Inc., the sole remedy for any claim will be
|
||||
# exchange of defective media within 90 days of receipt.
|
||||
#
|
||||
# Recipient is granted the right to make copies in any form for internal
|
||||
# distribution and to freely use the information supplied in the creation of
|
||||
# products supporting Unicode. Unicode, Inc. specifically excludes the right
|
||||
# to re-distribute this file directly to third parties or other organizations
|
||||
# whether for profit or not.
|
||||
#
|
||||
# Format: 4 tab-delimited fields:
|
||||
#
|
||||
# (1) The Unicode value (in hexadecimal)
|
||||
# (2) The Symbol Encoding code point (in hexadecimal)
|
||||
# (3) # Unicode name
|
||||
# (4) # PostScript character name
|
||||
#
|
||||
# General Notes:
|
||||
#
|
||||
# The Unicode values in this table were produced as the result of applying
|
||||
# the algorithm described in the section "Populating a Unicode space" in the
|
||||
# document "Unicode and Glyph Names," at
|
||||
# http://partners.adobe.com/asn/developer/typeforum/unicodegn.html
|
||||
# to the characters in Symbol. Note that some characters, such as "space",
|
||||
# are mapped to 2 Unicode values. 29 characters have assignments in the
|
||||
# Corporate Use Subarea; these are indicated by "(CUS)" in field 4. Refer to
|
||||
# the above document for more details.
|
||||
#
|
||||
# Revision History:
|
||||
#
|
||||
# [v0.2, 30 March 1999]
|
||||
# Different algorithm to produce Unicode values (see notes above) results in
|
||||
# some character codes being mapped to 2 Unicode values; use of Corporate
|
||||
# Use subarea values; addition of the euro character; changed assignments of
|
||||
# some characters such as the COPYRIGHT SIGNs and RADICAL EXTENDER. Updated
|
||||
# Unicode names to Unicode 2.0 names.
|
||||
#
|
||||
# [v0.1, 5 May 1995] First release.
|
||||
#
|
||||
# Contact <unicode-inc@unicode.org> with any questions or comments.
|
||||
#
|
||||
0020 20 # SPACE # space
|
||||
00A0 20 # NO-BREAK SPACE # space
|
||||
0021 21 # EXCLAMATION MARK # exclam
|
||||
2200 22 # FOR ALL # universal
|
||||
0023 23 # NUMBER SIGN # numbersign
|
||||
2203 24 # THERE EXISTS # existential
|
||||
0025 25 # PERCENT SIGN # percent
|
||||
0026 26 # AMPERSAND # ampersand
|
||||
220B 27 # CONTAINS AS MEMBER # suchthat
|
||||
0028 28 # LEFT PARENTHESIS # parenleft
|
||||
0029 29 # RIGHT PARENTHESIS # parenright
|
||||
2217 2A # ASTERISK OPERATOR # asteriskmath
|
||||
002B 2B # PLUS SIGN # plus
|
||||
002C 2C # COMMA # comma
|
||||
2212 2D # MINUS SIGN # minus
|
||||
002E 2E # FULL STOP # period
|
||||
002F 2F # SOLIDUS # slash
|
||||
0030 30 # DIGIT ZERO # zero
|
||||
0031 31 # DIGIT ONE # one
|
||||
0032 32 # DIGIT TWO # two
|
||||
0033 33 # DIGIT THREE # three
|
||||
0034 34 # DIGIT FOUR # four
|
||||
0035 35 # DIGIT FIVE # five
|
||||
0036 36 # DIGIT SIX # six
|
||||
0037 37 # DIGIT SEVEN # seven
|
||||
0038 38 # DIGIT EIGHT # eight
|
||||
0039 39 # DIGIT NINE # nine
|
||||
003A 3A # COLON # colon
|
||||
003B 3B # SEMICOLON # semicolon
|
||||
003C 3C # LESS-THAN SIGN # less
|
||||
003D 3D # EQUALS SIGN # equal
|
||||
003E 3E # GREATER-THAN SIGN # greater
|
||||
003F 3F # QUESTION MARK # question
|
||||
2245 40 # APPROXIMATELY EQUAL TO # congruent
|
||||
0391 41 # GREEK CAPITAL LETTER ALPHA # Alpha
|
||||
0392 42 # GREEK CAPITAL LETTER BETA # Beta
|
||||
03A7 43 # GREEK CAPITAL LETTER CHI # Chi
|
||||
0394 44 # GREEK CAPITAL LETTER DELTA # Delta
|
||||
2206 44 # INCREMENT # Delta
|
||||
0395 45 # GREEK CAPITAL LETTER EPSILON # Epsilon
|
||||
03A6 46 # GREEK CAPITAL LETTER PHI # Phi
|
||||
0393 47 # GREEK CAPITAL LETTER GAMMA # Gamma
|
||||
0397 48 # GREEK CAPITAL LETTER ETA # Eta
|
||||
0399 49 # GREEK CAPITAL LETTER IOTA # Iota
|
||||
03D1 4A # GREEK THETA SYMBOL # theta1
|
||||
039A 4B # GREEK CAPITAL LETTER KAPPA # Kappa
|
||||
039B 4C # GREEK CAPITAL LETTER LAMDA # Lambda
|
||||
039C 4D # GREEK CAPITAL LETTER MU # Mu
|
||||
039D 4E # GREEK CAPITAL LETTER NU # Nu
|
||||
039F 4F # GREEK CAPITAL LETTER OMICRON # Omicron
|
||||
03A0 50 # GREEK CAPITAL LETTER PI # Pi
|
||||
0398 51 # GREEK CAPITAL LETTER THETA # Theta
|
||||
03A1 52 # GREEK CAPITAL LETTER RHO # Rho
|
||||
03A3 53 # GREEK CAPITAL LETTER SIGMA # Sigma
|
||||
03A4 54 # GREEK CAPITAL LETTER TAU # Tau
|
||||
03A5 55 # GREEK CAPITAL LETTER UPSILON # Upsilon
|
||||
03C2 56 # GREEK SMALL LETTER FINAL SIGMA # sigma1
|
||||
03A9 57 # GREEK CAPITAL LETTER OMEGA # Omega
|
||||
2126 57 # OHM SIGN # Omega
|
||||
039E 58 # GREEK CAPITAL LETTER XI # Xi
|
||||
03A8 59 # GREEK CAPITAL LETTER PSI # Psi
|
||||
0396 5A # GREEK CAPITAL LETTER ZETA # Zeta
|
||||
005B 5B # LEFT SQUARE BRACKET # bracketleft
|
||||
2234 5C # THEREFORE # therefore
|
||||
005D 5D # RIGHT SQUARE BRACKET # bracketright
|
||||
22A5 5E # UP TACK # perpendicular
|
||||
005F 5F # LOW LINE # underscore
|
||||
F8E5 60 # RADICAL EXTENDER # radicalex (CUS)
|
||||
03B1 61 # GREEK SMALL LETTER ALPHA # alpha
|
||||
03B2 62 # GREEK SMALL LETTER BETA # beta
|
||||
03C7 63 # GREEK SMALL LETTER CHI # chi
|
||||
03B4 64 # GREEK SMALL LETTER DELTA # delta
|
||||
03B5 65 # GREEK SMALL LETTER EPSILON # epsilon
|
||||
03C6 66 # GREEK SMALL LETTER PHI # phi
|
||||
03B3 67 # GREEK SMALL LETTER GAMMA # gamma
|
||||
03B7 68 # GREEK SMALL LETTER ETA # eta
|
||||
03B9 69 # GREEK SMALL LETTER IOTA # iota
|
||||
03D5 6A # GREEK PHI SYMBOL # phi1
|
||||
03BA 6B # GREEK SMALL LETTER KAPPA # kappa
|
||||
03BB 6C # GREEK SMALL LETTER LAMDA # lambda
|
||||
00B5 6D # MICRO SIGN # mu
|
||||
03BC 6D # GREEK SMALL LETTER MU # mu
|
||||
03BD 6E # GREEK SMALL LETTER NU # nu
|
||||
03BF 6F # GREEK SMALL LETTER OMICRON # omicron
|
||||
03C0 70 # GREEK SMALL LETTER PI # pi
|
||||
03B8 71 # GREEK SMALL LETTER THETA # theta
|
||||
03C1 72 # GREEK SMALL LETTER RHO # rho
|
||||
03C3 73 # GREEK SMALL LETTER SIGMA # sigma
|
||||
03C4 74 # GREEK SMALL LETTER TAU # tau
|
||||
03C5 75 # GREEK SMALL LETTER UPSILON # upsilon
|
||||
03D6 76 # GREEK PI SYMBOL # omega1
|
||||
03C9 77 # GREEK SMALL LETTER OMEGA # omega
|
||||
03BE 78 # GREEK SMALL LETTER XI # xi
|
||||
03C8 79 # GREEK SMALL LETTER PSI # psi
|
||||
03B6 7A # GREEK SMALL LETTER ZETA # zeta
|
||||
007B 7B # LEFT CURLY BRACKET # braceleft
|
||||
007C 7C # VERTICAL LINE # bar
|
||||
007D 7D # RIGHT CURLY BRACKET # braceright
|
||||
223C 7E # TILDE OPERATOR # similar
|
||||
20AC A0 # EURO SIGN # Euro
|
||||
03D2 A1 # GREEK UPSILON WITH HOOK SYMBOL # Upsilon1
|
||||
2032 A2 # PRIME # minute
|
||||
2264 A3 # LESS-THAN OR EQUAL TO # lessequal
|
||||
2044 A4 # FRACTION SLASH # fraction
|
||||
2215 A4 # DIVISION SLASH # fraction
|
||||
221E A5 # INFINITY # infinity
|
||||
0192 A6 # LATIN SMALL LETTER F WITH HOOK # florin
|
||||
2663 A7 # BLACK CLUB SUIT # club
|
||||
2666 A8 # BLACK DIAMOND SUIT # diamond
|
||||
2665 A9 # BLACK HEART SUIT # heart
|
||||
2660 AA # BLACK SPADE SUIT # spade
|
||||
2194 AB # LEFT RIGHT ARROW # arrowboth
|
||||
2190 AC # LEFTWARDS ARROW # arrowleft
|
||||
2191 AD # UPWARDS ARROW # arrowup
|
||||
2192 AE # RIGHTWARDS ARROW # arrowright
|
||||
2193 AF # DOWNWARDS ARROW # arrowdown
|
||||
00B0 B0 # DEGREE SIGN # degree
|
||||
00B1 B1 # PLUS-MINUS SIGN # plusminus
|
||||
2033 B2 # DOUBLE PRIME # second
|
||||
2265 B3 # GREATER-THAN OR EQUAL TO # greaterequal
|
||||
00D7 B4 # MULTIPLICATION SIGN # multiply
|
||||
221D B5 # PROPORTIONAL TO # proportional
|
||||
2202 B6 # PARTIAL DIFFERENTIAL # partialdiff
|
||||
2022 B7 # BULLET # bullet
|
||||
00F7 B8 # DIVISION SIGN # divide
|
||||
2260 B9 # NOT EQUAL TO # notequal
|
||||
2261 BA # IDENTICAL TO # equivalence
|
||||
2248 BB # ALMOST EQUAL TO # approxequal
|
||||
2026 BC # HORIZONTAL ELLIPSIS # ellipsis
|
||||
F8E6 BD # VERTICAL ARROW EXTENDER # arrowvertex (CUS)
|
||||
F8E7 BE # HORIZONTAL ARROW EXTENDER # arrowhorizex (CUS)
|
||||
21B5 BF # DOWNWARDS ARROW WITH CORNER LEFTWARDS # carriagereturn
|
||||
2135 C0 # ALEF SYMBOL # aleph
|
||||
2111 C1 # BLACK-LETTER CAPITAL I # Ifraktur
|
||||
211C C2 # BLACK-LETTER CAPITAL R # Rfraktur
|
||||
2118 C3 # SCRIPT CAPITAL P # weierstrass
|
||||
2297 C4 # CIRCLED TIMES # circlemultiply
|
||||
2295 C5 # CIRCLED PLUS # circleplus
|
||||
2205 C6 # EMPTY SET # emptyset
|
||||
2229 C7 # INTERSECTION # intersection
|
||||
222A C8 # UNION # union
|
||||
2283 C9 # SUPERSET OF # propersuperset
|
||||
2287 CA # SUPERSET OF OR EQUAL TO # reflexsuperset
|
||||
2284 CB # NOT A SUBSET OF # notsubset
|
||||
2282 CC # SUBSET OF # propersubset
|
||||
2286 CD # SUBSET OF OR EQUAL TO # reflexsubset
|
||||
2208 CE # ELEMENT OF # element
|
||||
2209 CF # NOT AN ELEMENT OF # notelement
|
||||
2220 D0 # ANGLE # angle
|
||||
2207 D1 # NABLA # gradient
|
||||
F6DA D2 # REGISTERED SIGN SERIF # registerserif (CUS)
|
||||
F6D9 D3 # COPYRIGHT SIGN SERIF # copyrightserif (CUS)
|
||||
F6DB D4 # TRADE MARK SIGN SERIF # trademarkserif (CUS)
|
||||
220F D5 # N-ARY PRODUCT # product
|
||||
221A D6 # SQUARE ROOT # radical
|
||||
22C5 D7 # DOT OPERATOR # dotmath
|
||||
00AC D8 # NOT SIGN # logicalnot
|
||||
2227 D9 # LOGICAL AND # logicaland
|
||||
2228 DA # LOGICAL OR # logicalor
|
||||
21D4 DB # LEFT RIGHT DOUBLE ARROW # arrowdblboth
|
||||
21D0 DC # LEFTWARDS DOUBLE ARROW # arrowdblleft
|
||||
21D1 DD # UPWARDS DOUBLE ARROW # arrowdblup
|
||||
21D2 DE # RIGHTWARDS DOUBLE ARROW # arrowdblright
|
||||
21D3 DF # DOWNWARDS DOUBLE ARROW # arrowdbldown
|
||||
25CA E0 # LOZENGE # lozenge
|
||||
2329 E1 # LEFT-POINTING ANGLE BRACKET # angleleft
|
||||
F8E8 E2 # REGISTERED SIGN SANS SERIF # registersans (CUS)
|
||||
F8E9 E3 # COPYRIGHT SIGN SANS SERIF # copyrightsans (CUS)
|
||||
F8EA E4 # TRADE MARK SIGN SANS SERIF # trademarksans (CUS)
|
||||
2211 E5 # N-ARY SUMMATION # summation
|
||||
F8EB E6 # LEFT PAREN TOP # parenlefttp (CUS)
|
||||
F8EC E7 # LEFT PAREN EXTENDER # parenleftex (CUS)
|
||||
F8ED E8 # LEFT PAREN BOTTOM # parenleftbt (CUS)
|
||||
F8EE E9 # LEFT SQUARE BRACKET TOP # bracketlefttp (CUS)
|
||||
F8EF EA # LEFT SQUARE BRACKET EXTENDER # bracketleftex (CUS)
|
||||
F8F0 EB # LEFT SQUARE BRACKET BOTTOM # bracketleftbt (CUS)
|
||||
F8F1 EC # LEFT CURLY BRACKET TOP # bracelefttp (CUS)
|
||||
F8F2 ED # LEFT CURLY BRACKET MID # braceleftmid (CUS)
|
||||
F8F3 EE # LEFT CURLY BRACKET BOTTOM # braceleftbt (CUS)
|
||||
F8F4 EF # CURLY BRACKET EXTENDER # braceex (CUS)
|
||||
232A F1 # RIGHT-POINTING ANGLE BRACKET # angleright
|
||||
222B F2 # INTEGRAL # integral
|
||||
2320 F3 # TOP HALF INTEGRAL # integraltp
|
||||
F8F5 F4 # INTEGRAL EXTENDER # integralex (CUS)
|
||||
2321 F5 # BOTTOM HALF INTEGRAL # integralbt
|
||||
F8F6 F6 # RIGHT PAREN TOP # parenrighttp (CUS)
|
||||
F8F7 F7 # RIGHT PAREN EXTENDER # parenrightex (CUS)
|
||||
F8F8 F8 # RIGHT PAREN BOTTOM # parenrightbt (CUS)
|
||||
F8F9 F9 # RIGHT SQUARE BRACKET TOP # bracketrighttp (CUS)
|
||||
F8FA FA # RIGHT SQUARE BRACKET EXTENDER # bracketrightex (CUS)
|
||||
F8FB FB # RIGHT SQUARE BRACKET BOTTOM # bracketrightbt (CUS)
|
||||
F8FC FC # RIGHT CURLY BRACKET TOP # bracerighttp (CUS)
|
||||
F8FD FD # RIGHT CURLY BRACKET MID # bracerightmid (CUS)
|
||||
F8FE FE # RIGHT CURLY BRACKET BOTTOM # bracerightbt (CUS)
|
Binary file not shown.
20
admin/grammars/README
Normal file
20
admin/grammars/README
Normal file
|
@ -0,0 +1,20 @@
|
|||
This directory contains grammar files in Bison and Wisent, used to
|
||||
generate the parser data in the lisp/semantic/bovine/ and
|
||||
lisp/semantic/wisent/ directories. You can run the parser generators
|
||||
with
|
||||
|
||||
emacs -batch --no-site-file -l bovine-grammar.el -f semantic-mode \
|
||||
-f semantic-grammar-batch-build-packages *.by
|
||||
|
||||
emacs -batch --no-site-file -l wisent-grammar.el -f semantic-mode \
|
||||
-f semantic-grammar-batch-build-packages *.wy
|
||||
|
||||
The output files were subsequently edited by hand to fix copyright
|
||||
headers, variable names (to follow library name conventions), and
|
||||
feature names. These changes do not alter the code logic, and can be
|
||||
viewed by diffing to the files in lisp/semantic/bovine/ and
|
||||
lisp/semantic/wisent/.
|
||||
|
||||
Currently, the parser files in lisp/ are not generated directly from
|
||||
these grammar files when making Emacs. This state of affairs, and the
|
||||
contents of this directory, will change in a future version of Emacs.
|
438
admin/grammars/bovine-grammar.el
Normal file
438
admin/grammars/bovine-grammar.el
Normal file
|
@ -0,0 +1,438 @@
|
|||
;;; bovine-grammar.el --- Bovine's input grammar mode
|
||||
;;
|
||||
;; Copyright (C) 2002-2011 Free Software Foundation, Inc.
|
||||
;;
|
||||
;; Author: David Ponce <david@dponce.com>
|
||||
;; Maintainer: David Ponce <david@dponce.com>
|
||||
;; Created: 26 Aug 2002
|
||||
;; Keywords: syntax
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; GNU Emacs is free software: you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
;;
|
||||
;; Major mode for editing Bovine's input grammar (.by) files.
|
||||
|
||||
;;; History:
|
||||
|
||||
;;; Code:
|
||||
(require 'semantic)
|
||||
(require 'semantic/grammar)
|
||||
(require 'semantic/find)
|
||||
(require 'semantic/lex)
|
||||
(require 'semantic/wisent)
|
||||
(require 'semantic/bovine)
|
||||
|
||||
(defun bovine-grammar-EXPAND (bounds nonterm)
|
||||
"Expand call to EXPAND grammar macro.
|
||||
Return the form to parse from within a nonterminal between BOUNDS.
|
||||
NONTERM is the nonterminal symbol to start with."
|
||||
`(semantic-bovinate-from-nonterminal
|
||||
(car ,bounds) (cdr ,bounds) ',nonterm))
|
||||
|
||||
(defun bovine-grammar-EXPANDFULL (bounds nonterm)
|
||||
"Expand call to EXPANDFULL grammar macro.
|
||||
Return the form to recursively parse the area between BOUNDS.
|
||||
NONTERM is the nonterminal symbol to start with."
|
||||
`(semantic-parse-region
|
||||
(car ,bounds) (cdr ,bounds) ',nonterm 1))
|
||||
|
||||
(defun bovine-grammar-TAG (name class &rest attributes)
|
||||
"Expand call to TAG grammar macro.
|
||||
Return the form to create a generic semantic tag.
|
||||
See the function `semantic-tag' for the meaning of arguments NAME,
|
||||
CLASS and ATTRIBUTES."
|
||||
`(semantic-tag ,name ,class ,@attributes))
|
||||
|
||||
(defun bovine-grammar-VARIABLE-TAG (name type default-value &rest attributes)
|
||||
"Expand call to VARIABLE-TAG grammar macro.
|
||||
Return the form to create a semantic tag of class variable.
|
||||
See the function `semantic-tag-new-variable' for the meaning of
|
||||
arguments NAME, TYPE, DEFAULT-VALUE and ATTRIBUTES."
|
||||
`(semantic-tag-new-variable ,name ,type ,default-value ,@attributes))
|
||||
|
||||
(defun bovine-grammar-FUNCTION-TAG (name type arg-list &rest attributes)
|
||||
"Expand call to FUNCTION-TAG grammar macro.
|
||||
Return the form to create a semantic tag of class function.
|
||||
See the function `semantic-tag-new-function' for the meaning of
|
||||
arguments NAME, TYPE, ARG-LIST and ATTRIBUTES."
|
||||
`(semantic-tag-new-function ,name ,type ,arg-list ,@attributes))
|
||||
|
||||
(defun bovine-grammar-TYPE-TAG (name type members parents &rest attributes)
|
||||
"Expand call to TYPE-TAG grammar macro.
|
||||
Return the form to create a semantic tag of class type.
|
||||
See the function `semantic-tag-new-type' for the meaning of arguments
|
||||
NAME, TYPE, MEMBERS, PARENTS and ATTRIBUTES."
|
||||
`(semantic-tag-new-type ,name ,type ,members ,parents ,@attributes))
|
||||
|
||||
(defun bovine-grammar-INCLUDE-TAG (name system-flag &rest attributes)
|
||||
"Expand call to INCLUDE-TAG grammar macro.
|
||||
Return the form to create a semantic tag of class include.
|
||||
See the function `semantic-tag-new-include' for the meaning of
|
||||
arguments NAME, SYSTEM-FLAG and ATTRIBUTES."
|
||||
`(semantic-tag-new-include ,name ,system-flag ,@attributes))
|
||||
|
||||
(defun bovine-grammar-PACKAGE-TAG (name detail &rest attributes)
|
||||
"Expand call to PACKAGE-TAG grammar macro.
|
||||
Return the form to create a semantic tag of class package.
|
||||
See the function `semantic-tag-new-package' for the meaning of
|
||||
arguments NAME, DETAIL and ATTRIBUTES."
|
||||
`(semantic-tag-new-package ,name ,detail ,@attributes))
|
||||
|
||||
(defun bovine-grammar-CODE-TAG (name detail &rest attributes)
|
||||
"Expand call to CODE-TAG grammar macro.
|
||||
Return the form to create a semantic tag of class code.
|
||||
See the function `semantic-tag-new-code' for the meaning of arguments
|
||||
NAME, DETAIL and ATTRIBUTES."
|
||||
`(semantic-tag-new-code ,name ,detail ,@attributes))
|
||||
|
||||
(defun bovine-grammar-ALIAS-TAG (name aliasclass definition &rest attributes)
|
||||
"Expand call to ALIAS-TAG grammar macro.
|
||||
Return the form to create a semantic tag of class alias.
|
||||
See the function `semantic-tag-new-alias' for the meaning of arguments
|
||||
NAME, ALIASCLASS, DEFINITION and ATTRIBUTES."
|
||||
`(semantic-tag-new-alias ,name ,aliasclass ,definition ,@attributes))
|
||||
|
||||
;; Cache of macro definitions currently in use.
|
||||
(defvar bovine--grammar-macros nil)
|
||||
|
||||
(defun bovine-grammar-expand-form (form quotemode &optional inplace)
|
||||
"Expand FORM into a new one suitable to the bovine parser.
|
||||
FORM is a list in which we are substituting.
|
||||
Argument QUOTEMODE is non-nil if we are in backquote mode.
|
||||
When non-nil, optional argument INPLACE indicates that FORM is being
|
||||
expanded from elsewhere."
|
||||
(when (eq (car form) 'quote)
|
||||
(setq form (cdr form))
|
||||
(cond
|
||||
((and (= (length form) 1) (listp (car form)))
|
||||
(insert "\n(append")
|
||||
(bovine-grammar-expand-form (car form) quotemode nil)
|
||||
(insert ")")
|
||||
(setq form nil inplace nil)
|
||||
)
|
||||
((and (= (length form) 1) (symbolp (car form)))
|
||||
(insert "\n'" (symbol-name (car form)))
|
||||
(setq form nil inplace nil)
|
||||
)
|
||||
(t
|
||||
(insert "\n(list")
|
||||
(setq inplace t)
|
||||
)))
|
||||
(let ((macro (assq (car form) bovine--grammar-macros))
|
||||
inlist first n q x)
|
||||
(if macro
|
||||
(bovine-grammar-expand-form
|
||||
(apply (cdr macro) (cdr form))
|
||||
quotemode t)
|
||||
(if inplace (insert "\n("))
|
||||
(while form
|
||||
(setq first (car form)
|
||||
form (cdr form))
|
||||
(cond
|
||||
((eq first nil)
|
||||
(when (and (not inlist) (not inplace))
|
||||
(insert "\n(list")
|
||||
(setq inlist t))
|
||||
(insert " nil")
|
||||
)
|
||||
((listp first)
|
||||
;;(let ((fn (and (symbolp (caar form)) (fboundp (caar form)))))
|
||||
(when (and (not inlist) (not inplace))
|
||||
(insert "\n(list")
|
||||
(setq inlist t))
|
||||
;;(if (and inplace (not fn) (not (eq (caar form) 'EXPAND)))
|
||||
;; (insert " (append"))
|
||||
(bovine-grammar-expand-form
|
||||
first quotemode t) ;;(and fn (not (eq fn 'quote))))
|
||||
;;(if (and inplace (not fn) (not (eq (caar form) 'EXPAND)))
|
||||
;; (insert ")"))
|
||||
;;)
|
||||
)
|
||||
((symbolp first)
|
||||
(setq n (symbol-name first) ;the name
|
||||
q quotemode ;implied quote flag
|
||||
x nil) ;expand flag
|
||||
(if (eq (aref n 0) ?,)
|
||||
(if quotemode
|
||||
;; backquote mode needs the @
|
||||
(if (eq (aref n 1) ?@)
|
||||
(setq n (substring n 2)
|
||||
q nil
|
||||
x t)
|
||||
;; non backquote mode behaves normally.
|
||||
(setq n (substring n 1)
|
||||
q nil))
|
||||
(setq n (substring n 1)
|
||||
x t)))
|
||||
(if (string= n "")
|
||||
(progn
|
||||
;; We expand only the next item in place (a list?)
|
||||
;; A regular inline-list...
|
||||
(bovine-grammar-expand-form (car form) quotemode t)
|
||||
(setq form (cdr form)))
|
||||
(if (and (eq (aref n 0) ?$)
|
||||
;; Don't expand $ tokens in implied quote mode.
|
||||
;; This acts like quoting in other symbols.
|
||||
(not q))
|
||||
(progn
|
||||
(cond
|
||||
((and (not x) (not inlist) (not inplace))
|
||||
(insert "\n(list"))
|
||||
((and x inlist (not inplace))
|
||||
(insert ")")
|
||||
(setq inlist nil)))
|
||||
(insert "\n(nth " (int-to-string
|
||||
(1- (string-to-number
|
||||
(substring n 1))))
|
||||
" vals)")
|
||||
(and (not x) (not inplace)
|
||||
(setq inlist t)))
|
||||
|
||||
(when (and (not inlist) (not inplace))
|
||||
(insert "\n(list")
|
||||
(setq inlist t))
|
||||
(or (char-equal (char-before) ?\()
|
||||
(insert " "))
|
||||
(insert (if (or inplace (eq first t))
|
||||
"" "'")
|
||||
n))) ;; " "
|
||||
)
|
||||
(t
|
||||
(when (and (not inlist) (not inplace))
|
||||
(insert "\n(list")
|
||||
(setq inlist t))
|
||||
(insert (format "\n%S" first))
|
||||
)
|
||||
))
|
||||
(if inlist (insert ")"))
|
||||
(if inplace (insert ")")))
|
||||
))
|
||||
|
||||
(defun bovine-grammar-expand-action (textform quotemode)
|
||||
"Expand semantic action string TEXTFORM into Lisp code.
|
||||
QUOTEMODE is the mode in which quoted symbols are slurred."
|
||||
(if (string= "" textform)
|
||||
nil
|
||||
(let ((sexp (read textform)))
|
||||
;; We converted the lambda string into a list. Now write it
|
||||
;; out as the bovine lambda expression, and do macro-like
|
||||
;; conversion upon it.
|
||||
(insert "\n")
|
||||
(cond
|
||||
((eq (car sexp) 'EXPAND)
|
||||
(insert ",(lambda (vals start end)")
|
||||
;; The EXPAND macro definition is mandatory
|
||||
(bovine-grammar-expand-form
|
||||
(apply (cdr (assq 'EXPAND bovine--grammar-macros)) (cdr sexp))
|
||||
quotemode t)
|
||||
)
|
||||
((and (listp (car sexp)) (eq (caar sexp) 'EVAL))
|
||||
;; The user wants to evaluate the following args.
|
||||
;; Use a simpler expander
|
||||
)
|
||||
(t
|
||||
(insert ",(semantic-lambda")
|
||||
(bovine-grammar-expand-form sexp quotemode)
|
||||
))
|
||||
(insert ")\n")))
|
||||
)
|
||||
|
||||
(defun bovine-grammar-parsetable-builder ()
|
||||
"Return the parser table expression as a string value.
|
||||
The format of a bovine parser table is:
|
||||
|
||||
( ( NONTERMINAL-SYMBOL1 MATCH-LIST1 )
|
||||
( NONTERMINAL-SYMBOL2 MATCH-LIST2 )
|
||||
...
|
||||
( NONTERMINAL-SYMBOLn MATCH-LISTn )
|
||||
|
||||
Where each NONTERMINAL-SYMBOL is an artificial symbol which can appear
|
||||
in any child state. As a starting place, one of the NONTERMINAL-SYMBOLS
|
||||
must be `bovine-toplevel'.
|
||||
|
||||
A MATCH-LIST is a list of possible matches of the form:
|
||||
|
||||
( STATE-LIST1
|
||||
STATE-LIST2
|
||||
...
|
||||
STATE-LISTN )
|
||||
|
||||
where STATE-LIST is of the form:
|
||||
( TYPE1 [ \"VALUE1\" ] TYPE2 [ \"VALUE2\" ] ... LAMBDA )
|
||||
|
||||
where TYPE is one of the returned types of the token stream.
|
||||
VALUE is a value, or range of values to match against. For
|
||||
example, a SYMBOL might need to match \"foo\". Some TYPES will not
|
||||
have matching criteria.
|
||||
|
||||
LAMBDA is a lambda expression which is evaled with the text of the
|
||||
type when it is found. It is passed the list of all buffer text
|
||||
elements found since the last lambda expression. It should return a
|
||||
semantic element (see below.)
|
||||
|
||||
For consistency between languages, try to use common return values
|
||||
from your parser. Please reference the chapter \"Writing Parsers\" in
|
||||
the \"Language Support Developer's Guide -\" in the semantic texinfo
|
||||
manual."
|
||||
(let* ((start (semantic-grammar-start))
|
||||
(scopestart (semantic-grammar-scopestart))
|
||||
(quotemode (semantic-grammar-quotemode))
|
||||
(tags (semantic-find-tags-by-class
|
||||
'token (current-buffer)))
|
||||
(nterms (semantic-find-tags-by-class
|
||||
'nonterminal (current-buffer)))
|
||||
;; Setup the cache of macro definitions.
|
||||
(bovine--grammar-macros (semantic-grammar-macros))
|
||||
nterm rules items item actn prec tag type regex)
|
||||
|
||||
;; Check some trivial things
|
||||
(cond
|
||||
((null nterms)
|
||||
(error "Bad input grammar"))
|
||||
(start
|
||||
(if (cdr start)
|
||||
(message "Extra start symbols %S ignored" (cdr start)))
|
||||
(setq start (symbol-name (car start)))
|
||||
(unless (semantic-find-first-tag-by-name start nterms)
|
||||
(error "start symbol `%s' has no rule" start)))
|
||||
(t
|
||||
;; Default to the first grammar rule.
|
||||
(setq start (semantic-tag-name (car nterms)))))
|
||||
(when scopestart
|
||||
(setq scopestart (symbol-name scopestart))
|
||||
(unless (semantic-find-first-tag-by-name scopestart nterms)
|
||||
(error "scopestart symbol `%s' has no rule" scopestart)))
|
||||
|
||||
;; Generate the grammar Lisp form.
|
||||
(with-temp-buffer
|
||||
(erase-buffer)
|
||||
(insert "`(")
|
||||
;; Insert the start/scopestart rules
|
||||
(insert "\n(bovine-toplevel \n("
|
||||
start
|
||||
")\n) ;; end bovine-toplevel\n")
|
||||
(when scopestart
|
||||
(insert "\n(bovine-inner-scope \n("
|
||||
scopestart
|
||||
")\n) ;; end bovine-inner-scope\n"))
|
||||
;; Process each nonterminal
|
||||
(while nterms
|
||||
(setq nterm (car nterms)
|
||||
;; We can't use the override form because the current buffer
|
||||
;; is not the originator of the tag.
|
||||
rules (semantic-tag-components-semantic-grammar-mode nterm)
|
||||
nterm (semantic-tag-name nterm)
|
||||
nterms (cdr nterms))
|
||||
(when (member nterm '("bovine-toplevel" "bovine-inner-scope"))
|
||||
(error "`%s' is a reserved internal name" nterm))
|
||||
(insert "\n(" nterm)
|
||||
;; Process each rule
|
||||
(while rules
|
||||
(setq items (semantic-tag-get-attribute (car rules) :value)
|
||||
prec (semantic-tag-get-attribute (car rules) :prec)
|
||||
actn (semantic-tag-get-attribute (car rules) :expr)
|
||||
rules (cdr rules))
|
||||
;; Process each item
|
||||
(insert "\n(")
|
||||
(if (null items)
|
||||
;; EMPTY rule
|
||||
(insert ";;EMPTY" (if actn "" "\n"))
|
||||
;; Expand items
|
||||
(while items
|
||||
(setq item (car items)
|
||||
items (cdr items))
|
||||
(if (consp item) ;; mid-rule action
|
||||
(message "Mid-rule action %S ignored" item)
|
||||
(or (char-equal (char-before) ?\()
|
||||
(insert "\n"))
|
||||
(cond
|
||||
((member item '("bovine-toplevel" "bovine-inner-scope"))
|
||||
(error "`%s' is a reserved internal name" item))
|
||||
;; Replace ITEM by its %token definition.
|
||||
;; If a '%token TYPE ITEM [REGEX]' definition exists
|
||||
;; in the grammar, ITEM is replaced by TYPE [REGEX].
|
||||
((setq tag (semantic-find-first-tag-by-name
|
||||
item tags)
|
||||
type (semantic-tag-get-attribute tag :type))
|
||||
(insert type)
|
||||
(if (setq regex (semantic-tag-get-attribute tag :value))
|
||||
(insert (format "\n%S" regex))))
|
||||
;; Don't change ITEM
|
||||
(t
|
||||
(insert (semantic-grammar-item-text item)))
|
||||
))))
|
||||
(if prec
|
||||
(message "%%prec %S ignored" prec))
|
||||
(if actn
|
||||
(bovine-grammar-expand-action actn quotemode))
|
||||
(insert ")"))
|
||||
(insert "\n) ;; end " nterm "\n"))
|
||||
(insert ")\n")
|
||||
(buffer-string))))
|
||||
|
||||
(defun bovine-grammar-setupcode-builder ()
|
||||
"Return the text of the setup code."
|
||||
(format
|
||||
"(setq semantic--parse-table %s\n\
|
||||
semantic-debug-parser-source %S\n\
|
||||
semantic-debug-parser-class 'semantic-bovine-debug-parser
|
||||
semantic-flex-keywords-obarray %s\n\
|
||||
%s)"
|
||||
(semantic-grammar-parsetable)
|
||||
(buffer-name)
|
||||
(semantic-grammar-keywordtable)
|
||||
(let ((mode (semantic-grammar-languagemode)))
|
||||
;; Is there more than one major mode?
|
||||
(if (and (listp mode) (> (length mode) 1))
|
||||
(format "semantic-equivalent-major-modes '%S\n" mode)
|
||||
""))))
|
||||
|
||||
(defvar bovine-grammar-menu
|
||||
'("BY Grammar"
|
||||
)
|
||||
"BY mode specific grammar menu.
|
||||
Menu items are appended to the common grammar menu.")
|
||||
|
||||
(define-derived-mode bovine-grammar-mode semantic-grammar-mode "BY"
|
||||
"Major mode for editing Bovine grammars."
|
||||
(semantic-grammar-setup-menu bovine-grammar-menu)
|
||||
(semantic-install-function-overrides
|
||||
'((grammar-parsetable-builder . bovine-grammar-parsetable-builder)
|
||||
(grammar-setupcode-builder . bovine-grammar-setupcode-builder)
|
||||
)))
|
||||
|
||||
(add-to-list 'auto-mode-alist '("\\.by$" . bovine-grammar-mode))
|
||||
|
||||
(defvar-mode-local bovine-grammar-mode semantic-grammar-macros
|
||||
'(
|
||||
(ASSOC . semantic-grammar-ASSOC)
|
||||
(EXPAND . bovine-grammar-EXPAND)
|
||||
(EXPANDFULL . bovine-grammar-EXPANDFULL)
|
||||
(TAG . bovine-grammar-TAG)
|
||||
(VARIABLE-TAG . bovine-grammar-VARIABLE-TAG)
|
||||
(FUNCTION-TAG . bovine-grammar-FUNCTION-TAG)
|
||||
(TYPE-TAG . bovine-grammar-TYPE-TAG)
|
||||
(INCLUDE-TAG . bovine-grammar-INCLUDE-TAG)
|
||||
(PACKAGE-TAG . bovine-grammar-PACKAGE-TAG)
|
||||
(CODE-TAG . bovine-grammar-CODE-TAG)
|
||||
(ALIAS-TAG . bovine-grammar-ALIAS-TAG)
|
||||
)
|
||||
"Semantic grammar macros used in bovine grammars.")
|
||||
|
||||
(provide 'semantic/bovine/grammar)
|
||||
|
||||
;;; bovine-grammar.el ends here
|
1202
admin/grammars/c.by
Normal file
1202
admin/grammars/c.by
Normal file
File diff suppressed because it is too large
Load diff
750
admin/grammars/java-tags.wy
Normal file
750
admin/grammars/java-tags.wy
Normal file
|
@ -0,0 +1,750 @@
|
|||
;;; java-tags.wy -- Semantic LALR grammar for Java
|
||||
|
||||
;; Copyright (C) 2002-2011 Free Software Foundation, Inc.
|
||||
;;
|
||||
;; Author: David Ponce <david@dponce.com>
|
||||
;; Maintainer: David Ponce <david@dponce.com>
|
||||
;; Created: 26 Aug 2002
|
||||
;; Keywords: syntax
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; GNU Emacs is free software: you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
%package wisent-java-tags-wy
|
||||
|
||||
%languagemode java-mode
|
||||
|
||||
;; The default start symbol
|
||||
%start compilation_unit
|
||||
;; Alternate entry points
|
||||
;; - Needed by partial re-parse
|
||||
%start package_declaration
|
||||
%start import_declaration
|
||||
%start class_declaration
|
||||
%start field_declaration
|
||||
%start method_declaration
|
||||
%start formal_parameter
|
||||
%start constructor_declaration
|
||||
%start interface_declaration
|
||||
;; - Needed by EXPANDFULL clauses
|
||||
%start class_member_declaration
|
||||
%start interface_member_declaration
|
||||
%start formal_parameters
|
||||
|
||||
;; -----------------------------
|
||||
;; Block & Parenthesis terminals
|
||||
;; -----------------------------
|
||||
%type <block> ;;syntax "\\s(\\|\\s)" matchdatatype block
|
||||
|
||||
%token <block> PAREN_BLOCK "(LPAREN RPAREN)"
|
||||
%token <block> BRACE_BLOCK "(LBRACE RBRACE)"
|
||||
%token <block> BRACK_BLOCK "(LBRACK RBRACK)"
|
||||
|
||||
%token <open-paren> LPAREN "("
|
||||
%token <close-paren> RPAREN ")"
|
||||
%token <open-paren> LBRACE "{"
|
||||
%token <close-paren> RBRACE "}"
|
||||
%token <open-paren> LBRACK "["
|
||||
%token <close-paren> RBRACK "]"
|
||||
|
||||
;; ------------------
|
||||
;; Operator terminals
|
||||
;; ------------------
|
||||
%type <punctuation> ;;syntax "\\(\\s.\\|\\s$\\|\\s'\\)+" matchdatatype string
|
||||
|
||||
%token <punctuation> NOT "!"
|
||||
%token <punctuation> NOTEQ "!="
|
||||
%token <punctuation> MOD "%"
|
||||
%token <punctuation> MODEQ "%="
|
||||
%token <punctuation> AND "&"
|
||||
%token <punctuation> ANDAND "&&"
|
||||
%token <punctuation> ANDEQ "&="
|
||||
%token <punctuation> MULT "*"
|
||||
%token <punctuation> MULTEQ "*="
|
||||
%token <punctuation> PLUS "+"
|
||||
%token <punctuation> PLUSPLUS "++"
|
||||
%token <punctuation> PLUSEQ "+="
|
||||
%token <punctuation> COMMA ","
|
||||
%token <punctuation> MINUS "-"
|
||||
%token <punctuation> MINUSMINUS "--"
|
||||
%token <punctuation> MINUSEQ "-="
|
||||
%token <punctuation> DOT "."
|
||||
%token <punctuation> DIV "/"
|
||||
%token <punctuation> DIVEQ "/="
|
||||
%token <punctuation> COLON ":"
|
||||
%token <punctuation> SEMICOLON ";"
|
||||
%token <punctuation> LT "<"
|
||||
%token <punctuation> LSHIFT "<<"
|
||||
%token <punctuation> LSHIFTEQ "<<="
|
||||
%token <punctuation> LTEQ "<="
|
||||
%token <punctuation> EQ "="
|
||||
%token <punctuation> EQEQ "=="
|
||||
%token <punctuation> GT ">"
|
||||
%token <punctuation> GTEQ ">="
|
||||
%token <punctuation> RSHIFT ">>"
|
||||
%token <punctuation> RSHIFTEQ ">>="
|
||||
%token <punctuation> URSHIFT ">>>"
|
||||
%token <punctuation> URSHIFTEQ ">>>="
|
||||
%token <punctuation> QUESTION "?"
|
||||
%token <punctuation> XOR "^"
|
||||
%token <punctuation> XOREQ "^="
|
||||
%token <punctuation> OR "|"
|
||||
%token <punctuation> OREQ "|="
|
||||
%token <punctuation> OROR "||"
|
||||
%token <punctuation> COMP "~"
|
||||
|
||||
;; -----------------
|
||||
;; Literal terminals
|
||||
;; -----------------
|
||||
%type <symbol> ;;syntax "\\(\\sw\\|\\s_\\)+"
|
||||
%token <symbol> IDENTIFIER
|
||||
|
||||
%type <string> ;;syntax "\\s\"" matchdatatype sexp
|
||||
%token <string> STRING_LITERAL
|
||||
|
||||
%type <number> ;;syntax semantic-lex-number-expression
|
||||
%token <number> NUMBER_LITERAL
|
||||
|
||||
%type <unicode> syntax "\\\\u[0-9a-f][0-9a-f][0-9a-f][0-9a-f]"
|
||||
%token <unicode> unicodecharacter
|
||||
|
||||
;; -----------------
|
||||
;; Keyword terminals
|
||||
;; -----------------
|
||||
|
||||
;; Generate a keyword analyzer
|
||||
%type <keyword> ;;syntax "\\(\\sw\\|\\s_\\)+" matchdatatype keyword
|
||||
|
||||
%keyword ABSTRACT "abstract"
|
||||
%put ABSTRACT summary
|
||||
"Class|Method declaration modifier: abstract {class|<type>} <name> ..."
|
||||
|
||||
%keyword BOOLEAN "boolean"
|
||||
%put BOOLEAN summary
|
||||
"Primitive logical quantity type (true or false)"
|
||||
|
||||
%keyword BREAK "break"
|
||||
%put BREAK summary
|
||||
"break [<label>] ;"
|
||||
|
||||
%keyword BYTE "byte"
|
||||
%put BYTE summary
|
||||
"Integral primitive type (-128 to 127)"
|
||||
|
||||
%keyword CASE "case"
|
||||
%put CASE summary
|
||||
"switch(<expr>) {case <const-expr>: <stmts> ... }"
|
||||
|
||||
%keyword CATCH "catch"
|
||||
%put CATCH summary
|
||||
"try {<stmts>} catch(<parm>) {<stmts>} ... "
|
||||
|
||||
%keyword CHAR "char"
|
||||
%put CHAR summary
|
||||
"Integral primitive type ('\u0000' to '\uffff') (0 to 65535)"
|
||||
|
||||
%keyword CLASS "class"
|
||||
%put CLASS summary
|
||||
"Class declaration: class <name>"
|
||||
|
||||
%keyword CONST "const"
|
||||
%put CONST summary
|
||||
"Unused reserved word"
|
||||
|
||||
%keyword CONTINUE "continue"
|
||||
%put CONTINUE summary
|
||||
"continue [<label>] ;"
|
||||
|
||||
%keyword DEFAULT "default"
|
||||
%put DEFAULT summary
|
||||
"switch(<expr>) { ... default: <stmts>}"
|
||||
|
||||
%keyword DO "do"
|
||||
%put DO summary
|
||||
"do <stmt> while (<expr>);"
|
||||
|
||||
%keyword DOUBLE "double"
|
||||
%put DOUBLE summary
|
||||
"Primitive floating-point type (double-precision 64-bit IEEE 754)"
|
||||
|
||||
%keyword ELSE "else"
|
||||
%put ELSE summary
|
||||
"if (<expr>) <stmt> else <stmt>"
|
||||
|
||||
%keyword EXTENDS "extends"
|
||||
%put EXTENDS summary
|
||||
"SuperClass|SuperInterfaces declaration: extends <name> [, ...]"
|
||||
|
||||
%keyword FINAL "final"
|
||||
%put FINAL summary
|
||||
"Class|Member declaration modifier: final {class|<type>} <name> ..."
|
||||
|
||||
%keyword FINALLY "finally"
|
||||
%put FINALLY summary
|
||||
"try {<stmts>} ... finally {<stmts>}"
|
||||
|
||||
%keyword FLOAT "float"
|
||||
%put FLOAT summary
|
||||
"Primitive floating-point type (single-precision 32-bit IEEE 754)"
|
||||
|
||||
%keyword FOR "for"
|
||||
%put FOR summary
|
||||
"for ([<init-expr>]; [<expr>]; [<update-expr>]) <stmt>"
|
||||
|
||||
%keyword GOTO "goto"
|
||||
%put GOTO summary
|
||||
"Unused reserved word"
|
||||
|
||||
%keyword IF "if"
|
||||
%put IF summary
|
||||
"if (<expr>) <stmt> [else <stmt>]"
|
||||
|
||||
%keyword IMPLEMENTS "implements"
|
||||
%put IMPLEMENTS summary
|
||||
"Class SuperInterfaces declaration: implements <name> [, ...]"
|
||||
|
||||
%keyword IMPORT "import"
|
||||
%put IMPORT summary
|
||||
"Import package declarations: import <package>"
|
||||
|
||||
%keyword INSTANCEOF "instanceof"
|
||||
|
||||
%keyword INT "int"
|
||||
%put INT summary
|
||||
"Integral primitive type (-2147483648 to 2147483647)"
|
||||
|
||||
%keyword INTERFACE "interface"
|
||||
%put INTERFACE summary
|
||||
"Interface declaration: interface <name>"
|
||||
|
||||
%keyword LONG "long"
|
||||
%put LONG summary
|
||||
"Integral primitive type (-9223372036854775808 to 9223372036854775807)"
|
||||
|
||||
%keyword NATIVE "native"
|
||||
%put NATIVE summary
|
||||
"Method declaration modifier: native <type> <name> ..."
|
||||
|
||||
%keyword NEW "new"
|
||||
|
||||
%keyword PACKAGE "package"
|
||||
%put PACKAGE summary
|
||||
"Package declaration: package <name>"
|
||||
|
||||
%keyword PRIVATE "private"
|
||||
%put PRIVATE summary
|
||||
"Access level modifier: private {class|interface|<type>} <name> ..."
|
||||
|
||||
%keyword PROTECTED "protected"
|
||||
%put PROTECTED summary
|
||||
"Access level modifier: protected {class|interface|<type>} <name> ..."
|
||||
|
||||
%keyword PUBLIC "public"
|
||||
%put PUBLIC summary
|
||||
"Access level modifier: public {class|interface|<type>} <name> ..."
|
||||
|
||||
%keyword RETURN "return"
|
||||
%put RETURN summary
|
||||
"return [<expr>] ;"
|
||||
|
||||
%keyword SHORT "short"
|
||||
%put SHORT summary
|
||||
"Integral primitive type (-32768 to 32767)"
|
||||
|
||||
%keyword STATIC "static"
|
||||
%put STATIC summary
|
||||
"Declaration modifier: static {class|interface|<type>} <name> ..."
|
||||
|
||||
%keyword STRICTFP "strictfp"
|
||||
%put STRICTFP summary
|
||||
"Declaration modifier: strictfp {class|interface|<type>} <name> ..."
|
||||
|
||||
%keyword SUPER "super"
|
||||
|
||||
%keyword SWITCH "switch"
|
||||
%put SWITCH summary
|
||||
"switch(<expr>) {[case <const-expr>: <stmts> ...] [default: <stmts>]}"
|
||||
|
||||
|
||||
%keyword SYNCHRONIZED "synchronized"
|
||||
%put SYNCHRONIZED summary
|
||||
"synchronized (<expr>) ... | Method decl. modifier: synchronized <type> <name> ..."
|
||||
|
||||
%keyword THIS "this"
|
||||
|
||||
%keyword THROW "throw"
|
||||
%put THROW summary
|
||||
"throw <expr> ;"
|
||||
|
||||
%keyword THROWS "throws"
|
||||
%put THROWS summary
|
||||
"Method|Constructor declaration: throws <classType>, ..."
|
||||
|
||||
%keyword TRANSIENT "transient"
|
||||
%put TRANSIENT summary
|
||||
"Field declaration modifier: transient <type> <name> ..."
|
||||
|
||||
%keyword TRY "try"
|
||||
%put TRY summary
|
||||
"try {<stmts>} [catch(<parm>) {<stmts>} ...] [finally {<stmts>}]"
|
||||
|
||||
%keyword VOID "void"
|
||||
%put VOID summary
|
||||
"Method return type: void <name> ..."
|
||||
|
||||
%keyword VOLATILE "volatile"
|
||||
%put VOLATILE summary
|
||||
"Field declaration modifier: volatile <type> <name> ..."
|
||||
|
||||
%keyword WHILE "while"
|
||||
%put WHILE summary
|
||||
"while (<expr>) <stmt> | do <stmt> while (<expr>);"
|
||||
|
||||
;; --------------------------
|
||||
;; Official javadoc line tags
|
||||
;; --------------------------
|
||||
|
||||
;; Javadoc tags are identified by a 'javadoc' keyword property. The
|
||||
;; value of this property must be itself a property list where the
|
||||
;; following properties are recognized:
|
||||
;;
|
||||
;; - `seq' (mandatory) is the tag sequence number used to check if tags
|
||||
;; are correctly ordered in a javadoc comment block.
|
||||
;;
|
||||
;; - `usage' (mandatory) is the list of token categories for which this
|
||||
;; documentation tag is allowed.
|
||||
;;
|
||||
;; - `opt' (optional) if non-nil indicates this is an optional tag.
|
||||
;; By default tags are mandatory.
|
||||
;;
|
||||
;; - `with-name' (optional) if non-nil indicates that this tag is
|
||||
;; followed by an identifier like in "@param <var-name> description"
|
||||
;; or "@exception <class-name> description".
|
||||
;;
|
||||
;; - `with-ref' (optional) if non-nil indicates that the tag is
|
||||
;; followed by a reference like in "@see <reference>".
|
||||
|
||||
%keyword _AUTHOR "@author"
|
||||
%put _AUTHOR javadoc (seq 1 usage (type))
|
||||
%keyword _VERSION "@version"
|
||||
%put _VERSION javadoc (seq 2 usage (type))
|
||||
%keyword _PARAM "@param"
|
||||
%put _PARAM javadoc (seq 3 usage (function) with-name t)
|
||||
%keyword _RETURN "@return"
|
||||
%put _RETURN javadoc (seq 4 usage (function))
|
||||
%keyword _EXCEPTION "@exception"
|
||||
%put _EXCEPTION javadoc (seq 5 usage (function) with-name t)
|
||||
%keyword _THROWS "@throws"
|
||||
%put _THROWS javadoc (seq 6 usage (function) with-name t)
|
||||
%keyword _SEE "@see"
|
||||
%put _SEE javadoc (seq 7 usage (type function variable) opt t with-ref t)
|
||||
%keyword _SINCE "@since"
|
||||
%put _SINCE javadoc (seq 8 usage (type function variable) opt t)
|
||||
%keyword _SERIAL "@serial"
|
||||
%put _SERIAL javadoc (seq 9 usage (variable) opt t)
|
||||
%keyword _SERIALDATA "@serialData"
|
||||
%put _SERIALDATA javadoc (seq 10 usage (function) opt t)
|
||||
%keyword _SERIALFIELD "@serialField"
|
||||
%put _SERIALFIELD javadoc (seq 11 usage (variable) opt t)
|
||||
%keyword _DEPRECATED "@deprecated"
|
||||
%put _DEPRECATED javadoc (seq 12 usage (type function variable) opt t)
|
||||
|
||||
%%
|
||||
|
||||
;; ------------
|
||||
;; LALR Grammar
|
||||
;; ------------
|
||||
|
||||
;; This grammar is not designed to fully parse correct Java syntax. It
|
||||
;; is optimized to work in an interactive environment to extract tokens
|
||||
;; (tags) needed by Semantic. In some cases a syntax not allowed by
|
||||
;; the Java Language Specification will be accepted by this grammar.
|
||||
|
||||
compilation_unit
|
||||
: package_declaration
|
||||
| import_declaration
|
||||
| type_declaration
|
||||
;
|
||||
|
||||
;;; Package statement token
|
||||
;; ("NAME" package DETAIL "DOCSTRING")
|
||||
package_declaration
|
||||
: PACKAGE qualified_name SEMICOLON
|
||||
(PACKAGE-TAG $2 nil)
|
||||
;
|
||||
|
||||
;;; Include file token
|
||||
;; ("FILE" include SYSTEM "DOCSTRING")
|
||||
import_declaration
|
||||
: IMPORT qualified_name SEMICOLON
|
||||
(INCLUDE-TAG $2 nil)
|
||||
| IMPORT qualified_name DOT MULT SEMICOLON
|
||||
(INCLUDE-TAG (concat $2 $3 $4) nil)
|
||||
;
|
||||
|
||||
type_declaration
|
||||
: SEMICOLON
|
||||
()
|
||||
| class_declaration
|
||||
| interface_declaration
|
||||
;
|
||||
|
||||
;;; Type Declaration token
|
||||
;; ("NAME" type "TYPE" ( PART-LIST ) ( PARENTS ) EXTRA-SPEC "DOCSTRING")
|
||||
class_declaration
|
||||
: modifiers_opt CLASS qualified_name superc_opt interfaces_opt class_body
|
||||
(TYPE-TAG $3 $2 $6 (if (or $4 $5) (cons $4 $5)) :typemodifiers $1)
|
||||
;
|
||||
|
||||
superc_opt
|
||||
: ;;EMPTY
|
||||
| EXTENDS qualified_name
|
||||
(identity $2)
|
||||
;
|
||||
|
||||
interfaces_opt
|
||||
: ;;EMPTY
|
||||
| IMPLEMENTS qualified_name_list
|
||||
(nreverse $2)
|
||||
;
|
||||
|
||||
class_body
|
||||
: BRACE_BLOCK
|
||||
(EXPANDFULL $1 class_member_declaration)
|
||||
;
|
||||
|
||||
class_member_declaration
|
||||
: LBRACE
|
||||
()
|
||||
| RBRACE
|
||||
()
|
||||
| block
|
||||
()
|
||||
| static_initializer
|
||||
()
|
||||
| constructor_declaration
|
||||
| interface_declaration
|
||||
| class_declaration
|
||||
| method_declaration
|
||||
| field_declaration
|
||||
;
|
||||
|
||||
;;; Type Declaration token
|
||||
;; ("NAME" type "TYPE" ( PART-LIST ) ( PARENTS ) EXTRA-SPEC "DOCSTRING")
|
||||
interface_declaration
|
||||
: modifiers_opt INTERFACE IDENTIFIER extends_interfaces_opt interface_body
|
||||
(TYPE-TAG $3 $2 $5 (if $4 (cons nil $4)) :typemodifiers $1)
|
||||
;
|
||||
|
||||
extends_interfaces_opt
|
||||
: ;;EMPTY
|
||||
| EXTENDS qualified_name_list
|
||||
(identity $2)
|
||||
;
|
||||
|
||||
interface_body
|
||||
: BRACE_BLOCK
|
||||
(EXPANDFULL $1 interface_member_declaration)
|
||||
;
|
||||
|
||||
interface_member_declaration
|
||||
: LBRACE
|
||||
()
|
||||
| RBRACE
|
||||
()
|
||||
| interface_declaration
|
||||
| class_declaration
|
||||
| method_declaration
|
||||
| field_declaration
|
||||
;
|
||||
|
||||
static_initializer
|
||||
: STATIC block
|
||||
;
|
||||
|
||||
;;; Function token
|
||||
;; ("NAME" function "TYPE" ( ARG-LIST ) EXTRA-SPEC "DOCSTRING")
|
||||
constructor_declaration
|
||||
: modifiers_opt constructor_declarator throwsc_opt constructor_body
|
||||
(FUNCTION-TAG (car $2) nil (cdr $2)
|
||||
:typemodifiers $1
|
||||
:throws $3
|
||||
:constructor-flag t)
|
||||
;
|
||||
|
||||
constructor_declarator
|
||||
: IDENTIFIER formal_parameter_list
|
||||
(cons $1 $2)
|
||||
;
|
||||
|
||||
constructor_body
|
||||
: block
|
||||
;
|
||||
|
||||
;;; Function token
|
||||
;; ("NAME" function "TYPE" ( ARG-LIST ) EXTRA-SPEC "DOCSTRING")
|
||||
method_declaration
|
||||
: modifiers_opt VOID method_declarator throwsc_opt method_body
|
||||
(FUNCTION-TAG (car $3) $2 (cdr $3) :typemodifiers $1 :throws $4)
|
||||
| modifiers_opt type method_declarator throwsc_opt method_body
|
||||
(FUNCTION-TAG (car $3) $2 (cdr $3) :typemodifiers $1 :throws $4)
|
||||
;
|
||||
|
||||
method_declarator
|
||||
: IDENTIFIER formal_parameter_list dims_opt
|
||||
(cons (concat $1 $3) $2)
|
||||
;
|
||||
|
||||
throwsc_opt
|
||||
: ;;EMPTY
|
||||
| THROWS qualified_name_list
|
||||
(nreverse $2)
|
||||
;
|
||||
|
||||
qualified_name_list
|
||||
: qualified_name_list COMMA qualified_name
|
||||
(cons $3 $1)
|
||||
| qualified_name
|
||||
(list $1)
|
||||
;
|
||||
|
||||
method_body
|
||||
: SEMICOLON
|
||||
| block
|
||||
;
|
||||
|
||||
;; Just eat {...} block!
|
||||
block
|
||||
: BRACE_BLOCK
|
||||
;
|
||||
|
||||
formal_parameter_list
|
||||
: PAREN_BLOCK
|
||||
(EXPANDFULL $1 formal_parameters)
|
||||
;
|
||||
|
||||
formal_parameters
|
||||
: LPAREN
|
||||
()
|
||||
| RPAREN
|
||||
()
|
||||
| formal_parameter COMMA
|
||||
| formal_parameter RPAREN
|
||||
;
|
||||
|
||||
;;; Variable token
|
||||
;; ("NAME" variable "TYPE" DEFAULT-VALUE EXTRA-SPEC "DOCSTRING")
|
||||
formal_parameter
|
||||
: formal_parameter_modifier_opt type variable_declarator_id
|
||||
(VARIABLE-TAG $3 $2 nil :typemodifiers $1)
|
||||
;
|
||||
|
||||
formal_parameter_modifier_opt
|
||||
: ;;EMPTY
|
||||
| FINAL
|
||||
(list $1)
|
||||
;
|
||||
|
||||
;;; Variable token
|
||||
;; ("NAME" variable "TYPE" DEFAULT-VALUE EXTRA-SPEC "DOCSTRING")
|
||||
field_declaration
|
||||
: modifiers_opt type variable_declarators SEMICOLON
|
||||
(VARIABLE-TAG $3 $2 nil :typemodifiers $1)
|
||||
;
|
||||
|
||||
variable_declarators
|
||||
: variable_declarators COMMA variable_declarator
|
||||
(progn
|
||||
;; Set the end of the compound declaration to the end of the
|
||||
;; COMMA delimiter.
|
||||
(setcdr (cdr (car $1)) (cdr $region2))
|
||||
(cons $3 $1))
|
||||
| variable_declarator
|
||||
(list $1)
|
||||
;
|
||||
|
||||
variable_declarator
|
||||
: variable_declarator_id EQ variable_initializer
|
||||
(cons $1 $region)
|
||||
| variable_declarator_id
|
||||
(cons $1 $region)
|
||||
;
|
||||
|
||||
variable_declarator_id
|
||||
: IDENTIFIER dims_opt
|
||||
(concat $1 $2)
|
||||
;
|
||||
|
||||
variable_initializer
|
||||
: expression
|
||||
;
|
||||
|
||||
;; Just eat expression!
|
||||
expression
|
||||
: expression term
|
||||
| term
|
||||
;
|
||||
|
||||
term
|
||||
: literal
|
||||
| operator
|
||||
| primitive_type
|
||||
| IDENTIFIER
|
||||
| BRACK_BLOCK
|
||||
| PAREN_BLOCK
|
||||
| BRACE_BLOCK
|
||||
| NEW
|
||||
| CLASS
|
||||
| THIS
|
||||
| SUPER
|
||||
;
|
||||
|
||||
literal
|
||||
;; : NULL_LITERAL
|
||||
;; | BOOLEAN_LITERAL
|
||||
: STRING_LITERAL
|
||||
| NUMBER_LITERAL
|
||||
;
|
||||
|
||||
operator
|
||||
: NOT
|
||||
| PLUS
|
||||
| PLUSPLUS
|
||||
| MINUS
|
||||
| MINUSMINUS
|
||||
| NOTEQ
|
||||
| MOD
|
||||
| MODEQ
|
||||
| AND
|
||||
| ANDAND
|
||||
| ANDEQ
|
||||
| MULT
|
||||
| MULTEQ
|
||||
| PLUSEQ
|
||||
| MINUSEQ
|
||||
| DOT
|
||||
| DIV
|
||||
| DIVEQ
|
||||
| COLON
|
||||
| LT
|
||||
| LSHIFT
|
||||
| LSHIFTEQ
|
||||
| LTEQ
|
||||
| EQ
|
||||
| EQEQ
|
||||
| GT
|
||||
| GTEQ
|
||||
| RSHIFT
|
||||
| RSHIFTEQ
|
||||
| URSHIFT
|
||||
| URSHIFTEQ
|
||||
| QUESTION
|
||||
| XOR
|
||||
| XOREQ
|
||||
| OR
|
||||
| OREQ
|
||||
| OROR
|
||||
| COMP
|
||||
| INSTANCEOF
|
||||
;
|
||||
|
||||
primitive_type
|
||||
: BOOLEAN
|
||||
| CHAR
|
||||
| LONG
|
||||
| INT
|
||||
| SHORT
|
||||
| BYTE
|
||||
| DOUBLE
|
||||
| FLOAT
|
||||
;
|
||||
|
||||
modifiers_opt
|
||||
: ;;EMPTY
|
||||
| modifiers
|
||||
(nreverse $1)
|
||||
;
|
||||
|
||||
modifiers
|
||||
: modifiers modifier
|
||||
(cons $2 $1)
|
||||
| modifier
|
||||
(list $1)
|
||||
;
|
||||
|
||||
modifier
|
||||
: STRICTFP
|
||||
| VOLATILE
|
||||
| TRANSIENT
|
||||
| SYNCHRONIZED
|
||||
| NATIVE
|
||||
| FINAL
|
||||
| ABSTRACT
|
||||
| STATIC
|
||||
| PRIVATE
|
||||
| PROTECTED
|
||||
| PUBLIC
|
||||
;
|
||||
|
||||
type
|
||||
: qualified_name dims_opt
|
||||
(concat $1 $2)
|
||||
| primitive_type dims_opt
|
||||
(concat $1 $2)
|
||||
;
|
||||
|
||||
qualified_name
|
||||
: qualified_name DOT IDENTIFIER
|
||||
(concat $1 $2 $3)
|
||||
| IDENTIFIER
|
||||
;
|
||||
|
||||
dims_opt
|
||||
: ;;EMPTY
|
||||
(identity "")
|
||||
| dims
|
||||
;
|
||||
|
||||
dims
|
||||
: dims BRACK_BLOCK
|
||||
(concat $1 "[]")
|
||||
| BRACK_BLOCK
|
||||
(identity "[]")
|
||||
;
|
||||
|
||||
%%
|
||||
;; Define the lexer for this grammar
|
||||
(define-lex wisent-java-tags-lexer
|
||||
"Lexical analyzer that handles Java buffers.
|
||||
It ignores whitespaces, newlines and comments."
|
||||
semantic-lex-ignore-whitespace
|
||||
semantic-lex-ignore-newline
|
||||
semantic-lex-ignore-comments
|
||||
;;;; Auto-generated analyzers.
|
||||
wisent-java-tags-wy--<number>-regexp-analyzer
|
||||
wisent-java-tags-wy--<string>-sexp-analyzer
|
||||
;; Must detect keywords before other symbols
|
||||
wisent-java-tags-wy--<keyword>-keyword-analyzer
|
||||
wisent-java-tags-wy--<symbol>-regexp-analyzer
|
||||
wisent-java-tags-wy--<punctuation>-string-analyzer
|
||||
wisent-java-tags-wy--<block>-block-analyzer
|
||||
;; In theory, unicode chars should be turned into normal chars
|
||||
;; and then combined into regular ascii keywords and text. This
|
||||
;; analyzer just keeps these things from making the lexer go boom.
|
||||
wisent-java-tags-wy--<unicode>-regexp-analyzer
|
||||
;;;;
|
||||
semantic-lex-default-action)
|
||||
|
||||
;;; java-tags.wy ends here
|
526
admin/grammars/js.wy
Normal file
526
admin/grammars/js.wy
Normal file
|
@ -0,0 +1,526 @@
|
|||
;;; javascript-jv.wy -- LALR grammar for Javascript
|
||||
|
||||
;; Copyright (C) 2005-2011 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1998-2011 Ecma International.
|
||||
|
||||
;; Author: Joakim Verona
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; GNU Emacs is free software: you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; The grammar itself is transcribed from the ECMAScript Language
|
||||
;; Specification published at
|
||||
;;
|
||||
;; http://www.ecma-international.org/publications/standards/Ecma-262.htm
|
||||
;;
|
||||
;; and redistributed under the following license:
|
||||
|
||||
;; Redistribution and use in source and binary forms, with or without
|
||||
;; modification, are permitted provided that the following conditions
|
||||
;; are met:
|
||||
|
||||
;; 1. Redistributions of source code must retain the above copyright
|
||||
;; notice, this list of conditions and the following disclaimer.
|
||||
|
||||
;; 2. Redistributions in binary form must reproduce the above
|
||||
;; copyright notice, this list of conditions and the following
|
||||
;; disclaimer in the documentation and/or other materials provided
|
||||
;; with the distribution.
|
||||
|
||||
;; 3. Neither the name of the authors nor Ecma International may be
|
||||
;; used to endorse or promote products derived from this software
|
||||
;; without specific prior written permission. THIS SOFTWARE IS
|
||||
;; PROVIDED BY THE ECMA INTERNATIONAL "AS IS" AND ANY EXPRESS OR
|
||||
;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
;; ARE DISCLAIMED. IN NO EVENT SHALL ECMA INTERNATIONAL BE LIABLE FOR
|
||||
;; ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
;; OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
;; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
;; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
;; USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||
;; DAMAGE.
|
||||
|
||||
%package wisent-javascript-jv-wy
|
||||
;; JAVE I prefere ecmascript-mode
|
||||
%languagemode ecmascript-mode javascript-mode
|
||||
|
||||
;; The default goal
|
||||
%start Program
|
||||
;; Other Goals
|
||||
%start FormalParameterList
|
||||
|
||||
;; with the terminals stuff, I used the javacript.y names,
|
||||
;; but the semantic/wisent/java-tags.wy types
|
||||
;; when possible
|
||||
;; ------------------
|
||||
;; Operator terminals
|
||||
;; ------------------
|
||||
|
||||
;;define-lex-string-type-analyzer gets called with the "syntax" comment
|
||||
%type <punctuation> ;;syntax "\\(\\s.\\|\\s$\\|\\s'\\)+" matchdatatype string
|
||||
|
||||
%token <punctuation> ASSIGN_SYMBOL "="
|
||||
%token <punctuation> BITWISE_AND "&"
|
||||
%token <punctuation> BITWISE_AND_EQUALS "&="
|
||||
%token <punctuation> BITWISE_EXCLUSIVE_OR "^"
|
||||
%token <punctuation> BITWISE_EXCLUSIVE_OR_EQUALS "^="
|
||||
%token <punctuation> BITWISE_OR "|"
|
||||
%token <punctuation> BITWISE_OR_EQUALS "|="
|
||||
%token <punctuation> BITWISE_SHIFT_LEFT "<<"
|
||||
%token <punctuation> BITWISE_SHIFT_LEFT_EQUALS "<<="
|
||||
%token <punctuation> BITWISE_SHIFT_RIGHT ">>"
|
||||
%token <punctuation> BITWISE_SHIFT_RIGHT_EQUALS ">>="
|
||||
%token <punctuation> BITWISE_SHIFT_RIGHT_ZERO_FILL ">>>"
|
||||
%token <punctuation> BITWISE_SHIFT_RIGHT_ZERO_FILL_EQUALS ">>>="
|
||||
%token <punctuation> NOT_EQUAL "!="
|
||||
%token <punctuation> DIV_EQUALS "/="
|
||||
%token <punctuation> EQUALS "=="
|
||||
%token <punctuation> GREATER_THAN ">"
|
||||
%token <punctuation> GT_EQUAL ">="
|
||||
%token <punctuation> LOGICAL_AND "&&"
|
||||
%token <punctuation> LOGICAL_OR "||"
|
||||
%token <punctuation> LOGICAL_NOT "!!"
|
||||
%token <punctuation> LS_EQUAL "<="
|
||||
%token <punctuation> MINUS "-"
|
||||
%token <punctuation> MINUS_EQUALS "-="
|
||||
%token <punctuation> MOD "%"
|
||||
%token <punctuation> MOD_EQUALS "%="
|
||||
%token <punctuation> MULTIPLY "*"
|
||||
%token <punctuation> MULTIPLY_EQUALS "*="
|
||||
%token <punctuation> PLUS "+"
|
||||
%token <punctuation> PLUS_EQUALS "+="
|
||||
%token <punctuation> INCREMENT "++"
|
||||
%token <punctuation> DECREMENT "--"
|
||||
%token <punctuation> DIV "/"
|
||||
%token <punctuation> COLON ":"
|
||||
%token <punctuation> COMMA ","
|
||||
%token <punctuation> DOT "."
|
||||
%token <punctuation> LESS_THAN "<"
|
||||
%token <punctuation> LINE_TERMINATOR "\n"
|
||||
%token <punctuation> SEMICOLON ";"
|
||||
%token <punctuation> ONES_COMPLIMENT "~"
|
||||
|
||||
|
||||
;; -----------------------------
|
||||
;; Block & Parenthesis terminals
|
||||
;; -----------------------------
|
||||
%type <block> ;;syntax "\\s(\\|\\s)" matchdatatype block
|
||||
%token <block> PAREN_BLOCK "(OPEN_PARENTHESIS CLOSE_PARENTHESIS)"
|
||||
%token <block> BRACE_BLOCK "(START_BLOCK END_BLOCK)"
|
||||
%token <block> BRACK_BLOCK "(OPEN_SQ_BRACKETS CLOSE_SQ_BRACKETS)"
|
||||
|
||||
%token <open-paren> OPEN_PARENTHESIS "("
|
||||
%token <close-paren> CLOSE_PARENTHESIS ")"
|
||||
|
||||
%token <open-paren> START_BLOCK "{"
|
||||
%token <close-paren> END_BLOCK "}"
|
||||
|
||||
%token <open-paren> OPEN_SQ_BRACKETS "["
|
||||
%token <close-paren> CLOSE_SQ_BRACKETS "]"
|
||||
|
||||
|
||||
;; -----------------
|
||||
;; Keyword terminals
|
||||
;; -----------------
|
||||
|
||||
;; Generate a keyword analyzer
|
||||
%type <keyword> ;;syntax "\\(\\sw\\|\\s_\\)+" matchdatatype keyword
|
||||
|
||||
%keyword IF "if"
|
||||
%put IF summary
|
||||
"if (<expr>) <stmt> [else <stmt>] (jv)"
|
||||
|
||||
%keyword BREAK "break"
|
||||
%put BREAK summary
|
||||
"break [<label>] ;"
|
||||
|
||||
%keyword CONTINUE "continue"
|
||||
%put CONTINUE summary
|
||||
"continue [<label>] ;"
|
||||
|
||||
%keyword ELSE "else"
|
||||
%put ELSE summary
|
||||
"if (<expr>) <stmt> else <stmt>"
|
||||
|
||||
|
||||
%keyword FOR "for"
|
||||
%put FOR summary
|
||||
"for ([<init-expr>]; [<expr>]; [<update-expr>]) <stmt>"
|
||||
|
||||
|
||||
%keyword FUNCTION "function"
|
||||
%put FUNCTION summary
|
||||
"function declaration blah blah"
|
||||
|
||||
%keyword THIS "this"
|
||||
%put THIS summary
|
||||
"this"
|
||||
|
||||
|
||||
%keyword RETURN "return"
|
||||
%put RETURN summary
|
||||
"return [<expr>] ;"
|
||||
|
||||
%keyword WHILE "while"
|
||||
%put WHILE summary
|
||||
"while (<expr>) <stmt> | do <stmt> while (<expr>);"
|
||||
|
||||
%keyword VOID_SYMBOL "void"
|
||||
%put VOID_SYMBOL summary
|
||||
"Method return type: void <name> ..."
|
||||
|
||||
|
||||
|
||||
%keyword NEW "new"
|
||||
%put NEW summary
|
||||
"new <objecttype> - Creates a new object."
|
||||
|
||||
%keyword DELETE "delete"
|
||||
%put DELETE summary
|
||||
"delete(<objectreference>) - Deletes the object."
|
||||
|
||||
%keyword VAR "var"
|
||||
%put VAR summary
|
||||
"var <variablename> [= value];"
|
||||
|
||||
%keyword WITH "with"
|
||||
%put WITH summary
|
||||
"with "
|
||||
|
||||
%keyword TYPEOF "typeof"
|
||||
%put TYPEOF summary
|
||||
"typeof "
|
||||
|
||||
%keyword IN "in"
|
||||
%put IN summary
|
||||
"in something"
|
||||
|
||||
|
||||
;; -----------------
|
||||
;; Literal terminals
|
||||
;; -----------------
|
||||
|
||||
;;the .y file uses VARIABLE as IDENTIFIER, which seems a bit evil
|
||||
;; it think the normal .wy convention is better than this
|
||||
%type <symbol> ;;syntax "\\(\\sw\\|\\s_\\)+"
|
||||
%token <symbol> VARIABLE
|
||||
|
||||
%type <string> ;;syntax "\\s\"" matchdatatype sexp
|
||||
%token <string> STRING
|
||||
|
||||
%type <number> ;;syntax semantic-lex-number-expression
|
||||
%token <number> NUMBER
|
||||
|
||||
|
||||
%token FALSE
|
||||
%token TRUE
|
||||
%token QUERY
|
||||
|
||||
|
||||
%token NULL_TOKEN
|
||||
|
||||
;;%token UNDEFINED_TOKEN
|
||||
;;%token INFINITY
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; associativity and stuff
|
||||
%left PLUS MINUS
|
||||
%left MULTIPLY DIV MOD
|
||||
|
||||
%nonassoc FALSE
|
||||
%nonassoc HIGHER_THAN_FALSE
|
||||
%nonassoc ELSE
|
||||
%nonassoc LOWER_THAN_CLOSE_PARENTHESIS
|
||||
%nonassoc CLOSE_PARENTHESIS
|
||||
|
||||
%%
|
||||
|
||||
Program : SourceElement
|
||||
;
|
||||
|
||||
SourceElement : Statement
|
||||
| FunctionDeclaration
|
||||
;
|
||||
|
||||
Statement : Block
|
||||
| VariableStatement
|
||||
| EmptyStatement
|
||||
| ExpressionStatement
|
||||
| IfStatement
|
||||
| IterationExpression
|
||||
| ContinueStatement
|
||||
| BreakStatement
|
||||
| ReturnStatement
|
||||
| WithStatement
|
||||
;
|
||||
|
||||
FunctionDeclaration : FUNCTION VARIABLE FormalParameterListBlock Block
|
||||
(FUNCTION-TAG $2 nil $3)
|
||||
;
|
||||
|
||||
FormalParameterListBlock : PAREN_BLOCK
|
||||
(EXPANDFULL $1 FormalParameterList)
|
||||
;
|
||||
|
||||
FormalParameterList: OPEN_PARENTHESIS
|
||||
()
|
||||
| VARIABLE
|
||||
(VARIABLE-TAG $1 nil nil)
|
||||
| CLOSE_PARENTHESIS
|
||||
()
|
||||
| COMMA
|
||||
()
|
||||
;
|
||||
|
||||
StatementList : Statement
|
||||
| StatementList Statement
|
||||
;
|
||||
|
||||
Block : BRACE_BLOCK
|
||||
;; If you want to parse the body of the function
|
||||
;; ( EXPANDFULL $1 BlockExpand )
|
||||
;
|
||||
|
||||
BlockExpand: START_BLOCK StatementList END_BLOCK
|
||||
| START_BLOCK END_BLOCK
|
||||
;
|
||||
|
||||
VariableStatement : VAR VariableDeclarationList SEMICOLON
|
||||
(VARIABLE-TAG $2 nil nil)
|
||||
;
|
||||
|
||||
VariableDeclarationList : VariableDeclaration
|
||||
(list $1)
|
||||
| VariableDeclarationList COMMA VariableDeclaration
|
||||
(append $1 (list $3))
|
||||
;
|
||||
|
||||
VariableDeclaration : VARIABLE
|
||||
(append (list $1 nil) $region)
|
||||
| VARIABLE Initializer
|
||||
(append (cons $1 $2) $region)
|
||||
;
|
||||
|
||||
Initializer : ASSIGN_SYMBOL AssignmentExpression
|
||||
(list $2)
|
||||
;
|
||||
|
||||
EmptyStatement : SEMICOLON
|
||||
;
|
||||
|
||||
ExpressionStatement : Expression SEMICOLON
|
||||
;
|
||||
|
||||
IfStatement : IF OPEN_PARENTHESIS Expression CLOSE_PARENTHESIS Statement %prec HIGHER_THAN_FALSE
|
||||
| IF OPEN_PARENTHESIS Expression CLOSE_PARENTHESIS Statement ELSE Statement
|
||||
| IF OPEN_PARENTHESIS FALSE CLOSE_PARENTHESIS Statement
|
||||
| IF OPEN_PARENTHESIS LeftHandSideExpression AssignmentOperator AssignmentExpression CLOSE_PARENTHESIS Statement
|
||||
;
|
||||
|
||||
IterationExpression : WHILE OPEN_PARENTHESIS Expression CLOSE_PARENTHESIS Statement %prec HIGHER_THAN_FALSE
|
||||
| WHILE OPEN_PARENTHESIS FALSE CLOSE_PARENTHESIS Statement
|
||||
| WHILE OPEN_PARENTHESIS LeftHandSideExpression AssignmentOperator AssignmentExpression CLOSE_PARENTHESIS Statement
|
||||
| FOR OPEN_PARENTHESIS OptionalExpression SEMICOLON OptionalExpression SEMICOLON OptionalExpression CLOSE_PARENTHESIS Statement
|
||||
| FOR OPEN_PARENTHESIS VAR VariableDeclarationList SEMICOLON OptionalExpression SEMICOLON OptionalExpression CLOSE_PARENTHESIS Statement
|
||||
| FOR OPEN_PARENTHESIS LeftHandSideExpression IN Expression CLOSE_PARENTHESIS Statement
|
||||
| FOR OPEN_PARENTHESIS VAR VARIABLE OptionalInitializer IN Expression CLOSE_PARENTHESIS Statement
|
||||
;
|
||||
|
||||
ContinueStatement : CONTINUE SEMICOLON
|
||||
;
|
||||
|
||||
;;JAVE break needs labels
|
||||
BreakStatement : BREAK SEMICOLON
|
||||
;; | BREAK identifier SEMICOLON
|
||||
;
|
||||
|
||||
ReturnStatement : RETURN Expression SEMICOLON
|
||||
| RETURN SEMICOLON
|
||||
;
|
||||
|
||||
WithStatement : WITH OPEN_PARENTHESIS Expression CLOSE_PARENTHESIS Statement
|
||||
;
|
||||
|
||||
OptionalInitializer : Initializer
|
||||
|
|
||||
;
|
||||
|
||||
PrimaryExpression : THIS
|
||||
| VARIABLE
|
||||
| NUMBER
|
||||
| STRING
|
||||
| NULL_TOKEN
|
||||
| TRUE
|
||||
| FALSE
|
||||
| OPEN_PARENTHESIS Expression CLOSE_PARENTHESIS
|
||||
;
|
||||
|
||||
MemberExpression : PrimaryExpression
|
||||
| MemberExpression OPEN_SQ_BRACKETS Expression CLOSE_SQ_BRACKETS
|
||||
| MemberExpression DOT VARIABLE
|
||||
| NEW MemberExpression Arguments
|
||||
;
|
||||
|
||||
NewExpression : MemberExpression
|
||||
| NEW NewExpression
|
||||
;
|
||||
|
||||
CallExpression : MemberExpression Arguments
|
||||
| CallExpression Arguments
|
||||
| CallExpression OPEN_SQ_BRACKETS Expression CLOSE_SQ_BRACKETS
|
||||
| CallExpression DOT VARIABLE
|
||||
;
|
||||
|
||||
Arguments : OPEN_PARENTHESIS CLOSE_PARENTHESIS
|
||||
| OPEN_PARENTHESIS ArgumentList CLOSE_PARENTHESIS
|
||||
;
|
||||
|
||||
ArgumentList : AssignmentExpression
|
||||
| ArgumentList COMMA AssignmentExpression
|
||||
;
|
||||
|
||||
LeftHandSideExpression : NewExpression
|
||||
| CallExpression
|
||||
;
|
||||
|
||||
PostfixExpression : LeftHandSideExpression
|
||||
| LeftHandSideExpression INCREMENT
|
||||
| LeftHandSideExpression DECREMENT
|
||||
;
|
||||
|
||||
UnaryExpression : PostfixExpression
|
||||
| DELETE UnaryExpression
|
||||
| VOID_SYMBOL UnaryExpression
|
||||
| TYPEOF UnaryExpression
|
||||
| INCREMENT UnaryExpression
|
||||
| DECREMENT UnaryExpression
|
||||
| PLUS UnaryExpression
|
||||
| MINUS UnaryExpression
|
||||
| ONES_COMPLIMENT UnaryExpression
|
||||
| LOGICAL_NOT UnaryExpression
|
||||
;
|
||||
|
||||
MultiplicativeExpression : UnaryExpression
|
||||
| MultiplicativeExpression MULTIPLY UnaryExpression
|
||||
| MultiplicativeExpression DIV UnaryExpression
|
||||
| MultiplicativeExpression MOD UnaryExpression
|
||||
;
|
||||
|
||||
AdditiveExpression : MultiplicativeExpression
|
||||
| AdditiveExpression PLUS MultiplicativeExpression
|
||||
| AdditiveExpression MINUS MultiplicativeExpression
|
||||
;
|
||||
|
||||
ShiftExpression : AdditiveExpression
|
||||
| ShiftExpression BITWISE_SHIFT_LEFT AdditiveExpression
|
||||
| ShiftExpression BITWISE_SHIFT_RIGHT AdditiveExpression
|
||||
| ShiftExpression BITWISE_SHIFT_RIGHT_ZERO_FILL AdditiveExpression
|
||||
;
|
||||
|
||||
RelationalExpression : ShiftExpression
|
||||
| RelationalExpression LESS_THAN ShiftExpression
|
||||
| RelationalExpression GREATER_THAN ShiftExpression
|
||||
| RelationalExpression LS_EQUAL ShiftExpression
|
||||
| RelationalExpression GT_EQUAL ShiftExpression
|
||||
;
|
||||
|
||||
EqualityExpression : RelationalExpression
|
||||
| EqualityExpression EQUALS RelationalExpression
|
||||
| EqualityExpression NOT_EQUAL RelationalExpression
|
||||
;
|
||||
|
||||
BitwiseANDExpression : EqualityExpression
|
||||
| BitwiseANDExpression BITWISE_AND EqualityExpression
|
||||
;
|
||||
|
||||
BitwiseXORExpression : BitwiseANDExpression
|
||||
| BitwiseXORExpression BITWISE_EXCLUSIVE_OR BitwiseANDExpression
|
||||
;
|
||||
|
||||
BitwiseORExpression : BitwiseXORExpression
|
||||
| BitwiseORExpression BITWISE_OR BitwiseXORExpression
|
||||
;
|
||||
|
||||
LogicalANDExpression : BitwiseORExpression
|
||||
| LogicalANDExpression LOGICAL_AND BitwiseORExpression
|
||||
;
|
||||
|
||||
LogicalORExpression : LogicalANDExpression
|
||||
| LogicalORExpression LOGICAL_OR LogicalANDExpression
|
||||
;
|
||||
|
||||
ConditionalExpression : LogicalORExpression
|
||||
| LogicalORExpression QUERY AssignmentExpression COLON AssignmentExpression
|
||||
;
|
||||
|
||||
AssignmentExpression : ConditionalExpression
|
||||
| LeftHandSideExpression AssignmentOperator AssignmentExpression %prec LOWER_THAN_CLOSE_PARENTHESIS
|
||||
;
|
||||
|
||||
AssignmentOperator : ASSIGN_SYMBOL
|
||||
| MULTIPLY_EQUALS
|
||||
| DIV_EQUALS
|
||||
| MOD_EQUALS
|
||||
| PLUS_EQUALS
|
||||
| MINUS_EQUALS
|
||||
| BITWISE_SHIFT_LEFT_EQUALS
|
||||
| BITWISE_SHIFT_RIGHT_EQUALS
|
||||
| BITWISE_SHIFT_RIGHT_ZERO_FILL_EQUALS
|
||||
| BITWISE_AND_EQUALS
|
||||
| BITWISE_EXCLUSIVE_OR_EQUALS
|
||||
| BITWISE_OR_EQUALS
|
||||
;
|
||||
|
||||
Expression : AssignmentExpression
|
||||
| Expression COMMA AssignmentExpression
|
||||
;
|
||||
|
||||
OptionalExpression : Expression
|
||||
|
|
||||
;
|
||||
|
||||
%%
|
||||
|
||||
;;here something like:
|
||||
;;(define-lex wisent-java-tags-lexer
|
||||
;; should go
|
||||
(define-lex javascript-lexer-jv
|
||||
"javascript thingy"
|
||||
;;std stuff
|
||||
semantic-lex-ignore-whitespace
|
||||
semantic-lex-ignore-newline
|
||||
semantic-lex-ignore-comments
|
||||
|
||||
;;stuff generated from the wy file(one for each "type" declaration)
|
||||
wisent-javascript-jv-wy--<number>-regexp-analyzer
|
||||
wisent-javascript-jv-wy--<string>-sexp-analyzer
|
||||
|
||||
wisent-javascript-jv-wy--<keyword>-keyword-analyzer
|
||||
|
||||
wisent-javascript-jv-wy--<symbol>-regexp-analyzer
|
||||
wisent-javascript-jv-wy--<punctuation>-string-analyzer
|
||||
wisent-javascript-jv-wy--<block>-block-analyzer
|
||||
|
||||
|
||||
;;;;more std stuff
|
||||
semantic-lex-default-action
|
||||
)
|
||||
|
||||
;;; javascript-jv.wy ends here
|
168
admin/grammars/make.by
Normal file
168
admin/grammars/make.by
Normal file
|
@ -0,0 +1,168 @@
|
|||
;;; make.by -- BY notation for Makefiles.
|
||||
|
||||
;; Copyright (C) 1999-2011 Free Software Foundation, Inc.
|
||||
;;
|
||||
;; Author: Eric M. Ludlam <zappo@gnu.org>
|
||||
;; David Ponce <david@dponce.com>
|
||||
;; Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; GNU Emacs is free software: you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
%package semantic-make-by
|
||||
|
||||
%languagemode makefile-mode
|
||||
%start Makefile
|
||||
|
||||
;; This was always a test case.
|
||||
%quotemode backquote
|
||||
|
||||
%token IF "if"
|
||||
%token IFDEF "ifdef"
|
||||
%token IFNDEF "ifndef"
|
||||
%token IFEQ "ifeq"
|
||||
%token IFNEQ "ifneq"
|
||||
%token ELSE "else"
|
||||
%token ENDIF "endif"
|
||||
%token INCLUDE "include"
|
||||
|
||||
%put { IF ELSE ENDIF } summary "Conditional: if (expression) ... else ... endif"
|
||||
%put IFDEF summary "Conditional: ifdef (expression) ... else ... endif"
|
||||
%put IFNDEF summary "Conditional: ifndef (expression) ... else ... endif"
|
||||
%put IFEQ summary "Conditional: ifeq (expression) ... else ... endif"
|
||||
%put IFNEQ summary "Conditional: ifneq (expression) ... else ... endif"
|
||||
%put INCLUDE summary "Macro: include filename1 filename2 ..."
|
||||
|
||||
%token <punctuation> COLON "\\`[:]\\'"
|
||||
%token <punctuation> PLUS "\\`[+]\\'"
|
||||
%token <punctuation> EQUAL "\\`[=]\\'"
|
||||
%token <punctuation> DOLLAR "\\`[$]\\'"
|
||||
%token <punctuation> BACKSLASH "\\`[\\]\\'"
|
||||
|
||||
%%
|
||||
|
||||
Makefile : bol newline (nil)
|
||||
| bol variable
|
||||
( ,@$2 )
|
||||
| bol rule
|
||||
( ,@$2 )
|
||||
| bol conditional
|
||||
( ,@$2 )
|
||||
| bol include
|
||||
( ,@$2 )
|
||||
| whitespace ( nil )
|
||||
| newline ( nil )
|
||||
;
|
||||
|
||||
variable: symbol opt-whitespace equals opt-whitespace element-list
|
||||
(VARIABLE-TAG ,$1 nil ,$5)
|
||||
;
|
||||
|
||||
rule: targets opt-whitespace colons opt-whitespace element-list commands
|
||||
(FUNCTION-TAG ,$1 nil ,$5)
|
||||
;
|
||||
|
||||
targets: target opt-whitespace targets
|
||||
( (car ,$1) (car ,@$3) )
|
||||
| target
|
||||
( (car ,$1) )
|
||||
;
|
||||
|
||||
target: sub-target target
|
||||
( (concat (car ,$1) (car ,@$3) ) )
|
||||
| sub-target
|
||||
( (car ,$1) )
|
||||
;
|
||||
|
||||
sub-target: symbol
|
||||
| string
|
||||
| varref
|
||||
;
|
||||
|
||||
conditional: IF some-whitespace symbol newline
|
||||
( nil )
|
||||
| IFDEF some-whitespace symbol newline
|
||||
( nil )
|
||||
| IFNDEF some-whitespace symbol newline
|
||||
( nil )
|
||||
| IFEQ some-whitespace expression newline
|
||||
( nil )
|
||||
| IFNEQ some-whitespace expression newline
|
||||
( nil )
|
||||
| ELSE newline
|
||||
( nil )
|
||||
| ENDIF newline
|
||||
( nil )
|
||||
;
|
||||
|
||||
expression : semantic-list
|
||||
;
|
||||
|
||||
include: INCLUDE some-whitespace element-list
|
||||
(INCLUDE-TAG ,$3 nil)
|
||||
;
|
||||
|
||||
equals: COLON EQUAL ()
|
||||
| PLUS EQUAL ()
|
||||
| EQUAL ()
|
||||
;
|
||||
|
||||
colons: COLON COLON ()
|
||||
| COLON ()
|
||||
;
|
||||
|
||||
element-list: elements newline
|
||||
( ,@$1 )
|
||||
;
|
||||
|
||||
elements: element some-whitespace elements
|
||||
( ,@$1 ,@$3 )
|
||||
| element
|
||||
( ,@$1 )
|
||||
| ;;EMPTY
|
||||
;
|
||||
|
||||
element: sub-element element
|
||||
( (concat (car ,$1) (car ,$2)) )
|
||||
| ;;EMPTY
|
||||
;
|
||||
|
||||
sub-element: symbol
|
||||
| string
|
||||
| punctuation
|
||||
| semantic-list
|
||||
( (buffer-substring-no-properties
|
||||
(identity start) (identity end)) )
|
||||
;
|
||||
|
||||
varref: DOLLAR semantic-list
|
||||
( (buffer-substring-no-properties (identity start) (identity end)) )
|
||||
;
|
||||
|
||||
commands: bol shell-command newline commands
|
||||
( ,$1 ,@$2 )
|
||||
| ;;EMPTY
|
||||
( )
|
||||
;
|
||||
|
||||
opt-whitespace : some-whitespace ( nil )
|
||||
| ;;EMPTY
|
||||
;
|
||||
|
||||
some-whitespace : whitespace some-whitespace (nil)
|
||||
| whitespace (nil)
|
||||
;
|
||||
|
||||
;;; make.by ends here
|
1132
admin/grammars/python.wy
Normal file
1132
admin/grammars/python.wy
Normal file
File diff suppressed because it is too large
Load diff
84
admin/grammars/scheme.by
Normal file
84
admin/grammars/scheme.by
Normal file
|
@ -0,0 +1,84 @@
|
|||
;;; scheme.by -- Scheme BNF language specification
|
||||
|
||||
;; Copyright (C) 2001-2011 Free Software Foundation, Inc.
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; GNU Emacs is free software: you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
%package semantic-scm-by
|
||||
|
||||
%languagemode scheme-mode
|
||||
%start scheme
|
||||
|
||||
%token DEFINE "define"
|
||||
%token DEFINE-MODULE "define-module"
|
||||
%token LOAD "load"
|
||||
|
||||
%put DEFINE summary "Function: (define symbol expression)"
|
||||
%put DEFINE-MODULE summary "Function: (define-module (name arg1 ...)) "
|
||||
%put LOAD summary "Function: (load \"filename\")"
|
||||
|
||||
%token <open-paren> OPENPAREN "("
|
||||
%token <close-paren> CLOSEPAREN ")"
|
||||
|
||||
%%
|
||||
|
||||
scheme : semantic-list
|
||||
(EXPAND $1 scheme-list)
|
||||
;
|
||||
|
||||
scheme-list : OPENPAREN scheme-in-list CLOSEPAREN
|
||||
( ,$2 )
|
||||
;
|
||||
|
||||
scheme-in-list: DEFINE symbol expression
|
||||
(VARIABLE-TAG $2 nil $3 )
|
||||
| DEFINE name-args opt-doc sequence
|
||||
(FUNCTION-TAG (car ,$2) nil (cdr ,$2) )
|
||||
| DEFINE-MODULE name-args
|
||||
(PACKAGE-TAG (nth (length $2) $2 ) nil)
|
||||
| LOAD string
|
||||
(INCLUDE-TAG (file-name-nondirectory (read $2)) (read $2) )
|
||||
| symbol
|
||||
(CODE-TAG $1 nil)
|
||||
;
|
||||
|
||||
name-args: semantic-list
|
||||
(EXPAND $1 name-arg-expand)
|
||||
;
|
||||
|
||||
name-arg-expand : open-paren name-arg-expand
|
||||
( ,$2 )
|
||||
| symbol name-arg-expand
|
||||
( ,(cons $1 ,$2) )
|
||||
| ;; EMPTY
|
||||
( )
|
||||
;
|
||||
|
||||
opt-doc : string
|
||||
| ;; EMPTY
|
||||
;
|
||||
|
||||
sequence : expression sequence
|
||||
| expression
|
||||
;
|
||||
|
||||
expression : symbol
|
||||
| semantic-list
|
||||
| string
|
||||
| number
|
||||
;
|
||||
|
||||
;;; scheme.by ends here
|
361
admin/grammars/wisent-grammar.el
Normal file
361
admin/grammars/wisent-grammar.el
Normal file
|
@ -0,0 +1,361 @@
|
|||
;;; wisent-grammar.el --- Wisent's input grammar mode
|
||||
|
||||
;; Copyright (C) 2002-2011 Free Software Foundation, Inc.
|
||||
;;
|
||||
;; Author: David Ponce <david@dponce.com>
|
||||
;; Maintainer: David Ponce <david@dponce.com>
|
||||
;; Created: 26 Aug 2002
|
||||
;; Keywords: syntax
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; GNU Emacs is free software: you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
;;
|
||||
;; Major mode for editing Wisent's input grammar (.wy) files.
|
||||
|
||||
;;; Code:
|
||||
(require 'semantic)
|
||||
(require 'semantic/grammar)
|
||||
(require 'semantic/find)
|
||||
(require 'semantic/lex)
|
||||
(require 'semantic/wisent)
|
||||
(require 'semantic/bovine)
|
||||
|
||||
(defsubst wisent-grammar-region-placeholder (symb)
|
||||
"Given a $N placeholder symbol in SYMB, return a $regionN symbol.
|
||||
Return nil if $N is not a valid placeholder symbol."
|
||||
(let ((n (symbol-name symb)))
|
||||
(if (string-match "^[$]\\([1-9][0-9]*\\)$" n)
|
||||
(intern (concat "$region" (match-string 1 n))))))
|
||||
|
||||
(defun wisent-grammar-EXPAND (symb nonterm)
|
||||
"Expand call to EXPAND grammar macro.
|
||||
Return the form to parse from within a nonterminal.
|
||||
SYMB is a $I placeholder symbol that gives the bounds of the area to
|
||||
parse.
|
||||
NONTERM is the nonterminal symbol to start with."
|
||||
(unless (member nonterm (semantic-grammar-start))
|
||||
(error "EXPANDFULL macro called with %s, but not used with %%start"
|
||||
nonterm))
|
||||
(let (($ri (wisent-grammar-region-placeholder symb)))
|
||||
(if $ri
|
||||
`(semantic-bovinate-from-nonterminal
|
||||
(car ,$ri) (cdr ,$ri) ',nonterm)
|
||||
(error "Invalid form (EXPAND %s %s)" symb nonterm))))
|
||||
|
||||
(defun wisent-grammar-EXPANDFULL (symb nonterm)
|
||||
"Expand call to EXPANDFULL grammar macro.
|
||||
Return the form to recursively parse an area.
|
||||
SYMB is a $I placeholder symbol that gives the bounds of the area.
|
||||
NONTERM is the nonterminal symbol to start with."
|
||||
(unless (member nonterm (semantic-grammar-start))
|
||||
(error "EXPANDFULL macro called with %s, but not used with %%start"
|
||||
nonterm))
|
||||
(let (($ri (wisent-grammar-region-placeholder symb)))
|
||||
(if $ri
|
||||
`(semantic-parse-region
|
||||
(car ,$ri) (cdr ,$ri) ',nonterm 1)
|
||||
(error "Invalid form (EXPANDFULL %s %s)" symb nonterm))))
|
||||
|
||||
(defun wisent-grammar-TAG (name class &rest attributes)
|
||||
"Expand call to TAG grammar macro.
|
||||
Return the form to create a generic semantic tag.
|
||||
See the function `semantic-tag' for the meaning of arguments NAME,
|
||||
CLASS and ATTRIBUTES."
|
||||
`(wisent-raw-tag
|
||||
(semantic-tag ,name ,class ,@attributes)))
|
||||
|
||||
(defun wisent-grammar-VARIABLE-TAG (name type default-value &rest attributes)
|
||||
"Expand call to VARIABLE-TAG grammar macro.
|
||||
Return the form to create a semantic tag of class variable.
|
||||
See the function `semantic-tag-new-variable' for the meaning of
|
||||
arguments NAME, TYPE, DEFAULT-VALUE and ATTRIBUTES."
|
||||
`(wisent-raw-tag
|
||||
(semantic-tag-new-variable ,name ,type ,default-value ,@attributes)))
|
||||
|
||||
(defun wisent-grammar-FUNCTION-TAG (name type arg-list &rest attributes)
|
||||
"Expand call to FUNCTION-TAG grammar macro.
|
||||
Return the form to create a semantic tag of class function.
|
||||
See the function `semantic-tag-new-function' for the meaning of
|
||||
arguments NAME, TYPE, ARG-LIST and ATTRIBUTES."
|
||||
`(wisent-raw-tag
|
||||
(semantic-tag-new-function ,name ,type ,arg-list ,@attributes)))
|
||||
|
||||
(defun wisent-grammar-TYPE-TAG (name type members parents &rest attributes)
|
||||
"Expand call to TYPE-TAG grammar macro.
|
||||
Return the form to create a semantic tag of class type.
|
||||
See the function `semantic-tag-new-type' for the meaning of arguments
|
||||
NAME, TYPE, MEMBERS, PARENTS and ATTRIBUTES."
|
||||
`(wisent-raw-tag
|
||||
(semantic-tag-new-type ,name ,type ,members ,parents ,@attributes)))
|
||||
|
||||
(defun wisent-grammar-INCLUDE-TAG (name system-flag &rest attributes)
|
||||
"Expand call to INCLUDE-TAG grammar macro.
|
||||
Return the form to create a semantic tag of class include.
|
||||
See the function `semantic-tag-new-include' for the meaning of
|
||||
arguments NAME, SYSTEM-FLAG and ATTRIBUTES."
|
||||
`(wisent-raw-tag
|
||||
(semantic-tag-new-include ,name ,system-flag ,@attributes)))
|
||||
|
||||
(defun wisent-grammar-PACKAGE-TAG (name detail &rest attributes)
|
||||
"Expand call to PACKAGE-TAG grammar macro.
|
||||
Return the form to create a semantic tag of class package.
|
||||
See the function `semantic-tag-new-package' for the meaning of
|
||||
arguments NAME, DETAIL and ATTRIBUTES."
|
||||
`(wisent-raw-tag
|
||||
(semantic-tag-new-package ,name ,detail ,@attributes)))
|
||||
|
||||
(defun wisent-grammar-CODE-TAG (name detail &rest attributes)
|
||||
"Expand call to CODE-TAG grammar macro.
|
||||
Return the form to create a semantic tag of class code.
|
||||
See the function `semantic-tag-new-code' for the meaning of arguments
|
||||
NAME, DETAIL and ATTRIBUTES."
|
||||
`(wisent-raw-tag
|
||||
(semantic-tag-new-code ,name ,detail ,@attributes)))
|
||||
|
||||
(defun wisent-grammar-ALIAS-TAG (name aliasclass definition &rest attributes)
|
||||
"Expand call to ALIAS-TAG grammar macro.
|
||||
Return the form to create a semantic tag of class alias.
|
||||
See the function `semantic-tag-new-alias' for the meaning of arguments
|
||||
NAME, ALIASCLASS, DEFINITION and ATTRIBUTES."
|
||||
`(wisent-raw-tag
|
||||
(semantic-tag-new-alias ,name ,aliasclass ,definition ,@attributes)))
|
||||
|
||||
(defun wisent-grammar-EXPANDTAG (raw-tag)
|
||||
"Expand call to EXPANDTAG grammar macro.
|
||||
Return the form to produce a list of cooked tags from raw form of
|
||||
Semantic tag RAW-TAG."
|
||||
`(wisent-cook-tag ,raw-tag))
|
||||
|
||||
(defun wisent-grammar-AST-ADD (ast &rest nodes)
|
||||
"Expand call to AST-ADD grammar macro.
|
||||
Return the form to update the abstract syntax tree AST with NODES.
|
||||
See also the function `semantic-ast-add'."
|
||||
`(semantic-ast-add ,ast ,@nodes))
|
||||
|
||||
(defun wisent-grammar-AST-PUT (ast &rest nodes)
|
||||
"Expand call to AST-PUT grammar macro.
|
||||
Return the form to update the abstract syntax tree AST with NODES.
|
||||
See also the function `semantic-ast-put'."
|
||||
`(semantic-ast-put ,ast ,@nodes))
|
||||
|
||||
(defun wisent-grammar-AST-GET (ast node)
|
||||
"Expand call to AST-GET grammar macro.
|
||||
Return the form to get, from the abstract syntax tree AST, the value
|
||||
of NODE.
|
||||
See also the function `semantic-ast-get'."
|
||||
`(semantic-ast-get ,ast ,node))
|
||||
|
||||
(defun wisent-grammar-AST-GET1 (ast node)
|
||||
"Expand call to AST-GET1 grammar macro.
|
||||
Return the form to get, from the abstract syntax tree AST, the first
|
||||
value of NODE.
|
||||
See also the function `semantic-ast-get1'."
|
||||
`(semantic-ast-get1 ,ast ,node))
|
||||
|
||||
(defun wisent-grammar-AST-GET-STRING (ast node)
|
||||
"Expand call to AST-GET-STRING grammar macro.
|
||||
Return the form to get, from the abstract syntax tree AST, the value
|
||||
of NODE as a string.
|
||||
See also the function `semantic-ast-get-string'."
|
||||
`(semantic-ast-get-string ,ast ,node))
|
||||
|
||||
(defun wisent-grammar-AST-MERGE (ast1 ast2)
|
||||
"Expand call to AST-MERGE grammar macro.
|
||||
Return the form to merge the abstract syntax trees AST1 and AST2.
|
||||
See also the function `semantic-ast-merge'."
|
||||
`(semantic-ast-merge ,ast1 ,ast2))
|
||||
|
||||
(defun wisent-grammar-SKIP-BLOCK (&optional symb)
|
||||
"Expand call to SKIP-BLOCK grammar macro.
|
||||
Return the form to skip a parenthesized block.
|
||||
Optional argument SYMB is a $I placeholder symbol that gives the
|
||||
bounds of the block to skip. By default, skip the block at `$1'.
|
||||
See also the function `wisent-skip-block'."
|
||||
(let ($ri)
|
||||
(when symb
|
||||
(unless (setq $ri (wisent-grammar-region-placeholder symb))
|
||||
(error "Invalid form (SKIP-BLOCK %s)" symb)))
|
||||
`(wisent-skip-block ,$ri)))
|
||||
|
||||
(defun wisent-grammar-SKIP-TOKEN ()
|
||||
"Expand call to SKIP-TOKEN grammar macro.
|
||||
Return the form to skip the lookahead token.
|
||||
See also the function `wisent-skip-token'."
|
||||
`(wisent-skip-token))
|
||||
|
||||
(defun wisent-grammar-assocs ()
|
||||
"Return associativity and precedence level definitions."
|
||||
(mapcar
|
||||
#'(lambda (tag)
|
||||
(cons (intern (semantic-tag-name tag))
|
||||
(mapcar #'semantic-grammar-item-value
|
||||
(semantic-tag-get-attribute tag :value))))
|
||||
(semantic-find-tags-by-class 'assoc (current-buffer))))
|
||||
|
||||
(defun wisent-grammar-terminals ()
|
||||
"Return the list of terminal symbols.
|
||||
Keep order of declaration in the WY file without duplicates."
|
||||
(let (terms)
|
||||
(mapcar
|
||||
#'(lambda (tag)
|
||||
(mapcar #'(lambda (name)
|
||||
(add-to-list 'terms (intern name)))
|
||||
(cons (semantic-tag-name tag)
|
||||
(semantic-tag-get-attribute tag :rest))))
|
||||
(semantic--find-tags-by-function
|
||||
#'(lambda (tag)
|
||||
(memq (semantic-tag-class tag) '(token keyword)))
|
||||
(current-buffer)))
|
||||
(nreverse terms)))
|
||||
|
||||
;; Cache of macro definitions currently in use.
|
||||
(defvar wisent--grammar-macros nil)
|
||||
|
||||
(defun wisent-grammar-expand-macros (expr)
|
||||
"Expand expression EXPR into a form without grammar macros.
|
||||
Return the expanded expression."
|
||||
(if (or (atom expr) (semantic-grammar-quote-p (car expr)))
|
||||
expr ;; Just return atom or quoted expression.
|
||||
(let* ((expr (mapcar 'wisent-grammar-expand-macros expr))
|
||||
(macro (assq (car expr) wisent--grammar-macros)))
|
||||
(if macro ;; Expand Semantic built-in.
|
||||
(apply (cdr macro) (cdr expr))
|
||||
expr))))
|
||||
|
||||
(defun wisent-grammar-nonterminals ()
|
||||
"Return the list form of nonterminal definitions."
|
||||
(let ((nttags (semantic-find-tags-by-class
|
||||
'nonterminal (current-buffer)))
|
||||
;; Setup the cache of macro definitions.
|
||||
(wisent--grammar-macros (semantic-grammar-macros))
|
||||
rltags nterms rules rule elems elem actn sexp prec)
|
||||
(while nttags
|
||||
(setq rltags (semantic-tag-components (car nttags))
|
||||
rules nil)
|
||||
(while rltags
|
||||
(setq elems (semantic-tag-get-attribute (car rltags) :value)
|
||||
prec (semantic-tag-get-attribute (car rltags) :prec)
|
||||
actn (semantic-tag-get-attribute (car rltags) :expr)
|
||||
rule nil)
|
||||
(when elems ;; not an EMPTY rule
|
||||
(while elems
|
||||
(setq elem (car elems)
|
||||
elems (cdr elems))
|
||||
(setq elem (if (consp elem) ;; mid-rule action
|
||||
(wisent-grammar-expand-macros (read (car elem)))
|
||||
(semantic-grammar-item-value elem)) ;; item
|
||||
rule (cons elem rule)))
|
||||
(setq rule (nreverse rule)))
|
||||
(if prec
|
||||
(setq prec (vector (semantic-grammar-item-value prec))))
|
||||
(if actn
|
||||
(setq sexp (wisent-grammar-expand-macros (read actn))))
|
||||
(setq rule (if actn
|
||||
(if prec
|
||||
(list rule prec sexp)
|
||||
(list rule sexp))
|
||||
(if prec
|
||||
(list rule prec)
|
||||
(list rule))))
|
||||
(setq rules (cons rule rules)
|
||||
rltags (cdr rltags)))
|
||||
(setq nterms (cons (cons (intern (semantic-tag-name (car nttags)))
|
||||
(nreverse rules))
|
||||
nterms)
|
||||
nttags (cdr nttags)))
|
||||
(nreverse nterms)))
|
||||
|
||||
(defun wisent-grammar-grammar ()
|
||||
"Return Elisp form of the grammar."
|
||||
(let* ((terminals (wisent-grammar-terminals))
|
||||
(nonterminals (wisent-grammar-nonterminals))
|
||||
(assocs (wisent-grammar-assocs)))
|
||||
(cons terminals (cons assocs nonterminals))))
|
||||
|
||||
(defun wisent-grammar-parsetable-builder ()
|
||||
"Return the value of the parser table."
|
||||
`(progn
|
||||
;; Ensure that the grammar [byte-]compiler is available.
|
||||
(eval-when-compile (require 'semantic/wisent/comp))
|
||||
(wisent-compile-grammar
|
||||
',(wisent-grammar-grammar)
|
||||
',(semantic-grammar-start))))
|
||||
|
||||
(defun wisent-grammar-setupcode-builder ()
|
||||
"Return the parser setup code."
|
||||
(format
|
||||
"(semantic-install-function-overrides\n\
|
||||
'((parse-stream . wisent-parse-stream)))\n\
|
||||
(setq semantic-parser-name \"LALR\"\n\
|
||||
semantic--parse-table %s\n\
|
||||
semantic-debug-parser-source %S\n\
|
||||
semantic-flex-keywords-obarray %s\n\
|
||||
semantic-lex-types-obarray %s)\n\
|
||||
;; Collect unmatched syntax lexical tokens\n\
|
||||
(semantic-make-local-hook 'wisent-discarding-token-functions)\n\
|
||||
(add-hook 'wisent-discarding-token-functions\n\
|
||||
'wisent-collect-unmatched-syntax nil t)"
|
||||
(semantic-grammar-parsetable)
|
||||
(buffer-name)
|
||||
(semantic-grammar-keywordtable)
|
||||
(semantic-grammar-tokentable)))
|
||||
|
||||
(defvar wisent-grammar-menu
|
||||
'("WY Grammar"
|
||||
["LALR Compiler Verbose" wisent-toggle-verbose-flag
|
||||
:style toggle :active (boundp 'wisent-verbose-flag)
|
||||
:selected (and (boundp 'wisent-verbose-flag)
|
||||
wisent-verbose-flag)]
|
||||
)
|
||||
"WY mode specific grammar menu.
|
||||
Menu items are appended to the common grammar menu.")
|
||||
|
||||
(define-derived-mode wisent-grammar-mode semantic-grammar-mode "WY"
|
||||
"Major mode for editing Wisent grammars."
|
||||
(semantic-grammar-setup-menu wisent-grammar-menu)
|
||||
(semantic-install-function-overrides
|
||||
'((grammar-parsetable-builder . wisent-grammar-parsetable-builder)
|
||||
(grammar-setupcode-builder . wisent-grammar-setupcode-builder)
|
||||
)))
|
||||
|
||||
(add-to-list 'auto-mode-alist '("\\.wy$" . wisent-grammar-mode))
|
||||
|
||||
(defvar-mode-local wisent-grammar-mode semantic-grammar-macros
|
||||
'(
|
||||
(ASSOC . semantic-grammar-ASSOC)
|
||||
(EXPAND . wisent-grammar-EXPAND)
|
||||
(EXPANDFULL . wisent-grammar-EXPANDFULL)
|
||||
(TAG . wisent-grammar-TAG)
|
||||
(VARIABLE-TAG . wisent-grammar-VARIABLE-TAG)
|
||||
(FUNCTION-TAG . wisent-grammar-FUNCTION-TAG)
|
||||
(TYPE-TAG . wisent-grammar-TYPE-TAG)
|
||||
(INCLUDE-TAG . wisent-grammar-INCLUDE-TAG)
|
||||
(PACKAGE-TAG . wisent-grammar-PACKAGE-TAG)
|
||||
(EXPANDTAG . wisent-grammar-EXPANDTAG)
|
||||
(CODE-TAG . wisent-grammar-CODE-TAG)
|
||||
(ALIAS-TAG . wisent-grammar-ALIAS-TAG)
|
||||
(AST-ADD . wisent-grammar-AST-ADD)
|
||||
(AST-PUT . wisent-grammar-AST-PUT)
|
||||
(AST-GET . wisent-grammar-AST-GET)
|
||||
(AST-GET1 . wisent-grammar-AST-GET1)
|
||||
(AST-GET-STRING . wisent-grammar-AST-GET-STRING)
|
||||
(AST-MERGE . wisent-grammar-AST-MERGE)
|
||||
(SKIP-BLOCK . wisent-grammar-SKIP-BLOCK)
|
||||
(SKIP-TOKEN . wisent-grammar-SKIP-TOKEN)
|
||||
)
|
||||
"Semantic grammar macros used in wisent grammars.")
|
||||
|
||||
;;; wisent-grammar.el ends here
|
|
@ -72,18 +72,20 @@ removes a file, then remove the corresponding files by hand.
|
|||
The following description uses bound branches, presumably it works in
|
||||
a similar way with unbound ones.
|
||||
|
||||
0) (First time only) Get the bzr changelog_merge plugin
|
||||
(this will be included by default in bzr 2.4 onwards):
|
||||
0) (This step is only necessary if using bzr older than 2.4.0.)
|
||||
Get the bzr changelog_merge plugin:
|
||||
|
||||
cd ~/.bazaar/plugins
|
||||
bzr branch http://bazaar.launchpad.net/~spiv/bzr-changelog-merge/trunk
|
||||
mv trunk changelog_merge
|
||||
bzr branch http://bazaar.launchpad.net/~spiv/bzr-changelog-merge/trunk changelog_merge
|
||||
|
||||
This should make merging ChangeLogs smoother. It merges new entries
|
||||
to the top of the file, rather than trying to fit them in mid-way
|
||||
through. Newer versions of the plugin should also be able to deal
|
||||
with changes to *old* ChangeLog entries, that should not be floated to
|
||||
the head of the file (see launchpad#723968).
|
||||
This plugin should make merging ChangeLogs smoother. It merges new
|
||||
entries to the top of the file, rather than trying to fit them in
|
||||
mid-way through. Newer versions of the plugin should also be able to
|
||||
deal with changes to *old* ChangeLog entries, that should not be
|
||||
floated to the head of the file (see launchpad#723968).
|
||||
|
||||
It is included in bzr from 2.4.0 onwards, so remember to delete the
|
||||
copy in ~/.bazaar if you upgrade bzr.
|
||||
|
||||
Maybe the default Emacs behavior without this plugin is better,
|
||||
though, it's not clear yet.
|
||||
|
|
|
@ -23,7 +23,7 @@ EMACS = ../../src/emacs
|
|||
DSTDIR = ../../lisp/international
|
||||
RUNEMACS = ${EMACS} -Q -batch
|
||||
|
||||
all: ${DSTDIR}/charprop.el ../../src/biditype.h ../../src/bidimirror.h
|
||||
all: ${DSTDIR}/charprop.el
|
||||
|
||||
.el.elc:
|
||||
${RUNEMACS} -batch -f batch-byte-compile $<
|
||||
|
@ -38,12 +38,6 @@ ${DSTDIR}/charprop.el: unidata-gen.elc unidata.txt
|
|||
cd ${DSTDIR}; \
|
||||
${RUNEMACS} -batch --load $${ELC} -f unidata-gen-files $${DATADIR} $${DATA}
|
||||
|
||||
../../src/biditype.h: UnicodeData.txt
|
||||
gawk -F";" -f biditype.awk $< > $@
|
||||
|
||||
../../src/bidimirror.h: BidiMirroring.txt
|
||||
gawk -F"[; ]+" -f bidimirror.awk $< > $@
|
||||
|
||||
install: charprop.el
|
||||
cp charprop.el ${DSTDIR}
|
||||
cp `sed -n 's/^;; FILE: //p' < charprop.el` ${DSTDIR}
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
# Generate data for bidi_mirroring_table, see src/bidi.c:bidi_initialize.
|
||||
|
||||
# Copyright (C) 2010-2011 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
# GNU Emacs is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
# GNU Emacs is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Written by Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
BEGIN {
|
||||
printf " struct {\n int from, to;\n } bidi_mirror[] = {\n";
|
||||
first = 1;
|
||||
}
|
||||
|
||||
$1 !~ /^#/ && NF >= 2 {
|
||||
if (!first)
|
||||
printf ",\n";
|
||||
else
|
||||
first = 0;
|
||||
printf "\t{ 0x%s, 0x%s }", $1, $2;
|
||||
}
|
||||
|
||||
END {
|
||||
printf " };\n";
|
||||
}
|
|
@ -1,93 +0,0 @@
|
|||
# Generate data for filling bidi_type_table, see src/bidi.c:bidi_initialize.
|
||||
|
||||
# Copyright (C) 2010-2011 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
# GNU Emacs is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
# GNU Emacs is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Written by Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
function trtype(type)
|
||||
{
|
||||
# Types are listed in the order of decresing use in UnicodeData.txt:
|
||||
if (type == "ON")
|
||||
return "NEUTRAL_ON";
|
||||
else if (type == "NSM")
|
||||
return "WEAK_NSM";
|
||||
else if (type == "AL")
|
||||
return "STRONG_AL";
|
||||
else if (type == "R")
|
||||
return "STRONG_R";
|
||||
else if (type == "BN")
|
||||
return "WEAK_BN";
|
||||
else if (type == "EN")
|
||||
return "WEAK_EN";
|
||||
else if (type == "ET")
|
||||
return "WEAK_ET";
|
||||
else if (type == "AN")
|
||||
return "WEAK_AN";
|
||||
else if (type == "WS")
|
||||
return "NEUTRAL_WS";
|
||||
else if (type == "CS")
|
||||
return "WEAK_CS";
|
||||
else if (type == "ES")
|
||||
return "WEAK_ES";
|
||||
else if (type == "B")
|
||||
return "NEUTRAL_B";
|
||||
else if (type == "S")
|
||||
return "NEUTRAL_S";
|
||||
else if (type == "LRE" || type == "RLE" || type == "LRO" || type == "RLO" || type == "PDF")
|
||||
return type;
|
||||
else if (type == "L")
|
||||
return "STRONG_L";
|
||||
else
|
||||
{
|
||||
printf "Unknown type: %s\n", type > "/dev/stderr";
|
||||
exit 1;
|
||||
}
|
||||
}
|
||||
|
||||
BEGIN {
|
||||
otype = "";
|
||||
startcode = "";
|
||||
endcode = "";
|
||||
printf " struct {\n int from, to;\n bidi_type_t type;\n } bidi_type[] = {\n";
|
||||
first = 1;
|
||||
}
|
||||
|
||||
{ code = $1;
|
||||
ntype = $5;
|
||||
if (ntype != otype)
|
||||
{
|
||||
# Don't output data for L, as that's the default value, see bidi.c.
|
||||
if (otype != "L" && startcode != "")
|
||||
{
|
||||
if (!first)
|
||||
printf ",\n";
|
||||
else
|
||||
first = 0;
|
||||
printf "\t{ 0x%s, 0x%s, %s }", startcode, endcode, trtype(otype);
|
||||
}
|
||||
otype = ntype;
|
||||
startcode = code;
|
||||
endcode = code;
|
||||
}
|
||||
else
|
||||
endcode = code;
|
||||
}
|
||||
|
||||
END {
|
||||
printf " };\n";
|
||||
}
|
|
@ -29,7 +29,7 @@ EMACSLOADPATH = $(lisp);$(lisp)/international;$(lisp)/emacs-lisp
|
|||
# Quote EMACS so it could be a file name with embedded whitespace
|
||||
RUNEMACS = "$(EMACS)" -Q -batch
|
||||
|
||||
all: $(DSTDIR)/charprop.el ../../src/biditype.h ../../src/bidimirror.h
|
||||
all: $(DSTDIR)/charprop.el
|
||||
|
||||
.el.elc:
|
||||
$(RUNEMACS) -f batch-byte-compile $<
|
||||
|
@ -51,16 +51,6 @@ charprop-CMD: unidata-gen.elc unidata.txt
|
|||
|
||||
${DSTDIR}/charprop.el: charprop-$(SHELLTYPE)
|
||||
|
||||
../../src/biditype.h: UnicodeData.txt
|
||||
gawk -F";" -f biditype.awk -v BINMODE=2 $< > biditype.h
|
||||
$(CP) biditype.h $@
|
||||
$(DEL) biditype.h
|
||||
|
||||
../../src/bidimirror.h: BidiMirroring.txt
|
||||
gawk -F"[; ]+" -f bidimirror.awk -v BINMODE=2 $< > bidimirror.h
|
||||
$(CP) bidimirror.h $@
|
||||
$(DEL) bidimirror.h
|
||||
|
||||
clean:
|
||||
- $(DEL) unidata-gen.elc unidata.txt biditype.h bidimirror.h
|
||||
|
||||
|
|
|
@ -146,7 +146,7 @@
|
|||
(setq unidata-list (cdr table))))
|
||||
|
||||
;; Alist of this form:
|
||||
;; (PROP INDEX GENERATOR FILENAME DOCSTRING DESCRIBER VAL-LIST)
|
||||
;; (PROP INDEX GENERATOR FILENAME DOCSTRING DESCRIBER DEFAULT VAL-LIST)
|
||||
;; PROP: character property
|
||||
;; INDEX: index to each element of unidata-list for PROP.
|
||||
;; It may be a function that generates an alist of character codes
|
||||
|
@ -155,14 +155,20 @@
|
|||
;; FILENAME: filename to store the char-table
|
||||
;; DOCSTRING: docstring for the property
|
||||
;; DESCRIBER: function to call to get a description string of property value
|
||||
;; DEFAULT: the default value of the property
|
||||
;; DEFAULT: the default value of the property. It may have the form
|
||||
;; (VAL0 (FROM1 TO1 VAL1) ...) which indicates that the default
|
||||
;; value is VAL0 except for characters in the ranges specified by
|
||||
;; FROMn and TOn (incusive). The default value of characters
|
||||
;; between FROMn and TOn is VALn.
|
||||
;; VAL-LIST: list of specially ordered property values
|
||||
|
||||
(defconst unidata-prop-alist
|
||||
'((name
|
||||
1 unidata-gen-table-name "uni-name.el"
|
||||
"Unicode character name.
|
||||
Property value is a string.")
|
||||
Property value is a string."
|
||||
nil
|
||||
"")
|
||||
(general-category
|
||||
2 unidata-gen-table-symbol "uni-category.el"
|
||||
"Unicode general category.
|
||||
|
@ -170,7 +176,7 @@ Property value is one of the following symbols:
|
|||
Lu, Ll, Lt, Lm, Lo, Mn, Mc, Me, Nd, Nl, No, Pc, Pd, Ps, Pe, Pi, Pf, Po,
|
||||
Sm, Sc, Sk, So, Zs, Zl, Zp, Cc, Cf, Cs, Co, Cn"
|
||||
unidata-describe-general-category
|
||||
nil
|
||||
Cn
|
||||
;; The order of elements must be in sync with unicode_category_t
|
||||
;; in src/character.h.
|
||||
(Lu Ll Lt Lm Lo Mn Mc Me Nd Nl No Pc Pd Ps Pe Pi Pf Po
|
||||
|
@ -179,7 +185,8 @@ Property value is one of the following symbols:
|
|||
3 unidata-gen-table-integer "uni-combining.el"
|
||||
"Unicode canonical combining class.
|
||||
Property value is an integer."
|
||||
unidata-describe-canonical-combining-class)
|
||||
unidata-describe-canonical-combining-class
|
||||
0)
|
||||
(bidi-class
|
||||
4 unidata-gen-table-symbol "uni-bidi.el"
|
||||
"Unicode bidi class.
|
||||
|
@ -187,7 +194,12 @@ Property value is one of the following symbols:
|
|||
L, LRE, LRO, R, AL, RLE, RLO, PDF, EN, ES, ET,
|
||||
AN, CS, NSM, BN, B, S, WS, ON"
|
||||
unidata-describe-bidi-class
|
||||
L
|
||||
;; The assignment of default values to blocks of code points
|
||||
;; follows the file DerivedBidiClass.txt from the Unicode
|
||||
;; Character Database (UCD).
|
||||
(L (#x0600 #x06FF AL) (#xFB50 #xFDFF AL) (#xFE70 #xFEFF AL)
|
||||
(#x0590 #x05FF R) (#x07C0 #x08FF R)
|
||||
(#xFB1D #xFB4F R) (#x10800 #x10FFF R) (#x1E800 #x1EFFF R))
|
||||
;; The order of elements must be in sync with bidi_type_t in
|
||||
;; src/dispextern.h.
|
||||
(L R EN AN BN B AL LRE LRO RLE RLO PDF ES ET CS NSM S WS ON))
|
||||
|
@ -202,19 +214,24 @@ one of these symbols representing compatibility formatting tag:
|
|||
(decimal-digit-value
|
||||
6 unidata-gen-table-integer "uni-decimal.el"
|
||||
"Unicode numeric value (decimal digit).
|
||||
Property value is an integer.")
|
||||
Property value is an integer 0..9, or nil.
|
||||
The value nil stands for NaN \"Numeric_Value\".")
|
||||
(digit-value
|
||||
7 unidata-gen-table-integer "uni-digit.el"
|
||||
"Unicode numeric value (digit).
|
||||
Property value is an integer.")
|
||||
Property value is an integer 0..9, or nil.
|
||||
The value nil stands for NaN \"Numeric_Value\".")
|
||||
(numeric-value
|
||||
8 unidata-gen-table-numeric "uni-numeric.el"
|
||||
"Unicode numeric value (numeric).
|
||||
Property value is an integer or a floating point.")
|
||||
Property value is an integer, a floating point, or nil.
|
||||
The value nil stands for NaN \"Numeric_Value\".")
|
||||
(mirrored
|
||||
9 unidata-gen-table-symbol "uni-mirrored.el"
|
||||
"Unicode bidi mirrored flag.
|
||||
Property value is a symbol `Y' or `N'. See also the property `mirroring'.")
|
||||
Property value is a symbol `Y' or `N'. See also the property `mirroring'."
|
||||
nil
|
||||
N)
|
||||
(old-name
|
||||
10 unidata-gen-table-name "uni-old-name.el"
|
||||
"Unicode old names as published in Unicode 1.0.
|
||||
|
@ -226,23 +243,30 @@ Property value is a string.")
|
|||
(uppercase
|
||||
12 unidata-gen-table-character "uni-uppercase.el"
|
||||
"Unicode simple uppercase mapping.
|
||||
Property value is a character."
|
||||
Property value is a character or nil.
|
||||
The value nil means that the actual property value of a character
|
||||
is the character itself."
|
||||
string)
|
||||
(lowercase
|
||||
13 unidata-gen-table-character "uni-lowercase.el"
|
||||
"Unicode simple lowercase mapping.
|
||||
Property value is a character."
|
||||
Property value is a character or nil.
|
||||
The value nil means that the actual property value of a character
|
||||
is the character itself."
|
||||
string)
|
||||
(titlecase
|
||||
14 unidata-gen-table-character "uni-titlecase.el"
|
||||
"Unicode simple titlecase mapping.
|
||||
Property value is a character."
|
||||
Property value is a character or nil.
|
||||
The value nil means that the actual property value of a character
|
||||
is the character itself."
|
||||
string)
|
||||
(mirroring
|
||||
unidata-gen-mirroring-list unidata-gen-table-character "uni-mirrored.el"
|
||||
"Unicode bidi-mirroring characters.
|
||||
Property value is a character that has the corresponding mirroring image,
|
||||
or nil for non-mirrored character.")))
|
||||
Property value is a character that has the corresponding mirroring image or nil.
|
||||
The value nil means that the actual property value of a character
|
||||
is the character itself.")))
|
||||
|
||||
;; Functions to access the above data.
|
||||
(defsubst unidata-prop-index (prop) (nth 1 (assq prop unidata-prop-alist)))
|
||||
|
@ -393,9 +417,18 @@ or nil for non-mirrored character.")))
|
|||
(while tail
|
||||
(setcar tail (cons (car tail) val-code))
|
||||
(setq tail (cdr tail) val-code (1+ val-code)))
|
||||
(setq default-value (unidata-encode-val val-list default-value))
|
||||
(set-char-table-range table t default-value)
|
||||
(set-char-table-range table nil default-value)
|
||||
(if (consp default-value)
|
||||
(setq default-value (copy-sequence default-value))
|
||||
(setq default-value (list default-value)))
|
||||
(setcar default-value
|
||||
(unidata-encode-val val-list (car default-value)))
|
||||
(set-char-table-range table t (car default-value))
|
||||
(set-char-table-range table nil (car default-value))
|
||||
(dolist (elm (cdr default-value))
|
||||
(setcar (nthcdr 2 elm)
|
||||
(unidata-encode-val val-list (nth 2 elm)))
|
||||
(set-char-table-range table (cons (car elm) (nth 1 elm)) (nth 2 elm)))
|
||||
|
||||
(setq tail unidata-list)
|
||||
(while tail
|
||||
(setq elt (car tail) tail (cdr tail))
|
||||
|
@ -419,17 +452,27 @@ or nil for non-mirrored character.")))
|
|||
(setq prev-range-data (cons (cons from to) val-code)))))
|
||||
(let* ((start (lsh (lsh range -7) 7))
|
||||
(limit (+ start 127))
|
||||
str count new-val)
|
||||
(fillarray vec 0)
|
||||
;; See the comment above.
|
||||
(when (and prev-range-data
|
||||
(>= (cdr (car prev-range-data)) start))
|
||||
(let ((from (car (car prev-range-data)))
|
||||
(to (cdr (car prev-range-data)))
|
||||
(vcode (cdr prev-range-data)))
|
||||
str count new-val from to vcode)
|
||||
(fillarray vec (car default-value))
|
||||
(dolist (elm (cdr default-value))
|
||||
(setq from (car elm) to (nth 1 elm))
|
||||
(when (and (<= from limit)
|
||||
(or (>= from start) (>= to start)))
|
||||
(setq from (max from start)
|
||||
to (min to limit)
|
||||
vcode (nth 2 elm))
|
||||
(while (<= from to)
|
||||
(aset vec (- from start) vcode)
|
||||
(setq from (1+ from)))))
|
||||
;; See the comment above.
|
||||
(when (and prev-range-data
|
||||
(>= (cdr (car prev-range-data)) start))
|
||||
(setq from (car (car prev-range-data))
|
||||
to (cdr (car prev-range-data))
|
||||
vcode (cdr prev-range-data))
|
||||
(while (<= from to)
|
||||
(aset vec (- from start) vcode)
|
||||
(setq from (1+ from))))
|
||||
(setq prev-range-data nil)
|
||||
(if val-code
|
||||
(aset vec (- range start) val-code))
|
||||
|
@ -669,7 +712,7 @@ or nil for non-mirrored character.")))
|
|||
(aset table c name)
|
||||
(if (= c char)
|
||||
(setq val name))))
|
||||
val)))
|
||||
(or val ""))))
|
||||
|
||||
((and (integerp val) (> val 0))
|
||||
(let* ((symbol-table (aref (char-table-extra-slot table 4) 1))
|
||||
|
@ -695,7 +738,9 @@ or nil for non-mirrored character.")))
|
|||
((eq sym 'CJK\ COMPATIBILITY\ IDEOGRAPH)
|
||||
(format "%s-%04X" sym char))
|
||||
((eq sym 'VARIATION\ SELECTOR)
|
||||
(format "%s-%d" sym (+ (- char #xe0100) 17))))))))
|
||||
(format "%s-%d" sym (+ (- char #xe0100) 17))))))
|
||||
|
||||
(t "")))
|
||||
|
||||
;; Store VAL as the name of CHAR in TABLE.
|
||||
|
||||
|
@ -707,6 +752,9 @@ or nil for non-mirrored character.")))
|
|||
|
||||
(defun unidata-get-decomposition (char val table)
|
||||
(cond
|
||||
((not val)
|
||||
(list char))
|
||||
|
||||
((consp val)
|
||||
val)
|
||||
|
||||
|
@ -747,7 +795,8 @@ or nil for non-mirrored character.")))
|
|||
(aset vec idx (nconc word-list tail-list)))
|
||||
(dotimes (i 128)
|
||||
(aset table (+ first-char i) (aref vec i)))
|
||||
(aref vec (- char first-char)))))
|
||||
(setq val (aref vec (- char first-char)))
|
||||
(or val (list char)))))
|
||||
|
||||
;; Hangul syllable
|
||||
((and (eq val 0) (>= char #xAC00) (<= char #xD7A3))
|
||||
|
|
|
@ -495,6 +495,7 @@ LIBXT_OTHER = @LIBXT_OTHER@
|
|||
LIBX_OTHER = @LIBX_OTHER@
|
||||
LIB_GCC = @LIB_GCC@
|
||||
LIB_MATH = @LIB_MATH@
|
||||
LIB_PTHREAD = @LIB_PTHREAD@
|
||||
LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@
|
||||
LIB_STANDARD = @LIB_STANDARD@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
|
|
|
@ -218,6 +218,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
/* Define to 1 if you have the `fpathconf' function. */
|
||||
#undef HAVE_FPATHCONF
|
||||
|
||||
/* Define to 1 if you have the `freeifaddrs' function. */
|
||||
#undef HAVE_FREEIFADDRS
|
||||
|
||||
/* Define to 1 if using the freetype and fontconfig libraries. */
|
||||
#undef HAVE_FREETYPE
|
||||
|
||||
|
@ -254,6 +257,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
/* Define to 1 if you have the `gethostname' function. */
|
||||
#undef HAVE_GETHOSTNAME
|
||||
|
||||
/* Define to 1 if you have the `getifaddrs' function. */
|
||||
#undef HAVE_GETIFADDRS
|
||||
|
||||
/* Define to 1 if you have the `getline' function. */
|
||||
#undef HAVE_GETLINE
|
||||
|
||||
|
@ -321,9 +327,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
/* Define to 1 if you have the `gtk_adjustment_get_page_size' function. */
|
||||
#undef HAVE_GTK_ADJUSTMENT_GET_PAGE_SIZE
|
||||
|
||||
/* Define to 1 if you have GTK and pthread (-lpthread). */
|
||||
#undef HAVE_GTK_AND_PTHREAD
|
||||
|
||||
/* Define to 1 if you have the `gtk_dialog_get_action_area' function. */
|
||||
#undef HAVE_GTK_DIALOG_GET_ACTION_AREA
|
||||
|
||||
|
@ -354,6 +357,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
/* Define to 1 if netdb.h declares h_errno. */
|
||||
#undef HAVE_H_ERRNO
|
||||
|
||||
/* Define to 1 if you have the <ifaddrs.h> header file. */
|
||||
#undef HAVE_IFADDRS_H
|
||||
|
||||
/* Define to 1 if using imagemagick. */
|
||||
#undef HAVE_IMAGEMAGICK
|
||||
|
||||
|
@ -554,6 +560,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
/* Define to 1 if you have the `mremap' function. */
|
||||
#undef HAVE_MREMAP
|
||||
|
||||
/* Define to 1 if you have the <net/if_dl.h> header file. */
|
||||
#undef HAVE_NET_IF_DL_H
|
||||
|
||||
/* Define to 1 if you have the <net/if.h> header file. */
|
||||
#undef HAVE_NET_IF_H
|
||||
|
||||
|
@ -582,6 +591,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
/* Define to 1 if you have the `pstat_getdynamic' function. */
|
||||
#undef HAVE_PSTAT_GETDYNAMIC
|
||||
|
||||
/* Define to 1 if you have pthread (-lpthread). */
|
||||
#undef HAVE_PTHREAD
|
||||
|
||||
/* Define to 1 if you have the <pthread.h> header file. */
|
||||
#undef HAVE_PTHREAD_H
|
||||
|
||||
|
@ -705,6 +717,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
/* Define to 1 if `ifr_addr' is a member of `struct ifreq'. */
|
||||
#undef HAVE_STRUCT_IFREQ_IFR_ADDR
|
||||
|
||||
/* Define to 1 if `ifr_addr.sa_len' is a member of `struct ifreq'. */
|
||||
#undef HAVE_STRUCT_IFREQ_IFR_ADDR_SA_LEN
|
||||
|
||||
/* Define to 1 if `ifr_broadaddr' is a member of `struct ifreq'. */
|
||||
#undef HAVE_STRUCT_IFREQ_IFR_BROADADDR
|
||||
|
||||
|
|
337
autogen/configure
vendored
337
autogen/configure
vendored
|
@ -1139,6 +1139,7 @@ IMAGEMAGICK_LIBS
|
|||
IMAGEMAGICK_CFLAGS
|
||||
RSVG_LIBS
|
||||
RSVG_CFLAGS
|
||||
LIB_PTHREAD
|
||||
VMLIMIT_OBJ
|
||||
GMALLOC_OBJ
|
||||
HAVE_XSERVER
|
||||
|
@ -2467,63 +2468,6 @@ $as_echo "$ac_res" >&6; }
|
|||
|
||||
} # ac_fn_c_check_header_preproc
|
||||
|
||||
# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
|
||||
# ----------------------------------------------------
|
||||
# Tries to find if the field MEMBER exists in type AGGR, after including
|
||||
# INCLUDES, setting cache variable VAR accordingly.
|
||||
ac_fn_c_check_member ()
|
||||
{
|
||||
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
|
||||
$as_echo_n "checking for $2.$3... " >&6; }
|
||||
if { as_var=$4; eval "test \"\${$as_var+set}\" = set"; }; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
$5
|
||||
int
|
||||
main ()
|
||||
{
|
||||
static $2 ac_aggr;
|
||||
if (ac_aggr.$3)
|
||||
return 0;
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"; then :
|
||||
eval "$4=yes"
|
||||
else
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
$5
|
||||
int
|
||||
main ()
|
||||
{
|
||||
static $2 ac_aggr;
|
||||
if (sizeof ac_aggr.$3)
|
||||
return 0;
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"; then :
|
||||
eval "$4=yes"
|
||||
else
|
||||
eval "$4=no"
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
fi
|
||||
eval ac_res=\$$4
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||
$as_echo "$ac_res" >&6; }
|
||||
eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
|
||||
|
||||
} # ac_fn_c_check_member
|
||||
|
||||
# ac_fn_c_check_func LINENO FUNC VAR
|
||||
# ----------------------------------
|
||||
# Tests whether FUNC exists, setting the cache variable VAR accordingly
|
||||
|
@ -2591,6 +2535,63 @@ $as_echo "$ac_res" >&6; }
|
|||
|
||||
} # ac_fn_c_check_func
|
||||
|
||||
# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
|
||||
# ----------------------------------------------------
|
||||
# Tries to find if the field MEMBER exists in type AGGR, after including
|
||||
# INCLUDES, setting cache variable VAR accordingly.
|
||||
ac_fn_c_check_member ()
|
||||
{
|
||||
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
|
||||
$as_echo_n "checking for $2.$3... " >&6; }
|
||||
if { as_var=$4; eval "test \"\${$as_var+set}\" = set"; }; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
$5
|
||||
int
|
||||
main ()
|
||||
{
|
||||
static $2 ac_aggr;
|
||||
if (ac_aggr.$3)
|
||||
return 0;
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"; then :
|
||||
eval "$4=yes"
|
||||
else
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
$5
|
||||
int
|
||||
main ()
|
||||
{
|
||||
static $2 ac_aggr;
|
||||
if (sizeof ac_aggr.$3)
|
||||
return 0;
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"; then :
|
||||
eval "$4=yes"
|
||||
else
|
||||
eval "$4=no"
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
fi
|
||||
eval ac_res=\$$4
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||
$as_echo "$ac_res" >&6; }
|
||||
eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
|
||||
|
||||
} # ac_fn_c_check_member
|
||||
|
||||
# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
|
||||
# -------------------------------------------
|
||||
# Tests whether TYPE exists after having included INCLUDES, setting cache
|
||||
|
@ -4373,8 +4374,8 @@ configuration=${host_alias-${build_alias-$host}}
|
|||
machine='' opsys='' unported=no
|
||||
case "${canonical}" in
|
||||
|
||||
## GNU/Linux ports
|
||||
*-*-linux-gnu*)
|
||||
## GNU/Linux and similar ports
|
||||
*-*-linux* )
|
||||
opsys=gnu-linux
|
||||
case ${canonical} in
|
||||
alpha*) machine=alpha ;;
|
||||
|
@ -4471,17 +4472,6 @@ case "${canonical}" in
|
|||
CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
|
||||
;;
|
||||
|
||||
ia64*-hp-hpux1[1-9]* )
|
||||
machine=hp800 opsys=hpux11
|
||||
## FIXME. Peter O'Gorman reports that dumping using unexelf.o doesn't
|
||||
## work either: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6811
|
||||
CANNOT_DUMP=yes
|
||||
;;
|
||||
|
||||
hppa*-*-linux-gnu* )
|
||||
machine=hp800 opsys=gnu-linux
|
||||
;;
|
||||
|
||||
## IBM machines
|
||||
rs6000-ibm-aix4.[23]* )
|
||||
machine=ibmrs6000 opsys=aix4-2
|
||||
|
@ -8358,6 +8348,18 @@ $as_echo "#define NO_MATHERR 1" >>confdefs.h
|
|||
|
||||
fi
|
||||
|
||||
for ac_header in sys/socket.h
|
||||
do :
|
||||
ac_fn_c_check_header_mongrel "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_sys_socket_h" = x""yes; then :
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_SYS_SOCKET_H 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
for ac_header in net/if.h
|
||||
do :
|
||||
ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "$ac_includes_default
|
||||
|
@ -8374,6 +8376,51 @@ fi
|
|||
|
||||
done
|
||||
|
||||
for ac_header in ifaddrs.h
|
||||
do :
|
||||
ac_fn_c_check_header_compile "$LINENO" "ifaddrs.h" "ac_cv_header_ifaddrs_h" "$ac_includes_default
|
||||
#if HAVE_SYS_SOCKET_H
|
||||
#include <sys/socket.h>
|
||||
#endif
|
||||
"
|
||||
if test "x$ac_cv_header_ifaddrs_h" = x""yes; then :
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_IFADDRS_H 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
for ac_header in net/if_dl.h
|
||||
do :
|
||||
ac_fn_c_check_header_compile "$LINENO" "net/if_dl.h" "ac_cv_header_net_if_dl_h" "$ac_includes_default
|
||||
#if HAVE_SYS_SOCKET_H
|
||||
#include <sys/socket.h>
|
||||
#endif
|
||||
"
|
||||
if test "x$ac_cv_header_net_if_dl_h" = x""yes; then :
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_NET_IF_DL_H 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
for ac_func in getifaddrs freeifaddrs
|
||||
do :
|
||||
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
||||
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
|
||||
eval as_val=\$$as_ac_var
|
||||
if test "x$as_val" = x""yes; then :
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
|
||||
$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
|
||||
|
@ -8564,6 +8611,22 @@ cat >>confdefs.h <<_ACEOF
|
|||
_ACEOF
|
||||
|
||||
|
||||
fi
|
||||
ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_addr.sa_len" "ac_cv_member_struct_ifreq_ifr_addr_sa_len" "$ac_includes_default
|
||||
#if HAVE_SYS_SOCKET_H
|
||||
#include <sys/socket.h>
|
||||
#endif
|
||||
#if HAVE_NET_IF_H
|
||||
#include <net/if.h>
|
||||
#endif
|
||||
"
|
||||
if test "x$ac_cv_member_struct_ifreq_ifr_addr_sa_len" = x""yes; then :
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_STRUCT_IFREQ_IFR_ADDR_SA_LEN 1
|
||||
_ACEOF
|
||||
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
@ -9038,7 +9101,7 @@ $as_echo "$HAVE_GNU_MAKE" >&6; }
|
|||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands -MMD -MF" >&5
|
||||
$as_echo_n "checking whether gcc understands -MMD -MF... " >&6; }
|
||||
SAVE_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -MMD -MF deps.d"
|
||||
CFLAGS="$CFLAGS -MMD -MF deps.d -MP"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
|
@ -9063,7 +9126,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
|||
$as_echo "$ac_enable_autodepend" >&6; }
|
||||
fi
|
||||
if test $ac_enable_autodepend = yes; then
|
||||
DEPFLAGS='-MMD -MF ${DEPDIR}/$*.d'
|
||||
DEPFLAGS='-MMD -MF ${DEPDIR}/$*.d -MP'
|
||||
## In parallel builds, another make might create depdir between
|
||||
## the first test and mkdir, so stick another test on the end.
|
||||
## Or use install-sh -d? mkdir -p is not portable.
|
||||
|
@ -9949,6 +10012,72 @@ if test "x$ac_cv_lib_Xbsd_main" = x""yes; then :
|
|||
fi
|
||||
|
||||
|
||||
LIB_PTHREAD=
|
||||
for ac_header in pthread.h
|
||||
do :
|
||||
ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_pthread_h" = x""yes; then :
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_PTHREAD_H 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
if test "$ac_cv_header_pthread_h"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_self in -lpthread" >&5
|
||||
$as_echo_n "checking for pthread_self in -lpthread... " >&6; }
|
||||
if test "${ac_cv_lib_pthread_pthread_self+set}" = set; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
LIBS="-lpthread $LIBS"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
/* Override any GCC internal prototype to avoid an error.
|
||||
Use char because int might match the return type of a GCC
|
||||
builtin and then its argument prototype would still apply. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
char pthread_self ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return pthread_self ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
ac_cv_lib_pthread_pthread_self=yes
|
||||
else
|
||||
ac_cv_lib_pthread_pthread_self=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
LIBS=$ac_check_lib_save_LIBS
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_self" >&5
|
||||
$as_echo "$ac_cv_lib_pthread_pthread_self" >&6; }
|
||||
if test "x$ac_cv_lib_pthread_pthread_self" = x""yes; then :
|
||||
HAVE_PTHREAD=yes
|
||||
fi
|
||||
|
||||
fi
|
||||
if test "$HAVE_PTHREAD" = yes; then
|
||||
case "${canonical}" in
|
||||
*-hpux*) ;;
|
||||
*) LIB_PTHREAD="-lpthread" ;;
|
||||
esac
|
||||
|
||||
$as_echo "#define HAVE_PTHREAD 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cma_open in -lpthreads" >&5
|
||||
$as_echo_n "checking for cma_open in -lpthreads... " >&6; }
|
||||
if test "${ac_cv_lib_pthreads_cma_open+set}" = set; then :
|
||||
|
@ -10774,70 +10903,6 @@ done
|
|||
|
||||
fi
|
||||
|
||||
HAVE_GTK_AND_PTHREAD=no
|
||||
for ac_header in pthread.h
|
||||
do :
|
||||
ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_pthread_h" = x""yes; then :
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_PTHREAD_H 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
if test "$ac_cv_header_pthread_h"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_self in -lpthread" >&5
|
||||
$as_echo_n "checking for pthread_self in -lpthread... " >&6; }
|
||||
if test "${ac_cv_lib_pthread_pthread_self+set}" = set; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
LIBS="-lpthread $LIBS"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
/* Override any GCC internal prototype to avoid an error.
|
||||
Use char because int might match the return type of a GCC
|
||||
builtin and then its argument prototype would still apply. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
char pthread_self ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return pthread_self ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
ac_cv_lib_pthread_pthread_self=yes
|
||||
else
|
||||
ac_cv_lib_pthread_pthread_self=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
LIBS=$ac_check_lib_save_LIBS
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_self" >&5
|
||||
$as_echo "$ac_cv_lib_pthread_pthread_self" >&6; }
|
||||
if test "x$ac_cv_lib_pthread_pthread_self" = x""yes; then :
|
||||
HAVE_GTK_AND_PTHREAD=yes
|
||||
fi
|
||||
|
||||
fi
|
||||
if test "$HAVE_GTK_AND_PTHREAD" = yes; then
|
||||
case "${canonical}" in
|
||||
*-hpux*) ;;
|
||||
*) GTK_LIBS="$GTK_LIBS -lpthread" ;;
|
||||
esac
|
||||
|
||||
$as_echo "#define HAVE_GTK_AND_PTHREAD 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
|
||||
for ac_func in gtk_widget_get_window gtk_widget_set_has_window \
|
||||
gtk_dialog_get_action_area gtk_widget_get_sensitive \
|
||||
|
|
62
configure.in
62
configure.in
|
@ -411,8 +411,8 @@ dnl quotation begins
|
|||
machine='' opsys='' unported=no
|
||||
case "${canonical}" in
|
||||
|
||||
## GNU/Linux ports
|
||||
*-*-linux-gnu*)
|
||||
## GNU/Linux and similar ports
|
||||
*-*-linux* )
|
||||
opsys=gnu-linux
|
||||
case ${canonical} in
|
||||
alpha*) machine=alpha ;;
|
||||
|
@ -509,17 +509,6 @@ case "${canonical}" in
|
|||
CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
|
||||
;;
|
||||
|
||||
ia64*-hp-hpux1[1-9]* )
|
||||
machine=hp800 opsys=hpux11
|
||||
## FIXME. Peter O'Gorman reports that dumping using unexelf.o doesn't
|
||||
## work either: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6811
|
||||
CANNOT_DUMP=yes
|
||||
;;
|
||||
|
||||
hppa*-*-linux-gnu* )
|
||||
machine=hp800 opsys=gnu-linux
|
||||
;;
|
||||
|
||||
## IBM machines
|
||||
rs6000-ibm-aix4.[23]* )
|
||||
machine=ibmrs6000 opsys=aix4-2
|
||||
|
@ -1300,10 +1289,20 @@ if test $emacs_cv_struct_exception != yes; then
|
|||
AC_DEFINE(NO_MATHERR, 1, [Define to 1 if you don't have struct exception in math.h.])
|
||||
fi
|
||||
|
||||
AC_CHECK_HEADERS(sys/socket.h)
|
||||
AC_CHECK_HEADERS(net/if.h, , , [AC_INCLUDES_DEFAULT
|
||||
#if HAVE_SYS_SOCKET_H
|
||||
#include <sys/socket.h>
|
||||
#endif])
|
||||
AC_CHECK_HEADERS(ifaddrs.h, , , [AC_INCLUDES_DEFAULT
|
||||
#if HAVE_SYS_SOCKET_H
|
||||
#include <sys/socket.h>
|
||||
#endif])
|
||||
AC_CHECK_HEADERS(net/if_dl.h, , , [AC_INCLUDES_DEFAULT
|
||||
#if HAVE_SYS_SOCKET_H
|
||||
#include <sys/socket.h>
|
||||
#endif])
|
||||
AC_CHECK_FUNCS(getifaddrs freeifaddrs)
|
||||
|
||||
dnl checks for structure members
|
||||
AC_STRUCT_TM
|
||||
|
@ -1314,7 +1313,8 @@ AC_CHECK_MEMBER(struct tm.tm_gmtoff,
|
|||
[#include <time.h>])
|
||||
AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr,
|
||||
struct ifreq.ifr_netmask, struct ifreq.ifr_broadaddr,
|
||||
struct ifreq.ifr_addr], , ,
|
||||
struct ifreq.ifr_addr,
|
||||
struct ifreq.ifr_addr.sa_len], , ,
|
||||
[AC_INCLUDES_DEFAULT
|
||||
#if HAVE_SYS_SOCKET_H
|
||||
#include <sys/socket.h>
|
||||
|
@ -1380,7 +1380,7 @@ if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
|
|||
if test $HAVE_GNU_MAKE = yes; then
|
||||
AC_MSG_CHECKING([whether gcc understands -MMD -MF])
|
||||
SAVE_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -MMD -MF deps.d"
|
||||
CFLAGS="$CFLAGS -MMD -MF deps.d -MP"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], , ac_enable_autodepend=no)
|
||||
CFLAGS="$SAVE_CFLAGS"
|
||||
test -f deps.d || ac_enable_autodepend=no
|
||||
|
@ -1388,7 +1388,7 @@ if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
|
|||
AC_MSG_RESULT([$ac_enable_autodepend])
|
||||
fi
|
||||
if test $ac_enable_autodepend = yes; then
|
||||
DEPFLAGS='-MMD -MF ${DEPDIR}/$*.d'
|
||||
DEPFLAGS='-MMD -MF ${DEPDIR}/$*.d -MP'
|
||||
## In parallel builds, another make might create depdir between
|
||||
## the first test and mkdir, so stick another test on the end.
|
||||
## Or use install-sh -d? mkdir -p is not portable.
|
||||
|
@ -1688,6 +1688,21 @@ dnl AC_CHECK_LIB(resolv, gethostbyname)
|
|||
dnl FIXME replace main with a function we actually want from this library.
|
||||
AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
|
||||
|
||||
dnl Check if pthreads is available.
|
||||
LIB_PTHREAD=
|
||||
AC_CHECK_HEADERS(pthread.h)
|
||||
if test "$ac_cv_header_pthread_h"; then
|
||||
AC_CHECK_LIB(pthread, pthread_self, HAVE_PTHREAD=yes)
|
||||
fi
|
||||
if test "$HAVE_PTHREAD" = yes; then
|
||||
case "${canonical}" in
|
||||
*-hpux*) ;;
|
||||
*) LIB_PTHREAD="-lpthread" ;;
|
||||
esac
|
||||
AC_DEFINE(HAVE_PTHREAD, 1, [Define to 1 if you have pthread (-lpthread).])
|
||||
fi
|
||||
AC_SUBST([LIB_PTHREAD])
|
||||
|
||||
AC_CHECK_LIB(pthreads, cma_open)
|
||||
|
||||
## Note: when using cpp in s/aix4.2.h, this definition depended on
|
||||
|
@ -1944,21 +1959,6 @@ if test "${HAVE_GTK}" = "yes"; then
|
|||
AC_CHECK_FUNCS(gtk_file_selection_new)
|
||||
fi
|
||||
|
||||
dnl Check if pthreads are available. Emacs only needs this when using
|
||||
dnl gtk_file_chooser under Gnome.
|
||||
HAVE_GTK_AND_PTHREAD=no
|
||||
AC_CHECK_HEADERS(pthread.h)
|
||||
if test "$ac_cv_header_pthread_h"; then
|
||||
AC_CHECK_LIB(pthread, pthread_self, HAVE_GTK_AND_PTHREAD=yes)
|
||||
fi
|
||||
if test "$HAVE_GTK_AND_PTHREAD" = yes; then
|
||||
case "${canonical}" in
|
||||
*-hpux*) ;;
|
||||
*) GTK_LIBS="$GTK_LIBS -lpthread" ;;
|
||||
esac
|
||||
AC_DEFINE(HAVE_GTK_AND_PTHREAD, 1,
|
||||
[Define to 1 if you have GTK and pthread (-lpthread).])
|
||||
fi
|
||||
|
||||
dnl Check for functions introduced in 2.14 and later.
|
||||
AC_CHECK_FUNCS(gtk_widget_get_window gtk_widget_set_has_window \
|
||||
|
|
|
@ -1,3 +1,67 @@
|
|||
2011-08-29 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* modes.texi (Choosing Modes): auto-mode-case-fold is now t.
|
||||
|
||||
2011-08-28 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* files.texi (File Archives):
|
||||
* cal-xtra.texi (Diary Display):
|
||||
* help.texi (Help Mode): Add xref to View Mode.
|
||||
|
||||
2011-08-28 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* display.texi (View Mode): New node. Move view-file here from
|
||||
Misc File Ops. Move view-buffer here from Misc Buffer.
|
||||
|
||||
* buffers.texi (Misc Buffer): Move view-buffer to View Mode.
|
||||
|
||||
* files.texi (Misc File Ops): Document new
|
||||
delete-by-moving-to-trash behavior. Remove view-file.
|
||||
|
||||
* dired.texi (Dired Deletion): Shorten description of Trash.
|
||||
|
||||
* misc.texi (emacsclient Options): Document server-port.
|
||||
|
||||
2011-08-27 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* frames.texi (Frame Commands): Advise setting focus-follows-mouse
|
||||
even on MS-Windows. Fix a typo.
|
||||
|
||||
2011-08-26 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* package.texi: New file, documenting the package manager.
|
||||
|
||||
* emacs.texi: Include it.
|
||||
|
||||
* help.texi (Help Summary): Add describe-package.
|
||||
|
||||
2011-08-25 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* misc.texi (Printing): Convert subnodes into subsections.
|
||||
|
||||
* text.texi (Two-Column): Move into Text chapter.
|
||||
|
||||
* picture-xtra.texi (Picture Mode): Group with Editing Binary
|
||||
Files section. Convert from chapter into section.
|
||||
|
||||
* display.texi (Narrowing): Move into display chapter.
|
||||
|
||||
* sending.texi (Sending Mail):
|
||||
* rmail.texi (Rmail):
|
||||
* misc.texi (Gnus, Document View):
|
||||
* dired.texi (Dired):
|
||||
* emacs.texi: Group the mail, rmail, and gnus chapters together.
|
||||
|
||||
2011-08-07 Juri Linkov <juri@jurta.org>
|
||||
|
||||
* dired.texi (Operating on Files): Rewrite according to the fact
|
||||
that `dired-do-chmod' doesn't use the `chmod' program anymore.
|
||||
|
||||
2011-07-30 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* mini.texi (Minibuffer File): Insert a reference to Tramp for
|
||||
remote file name completion. (Bug#9197)
|
||||
|
||||
2011-07-28 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* mule.texi (Bidirectional Editing): Document the fact that
|
||||
|
|
|
@ -96,6 +96,7 @@ EMACSSOURCES= \
|
|||
${srcdir}/dired.texi \
|
||||
${srcdir}/calendar.texi \
|
||||
${srcdir}/misc.texi \
|
||||
${srcdir}/package.texi \
|
||||
${srcdir}/custom.texi \
|
||||
${srcdir}/trouble.texi \
|
||||
${srcdir}/cmdargs.texi \
|
||||
|
|
|
@ -285,16 +285,6 @@ buffers with particular names. (With some of these features, such as
|
|||
switch to some other buffer before using the command, in order for it
|
||||
to make a different buffer.)
|
||||
|
||||
@findex view-buffer
|
||||
@kbd{M-x view-buffer} is much like @kbd{M-x view-file} (@pxref{Misc
|
||||
File Ops}) except that it examines an already existing Emacs buffer.
|
||||
View mode provides commands for scrolling through the buffer
|
||||
conveniently but not for changing it. When you exit View mode with
|
||||
@kbd{q}, that switches back to the buffer (and the position) which was
|
||||
previously displayed in the window. Alternatively, if you exit View
|
||||
mode with @kbd{e}, the buffer and the value of point that resulted from
|
||||
your perusal remain in effect.
|
||||
|
||||
The commands @kbd{M-x append-to-buffer} and @kbd{M-x insert-buffer}
|
||||
can be used to copy text from one buffer to another. @xref{Accumulating
|
||||
Text}.
|
||||
|
|
|
@ -538,13 +538,7 @@ are no diary entries, even if that day is a holiday. If you want such
|
|||
days to be shown in the fancy diary buffer, set the variable
|
||||
@code{diary-list-include-blanks} to @code{t}.@refill
|
||||
|
||||
@c View mode does not seem to be described in the manual.
|
||||
@c buffers.texi has a brief mention.
|
||||
The fancy diary buffer enables View mode, a minor mode that provides
|
||||
commands for scrolling and searching the text. For example, @key{SPC}
|
||||
and @key{DEL} scroll forward and backward, and @key{s} starts an
|
||||
incremental search. See the documentation of the function
|
||||
@code{view-mode} for more information.
|
||||
The fancy diary buffer enables View mode (@pxref{View Mode}).
|
||||
|
||||
The alternative display method @code{diary-simple-display} shows the
|
||||
actual diary buffer, and uses invisible text to hide entries that don't
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
|
||||
@c Free Software Foundation, Inc.
|
||||
@c See file emacs.texi for copying conditions.
|
||||
@node Calendar/Diary, Document View, Dired, Top
|
||||
@node Calendar/Diary
|
||||
@chapter The Calendar and the Diary
|
||||
@cindex calendar
|
||||
@findex calendar
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
|
||||
@c Free Software Foundation, Inc.
|
||||
@c See file emacs.texi for copying conditions.
|
||||
@node Customization, Quitting, Amusements, Top
|
||||
@node Customization
|
||||
@chapter Customization
|
||||
@cindex customization
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
|
||||
@c Free Software Foundation, Inc.
|
||||
@c See file emacs.texi for copying conditions.
|
||||
@node Dired, Calendar/Diary, Rmail, Top
|
||||
@node Dired
|
||||
@chapter Dired, the Directory Editor
|
||||
@c This node is referenced in the tutorial. When renaming or deleting
|
||||
@c it, the tutorial needs to be adjusted.
|
||||
|
@ -201,12 +201,10 @@ delete nonempty directories including all their contents. That can
|
|||
be somewhat risky.
|
||||
|
||||
@vindex delete-by-moving-to-trash
|
||||
On some systems, there is a facility called the ``Trash'' or
|
||||
``Recycle Bin'', but Emacs does @emph{not} use it by default. Thus,
|
||||
when you delete a file in Dired, it is gone forever. However, you can
|
||||
tell Emacs to use the Trash for file deletion, by changing the
|
||||
variable @code{delete-by-moving-to-trash} to @code{t}. @xref{Misc
|
||||
File Ops}, for more information about the Trash.
|
||||
If you change the variable @code{delete-by-moving-to-trash} to
|
||||
@code{t}, the above deletion commands will move the affected files or
|
||||
directories into the operating system's Trash, instead of deleting
|
||||
them outright. @xref{Misc File Ops}.
|
||||
|
||||
@node Flagging Many Files
|
||||
@section Flagging Many Files at Once
|
||||
|
@ -645,8 +643,8 @@ link.
|
|||
@cindex changing file permissions (in Dired)
|
||||
@item M @var{modespec} @key{RET}
|
||||
Change the mode (also called ``permission bits'') of the specified files
|
||||
(@code{dired-do-chmod}). This uses the @code{chmod} program, so
|
||||
@var{modespec} can be any argument that @code{chmod} can handle.
|
||||
(@code{dired-do-chmod}). @var{modespec} can be in octal or symbolic
|
||||
notation like arguments handled by the @code{chmod} program.
|
||||
|
||||
@findex dired-do-chgrp
|
||||
@kindex G @r{(Dired)}
|
||||
|
|
|
@ -15,6 +15,9 @@ want to see, and how to display it.
|
|||
* Scrolling:: Commands to move text up and down in a window.
|
||||
* Auto Scrolling:: Redisplay scrolls text automatically when needed.
|
||||
* Horizontal Scrolling:: Moving text left and right in a window.
|
||||
* Narrowing:: Restricting display and editing to a portion
|
||||
of the buffer.
|
||||
* View Mode:: Viewing read-only buffers.
|
||||
* Follow Mode:: Follow mode lets two windows scroll as one.
|
||||
* Faces:: How to change the display style using faces.
|
||||
* Standard Faces:: Emacs' predefined faces.
|
||||
|
@ -300,6 +303,94 @@ a lower bound for automatic horizontal scrolling. Automatic scrolling
|
|||
will continue to scroll the window, but never farther to the right
|
||||
than the amount you previously set by @code{scroll-left}.
|
||||
|
||||
@node Narrowing
|
||||
@section Narrowing
|
||||
@cindex widening
|
||||
@cindex restriction
|
||||
@cindex narrowing
|
||||
@cindex accessible portion
|
||||
|
||||
@dfn{Narrowing} means focusing in on some portion of the buffer,
|
||||
making the rest temporarily inaccessible. The portion which you can
|
||||
still get to is called the @dfn{accessible portion}. Canceling the
|
||||
narrowing, which makes the entire buffer once again accessible, is
|
||||
called @dfn{widening}. The bounds of narrowing in effect in a buffer
|
||||
are called the buffer's @dfn{restriction}.
|
||||
|
||||
Narrowing can make it easier to concentrate on a single subroutine or
|
||||
paragraph by eliminating clutter. It can also be used to limit the
|
||||
range of operation of a replace command or repeating keyboard macro.
|
||||
|
||||
@table @kbd
|
||||
@item C-x n n
|
||||
Narrow down to between point and mark (@code{narrow-to-region}).
|
||||
@item C-x n w
|
||||
Widen to make the entire buffer accessible again (@code{widen}).
|
||||
@item C-x n p
|
||||
Narrow down to the current page (@code{narrow-to-page}).
|
||||
@item C-x n d
|
||||
Narrow down to the current defun (@code{narrow-to-defun}).
|
||||
@end table
|
||||
|
||||
When you have narrowed down to a part of the buffer, that part appears
|
||||
to be all there is. You can't see the rest, you can't move into it
|
||||
(motion commands won't go outside the accessible part), you can't change
|
||||
it in any way. However, it is not gone, and if you save the file all
|
||||
the inaccessible text will be saved. The word @samp{Narrow} appears in
|
||||
the mode line whenever narrowing is in effect.
|
||||
|
||||
@kindex C-x n n
|
||||
@findex narrow-to-region
|
||||
The primary narrowing command is @kbd{C-x n n} (@code{narrow-to-region}).
|
||||
It sets the current buffer's restrictions so that the text in the current
|
||||
region remains accessible, but all text before the region or after the
|
||||
region is inaccessible. Point and mark do not change.
|
||||
|
||||
@kindex C-x n p
|
||||
@findex narrow-to-page
|
||||
@kindex C-x n d
|
||||
@findex narrow-to-defun
|
||||
Alternatively, use @kbd{C-x n p} (@code{narrow-to-page}) to narrow
|
||||
down to the current page. @xref{Pages}, for the definition of a page.
|
||||
@kbd{C-x n d} (@code{narrow-to-defun}) narrows down to the defun
|
||||
containing point (@pxref{Defuns}).
|
||||
|
||||
@kindex C-x n w
|
||||
@findex widen
|
||||
The way to cancel narrowing is to widen with @kbd{C-x n w}
|
||||
(@code{widen}). This makes all text in the buffer accessible again.
|
||||
|
||||
You can get information on what part of the buffer you are narrowed down
|
||||
to using the @kbd{C-x =} command. @xref{Position Info}.
|
||||
|
||||
Because narrowing can easily confuse users who do not understand it,
|
||||
@code{narrow-to-region} is normally a disabled command. Attempting to use
|
||||
this command asks for confirmation and gives you the option of enabling it;
|
||||
if you enable the command, confirmation will no longer be required for
|
||||
it. @xref{Disabling}.
|
||||
|
||||
@node View Mode
|
||||
@section View Mode
|
||||
@cindex View mode
|
||||
@cindex mode, View
|
||||
|
||||
View mode is a minor mode that lets you scan a buffer by sequential
|
||||
screenfuls. It provides commands for scrolling through the buffer
|
||||
conveniently but not for changing it. Apart from the usual Emacs
|
||||
cursor motion commands, you can type @key{SPC} to scroll forward one
|
||||
windowful, @key{DEL} to scroll backward, and @kbd{s} to start an
|
||||
incremental search.
|
||||
|
||||
Typing @kbd{q} disables View mode, and switches back to the buffer
|
||||
and position before View mode was enabled. Alternatively, typing
|
||||
@kbd{e} disables View mode, keeping the current buffer and position.
|
||||
|
||||
@findex view-buffer
|
||||
@findex view-file
|
||||
@kbd{M-x view-buffer} prompts for an existing Emacs buffer, switches
|
||||
to it, and enables View mode. @kbd{M-x view-file} prompts for a file
|
||||
and visits it with View mode enabled.
|
||||
|
||||
@node Follow Mode
|
||||
@section Follow Mode
|
||||
@cindex Follow mode
|
||||
|
|
|
@ -187,39 +187,32 @@ Major Structures of Emacs
|
|||
Advanced Features
|
||||
* Modes:: Major and minor modes alter Emacs' basic behavior.
|
||||
* Indentation:: Editing the white space at the beginnings of lines.
|
||||
* Text:: Commands and modes for editing English.
|
||||
* Text:: Commands and modes for editing human languages.
|
||||
* Programs:: Commands and modes for editing programs.
|
||||
* Building:: Compiling, running and debugging programs.
|
||||
* Maintaining:: Features for maintaining large programs.
|
||||
* Abbrevs:: Defining text abbreviations to reduce
|
||||
the number of characters you must type.
|
||||
@c AFAICS, the tex stuff generates its own index and does not use this one.
|
||||
@ifnottex
|
||||
* Picture Mode:: Editing pictures made up of characters using
|
||||
the quarter-plane screen model.
|
||||
@end ifnottex
|
||||
* Dired:: Directory and file manager.
|
||||
* Calendar/Diary:: Calendar and diary facilities.
|
||||
* Sending Mail:: Sending mail in Emacs.
|
||||
* Rmail:: Reading mail in Emacs.
|
||||
* Dired:: You can "edit" a directory to manage files in it.
|
||||
* Calendar/Diary:: The calendar and diary facilities.
|
||||
* Document View:: Viewing PDF, PS and DVI files.
|
||||
* Gnus:: A flexible mail and news reader.
|
||||
* Document View:: Viewing PDF, PS and DVI files.
|
||||
* Shell:: Executing shell commands from Emacs.
|
||||
* Emacs Server:: Using Emacs as an editing server.
|
||||
* Printing:: Printing hardcopies of buffers or regions.
|
||||
* Sorting:: Sorting lines, paragraphs or pages within Emacs.
|
||||
* Narrowing:: Restricting display and editing to a portion
|
||||
of the buffer.
|
||||
* Two-Column:: Splitting apart columns to edit them
|
||||
in side-by-side windows.
|
||||
* Editing Binary Files::Using Hexl mode to edit binary files.
|
||||
@ifnottex
|
||||
* Picture Mode:: Editing pictures made up of text characters.
|
||||
@end ifnottex
|
||||
* Editing Binary Files:: Editing binary files with Hexl mode.
|
||||
* Saving Emacs Sessions:: Saving Emacs state from one session to the next.
|
||||
* Recursive Edit:: A command can allow you to do editing
|
||||
"within the command". This is called a
|
||||
"recursive editing level".
|
||||
* Recursive Edit:: Performing edits while "within another command".
|
||||
* Emulation:: Emulating some other editors with Emacs.
|
||||
* Hyperlinking:: Following links in buffers.
|
||||
* Amusements:: Various games and hacks.
|
||||
* Packages:: Installing additional features.
|
||||
* Customization:: Modifying the behavior of Emacs.
|
||||
|
||||
Recovery from Problems
|
||||
|
@ -350,6 +343,9 @@ Controlling the Display
|
|||
* Scrolling:: Commands to move text up and down in a window.
|
||||
* Auto Scrolling:: Redisplay scrolls text automatically when needed.
|
||||
* Horizontal Scrolling:: Moving text left and right in a window.
|
||||
* Narrowing:: Restricting display and editing to a portion
|
||||
of the buffer.
|
||||
* View Mode:: Viewing read-only buffers.
|
||||
* Follow Mode:: Follow mode lets two windows scroll as one.
|
||||
* Faces:: How to change the display style using faces.
|
||||
* Standard Faces:: Emacs' predefined faces.
|
||||
|
@ -577,6 +573,7 @@ Commands for Human Languages
|
|||
* Nroff Mode:: Editing input to the formatter nroff.
|
||||
* Formatted Text:: Editing formatted text directly in WYSIWYG fashion.
|
||||
* Text Based Tables:: Editing text-based tables in WYSIWYG fashion.
|
||||
* Two-Column:: Splitting text columns into separate windows.
|
||||
|
||||
Filling Text
|
||||
|
||||
|
@ -885,52 +882,6 @@ Editing Pictures
|
|||
* Rectangles in Picture:: Clearing and superimposing rectangles.
|
||||
@end ifnottex
|
||||
|
||||
Sending Mail
|
||||
|
||||
* Mail Format:: Format of the mail being composed.
|
||||
* Mail Headers:: Details of some standard mail header fields.
|
||||
* Mail Aliases:: Abbreviating and grouping mail addresses.
|
||||
* Mail Commands:: Special commands for editing mail being composed.
|
||||
* Mail Signature:: Adding a signature to every message.
|
||||
* Mail Amusements:: Distracting the NSA; adding fortune messages.
|
||||
* Mail Methods:: Using alternative mail-composition methods.
|
||||
|
||||
Mail Commands
|
||||
|
||||
* Mail Sending:: Commands to send the message.
|
||||
* Header Editing:: Commands to move to header fields and edit them.
|
||||
* Citing Mail:: Quoting a message you are replying to.
|
||||
* Mail Misc:: Attachments, spell checking, etc.
|
||||
|
||||
Reading Mail with Rmail
|
||||
|
||||
* Rmail Basics:: Basic concepts of Rmail, and simple use.
|
||||
* Rmail Scrolling:: Scrolling through a message.
|
||||
* Rmail Motion:: Moving to another message.
|
||||
* Rmail Deletion:: Deleting and expunging messages.
|
||||
* Rmail Inbox:: How mail gets into the Rmail file.
|
||||
* Rmail Files:: Using multiple Rmail files.
|
||||
* Rmail Output:: Copying message out to files.
|
||||
* Rmail Labels:: Classifying messages by labeling them.
|
||||
* Rmail Attributes:: Certain standard labels, called attributes.
|
||||
* Rmail Reply:: Sending replies to messages you are viewing.
|
||||
* Rmail Summary:: Summaries show brief info on many messages.
|
||||
* Rmail Sorting:: Sorting messages in Rmail.
|
||||
* Rmail Display:: How Rmail displays a message; customization.
|
||||
* Rmail Coding:: How Rmail handles decoding character sets.
|
||||
* Rmail Editing:: Editing message text and headers in Rmail.
|
||||
* Rmail Digest:: Extracting the messages from a digest message.
|
||||
* Rmail Rot13:: Reading messages encoded in the rot13 code.
|
||||
* Movemail:: More details of fetching new mail.
|
||||
* Remote Mailboxes:: Retrieving mail from remote mailboxes.
|
||||
* Other Mailbox Formats:: Retrieving mail from local mailboxes in
|
||||
various formats.
|
||||
|
||||
Summaries
|
||||
|
||||
* Rmail Make Summary:: Making various sorts of summaries.
|
||||
* Rmail Summary Edit:: Manipulating messages from the summary.
|
||||
|
||||
Dired, the Directory Editor
|
||||
|
||||
* Dired Enter:: How to invoke Dired.
|
||||
|
@ -1014,6 +965,52 @@ Document Viewing
|
|||
* Slicing:: Specifying which part of pages should be displayed.
|
||||
* Conversion:: Influencing and triggering conversion.
|
||||
|
||||
Sending Mail
|
||||
|
||||
* Mail Format:: Format of the mail being composed.
|
||||
* Mail Headers:: Details of some standard mail header fields.
|
||||
* Mail Aliases:: Abbreviating and grouping mail addresses.
|
||||
* Mail Commands:: Special commands for editing mail being composed.
|
||||
* Mail Signature:: Adding a signature to every message.
|
||||
* Mail Amusements:: Distracting the NSA; adding fortune messages.
|
||||
* Mail Methods:: Using alternative mail-composition methods.
|
||||
|
||||
Mail Commands
|
||||
|
||||
* Mail Sending:: Commands to send the message.
|
||||
* Header Editing:: Commands to move to header fields and edit them.
|
||||
* Citing Mail:: Quoting a message you are replying to.
|
||||
* Mail Misc:: Attachments, spell checking, etc.
|
||||
|
||||
Reading Mail with Rmail
|
||||
|
||||
* Rmail Basics:: Basic concepts of Rmail, and simple use.
|
||||
* Rmail Scrolling:: Scrolling through a message.
|
||||
* Rmail Motion:: Moving to another message.
|
||||
* Rmail Deletion:: Deleting and expunging messages.
|
||||
* Rmail Inbox:: How mail gets into the Rmail file.
|
||||
* Rmail Files:: Using multiple Rmail files.
|
||||
* Rmail Output:: Copying message out to files.
|
||||
* Rmail Labels:: Classifying messages by labeling them.
|
||||
* Rmail Attributes:: Certain standard labels, called attributes.
|
||||
* Rmail Reply:: Sending replies to messages you are viewing.
|
||||
* Rmail Summary:: Summaries show brief info on many messages.
|
||||
* Rmail Sorting:: Sorting messages in Rmail.
|
||||
* Rmail Display:: How Rmail displays a message; customization.
|
||||
* Rmail Coding:: How Rmail handles decoding character sets.
|
||||
* Rmail Editing:: Editing message text and headers in Rmail.
|
||||
* Rmail Digest:: Extracting the messages from a digest message.
|
||||
* Rmail Rot13:: Reading messages encoded in the rot13 code.
|
||||
* Movemail:: More details of fetching new mail.
|
||||
* Remote Mailboxes:: Retrieving mail from remote mailboxes.
|
||||
* Other Mailbox Formats:: Retrieving mail from local mailboxes in
|
||||
various formats.
|
||||
|
||||
Rmail Summaries
|
||||
|
||||
* Rmail Make Summary:: Making various sorts of summaries.
|
||||
* Rmail Summary Edit:: Manipulating messages from the summary.
|
||||
|
||||
Gnus
|
||||
|
||||
* Buffers of Gnus:: The group, summary, and article buffers.
|
||||
|
@ -1058,6 +1055,12 @@ Hyperlinking and Navigation Features
|
|||
* Goto Address mode:: Activating URLs.
|
||||
* FFAP:: Finding files etc. at point.
|
||||
|
||||
Emacs Lisp Packages
|
||||
|
||||
* Package Menu:: Buffer for viewing and managing packages.
|
||||
* Package Installation:: Options for package installation.
|
||||
* Package Files:: Where packages are installed.
|
||||
|
||||
Customization
|
||||
|
||||
* Easy Customization:: Convenient way to browse and change settings.
|
||||
|
@ -1494,16 +1497,15 @@ Lisp programming.
|
|||
@c Includes vc1-xtra, emerge-xtra.
|
||||
@include maintaining.texi
|
||||
@include abbrevs.texi
|
||||
@ifnottex
|
||||
@include picture-xtra.texi
|
||||
@end ifnottex
|
||||
@include sending.texi
|
||||
@include rmail.texi
|
||||
@c Includes dired-xtra.
|
||||
@include dired.texi
|
||||
@c Includes cal-xtra.
|
||||
@include calendar.texi
|
||||
@include sending.texi
|
||||
@include rmail.texi
|
||||
@c Includes picture-xtra.texi
|
||||
@include misc.texi
|
||||
@include package.texi
|
||||
@include custom.texi
|
||||
@include trouble.texi
|
||||
|
||||
|
|
|
@ -1272,11 +1272,11 @@ this, it runs the program specified by
|
|||
The command @kbd{M-x delete-directory} prompts for a directory name
|
||||
using the minibuffer, and deletes the directory if it is empty. If
|
||||
the directory is not empty, you will be asked whether you want to
|
||||
delete it recursively. On systems that have a ``Trash'' or ``Recycle
|
||||
Bin'' feature, you can make this command move the specified directory
|
||||
to the Trash or Recycle Bin, instead of deleting it outright, by
|
||||
changing the variable @code{delete-by-moving-to-trash} to @code{t}.
|
||||
@xref{Misc File Ops}, for more information about using the Trash.
|
||||
delete it recursively. On systems that have a ``Trash'' (or ``Recycle
|
||||
Bin'') feature, you can make this command move the specified directory
|
||||
to the Trash instead of deleting it outright, by changing the variable
|
||||
@code{delete-by-moving-to-trash} to @code{t}. @xref{Misc File Ops},
|
||||
for more information about using the Trash.
|
||||
|
||||
@node Comparing Files
|
||||
@section Comparing Files
|
||||
|
@ -1503,23 +1503,78 @@ patch syntax (@pxref{Useless Whitespace}).
|
|||
Emacs has commands for performing many other operations on files.
|
||||
All operate on one file; they do not accept wildcard file names.
|
||||
|
||||
@findex view-file
|
||||
@cindex viewing
|
||||
@cindex View mode
|
||||
@cindex mode, View
|
||||
@kbd{M-x view-file} allows you to scan or read a file by sequential
|
||||
screenfuls. It reads a file name argument using the minibuffer. After
|
||||
reading the file into an Emacs buffer, @code{view-file} displays the
|
||||
beginning. You can then type @key{SPC} to scroll forward one windowful,
|
||||
or @key{DEL} to scroll backward. Various other commands are provided
|
||||
for moving around in the file, but none for changing it; type @kbd{?}
|
||||
while viewing for a list of them. They are mostly the same as normal
|
||||
Emacs cursor motion commands. To exit from viewing, type @kbd{q}.
|
||||
The commands for viewing are defined by a special minor mode called View
|
||||
mode.
|
||||
@findex delete-file
|
||||
@cindex deletion (of files)
|
||||
@kbd{M-x delete-file} prompts for a file and deletes it. If you are
|
||||
deleting many files in one directory, it may be more convenient to use
|
||||
Dired rather than @code{delete-file}. @xref{Dired Deletion}.
|
||||
|
||||
A related command, @kbd{M-x view-buffer}, views a buffer already present
|
||||
in Emacs. @xref{Misc Buffer}.
|
||||
@cindex trash
|
||||
@cindex recycle bin
|
||||
@kbd{M-x move-file-to-trash} moves a file into the system
|
||||
@dfn{Trash} (or @dfn{Recycle Bin}). This is a facility available on
|
||||
most operating systems; files that are moved into the Trash can be
|
||||
brought back later if you change your mind.
|
||||
|
||||
@vindex delete-by-moving-to-trash
|
||||
By default, Emacs deletion commands do @emph{not} use the Trash. To
|
||||
use the Trash (when it is available) for common deletion commands,
|
||||
change the variable @code{delete-by-moving-to-trash} to @code{t}.
|
||||
This affects the commands @kbd{M-x delete-file} and @kbd{M-x
|
||||
delete-directory} (@pxref{Directories}), as well as the deletion
|
||||
commands in Dired (@pxref{Dired Deletion}). Supplying a prefix
|
||||
argument to @kbd{M-x delete-file} or @kbd{M-x delete-directory} makes
|
||||
them delete outright, instead of using the Trash, regardless of
|
||||
@code{delete-by-moving-to-trash}.
|
||||
|
||||
@findex copy-file
|
||||
@cindex copying files
|
||||
@kbd{M-x copy-file} reads the file @var{old} and writes a new file
|
||||
named @var{new} with the same contents.
|
||||
|
||||
@findex copy-directory
|
||||
@kbd{M-x copy-directory} copies directories, similar to the
|
||||
@command{cp -r} shell command. It prompts for a directory @var{old}
|
||||
and a destination @var{new}. If @var{new} is an existing directory,
|
||||
it creates a copy of the @var{old} directory and puts it in @var{new}.
|
||||
If @var{new} is not an existing directory, it copies all the contents
|
||||
of @var{old} into a new directory named @var{new}.
|
||||
|
||||
@findex rename-file
|
||||
@kbd{M-x rename-file} reads two file names @var{old} and @var{new}
|
||||
using the minibuffer, then renames file @var{old} as @var{new}. If
|
||||
the file name @var{new} already exists, you must confirm with
|
||||
@kbd{yes} or renaming is not done; this is because renaming causes the
|
||||
old meaning of the name @var{new} to be lost. If @var{old} and
|
||||
@var{new} are on different file systems, the file @var{old} is copied
|
||||
and deleted. If the argument @var{new} is just a directory name, the
|
||||
real new name is in that directory, with the same non-directory
|
||||
component as @var{old}. For example, @kbd{M-x rename-file RET ~/foo
|
||||
RET /tmp RET} renames @file{~/foo} to @file{/tmp/foo}. The same rule
|
||||
applies to all the remaining commands in this section. All of them
|
||||
ask for confirmation when the new file name already exists, too.
|
||||
|
||||
@findex add-name-to-file
|
||||
@cindex hard links (creation)
|
||||
@kbd{M-x add-name-to-file} adds an additional name to an existing
|
||||
file without removing its old name. The new name is created as a
|
||||
``hard link'' to the existing file. The new name must belong on the
|
||||
same file system that the file is on. On MS-Windows, this command
|
||||
works only if the file resides in an NTFS file system. On MS-DOS, it
|
||||
works by copying the file.
|
||||
|
||||
@findex make-symbolic-link
|
||||
@cindex symbolic links (creation)
|
||||
@kbd{M-x make-symbolic-link} reads two file names @var{target} and
|
||||
@var{linkname}, then creates a symbolic link named @var{linkname},
|
||||
which points at @var{target}. The effect is that future attempts to
|
||||
open file @var{linkname} will refer to whatever file is named
|
||||
@var{target} at the time the opening is done, or will get an error if
|
||||
the name @var{target} is nonexistent at that time. This command does
|
||||
not expand the argument @var{target}, so that it allows you to specify
|
||||
a relative name as the target of the link. Not all systems support
|
||||
symbolic links; on systems that don't support them, this command is
|
||||
not defined.
|
||||
|
||||
@kindex C-x i
|
||||
@findex insert-file
|
||||
|
@ -1544,74 +1599,6 @@ specified file. @xref{Accumulating Text}. The variable
|
|||
@code{write-region-inhibit-fsync} applies to these commands, as well
|
||||
as saving files; see @ref{Customize Save}.
|
||||
|
||||
@findex delete-file
|
||||
@cindex deletion (of files)
|
||||
@vindex delete-by-moving-to-trash
|
||||
@kbd{M-x delete-file} deletes the specified file, like the @code{rm}
|
||||
command in the shell. If you are deleting many files in one
|
||||
directory, it may be more convenient to use Dired rather than
|
||||
@code{delete-file}. @xref{Dired}.
|
||||
|
||||
@cindex trash
|
||||
@cindex recycle bin
|
||||
On some systems, there is a facility called the ``Trash'' (or
|
||||
``Recycle Bin''); ``deleting'' a file normally means moving it into
|
||||
the Trash, and you can bring the file back from the Trash if you later
|
||||
change your mind. By default, Emacs does @emph{not} use the Trash for
|
||||
file deletion---when Emacs deletes a file, it is gone forever. You
|
||||
can tell Emacs to use the Trash by changing the variable
|
||||
@code{delete-by-moving-to-trash} to @code{t}. This applies to file
|
||||
deletion via @kbd{M-x delete-file}, as well as @kbd{M-x
|
||||
delete-directory} (@pxref{Directories}) and file deletion in Dired
|
||||
(@pxref{Dired Deletion}). In addition, you can explicitly move a file
|
||||
into the Trash with the command @kbd{M-x move-file-to-trash}.
|
||||
|
||||
@findex rename-file
|
||||
@kbd{M-x rename-file} reads two file names @var{old} and @var{new} using
|
||||
the minibuffer, then renames file @var{old} as @var{new}. If the file name
|
||||
@var{new} already exists, you must confirm with @kbd{yes} or renaming is not
|
||||
done; this is because renaming causes the old meaning of the name @var{new}
|
||||
to be lost. If @var{old} and @var{new} are on different file systems, the
|
||||
file @var{old} is copied and deleted.
|
||||
|
||||
If the argument @var{new} is just a directory name, the real new
|
||||
name is in that directory, with the same non-directory component as
|
||||
@var{old}. For example, @kbd{M-x rename-file RET ~/foo RET /tmp RET}
|
||||
renames @file{~/foo} to @file{/tmp/foo}. The same rule applies to all
|
||||
the remaining commands in this section. All of them ask for
|
||||
confirmation when the new file name already exists, too.
|
||||
|
||||
@findex add-name-to-file
|
||||
@cindex hard links (creation)
|
||||
The similar command @kbd{M-x add-name-to-file} is used to add an
|
||||
additional name to an existing file without removing its old name.
|
||||
The new name is created as a ``hard link'' to the existing file.
|
||||
The new name must belong on the same file system that the file is on.
|
||||
On MS-Windows, this command works only if the file resides in an NTFS
|
||||
file system. On MS-DOS, it works by copying the file.
|
||||
|
||||
@findex copy-file
|
||||
@findex copy-directory
|
||||
@cindex copying files
|
||||
@kbd{M-x copy-file} reads the file @var{old} and writes a new file
|
||||
named @var{new} with the same contents. @kbd{M-x copy-directory} does
|
||||
the same for directories, by recursive copying all files and
|
||||
subdirectories.
|
||||
|
||||
@findex make-symbolic-link
|
||||
@cindex symbolic links (creation)
|
||||
@kbd{M-x make-symbolic-link} reads two file names @var{target} and
|
||||
@var{linkname}, then creates a symbolic link named @var{linkname},
|
||||
which points at @var{target}. The effect is that future attempts to
|
||||
open file @var{linkname} will refer to whatever file is named
|
||||
@var{target} at the time the opening is done, or will get an error if
|
||||
the name @var{target} is nonexistent at that time. This command does
|
||||
not expand the argument @var{target}, so that it allows you to specify
|
||||
a relative name as the target of the link.
|
||||
|
||||
Not all systems support symbolic links; on systems that don't
|
||||
support them, this command is not defined.
|
||||
|
||||
@findex set-file-modes
|
||||
@cindex file modes
|
||||
@cindex file permissions
|
||||
|
@ -1670,13 +1657,13 @@ Tar mode is used also for compressed archives---files with extensions
|
|||
The keys @kbd{e}, @kbd{f} and @key{RET} all extract a component file
|
||||
into its own buffer. You can edit it there, and if you save the
|
||||
buffer, the edited version will replace the version in the Tar buffer.
|
||||
@kbd{v} extracts a file into a buffer in View mode. @kbd{o} extracts
|
||||
the file and displays it in another window, so you could edit the file
|
||||
and operate on the archive simultaneously. @kbd{d} marks a file for
|
||||
deletion when you later use @kbd{x}, and @kbd{u} unmarks a file, as in
|
||||
Dired. @kbd{C} copies a file from the archive to disk and @kbd{R}
|
||||
renames a file within the archive. @kbd{g} reverts the buffer from
|
||||
the archive on disk.
|
||||
@kbd{v} extracts a file into a buffer in View mode (@pxref{View
|
||||
Mode}). @kbd{o} extracts the file and displays it in another window,
|
||||
so you could edit the file and operate on the archive simultaneously.
|
||||
@kbd{d} marks a file for deletion when you later use @kbd{x}, and
|
||||
@kbd{u} unmarks a file, as in Dired. @kbd{C} copies a file from the
|
||||
archive to disk and @kbd{R} renames a file within the archive.
|
||||
@kbd{g} reverts the buffer from the archive on disk.
|
||||
|
||||
The keys @kbd{M}, @kbd{G}, and @kbd{O} change the file's permission
|
||||
bits, group, and owner, respectively.
|
||||
|
|
|
@ -467,12 +467,14 @@ for Emacs to detect this automatically, so you should set the variable
|
|||
@code{focus-follows-mouse}. The default is @code{nil}, meaning you
|
||||
have to click on the window to select it (the default for most modern
|
||||
window managers). You should change it to @code{t} if your window
|
||||
manager selects and window and gives it focus anytime you move the
|
||||
mouse onto the window.
|
||||
manager selects a window and gives it focus anytime you move the mouse
|
||||
onto the window.
|
||||
|
||||
The window manager that is part of MS-Windows always gives focus to
|
||||
a frame that raises, so this variable has no effect in the native
|
||||
MS-Windows build of Emacs.
|
||||
MS-Windows build of Emacs. However, you may still wish to set this
|
||||
variable to @code{t} to have Emacs automatically move the mouse
|
||||
pointer to the raised frame.
|
||||
|
||||
@node Fonts
|
||||
@section Fonts
|
||||
|
|
|
@ -126,16 +126,20 @@ The complete Emacs manual is available on-line in Info.
|
|||
Display the name and documentation of the command that @var{key} runs
|
||||
(@code{describe-key}).
|
||||
@item C-h l
|
||||
Display a description of your last 300 keystrokes
|
||||
Display a description of your last 300 keystrokes
|
||||
(@code{view-lossage}).
|
||||
@item C-h m
|
||||
Display documentation of the current major mode (@code{describe-mode}).
|
||||
@item C-h n
|
||||
Display news of recent Emacs changes (@code{view-emacs-news}).
|
||||
@item C-h p
|
||||
Find packages by topic keyword (@code{finder-by-keyword}). For an
|
||||
alternative interface to the same information, try the @code{info-finder}
|
||||
command.
|
||||
Find packages by topic keyword (@code{finder-by-keyword}). This lists
|
||||
packages using a package menu buffer (@pxref{Package Menu}); for an
|
||||
alternative interface to the same information, try the
|
||||
@code{info-finder} command.
|
||||
@item C-h P @var{package} @key{RET}
|
||||
Display documentation about the package named @var{package}
|
||||
(@code{describe-package}; @pxref{Packages}).
|
||||
@item C-h r
|
||||
Display the Emacs manual in Info (@code{info-emacs-manual}).
|
||||
@item C-h s
|
||||
|
@ -401,8 +405,8 @@ the variable @code{apropos-documentation-sort-by-scores} is
|
|||
@node Help Mode
|
||||
@section Help Mode Commands
|
||||
|
||||
Help buffers provide the same commands as View mode (@pxref{Misc File
|
||||
Ops}), plus a few special commands of their own.
|
||||
Help buffers provide the same commands as View mode (@pxref{View
|
||||
Mode}), plus a few special commands of their own.
|
||||
|
||||
@table @kbd
|
||||
@item @key{SPC}
|
||||
|
|
|
@ -88,6 +88,7 @@ EMACSSOURCES= \
|
|||
$(srcdir)/dired.texi \
|
||||
$(srcdir)/calendar.texi \
|
||||
$(srcdir)/misc.texi \
|
||||
$(srcdir)/package.texi \
|
||||
$(srcdir)/custom.texi \
|
||||
$(srcdir)/trouble.texi \
|
||||
$(srcdir)/cmdargs.texi \
|
||||
|
|
|
@ -125,6 +125,10 @@ file names, change the variable @code{insert-default-directory} to
|
|||
Nonetheless, relative file name arguments are still interpreted based
|
||||
on the same default directory.
|
||||
|
||||
For rules how to read remote file names in the minibuffer, see
|
||||
@ref{Filename completion, file name completion,, tramp}, in the Tramp
|
||||
manual.
|
||||
|
||||
@node Minibuffer Edit
|
||||
@section Editing in the Minibuffer
|
||||
|
||||
|
@ -491,7 +495,7 @@ argument (@code{previous-history-element}).
|
|||
Move to the next item in the minibuffer history
|
||||
(@code{next-history-element}).
|
||||
@item M-r @var{regexp} @key{RET}
|
||||
Move to an earlier item in the minibuffer history that
|
||||
Move to an earlier item in the minibuffer history that
|
||||
matches @var{regexp} (@code{previous-matching-history-element}).
|
||||
@item M-s @var{regexp} @key{RET}
|
||||
Move to a later item in the minibuffer history that matches
|
||||
|
|
|
@ -10,9 +10,9 @@ else: viewing ``document files'', reading netnews, running shell
|
|||
commands and shell subprocesses, using a single shared Emacs for
|
||||
utilities that expect to run an editor as a subprocess, printing
|
||||
hardcopy, sorting text, narrowing display to part of the buffer,
|
||||
editing double-column files and binary files, saving an Emacs session
|
||||
for later resumption, following hyperlinks, browsing images, emulating
|
||||
other editors, and various diversions and amusements.
|
||||
editing binary files, saving an Emacs session for later resumption,
|
||||
following hyperlinks, browsing images, emulating other editors, and
|
||||
various diversions and amusements.
|
||||
|
||||
@end iftex
|
||||
|
||||
|
@ -20,187 +20,7 @@ other editors, and various diversions and amusements.
|
|||
@raisesections
|
||||
@end ifnottex
|
||||
|
||||
@node Document View, Gnus, Calendar/Diary, Top
|
||||
@section Document Viewing
|
||||
@cindex DVI file
|
||||
@cindex PDF file
|
||||
@cindex PS file
|
||||
@cindex Postscript file
|
||||
@cindex OpenDocument file
|
||||
@cindex Microsoft Office file
|
||||
@cindex DocView mode
|
||||
@cindex mode, DocView
|
||||
@cindex document viewer (DocView)
|
||||
@findex doc-view-mode
|
||||
|
||||
DocView mode (@code{doc-view-mode}) is a viewer for DVI, Postscript
|
||||
(PS), PDF, OpenDocument, and Microsoft Office documents. It provides
|
||||
features such as slicing, zooming, and searching inside documents. It
|
||||
works by converting the document to a set of images using the
|
||||
@command{gs} (GhostScript) command and other external tools
|
||||
@footnote{@code{gs} is a hard requirement. For DVI files,
|
||||
@code{dvipdf} or @code{dvipdfm} is needed. For OpenDocument and
|
||||
Microsoft Office documents, the @code{unoconv} tool is needed.}, and
|
||||
displaying those images.
|
||||
|
||||
@findex doc-view-toggle-display
|
||||
@findex doc-view-toggle-display
|
||||
@cindex doc-view-minor-mode
|
||||
When you visit a document file with the exception of Postscript
|
||||
files, Emacs automatically switches to DocView mode if possible
|
||||
@footnote{The needed external tools for this document type have to be
|
||||
available, emacs needs to run in a graphical frame, and PNG image
|
||||
support has to be compiled into emacs. If any of these requirements
|
||||
is not fulfilled, DocView falls back to an appropriate mode.}. When
|
||||
you visit a Postscript file, Emacs switches to PS mode, a major mode
|
||||
for editing Postscript files as text; however, it also enables DocView
|
||||
minor mode, so you can type @kbd{C-c C-c} to view the document with
|
||||
DocView. (PDF and DVI files, unlike Postscript files, are not usually
|
||||
human-editable.) In either case, repeating @kbd{C-c C-c}
|
||||
(@code{doc-view-toggle-display}) toggles between DocView and the file
|
||||
text.
|
||||
|
||||
You can explicitly toggle DocView mode with the command @code{M-x
|
||||
doc-view-mode}, and DocView minor mode with the command @code{M-x
|
||||
doc-view-minor-mode}.
|
||||
|
||||
When DocView mode starts, it displays a welcome screen and begins
|
||||
formatting the file, page by page. It displays the first page once
|
||||
that has been formatted.
|
||||
|
||||
@findex doc-view-enlarge
|
||||
@findex doc-view-shrink
|
||||
@vindex doc-view-resolution
|
||||
When in DocView mode, you can enlarge or shrink the document with
|
||||
@kbd{+} (@code{doc-view-enlarge}) and @kbd{-}
|
||||
(@code{doc-view-shrink}). To specify the default size for DocView,
|
||||
set or customize the variable @code{doc-view-resolution}.
|
||||
|
||||
To kill the DocView buffer, type @kbd{k}
|
||||
(@code{doc-view-kill-proc-and-buffer}). To bury it, type @kbd{q}
|
||||
(@code{quit-window}).
|
||||
|
||||
@menu
|
||||
* Navigation:: Navigation inside DocView buffers.
|
||||
* Searching:: Searching inside documents.
|
||||
* Slicing:: Specifying which part of pages should be displayed.
|
||||
* Conversion:: Influencing and triggering conversion.
|
||||
@end menu
|
||||
|
||||
@node Navigation
|
||||
@subsection Navigation
|
||||
|
||||
When in DocView mode, you can scroll the current page using the usual
|
||||
Emacs movement keys: @kbd{C-p}, @kbd{C-n}, @kbd{C-b}, @kbd{C-f}, and
|
||||
the arrow keys.
|
||||
|
||||
@vindex doc-view-continuous
|
||||
By default, the line-motion keys @kbd{C-p} and @kbd{C-n} stop
|
||||
scrolling at the beginning and end of the current page, respectively.
|
||||
However, if you change the variable @code{doc-view-continuous} to a
|
||||
non-@code{nil} value, then @kbd{C-p} displays the previous page if you
|
||||
are already at the beginning of the current page, and @kbd{C-n}
|
||||
displays the next page if you are at the end of the current page.
|
||||
|
||||
@findex doc-view-next-page
|
||||
@findex doc-view-previous-page
|
||||
You can also display the next page by typing @kbd{n}, @key{next} or
|
||||
@kbd{C-x ]} (@code{doc-view-next-page}). To display the previous
|
||||
page, type @kbd{p}, @key{prior} or @kbd{C-x [}
|
||||
(@code{doc-view-previous-page}).
|
||||
|
||||
@findex doc-view-scroll-up-or-next-page
|
||||
@findex doc-view-scroll-down-or-previous-page
|
||||
The @key{SPC} (@code{doc-view-scroll-up-or-next-page}) key is a
|
||||
convenient way to advance through the document. It scrolls within the
|
||||
current page or advances to the next. @key{DEL} moves backwards in a
|
||||
similar way (@code{doc-view-scroll-down-or-previous-page}).
|
||||
|
||||
@findex doc-view-first-page
|
||||
@findex doc-view-last-page
|
||||
@findex doc-view-goto-page
|
||||
To go to the first page, type @kbd{M-<}
|
||||
(@code{doc-view-first-page}); to go to the last one, type @kbd{M->}
|
||||
(@code{doc-view-last-page}). To jump to a page by its number, type
|
||||
@kbd{M-g M-g} or @kbd{M-g g} (@code{doc-view-goto-page}).
|
||||
|
||||
@node Searching
|
||||
@subsection Searching
|
||||
|
||||
While in DocView mode, you can search the file's text for a regular
|
||||
expression (@pxref{Regexps}). The interface for searching is inspired
|
||||
by @code{isearch} (@pxref{Incremental Search}).
|
||||
|
||||
@findex doc-view-search
|
||||
@findex doc-view-search-backward
|
||||
@findex doc-view-show-tooltip
|
||||
To begin a search, type @kbd{C-s} (@code{doc-view-search}) or
|
||||
@kbd{C-r} (@code{doc-view-search-backward}). This reads a regular
|
||||
expression using a minibuffer, then echoes the number of matches found
|
||||
within the document. You can move forward and back among the matches
|
||||
by typing @kbd{C-s} and @kbd{C-r}. DocView mode has no way to show
|
||||
the match inside the page image; instead, it displays a tooltip (at
|
||||
the mouse position) listing all matching lines in the current page.
|
||||
To force display of this tooltip, type @kbd{C-t}
|
||||
(@code{doc-view-show-tooltip}).
|
||||
|
||||
To start a new search, use the search command with a prefix
|
||||
argument; i.e., @kbd{C-u C-s} for a forward search or @kbd{C-u C-r}
|
||||
for a backward search.
|
||||
|
||||
@node Slicing
|
||||
@subsection Slicing
|
||||
|
||||
Documents often have wide margins for printing. They are annoying
|
||||
when reading the document on the screen, because they use up screen
|
||||
space and can cause inconvenient scrolling.
|
||||
|
||||
@findex doc-view-set-slice
|
||||
@findex doc-view-set-slice-using-mouse
|
||||
With DocView you can hide these margins by selecting a @dfn{slice}
|
||||
of pages to display. A slice is a rectangle within the page area;
|
||||
once you specify a slice in DocView, it applies to whichever page you
|
||||
look at.
|
||||
|
||||
To specify the slice numerically, type @kbd{s s}
|
||||
(@code{doc-view-set-slice}); then enter the top left pixel position
|
||||
and the slice's width and height.
|
||||
@c ??? how does this work?
|
||||
|
||||
A more convenient graphical way to specify the slice is with @kbd{s
|
||||
m} (@code{doc-view-set-slice-using-mouse}), where you use the mouse to
|
||||
select the slice.
|
||||
@c ??? How does this work?
|
||||
|
||||
@findex doc-view-reset-slice
|
||||
To cancel the selected slice, type @kbd{s r}
|
||||
(@code{doc-view-reset-slice}). Then DocView shows the entire page
|
||||
including its entire margins.
|
||||
|
||||
@node Conversion
|
||||
@subsection Conversion
|
||||
|
||||
@vindex doc-view-cache-directory
|
||||
@findex doc-view-clear-cache
|
||||
For efficiency, DocView caches the images produced by @command{gs}.
|
||||
The name of this directory is given by the variable
|
||||
@code{doc-view-cache-directory}. You can clear the cache directory by
|
||||
typing @code{M-x doc-view-clear-cache}.
|
||||
|
||||
@findex doc-view-kill-proc
|
||||
@findex doc-view-kill-proc-and-buffer
|
||||
To force a reconversion of the currently viewed document, type
|
||||
@kbd{r} or @kbd{g} (@code{revert-buffer}). To kill the converter
|
||||
process associated with the current buffer, type @kbd{K}
|
||||
(@code{doc-view-kill-proc}). The command @kbd{k}
|
||||
(@code{doc-view-kill-proc-and-buffer}) kills the converter process and
|
||||
the DocView buffer.
|
||||
|
||||
The zoom commands @kbd{+} (@code{doc-view-enlarge}) and @kbd{-}
|
||||
(@code{doc-view-shrink}) need to reconvert the document at the new
|
||||
size. The current page is converted first.
|
||||
|
||||
@node Gnus, Shell, Document View, Top
|
||||
@node Gnus
|
||||
@section Gnus
|
||||
@cindex Gnus
|
||||
@cindex reading netnews
|
||||
|
@ -411,82 +231,187 @@ for @var{regexp}.
|
|||
|
||||
@end table
|
||||
|
||||
@ignore
|
||||
@node Where to Look
|
||||
@subsection Where to Look Further
|
||||
@node Document View
|
||||
@section Document Viewing
|
||||
@cindex DVI file
|
||||
@cindex PDF file
|
||||
@cindex PS file
|
||||
@cindex Postscript file
|
||||
@cindex OpenDocument file
|
||||
@cindex Microsoft Office file
|
||||
@cindex DocView mode
|
||||
@cindex mode, DocView
|
||||
@cindex document viewer (DocView)
|
||||
@findex doc-view-mode
|
||||
|
||||
@c Too many references to the name of the manual if done with xref in TeX!
|
||||
Gnus is powerful and customizable. Here are references to a few
|
||||
@ifnottex
|
||||
additional topics:
|
||||
DocView mode (@code{doc-view-mode}) is a viewer for DVI, Postscript
|
||||
(PS), PDF, OpenDocument, and Microsoft Office documents. It provides
|
||||
features such as slicing, zooming, and searching inside documents. It
|
||||
works by converting the document to a set of images using the
|
||||
@command{gs} (GhostScript) command and other external tools
|
||||
@footnote{@code{gs} is a hard requirement. For DVI files,
|
||||
@code{dvipdf} or @code{dvipdfm} is needed. For OpenDocument and
|
||||
Microsoft Office documents, the @code{unoconv} tool is needed.}, and
|
||||
displaying those images.
|
||||
|
||||
@end ifnottex
|
||||
@iftex
|
||||
additional topics in @cite{The Gnus Manual}:
|
||||
@findex doc-view-toggle-display
|
||||
@findex doc-view-toggle-display
|
||||
@cindex doc-view-minor-mode
|
||||
When you visit a document file with the exception of Postscript
|
||||
files, Emacs automatically switches to DocView mode if possible
|
||||
@footnote{The needed external tools for this document type have to be
|
||||
available, emacs needs to run in a graphical frame, and PNG image
|
||||
support has to be compiled into emacs. If any of these requirements
|
||||
is not fulfilled, DocView falls back to an appropriate mode.}. When
|
||||
you visit a Postscript file, Emacs switches to PS mode, a major mode
|
||||
for editing Postscript files as text; however, it also enables DocView
|
||||
minor mode, so you can type @kbd{C-c C-c} to view the document with
|
||||
DocView. (PDF and DVI files, unlike Postscript files, are not usually
|
||||
human-editable.) In either case, repeating @kbd{C-c C-c}
|
||||
(@code{doc-view-toggle-display}) toggles between DocView and the file
|
||||
text.
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
Follow discussions on specific topics.@*
|
||||
See section ``Threading.''
|
||||
You can explicitly toggle DocView mode with the command @code{M-x
|
||||
doc-view-mode}, and DocView minor mode with the command @code{M-x
|
||||
doc-view-minor-mode}.
|
||||
|
||||
@item
|
||||
Read digests. See section ``Document Groups.''
|
||||
When DocView mode starts, it displays a welcome screen and begins
|
||||
formatting the file, page by page. It displays the first page once
|
||||
that has been formatted.
|
||||
|
||||
@item
|
||||
Refer to and jump to the parent of the current article.@*
|
||||
See section ``Finding the Parent.''
|
||||
@findex doc-view-enlarge
|
||||
@findex doc-view-shrink
|
||||
@vindex doc-view-resolution
|
||||
When in DocView mode, you can enlarge or shrink the document with
|
||||
@kbd{+} (@code{doc-view-enlarge}) and @kbd{-}
|
||||
(@code{doc-view-shrink}). To specify the default size for DocView,
|
||||
set or customize the variable @code{doc-view-resolution}.
|
||||
|
||||
@item
|
||||
Refer to articles by using Message-IDs included in the messages.@*
|
||||
See section ``Article Keymap.''
|
||||
To kill the DocView buffer, type @kbd{k}
|
||||
(@code{doc-view-kill-proc-and-buffer}). To bury it, type @kbd{q}
|
||||
(@code{quit-window}).
|
||||
|
||||
@item
|
||||
Save articles. See section ``Saving Articles.''
|
||||
@menu
|
||||
* Navigation:: Navigation inside DocView buffers.
|
||||
* Searching:: Searching inside documents.
|
||||
* Slicing:: Specifying which part of pages should be displayed.
|
||||
* Conversion:: Influencing and triggering conversion.
|
||||
@end menu
|
||||
|
||||
@item
|
||||
Have Gnus score articles according to various criteria, like author
|
||||
name, subject, or string in the body of the articles.@*
|
||||
See section ``Scoring.''
|
||||
@node Navigation
|
||||
@subsection Navigation
|
||||
|
||||
@item
|
||||
Send an article to a newsgroup.@*
|
||||
See section ``Composing Messages.''
|
||||
@end itemize
|
||||
@end iftex
|
||||
@ifnottex
|
||||
@itemize @bullet
|
||||
@item
|
||||
Follow discussions on specific topics.@*
|
||||
@xref{Threading, , Reading Based on Conversation Threads,
|
||||
gnus, The Gnus Manual}.
|
||||
When in DocView mode, you can scroll the current page using the usual
|
||||
Emacs movement keys: @kbd{C-p}, @kbd{C-n}, @kbd{C-b}, @kbd{C-f}, and
|
||||
the arrow keys.
|
||||
|
||||
@item
|
||||
Read digests. @xref{Document Groups, , , gnus, The Gnus Manual}.
|
||||
@vindex doc-view-continuous
|
||||
By default, the line-motion keys @kbd{C-p} and @kbd{C-n} stop
|
||||
scrolling at the beginning and end of the current page, respectively.
|
||||
However, if you change the variable @code{doc-view-continuous} to a
|
||||
non-@code{nil} value, then @kbd{C-p} displays the previous page if you
|
||||
are already at the beginning of the current page, and @kbd{C-n}
|
||||
displays the next page if you are at the end of the current page.
|
||||
|
||||
@item
|
||||
Refer to and jump to the parent of the current article.@*
|
||||
@xref{Finding the Parent, , , gnus, The Gnus Manual}.
|
||||
@findex doc-view-next-page
|
||||
@findex doc-view-previous-page
|
||||
You can also display the next page by typing @kbd{n}, @key{next} or
|
||||
@kbd{C-x ]} (@code{doc-view-next-page}). To display the previous
|
||||
page, type @kbd{p}, @key{prior} or @kbd{C-x [}
|
||||
(@code{doc-view-previous-page}).
|
||||
|
||||
@item
|
||||
Refer to articles by using Message-IDs included in the messages.@*
|
||||
@xref{Article Keymap, , , gnus, The Gnus Manual}.
|
||||
@findex doc-view-scroll-up-or-next-page
|
||||
@findex doc-view-scroll-down-or-previous-page
|
||||
The @key{SPC} (@code{doc-view-scroll-up-or-next-page}) key is a
|
||||
convenient way to advance through the document. It scrolls within the
|
||||
current page or advances to the next. @key{DEL} moves backwards in a
|
||||
similar way (@code{doc-view-scroll-down-or-previous-page}).
|
||||
|
||||
@item
|
||||
Save articles. @xref{Saving Articles, , , gnus, The Gnus Manual}.
|
||||
@findex doc-view-first-page
|
||||
@findex doc-view-last-page
|
||||
@findex doc-view-goto-page
|
||||
To go to the first page, type @kbd{M-<}
|
||||
(@code{doc-view-first-page}); to go to the last one, type @kbd{M->}
|
||||
(@code{doc-view-last-page}). To jump to a page by its number, type
|
||||
@kbd{M-g M-g} or @kbd{M-g g} (@code{doc-view-goto-page}).
|
||||
|
||||
@item
|
||||
Have Gnus score articles according to various criteria, like author
|
||||
name, subject, or string in the body of the articles.@*
|
||||
@xref{Scoring, , , gnus, The Gnus Manual}.
|
||||
@node Searching
|
||||
@subsection Searching
|
||||
|
||||
@item
|
||||
Send an article to a newsgroup.@*
|
||||
@xref{Composing Messages, , , gnus, The Gnus Manual}.
|
||||
@end itemize
|
||||
@end ifnottex
|
||||
@end ignore
|
||||
While in DocView mode, you can search the file's text for a regular
|
||||
expression (@pxref{Regexps}). The interface for searching is inspired
|
||||
by @code{isearch} (@pxref{Incremental Search}).
|
||||
|
||||
@node Shell, Emacs Server, Gnus, Top
|
||||
@findex doc-view-search
|
||||
@findex doc-view-search-backward
|
||||
@findex doc-view-show-tooltip
|
||||
To begin a search, type @kbd{C-s} (@code{doc-view-search}) or
|
||||
@kbd{C-r} (@code{doc-view-search-backward}). This reads a regular
|
||||
expression using a minibuffer, then echoes the number of matches found
|
||||
within the document. You can move forward and back among the matches
|
||||
by typing @kbd{C-s} and @kbd{C-r}. DocView mode has no way to show
|
||||
the match inside the page image; instead, it displays a tooltip (at
|
||||
the mouse position) listing all matching lines in the current page.
|
||||
To force display of this tooltip, type @kbd{C-t}
|
||||
(@code{doc-view-show-tooltip}).
|
||||
|
||||
To start a new search, use the search command with a prefix
|
||||
argument; i.e., @kbd{C-u C-s} for a forward search or @kbd{C-u C-r}
|
||||
for a backward search.
|
||||
|
||||
@node Slicing
|
||||
@subsection Slicing
|
||||
|
||||
Documents often have wide margins for printing. They are annoying
|
||||
when reading the document on the screen, because they use up screen
|
||||
space and can cause inconvenient scrolling.
|
||||
|
||||
@findex doc-view-set-slice
|
||||
@findex doc-view-set-slice-using-mouse
|
||||
With DocView you can hide these margins by selecting a @dfn{slice}
|
||||
of pages to display. A slice is a rectangle within the page area;
|
||||
once you specify a slice in DocView, it applies to whichever page you
|
||||
look at.
|
||||
|
||||
To specify the slice numerically, type @kbd{s s}
|
||||
(@code{doc-view-set-slice}); then enter the top left pixel position
|
||||
and the slice's width and height.
|
||||
@c ??? how does this work?
|
||||
|
||||
A more convenient graphical way to specify the slice is with @kbd{s
|
||||
m} (@code{doc-view-set-slice-using-mouse}), where you use the mouse to
|
||||
select the slice.
|
||||
@c ??? How does this work?
|
||||
|
||||
@findex doc-view-reset-slice
|
||||
To cancel the selected slice, type @kbd{s r}
|
||||
(@code{doc-view-reset-slice}). Then DocView shows the entire page
|
||||
including its entire margins.
|
||||
|
||||
@node Conversion
|
||||
@subsection Conversion
|
||||
|
||||
@vindex doc-view-cache-directory
|
||||
@findex doc-view-clear-cache
|
||||
For efficiency, DocView caches the images produced by @command{gs}.
|
||||
The name of this directory is given by the variable
|
||||
@code{doc-view-cache-directory}. You can clear the cache directory by
|
||||
typing @code{M-x doc-view-clear-cache}.
|
||||
|
||||
@findex doc-view-kill-proc
|
||||
@findex doc-view-kill-proc-and-buffer
|
||||
To force a reconversion of the currently viewed document, type
|
||||
@kbd{r} or @kbd{g} (@code{revert-buffer}). To kill the converter
|
||||
process associated with the current buffer, type @kbd{K}
|
||||
(@code{doc-view-kill-proc}). The command @kbd{k}
|
||||
(@code{doc-view-kill-proc-and-buffer}) kills the converter process and
|
||||
the DocView buffer.
|
||||
|
||||
The zoom commands @kbd{+} (@code{doc-view-enlarge}) and @kbd{-}
|
||||
(@code{doc-view-shrink}) need to reconvert the document at the new
|
||||
size. The current page is converted first.
|
||||
|
||||
@node Shell
|
||||
@section Running Shell Commands from Emacs
|
||||
@cindex subshell
|
||||
@cindex shell commands
|
||||
|
@ -1671,6 +1596,11 @@ runs, and (ii) provide @command{emacsclient} with the server file.
|
|||
(One convenient way to do the latter is to put the server file on a
|
||||
networked file system such as NFS.)
|
||||
|
||||
@vindex server-port
|
||||
When the Emacs server is using TCP, the variable @code{server-port}
|
||||
determines the port number to listen on; the default value,
|
||||
@code{nil}, means to choose a random port when the server starts.
|
||||
|
||||
@item -n
|
||||
@itemx --no-wait
|
||||
Let @command{emacsclient} exit immediately, instead of waiting until
|
||||
|
@ -1788,7 +1718,7 @@ not compatible with @code{lpr}.
|
|||
@end menu
|
||||
|
||||
@node PostScript, PostScript Variables,, Printing
|
||||
@section PostScript Hardcopy
|
||||
@subsection PostScript Hardcopy
|
||||
|
||||
These commands convert buffer contents to PostScript,
|
||||
either printing it or leaving it in another Emacs buffer.
|
||||
|
@ -1878,7 +1808,7 @@ supports ISO 8859-1 characters.
|
|||
@end ifnottex
|
||||
|
||||
@node PostScript Variables, Printing Package, PostScript, Printing
|
||||
@section Variables for PostScript Hardcopy
|
||||
@subsection Variables for PostScript Hardcopy
|
||||
|
||||
@vindex ps-lpr-command
|
||||
@vindex ps-lpr-switches
|
||||
|
@ -1973,7 +1903,7 @@ includes a single directory @file{/usr/local/share/emacs/fonts/bdf}.
|
|||
described in the Lisp files @file{ps-print.el} and @file{ps-mule.el}.
|
||||
|
||||
@node Printing Package,, PostScript Variables, Printing
|
||||
@section Printing Package
|
||||
@subsection Printing Package
|
||||
@cindex Printing package
|
||||
|
||||
The basic Emacs facilities for printing hardcopy can be extended
|
||||
|
@ -1999,7 +1929,7 @@ to print, you start the print job using the @samp{Print} button (click
|
|||
further information on the various options, use the @samp{Interface
|
||||
Help} button.
|
||||
|
||||
@node Sorting, Narrowing, Printing, Top
|
||||
@node Sorting
|
||||
@section Sorting Text
|
||||
@cindex sorting
|
||||
|
||||
|
@ -2134,163 +2064,13 @@ rectangle moves along with the text inside the rectangle.
|
|||
Many of the sort commands ignore case differences when comparing, if
|
||||
@code{sort-fold-case} is non-@code{nil}.
|
||||
|
||||
@node Narrowing, Two-Column, Sorting, Top
|
||||
@section Narrowing
|
||||
@cindex widening
|
||||
@cindex restriction
|
||||
@cindex narrowing
|
||||
@cindex accessible portion
|
||||
@c Picture Mode documentation
|
||||
@ifnottex
|
||||
@include picture-xtra.texi
|
||||
@end ifnottex
|
||||
|
||||
@dfn{Narrowing} means focusing in on some portion of the buffer,
|
||||
making the rest temporarily inaccessible. The portion which you can
|
||||
still get to is called the @dfn{accessible portion}. Canceling the
|
||||
narrowing, which makes the entire buffer once again accessible, is
|
||||
called @dfn{widening}. The bounds of narrowing in effect in a buffer
|
||||
are called the buffer's @dfn{restriction}.
|
||||
|
||||
Narrowing can make it easier to concentrate on a single subroutine or
|
||||
paragraph by eliminating clutter. It can also be used to limit the
|
||||
range of operation of a replace command or repeating keyboard macro.
|
||||
|
||||
@table @kbd
|
||||
@item C-x n n
|
||||
Narrow down to between point and mark (@code{narrow-to-region}).
|
||||
@item C-x n w
|
||||
Widen to make the entire buffer accessible again (@code{widen}).
|
||||
@item C-x n p
|
||||
Narrow down to the current page (@code{narrow-to-page}).
|
||||
@item C-x n d
|
||||
Narrow down to the current defun (@code{narrow-to-defun}).
|
||||
@end table
|
||||
|
||||
When you have narrowed down to a part of the buffer, that part appears
|
||||
to be all there is. You can't see the rest, you can't move into it
|
||||
(motion commands won't go outside the accessible part), you can't change
|
||||
it in any way. However, it is not gone, and if you save the file all
|
||||
the inaccessible text will be saved. The word @samp{Narrow} appears in
|
||||
the mode line whenever narrowing is in effect.
|
||||
|
||||
@kindex C-x n n
|
||||
@findex narrow-to-region
|
||||
The primary narrowing command is @kbd{C-x n n} (@code{narrow-to-region}).
|
||||
It sets the current buffer's restrictions so that the text in the current
|
||||
region remains accessible, but all text before the region or after the
|
||||
region is inaccessible. Point and mark do not change.
|
||||
|
||||
@kindex C-x n p
|
||||
@findex narrow-to-page
|
||||
@kindex C-x n d
|
||||
@findex narrow-to-defun
|
||||
Alternatively, use @kbd{C-x n p} (@code{narrow-to-page}) to narrow
|
||||
down to the current page. @xref{Pages}, for the definition of a page.
|
||||
@kbd{C-x n d} (@code{narrow-to-defun}) narrows down to the defun
|
||||
containing point (@pxref{Defuns}).
|
||||
|
||||
@kindex C-x n w
|
||||
@findex widen
|
||||
The way to cancel narrowing is to widen with @kbd{C-x n w}
|
||||
(@code{widen}). This makes all text in the buffer accessible again.
|
||||
|
||||
You can get information on what part of the buffer you are narrowed down
|
||||
to using the @kbd{C-x =} command. @xref{Position Info}.
|
||||
|
||||
Because narrowing can easily confuse users who do not understand it,
|
||||
@code{narrow-to-region} is normally a disabled command. Attempting to use
|
||||
this command asks for confirmation and gives you the option of enabling it;
|
||||
if you enable the command, confirmation will no longer be required for
|
||||
it. @xref{Disabling}.
|
||||
|
||||
@node Two-Column, Editing Binary Files, Narrowing, Top
|
||||
@section Two-Column Editing
|
||||
@cindex two-column editing
|
||||
@cindex splitting columns
|
||||
@cindex columns, splitting
|
||||
|
||||
Two-column mode lets you conveniently edit two side-by-side columns of
|
||||
text. It uses two side-by-side windows, each showing its own
|
||||
buffer.
|
||||
|
||||
There are three ways to enter two-column mode:
|
||||
|
||||
@table @asis
|
||||
@item @kbd{@key{F2} 2} or @kbd{C-x 6 2}
|
||||
@kindex F2 2
|
||||
@kindex C-x 6 2
|
||||
@findex 2C-two-columns
|
||||
Enter two-column mode with the current buffer on the left, and on the
|
||||
right, a buffer whose name is based on the current buffer's name
|
||||
(@code{2C-two-columns}). If the right-hand buffer doesn't already
|
||||
exist, it starts out empty; the current buffer's contents are not
|
||||
changed.
|
||||
|
||||
This command is appropriate when the current buffer is empty or contains
|
||||
just one column and you want to add another column.
|
||||
|
||||
@item @kbd{@key{F2} s} or @kbd{C-x 6 s}
|
||||
@kindex F2 s
|
||||
@kindex C-x 6 s
|
||||
@findex 2C-split
|
||||
Split the current buffer, which contains two-column text, into two
|
||||
buffers, and display them side by side (@code{2C-split}). The current
|
||||
buffer becomes the left-hand buffer, but the text in the right-hand
|
||||
column is moved into the right-hand buffer. The current column
|
||||
specifies the split point. Splitting starts with the current line and
|
||||
continues to the end of the buffer.
|
||||
|
||||
This command is appropriate when you have a buffer that already contains
|
||||
two-column text, and you wish to separate the columns temporarily.
|
||||
|
||||
@item @kbd{@key{F2} b @var{buffer} @key{RET}}
|
||||
@itemx @kbd{C-x 6 b @var{buffer} @key{RET}}
|
||||
@kindex F2 b
|
||||
@kindex C-x 6 b
|
||||
@findex 2C-associate-buffer
|
||||
Enter two-column mode using the current buffer as the left-hand buffer,
|
||||
and using buffer @var{buffer} as the right-hand buffer
|
||||
(@code{2C-associate-buffer}).
|
||||
@end table
|
||||
|
||||
@kbd{@key{F2} s} or @kbd{C-x 6 s} looks for a column separator, which
|
||||
is a string that appears on each line between the two columns. You can
|
||||
specify the width of the separator with a numeric argument to
|
||||
@kbd{@key{F2} s}; that many characters, before point, constitute the
|
||||
separator string. By default, the width is 1, so the column separator
|
||||
is the character before point.
|
||||
|
||||
When a line has the separator at the proper place, @kbd{@key{F2} s}
|
||||
puts the text after the separator into the right-hand buffer, and
|
||||
deletes the separator. Lines that don't have the column separator at
|
||||
the proper place remain unsplit; they stay in the left-hand buffer, and
|
||||
the right-hand buffer gets an empty line to correspond. (This is the
|
||||
way to write a line that ``spans both columns while in two-column
|
||||
mode'': write it in the left-hand buffer, and put an empty line in the
|
||||
right-hand buffer.)
|
||||
|
||||
@kindex F2 RET
|
||||
@kindex C-x 6 RET
|
||||
@findex 2C-newline
|
||||
The command @kbd{C-x 6 @key{RET}} or @kbd{@key{F2} @key{RET}}
|
||||
(@code{2C-newline}) inserts a newline in each of the two buffers at
|
||||
corresponding positions. This is the easiest way to add a new line to
|
||||
the two-column text while editing it in split buffers.
|
||||
|
||||
@kindex F2 1
|
||||
@kindex C-x 6 1
|
||||
@findex 2C-merge
|
||||
When you have edited both buffers as you wish, merge them with
|
||||
@kbd{@key{F2} 1} or @kbd{C-x 6 1} (@code{2C-merge}). This copies the
|
||||
text from the right-hand buffer as a second column in the other buffer.
|
||||
To go back to two-column editing, use @kbd{@key{F2} s}.
|
||||
|
||||
@kindex F2 d
|
||||
@kindex C-x 6 d
|
||||
@findex 2C-dissociate
|
||||
Use @kbd{@key{F2} d} or @kbd{C-x 6 d} to dissociate the two buffers,
|
||||
leaving each as it stands (@code{2C-dissociate}). If the other buffer,
|
||||
the one not current when you type @kbd{@key{F2} d}, is empty,
|
||||
@kbd{@key{F2} d} kills it.
|
||||
|
||||
@node Editing Binary Files, Saving Emacs Sessions, Two-Column, Top
|
||||
@node Editing Binary Files
|
||||
@section Editing Binary Files
|
||||
|
||||
@cindex Hexl mode
|
||||
|
@ -2738,7 +2518,7 @@ Display a menu of files and URLs mentioned in current buffer, then
|
|||
find the one you select (@code{ffap-menu}).
|
||||
@end table
|
||||
|
||||
@node Amusements, Customization, Hyperlinking, Top
|
||||
@node Amusements, Packages, Hyperlinking, Top
|
||||
@section Other Amusements
|
||||
@cindex boredom
|
||||
|
||||
|
|
|
@ -353,12 +353,13 @@ the element has the form @code{(@var{regexp} @var{mode-function}
|
|||
@var{regexp} and searches the list again for another match.
|
||||
|
||||
@vindex auto-mode-case-fold
|
||||
On systems with case-insensitive file names, such as Microsoft
|
||||
Windows, Emacs performs a single case-insensitive search through
|
||||
@code{auto-mode-alist}. On other systems, Emacs normally performs a
|
||||
single case-sensitive search through the alist. However, if you
|
||||
change the variable @code{auto-mode-case-fold} to @code{t}, Emacs
|
||||
performs a second case-insensitive search if the first search fails.
|
||||
On GNU/Linux and other systems with case-sensitive file names, Emacs
|
||||
performs a case-sensitive search through @code{auto-mode-alist}; if
|
||||
this search fails, it performs a second case-insensitive search
|
||||
through the alist. To suppress the second search, change the variable
|
||||
@code{auto-mode-case-fold} to @code{nil}. On systems with
|
||||
case-insensitive file names, such as Microsoft Windows, Emacs performs
|
||||
a single case-insensitive search through @code{auto-mode-alist}.
|
||||
|
||||
@vindex magic-fallback-mode-alist
|
||||
Finally, if Emacs @emph{still} hasn't found a major mode to use, it
|
||||
|
|
230
doc/emacs/package.texi
Normal file
230
doc/emacs/package.texi
Normal file
|
@ -0,0 +1,230 @@
|
|||
@c This is part of the Emacs manual.
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
|
||||
@c Free Software Foundation, Inc.
|
||||
@c See file emacs.texi for copying conditions.
|
||||
@node Packages
|
||||
@chapter Emacs Lisp Packages
|
||||
@cindex Package
|
||||
@cindex Emacs Lisp package archive
|
||||
@cindex Package archive
|
||||
@cindex Emacs Lisp package
|
||||
|
||||
Emacs includes a facility that lets you easily download and install
|
||||
@dfn{packages} that implement additional features. Each package is a
|
||||
separate Emacs Lisp program, sometimes including other components such
|
||||
as an Info manual.
|
||||
|
||||
@kbd{M-x list-packages} brings up a buffer named @samp{*Packages*}
|
||||
with a list of all packages. You can install or uninstall packages
|
||||
via this buffer. @xref{Package Menu}.
|
||||
|
||||
@findex describe-package
|
||||
The command @kbd{C-h P} (@code{describe-package}) prompts for the
|
||||
name of a package, and displays a help buffer describing that
|
||||
attributes of the package and the features that it implements.
|
||||
|
||||
By default, Emacs downloads packages from a @dfn{package archive}
|
||||
maintained by the Emacs developers and hosted by the GNU project.
|
||||
Optionally, you can also download packages from archives maintained by
|
||||
third parties. @xref{Package Installation}.
|
||||
|
||||
For information about turning an Emacs Lisp program into an
|
||||
installable package, @xref{Packaging,,,elisp, The Emacs Lisp Reference
|
||||
Manual}. For information about finding third-party packages and other
|
||||
Emacs Lisp extensions, @xref{Packages that do not come with
|
||||
Emacs,,,efaq, GNU Emacs FAQ}.
|
||||
|
||||
@menu
|
||||
* Package Menu:: Buffer for viewing and managing packages.
|
||||
* Package Installation:: Options for package installation.
|
||||
* Package Files:: Where packages are installed.
|
||||
@end menu
|
||||
|
||||
@node Package Menu
|
||||
@section The Package Menu Buffer
|
||||
@cindex package menu
|
||||
@cindex built-in package
|
||||
@findex list-packages
|
||||
|
||||
The command @kbd{M-x list-packages} brings up the @dfn{package menu}.
|
||||
This is a buffer listing all the packages that Emacs knows about, one
|
||||
on each line, with the following information:
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
The package name (e.g. @samp{auctex}).
|
||||
|
||||
@item
|
||||
The package's version number (e.g. @samp{11.86}).
|
||||
|
||||
@item
|
||||
The package's status---normally one of @samp{available} (can be
|
||||
downloaded from the package archive), @samp{installed}, or
|
||||
@samp{built-in} (included in Emacs by default).
|
||||
|
||||
In some instances, the status can be @samp{held}, @samp{disabled}, or
|
||||
@samp{obsolete}. @xref{Package Installation}.
|
||||
|
||||
@item
|
||||
A short description of the package.
|
||||
@end itemize
|
||||
|
||||
@noindent
|
||||
The @code{list-packages} command accesses the network, to retrieve the
|
||||
list of available packages from the package archive server. If the
|
||||
network is unavailable, it falls back on the most recently retrieved
|
||||
list.
|
||||
|
||||
The following commands are available in the package menu:
|
||||
|
||||
@table @kbd
|
||||
@item h
|
||||
Print a short message summarizing how to use the package menu
|
||||
(@code{package-menu-quick-help}).
|
||||
|
||||
@item ?
|
||||
@itemx @key{RET}
|
||||
Display a help buffer for the package on the current line
|
||||
(@code{package-menu-describe-package}), similar to the help window
|
||||
displayed by the @kbd{C-h P} command (@pxref{Packages}).
|
||||
|
||||
@item i
|
||||
Mark the package on the current line for installation
|
||||
(@code{package-menu-mark-install}). If the package status is
|
||||
@samp{available}, this adds an @samp{I} character to the start of the
|
||||
line; typing @kbd{x} (see below) will download and install the
|
||||
package.
|
||||
|
||||
@item d
|
||||
Mark the package on the current line for deletion
|
||||
(@code{package-menu-mark-delete}). If the package status is
|
||||
@samp{installed}, this adds a @samp{D} character to the start of the
|
||||
line; typing @kbd{x} (see below) will delete the package.
|
||||
@xref{Package Files}, for information about what package deletion
|
||||
entails.
|
||||
|
||||
@item u
|
||||
Remove any installation or deletion mark previously added to the
|
||||
current line by an @kbd{i} or @kbd{d} command.
|
||||
|
||||
@item x
|
||||
Download and install all packages marked with @kbd{i}, and their
|
||||
dependencies; also, delete all packages marked with @kbd{d}
|
||||
(@code{package-menu-execute}). This also removes the marks.
|
||||
|
||||
@item r
|
||||
Refresh the package list (@code{package-menu-refresh}). This also
|
||||
retrieves the list of available packages from the package archive
|
||||
again.
|
||||
@end table
|
||||
|
||||
@noindent
|
||||
For example, you can install a package by typing @kbd{i} on the line
|
||||
listing that package, followed by @kbd{x}.
|
||||
|
||||
@node Package Installation
|
||||
@section Package Installation
|
||||
|
||||
@findex package-install
|
||||
Packages are most conveniently installed using the package menu
|
||||
(@pxref{Package Menu}), but you can also use the command @kbd{M-x
|
||||
package-install}. This prompts for the name of a package with the
|
||||
@samp{available} status, then downloads and installs it.
|
||||
|
||||
@cindex package requirements
|
||||
A package may @dfn{require} certain other packages to be installed,
|
||||
because it relies on functionality provided by them. When Emacs
|
||||
installs such a package, it also automatically downloads and installs
|
||||
any required package that is not already installed. (If a required
|
||||
package is somehow unavailable, Emacs signals an error and stops
|
||||
installation.) A package's requirements list is shown in its help
|
||||
buffer.
|
||||
|
||||
@vindex package-archives
|
||||
By default, packages are downloaded from a single package archive
|
||||
maintained by the Emacs developers. This is controlled by the
|
||||
variable @code{package-archives}, whose value is a list of package
|
||||
archives known to Emacs. Each list element must have the form
|
||||
@code{(@var{id} . @var{location})}, where @var{id} is the name of a
|
||||
package archive and @var{location} is the @acronym{HTTP} address or
|
||||
directory name of the package archive. You can alter this list if you
|
||||
wish to use third party package archives---but do so at your own risk,
|
||||
and use only third parties that you think you can trust!
|
||||
|
||||
Once a package is downloaded and installed, it takes effect in the
|
||||
current Emacs session. What ``taking effect'' means depends on the
|
||||
package; most packages just make some new commands available, while
|
||||
others have more wide-ranging effects on the Emacs session. For such
|
||||
information, consult the package's help buffer.
|
||||
|
||||
By default, Emacs also automatically loads all installed packages
|
||||
(causing them to ``take effect'') in subsequent Emacs sessions. This
|
||||
happens at startup, after processing the init file (@pxref{Init
|
||||
File}). As an exception, Emacs does not load packages at startup if
|
||||
invoked with the @samp{-q} or @samp{--no-init-file} options
|
||||
(@pxref{Initial Options}).
|
||||
|
||||
@vindex package-enable-at-startup
|
||||
@findex package-initialize
|
||||
To disable automatic package loading, change the variable
|
||||
@code{package-enable-at-startup} to @code{nil}. If you do this, you
|
||||
can use the command @kbd{M-x package-initialize} to load your
|
||||
packages.
|
||||
|
||||
@vindex package-load-list
|
||||
For finer control over package loading, you can use the variable
|
||||
@code{package-load-list}. Its value should be a list. A list element
|
||||
of the form @code{(@var{name} @var{version})} tells Emacs to load
|
||||
version @var{version} of the package named @var{name}. Here,
|
||||
@var{version} should be a version string (corresponding to a specific
|
||||
version of the package), or @code{t} (which means to load any
|
||||
installed version), or @code{nil} (which means no version; this
|
||||
``disables'' the package, preventing it from being loaded). A list
|
||||
element can also be the symbol @code{all}, which means to load the
|
||||
latest installed version of any package not named by the other list
|
||||
elements. The default value is just @code{'(all)}.
|
||||
|
||||
For example, if you set @code{package-load-list} to @code{'((muse
|
||||
"3.20") all)}, then Emacs only loads version 3.20 of the @samp{muse}
|
||||
package, plus any installed version of packages other than
|
||||
@samp{muse}. Any other version of @samp{muse} that happens to be
|
||||
installed will be ignored. The @samp{muse} package will be listed in
|
||||
the package menu with the @samp{held} status.
|
||||
|
||||
@node Package Files
|
||||
@section Package Files and Directory Layout
|
||||
@cindex package directory
|
||||
|
||||
@cindex package file
|
||||
@findex package-install-file
|
||||
Each package is downloaded from the package archive in the form of a
|
||||
single @dfn{package file}---either an Emacs Lisp source file, or a tar
|
||||
file containing multiple Emacs Lisp source and other files. Package
|
||||
files are automatically retrieved, processed, and disposed of by the
|
||||
Emacs commands that install packages. Normally, you will not need to
|
||||
deal directly with them, unless you are making a package
|
||||
(@pxref{Packaging,,,elisp, The Emacs Lisp Reference Manual}). Should
|
||||
you ever need to install a package directly from a package file, use
|
||||
the command @kbd{M-x package-install-file}.
|
||||
|
||||
@vindex package-user-dir
|
||||
Once installed, the contents of a package are placed in a
|
||||
subdirectory of @file{~/.emacs.d/elpa/} (you can change the name of
|
||||
that directory by changing the variable @code{package-user-dir}). The
|
||||
package subdirectory is named @file{@var{name}-@var{version}}, where
|
||||
@var{name} is the package name and @var{version} is its version
|
||||
string.
|
||||
|
||||
@cindex system-wide packages
|
||||
@vindex package-directory-list
|
||||
In addition to @code{package-user-dir}, Emacs looks for installed
|
||||
packages in the directories listed in @code{package-directory-list}.
|
||||
These directories are meant for system administrators to make Emacs
|
||||
packages available system-wide; Emacs itself never installs packages
|
||||
there. The package subdirectories for @code{package-directory-list}
|
||||
are laid out in the same way as in @code{package-user-dir}.
|
||||
|
||||
Deleting a package (@pxref{Package Menu}) involves deleting the
|
||||
corresponding package subdirectory. This only works for packages
|
||||
installed in @code{package-user-dir}; if told to act on a package in a
|
||||
system-wide package directory, the deletion command signals an error.
|
|
@ -5,7 +5,7 @@
|
|||
@c This file is included either in emacs-xtra.texi (when producing the
|
||||
@c printed version) or in the main Emacs manual (for the on-line version).
|
||||
@node Picture Mode
|
||||
@chapter Editing Pictures
|
||||
@section Editing Pictures
|
||||
@cindex pictures
|
||||
@cindex making pictures out of text characters
|
||||
@findex picture-mode
|
||||
|
@ -59,7 +59,7 @@ Additional extensions to Picture mode can be found in
|
|||
@end menu
|
||||
|
||||
@node Basic Picture
|
||||
@section Basic Editing in Picture Mode
|
||||
@subsection Basic Editing in Picture Mode
|
||||
|
||||
@findex picture-forward-column
|
||||
@findex picture-backward-column
|
||||
|
@ -124,7 +124,7 @@ modes), or one of the picture rectangle commands (@pxref{Rectangles in
|
|||
Picture}).
|
||||
|
||||
@node Insert in Picture
|
||||
@section Controlling Motion after Insert
|
||||
@subsection Controlling Motion after Insert
|
||||
|
||||
@findex picture-movement-up
|
||||
@findex picture-movement-down
|
||||
|
@ -188,7 +188,7 @@ same direction as motion after ``insertion'' currently does, while @kbd{C-c
|
|||
C-b} (@code{picture-motion-reverse}) moves in the opposite direction.
|
||||
|
||||
@node Tabs in Picture
|
||||
@section Picture Mode Tabs
|
||||
@subsection Picture Mode Tabs
|
||||
|
||||
@kindex M-TAB @r{(Picture mode)}
|
||||
@findex picture-tab-search
|
||||
|
@ -228,7 +228,7 @@ up the picture. You can do this by setting the variable
|
|||
@code{indent-tabs-mode} to @code{nil}.
|
||||
|
||||
@node Rectangles in Picture
|
||||
@section Picture Mode Rectangle Commands
|
||||
@subsection Picture Mode Rectangle Commands
|
||||
@cindex rectangles and Picture mode
|
||||
@cindex Picture mode and rectangles
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011
|
||||
@c Free Software Foundation, Inc.
|
||||
@c See file emacs.texi for copying conditions.
|
||||
@node Rmail, Dired, Sending Mail, Top
|
||||
@node Rmail
|
||||
@chapter Reading Mail with Rmail
|
||||
@cindex Rmail
|
||||
@cindex reading mail
|
||||
|
|
|
@ -70,6 +70,7 @@ for editing such pictures.
|
|||
* Nroff Mode:: Editing input to the formatter nroff.
|
||||
* Formatted Text:: Editing formatted text directly in WYSIWYG fashion.
|
||||
* Text Based Tables:: Editing text-based tables in WYSIWYG fashion.
|
||||
* Two-Column:: Splitting text columns into separate windows.
|
||||
@end menu
|
||||
|
||||
@node Words
|
||||
|
@ -2837,3 +2838,93 @@ then inserts the generated table in the proper syntax into the
|
|||
destination buffer. The default destination buffer is
|
||||
@code{table.@var{lang}}, where @var{lang} is the language you
|
||||
specified.
|
||||
|
||||
@node Two-Column
|
||||
@section Two-Column Editing
|
||||
@cindex two-column editing
|
||||
@cindex splitting columns
|
||||
@cindex columns, splitting
|
||||
|
||||
Two-column mode lets you conveniently edit two side-by-side columns of
|
||||
text. It uses two side-by-side windows, each showing its own
|
||||
buffer.
|
||||
|
||||
There are three ways to enter two-column mode:
|
||||
|
||||
@table @asis
|
||||
@item @kbd{@key{F2} 2} or @kbd{C-x 6 2}
|
||||
@kindex F2 2
|
||||
@kindex C-x 6 2
|
||||
@findex 2C-two-columns
|
||||
Enter two-column mode with the current buffer on the left, and on the
|
||||
right, a buffer whose name is based on the current buffer's name
|
||||
(@code{2C-two-columns}). If the right-hand buffer doesn't already
|
||||
exist, it starts out empty; the current buffer's contents are not
|
||||
changed.
|
||||
|
||||
This command is appropriate when the current buffer is empty or contains
|
||||
just one column and you want to add another column.
|
||||
|
||||
@item @kbd{@key{F2} s} or @kbd{C-x 6 s}
|
||||
@kindex F2 s
|
||||
@kindex C-x 6 s
|
||||
@findex 2C-split
|
||||
Split the current buffer, which contains two-column text, into two
|
||||
buffers, and display them side by side (@code{2C-split}). The current
|
||||
buffer becomes the left-hand buffer, but the text in the right-hand
|
||||
column is moved into the right-hand buffer. The current column
|
||||
specifies the split point. Splitting starts with the current line and
|
||||
continues to the end of the buffer.
|
||||
|
||||
This command is appropriate when you have a buffer that already contains
|
||||
two-column text, and you wish to separate the columns temporarily.
|
||||
|
||||
@item @kbd{@key{F2} b @var{buffer} @key{RET}}
|
||||
@itemx @kbd{C-x 6 b @var{buffer} @key{RET}}
|
||||
@kindex F2 b
|
||||
@kindex C-x 6 b
|
||||
@findex 2C-associate-buffer
|
||||
Enter two-column mode using the current buffer as the left-hand buffer,
|
||||
and using buffer @var{buffer} as the right-hand buffer
|
||||
(@code{2C-associate-buffer}).
|
||||
@end table
|
||||
|
||||
@kbd{@key{F2} s} or @kbd{C-x 6 s} looks for a column separator, which
|
||||
is a string that appears on each line between the two columns. You can
|
||||
specify the width of the separator with a numeric argument to
|
||||
@kbd{@key{F2} s}; that many characters, before point, constitute the
|
||||
separator string. By default, the width is 1, so the column separator
|
||||
is the character before point.
|
||||
|
||||
When a line has the separator at the proper place, @kbd{@key{F2} s}
|
||||
puts the text after the separator into the right-hand buffer, and
|
||||
deletes the separator. Lines that don't have the column separator at
|
||||
the proper place remain unsplit; they stay in the left-hand buffer, and
|
||||
the right-hand buffer gets an empty line to correspond. (This is the
|
||||
way to write a line that ``spans both columns while in two-column
|
||||
mode'': write it in the left-hand buffer, and put an empty line in the
|
||||
right-hand buffer.)
|
||||
|
||||
@kindex F2 RET
|
||||
@kindex C-x 6 RET
|
||||
@findex 2C-newline
|
||||
The command @kbd{C-x 6 @key{RET}} or @kbd{@key{F2} @key{RET}}
|
||||
(@code{2C-newline}) inserts a newline in each of the two buffers at
|
||||
corresponding positions. This is the easiest way to add a new line to
|
||||
the two-column text while editing it in split buffers.
|
||||
|
||||
@kindex F2 1
|
||||
@kindex C-x 6 1
|
||||
@findex 2C-merge
|
||||
When you have edited both buffers as you wish, merge them with
|
||||
@kbd{@key{F2} 1} or @kbd{C-x 6 1} (@code{2C-merge}). This copies the
|
||||
text from the right-hand buffer as a second column in the other buffer.
|
||||
To go back to two-column editing, use @kbd{@key{F2} s}.
|
||||
|
||||
@kindex F2 d
|
||||
@kindex C-x 6 d
|
||||
@findex 2C-dissociate
|
||||
Use @kbd{@key{F2} d} or @kbd{C-x 6 d} to dissociate the two buffers,
|
||||
leaving each as it stands (@code{2C-dissociate}). If the other buffer,
|
||||
the one not current when you type @kbd{@key{F2} d}, is empty,
|
||||
@kbd{@key{F2} d} kills it.
|
||||
|
|
|
@ -15,7 +15,7 @@ also considered.
|
|||
@raisesections
|
||||
@end ifnottex
|
||||
|
||||
@node Quitting, Lossage, Customization, Top
|
||||
@node Quitting
|
||||
@section Quitting and Aborting
|
||||
@cindex quitting
|
||||
|
||||
|
|
|
@ -1,3 +1,97 @@
|
|||
2011-08-30 Dani Moncayo <dmoncayo@gmail.com> (tiny change)
|
||||
|
||||
* lists.texi (Building Lists): Fix typo.
|
||||
|
||||
2011-08-30 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* display.texi (Basic Faces): New node. Document new faces.
|
||||
|
||||
* modes.texi (Major Mode Conventions): Move some text there.
|
||||
(Mode Help): Remove major-mode var, duplicated in Major Modes.
|
||||
|
||||
2011-08-29 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* modes.texi (Basic Major Modes): New node. Callers updated.
|
||||
(Major Modes): Document fundamental-mode and major-mode.
|
||||
(Major Mode Basics): Node deleted; text moved to Major Modes.
|
||||
(Derived Modes): Document derived-mode-p.
|
||||
|
||||
2011-08-28 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* files.texi (Changing Files, Create/Delete Dirs): Document new
|
||||
arguments for delete-file, delete-directory, and copy-directory.
|
||||
(Visiting Functions): Remove view-file; it is documented in the
|
||||
Emacs manual.
|
||||
|
||||
* frames.texi (Layout Parameters): The defaults for the
|
||||
menu-bar-lines and tool-bar-lines parameters depend on the mode.
|
||||
|
||||
* display.texi (Progress): Document spinner functionality.
|
||||
|
||||
* os.texi (Killing Emacs): Note that kill-emacs can be called by
|
||||
operating system signals. Refer to save-buffers-kill-terminal
|
||||
instead of save-buffers-kill-emacs.
|
||||
|
||||
* objects.texi (Symbol Type): Document ## print representation.
|
||||
|
||||
2011-08-25 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* display.texi (Specified Space): Mention that `space' specs
|
||||
influence bidi reordering.
|
||||
(Bidirectional Display): Explain how to use `(space . PROPS)' for
|
||||
separating fields with bidirectional content.
|
||||
|
||||
2011-08-24 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* display.texi (Bidirectional Display): Document return value in
|
||||
buffers that are not bidi-reordered for display, and in unibyte
|
||||
buffers.
|
||||
|
||||
2011-08-23 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* nonascii.texi (Character Properties): Document the values for
|
||||
unassigned codepoints.
|
||||
|
||||
2011-08-18 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* nonascii.texi (Character Properties): Document use of
|
||||
`bidi-class' and `mirroring' properties as part of reordering.
|
||||
Provide cross-references to "Bidirectional Display".
|
||||
|
||||
* display.texi (Bidirectional Display): Document the pitfalls of
|
||||
concatenating strings with bidirectional content, with possible
|
||||
solutions. Document bidi-string-mark-left-to-right. Mention
|
||||
paragraph direction in modes that inherit from prog-mode.
|
||||
Document use of `bidi-class' and `mirroring' properties as part of
|
||||
reordering.
|
||||
|
||||
2011-08-16 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* modes.texi (Major Mode Conventions): Improve the documentation
|
||||
of `mode-class' `special' modes.
|
||||
|
||||
* nonascii.texi (Character Properties): Document the `mirroring'
|
||||
property. Add index entries.
|
||||
|
||||
* syntax.texi (Categories): Add an example of defining a new
|
||||
category and category table.
|
||||
|
||||
* searching.texi (Regexp Backslash): Document how to display
|
||||
existing categories. Mention the possibility of adding
|
||||
categories, and add an xref to where this is described. Add an
|
||||
index entry.
|
||||
|
||||
2011-08-09 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* text.texi (Special Properties):
|
||||
* display.texi (Overlay Properties): Note that mouse-face cannot
|
||||
change the text size (Bug#8530).
|
||||
|
||||
2011-08-08 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* os.texi (Time of Day): Remove set-time-zone-rule, and recommend
|
||||
using setenv instead.
|
||||
|
||||
2011-07-28 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* display.texi (Bidirectional Display): Document the fact that
|
||||
|
|
|
@ -596,25 +596,6 @@ forms are elided.
|
|||
@end smallexample
|
||||
@end deffn
|
||||
|
||||
@ignore @c Not worth mentioning
|
||||
@defopt stack-trace-on-error
|
||||
@cindex stack trace
|
||||
This variable controls whether Lisp automatically displays a
|
||||
backtrace buffer after every error that is not handled. A quit signal
|
||||
counts as an error for this variable. If it is non-@code{nil} then a
|
||||
backtrace is shown in a pop-up buffer named @samp{*Backtrace*} on every
|
||||
error. If it is @code{nil}, then a backtrace is not shown.
|
||||
|
||||
When a backtrace is shown, that buffer is not selected. If either
|
||||
@code{debug-on-quit} or @code{debug-on-error} is also non-@code{nil}, then
|
||||
a backtrace is shown in one buffer, and the debugger is popped up in
|
||||
another buffer with its own backtrace.
|
||||
|
||||
We consider this feature to be obsolete and superseded by the debugger
|
||||
itself.
|
||||
@end defopt
|
||||
@end ignore
|
||||
|
||||
@defvar debug-on-next-call
|
||||
@cindex @code{eval}, and debugging
|
||||
@cindex @code{apply}, and debugging
|
||||
|
|
|
@ -367,10 +367,9 @@ echo area, or @code{nil} if there is none.
|
|||
When an operation can take a while to finish, you should inform the
|
||||
user about the progress it makes. This way the user can estimate
|
||||
remaining time and clearly see that Emacs is busy working, not hung.
|
||||
A convenient way to do this is to use a @dfn{progress reporter}.
|
||||
|
||||
Functions listed in this section provide simple and efficient way of
|
||||
reporting operation progress. Here is a working example that does
|
||||
nothing useful:
|
||||
Here is a working example that does nothing useful:
|
||||
|
||||
@smallexample
|
||||
(let ((progress-reporter
|
||||
|
@ -382,11 +381,11 @@ nothing useful:
|
|||
(progress-reporter-done progress-reporter))
|
||||
@end smallexample
|
||||
|
||||
@defun make-progress-reporter message min-value max-value &optional current-value min-change min-time
|
||||
This function creates and returns a @dfn{progress reporter}---an
|
||||
object you will use as an argument for all other functions listed
|
||||
here. The idea is to precompute as much data as possible to make
|
||||
progress reporting very fast.
|
||||
@defun make-progress-reporter message &optional min-value max-value current-value min-change min-time
|
||||
This function creates and returns a progress reporter object, which
|
||||
you will use as an argument for the other functions listed below. The
|
||||
idea is to precompute as much data as possible to make progress
|
||||
reporting very fast.
|
||||
|
||||
When this progress reporter is subsequently used, it will display
|
||||
@var{message} in the echo area, followed by progress percentage.
|
||||
|
@ -394,24 +393,28 @@ When this progress reporter is subsequently used, it will display
|
|||
on a filename, for instance, use @code{format} before calling this
|
||||
function.
|
||||
|
||||
@var{min-value} and @var{max-value} arguments stand for starting and
|
||||
final states of your operation. For instance, if you scan a buffer,
|
||||
they should be the results of @code{point-min} and @code{point-max}
|
||||
correspondingly. It is required that @var{max-value} is greater than
|
||||
@var{min-value}. If you create progress reporter when some part of
|
||||
the operation has already been completed, then specify
|
||||
@var{current-value} argument. But normally you should omit it or set
|
||||
it to @code{nil}---it will default to @var{min-value} then.
|
||||
The arguments @var{min-value} and @var{max-value} should be numbers
|
||||
standing for the starting and final states of the operation. For
|
||||
instance, an operation that ``scans'' a buffer should set these to the
|
||||
results of @code{point-min} and @code{point-max} correspondingly.
|
||||
@var{max-value} should be greater than @var{min-value}.
|
||||
|
||||
Remaining arguments control the rate of echo area updates. Progress
|
||||
reporter will wait for at least @var{min-change} more percents of the
|
||||
operation to be completed before printing next message.
|
||||
@var{min-time} specifies the minimum time in seconds to pass between
|
||||
successive prints. It can be fractional. Depending on Emacs and
|
||||
system capabilities, progress reporter may or may not respect this
|
||||
last argument or do it with varying precision. Default value for
|
||||
@var{min-change} is 1 (one percent), for @var{min-time}---0.2
|
||||
(seconds.)
|
||||
Alternatively, you can set @var{min-value} and @var{max-value} to
|
||||
@code{nil}. In that case, the progress reporter does not report
|
||||
process percentages; it instead displays a ``spinner'' that rotates a
|
||||
notch each time you update the progress reporter.
|
||||
|
||||
If @var{min-value} and @var{max-value} are numbers, you can give the
|
||||
argument @var{current-value} a numerical value specifying the initial
|
||||
progress; if omitted, this defaults to @var{min-value}.
|
||||
|
||||
The remaining arguments control the rate of echo area updates. The
|
||||
progress reporter will wait for at least @var{min-change} more
|
||||
percents of the operation to be completed before printing next
|
||||
message; the default is one percent. @var{min-time} specifies the
|
||||
minimum time in seconds to pass between successive prints; the default
|
||||
is 0.2 seconds. (On some operating systems, the progress reporter may
|
||||
handle fractions of seconds with varying precision).
|
||||
|
||||
This function calls @code{progress-reporter-update}, so the first
|
||||
message is printed immediately.
|
||||
|
@ -1454,7 +1457,10 @@ specify just the foreground color or just the background color.
|
|||
@item mouse-face
|
||||
@kindex mouse-face @r{(overlay property)}
|
||||
This property is used instead of @code{face} when the mouse is within
|
||||
the range of the overlay.
|
||||
the range of the overlay. However, Emacs ignores all face attributes
|
||||
from this property that alter the text size (e.g. @code{:height},
|
||||
@code{:weight}, and @code{:slant}). Those attributes are always the
|
||||
same as in the unhighlighted text.
|
||||
|
||||
@item display
|
||||
@kindex display @r{(overlay property)}
|
||||
|
@ -1827,9 +1833,10 @@ particular face name a special meaning in one frame if you wish.
|
|||
* Face Attributes:: What is in a face?
|
||||
* Attribute Functions:: Functions to examine and set face attributes.
|
||||
* Displaying Faces:: How Emacs combines the faces specified for a character.
|
||||
* Face Remapping:: Remapping faces to alternative definitions.
|
||||
* Face Remapping:: Remapping faces to alternative definitions.
|
||||
* Face Functions:: How to define and examine faces.
|
||||
* Auto Faces:: Hook for automatic face assignment.
|
||||
* Basic Faces:: Faces that are defined by default.
|
||||
* Font Selection:: Finding the best available font for a face.
|
||||
* Font Lookup:: Looking up the names of available fonts
|
||||
and information about them.
|
||||
|
@ -2681,6 +2688,62 @@ For efficiency, we recommend writing these functions so that they
|
|||
usually assign faces to around 400 to 600 characters at each call.
|
||||
@end defvar
|
||||
|
||||
@node Basic Faces
|
||||
@subsection Basic Faces
|
||||
|
||||
If your Emacs Lisp program needs to assign some faces to text, it is
|
||||
often a good idea to use certain existing faces or inherit from them,
|
||||
rather than defining entirely new faces. This way, if other users
|
||||
have customized the basic faces to give Emacs a certain look, your
|
||||
program will ``fit in'' without additional customization.
|
||||
|
||||
Some of the basic faces defined in Emacs are listed below. In
|
||||
addition to these, you might want to make use of the Font Lock faces
|
||||
for syntactic highlighting, if highlighting is not already handled by
|
||||
Font Lock mode, or if some Font Lock faces are not in use.
|
||||
@xref{Faces for Font Lock}.
|
||||
|
||||
@table @code
|
||||
@item default
|
||||
The default face, whose attributes are all specified. All other faces
|
||||
implicitly inherit from it: any unspecified attribute defaults to the
|
||||
attribute on this face (@pxref{Face Attributes}).
|
||||
|
||||
@item bold
|
||||
@itemx italic
|
||||
@itemx bold-italic
|
||||
@itemx underline
|
||||
@itemx fixed-pitch
|
||||
@itemx variable-pitch
|
||||
These have the attributes indicated by their names (e.g. @code{bold}
|
||||
has a bold @code{:weight} attribute), with all other attributes
|
||||
unspecified (and so given by @code{default}).
|
||||
|
||||
@item shadow
|
||||
For ``dimmed out'' text. For example, it is used for the ignored
|
||||
part of a filename in the minibuffer (@pxref{Minibuffer File,,
|
||||
Minibuffers for File Names, emacs, The GNU Emacs Manual}).
|
||||
|
||||
@item link
|
||||
@itemx link-visited
|
||||
For clickable text buttons that send the user to a different
|
||||
buffer or ``location''.
|
||||
|
||||
@item highlight
|
||||
For stretches of text that should temporarily stand out. For example,
|
||||
it is commonly assigned to the @code{mouse-face} property for cursor
|
||||
highlighting (@pxref{Special Properties}).
|
||||
|
||||
@item match
|
||||
For text matching a search command.
|
||||
|
||||
@item error
|
||||
@itemx warning
|
||||
@itemx success
|
||||
For text concerning errors, warnings, or successes. For example,
|
||||
these are used for messages in @samp{*Compilation*} buffers.
|
||||
@end table
|
||||
|
||||
@node Font Selection
|
||||
@subsection Font Selection
|
||||
|
||||
|
@ -3791,6 +3854,10 @@ with a @dfn{pixel ascent} specification (@pxref{Pixel Specification}).
|
|||
non-graphic terminals, but the other space properties in this section
|
||||
are not.
|
||||
|
||||
Note that space properties are treated as paragraph separators for
|
||||
the purposes of reordering bidirectional text for display.
|
||||
@xref{Bidirectional Display}, for the details.
|
||||
|
||||
@node Pixel Specification
|
||||
@subsection Pixel Specification for Spaces
|
||||
@cindex spaces, pixel specification
|
||||
|
@ -5989,6 +6056,7 @@ left-to-right and right-to-left characters.
|
|||
for editing and displaying bidirectional text.
|
||||
|
||||
@cindex logical order
|
||||
@cindex reading order
|
||||
@cindex visual order
|
||||
@cindex unicode bidirectional algorithm
|
||||
Emacs stores right-to-left and bidirectional text in the so-called
|
||||
|
@ -6003,17 +6071,16 @@ for display. Reordering of bidirectional text for display in Emacs is
|
|||
a ``Full bidirectionality'' class implementation of the @acronym{UBA}.
|
||||
|
||||
@defvar bidi-display-reordering
|
||||
The buffer-local variable @code{bidi-display-reordering} controls
|
||||
whether text in the buffer is reordered for display. If its value is
|
||||
non-@code{nil}, Emacs reorders characters that have right-to-left
|
||||
directionality when they are displayed. The default value is
|
||||
@code{t}. Text in overlay strings (@pxref{Overlay
|
||||
Properties,,before-string}), display strings (@pxref{Overlay
|
||||
Properties,,display}), and @code{display} text properties
|
||||
(@pxref{Display Property}) is also reordered if the buffer whose text
|
||||
includes these strings is reordered for display. Turning off
|
||||
@code{bidi-display-reordering} for a buffer turns off reordering of
|
||||
all the overlay and display strings in that buffer.
|
||||
This buffer-local variable controls whether text in the buffer is
|
||||
reordered for display. If its value is non-@code{nil}, Emacs reorders
|
||||
characters that have right-to-left directionality when they are
|
||||
displayed. The default value is @code{t}. Text in overlay strings
|
||||
(@pxref{Overlay Properties,,before-string}), display strings
|
||||
(@pxref{Overlay Properties,,display}), and @code{display} text
|
||||
properties (@pxref{Display Property}) is also reordered for display if
|
||||
the buffer whose text includes these strings is reordered. Turning
|
||||
off @code{bidi-display-reordering} for a buffer turns off reordering
|
||||
of all the overlay and display strings in that buffer.
|
||||
|
||||
Reordering of strings that are unrelated to any buffer, such as text
|
||||
displayed on the mode line (@pxref{Mode Line Format}) or header line
|
||||
|
@ -6053,7 +6120,7 @@ it is reordered for display. That is, the entire chunk of text
|
|||
covered by these properties is reordered together. Moreover, the
|
||||
bidirectional properties of the characters in this chunk of text are
|
||||
ignored, and Emacs reorders them as if they were replaced with a
|
||||
single character @code{u+FFFC}, known as the @dfn{Object Replacement
|
||||
single character @code{U+FFFC}, known as the @dfn{Object Replacement
|
||||
Character}. This means that placing a display property over a portion
|
||||
of text may change the way that the surrounding text is reordered for
|
||||
display. To prevent this unexpected effect, always place such
|
||||
|
@ -6070,9 +6137,9 @@ begins at the right margin and is continued or truncated at the left
|
|||
margin.
|
||||
|
||||
@defvar bidi-paragraph-direction
|
||||
Emacs determines the base direction of each paragraph dynamically,
|
||||
based on the text at the beginning of the paragraph. The precise
|
||||
method of determining the base direction is specified by the
|
||||
By default, Emacs determines the base direction of each paragraph
|
||||
dynamically, based on the text at the beginning of the paragraph. The
|
||||
precise method of determining the base direction is specified by the
|
||||
@acronym{UBA}; in a nutshell, the first character in a paragraph that
|
||||
has an explicit directionality determines the base direction of the
|
||||
paragraph. However, sometimes a buffer may need to force a certain
|
||||
|
@ -6084,6 +6151,13 @@ dynamic determination of the base direction, and instead forces all
|
|||
paragraphs in the buffer to have the direction specified by its
|
||||
buffer-local value. The value can be either @code{right-to-left} or
|
||||
@code{left-to-right}. Any other value is interpreted as @code{nil}.
|
||||
The default is @code{nil}.
|
||||
|
||||
@cindex @code{prog-mode}, and @code{bidi-paragraph-direction}
|
||||
Modes that are meant to display program source code should force a
|
||||
@code{left-to-right} paragraph direction. The easiest way of doing so
|
||||
is to derive the mode from Prog Mode, which already sets
|
||||
@code{bidi-paragraph-direction} to that value.
|
||||
@end defvar
|
||||
|
||||
@defun current-bidi-paragraph-direction &optional buffer
|
||||
|
@ -6094,5 +6168,83 @@ omitted or @code{nil}, it defaults to the current buffer. If the
|
|||
buffer-local value of the variable @code{bidi-paragraph-direction} is
|
||||
non-@code{nil}, the returned value will be identical to that value;
|
||||
otherwise, the returned value reflects the paragraph direction
|
||||
determined dynamically by Emacs.
|
||||
determined dynamically by Emacs. For buffers whose value of
|
||||
@code{bidi-display-reordering} is @code{nil} as well as unibyte
|
||||
buffers, this function always returns @code{left-to-right}.
|
||||
@end defun
|
||||
|
||||
@cindex layout on display, and bidirectional text
|
||||
@cindex jumbled display of bidirectional text
|
||||
@cindex concatenating bidirectional strings
|
||||
Reordering of bidirectional text for display can have surprising and
|
||||
unpleasant effects when two strings with bidirectional content are
|
||||
juxtaposed in a buffer, or otherwise programmatically concatenated
|
||||
into a string of text. A typical example is a buffer whose lines are
|
||||
actually sequences of items, or fields, separated by whitespace or
|
||||
punctuation characters. This is used in specialized modes such as
|
||||
Buffer-menu Mode or various email summary modes, like Rmail Summary
|
||||
Mode. Because these separator characters are @dfn{weak}, i.e.@: have
|
||||
no strong directionality, they take on the directionality of
|
||||
surrounding text. As result, a numeric field that follows a field
|
||||
with bidirectional content can be displayed @emph{to the left} of the
|
||||
preceding field, producing a jumbled display and messing up the
|
||||
expected layout.
|
||||
|
||||
To countermand this, we recommend that you use one of the following
|
||||
techniques for forcing correct order of fields on display:
|
||||
|
||||
@itemize @minus
|
||||
@item
|
||||
Append the special character @code{U+200E}, LEFT-TO-RIGHT MARK, or
|
||||
@acronym{LRM}, to the end of each field that may have bidirectional
|
||||
content, or prepend it to the beginning of the following field. The
|
||||
function @code{bidi-string-mark-left-to-right}, described below, comes
|
||||
in handy for this purpose. (In a right-to-left paragraph, use
|
||||
@code{U+200F}, RIGHT-TO-LEFT MARK, or @acronym{RLM}, instead.) This
|
||||
is one of the solutions recommended by
|
||||
@uref{http://www.unicode.org/reports/tr9/#Separators, the
|
||||
@acronym{UBA}}.
|
||||
|
||||
@item
|
||||
Include the tab character in the field separator. The tab character
|
||||
plays the role of @dfn{segment separator} in the @acronym{UBA}
|
||||
reordering, whose effect is to make each field a separate segment, and
|
||||
thus reorder them separately.
|
||||
|
||||
@cindex @code{space} display spec, and bidirectional text
|
||||
@item
|
||||
Separate fields with a @code{display} property or overlay with the
|
||||
property value of the form @code{(space . PROPS)} (@pxref{Specified
|
||||
Space}). This display specification is treated by Emacs as a
|
||||
@dfn{paragraph separator}; the text before and after the separator is
|
||||
reordered separately, which avoids the influence of any field on its
|
||||
neighboring fields.
|
||||
@end itemize
|
||||
|
||||
@defun bidi-string-mark-left-to-right string
|
||||
This subroutine returns its argument @var{string}, possibly modified,
|
||||
such that the result can be safely concatenated with another string,
|
||||
or juxtaposed with another string in a buffer, without disrupting the
|
||||
relative layout of this string and the next one on display. If the
|
||||
string returned by this function is displayed as part of a
|
||||
left-to-right paragraph, it will always appear on display to the left
|
||||
of the text that follows it. The function works by examining the
|
||||
characters of its argument, and if any of those characters could cause
|
||||
reordering on display, the function appends the @acronym{LRM}
|
||||
character to the string. The appended @acronym{LRM} character is made
|
||||
@emph{invisible} (@pxref{Invisible Text}), to hide it on display.
|
||||
@end defun
|
||||
|
||||
The reordering algorithm uses the bidirectional properties of the
|
||||
characters stored as their @code{bidi-class} property
|
||||
(@pxref{Character Properties}). Lisp programs can change these
|
||||
properties by calling the @code{put-char-code-property} function.
|
||||
However, doing this requires a thorough understanding of the
|
||||
@acronym{UBA}, and is therefore not recommended. Any changes to the
|
||||
bidirectional properties of a character have global effect: they
|
||||
affect all Emacs frames and windows.
|
||||
|
||||
Similarly, the @code{mirroring} property is used to display the
|
||||
appropriate mirrored character in the reordered text. Lisp programs
|
||||
can affect the mirrored display by changing this property. Again, any
|
||||
such changes affect all of Emacs display.
|
||||
|
|
|
@ -765,8 +765,7 @@ Major and Minor Modes
|
|||
* Major Modes:: Defining major modes.
|
||||
* Minor Modes:: Defining minor modes.
|
||||
* Mode Line Format:: Customizing the text that appears in the mode line.
|
||||
* Imenu:: How a mode can provide a menu
|
||||
of definitions in the buffer.
|
||||
* Imenu:: Providing a menu of definitions made in a buffer.
|
||||
* Font Lock Mode:: How modes can highlight text according to syntax.
|
||||
* Desktop Save Mode:: How modes can have buffer state saved between
|
||||
Emacs sessions.
|
||||
|
@ -778,12 +777,12 @@ Hooks
|
|||
|
||||
Major Modes
|
||||
|
||||
* Major Mode Basics::
|
||||
* Major Mode Conventions:: Coding conventions for keymaps, etc.
|
||||
* Auto Major Mode:: How Emacs chooses the major mode automatically.
|
||||
* Mode Help:: Finding out how to use a mode.
|
||||
* Derived Modes:: Defining a new major mode based on another major
|
||||
mode.
|
||||
* Basic Major Modes:: Modes that other modes are often derived from.
|
||||
* Generic Modes:: Defining a simple major mode that supports
|
||||
comment syntax and Font Lock mode.
|
||||
* Mode Hooks:: Hooks run at the end of major mode functions.
|
||||
|
@ -1309,6 +1308,7 @@ Faces
|
|||
* Face Remapping:: Remapping faces to alternative definitions.
|
||||
* Face Functions:: How to define and examine faces.
|
||||
* Auto Faces:: Hook for automatic face assignment.
|
||||
* Basic Faces:: Faces that are defined by default.
|
||||
* Font Selection:: Finding the best available font for a face.
|
||||
* Font Lookup:: Looking up the names of available fonts
|
||||
and information about them.
|
||||
|
|
|
@ -203,17 +203,6 @@ When this command is called interactively, it prompts for
|
|||
@var{filename}.
|
||||
@end deffn
|
||||
|
||||
@deffn Command view-file filename
|
||||
This command visits @var{filename} using View mode, returning to the
|
||||
previous buffer when you exit View mode. View mode is a minor mode that
|
||||
provides commands to skim rapidly through the file, but does not let you
|
||||
modify the text. Entering View mode runs the normal hook
|
||||
@code{view-mode-hook}. @xref{Hooks}.
|
||||
|
||||
When @code{view-file} is called interactively, it prompts for
|
||||
@var{filename}.
|
||||
@end deffn
|
||||
|
||||
@defopt find-file-wildcards
|
||||
If this variable is non-@code{nil}, then the various @code{find-file}
|
||||
commands check for wildcard characters and visit all the files that
|
||||
|
@ -1529,19 +1518,26 @@ This function is not available on systems that don't support symbolic
|
|||
links.
|
||||
@end deffn
|
||||
|
||||
@deffn Command delete-file filename
|
||||
@cindex trash
|
||||
@vindex delete-by-moving-to-trash
|
||||
@deffn Command delete-file filename &optional trash
|
||||
@pindex rm
|
||||
This command deletes the file @var{filename}, like the shell command
|
||||
@samp{rm @var{filename}}. If the file has multiple names, it continues
|
||||
to exist under the other names.
|
||||
This command deletes the file @var{filename}. If the file has
|
||||
multiple names, it continues to exist under the other names. If
|
||||
@var{filename} is a symbolic link, @code{delete-file} deletes only the
|
||||
symbolic link and not its target (though it does follow symbolic links
|
||||
at all levels of parent directories).
|
||||
|
||||
A suitable kind of @code{file-error} error is signaled if the file does
|
||||
not exist, or is not deletable. (On Unix and GNU/Linux, a file is
|
||||
deletable if its directory is writable.)
|
||||
A suitable kind of @code{file-error} error is signaled if the file
|
||||
does not exist, or is not deletable. (On Unix and GNU/Linux, a file
|
||||
is deletable if its directory is writable.)
|
||||
|
||||
If @var{filename} is a symbolic link, @code{delete-file} does not
|
||||
replace it with its target, but it does follow symbolic links at all
|
||||
levels of parent directories.
|
||||
If the optional argument @var{trash} is non-@code{nil} and the
|
||||
variable @code{delete-by-moving-to-trash} is non-@code{nil}, this
|
||||
command moves the file into the system Trash instead of deleting it.
|
||||
@xref{Misc File Ops,,Miscellaneous File Operations, emacs, The GNU
|
||||
Emacs Manual}. When called interactively, @var{trash} is @code{t} if
|
||||
no prefix argument is given, and @code{nil} otherwise.
|
||||
|
||||
See also @code{delete-directory} in @ref{Create/Delete Dirs}.
|
||||
@end deffn
|
||||
|
@ -2507,7 +2503,7 @@ if they don't already exist.
|
|||
@code{mkdir} is an alias for this.
|
||||
@end deffn
|
||||
|
||||
@deffn Command copy-directory dirname newname &optional keep-time parents
|
||||
@deffn Command copy-directory dirname newname &optional keep-time parents copy-contents
|
||||
This command copies the directory named @var{dirname} to
|
||||
@var{newname}. If @var{newname} names an existing directory,
|
||||
@var{dirname} will be copied to a subdirectory there.
|
||||
|
@ -2515,16 +2511,23 @@ This command copies the directory named @var{dirname} to
|
|||
It always sets the file modes of the copied files to match the
|
||||
corresponding original file.
|
||||
|
||||
The third arg @var{keep-time} non-@code{nil} means to preserve the
|
||||
The third argument @var{keep-time} non-@code{nil} means to preserve the
|
||||
modification time of the copied files. A prefix arg makes
|
||||
@var{keep-time} non-@code{nil}.
|
||||
|
||||
Noninteractively, the last argument @var{parents} says whether to
|
||||
The fourth argument @var{parents} says whether to
|
||||
create parent directories if they don't exist. Interactively,
|
||||
this happens by default.
|
||||
|
||||
The fifth argument @var{copy-contents}, if non-@code{nil}, means to
|
||||
copy the contents of @var{dirname} directly into @var{newname} if the
|
||||
latter is an existing directory, instead of copying @var{dirname} into
|
||||
it as a subdirectory.
|
||||
@end deffn
|
||||
|
||||
@deffn Command delete-directory dirname &optional recursive
|
||||
@cindex trash
|
||||
@vindex delete-by-moving-to-trash
|
||||
@deffn Command delete-directory dirname &optional recursive trash
|
||||
This command deletes the directory named @var{dirname}. The function
|
||||
@code{delete-file} does not work for files that are directories; you
|
||||
must use @code{delete-directory} for them. If @var{recursive} is
|
||||
|
@ -2533,6 +2536,13 @@ must use @code{delete-directory} for them. If @var{recursive} is
|
|||
|
||||
@code{delete-directory} only follows symbolic links at the level of
|
||||
parent directories.
|
||||
|
||||
If the optional argument @var{trash} is non-@code{nil} and the
|
||||
variable @code{delete-by-moving-to-trash} is non-@code{nil}, this
|
||||
command moves the file into the system Trash instead of deleting it.
|
||||
@xref{Misc File Ops,,Miscellaneous File Operations, emacs, The GNU
|
||||
Emacs Manual}. When called interactively, @var{trash} is @code{t} if
|
||||
no prefix argument is given, and @code{nil} otherwise.
|
||||
@end deffn
|
||||
|
||||
@node Magic File Names
|
||||
|
|
|
@ -695,20 +695,19 @@ right fringe. However, you can force one fringe or the other to a
|
|||
precise width by specifying that width as a negative integer. If both
|
||||
widths are negative, only the left fringe gets the specified width.
|
||||
|
||||
@vindex menu-bar-lines, a frame parameter
|
||||
@vindex menu-bar-lines frame parameter
|
||||
@item menu-bar-lines
|
||||
The number of lines to allocate at the top of the frame for a menu
|
||||
bar. The default is 1. A value of @code{nil} means don't display a
|
||||
menu bar. @xref{Menu Bar}. (The X toolkit and GTK allow at most one
|
||||
menu bar line; they treat larger values as 1.)
|
||||
bar. The default is 1 if Menu Bar mode is enabled, and 0 otherwise.
|
||||
@xref{Menu Bars,,,emacs, The GNU Emacs Manual}.
|
||||
|
||||
@vindex tool-bar-lines, a frame parameter
|
||||
@vindex tool-bar-lines frame parameter
|
||||
@item tool-bar-lines
|
||||
The number of lines to use for the tool bar. A value of @code{nil}
|
||||
means don't display a tool bar. (GTK and Nextstep allow at most one
|
||||
tool bar line; they treat larger values as 1.)
|
||||
The number of lines to use for the tool bar. The default is 1 if Tool
|
||||
Bar mode is enabled, and 0 otherwise. @xref{Tool Bars,,,emacs, The
|
||||
GNU Emacs Manual}.
|
||||
|
||||
@vindex tool-bar-position, a frame parameter
|
||||
@vindex tool-bar-position frame parameter
|
||||
@item tool-bar-position
|
||||
The position of the tool bar. Currently only for the GTK tool bar.
|
||||
Value can be one of @code{top}, @code{bottom} @code{left}, @code{right}.
|
||||
|
|
|
@ -462,7 +462,7 @@ element is @var{object}. Compare @code{make-list} with
|
|||
@result{} nil
|
||||
@end group
|
||||
@group
|
||||
(setq l (make-list 3 '(a b))
|
||||
(setq l (make-list 3 '(a b)))
|
||||
@result{} ((a b) (a b) (a b))
|
||||
(eq (car l) (cadr l))
|
||||
@result{} t
|
||||
|
|
|
@ -19,16 +19,15 @@ user. For related topics such as keymaps and syntax tables, see
|
|||
@ref{Keymaps}, and @ref{Syntax Tables}.
|
||||
|
||||
@menu
|
||||
* Hooks:: How to use hooks; how to write code that provides hooks.
|
||||
* Major Modes:: Defining major modes.
|
||||
* Minor Modes:: Defining minor modes.
|
||||
* Mode Line Format:: Customizing the text that appears in the mode line.
|
||||
* Imenu:: How a mode can provide a menu
|
||||
of definitions in the buffer.
|
||||
* Font Lock Mode:: How modes can highlight text according to syntax.
|
||||
* Auto-Indentation:: How to teach Emacs to indent for a major mode.
|
||||
* Desktop Save Mode:: How modes can have buffer state saved between
|
||||
Emacs sessions.
|
||||
* Hooks:: How to use hooks; how to write code that provides hooks.
|
||||
* Major Modes:: Defining major modes.
|
||||
* Minor Modes:: Defining minor modes.
|
||||
* Mode Line Format:: Customizing the text that appears in the mode line.
|
||||
* Imenu:: Providing a menu of definitions made in a buffer.
|
||||
* Font Lock Mode:: How modes can highlight text according to syntax.
|
||||
* Auto-Indentation:: How to teach Emacs to indent for a major mode.
|
||||
* Desktop Save Mode:: How modes can have buffer state saved between
|
||||
Emacs sessions.
|
||||
@end menu
|
||||
|
||||
@node Hooks
|
||||
|
@ -48,12 +47,12 @@ convention, whenever the hook name ends in @samp{-hook}, that tells
|
|||
you it is normal. We try to make all hooks normal, as much as
|
||||
possible, so that you can use them in a uniform way.
|
||||
|
||||
Every major mode function is supposed to run a normal hook called
|
||||
the @dfn{mode hook} as the one of the last steps of initialization.
|
||||
This makes it easy for a user to customize the behavior of the mode,
|
||||
by overriding the buffer-local variable assignments already made by
|
||||
the mode. Most minor mode functions also run a mode hook at the end.
|
||||
But hooks are used in other contexts too. For example, the hook
|
||||
Every major mode command is supposed to run a normal hook called the
|
||||
@dfn{mode hook} as the one of the last steps of initialization. This
|
||||
makes it easy for a user to customize the behavior of the mode, by
|
||||
overriding the buffer-local variable assignments already made by the
|
||||
mode. Most minor mode functions also run a mode hook at the end. But
|
||||
hooks are used in other contexts too. For example, the hook
|
||||
@code{suspend-hook} runs just before Emacs suspends itself
|
||||
(@pxref{Suspending Emacs}).
|
||||
|
||||
|
@ -78,8 +77,8 @@ convention.
|
|||
its value is just a single function, not a list of functions.
|
||||
|
||||
@menu
|
||||
* Running Hooks:: How to run a hook.
|
||||
* Setting Hooks:: How to put functions on a hook, or remove them.
|
||||
* Running Hooks:: How to run a hook.
|
||||
* Setting Hooks:: How to put functions on a hook, or remove them.
|
||||
@end menu
|
||||
|
||||
@node Running Hooks
|
||||
|
@ -195,115 +194,98 @@ from the buffer-local hook list instead of from the global hook list.
|
|||
@section Major Modes
|
||||
@cindex major mode
|
||||
|
||||
@cindex major mode command
|
||||
Major modes specialize Emacs for editing particular kinds of text.
|
||||
Each buffer has only one major mode at a time. For each major mode
|
||||
there is a function to switch to that mode in the current buffer; its
|
||||
name should end in @samp{-mode}. These functions work by setting
|
||||
buffer-local variable bindings and other data associated with the
|
||||
buffer, such as a local keymap. The effect lasts until you switch
|
||||
to another major mode in the same buffer.
|
||||
Each buffer has one major mode at a time. Every major mode is
|
||||
associated with a @dfn{major mode command}, whose name should end in
|
||||
@samp{-mode}. This command takes care of switching to that mode in the
|
||||
current buffer, by setting various buffer-local variables such as a
|
||||
local keymap. @xref{Major Mode Conventions}.
|
||||
|
||||
The least specialized major mode is called @dfn{Fundamental mode},
|
||||
which has no mode-specific definitions or variable settings.
|
||||
|
||||
@deffn Command fundamental-mode
|
||||
This is the major mode command for Fundamental mode. Unlike other mode
|
||||
commands, it does @emph{not} run any mode hooks (@pxref{Major Mode
|
||||
Conventions}), since you are not supposed to customize this mode.
|
||||
@end deffn
|
||||
|
||||
The easiest way to write a major mode is to use the macro
|
||||
@code{define-derived-mode}, which sets up the new mode as a variant of
|
||||
an existing major mode. @xref{Derived Modes}. We recommend using
|
||||
@code{define-derived-mode} even if the new mode is not an obvious
|
||||
derivative of another mode, as it automatically enforces many coding
|
||||
conventions for you. @xref{Basic Major Modes}, for common modes to
|
||||
derive from.
|
||||
|
||||
The standard GNU Emacs Lisp directory tree contains the code for
|
||||
several major modes, in files such as @file{text-mode.el},
|
||||
@file{texinfo.el}, @file{lisp-mode.el}, and @file{rmail.el}. You can
|
||||
study these libraries to see how modes are written.
|
||||
|
||||
@defopt major-mode
|
||||
The buffer-local value of this variable holds the symbol for the current
|
||||
major mode. Its default value holds the default major mode for new
|
||||
buffers. The standard default value is @code{fundamental-mode}.
|
||||
|
||||
If the default value is @code{nil}, then whenever Emacs creates a new
|
||||
buffer via a command such as @kbd{C-x b} (@code{switch-to-buffer}), the
|
||||
new buffer is put in the major mode of the previously current buffer.
|
||||
As an exception, if the major mode of the previous buffer has a
|
||||
@code{mode-class} symbol property with value @code{special}, the new
|
||||
buffer is put in Fundamental mode (@pxref{Major Mode Conventions}).
|
||||
@end defopt
|
||||
|
||||
@menu
|
||||
* Major Mode Basics::
|
||||
* Major Mode Conventions:: Coding conventions for keymaps, etc.
|
||||
* Auto Major Mode:: How Emacs chooses the major mode automatically.
|
||||
* Mode Help:: Finding out how to use a mode.
|
||||
* Derived Modes:: Defining a new major mode based on another major
|
||||
* Major Mode Conventions:: Coding conventions for keymaps, etc.
|
||||
* Auto Major Mode:: How Emacs chooses the major mode automatically.
|
||||
* Mode Help:: Finding out how to use a mode.
|
||||
* Derived Modes:: Defining a new major mode based on another major
|
||||
mode.
|
||||
* Generic Modes:: Defining a simple major mode that supports
|
||||
* Basic Major Modes:: Modes that other modes are often derived from.
|
||||
* Generic Modes:: Defining a simple major mode that supports
|
||||
comment syntax and Font Lock mode.
|
||||
* Mode Hooks:: Hooks run at the end of major mode functions.
|
||||
* Example Major Modes:: Text mode and Lisp modes.
|
||||
* Mode Hooks:: Hooks run at the end of major mode commands.
|
||||
* Example Major Modes:: Text mode and Lisp modes.
|
||||
@end menu
|
||||
|
||||
@node Major Mode Basics
|
||||
@subsection Major Mode Basics
|
||||
@cindex Fundamental mode
|
||||
|
||||
The least specialized major mode is called @dfn{Fundamental mode}.
|
||||
This mode has no mode-specific definitions or variable settings, so each
|
||||
Emacs command behaves in its default manner, and each option is in its
|
||||
default state. All other major modes redefine various keys and options.
|
||||
For example, Lisp Interaction mode provides special key bindings for
|
||||
@kbd{C-j} (@code{eval-print-last-sexp}), @key{TAB}
|
||||
(@code{lisp-indent-line}), and other keys.
|
||||
|
||||
When you need to write several editing commands to help you perform a
|
||||
specialized editing task, creating a new major mode is usually a good
|
||||
idea. In practice, writing a major mode is easy (in contrast to
|
||||
writing a minor mode, which is often difficult).
|
||||
|
||||
If the new mode is similar to an old one, it is often unwise to
|
||||
modify the old one to serve two purposes, since it may become harder
|
||||
to use and maintain. Instead, copy and rename an existing major mode
|
||||
definition and alter the copy---or use the @code{define-derived-mode}
|
||||
macro to define a @dfn{derived mode} (@pxref{Derived Modes}). For
|
||||
example, Rmail Edit mode is a major mode that is very similar to Text
|
||||
mode except that it provides two additional commands. Its definition
|
||||
is distinct from that of Text mode, but uses that of Text mode.
|
||||
|
||||
Even if the new mode is not an obvious derivative of any other mode,
|
||||
we recommend to use @code{define-derived-mode}, since it automatically
|
||||
enforces the most important coding conventions for you.
|
||||
|
||||
For a very simple programming language major mode that handles
|
||||
comments and fontification, you can use @code{define-generic-mode}.
|
||||
@xref{Generic Modes}.
|
||||
|
||||
Rmail Edit mode offers an example of changing the major mode
|
||||
temporarily for a buffer, so it can be edited in a different way (with
|
||||
ordinary Emacs commands rather than Rmail commands). In such cases, the
|
||||
temporary major mode usually provides a command to switch back to the
|
||||
buffer's usual mode (Rmail mode, in this case). You might be tempted to
|
||||
present the temporary redefinitions inside a recursive edit and restore
|
||||
the usual ones when the user exits; but this is a bad idea because it
|
||||
constrains the user's options when it is done in more than one buffer:
|
||||
recursive edits must be exited most-recently-entered first. Using an
|
||||
alternative major mode avoids this limitation. @xref{Recursive
|
||||
Editing}.
|
||||
|
||||
The standard GNU Emacs Lisp library directory tree contains the code
|
||||
for several major modes, in files such as @file{text-mode.el},
|
||||
@file{texinfo.el}, @file{lisp-mode.el}, @file{c-mode.el}, and
|
||||
@file{rmail.el}. They are found in various subdirectories of the
|
||||
@file{lisp} directory. You can study these libraries to see how modes
|
||||
are written. Text mode is perhaps the simplest major mode aside from
|
||||
Fundamental mode. Rmail mode is a complicated and specialized mode.
|
||||
|
||||
@node Major Mode Conventions
|
||||
@subsection Major Mode Conventions
|
||||
@cindex major mode conventions
|
||||
@cindex conventions for writing major modes
|
||||
|
||||
The code for existing major modes follows various coding conventions,
|
||||
including conventions for local keymap and syntax table initialization,
|
||||
global names, and hooks. Please follow these conventions when you
|
||||
define a new major mode. (Fundamental mode is an exception to many
|
||||
of these conventions, because its definition is to present the global
|
||||
state of Emacs.)
|
||||
The code for every major mode should follow various coding
|
||||
conventions, including conventions for local keymap and syntax table
|
||||
initialization, function and variable names, and hooks.
|
||||
|
||||
This list of conventions is only partial, because each major mode
|
||||
should aim for consistency in general with other Emacs major modes.
|
||||
This makes Emacs as a whole more coherent. It is impossible to list
|
||||
If you use the @code{define-derived-mode} macro, it will take care of
|
||||
many of these conventions automatically. @xref{Derived Modes}. Note
|
||||
also that fundamental mode is an exception to many of these conventions,
|
||||
because its definition is to present the global state of Emacs.
|
||||
|
||||
The following list of conventions is only partial. Each major mode
|
||||
should aim for consistency in general with other Emacs major modes, as
|
||||
this makes Emacs as a whole more coherent. It is impossible to list
|
||||
here all the possible points where this issue might come up; if the
|
||||
Emacs developers point out an area where your major mode deviates from
|
||||
the usual conventions, please make it compatible.
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
Define a command whose name ends in @samp{-mode}, with no arguments,
|
||||
that switches to the new mode in the current buffer. This command
|
||||
should set up the keymap, syntax table, and buffer-local variables in an
|
||||
existing buffer, without changing the buffer's contents.
|
||||
Define a major mode command whose name ends in @samp{-mode}. When
|
||||
called with no arguments, this command should switch to the new mode in
|
||||
the current buffer by setting up the keymap, syntax table, and
|
||||
buffer-local variables in an existing buffer. It should not change the
|
||||
buffer's contents.
|
||||
|
||||
@item
|
||||
Write a documentation string for this command that describes the
|
||||
special commands available in this mode. @kbd{C-h m}
|
||||
(@code{describe-mode}) in your mode will display this string.
|
||||
Write a documentation string for this command that describes the special
|
||||
commands available in this mode. @xref{Mode Help}.
|
||||
|
||||
The documentation string may include the special documentation
|
||||
substrings, @samp{\[@var{command}]}, @samp{\@{@var{keymap}@}}, and
|
||||
@samp{\<@var{keymap}>}, which enable the documentation to adapt
|
||||
@samp{\<@var{keymap}>}, which allow the help display to adapt
|
||||
automatically to the user's own key bindings. @xref{Keys in
|
||||
Documentation}.
|
||||
|
||||
|
@ -421,28 +403,7 @@ setting up a buffer-local value for the variable
|
|||
|
||||
@item
|
||||
Each face that the mode defines should, if possible, inherit from an
|
||||
existing Emacs face. This reduces the chance of conflicting with a
|
||||
user's face customizations. Useful faces include:
|
||||
|
||||
@table @asis
|
||||
@item @code{highlight}
|
||||
for stretches of text that should temporarily stand out.
|
||||
|
||||
@item @code{match}
|
||||
for text matching a search command.
|
||||
|
||||
@item @code{link} and @code{link-visited}
|
||||
for clickable text buttons that send the user to a different buffer or
|
||||
``location''.
|
||||
|
||||
@item @code{button}
|
||||
for clickable text buttons that perform other actions.
|
||||
|
||||
@item @asis{Font Lock faces}
|
||||
for other kinds of syntactic highlighting, if highlighting is not
|
||||
handled by Font Lock mode or some Font Lock faces are not in use.
|
||||
@xref{Faces for Font Lock}, for how to assign Font Lock faces.
|
||||
@end table
|
||||
existing Emacs face. @xref{Basic Faces}, and @ref{Faces for Font Lock}.
|
||||
|
||||
@item
|
||||
The mode should specify how Imenu should find the definitions or
|
||||
|
@ -505,27 +466,31 @@ this mode to any other major mode, this mode can set up a buffer-local
|
|||
value for @code{change-major-mode-hook} (@pxref{Creating Buffer-Local}).
|
||||
|
||||
@item
|
||||
If this mode is appropriate only for specially-prepared text, then the
|
||||
major mode command symbol should have a property named @code{mode-class}
|
||||
with value @code{special}, put on as follows:
|
||||
If this mode is appropriate only for specially-prepared text produced by
|
||||
the mode itself (rather than by the user typing at the keyboard or by an
|
||||
external file), then the major mode command symbol should have a
|
||||
property named @code{mode-class} with value @code{special}, put on as
|
||||
follows:
|
||||
|
||||
@kindex mode-class @r{(property)}
|
||||
@cindex @code{special}
|
||||
@cindex @code{special} modes
|
||||
@example
|
||||
(put 'funny-mode 'mode-class 'special)
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
This tells Emacs that new buffers created while the current buffer is
|
||||
in Funny mode should not inherit Funny mode, in case the default value
|
||||
of @code{major-mode} is @code{nil}. Modes such as Dired, Rmail,
|
||||
and Buffer List use this feature.
|
||||
This tells Emacs that new buffers created while the current buffer is in
|
||||
Funny mode should not be put in Funny mode, even though the default
|
||||
value of @code{major-mode} is @code{nil}. By default, the value of
|
||||
@code{nil} for @code{major-mode} means to use the current buffer's major
|
||||
mode when creating new buffers (@pxref{Auto Major Mode}), but with such
|
||||
@code{special} modes, Fundamental mode is used instead. Modes such as
|
||||
Dired, Rmail, and Buffer List use this feature.
|
||||
|
||||
The @code{define-derived-mode} macro automatically marks the derived
|
||||
mode as special if the parent mode is special. The special mode
|
||||
@code{special-mode} provides a convenient parent for other special
|
||||
modes to inherit from; it sets @code{buffer-read-only} to @code{t},
|
||||
and does little else.
|
||||
mode as special if the parent mode is special. Special mode is a
|
||||
convenient parent for such modes to inherit from; @xref{Basic Major
|
||||
Modes}.
|
||||
|
||||
@item
|
||||
If you want to make the new mode the default for files with certain
|
||||
|
@ -559,16 +524,6 @@ Even if you never load the file more than once, someone else will.
|
|||
automatically selects a major mode for the new buffer when a file is
|
||||
visited. It also processes local variables specified in the file text.
|
||||
|
||||
@deffn Command fundamental-mode
|
||||
Fundamental mode is a major mode that is not specialized for anything
|
||||
in particular. Other major modes are defined in effect by comparison
|
||||
with this one---their definitions say what to change, starting from
|
||||
Fundamental mode. The @code{fundamental-mode} function does @emph{not}
|
||||
run any mode hooks; you're not supposed to customize it. (If you want Emacs
|
||||
to behave differently in Fundamental mode, change the @emph{global}
|
||||
state of Emacs.)
|
||||
@end deffn
|
||||
|
||||
@deffn Command normal-mode &optional find-file
|
||||
This function establishes the proper major mode and buffer-local variable
|
||||
bindings for the current buffer. First it calls @code{set-auto-mode}
|
||||
|
@ -594,23 +549,22 @@ by the default value of @code{major-mode} (see below).
|
|||
|
||||
@cindex file mode specification error
|
||||
@code{normal-mode} uses @code{condition-case} around the call to the
|
||||
major mode function, so errors are caught and reported as a @samp{File
|
||||
mode specification error}, followed by the original error message.
|
||||
major mode command, so errors are caught and reported as a @samp{File
|
||||
mode specification error}, followed by the original error message.
|
||||
@end deffn
|
||||
|
||||
@defun set-auto-mode &optional keep-mode-if-same
|
||||
@cindex visited file mode
|
||||
This function selects the major mode that is appropriate for the
|
||||
current buffer. It bases its decision (in order of precedence) on
|
||||
the @w{@samp{-*-}} line, on any @samp{mode:} local variable near the
|
||||
end of a file, on the @w{@samp{#!}} line (using
|
||||
@code{interpreter-mode-alist}), on the text at the beginning of the
|
||||
buffer (using @code{magic-mode-alist}), and finally on the visited
|
||||
file name (using @code{auto-mode-alist}). @xref{Choosing Modes, , How
|
||||
Major Modes are Chosen, emacs, The GNU Emacs Manual}.
|
||||
If @code{enable-local-variables} is @code{nil}, @code{set-auto-mode}
|
||||
does not check the @w{@samp{-*-}} line, or near the end of the file,
|
||||
for any mode tag.
|
||||
current buffer. It bases its decision (in order of precedence) on the
|
||||
@w{@samp{-*-}} line, on any @samp{mode:} local variable near the end of
|
||||
a file, on the @w{@samp{#!}} line (using @code{interpreter-mode-alist}),
|
||||
on the text at the beginning of the buffer (using
|
||||
@code{magic-mode-alist}), and finally on the visited file name (using
|
||||
@code{auto-mode-alist}). @xref{Choosing Modes, , How Major Modes are
|
||||
Chosen, emacs, The GNU Emacs Manual}. If @code{enable-local-variables}
|
||||
is @code{nil}, @code{set-auto-mode} does not check the @w{@samp{-*-}}
|
||||
line, or near the end of the file, for any mode tag.
|
||||
|
||||
If @var{keep-mode-if-same} is non-@code{nil}, this function does not
|
||||
call the mode command if the buffer is already in the proper major
|
||||
|
@ -619,21 +573,6 @@ mode. For instance, @code{set-visited-file-name} sets this to
|
|||
have set.
|
||||
@end defun
|
||||
|
||||
@defopt major-mode
|
||||
The buffer-local value of this variable holds the major mode
|
||||
currently active. The default value of this variable holds the
|
||||
default major mode for new buffers. The standard default value is
|
||||
@code{fundamental-mode}.
|
||||
|
||||
If the default value of @code{major-mode} is @code{nil}, Emacs uses
|
||||
the (previously) current buffer's major mode as the default major mode
|
||||
of a new buffer. However, if that major mode symbol has a @code{mode-class}
|
||||
property with value @code{special}, then it is not used for new buffers;
|
||||
Fundamental mode is used instead. The modes that have this property are
|
||||
those such as Dired and Rmail that are useful only with text that has
|
||||
been specially prepared.
|
||||
@end defopt
|
||||
|
||||
@defun set-buffer-major-mode buffer
|
||||
This function sets the major mode of @var{buffer} to the default value of
|
||||
@code{major-mode}; if that is @code{nil}, it uses the
|
||||
|
@ -740,38 +679,30 @@ init file.)
|
|||
@cindex help for major mode
|
||||
@cindex documentation for major mode
|
||||
|
||||
The @code{describe-mode} function is used to provide information
|
||||
about major modes. It is normally called with @kbd{C-h m}. The
|
||||
@code{describe-mode} function uses the value of @code{major-mode},
|
||||
which is why every major mode function needs to set the
|
||||
@code{major-mode} variable.
|
||||
The @code{describe-mode} function is provides information about major
|
||||
modes. It is normally bound to @kbd{C-h m}. It uses the value of the
|
||||
variable @code{major-mode} (@pxref{Major Modes}), which is why every
|
||||
major mode command needs to set that variable.
|
||||
|
||||
@deffn Command describe-mode
|
||||
This function displays the documentation of the current major mode.
|
||||
|
||||
The @code{describe-mode} function calls the @code{documentation}
|
||||
function using the value of @code{major-mode} as an argument. Thus, it
|
||||
displays the documentation string of the major mode function.
|
||||
displays the documentation string of the major mode command.
|
||||
(@xref{Accessing Documentation}.)
|
||||
@end deffn
|
||||
|
||||
@defvar major-mode
|
||||
This buffer-local variable holds the symbol for the current buffer's
|
||||
major mode. This symbol should have a function definition that is the
|
||||
command to switch to that major mode. The @code{describe-mode}
|
||||
function uses the documentation string of the function as the
|
||||
documentation of the major mode.
|
||||
@end defvar
|
||||
|
||||
@node Derived Modes
|
||||
@subsection Defining Derived Modes
|
||||
@cindex derived mode
|
||||
|
||||
The recommended way to define a new major mode is to derive it
|
||||
from an existing one using @code{define-derived-mode}. If there is no
|
||||
closely related mode, you can inherit from @code{text-mode},
|
||||
@code{special-mode}, @code{prog-mode}, or in the worst case
|
||||
@code{fundamental-mode}.
|
||||
The recommended way to define a new major mode is to derive it from an
|
||||
existing one using @code{define-derived-mode}. If there is no closely
|
||||
related mode, you should inherit from either @code{text-mode},
|
||||
@code{special-mode}, or @code{prog-mode}. @xref{Basic Major Modes}. If
|
||||
none of these are suitable, you can inherit from @code{fundamental-mode}
|
||||
(@pxref{Major Modes}).
|
||||
|
||||
@defmac define-derived-mode variant parent name docstring keyword-args@dots{} body@dots{}
|
||||
This macro defines @var{variant} as a major mode command, using
|
||||
|
@ -872,6 +803,64 @@ Do not write an @code{interactive} spec in the definition;
|
|||
@code{define-derived-mode} does that automatically.
|
||||
@end defmac
|
||||
|
||||
@defun derived-mode-p &rest modes
|
||||
This function returns non-@code{nil} if the current major mode is
|
||||
derived from any of the major modes given by the symbols @var{modes}.
|
||||
@end defun
|
||||
|
||||
@node Basic Major Modes
|
||||
@subsection Basic Major Modes
|
||||
|
||||
Apart from Fundamental mode, there are three major modes that other
|
||||
major modes commonly derive from: Text mode, Prog mode, and Special
|
||||
mode. While Text mode is useful in its own right (e.g. for editing
|
||||
files ending in @file{.txt}), Prog mode and Special mode exist mainly to
|
||||
let other modes derive from them.
|
||||
|
||||
@vindex prog-mode-hook
|
||||
As far as possible, new major modes should be derived, either directly
|
||||
or indirectly, from one of these three modes. One reason is that this
|
||||
allows users to customize a single mode hook
|
||||
(e.g. @code{prog-mode-hook}) for an entire family of relevant modes
|
||||
(e.g. all programming language modes).
|
||||
|
||||
@deffn Command text-mode
|
||||
Text mode is a major mode for editing human languages. It defines the
|
||||
@samp{"} and @samp{\} characters as having punctuation syntax
|
||||
(@pxref{Syntax Class Table}), and binds @kbd{M-@key{TAB}} to
|
||||
@code{ispell-complete-word} (@pxref{Spelling,,, emacs, The GNU Emacs
|
||||
Manual}).
|
||||
|
||||
An example of a major mode derived from Text mode is HTML mode.
|
||||
@xref{HTML Mode,,SGML and HTML Modes, emacs, The GNU Emacs Manual}.
|
||||
@end deffn
|
||||
|
||||
@deffn Command prog-mode
|
||||
Prog mode is a basic major mode for buffers containing programming
|
||||
language source code. Most of the programming language major modes
|
||||
built into Emacs are derived from it.
|
||||
|
||||
Prog mode binds @code{parse-sexp-ignore-comments} to @code{t}
|
||||
(@pxref{Motion via Parsing}) and @code{bidi-paragraph-direction} to
|
||||
@code{left-to-right} (@pxref{Bidirectional Display}).
|
||||
@end deffn
|
||||
|
||||
@deffn Command special-mode
|
||||
Special mode is a basic major mode for buffers containing text that is
|
||||
produced specially by Emacs, rather than from a file. Major modes
|
||||
derived from Special mode are given a @code{mode-class} property of
|
||||
@code{special} (@pxref{Major Mode Conventions}).
|
||||
|
||||
Special mode sets the buffer to read-only. Its keymap defines several
|
||||
common bindings, including @kbd{q} for @code{quit-window}, @kbd{z} for
|
||||
@code{kill-this-buffer}, and @kbd{g} for @code{revert-buffer}
|
||||
(@pxref{Reverting}).
|
||||
|
||||
An example of a major mode derived from Special mode is Buffer Menu
|
||||
mode, which is used by the @samp{*Buffer List*} buffer. @xref{List
|
||||
Buffers,,Listing Existing Buffers, emacs, The GNU Emacs Manual}.
|
||||
@end deffn
|
||||
|
||||
@node Generic Modes
|
||||
@subsection Generic Modes
|
||||
@cindex generic mode
|
||||
|
@ -916,7 +905,7 @@ before it runs the mode hook variable @code{@var{mode}-hook}.
|
|||
@node Mode Hooks
|
||||
@subsection Mode Hooks
|
||||
|
||||
Every major mode function should finish by running its mode hook and
|
||||
Every major mode command should finish by running its mode hook and
|
||||
the mode-independent normal hook @code{after-change-major-mode-hook}.
|
||||
It does this by calling @code{run-mode-hooks}. If the major mode is a
|
||||
derived mode, that is if it calls another major mode (the parent mode)
|
||||
|
@ -961,7 +950,7 @@ construct.
|
|||
|
||||
@defvar after-change-major-mode-hook
|
||||
This is a normal hook run by @code{run-mode-hooks}. It is run at the
|
||||
very end of every properly-written major mode function.
|
||||
very end of every properly-written major mode command.
|
||||
@end defvar
|
||||
|
||||
@node Example Major Modes
|
||||
|
@ -1189,8 +1178,8 @@ And here is the code to set up the keymap for Lisp mode:
|
|||
@end group
|
||||
@end smallexample
|
||||
|
||||
Finally, here is the complete major mode function definition for
|
||||
Lisp mode.
|
||||
Finally, here is the complete major mode command definition for Lisp
|
||||
mode.
|
||||
|
||||
@smallexample
|
||||
@group
|
||||
|
@ -2747,10 +2736,10 @@ highlighting patterns. See the variables
|
|||
@code{c-font-lock-extra-types}, @code{c++-font-lock-extra-types},
|
||||
and @code{java-font-lock-extra-types}, for example.
|
||||
|
||||
@strong{Warning:} major mode functions must not call
|
||||
@strong{Warning:} major mode commands must not call
|
||||
@code{font-lock-add-keywords} under any circumstances, either directly
|
||||
or indirectly, except through their mode hooks. (Doing so would lead
|
||||
to incorrect behavior for some minor modes.) They should set up their
|
||||
or indirectly, except through their mode hooks. (Doing so would lead to
|
||||
incorrect behavior for some minor modes.) They should set up their
|
||||
rules for search-based fontification by setting
|
||||
@code{font-lock-keywords}.
|
||||
@end defun
|
||||
|
|
|
@ -369,6 +369,12 @@ replacing each @samp{_} character with a dash @samp{-}. For example,
|
|||
@code{canonical-combining-class}. However, sometimes we shorten the
|
||||
names to make their use easier.
|
||||
|
||||
@cindex unassigned character codepoints
|
||||
Some codepoints are left @dfn{unassigned} by the
|
||||
@acronym{UCD}---they don't correspond to any character. The Unicode
|
||||
Standard defines default values of properties for such codepoints;
|
||||
they are mentioned below for each property.
|
||||
|
||||
Here is the full list of value types for all the character
|
||||
properties that Emacs knows about:
|
||||
|
||||
|
@ -376,22 +382,31 @@ properties that Emacs knows about:
|
|||
@item name
|
||||
Corresponds to the @code{Name} Unicode property. The value is a
|
||||
string consisting of upper-case Latin letters A to Z, digits, spaces,
|
||||
and hyphen @samp{-} characters.
|
||||
and hyphen @samp{-} characters. For unassigned codepoints, the value
|
||||
is an empty string.
|
||||
|
||||
@cindex unicode general category
|
||||
@item general-category
|
||||
Corresponds to the @code{General_Category} Unicode property. The
|
||||
value is a symbol whose name is a 2-letter abbreviation of the
|
||||
character's classification.
|
||||
character's classification. For unassigned codepoints, the value
|
||||
is @code{Cn}.
|
||||
|
||||
@item canonical-combining-class
|
||||
Corresponds to the @code{Canonical_Combining_Class} Unicode property.
|
||||
The value is an integer number.
|
||||
The value is an integer number. For unassigned codepoints, the value
|
||||
is zero.
|
||||
|
||||
@cindex bidirectional class of characters
|
||||
@item bidi-class
|
||||
Corresponds to the Unicode @code{Bidi_Class} property. The value is a
|
||||
symbol whose name is the Unicode @dfn{directional type} of the
|
||||
character.
|
||||
character. Emacs uses this property when it reorders bidirectional
|
||||
text for display (@pxref{Bidirectional Display}). For unassigned
|
||||
codepoints, the value depends on the code blocks to which the
|
||||
codepoint belongs: most unassigned codepoints get the value of
|
||||
@code{L} (strong L), but some get values of @code{AL} (Arabic letter)
|
||||
or @code{R} (strong R).
|
||||
|
||||
@item decomposition
|
||||
Corresponds to the Unicode @code{Decomposition_Type} and
|
||||
|
@ -403,19 +418,22 @@ Note that the Unicode spec writes these tag names inside
|
|||
brackets; e.g., Unicode specifies @samp{<small>} where Emacs uses
|
||||
@samp{small}.
|
||||
}; the other elements are characters that give the compatibility
|
||||
decomposition sequence of this character.
|
||||
decomposition sequence of this character. For unassigned codepoints,
|
||||
the value is the character itself.
|
||||
|
||||
@item decimal-digit-value
|
||||
Corresponds to the Unicode @code{Numeric_Value} property for
|
||||
characters whose @code{Numeric_Type} is @samp{Digit}. The value is an
|
||||
integer number.
|
||||
integer number. For unassigned codepoints, the value is @code{nil},
|
||||
which means @acronym{NaN}, or ``not-a-number''.
|
||||
|
||||
@item digit-value
|
||||
Corresponds to the Unicode @code{Numeric_Value} property for
|
||||
characters whose @code{Numeric_Type} is @samp{Decimal}. The value is
|
||||
an integer number. Examples of such characters include compatibility
|
||||
subscript and superscript digits, for which the value is the
|
||||
corresponding number.
|
||||
corresponding number. For unassigned codepoints, the value is
|
||||
@code{nil}, which means @acronym{NaN}.
|
||||
|
||||
@item numeric-value
|
||||
Corresponds to the Unicode @code{Numeric_Value} property for
|
||||
|
@ -424,33 +442,53 @@ this property is an integer or a floating-point number. Examples of
|
|||
characters that have this property include fractions, subscripts,
|
||||
superscripts, Roman numerals, currency numerators, and encircled
|
||||
numbers. For example, the value of this property for the character
|
||||
@code{U+2155} (@sc{vulgar fraction one fifth}) is @code{0.2}.
|
||||
@code{U+2155} (@sc{vulgar fraction one fifth}) is @code{0.2}. For
|
||||
unassigned codepoints, the value is @code{nil}, which means
|
||||
@acronym{NaN}.
|
||||
|
||||
@cindex mirroring of characters
|
||||
@item mirrored
|
||||
Corresponds to the Unicode @code{Bidi_Mirrored} property. The value
|
||||
of this property is a symbol, either @code{Y} or @code{N}.
|
||||
of this property is a symbol, either @code{Y} or @code{N}. For
|
||||
unassigned codepoints, the value is @code{N}.
|
||||
|
||||
@item mirroring
|
||||
Corresponds to the Unicode @code{Bidi_Mirroring_Glyph} property. The
|
||||
value of this property is a character whose glyph represents the
|
||||
mirror image of the character's glyph, or @code{nil} if there's no
|
||||
defined mirroring glyph. All the characters whose @code{mirrored}
|
||||
property is @code{N} have @code{nil} as their @code{mirroring}
|
||||
property; however, some characters whose @code{mirrored} property is
|
||||
@code{Y} also have @code{nil} for @code{mirroring}, because no
|
||||
appropriate characters exist with mirrored glyphs. Emacs uses this
|
||||
property to display mirror images of characters when appropriate
|
||||
(@pxref{Bidirectional Display}). For unassigned codepoints, the value
|
||||
is @code{nil}.
|
||||
|
||||
@item old-name
|
||||
Corresponds to the Unicode @code{Unicode_1_Name} property. The value
|
||||
is a string.
|
||||
is a string. For unassigned codepoints, the value is an empty string.
|
||||
|
||||
@item iso-10646-comment
|
||||
Corresponds to the Unicode @code{ISO_Comment} property. The value is
|
||||
a string.
|
||||
a string. For unassigned codepoints, the value is an empty string.
|
||||
|
||||
@item uppercase
|
||||
Corresponds to the Unicode @code{Simple_Uppercase_Mapping} property.
|
||||
The value of this property is a single character.
|
||||
The value of this property is a single character. For unassigned
|
||||
codepoints, the value is @code{nil}, which means the character itself.
|
||||
|
||||
@item lowercase
|
||||
Corresponds to the Unicode @code{Simple_Lowercase_Mapping} property.
|
||||
The value of this property is a single character.
|
||||
The value of this property is a single character. For unassigned
|
||||
codepoints, the value is @code{nil}, which means the character itself.
|
||||
|
||||
@item titlecase
|
||||
Corresponds to the Unicode @code{Simple_Titlecase_Mapping} property.
|
||||
@dfn{Title case} is a special form of a character used when the first
|
||||
character of a word needs to be capitalized. The value of this
|
||||
property is a single character.
|
||||
property is a single character. For unassigned codepoints, the value
|
||||
is @code{nil}, which means the character itself.
|
||||
@end table
|
||||
|
||||
@defun get-char-code-property char propname
|
||||
|
|
|
@ -597,6 +597,7 @@ FOO ; @r{A symbol named @samp{FOO}, different from @samp{foo}.}
|
|||
@end group
|
||||
@end example
|
||||
|
||||
@cindex @samp{##} read syntax
|
||||
@ifinfo
|
||||
@c This uses ``colon'' instead of a literal `:' because Info cannot
|
||||
@c cope with a `:' in a menu
|
||||
|
@ -605,9 +606,12 @@ FOO ; @r{A symbol named @samp{FOO}, different from @samp{foo}.}
|
|||
@ifnotinfo
|
||||
@cindex @samp{#:} read syntax
|
||||
@end ifnotinfo
|
||||
Normally the Lisp reader interns all symbols (@pxref{Creating
|
||||
Symbols}). To prevent interning, you can write @samp{#:} before the
|
||||
name of the symbol.
|
||||
As an exception to the rule that a symbol's name serves as its
|
||||
printed representation, @samp{##} is the printed representation for an
|
||||
interned symbol whose name is an empty string. Furthermore,
|
||||
@samp{#:@var{foo}} is the printed representation for an uninterned
|
||||
symbol whose name is @var{foo}. (Normally, the Lisp reader interns
|
||||
all symbols; @pxref{Creating Symbols}.)
|
||||
|
||||
@node Sequence Type
|
||||
@subsection Sequence Types
|
||||
|
|
|
@ -544,10 +544,11 @@ parent process normally resumes control. The low-level primitive for
|
|||
killing Emacs is @code{kill-emacs}.
|
||||
|
||||
@deffn Command kill-emacs &optional exit-data
|
||||
This command exits the Emacs process and kills it.
|
||||
This command calls the hook @code{kill-emacs-hook}, then exits the
|
||||
Emacs process and kills it.
|
||||
|
||||
If @var{exit-data} is an integer, then it is used as the exit status
|
||||
of the Emacs process. (This is useful primarily in batch operation; see
|
||||
If @var{exit-data} is an integer, that is used as the exit status of
|
||||
the Emacs process. (This is useful primarily in batch operation; see
|
||||
@ref{Batch Mode}.)
|
||||
|
||||
If @var{exit-data} is a string, its contents are stuffed into the
|
||||
|
@ -555,35 +556,44 @@ terminal input buffer so that the shell (or whatever program next reads
|
|||
input) can read them.
|
||||
@end deffn
|
||||
|
||||
All the information in the Emacs process, aside from files that have
|
||||
been saved, is lost when the Emacs process is killed. Because killing
|
||||
Emacs inadvertently can lose a lot of work, Emacs queries for
|
||||
confirmation before actually terminating if you have buffers that need
|
||||
saving or subprocesses that are running. This is done in the function
|
||||
@code{save-buffers-kill-emacs}, the higher level function from which
|
||||
@code{kill-emacs} is usually called.
|
||||
|
||||
@defvar kill-emacs-query-functions
|
||||
After asking the standard questions, @code{save-buffers-kill-emacs}
|
||||
calls the functions in the list @code{kill-emacs-query-functions}, in
|
||||
order of appearance, with no arguments. These functions can ask for
|
||||
additional confirmation from the user. If any of them returns
|
||||
@code{nil}, @code{save-buffers-kill-emacs} does not kill Emacs, and
|
||||
does not run the remaining functions in this hook. Calling
|
||||
@code{kill-emacs} directly does not run this hook.
|
||||
@end defvar
|
||||
@cindex SIGTERM
|
||||
@cindex SIGHUP
|
||||
@cindex SIGINT
|
||||
@cindex operating system signal
|
||||
The @code{kill-emacs} function is normally called via the
|
||||
higher-level command @kbd{C-x C-c}
|
||||
(@code{save-buffers-kill-terminal}). @xref{Exiting,,, emacs, The GNU
|
||||
Emacs Manual}. It is also called automatically if Emacs receives a
|
||||
@code{SIGTERM} or @code{SIGHUP} operating system signal (e.g. when the
|
||||
controlling terminal is disconnected), or if it receives a
|
||||
@code{SIGINT} signal while running in batch mode (@pxref{Batch Mode}).
|
||||
|
||||
@defvar kill-emacs-hook
|
||||
This variable is a normal hook; once @code{save-buffers-kill-emacs} is
|
||||
finished with all file saving and confirmation, it calls
|
||||
@code{kill-emacs} which runs the functions in this hook.
|
||||
This normal hook is run by @code{kill-emacs}, before it kills Emacs.
|
||||
|
||||
@code{kill-emacs} may be invoked directly (that is not via
|
||||
@code{save-buffers-kill-emacs}) if the terminal is disconnected, or in
|
||||
similar situations where interaction with the user is not possible.
|
||||
Thus, if your hook needs to interact with the user, put it on
|
||||
@code{kill-emacs-query-functions}; if it needs to run regardless of
|
||||
how Emacs is killed, put it on @code{kill-emacs-hook}.
|
||||
Because @code{kill-emacs} can be called in situations where user
|
||||
interaction is impossible (e.g. when the terminal is disconnected),
|
||||
functions on this hook should not attempt to interact with the user.
|
||||
If you want to interact with the user when Emacs is shutting down, use
|
||||
@code{kill-emacs-query-functions}, described below.
|
||||
@end defvar
|
||||
|
||||
When Emacs is killed, all the information in the Emacs process,
|
||||
aside from files that have been saved, is lost. Because killing Emacs
|
||||
inadvertently can lose a lot of work, the
|
||||
@code{save-buffers-kill-terminal} command queries for confirmation if
|
||||
you have buffers that need saving or subprocesses that are running.
|
||||
It also runs the abnormal hook @code{kill-emacs-query-functions}:
|
||||
|
||||
@defvar kill-emacs-query-functions
|
||||
When @code{save-buffers-kill-terminal} is killing Emacs, it calls the
|
||||
functions in this hook, after asking the standard questions and before
|
||||
calling @code{kill-emacs}. The functions are called in order of
|
||||
appearance, with no arguments. Each function can ask for additional
|
||||
confirmation from the user. If any of them returns @code{nil},
|
||||
@code{save-buffers-kill-emacs} does not kill Emacs, and does not run
|
||||
the remaining functions in this hook. Calling @code{kill-emacs}
|
||||
directly does not run this hook.
|
||||
@end defvar
|
||||
|
||||
@node Suspending Emacs
|
||||
|
@ -1143,6 +1153,18 @@ get with the function @code{file-attributes}.
|
|||
@xref{Definition of file-attributes}.
|
||||
@end defun
|
||||
|
||||
@defun float-time &optional time-value
|
||||
This function returns the current time as a floating-point number of
|
||||
seconds since the epoch. The argument @var{time-value}, if given,
|
||||
specifies a time to convert instead of the current time. The argument
|
||||
should have the same form as for @code{current-time-string} (see
|
||||
above). Thus, it accepts the output of @code{current-time} and
|
||||
@code{file-attributes} (@pxref{Definition of file-attributes}).
|
||||
|
||||
@emph{Warning}: Since the result is floating point, it may not be
|
||||
exact. Do not use this function if precise time stamps are required.
|
||||
@end defun
|
||||
|
||||
@defun current-time-zone &optional time-value
|
||||
This function returns a list describing the time zone that the user is
|
||||
in.
|
||||
|
@ -1165,25 +1187,11 @@ times obtained from @code{current-time} (see above) and from
|
|||
@code{file-attributes}. @xref{Definition of file-attributes}.
|
||||
@end defun
|
||||
|
||||
@defun set-time-zone-rule tz
|
||||
This function specifies the local time zone according to @var{tz}. If
|
||||
@var{tz} is @code{nil}, that means to use an implementation-defined
|
||||
default time zone. If @var{tz} is @code{t}, that means to use
|
||||
Universal Time. Otherwise, @var{tz} should be a string specifying a
|
||||
time zone rule.
|
||||
@end defun
|
||||
|
||||
@defun float-time &optional time-value
|
||||
This function returns the current time as a floating-point number of
|
||||
seconds since the epoch. The argument @var{time-value}, if given,
|
||||
specifies a time to convert instead of the current time. The argument
|
||||
should have the same form as for @code{current-time-string} (see
|
||||
above). Thus, it accepts the output of @code{current-time} and
|
||||
@code{file-attributes} (@pxref{Definition of file-attributes}).
|
||||
|
||||
@emph{Warning}: Since the result is floating point, it may not be
|
||||
exact. Do not use this function if precise time stamps are required.
|
||||
@end defun
|
||||
The current time zone is determined by the @samp{TZ} environment
|
||||
variable. @xref{System Environment}. For example, you can tell Emacs
|
||||
to use universal time with @code{(setenv "TZ" "UTC0")}. If @samp{TZ}
|
||||
is not in the environment, Emacs uses a platform-dependent default
|
||||
time zone.
|
||||
|
||||
@node Time Conversion
|
||||
@section Time Conversion
|
||||
|
|
|
@ -717,11 +717,15 @@ the characters that stand for them.
|
|||
@cindex @samp{\S} in regexp
|
||||
matches any character whose syntax is not @var{code}.
|
||||
|
||||
@cindex category, regexp search for
|
||||
@item \c@var{c}
|
||||
matches any character whose category is @var{c}. Here @var{c} is a
|
||||
character that represents a category: thus, @samp{c} for Chinese
|
||||
characters or @samp{g} for Greek characters in the standard category
|
||||
table.
|
||||
table. You can see the list of all the currently defined categories
|
||||
with @kbd{M-x describe-categories @key{RET}}. You can also define
|
||||
your own categories in addition to the standard ones using the
|
||||
@code{define-category} function (@pxref{Categories}).
|
||||
|
||||
@item \C@var{c}
|
||||
matches any character whose category is not @var{c}.
|
||||
|
|
|
@ -1084,6 +1084,24 @@ defaults to the current buffer's category table.
|
|||
@defun define-category char docstring &optional table
|
||||
This function defines a new category, with name @var{char} and
|
||||
documentation @var{docstring}, for the category table @var{table}.
|
||||
|
||||
Here's an example of defining a new category for characters that have
|
||||
strong right-to-left directionality (@pxref{Bidirectional Display})
|
||||
and using it in a special category table:
|
||||
|
||||
@example
|
||||
(defvar special-category-table-for-bidi
|
||||
(let ((category-table (make-category-table))
|
||||
(uniprop-table (unicode-property-table-internal 'bidi-class)))
|
||||
(define-category ?R "Characters of bidi-class R, AL, or RLO"
|
||||
category-table)
|
||||
(map-char-table
|
||||
#'(lambda (key val)
|
||||
(if (memq val '(R AL RLO))
|
||||
(modify-category-entry key ?R category-table)))
|
||||
uniprop-table)
|
||||
category-table))
|
||||
@end example
|
||||
@end defun
|
||||
|
||||
@defun category-docstring category &optional table
|
||||
|
|
|
@ -3015,6 +3015,11 @@ near the character. For this purpose, ``near'' means that all text
|
|||
between the character and where the mouse is have the same
|
||||
@code{mouse-face} property value.
|
||||
|
||||
Emacs ignores all face attributes from the @code{mouse-face} property
|
||||
that alter the text size (e.g. @code{:height}, @code{:weight}, and
|
||||
@code{:slant}). Those attributes are always the same as for the
|
||||
unhighlighted text.
|
||||
|
||||
@item fontified
|
||||
@kindex fontified @r{(text property)}
|
||||
This property says whether the text is ready for display. If
|
||||
|
|
|
@ -786,8 +786,7 @@ Major and Minor Modes
|
|||
* Major Modes:: Defining major modes.
|
||||
* Minor Modes:: Defining minor modes.
|
||||
* Mode Line Format:: Customizing the text that appears in the mode line.
|
||||
* Imenu:: How a mode can provide a menu
|
||||
of definitions in the buffer.
|
||||
* Imenu:: Providing a menu of definitions made in a buffer.
|
||||
* Font Lock Mode:: How modes can highlight text according to syntax.
|
||||
* Desktop Save Mode:: How modes can have buffer state saved between
|
||||
Emacs sessions.
|
||||
|
@ -799,15 +798,15 @@ Hooks
|
|||
|
||||
Major Modes
|
||||
|
||||
* Major Mode Basics::
|
||||
* Major Mode Conventions:: Coding conventions for keymaps, etc.
|
||||
* Auto Major Mode:: How Emacs chooses the major mode automatically.
|
||||
* Mode Help:: Finding out how to use a mode.
|
||||
* Derived Modes:: Defining a new major mode based on another major
|
||||
mode.
|
||||
* Basic Major Modes:: Modes that other modes are often derived from.
|
||||
* Generic Modes:: Defining a simple major mode that supports
|
||||
comment syntax and Font Lock mode.
|
||||
* Mode Hooks:: Hooks run at the end of major mode functions.
|
||||
* Mode Hooks:: Hooks run at the end of major mode commands.
|
||||
* Example Major Modes:: Text mode and Lisp modes.
|
||||
|
||||
Minor Modes
|
||||
|
@ -1330,6 +1329,7 @@ Faces
|
|||
* Face Remapping:: Remapping faces to alternative definitions.
|
||||
* Face Functions:: How to define and examine faces.
|
||||
* Auto Faces:: Hook for automatic face assignment.
|
||||
* Basic Faces:: Faces that are defined by default.
|
||||
* Font Selection:: Finding the best available font for a face.
|
||||
* Font Lookup:: Looking up the names of available fonts
|
||||
and information about them.
|
||||
|
|
|
@ -785,8 +785,7 @@ Major and Minor Modes
|
|||
* Major Modes:: Defining major modes.
|
||||
* Minor Modes:: Defining minor modes.
|
||||
* Mode Line Format:: Customizing the text that appears in the mode line.
|
||||
* Imenu:: How a mode can provide a menu
|
||||
of definitions in the buffer.
|
||||
* Imenu:: Providing a menu of definitions made in a buffer.
|
||||
* Font Lock Mode:: How modes can highlight text according to syntax.
|
||||
* Desktop Save Mode:: How modes can have buffer state saved between
|
||||
Emacs sessions.
|
||||
|
@ -798,15 +797,15 @@ Hooks
|
|||
|
||||
Major Modes
|
||||
|
||||
* Major Mode Basics::
|
||||
* Major Mode Conventions:: Coding conventions for keymaps, etc.
|
||||
* Auto Major Mode:: How Emacs chooses the major mode automatically.
|
||||
* Mode Help:: Finding out how to use a mode.
|
||||
* Derived Modes:: Defining a new major mode based on another major
|
||||
mode.
|
||||
* Basic Major Modes:: Modes that other modes are often derived from.
|
||||
* Generic Modes:: Defining a simple major mode that supports
|
||||
comment syntax and Font Lock mode.
|
||||
* Mode Hooks:: Hooks run at the end of major mode functions.
|
||||
* Mode Hooks:: Hooks run at the end of major mode commands.
|
||||
* Example Major Modes:: Text mode and Lisp modes.
|
||||
|
||||
Minor Modes
|
||||
|
@ -1329,6 +1328,7 @@ Faces
|
|||
* Face Remapping:: Remapping faces to alternative definitions.
|
||||
* Face Functions:: How to define and examine faces.
|
||||
* Auto Faces:: Hook for automatic face assignment.
|
||||
* Basic Faces:: Faces that are defined by default.
|
||||
* Font Selection:: Finding the best available font for a face.
|
||||
* Font Lookup:: Looking up the names of available fonts
|
||||
and information about them.
|
||||
|
|
|
@ -1,27 +1,31 @@
|
|||
2011-07-28 Bastien Guerry <bzg@gnu.org>
|
||||
2011-08-15 Suvayu Ali <fatkasuvayu+linux@gmail.com> (tiny change)
|
||||
|
||||
* org.texi (Images in LaTeX export): rewrite.
|
||||
|
||||
2011-08-15 Bastien Guerry <bzg@gnu.org>
|
||||
|
||||
* org.texi (Using the mapping API): mention 'region as a possible
|
||||
scope for `org-map-entries'.
|
||||
|
||||
2011-07-28 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
2011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* org.texi (Visibility cycling): Document `org-copy-visible'.
|
||||
|
||||
2011-07-28 Bastien Guerry <bzg@gnu.org>
|
||||
2011-08-15 Bastien Guerry <bzg@gnu.org>
|
||||
|
||||
* org.texi (Template expansion): order template sequences in the
|
||||
proper order.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (eval): Expand discussion of the :eval header argument.
|
||||
|
||||
2011-07-28 Bastien Guerry <bzg@gnu.org>
|
||||
2011-08-15 Bastien Guerry <bzg@gnu.org>
|
||||
|
||||
* org.texi (Languages): Add Lilypond and Awk as supported
|
||||
languages.
|
||||
|
||||
2011-07-28 Achim Gratz <stromeko@nexgo.de>
|
||||
2011-08-15 Achim Gratz <stromeko@nexgo.de>
|
||||
|
||||
* org.texi: document that both CLOCK_INTO_DRAWER and
|
||||
LOG_INTO_DRAWER can be used to override the contents of variable
|
||||
|
@ -29,240 +33,250 @@
|
|||
|
||||
* org.texi: replace @xref->@pxref.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (Evaluating code blocks): Documenting the new option
|
||||
for inline call lines.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (Results of evaluation): More explicit about the
|
||||
mechanism through which interactive evaluation of code is
|
||||
performed.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (noweb-ref): New header argument documentation.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (Extracting source code): Documentation of the new
|
||||
org-babel-tangle-named-block-combination variable.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (Structure of code blocks): explicitly state that the
|
||||
behavior of multiple blocks of the same name is undefined
|
||||
|
||||
2011-07-28 Christian Egli <christian.egli@sbszh.ch>
|
||||
2011-08-15 Christian Egli <christian.egli@sbszh.ch>
|
||||
|
||||
* org.texi (TaskJuggler export): Modify the example to reflect the
|
||||
new effort durations.
|
||||
|
||||
2011-07-28 David Maus <dmaus@ictsoc.de>
|
||||
2011-08-15 David Maus <dmaus@ictsoc.de>
|
||||
|
||||
* org.texi (Images in LaTeX export): Escape curly brackets in
|
||||
LaTeX example.
|
||||
|
||||
2011-07-28 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
2011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* org.texi (The clock table): Document the :properties and
|
||||
:inherit-props arguments for the clocktable.
|
||||
|
||||
2011-07-28 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
2011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* org.texi (Tables in LaTeX export): Document specifying placement
|
||||
options for tables.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (Evaluating code blocks): More specific documentation
|
||||
about the different types of header arguments.
|
||||
|
||||
2011-07-28 Manuel Giraud <manuel.giraud@univ-nantes.fr>
|
||||
2011-08-15 Manuel Giraud <manuel.giraud@univ-nantes.fr>
|
||||
|
||||
* org.texi (Sitemap): Document `:sitemap-sans-extension' property.
|
||||
|
||||
2011-07-28 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
2011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* org.texi (Built-in table editor): Document the table field
|
||||
follow mode.
|
||||
|
||||
2011-07-28 Robert P. Goldman <rpgoldman@real-time.com>
|
||||
2011-08-15 Robert P. Goldman <rpgoldman@real-time.com>
|
||||
|
||||
* org.texi (Easy Templates): Document new template.
|
||||
|
||||
2011-07-28 Robert P. Goldman <rpgoldman@real-time.com>
|
||||
2011-08-15 Robert P. Goldman <rpgoldman@real-time.com>
|
||||
|
||||
* org.texi (Literal examples): Add a cross-reference from "Literal
|
||||
Examples" to "Easy Templates."
|
||||
|
||||
2011-07-28 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
2011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* org.texi (The clock table): Add link to match syntax.
|
||||
|
||||
2011-07-28 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
2011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* org.texi (Agenda commands): Document clock consistency checks.
|
||||
|
||||
2011-07-28 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
2011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* org.texi (Built-in table editor): Document that \vert represents
|
||||
a vertical bar in a table field.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (Literal examples): Link from "Markup" > "Literate
|
||||
Examples" to "Working with Source Code".
|
||||
|
||||
2011-07-28 Puneeth Chaganti <punchagan@gmail.com>
|
||||
2011-08-15 Puneeth Chaganti <punchagan@gmail.com>
|
||||
|
||||
* org.texi (Agenda commands): Doc for function option to bulk
|
||||
action.
|
||||
|
||||
2011-07-28 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
2011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* org.texi (Template expansion): Document new %<...> template
|
||||
escape.
|
||||
|
||||
2011-07-28 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
2011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* org.texi (Selective export): Document exclusion of any tasks
|
||||
from export.
|
||||
|
||||
2011-07-28 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
2011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* org.texi (Selective export): Document how to exclude DONE tasks
|
||||
from export.
|
||||
(Publishing options): Document the properties to be used to turn off
|
||||
export of DONE tasks.
|
||||
|
||||
2011-07-28 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
2011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* org.texi (The date/time prompt): Document date range protection.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (padline): Documentation of the new padline header
|
||||
argument.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (var): Adding "[" to list of characters triggering
|
||||
elisp evaluation.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (var): Documentation of Emacs Lisp evaluation during
|
||||
variable assignment.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (colnames): Reference indexing into variables, and note
|
||||
that colnames are *not* removed before indexing occurs.
|
||||
(rownames): Reference indexing into variables, and note that
|
||||
rownames are *not* removed before indexing occurs.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (var): Clarification of indexing into tabular
|
||||
variables.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (results): Documentation of the `:results wrap' header
|
||||
argument.
|
||||
|
||||
2011-07-28 Bastien Guerry <bzg@gnu.org>
|
||||
2011-08-15 Bastien Guerry <bzg@gnu.org>
|
||||
|
||||
* org.texi (LaTeX and PDF export): add a note about a limitation
|
||||
of the LaTeX export: the org file has to be properly structured.
|
||||
|
||||
2011-07-28 Bastien Guerry <bzg@gnu.org>
|
||||
2011-08-15 Bastien Guerry <bzg@gnu.org>
|
||||
|
||||
* org.texi (Dynamic blocks, Structure editing): Mention
|
||||
the function `org-narrow-to-block'.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (Languages): Updating list of code block supported
|
||||
languages.
|
||||
|
||||
2011-07-28 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
2011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* org.texi (Special properties): CATEGORY is a special property,
|
||||
but it may also used in the drawer.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (mkdirp): Documentation of the :mkdirp header argument.
|
||||
|
||||
2011-07-28 Puneeth Chaganti <punchagan@gmail.com>
|
||||
2011-08-15 Puneeth Chaganti <punchagan@gmail.com>
|
||||
|
||||
* org.texi (Include files): Document :lines.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (comments): Documentation of the ":comments noweb" code
|
||||
block header argument.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (Conflicts): Changed "yasnippets" to "yasnippet" and
|
||||
added extra whitespace around functions to be consistent with the
|
||||
rest of the section.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (Evaluating code blocks): Expanded discussion of
|
||||
#+call: line syntax.
|
||||
(Header arguments in function calls): Expanded discussion of
|
||||
#+call: line syntax.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (Evaluating code blocks): More explicit about how to
|
||||
pass variables to #+call lines.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (Results of evaluation): Link to the :results header
|
||||
argument list from the "Results of evaluation" section.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (Conflicts): Adding additional information about
|
||||
resolving org/yasnippet conflicts.
|
||||
|
||||
2011-07-28 David Maus <dmaus@ictsoc.de>
|
||||
2011-08-15 David Maus <dmaus@ictsoc.de>
|
||||
|
||||
* org.texi (Publishing options): Document style-include-scripts
|
||||
publishing project property.
|
||||
|
||||
2011-07-28 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
2011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* org.texi (Sparse trees): Document the next-error /
|
||||
previous-error functionality.
|
||||
|
||||
2011-07-28 Tom Dye <tsd@tsdye.com>
|
||||
2011-08-15 Tom Dye <tsd@tsdye.com>
|
||||
|
||||
* org.texi (cache): Improved documentation of code block caches.
|
||||
|
||||
2011-07-28 Tom Dye <tsd@tsdye.com>
|
||||
2011-08-15 Tom Dye <tsd@tsdye.com>
|
||||
|
||||
* org.texi (Code block specific header arguments): Documentation
|
||||
of multi-line header arguments.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (Code evaluation security): Add example for using a
|
||||
function.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* org.texi (Tables in LaTeX export): Documentation of new
|
||||
attr_latex options for tables.
|
||||
|
||||
2011-08-03 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* trampver.texi: Update release number.
|
||||
|
||||
2011-07-30 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
Sync with Tramp 2.2.2.
|
||||
|
||||
* trampver.texi: Update release number.
|
||||
|
||||
2011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* flymake.texi (Example -- Configuring a tool called via make):
|
||||
|
@ -274,15 +288,15 @@
|
|||
global keymap parent, which doesn't seem to be accurate
|
||||
(bug#7045).
|
||||
|
||||
2011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* org.texi (Special agenda views): Fix double quoting (bug#3509).
|
||||
|
||||
2010-07-10 Kevin Ryde <user42@zip.com.au>
|
||||
|
||||
* cl.texi (For Clauses): Add destructuring example processing an
|
||||
alist (bug#6596).
|
||||
|
||||
2011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* org.texi (Special agenda views): Fix double quoting (bug#3509).
|
||||
|
||||
2011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* ediff.texi (Major Entry Points): Remove mention of `require',
|
||||
|
|
2106
doc/misc/org.texi
2106
doc/misc/org.texi
File diff suppressed because it is too large
Load diff
|
@ -3,7 +3,7 @@
|
|||
% Load plain if necessary, i.e., if running under initex.
|
||||
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
|
||||
%
|
||||
\def\texinfoversion{2011-05-23.16}
|
||||
\def\texinfoversion{2011-08-15.20}
|
||||
%
|
||||
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
|
||||
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
||||
|
@ -9620,6 +9620,3 @@
|
|||
|
||||
@c vim:sw=2:
|
||||
|
||||
@ignore
|
||||
arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115
|
||||
@end ignore
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
@c In the Tramp CVS, the version number is auto-frobbed from
|
||||
@c configure.ac, so you should edit that file and run
|
||||
@c "autoconf && ./configure" to change the version number.
|
||||
@set trampver 2.2.2-pre
|
||||
@set trampver 2.2.3-pre
|
||||
|
||||
@c Other flags from configuration
|
||||
@set instprefix /usr/local
|
||||
|
|
|
@ -1,23 +1,50 @@
|
|||
2011-07-28 Andreas Schwab <schwab@linux-m68k.org>
|
||||
2011-08-30 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* NEWS: Document ## and #:.
|
||||
* MACHINES: Remove obsolete info and update a bit (Bug#9404).
|
||||
|
||||
2011-07-28 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
* PROBLEMS: Remove obsolete comment re Yellow Dog (Bug#9403).
|
||||
|
||||
2011-08-24 Steve Chapel <schapel@laptop.stevechapel.com> (tiny change)
|
||||
|
||||
* refcards/refcard.tex: Add a few more commands. (Bug#9343)
|
||||
|
||||
2011-08-22 Juri Linkov <juri@jurta.org>
|
||||
|
||||
* compilation.txt: Add more samples of output and non-output
|
||||
switches (bug#9319).
|
||||
|
||||
2011-08-19 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* themes/dichromacy-theme.el:
|
||||
* themes/wheatgrass-theme.el:
|
||||
* themes/tango-theme.el:
|
||||
* themes/tango-dark-theme.el: Add error, warning, and success
|
||||
faces.
|
||||
|
||||
2011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* refcards/orgcard.tex: Document `org-copy-visible'.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* refcards/orgcard.tex: Documentation of new Babel function.
|
||||
|
||||
2011-07-28 Eric Schulte <schulte.eric@gmail.com>
|
||||
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
|
||||
|
||||
* refcards/orgcard.tex: Adding line for org-babel-check-src-block.
|
||||
|
||||
2011-07-28 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
2011-08-15 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* refcards/orgcard.tex: Document key for clock consistency check.
|
||||
|
||||
2011-07-30 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* grammars: New directory.
|
||||
|
||||
2011-07-28 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* NEWS: Document ## and #:.
|
||||
|
||||
2011-07-18 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* charsets/GB180302.map: Update to 2005 edition.
|
||||
|
|
276
etc/MACHINES
276
etc/MACHINES
|
@ -24,227 +24,13 @@ file, and then edit the `configure' script to tell it which
|
|||
configuration name(s) should select your new machine description and
|
||||
system description files.
|
||||
|
||||
Some obsolete platforms are unsupported beginning with Emacs 23.1, see
|
||||
Some obsolete platforms are unsupported beginning with Emacs 23.1. See
|
||||
the list at the end of this file.
|
||||
|
||||
|
||||
** Alpha (DEC) running GNU/Linux (alpha-dec-linux-gnu)
|
||||
|
||||
DEC C compiler version 5.9 (DEC C V5.9-005 on Digital UNIX V4.0f)
|
||||
is reported to produce bogus binaries of Emacs 21.2 when the
|
||||
command-line switches "-O4 -arch ev6 -tune ev6" are used. Using
|
||||
just -O4 produces a good executable.
|
||||
|
||||
For 4.0 revision 564, and 4.0A and 4.0B, Emacs 20 seems to work
|
||||
with no special configuration options. However, if you use GCC as
|
||||
your compiler, you will need version 2.8.1 or later, as older
|
||||
versions fail to build with a message "Invalid dimension for the
|
||||
charset-ID 160".
|
||||
|
||||
** Apple Macintosh running Mac OS X
|
||||
|
||||
** Apple PowerPC Macintosh running GNU/Linux
|
||||
|
||||
** HP 9000 series 700 or 800 (Spectrum) (hppa1.0-hp-hpux or hppa1.1-hp-hpux)
|
||||
|
||||
Emacs 20 may work on HPUX 10. You need patch PHSS_6202 to install
|
||||
the Xaw and Xmu libraries. On HPUX 10.20 you may need to compile with GCC;
|
||||
when Emacs was compiled with HP's C compiler, HP92453-01 A.10.32.03,
|
||||
the subprocess features failed to work.
|
||||
|
||||
If you turn on the DSUSP character (delayed suspend), Emacs 19.26
|
||||
does not know how to turn it off on HPUX. You need to turn it off manually.
|
||||
|
||||
If you are running HP/UX release 8.0 or later, you need the optional
|
||||
"C/ANSI C" software in order to build Emacs (older releases of HP/UX
|
||||
do not require any special software). If the file "/etc/filesets/C"
|
||||
exists on your machine, you have this software, otherwise you do not.
|
||||
|
||||
** IBM RS/6000 (rs6000-ibm-aix*)
|
||||
|
||||
Emacs 19.26 is believed to work; its pretest was tested.
|
||||
|
||||
Compiling with the system's `cc' and CFLAGS containing `-O5' might
|
||||
fail because libXbsd isn't found. This is a compiler bug;
|
||||
re-configure Emacs so that it isn't compiled with `-O5'.
|
||||
|
||||
On AIX 4.3.x and 4.4, compiling with /bin/c89 fails because it
|
||||
treats certain warnings as errors. Use `cc' instead.
|
||||
|
||||
At last report, Emacs didn't run well on terminals. Informed
|
||||
persons say that the tty VMIN and VTIME settings have been
|
||||
corrupted; if you have a fix, please send it to us.
|
||||
|
||||
Compiling with -O using the IBM compiler has been known to make
|
||||
Emacs work incorrectly. There are reports that IBM compiler versions
|
||||
earlier than 1.03.00.02 fail even without -O.
|
||||
|
||||
As of 19.11, if you strip the Emacs executable, it ceases to work.
|
||||
|
||||
If anyone can fix the above problems, or confirm that they don't happen
|
||||
with certain versions of various programs, we would appreciate it.
|
||||
|
||||
** IBM System/390 running GNU/Linux (s390-*-linux-gnu)
|
||||
|
||||
As of Emacs 21.2, a 31-bit only version is supported on this system.
|
||||
|
||||
** Intel 386 (i386-*-freebsd, i386-*-linux-gnu,
|
||||
i386-*-cygwin, i386-*-msdos, i386-*-windowsnt.
|
||||
i386 can be replaced with i486, i586, or i686)
|
||||
|
||||
In the above configurations, * means that the manufacturer's name
|
||||
you specify does not matter, and you can use any name you like
|
||||
(but it should not contain any dashes or stars).
|
||||
|
||||
Use i386-*-linux-gnu for GNU/Linux systems; Emacs runs as of version 19.26.
|
||||
Use i386-*-cygwin for Cygwin; Emacs builds as of version 22.1, in both X11
|
||||
and non-X11 modes. (The Cygwin site has source and binaries for 21.2.)
|
||||
|
||||
On GNU/Linux systems, Emacs 19.23 was said to work properly with libc
|
||||
version 4.5.21, but not with 4.5.19.
|
||||
|
||||
On GNU/Linux, configure may fail to put these definitions in config.h:
|
||||
|
||||
#define HAVE_GETTIMEOFDAY
|
||||
#define HAVE_MKDIR
|
||||
#define HAVE_RMDIR
|
||||
#define HAVE_XSCREENNUMBEROFSCREEN
|
||||
|
||||
To work around the problem, add those definitions by hand.
|
||||
It is possible that this problem happens only with X11R6.
|
||||
Newer system versions have fixed it.
|
||||
|
||||
On NetBSD and FreeBSD, at one time, it was necessary to use
|
||||
GNU make, not the system's make. Assuming it's installed as gmake,
|
||||
do `gmake install MAKE=gmake'. However, more recently it is
|
||||
reported that using the system Make on NetBSD 1.3.1 works ok.
|
||||
|
||||
Note that use of Linux with GCC 2.4 and the DLL 4.4 libraries
|
||||
requires the experimental "net 2" network patches (no relation to
|
||||
Berkeley Net 2). There is a report that (some version of) Linux
|
||||
requires including `/usr/src/linux/include/linux' in buffer.c
|
||||
but no coherent explanation of why that might be so. If it is so,
|
||||
in current versions of Linux, something else should probably be changed.
|
||||
|
||||
You may find that adding -I/usr/X/include or -I/usr/netinclude or both
|
||||
to CFLAGS avoids compilation errors on certain systems.
|
||||
|
||||
Some versions convince sysdep.c to try to use `struct tchars'
|
||||
but define `struct tc' instead; add `#define tchars tc'
|
||||
to config.h to solve this problem.
|
||||
|
||||
** Iris 4D (mips-sgi-irix6.*)
|
||||
|
||||
Emacs 21.3 is reported to work on IRIX 6.5.x.
|
||||
|
||||
You can build a 64-bit executable (with larger maximum buffer size)
|
||||
on Irix 6.5 by specifying the 64-bit ABI using the `-64' compiler
|
||||
flag or otherwise (see cc(1)).
|
||||
|
||||
If compiling with GCC on Irix 6 yields an error "conflicting types
|
||||
for `initstate'", install GCC 2.95 or a newer version, and this
|
||||
problem should go away. It is possible that this problem results
|
||||
from upgrading the operating system without reinstalling GCC; so you
|
||||
could also try reinstalling the same version of GCC, and telling us
|
||||
whether that fixes the problem.
|
||||
|
||||
** Sun 4 (sparc), Sun 386 (sparc-sun-solaris2.*,
|
||||
i386-sun-solaris2.*, sparc*-*-linux-gnu)
|
||||
|
||||
To build a 32-bit Emacs (i.e. if you are having any sort of problem
|
||||
bootstrapping a 64-bit version), you can use the Sun Studio compiler
|
||||
and configure Emacs with:
|
||||
env CC="cc -xarch=v7" CFLAGS='' ./configure # on SPARC systems
|
||||
env CC="cc -xarch=386" CFLAGS='' ./configure # on x86 systems
|
||||
On Solaris 2.10, it is also possible to use /usr/sfw/bin/gcc to build
|
||||
a 32-bit version of Emacs. Just make sure you point ./configure to
|
||||
the right compiler:
|
||||
|
||||
env CC='/usr/sfw/bin/gcc -m32' ./configure
|
||||
|
||||
To build a 64-bit Emacs (with larger maximum buffer size and
|
||||
including large file support) on a Solaris system which supports
|
||||
64-bit executables, use the Sun compiler, configuring something like
|
||||
this (see the cc documentation for information on 64-bit
|
||||
compilation):
|
||||
|
||||
env CC="cc -xarch=v9" CFLAGS='' ./configure # on SPARC systems
|
||||
env CC="cc -xarch=amd64" CFLAGS='' ./configure # on x86 systems
|
||||
|
||||
As of version 2.95, GCC doesn't support the 64-bit ABI properly, but
|
||||
later releases may.
|
||||
|
||||
Some versions of Solaris 8 have a bug in their XIM (X Input Method)
|
||||
implementation which causes Emacs to dump core when one of several
|
||||
frames is closed. To avoid this, either install patch 108773-12
|
||||
(for Sparc) or 108874-12 (for x86), or configure Emacs with the
|
||||
`--with-xim=no' switch (you can use Leim input methods instead).
|
||||
|
||||
On Solaris 2.7, building Emacs with WorkShop Compilers 5.0 98/12/15
|
||||
C 5.0 failed, apparently with non-default CFLAGS, most probably due to
|
||||
compiler bugs. Using Sun Solaris 2.7 Sun WorkShop 6 update 1 C
|
||||
release was reported to work without problems. It worked OK on
|
||||
another system with Solaris 8 using apparently the same 5.0 compiler
|
||||
and the default CFLAGS.
|
||||
|
||||
Emacs 21.1 and 21.2 built with Sun's ProWorks PC3.0.1 compiler on
|
||||
Intel/Solaris 8 was reported to abort and dump core during startup.
|
||||
Using GCC or a newer SUN compiler (Sun WokShop 6 update 2 C 5.3
|
||||
2001/05/15) solves the problem.
|
||||
|
||||
Emacs 20.5 and later work on SPARC GNU/Linux with the 32-bit ABI.
|
||||
As of release 2.95, GCC doesn't work properly with the 64-bit ABI
|
||||
(applicable on UltraSPARC), but that isn't the default mode.
|
||||
|
||||
There are reports that using SunSoft cc with -xO4 -xdepend produces
|
||||
bad code for some part of Emacs.
|
||||
|
||||
Some people report that Emacs crashes immediately on startup when
|
||||
used with a non-X terminal, but we think this is due to compiling
|
||||
with GCC and failing to use GCC's "fixed" system header files.
|
||||
|
||||
Some Sun versions of X windows use the clipboard, not the selections,
|
||||
for transferring text between clients. The Cut, Paste and Copy items
|
||||
in the menu bar Edit menu work with the clipboard.
|
||||
|
||||
If you compile with Sun's ANSI compiler acc, you need additional options
|
||||
when linking temacs, such as
|
||||
/usr/lang/SC2.0.1/values-Xt.o -L/usr/lang/SC2.0.1/cg87 -L/usr/lang/SC2.0.1
|
||||
(those should be added just before the libraries) and you need to
|
||||
add -lansi just before -lc. The precise file names depend on the
|
||||
compiler version, so we cannot easily arrange to supply them.
|
||||
|
||||
On Solaris 2, you need to install patch 100947-02 to fix a system bug.
|
||||
Presumably this patch comes from Sun. You must alter the definition of
|
||||
LD_SWITCH_SYSTEM if your X11 libraries are not in /usr/openwin/lib.
|
||||
You must make sure that /usr/ucblib is not in your LD_LIBRARY_PATH.
|
||||
|
||||
On Solaris, do not use /usr/ucb/cc. Use /opt/SUNWspro/bin/cc. Make
|
||||
sure that /usr/ccs/bin and /opt/SUNWspro/bin are in your PATH before
|
||||
/usr/ucb. (Most free software packages have the same requirement on
|
||||
Solaris.) With this compiler, use `/opt/SUNWspro/bin/cc -E' as the
|
||||
preprocessor. If this inserts extra whitespace into its output (see
|
||||
the PROBLEMS file) then add the option `-Xs'.
|
||||
|
||||
If you have trouble using open-network-stream, get the distribution
|
||||
of `bind' (the BSD name-server), build libresolv.a, and link Emacs
|
||||
with -lresolv, by editing LIBRESOLV in src/Makefile. This problem is
|
||||
due to obsolete software in the nonshared standard library.
|
||||
|
||||
Note that Emacs on a Sun is not really as big as it looks. As
|
||||
dumped, it includes around 200k of zeros between the original text
|
||||
section and the original data section (now remapped as part of the
|
||||
text). These are never swapped in.
|
||||
|
||||
** SuperH (sh[34]*-*-linux-gnu)
|
||||
|
||||
Emacs 23.0.60 was reported to work on GNU/Linux (October 2008).
|
||||
Tested on a little-endian sh4 system (cpu type SH7751R) running
|
||||
Gentoo Linux 2008.0.
|
||||
|
||||
* Here are notes about some of the systems supported:
|
||||
|
||||
** Linux (actually GNU/Linux)
|
||||
** GNU/Linux
|
||||
|
||||
Most of the complete systems which use the Linux kernel are close
|
||||
enough to the GNU system to be considered variant GNU systems. We
|
||||
|
@ -263,31 +49,63 @@ the list at the end of this file.
|
|||
people to write more free software. See the file LINUX-GNU in this
|
||||
directory for more explanation.
|
||||
|
||||
*** 64-bit GNU/Linux
|
||||
|
||||
No special procedures should be needed to build a 64-bit Emacs on a
|
||||
64-bit GNU/Linux system. To build a 32-bit Emacs, first ensure that
|
||||
the necessary 32-bit system libraries and include files are
|
||||
installed. Then use:
|
||||
|
||||
./configure CC='gcc -m32' --build=i386-linux-gnu \
|
||||
--x-libraries=/usr/X11R6/lib
|
||||
|
||||
(using the location of the 32-bit X libraries on your system).
|
||||
|
||||
*** IBM System/390 running GNU/Linux (s390-*-linux-gnu)
|
||||
|
||||
As of Emacs 21.2, a 31-bit only version is supported on this system.
|
||||
|
||||
*** SuperH (sh[34]*-*-linux-gnu)
|
||||
|
||||
Emacs 23.0.60 was reported to work on GNU/Linux (October 2008).
|
||||
This was tested on a little-endian sh4 system (cpu type SH7751R) running
|
||||
Gentoo Linux 2008.0.
|
||||
|
||||
** Mac OS X
|
||||
|
||||
For installation instructions see the file nextstep/INSTALL.
|
||||
|
||||
** MSDOS
|
||||
** Microsoft Windows
|
||||
|
||||
For installation on MSDOS, see the file msdos/INSTALL.
|
||||
For installation instructions see the file nt/INSTALL.
|
||||
|
||||
** MS-DOS
|
||||
|
||||
For installation instructions see the file msdos/INSTALL.
|
||||
See the "MS-DOS" chapter of the manual for information about using
|
||||
Emacs on MSDOS.
|
||||
Emacs on MS-DOS.
|
||||
|
||||
** MS-Windows NT/95/98/ME/2000
|
||||
** Solaris
|
||||
|
||||
For installation on all versions of the MS-Windows platform, see the
|
||||
file nt/INSTALL.
|
||||
On Solaris it is also possible to use either GCC or Solaris Studio
|
||||
to build Emacs, by pointing ./configure to the right compiler:
|
||||
|
||||
** X86_64 GNU/Linux
|
||||
./configure CC='/usr/sfw/bin/gcc' # GCC
|
||||
./configure CC='cc' # Solaris Studio
|
||||
|
||||
No special procedures should be needed to build a 64-bit Emacs. To
|
||||
build a 32-bit Emacs, first ensure that the necessary 32-bit system
|
||||
libraries and include files are installed. Then use:
|
||||
On Solaris, do not use /usr/ucb/cc. Use /opt/SUNWspro/bin/cc. Make
|
||||
sure that /usr/ccs/bin and /opt/SUNWspro/bin are in your PATH before
|
||||
/usr/ucb. (Most free software packages have the same requirement on
|
||||
Solaris.) With this compiler, use `/opt/SUNWspro/bin/cc -E' as the
|
||||
preprocessor. If this inserts extra whitespace into its output (see
|
||||
the PROBLEMS file) then add the option `-Xs'.
|
||||
|
||||
env CC="gcc -m32" ./configure --build=i386-linux-gnu \
|
||||
--x-libraries=/usr/X11R6/lib
|
||||
To build a 64-bit Emacs (with larger maximum buffer size) on a
|
||||
Solaris system which supports 64-bit executables, specify the -m64
|
||||
compiler option. For example:
|
||||
|
||||
(using the location of the 32-bit X libraries on your system).
|
||||
./configure CC='/usr/sfw/bin/gcc -m64' # GCC
|
||||
./configure CC='cc -m64' # Solaris Studio
|
||||
|
||||
|
||||
* Obsolete platforms
|
||||
|
|
37
etc/PROBLEMS
37
etc/PROBLEMS
|
@ -2648,43 +2648,6 @@ of PURESIZE in puresize.h.
|
|||
But in some of the cases listed above, this problem is a consequence
|
||||
of something else that is wrong. Be sure to check and fix the real problem.
|
||||
|
||||
*** Linux: Emacs crashes when dumping itself on Mac PPC running Yellow Dog GNU/Linux.
|
||||
|
||||
The crashes happen inside the function Fmake_symbol; here's a typical
|
||||
C backtrace printed by GDB:
|
||||
|
||||
0x190c0c0 in Fmake_symbol ()
|
||||
(gdb) where
|
||||
#0 0x190c0c0 in Fmake_symbol ()
|
||||
#1 0x1942ca4 in init_obarray ()
|
||||
#2 0x18b3500 in main ()
|
||||
#3 0x114371c in __libc_start_main (argc=5, argv=0x7ffff5b4, envp=0x7ffff5cc,
|
||||
|
||||
This could happen because GCC version 2.95 and later changed the base
|
||||
of the load address to 0x10000000. Emacs needs to be told about this,
|
||||
but we currently cannot do that automatically, because that breaks
|
||||
other versions of GNU/Linux on the MacPPC. Until we find a way to
|
||||
distinguish between the Yellow Dog and the other varieties of
|
||||
GNU/Linux systems on the PPC, you will have to manually uncomment the
|
||||
following section near the end of the file src/m/macppc.h in the Emacs
|
||||
distribution:
|
||||
|
||||
#if 0 /* This breaks things on PPC GNU/Linux except for Yellowdog,
|
||||
even with identical GCC, as, ld. Let's take it out until we
|
||||
know what's really going on here. */
|
||||
/* GCC 2.95 and newer on GNU/Linux PPC changed the load address to
|
||||
0x10000000. */
|
||||
#if defined __linux__
|
||||
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
|
||||
#define DATA_SEG_BITS 0x10000000
|
||||
#endif
|
||||
#endif
|
||||
#endif /* 0 */
|
||||
|
||||
Remove the "#if 0" and "#endif" directives which surround this, save
|
||||
the file, and then reconfigure and rebuild Emacs. The dumping process
|
||||
should now succeed.
|
||||
|
||||
*** OpenBSD 4.0 macppc: Segfault during dumping.
|
||||
|
||||
The build aborts with signal 11 when the command `./temacs --batch
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue