Current version, r8407, which works fine with single arguments is sufficient for my current needs, so there is no need to hurry with the patch.
Jarek Documentation: Arguments passed to the dtk-program. Usually SPACE is used to separate arguments, so the following string is considered to be a list of 3 arguments: -v eu -s In case where SPACE character must be inside an argument, the argument separator may be changed. To do this prefix argument string with ",<SEP>". This makes <SEP> the argument separator (could be also SPACE). For example this is one argument invocation: ,,C:\Program Files\dir And this is 3 argument invocation, with underline used as the separator: ,_the first arg_the second arg_thethird
Index: lisp/dtk-speak.el =================================================================== --- lisp/dtk-speak.el (revision 8407) +++ lisp/dtk-speak.el (working copy) @@ -77,9 +77,24 @@ The default is dtk-exp.") (defvar dtk-program-args - (or (getenv "DTK_PROGRAM_ARGS") nil) - "Arguments passed to the dtk-program") + (or (getenv "DTK_PROGRAM_ARGS") "") + "Arguments passed to the dtk-program. +Usually SPACE is used to separate arguments, so the following string is +considered to be a list of 3 arguments: +-v eu -s + +In case where SPACE character must be inside an argument, the argument +separator may be changed. To do this prefix argument string with +\",<SEP>\". This makes <SEP> the argument separator (could be also SPACE). +For example this is one argument invocation: + +,,C:\\Program Files\\dir + +And this is 3 argument invocation, with underline used as the separator: + +,_the first arg_the second arg_thethird") + (defvar emacspeak-pronounce-pronunciation-table) (defvar emacspeak-ssh-tts-server ) (defvar emacspeak-auditory-icon-function ) @@ -1712,16 +1727,24 @@ dtk-startup-hook emacspeak-servers-directory)) (let ((new-process nil) (process-connection-type nil) - (prog-file-name - (if (file-name-absolute-p dtk-program) - dtk-program - (expand-file-name dtk-program emacspeak-servers-directory)))) - (setq new-process - (start-process - "speaker" - (and dtk-debug tts-debug-buffer) - prog-file-name - (or dtk-program-args ""))) + ;; args-sep separator for program arguments, usually " ", but + ;; may be changed using "," prefix for arguments string + (arg-sep (if (string-match "^,." dtk-program-args) + (string (aref dtk-program-args 1)) " ")) + ;; dtk-program-args-2 argument without the optional "," prefix + (dtk-program-args-2 (if (string-match "^,." dtk-program-args) + (substring dtk-program-args 2) dtk-program-args)) + (proc-fun-args (list + "speaker" + (and dtk-debug tts-debug-buffer) + (expand-file-name dtk-program emacspeak-servers-directory)))) + ;; some characters must be escaped by \\ to be used in regexp + (if (string-match "^[$^.[\\]$" arg-sep) + (set 'arg-sep (concat "\\" arg-sep))) + (if (> (string-width dtk-program-args) 0) + (setq proc-fun-args + (append proc-fun-args (split-string dtk-program-args-2 arg-sep)))) + (setq new-process (apply 'start-process proc-fun-args)) (setq dtk-speak-server-initialized (or (eq 'run (process-status new-process )) (eq 'open (process-status new-process))))
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