[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Search]

Bug in emacspeak-get-voicefied-mode-name



Good catch, fixed and checked in.
-- 
Best Regards,
--raman

-- 
Best Regards,
--raman


On 1/31/11, Tim Cross <tcross@xxxxxxxxxxx> wrote:
>
> I forgot to add my modified version of the code. Here it is. It appears to
> have
> fixed the problem, though not extensively tested.
>
> (defsubst emacspeak-get-voicefied-mode-name (mode-name)
>   "Return voicefied version of this mode-name."
>   (declare (special emacspeak-voicefied-mode-names))
>   (let* ((mode-name-str (if (stringp mode-name)
>                             mode-name
>                           (format-mode-line mode-name)))
>          (result (gethash mode-name-str emacspeak-voicefied-mode-names)))
>     (or result
>         (progn
>           (setq result (copy-sequence mode-name-str))
>           (put-text-property 0 (length result)
>                              'personality voice-animate result)
>           (puthash mode-name-str result emacspeak-voicefied-mode-names)
>           result))))
>
>
> Tim Cross writes:
>  > Hi Raman,
>  >
>  > I have found a bug in emacspeak-get-voicefied-mode-name. I think I know
> what
>  > needs to be done to fix it, but wanted to check first.
>  >
>  > Details
>  >
>  > GNU Emacs 24.0.50.1 (i686-pc-linux-gnu, GTK+ Version 2.22.0) of
> 2011-01-31 on
>  > blind-mole
>  >
>  > Latest emacspeak from svn
>  >
>  > Recipe to reproduce.
>  >
>  > 1. Open an org-mode agenda todo list with C-c a t
>  > 2. Hit C-e m to speak the mode line
>  >
>  > Gives the backtrace
>  >
>  > Debugger entered--Lisp error: (wrong-type-argument buffer-or-string-p
> ("Org-Agenda"
>  > "" " " (:eval (org-agenda-span-name org-agenda-current-span)) "" "" "
> Diary" " Ddl"
>  > " Grid" "" "" "" "" ""))
>  >   ad-Orig-put-text-property(0 14 personality acss-a7-p7-s6 ("Org-Agenda"
> "" " "
>  > (:eval (org-agenda-span-name org-agenda-current-span)) "" "" " Diary" "
> Ddl" " Grid"
>  > "" "" "" "" ""))
>  >   put-text-property(0 14 personality acss-a7-p7-s6 ("Org-Agenda" "" " "
> (:eval
>  > (org-agenda-span-name org-agenda-current-span)) "" "" " Diary" " Ddl" "
> Grid" "" ""
>  > "" "" ""))
>  >
>  > I've tracked this down to emacspeak-get-voicefied-mode-name. The problem
>  > appears to be that this function expects the mode name to be a string.
> However,
>  > according to the documentation, is usually a string, but can be any of
> the
>  > constructs for mode-line-format.
>  >
>  > According to the documentation, to get a string, you need to format
> mode-name
>  > with format-mode-line. Therefore, my suggested (untested) solution would
> be to
>  > format mode-name using mode-line-format and use that string as the key to
> the
>  > hash and as the argument passed to put-text-properties. My only concern
> with
>  > doing this is that it would seem you get more than just the mode name,
>  > potentially making the function return a more verbose result than is
>  > desired. Therefore, it may need to be slightly more complicated i.e. test
> if
>  > the argument is a string, if it is use it, if it is not, format with
>  > format-mode-line and take the first word from that string.
>  >
>  > Am I on the right track?
>  >
>  > Tim
>  >
>  >
>  >
>  > --
>  > Tim Cross
>  > Information Technology
>  > University of New England
>  >  Phone: +61 2 6773 3210
>  > Mobile: 0428 212217
>  >    Fax: +61 2 6773 3424
>  > E-Mail: tcross@xxxxxxxxxxx
>  >    Web: http://www.une.edu.au/itd
>  > ---
>  > Please avoid sending me Word or PowerPoint attachments.
>  > See http://www.gnu.org/philosophy/no-word-attachments.html
>  >
>  > Any fool can make things bigger, more complex, and more violent. It takes
> a
>  > touch of genius (and a lot of courage) to move in the opposite direction.
>  >                                                            —Albert
> Einstein
>  >
>  >
>  >
>  >
>  >
>  >
>  >
> -----------------------------------------------------------------------------
>  > To unsubscribe from the emacspeak list or change your address on the
>  > emacspeak list send mail to "emacspeak-request@xxxxxxxxxxx" with a
>  > subject of "unsubscribe" or "help".
>  >
>
> --
> Tim Cross
> Information Technology
> University of New England
>  Phone: +61 2 6773 3210
> Mobile: 0428 212217
>    Fax: +61 2 6773 3424
> E-Mail: tcross@xxxxxxxxxxx
>    Web: http://www.une.edu.au/itd
> ---
> Please avoid sending me Word or PowerPoint attachments.
> See http://www.gnu.org/philosophy/no-word-attachments.html
>
> Any fool can make things bigger, more complex, and more violent. It takes a
> touch of genius (and a lot of courage) to move in the opposite direction.
>                                                            —Albert Einstein
>
>
>
>
>
>
> -----------------------------------------------------------------------------
> To unsubscribe from the emacspeak list or change your address on the
> emacspeak list send mail to "emacspeak-request@xxxxxxxxxxx" with a
> subject of "unsubscribe" or "help".
>
>

-----------------------------------------------------------------------------
To unsubscribe from the emacspeak list or change your address on the
emacspeak list send mail to "emacspeak-request@xxxxxxxxxxx" with a
subject of "unsubscribe" or "help".



If you have questions about this archive or had problems using it, please send mail to:

priestdo@xxxxxxxxxxx No Soliciting!

Emacspeak List Archive | 2010 | 2009 | 2008 | 2007 | 2006 | 2005 | 2004 | 2003 | 2002 | 2001 | 2000 | 1999 | 1998 | Pre 1998

Emacspeak Files | Emacspeak Blog