GNU bug report logs - #17462
24.3.50; bbdb-split: Invalid regexp: "Unmatched [ or [^"

Previous Next

Package: emacs;

Reported by: Sebastien Vauban <sva-news <at> mygooglest.com>

Date: Sun, 11 May 2014 07:21:01 UTC

Severity: normal

Tags: notabug

Found in version 24.3.50

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #11 received at 17462 <at> debbugs.gnu.org (full text, mbox):

From: Sebastien Vauban <sva-news <at> mygooglest.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 17462 <at> debbugs.gnu.org
Subject: Re: bug#17462: 24.3.50;
 bbdb-split: Invalid regexp: "Unmatched [ or [^"
Date: Mon, 12 May 2014 10:07:15 +0200
Eli Zaretskii wrote:
>> From: Sebastien Vauban <sva-news <at> mygooglest.com>
>> Date: Sun, 11 May 2014 09:18:00 +0200
>> 
>> Reading emails within Gnus works for years too, though today I have
>> apparently received an email that blocks the access to my "family-new"
>> folder.
>> 
>> See http://screencast.com/t/0xCWvhVjj.
>> 
>> The net impact is that I can't open that "family-new" folder anymore...
>> [...]
>> Recent messages:
>> Generating summary...
>> bbdb-split: Invalid regexp: "Unmatched [ or [^"
>  ^^^^^^^^^^
> bbdb-split is not part of Emacs, so why do you think this is an Emacs
> problem?

I oversaw the fact BBDB wasn't in Emacs, sorry.

> In any case, a Lisp backtrace would be nice.

