Mercurial > hg > xemacs-beta
comparison PROBLEMS @ 448:3078fd1074e8 r21-2-39
Import from CVS: tag r21-2-39
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:38:25 +0200 |
parents | abe6d1db359e |
children | 98528da0b7fc |
comparison
equal
deleted
inserted
replaced
447:4fc5f13f3bd3 | 448:3078fd1074e8 |
---|---|
1256 compatible include files into the compilation. In particular this | 1256 compatible include files into the compilation. In particular this |
1257 affected virtually all ioctl() calls. | 1257 affected virtually all ioctl() calls. |
1258 | 1258 |
1259 | 1259 |
1260 ** Linux | 1260 ** Linux |
1261 *** Mandrake (all versions) | |
1262 | |
1263 Cannot be fully supported by XEmacs developers because they insist on | |
1264 applying known broken patches. | |
1265 | |
1266 One known issue is that on keyboards with both a Meta key (typically | |
1267 the Windows key on PCs) and an Alt key, XEmacs wants to bind the Meta | |
1268 modifier to the Meta key. Mandrake has a policy that XEmacs | |
1269 Meta-chords should use the Alt key, which they enforce by patching | |
1270 XEmacs's modifier-handling code, making the Meta and Alt modifiers | |
1271 synonymous. This will break planned upgrades to XEmacs to allow menu | |
1272 hotkeys; be warned. See next topic for how to implement Meta-on-Alt | |
1273 portably. | |
1274 | |
1275 *** I want XEmacs to use the Alt key, not the XXX key, for Meta commands | |
1276 | |
1277 For historical reasons, XEmacs looks for a Meta key, then an Alt key. | |
1278 It binds Meta commands to the X11 modifier bit attached to the first | |
1279 of these it finds. On PCs, the Windows key is often assigned the Meta | |
1280 bit, but many desktop environments go to great lengths to get all apps | |
1281 to use the Alt key, and reserve the Windows key to (sensibly enough) | |
1282 the window manager. | |
1283 | |
1284 One correct way to implement this was suggested on comp.emacs.xemacs | |
1285 (by Kilian Foth and in more detail by Michael Piotrowski): unmap the | |
1286 Meta modifier using xmodmap or xkb, and then map the Meta/Windows key | |
1287 to the Super or Hyper modifier. XEmacs will not find the Meta keysym, | |
1288 and default to using the Alt key for Meta keybindings. Typically few | |
1289 applications use the (X11) Meta modifier (sawfish is one); it is | |
1290 tedious but not too much so to teach them to use Super instead of | |
1291 Meta. There may be further useful hints in the discussion of | |
1292 keymapping on non-Linux platforms. | |
1293 | |
1261 *** You get crashes in a non-C locale with Linux GNU Libc 2.0. | 1294 *** You get crashes in a non-C locale with Linux GNU Libc 2.0. |
1262 | 1295 |
1263 Internationalization was not the top priority for GNU Libc 2.0. | 1296 Internationalization was not the top priority for GNU Libc 2.0. |
1264 As of this writing (1998-12-28) you may get crashes while running | 1297 As of this writing (1998-12-28) you may get crashes while running |
1265 XEmacs in a non-C locale. For example, `LC_ALL=en_US xemacs' crashes | 1298 XEmacs in a non-C locale. For example, `LC_ALL=en_US xemacs' crashes |
1283 XFree86 3.1.2 works. | 1316 XFree86 3.1.2 works. |
1284 | 1317 |
1285 *** Slow startup on Linux. | 1318 *** Slow startup on Linux. |
1286 | 1319 |
1287 People using systems based on the Linux kernel sometimes report that | 1320 People using systems based on the Linux kernel sometimes report that |
1288 startup takes 10 to 15 seconds longer than `usual'. | 1321 startup takes 10 to 15 seconds longer than `usual'. There are two |
1289 | 1322 problems, one older, one newer. |
1290 This is because Emacs looks up the host name when it starts. | 1323 |
1291 Normally, this takes negligible time; the extra delay is due to | 1324 **** Old problem: IPv4 host lookup |
1292 improper system configuration. This problem can occur for both | 1325 |
1293 networked and non-networked machines. | 1326 On older systems, this is because Emacs looks up the host name when it |
1327 starts. Normally, this takes negligible time; the extra delay is due | |
1328 to improper system configuration. (Recent Linux distros usually have | |
1329 this configuration correct "out of the box".) This problem can occur | |
1330 for both networked and non-networked machines. | |
1294 | 1331 |
1295 Here is how to fix the configuration. It requires being root. | 1332 Here is how to fix the configuration. It requires being root. |
1296 | 1333 |
1297 **** Networked Case | 1334 ***** Networked Case |
1298 | 1335 |
1299 First, make sure the files `/etc/hosts' and `/etc/host.conf' both | 1336 First, make sure the files `/etc/hosts' and `/etc/host.conf' both |
1300 exist. The first line in the `/etc/hosts' file should look like this | 1337 exist. The first line in the `/etc/hosts' file should look like this |
1301 (replace HOSTNAME with your host name): | 1338 (replace HOSTNAME with your host name): |
1302 | 1339 |
1311 Any changes, permanent and temporary, to the host name should be | 1348 Any changes, permanent and temporary, to the host name should be |
1312 indicated in the `/etc/hosts' file, since it acts a limited local | 1349 indicated in the `/etc/hosts' file, since it acts a limited local |
1313 database of addresses and names (e.g., some SLIP connections | 1350 database of addresses and names (e.g., some SLIP connections |
1314 dynamically allocate ip addresses). | 1351 dynamically allocate ip addresses). |
1315 | 1352 |
1316 **** Non-Networked Case | 1353 ***** Non-Networked Case |
1317 | 1354 |
1318 The solution described in the networked case applies here as well. | 1355 The solution described in the networked case applies here as well. |
1319 However, if you never intend to network your machine, you can use a | 1356 However, if you never intend to network your machine, you can use a |
1320 simpler solution: create an empty `/etc/host.conf' file. The command | 1357 simpler solution: create an empty `/etc/host.conf' file. The command |
1321 `touch /etc/host.conf' suffices to create the file. The `/etc/hosts' | 1358 `touch /etc/host.conf' suffices to create the file. The `/etc/hosts' |
1322 file is not necessary with this approach. | 1359 file is not necessary with this approach. |
1360 | |
1361 **** New problem: IPv6 CNAME lookup | |
1362 | |
1363 A newer problem is due to XEmacs changing to use the modern | |
1364 getaddrinfo() interface from the older gethostbyname() interface. The | |
1365 solution above is insufficient, because getaddrinfo() by default tries | |
1366 to get IPv6 information for localhost. This always involves a dns | |
1367 lookup to get the CNAME, and the strategies above don't work. It then | |
1368 falls back to IPv4 behavior. This is good[tm]; trust us. | |
1369 | |
1370 ***** Robust network case | |
1371 | |
1372 Configure your network so that there are no nameservers configured | |
1373 until the network is actually running. getaddrinfo() will not try to | |
1374 access a nameserver that isn't configured. | |
1375 | |
1376 ***** Flaky network case | |
1377 | |
1378 If you have a flaky modem or DSL connection that can be relied on only | |
1379 to go down whenever you want to bring XEmacs up, you need to force | |
1380 IPv4 behavior. Explicitly setting DISPLAY=127.0.0.1:0.0 (or whatever | |
1381 is appropriate) works in most cases. | |
1382 | |
1383 If you cannot or do not want to do that, you can hard code IPv4 | |
1384 behavior in src/process-unix.c. This is bad[tm], on your own head be | |
1385 it. In the function unix_canonicalize_host_name() about ten lines | |
1386 down, change the statement | |
1387 | |
1388 hints.ai_family = AF_UNSPEC; | |
1389 | |
1390 to | |
1391 | |
1392 hints.ai_family = PF_INET; | |
1393 | |
1394 and rebuild XEmacs. | |
1395 | |
1396 getaddrinfo() is also called in src/sysdep.c:init_system_name() and in | |
1397 src/process-unix.c:unix_open_network_stream(). It should not be | |
1398 useful to make this change in either of those places. | |
1323 | 1399 |
1324 | 1400 |
1325 ** IRIX | 1401 ** IRIX |
1326 *** On Irix, I don't see the toolbar icons and I'm getting lots of | 1402 *** On Irix, I don't see the toolbar icons and I'm getting lots of |
1327 entries in the warnings buffer. | 1403 entries in the warnings buffer. |