GNU bug report logs - #103
23.0.60; Segmentation fault loading auto-lang.el

Previous Next

Package: emacs;

Reported by: intrigeri <intrigeri <at> boum.org>

Date: Sun, 30 Mar 2008 22:15:12 UTC

Severity: normal

Done: Chong Yidong <cyd <at> stupidchicken.com>

Bug is archived. No further changes may be made.

Full log


Message #35 received at 103 <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Kenichi Handa <handa <at> m17n.org>
To: Chong Yidong <cyd <at> stupidchicken.com>
Cc: intrigeri <at> boum.org, 103 <at> debbugs.gnu.org, emacs-devel <at> gnu.org
Subject: Re: 23.0.60; Segmentation fault loading auto-lang.el
Date: Wed, 09 Apr 2008 11:19:43 +0900
In article <87skxwl29o.fsf <at> stupidchicken.com>, Chong Yidong <cyd <at> stupidchicken.com> writes:

> > Any Lisp program that depends on the result of
> > string-as-unibyte (thus Emacs' internal character
> > representation) won't work in Emacs 23.

> I see.  However, maybe the following change to regexp-opt-group in
> regexp-opt.el would make things a little more predictable.  What do you
> think?

I agree because that change will avoid a unibyte string
being changed to multibyte by accident.

But, I've just downloaded auto-lang.el and found that it
has codes something like this:

(string-as-multibyte
 (regexp-opt
  (mapcar 'string-as-unibyte
	  (append
	   al-german-common-words
	   al-german-8bit-words
	   nil))))

All of them should be changed to this simple form:
  (regexp-opt (append al-german-common-words al-german-8bit-words))

The above german case works just by chance, but
al-danish-common-words doesn't.  You'll see peculiar 8-bit
codes in it.

And, the file should have a coding tag.

---
Kenichi Handa
handa <at> ni.aist.go.jp

> *** trunk/lisp/emacs-lisp/regexp-opt.el.~1.37.~	2008-03-14 17:17:34.000000000 -0400
> --- trunk/lisp/emacs-lisp/regexp-opt.el	2008-04-08 12:46:49.000000000 -0400
> ***************
> *** 226,232 ****
  
>   	      ;; Otherwise, divide the list into those that start with a
>   	      ;; particular letter and those that do not, and recurse on them.
> ! 	      (let* ((char (char-to-string (string-to-char (car strings))))
>   		     (half1 (all-completions char strings))
>   		     (half2 (nthcdr (length half1) strings)))
>   		(concat open-group
> --- 226,232 ----
  
>   	      ;; Otherwise, divide the list into those that start with a
>   	      ;; particular letter and those that do not, and recurse on them.
> ! 	      (let* ((char (substring (car strings) 0 1))
>   		     (half1 (all-completions char strings))
>   		     (half2 (nthcdr (length half1) strings)))
>   		(concat open-group







This bug report was last modified 17 years and 46 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.