--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (invalid-regexp "Unmatched [ or [^")
  string-match("Name of sender <hidden <at> hotmail.com>, \"Name of receiver [\" <hidden <at> me.com>" " 	\n")
  bbdb-split("Name of sender <hidden <at> hotmail.com>, \"Name of receiver [\" <hidden <at> me.com>" ",")
  (length (bbdb-split to ","))
  (let ((len (length (bbdb-split to ",")))) (cond ((= len 1) "»") (t "T")))
  (cond ((and (string-match gnus-ignored-from-addresses to) (fboundp (quote bbdb-split))) (let ((len (length (bbdb-split to ",")))) (cond ((= len 1) "»") (t "T")))) ((and (string-match gnus-ignored-from-addresses (concat to ", " cc)) (fboundp (quote bbdb-split))) (if (< (length (bbdb-split (concat to ", " cc) ",")) 5) "C" "*")) (t " "))
  (let* ((to (or (cdr (assoc (quote To) (aref header 9))) "")) (cc (or (cdr (assoc (quote Cc) (aref header 9))) ""))) (cond ((and (string-match gnus-ignored-from-addresses to) (fboundp (quote bbdb-split))) (let ((len (length (bbdb-split to ",")))) (cond ((= len 1) "»") (t "T")))) ((and (string-match gnus-ignored-from-addresses (concat to ", " cc)) (fboundp (quote bbdb-split))) (if (< (length (bbdb-split (concat to ", " cc) ",")) 5) "C" "*")) (t " ")))
  gnus-user-format-function-r(...)
  (format "%-15s %s " (let* ((val (eval (let ((val ...)) (if (> ... 15) (if ... ... ...) val)))) (need (- 15 (string-width val)))) (if (> need 0) (concat nil val (make-string need 32)) val)) (gnus-user-format-function-r gnus-tmp-header))
  (insert (format "%-15s %s " (let* ((val (eval (let (...) (if ... ... val)))) (need (- 15 (string-width val)))) (if (> need 0) (concat nil val (make-string need 32)) val)) (gnus-user-format-function-r gnus-tmp-header)))
  (let (gnus-position) (gnus-add-text-properties (point) (progn (insert gnus-tmp-unread) (point)) (cons (quote face) (cons (list (quote leuven-gnus-linum) (quote default)) (quote (gnus-face t))))) (gnus-add-text-properties (point) (progn (insert gnus-tmp-replied) (point)) (cons (quote face) (cons (list (quote leuven-gnus-org-date) (quote default)) (quote (gnus-face t))))) (gnus-add-text-properties (point) (progn (insert gnus-tmp-score-char) (point)) (cons (quote face) (cons (list (quote leuven-gnus-score) (quote default)) (quote (gnus-face t))))) (insert " ") (gnus-add-text-properties (point) (progn (insert (format "%20s " (gnus-user-date (aref gnus-tmp-header 3)))) (point)) (cons (quote face) (cons (list (quote leuven-gnus-org-date) (quote default)) (quote (gnus-face t))))) (insert " ") (gnus-add-text-properties (point) (progn (insert (format " %4s " (gnus-summary-line-message-size gnus-tmp-header))) (point)) (cons (quote face) (cons (list (quote leuven-gnus-diredp-file-suffix) (quote default)) (quote (gnus-face t))))) (setq gnus-position (point)) (insert (format "%-15s %s " (let* ((val (eval (let ... ...))) (need (- 15 (string-width val)))) (if (> need 0) (concat nil val (make-string need 32)) val)) (gnus-user-format-function-r gnus-tmp-header))) (gnus-add-text-properties (point) (progn (insert " ") (point)) (cons (quote face) (cons (list (quote leuven-gnus-linum) (quote default)) (quote (gnus-face t))))) (insert (format "%s%s%s\n" gnus-tmp-thread-tree-header-string gnus-tmp-indentation gnus-tmp-subject-or-nil)) (if gnus-position (gnus-put-text-property gnus-position (1+ gnus-position) (quote gnus-position) t)))
  eval((let (gnus-position) (gnus-add-text-properties (point) (progn (insert gnus-tmp-unread) (point)) (cons (quote face) (cons (list (quote leuven-gnus-linum) (quote default)) (quote (gnus-face t))))) (gnus-add-text-properties (point) (progn (insert gnus-tmp-replied) (point)) (cons (quote face) (cons (list (quote leuven-gnus-org-date) (quote default)) (quote (gnus-face t))))) (gnus-add-text-properties (point) (progn (insert gnus-tmp-score-char) (point)) (cons (quote face) (cons (list (quote leuven-gnus-score) (quote default)) (quote (gnus-face t))))) (insert " ") (gnus-add-text-properties (point) (progn (insert (format "%20s " (gnus-user-date (aref gnus-tmp-header 3)))) (point)) (cons (quote face) (cons (list (quote leuven-gnus-org-date) (quote default)) (quote (gnus-face t))))) (insert " ") (gnus-add-text-properties (point) (progn (insert (format " %4s " (gnus-summary-line-message-size gnus-tmp-header))) (point)) (cons (quote face) (cons (list (quote leuven-gnus-diredp-file-suffix) (quote default)) (quote (gnus-face t))))) (setq gnus-position (point)) (insert (format "%-15s %s " (let* ((val (eval (let ... ...))) (need (- 15 (string-width val)))) (if (> need 0) (concat nil val (make-string need 32)) val)) (gnus-user-format-function-r gnus-tmp-header))) (gnus-add-text-properties (point) (progn (insert " ") (point)) (cons (quote face) (cons (list (quote leuven-gnus-linum) (quote default)) (quote (gnus-face t))))) (insert (format "%s%s%s\n" gnus-tmp-thread-tree-header-string gnus-tmp-indentation gnus-tmp-subject-or-nil)) (if gnus-position (gnus-put-text-property gnus-position (1+ gnus-position) (quote gnus-position) t))))
  gnus-summary-prepare-threads(...)
  gnus-summary-prepare()
  gnus-summary-read-group-1("nnimap+mc:INBOX.family-new" nil t nil nil nil)
  gnus-summary-read-group("nnimap+mc:INBOX.family-new" nil t nil nil nil nil)
  gnus-group-read-group(nil t)
  gnus-group-select-group(nil)
  gnus-topic-select-group(nil)
  call-interactively(gnus-topic-select-group nil nil)
  command-execute(gnus-topic-select-group)
--8<---------------cut here---------------end--------------->8---

IIUC, the sender has put a [ in my display name, and there is no
protection against such when matching regexps.

Best regards,
  Seb

-- 
Sebastien Vauban




This bug report was last modified 11 years and 68 days ago.

Previous Next


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