[Bug: 21.5-b28] Crash in VM piping message to nonexistent command
17 years, 3 months
Skip Montanaro
I get a reliable crash when piping a message in VM to a nonexistent Unix
command using vm-pipe-message-to-command. Here's a gdb backtrace:
#0 0x90014ba8 in write ()
#1 0x00166720 in retry_write_1 (fildes=11, buf=0x2371800, nbyte=512, allow_quit=0) at sysdep.c:2755
#2 0x00106e50 in filedesc_writer (stream=0x20, data=0x2371800 ".21; 'needs': 0.24; 'url:%0': 0.27;\n\t\"don't\": 0.29; 'subject:] ': 0.31; 'across': 0.31;\n\t'header:MIME-version:1': 0.33; 'header:Message-id:1': 0.33;\n\t'supported': 0.33; 'still': 0.33; 'url:org': 0.33;"..., size=512) at lstream.c:1180
#3 0x00105cf8 in Lstream_really_write (lstr=0xedd560, data=0x2371800 ".21; 'needs': 0.24; 'url:%0': 0.27;\n\t\"don't\": 0.29; 'subject:] ': 0.31; 'across': 0.31;\n\t'header:MIME-version:1': 0.33; 'header:Message-id:1': 0.33;\n\t'supported': 0.33; 'still': 0.33; 'url:org': 0.33;"..., size=512) at lstream.c:380
#4 0x00108560 in Lstream_write_1 (lstr=0xedd560, data=0x2371400, size=512) at lstream.c:419
#5 0x00108620 in Lstream_write (lstr=0xedd560, data=0x2371400, size=512) at lstream.c:602
#6 0x0008ce8c in coding_writer (stream=0x20, data=0x2371800 ".21; 'needs': 0.24; 'url:%0': 0.27;\n\t\"don't\": 0.29; 'subject:] ': 0.31; 'across': 0.31;\n\t'header:MIME-version:1': 0.33; 'header:Message-id:1': 0.33;\n\t'supported': 0.33; 'still': 0.33; 'url:org': 0.33;"..., size=0) at file-coding.c:1888
#7 0x00105cf8 in Lstream_really_write (lstr=0xedaea0, data=0x223f600 "'url-ip:194/8': 0.36;\n\t'skip:_ 40': 0.37; 'received:208.210.124.72': 0.37;\n\t'received:snug.pobox.com': 0.37; 'received:194.109.24.22': 0.37;\n\t'received:smtp-vbr2.xs4all.nl': 0.37; 'charset:us-ascii': "..., size=512) at lstream.c:380
#8 0x00107e84 in Lstream_close (lstr=0xedaea0) at lstream.c:419
#9 0x00116c54 in deactivate_process (process=15586400) at process.c:2136
#10 0x00118338 in status_notify () at process.c:2170
#11 0x000696a4 in Faccept_process_output (process=2320080, timeout_secs=37165056, timeout_msecs=27) at event-stream.c:2732
#12 0x0011a7f0 in unix_send_process (proc=15586400, lstream=0xedd670) at process-unix.c:1554
#13 0x00116390 in send_process (process=15586400, relocatable=15384896, nonrelocatable=0x0, start=37165056, len=512) at process.c:1185
#14 0x0011a248 in Fprocess_send_region (process=15586400, start=18957, end=30517, buffer=0) at process.c:1370
#15 0x00052820 in Ffuncall (nargs=5, args=0x4) at eval.c:3915
#16 0x00014e38 in execute_optimized_program (program=0xbfffcfc4 "", stack_depth=37165056, constants_data=0x352194) at bytecode.c:862
#17 0x00017b44 in Fbyte_code (instructions=2604496, constants=3481988, stack_depth=512) at bytecode.c:2620
#18 0x00050d98 in Feval (form=3269880) at eval.c:3668
#19 0x00050090 in condition_case_1 (handlers=4, bfun=0x50570 <Feval>, barg=3269880, hfun=0x56250 <run_condition_case_handlers>, harg=2320080) at eval.c:1946
#20 0x0001440c in execute_rare_opcode (stack_ptr=0xbfffd6b4, unused_program_ptr=0x2371800 ".21; 'needs': 0.24; 'url:%0': 0.27;\n\t\"don't\": 0.29; 'subject:] ': 0.31; 'across': 0.31;\n\t'header:MIME-version:1': 0.33; 'header:Message-id:1': 0.33;\n\t'supported': 0.33; 'still': 0.33; 'url:org': 0.33;"..., opcode=512) at bytecode.c:1438
#21 0x00014c4c in execute_optimized_program (program=0xbfffd6bc "", stack_depth=37165056, constants_data=0x352250) at bytecode.c:754
#22 0x00017b44 in Fbyte_code (instructions=2604768, constants=3482176, stack_depth=512) at bytecode.c:2620
#23 0x00050d98 in Feval (form=3270252) at eval.c:3668
#24 0x0004a320 in internal_catch (tag=32, func=0x50570 <Feval>, arg=3270252, threw=0x0, thrown_tag=0x0, backtrace_before_throw=0x0) at eval.c:1552
#25 0x000143bc in execute_rare_opcode (stack_ptr=0xbfffdde4, unused_program_ptr=0x2371800 ".21; 'needs': 0.24; 'url:%0': 0.27;\n\t\"don't\": 0.29; 'subject:] ': 0.31; 'across': 0.31;\n\t'header:MIME-version:1': 0.33; 'header:Message-id:1': 0.33;\n\t'supported': 0.33; 'still': 0.33; 'url:org': 0.33;"..., opcode=512) at bytecode.c:1419
#26 0x00014c4c in execute_optimized_program (program=0xbfffdde8 "", stack_depth=37165056, constants_data=0x3524fc) at bytecode.c:754
#27 0x00052b24 in Ffuncall (nargs=7, args=0x52eb90) at eval.c:3517
#28 0x00056a84 in Fapply (nargs=6, args=0xbfffe108) at eval.c:4219
#29 0x00052988 in Ffuncall (nargs=7, args=0x52e96c) at eval.c:3938
#30 0x00014e38 in execute_optimized_program (program=0xbfffe104 "", stack_depth=37165056, constants_data=0x3525e4) at bytecode.c:862
#31 0x00052b24 in Ffuncall (nargs=7, args=0x52eb90) at eval.c:3517
#32 0x00056a84 in Fapply (nargs=6, args=0xbfffe424) at eval.c:4219
#33 0x00052988 in Ffuncall (nargs=7, args=0x52e96c) at eval.c:3938
#34 0x00014e38 in execute_optimized_program (program=0xbfffe420 "", stack_depth=37165056, constants_data=0x33e118) at bytecode.c:862
#35 0x00052b24 in Ffuncall (nargs=9, args=0x52eb90) at eval.c:3517
#36 0x00014e38 in execute_optimized_program (program=0xbfffe5b4 "", stack_depth=37165056, constants_data=0xedb640) at bytecode.c:862
#37 0x00052b24 in Ffuncall (nargs=5434344, args=0x8) at eval.c:3517
#38 0x00056a84 in Fapply (nargs=2, args=0xbfffe7e8) at eval.c:4219
#39 0x00056b4c in apply1 (fn=38686756, arg=4593400) at eval.c:4541
#40 0x00018d2c in Fcall_interactively (function=37256540, record_flag=2320080, keys=2320080) at callint.c:459
#41 0x000581f4 in Fcommand_execute (cmd=37256540, record_flag=2320080, keys=2320080) at eval.c:3138
#42 0x00068718 in execute_command_event (command_builder=0xe1b320, event=37167196) at event-stream.c:4288
#43 0x00069174 in Fdispatch_event (event=37167196) at event-stream.c:4640
#44 0x0001fea8 in Fcommand_loop_1 () at cmdloop.c:600
#45 0x0001fef8 in command_loop_1 (unused_dummy=32) at cmdloop.c:505
#46 0x00050090 in condition_case_1 (handlers=4, bfun=0x1fec0 <command_loop_1>, barg=2320080, hfun=0x1f710 <cmd_error>, harg=2320080) at eval.c:1946
#47 0x0001f9b8 in command_loop_2 (unused_dummy=32) at cmdloop.c:262
#48 0x0004a320 in internal_catch (tag=32, func=0x1f930 <command_loop_2>, arg=2320080, threw=0x0, thrown_tag=0x0, backtrace_before_throw=0x0) at eval.c:1552
#49 0x0001faf4 in initial_command_loop (load_me=32) at cmdloop.c:313
#50 0x00048938 in xemacs_21_5_b28_powerpc_apple_darwin8_10_0 (argc=1, argv=0xbffff5b8, unused_envp=0x200, restart=0) at emacs.c:2667
#51 0x000489e8 in main (argc=32, argv=0x2371800, unused_envp=0x200) at emacs.c:3111
Skip Montanaro
================================================================
System Info to help track down your bug:
---------------------------------------
uname -a: Darwin montanaro.dyndns.org 8.10.0 Darwin Kernel Version 8.10.0: Wed May 23 16:50:59 PDT 2007; root:xnu-792.21.3~1/RELEASE_PPC Power Macintosh powerpc
./configure '--prefix=/Users/skip/local' '--with-optimization' '--without-error-checking' 'LDFLAGS=-L/opt/local/lib' 'CPPFLAGS=-I/opt/local/include'
XEmacs 21.5-b28 "fuki" configured for `powerpc-apple-darwin8.10.0'.
Compilation Environment and Installation Defaults:
Source code location: /Users/skip/src/xemacs-21.5.28
Installation prefix: /Users/skip/local
Operating system description file: `s/darwin.h'
Machine description file: `m/powerpc.h'
Compiler version: powerpc-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5367)
- GCC specs file: specs.
- Compiler command: gcc -Wall -Wno-switch -Wundef -Wsign-compare -Wno-char-subscripts -Wpacked -Wpointer-arith -Wunused-parameter -g -O3
libc version:
Relocating allocator for buffers: no
GNU version of malloc: no
- The GNU allocators don't work with this system configuration.
Window System:
Compiling in support for the X window system:
- X Windows headers location: /usr/X11R6/include
- X Windows libraries location: /usr/X11R6/lib
- Handling WM_COMMAND properly.
Compiling in support for the Athena widget set:
- Athena headers location: X11/Xaw
- Athena library to link: Xaw
Using Lucid menubars.
Using Lucid scrollbars.
Using Athena dialog boxes.
Using Athena native widgets.
TTY:
Compiling in support for ncurses.
Images:
Compiling in support for GIF images (builtin).
Compiling in support for XPM images.
Compiling in support for PNG images.
Compiling in support for JPEG images.
Compiling in support for TIFF images.
Sound:
Databases:
Compiling in support for Berkeley database.
Compiling in support for DBM.
Compiling in support for LDAP.
Internationalization:
Mail:
Compiling in support for "file" mail spool file locking method.
Other Features:
Inhibiting IPv6 canonicalization at startup.
Compiling in support for dynamic shared object modules.
Using the new GC mark algorithms (KKCC).
WARNING: ---------------------------------------------------------
WARNING: The new algorithms are experimental. They are enabled by
WARNING: default for this release. Use `--disable-kkcc' to
WARNING: turn it off.
WARNING: ---------------------------------------------------------
Using the new portable dumper.
Dumping into executable.
Compiling in support for extra debugging code.
Load-Path Lisp Shadows:
----------------------
(/Users/skip/emacs/po-mode /Users/skip/local/lib/xemacs/site-lisp/po-mode
/Users/skip/emacs/macedit
/Users/skip/local/lib/xemacs/xemacs-packages/lisp/calc/macedit
/Users/skip/emacs/pdb
/Users/skip/local/lib/xemacs/xemacs-packages/lisp/debug/pdb
/Users/skip/emacs/tempo
/Users/skip/local/lib/xemacs/xemacs-packages/lisp/edit-utils/tempo
/Users/skip/emacs/python-mode
/Users/skip/local/lib/xemacs/xemacs-packages/lisp/python-modes/python-mode
/Users/skip/emacs/slider
/Users/skip/local/lib/xemacs/xemacs-packages/lisp/slider/slider
/Users/skip/emacs/po-mode
/Users/skip/local/lib/xemacs/xemacs-packages/lisp/text-modes/po-mode
/Users/skip/local/lib/xemacs/site-lisp/po-compat
/Users/skip/local/lib/xemacs/xemacs-packages/lisp/text-modes/po-compat
/Users/skip/emacs/vm-sort
/Users/skip/local/lib/xemacs/xemacs-packages/lisp/vm/vm-sort
/Users/skip/emacs/imenu
/Users/skip/local/lib/xemacs/xemacs-packages/lisp/xemacs-base/imenu
/Users/skip/emacs/ffap
/Users/skip/local/lib/xemacs/xemacs-packages/lisp/xemacs-base/ffap
/Users/skip/local/lib/xemacs/xemacs-packages/lisp/xemacs-base/regexp-opt
/Users/skip/local/lib/xemacs-21.5-b28/lisp/regexp-opt
/Users/skip/emacs/isearch-mode
/Users/skip/local/lib/xemacs-21.5-b28/lisp/isearch-mode
/Users/skip/local/lib/xemacs/xemacs-packages/lisp/xemacs-base/easy-mmode
/Users/skip/local/lib/xemacs-21.5-b28/lisp/easy-mmode
/Users/skip/local/lib/xemacs/xemacs-packages/lisp/build/build-report
/Users/skip/local/lib/xemacs-21.5-b28/lisp/build-report)
Installed XEmacs Packages:
-------------------------
(zenirc ver: 1.16 upstream: 2.112)
(xslt-process ver: 1.12 upstream: 1.2.1)
(xslide ver: 1.09 upstream: 0.2.2)
(xlib ver: 1.14 upstream: lg(a)xwem.org--2005/xlib--main--2.1--version-0)
(xetla ver: 1.01 upstream: steve(a)eicq.org--2005/xetla--main--1.1--version-0)
(xemacs-devel ver: 1.75 upstream: No-Upstream-Ver)
(xemacs-base ver: 2.08 upstream: No-Upstream-Ver)
(x-symbol ver: 1.1 upstream: 4.5.1)
(w3 ver: 1.33 upstream: 4.0pre47)
(vm ver: 7.22 upstream: 7.17)
(view-process ver: 1.13 upstream: 2.4)
(vc-cc ver: 1.22 upstream: No-Upstream-Ver)
(vc ver: 1.41 upstream: No-Upstream-Ver)
(tramp ver: 1.35 upstream: 2.0.55)
(tpu ver: 1.14 upstream: 4.2X)
(tooltalk ver: 1.15 upstream: No-Upstream-Ver)
(tm ver: 1.38 upstream: No-Upstream-Ver)
(time ver: 1.14 upstream: 1.17)
(textools ver: 1.15 upstream: No-Upstream-Ver)
(text-modes ver: 1.92 upstream: No-Upstream-Ver)
(texinfo ver: 1.3 upstream: No-Upstream-Ver)
(supercite ver: 1.21 upstream: 3.55x3)
(strokes ver: 1.1 upstream: No-Upstream-Ver)
(speedbar ver: 1.28 upstream: 0.14beta4)
(sounds-wav ver: 1.12 upstream: No-Upstream-Ver)
(sounds-au ver: 1.12 upstream: No-Upstream-Ver)
(sml-mode ver: 0.12 upstream: 3.9.5)
(slider ver: 1.15 upstream: 0.3x1)
(sieve ver: 1.18 upstream: No-Upstream-Ver)
(sh-script ver: 1.21 upstream: 2.0f)
(sgml ver: 1.11 upstream: No-Upstream-Ver)
(semantic ver: 1.2 upstream: 1.4.4)
(scheme ver: 1.14 upstream: No-Upstream-Ver)
(sasl ver: 1.16 upstream: 1.14.4)
(ruby-modes ver: 1.02 upstream: 1.6.8)
(rmail ver: 1.14 upstream: No-Upstream-Ver)
(reftex ver: 1.34 upstream: 4.21)
(re-builder ver: 1.05 upstream: 1.20)
(python-modes ver: 1.08 upstream: No-Upstream-Ver)
(psgml-dtds ver: 1.03 upstream: No-Upstream-Ver)
(psgml ver: 1.44 upstream: 1.3.1)
(ps-print ver: 1.11 upstream: 6.5.6)
(prog-modes ver: 2.09 upstream: No-Upstream-Ver)
(pgg ver: 1.06 upstream: 0.1)
(perl-modes ver: 1.09 upstream: No-Upstream-Ver)
(pcomplete ver: 1.04 upstream: 1.1.6)
(pcl-cvs ver: 1.67 upstream: R-2_9_9)
(pc ver: 1.28 upstream: No-Upstream-Ver)
(os-utils ver: 1.39 upstream: No-Upstream-Ver)
(oo-browser ver: 1.04 upstream: 4.08)
(net-utils ver: 1.49 upstream: N/A)
(mmm-mode ver: 1.02 upstream: 0.4.7)
(misc-games ver: 1.18 upstream: No-Upstream-Ver)
(mine ver: 1.16 upstream: 1.9)
(mh-e ver: 1.29 upstream: 7.4.2)
(mew ver: 1.19 upstream: 1.94.2)
(mailcrypt ver: 2.14 upstream: 3.5.8)
(mail-lib ver: 1.78 upstream: No-Upstream-Ver)
(liece ver: 1.15 upstream: 1.4.9)
(jde ver: 1.51 upstream: 2.3.3)
(ispell ver: 1.32 upstream: 3.6)
(ilisp ver: 1.34 upstream: 5.12.0)
(igrep ver: 1.14 upstream: 2.111)
(idlwave ver: 1.32 upstream: 5.1)
(ibuffer ver: 1.09 upstream: No-Upstream-Ver)
(hyperbole ver: 1.16 upstream: 4.18)
(hm--html-menus ver: 1.23 upstream: 5.9)
(gnus ver: 1.9 upstream: 5.10.7)
(gnats ver: 1.17 upstream: 3.101)
(general-docs ver: 1.04 upstream: No-Upstream-Ver)
(games ver: 1.17 upstream: 1.04)
(fsf-compat ver: 1.15 upstream: No-Upstream-Ver)
(frame-icon ver: 1.11 upstream: No-Upstream-Ver)
(fortran-modes ver: 1.05 upstream: No-Upstream-Ver)
(forms ver: 1.15 upstream: 2.37)
(footnote ver: 1.16 upstream: 0.18x)
(eudc ver: 1.39 upstream: 1.32)
(eterm ver: 1.17 upstream: No-Upstream-Ver)
(ess ver: 1.16 upstream: 5.2.7)
(eshell ver: 1.1 upstream: 2.4.1)
(escreen ver: 1.01 upstream: 1.16)
(emerge ver: 1.11 upstream: No-Upstream-Ver)
(elib ver: 1.11 upstream: 1.0)
(eieio ver: 1.05 upstream: 0.17)
(efs ver: 1.33 upstream: 1.23)
(edt ver: 1.13 upstream: No-Upstream-Ver)
(edit-utils ver: 2.36 upstream: No-Upstream-Ver)
(ediff ver: 1.66 upstream: 2.75)
(edebug ver: 1.22 upstream: No-Upstream-Ver)
(ecrypto ver: 0.2 upstream: 2.0)
(ecb ver: 1.22 upstream: 2.31)
(docbookide ver: 0.07000000000000001 upstream: 0.1)
(dired ver: 1.17 upstream: 7.13)
(dictionary ver: 1.16 upstream: 1.8)
(debug ver: 1.18 upstream: No-Upstream-Ver)
(crisp ver: 1.15 upstream: 1.34)
(cookie ver: 1.15 upstream: No-Upstream-Ver)
(clearcase ver: 1.1 upstream: /main/laptop/165)
(cc-mode ver: 1.45 upstream: 5.30.10)
(calendar ver: 1.26 upstream: No-Upstream-Ver)
(calc ver: 1.26 upstream: 2.02fX3)
(c-support ver: 1.22 upstream: No-Upstream-Ver)
(build ver: 1.14 upstream: 2.02)
(bbdb ver: 1.29 upstream: 2.34)
(auctex ver: 1.46 upstream: 11.55)
(apel ver: 1.32 upstream: 10.6)
(ada ver: 1.14 upstream: 2.27)
(Sun ver: 1.16 upstream: No-Upstream-Ver)
Installed Modules:
-----------------
Features:
--------
(mail-abbrevs vm-menu vm-reply vm-misc vm-summary vm-mouse vm-window
vm-delete vm-autoload vm-vars highlight-headers vm-version vm vm-startup
xemacsbug shadow sendmail hyper-apropos lazy-lock paren blink-paren gnuserv
font-lock complete mailcrypt rfc822 timezone supercite mail-extr regi
filladapt edmacro tramp-smb tramp-vc tramp regexp-opt executable advice
advice-preload shell password format-spec timer-funcs trampver efs-x19.15
efs-fnh efs-ovwrt efs-cu efs-netrc efs-defun comint cus-face efs vc ring
vc-hooks zenirc-autoloads xslt-process-autoloads xslide-autoloads
xlib-autoloads xetla-autoloads xemacs-devel-autoloads xemacs-base-autoloads
x-symbol-autoloads w3-autoloads vm-autoloads view-process-autoloads
vc-cc-autoloads vc-autoloads tramp-autoloads tpu-autoloads
tooltalk-autoloads tm-autoloads time-autoloads textools-autoloads
text-modes-autoloads texinfo-autoloads supercite-autoloads strokes-autoloads
speedbar-autoloads sounds-wav-autoloads sounds-au-autoloads
sml-mode-autoloads slider-autoloads sieve-autoloads sh-script-autoloads
sgml-autoloads semantic-autoloads scheme-autoloads sasl-autoloads
ruby-modes-autoloads rmail-autoloads reftex-autoloads re-builder-autoloads
python-modes-autoloads psgml-dtds-autoloads psgml-autoloads
ps-print-autoloads prog-modes-autoloads pgg-autoloads perl-modes-autoloads
pcomplete-autoloads pcl-cvs-autoloads pc-autoloads os-utils-autoloads
oo-browser-autoloads net-utils-autoloads mmm-mode-autoloads
misc-games-autoloads mine-autoloads mh-e-autoloads mew-autoloads
mailcrypt-autoloads mail-lib-autoloads liece-autoloads jde-autoloads
ispell-autoloads ilisp-autoloads igrep-autoloads idlwave-autoloads
ibuffer-autoloads hyperbole-autoloads hm--html-menus-autoloads
gnus-autoloads gnats-autoloads general-docs-autoloads games-autoloads
fsf-compat-autoloads frame-icon-autoloads fortran-modes-autoloads
forms-autoloads footnote-autoloads eudc-autoloads eterm-autoloads
ess-autoloads eshell-autoloads escreen-autoloads emerge-autoloads
elib-autoloads eieio-autoloads efs-autoloads edt-autoloads
edit-utils-autoloads ediff-autoloads edebug-autoloads ecrypto-autoloads
ecb-autoloads docbookide-autoloads dired-autoloads dictionary-autoloads
debug-autoloads crisp-autoloads cookie-autoloads clearcase-autoloads
cc-mode-autoloads calendar-autoloads calc-autoloads c-support-autoloads
build-autoloads bbdb-autoloads auctex-autoloads apel-autoloads ada-autoloads
Sun-autoloads modules-autoloads auto-autoloads auto-show fontl-hooks
code-cmds gutter-items menubar-items x-menubar mode-motion mouse behavior
itimer auto-save lisp-mode easymenu easy-mmode iso8859-1 page buff-menu
lib-complete loadhist cus-file derived newcomment rsz-minibuf env text-props
frame obsolete cus-start custom widget cl-extra cl cl-19 packages backquote
unicode lucid-scrollbars cut-buffer lucid-menubars athena-dialogs x
c-balloon-help tty-frames tty toolbar scrollbar unix-processes multicast
network-streams subprocesses modules menu-accelerator-support menubar
berkeley-db dbm md5 xemacs gutter tiff png gif jpeg xpm xbm lisp-float-type
file-coding darwin dialog devices window-system base64)
Recent keystrokes:
-----------------
button1 button1up C-h a b u g RET C-h a r e p o r t
RET M-x r e p o r t - x e m TAB RET
Recent messages (most recent first):
-----------------------------------
Parsing /Users/skip/.mailrc... done
Parsing /Users/skip/.mailrc...
Loading mail-abbrevs...done
Loading mail-abbrevs...
Loading vm-menu...done
Loading vm-menu...
Loading vm-reply...done
Loading vm-reply...
Loading vm-misc...done
Loading vm-misc...
Loading vm-summary...done
Loading vm-summary...
Loading vm-mouse...done
Loading vm-mouse...
Loading vm-window...done
Loading vm-window...
Loading vm-startup...done
Loading vm-startup...
Loading xemacsbug...done
Loading xemacsbug...
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta
Re: ‘set-language-environment’ should set ‘language-unicode-precedence-list’ (was: XEmacs doesn't support windows-1252)
17 years, 3 months
Aidan Kehoe
Ar an t-aonú lá is triochad de mí Iúil, scríobh Mike FABIAN:
> So I think language-unicode-precedence-list should be set depending on
> the Language environment, otherwise one may get fonts which
> are not nice for the current language.
Agreed.
I also need to add locale information to many of the language environments;
I had thought I had done so, but evidently not.
The reason there isn’t a German (UTF-8) locale available when you start in a
Japanese UTF-8 locale, is that there is such a wide and legitimate variation
in the coding systems used with a given language under Unix--English in ISO
8859-1 vs. English in ISO 8859-15 vs. English in UTF-8 vs. English in
CP1252, to pick a simple example--that it makes more sense to pick one as
canonical and create a variant if a corresponding LANG or LC_CTYPE is seen.
If you want a German UTF-8 locale despite not having LANG as de_??.UTF-8 in
your environment at startup, call:
(set-language-environment
(create-variant-language-environment "German" 'utf-8))
set-language-environment is supposed to be a cross-platform API, so my
feeling is that we shouldn’t do this automatic generation of new language
environments within it for what is essentially a Unix quirk; the system
locales under Windows are basically fixed in the coding systems they use.
But if you think otherwise, say so, and I’ll think about it some more.
--
On the quay of the little Black Sea port, where the rescued pair came once
more into contact with civilization, Dobrinton was bitten by a dog which was
assumed to be mad, though it may only have been indiscriminating. (Saki)
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta