Subject: bug#103: 23.0.60; Segmentation fault loading auto-lang.el

From: Kenichi Handa <[email-masked]>
Date: Wed, 09 Apr 2008 11:19:43 +0900

In article <[email-masked]>, Chong Yidong <[email-masked]> 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
[email-masked]

> *** 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