Subject: bug#15364: 24.3; git emacs segfault on loading local wubi phrases

From: Eric Abrahamsen <[email-masked]>
Date: Fri, 13 Sep 2013 17:22:11 +0800

On 09/13/13 16:32 PM, Eli Zaretskii wrote:
>> From: Eric Abrahamsen <[email-masked]>
>> Date: Fri, 13 Sep 2013 15:35:58 +0800
>> 
>> I'm sending this report from emacs as it exists in archlinux's package
>> system, but it's actually for the git version of emacs (updated "Fri Sep
>> 13 15:21:28 2013")
>> 
>> I find that git emacs segfaults when loading a local phrase file for the
>> wubi input method, which is an alternate Chinese-language input method
>> you can find here: http://daiyuwen.freeshell.org/gb/wubi/wubi.html
>
> That page is in Chinese, and I cannot find a link there for
> downloading the input method.  Can you post a download link?

Sorry! There's the code.

http://daiyuwen.freeshell.org/gb/wubi/wubi.tar.gz

cg>> Loading the library works fine, but wubi provides for keeping your own
>> file of input phrases, so as to customize input. In my case the file
>> looks like this:
>> 
>> ;;;; Generated by Wubi input method. Please don't modify it.
>> 
>> (wubi-batch-add nil
>> "派出所"
>> "外国人"
>> "工期"
>> ...
>> "心里有数"
>> "纠结"
>> "拍摄"
>> 
>> )
>> 
>> The file is 12,934 lines long, all of those lines contained within the
>> one sexp.
>
> Please also post the minimal phrase file that still causes the crash.

It seems the problem is more complicated. You're supposed to put your
custom phrases in a plain text file, one phrase per line, which file is
pointed to by the variable wubi-phrases-file. When
`wubi-load-local-phrases' is called, it turns that text file into an .el
file, the name of which is pointed to by wubi-phrases-file-el. So far as
I can tell, emacs segfaults when these two files have the same name, ie:

(setq wubi-phrases-file "~/.emacs.d/my-wubi-phrases.txt")
(setq wubi-phrases-file-el "~/.emacs.d/my-wubi-phrases.el")

I moved "my-wubi-phrases.el" to "my-wubi-phrases-short.el", to start
testing if a shorter file would prevent the crash, only to find that all
it took was re-naming the file to allow it to load safely.

So now it seems highly likely that the crash I thought I was
experiencing isn't at all the one I'm actually experiencing. I'll
happily do whatever's necessary, but I have the sense I'm barking up the
wrong tree.

>> Anyway, I hope that's enough. Feel free to contact me if more info is
>> necessary.
>
> We also need the details of your Emacs version and its configuration,
> you can provide all that by using the report-emacs-bug command from
> the same Emacs binary which crashes.
>
> Thanks.

I'm still sending this email from the arch emacs binary, but here's the
data from report-emacs-bug from the git emacs that crashes:

In GNU Emacs 24.3.50.1 (i686-pc-linux-gnu, GTK+ Version 3.8.4)
 of 2013-09-13 on pellet
Windowing system distributor `The X.Org Foundation', version 11.0.11402000
Configured using:
 `configure --with-gif=no'

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=fcitx
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
M-x r e p o r t - e m a c s <tab> <return>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils time-date tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt
fringe tabulated-list newcomment lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core frame cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process dbusbind
gfilenotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty emacs)