--- emacspeak-26.0.orig/servers/tts-lib.tcl +++ emacspeak-26.0/servers/tts-lib.tcl @@ -1,3 +1,5 @@ +#!/usr/bin/tclsh8.4 +package require Tclx #$Id: tts-lib.tcl 4532 2007-05-04 01:13:44Z tv.raman.tv $ # {{{ LCD Entry: #x @@ -69,7 +71,8 @@ if {$tts(debug)} { puts -nonewline $tts(write) "$tts(q_head) e\013" } - if {[info exists q]} unset q +#GC: this line prevented the espeak speech server to stop +# if {[info exists q]} unset q set queue(-1) "" set tts(q_head) 0 set tts(q_tail) 0 --- emacspeak-26.0.orig/servers/ssh-outloud +++ emacspeak-26.0/servers/ssh-outloud @@ -1,4 +1,5 @@ -#!/usr/bin/tcl +#!/usr/bin/tclsh8.4 +package require Tclx #$Id: ssh-outloud 4532 2007-05-04 01:13:44Z tv.raman.tv $ #Description: Launch a TTS server on a remote host. #Copyright (C) 1995 -- 2007, T. V. Raman @@ -35,7 +36,7 @@ set user [lindex $user_host 0] set host [lindex $user_host 1] if {$user == ""} {set user env($USER)} -set tcl /usr/bin/tcl +set tcl /usr/bin/tclsh8.4 regsub {/ssh-} $argv0 {/} tts puts stderr "Running " exec ssh -o StrictHostKeyChecking=no $host \ --- emacspeak-26.0.orig/servers/dsp-outloud +++ emacspeak-26.0/servers/dsp-outloud @@ -1,4 +1,5 @@ -#!/usr/bin/tcl +#!/usr/bin/tclsh8.4 +package require Tclx # Keywords: Emacspeak, ViaVoice Outloud , TCL # {{{ LCD Entry: --- emacspeak-26.0.orig/servers/outloud +++ emacspeak-26.0/servers/outloud @@ -1,4 +1,5 @@ -#!/usr/bin/tcl +#!/usr/bin/tclsh8.4 +package require Tclx # Keywords: Emacspeak, ViaVoice Outloud , TCL # {{{ LCD Entry: @@ -487,7 +488,7 @@ set tts(speech_rate) 75 notes_initialize beep_initialize -set tts(input) file0 +set tts(input) stdin if {[info exists server_p]} { set tts(input) sock0 } --- emacspeak-26.0.orig/servers/speech-server +++ emacspeak-26.0/servers/speech-server @@ -1,4 +1,5 @@ -#!/usr/bin/tcl +#!/usr/bin/tclsh8.4 +package require Tclx # $Id: speech-server 4047 2006-08-11 19:11:17Z tv.raman.tv $ # Description: Speech server #Usage: tcl speech-server port device-specific-script --- emacspeak-26.0.orig/servers/dtk-soft +++ emacspeak-26.0/servers/dtk-soft @@ -1,4 +1,5 @@ -#!/usr/bin/tcl +#!/usr/bin/tclsh8.4 +package require Tclx # Keywords: Emacspeak, Software Dectalk , TCL # {{{ LCD Entry: --- emacspeak-26.0.orig/servers/espeak +++ emacspeak-26.0/servers/espeak @@ -1,4 +1,5 @@ -#!/usr/bin/tcl +#!/usr/bin/tclsh8.4 +package require Tclx # Keywords: Emacspeak, eSpeak , TCL # {{{ LCD Entry: @@ -213,19 +214,12 @@ return "" } -proc convert_speech_rate {rate} { - global tts - - set value [ expr ( int (0.0606 * $rate))/10.0 ] - return $value -} - proc tts_set_speech_rate {rate} { global tts set factor $tts(char_factor) set tts(speech_rate) $rate - say "" + setRate 0 $rate service return "" } @@ -246,11 +240,10 @@ global langsynth service - set r $tts(speech_rate) set la $langcode(current) - set prefix "" - regsub -all {\[\*\]} $text { `p1 } text + set prefix "" + regsub -all {\[\*\]} $text { } text synth " $prefix $text" service return "" @@ -261,10 +254,8 @@ global langcode global langsynth - set r $tts(speech_rate) set la $langcode(current) - set r2 [ convert_speech_rate $r ] - set prefix "" + set prefix "" if {[regexp {[A-Z]} $text]} { # pitch instead of 80%, high which could be 75%. set prefix "$prefix " @@ -305,19 +296,10 @@ } } -#produce tones via midi + proc t {{pitch 440} {duration 50}} { global tts queue - - - if {$tts(midi)} { - set inst 9 - set len .1 - set note [expr $pitch / 10] - n $inst $note $len - return "" - } if {$tts(beep)} { b $pitch $duration return "" @@ -350,7 +332,7 @@ set tts(capitalize) 0 caps "spelling" } else { - if { [ $tts(capitalize) == 0 ] && [ $tts(allcaps_beep) == 0 ] } { + if { ( $tts(capitalize) == 0 ) && ( $tts(allcaps_beep) == 0 ) } { caps "none" } } @@ -368,7 +350,7 @@ set tts(allcaps_beep) 0 caps "pitch" } else { - if { [ $tts(split_caps) == 0 ] && [ $tts(allcaps_beep) == 0 ] } { + if { ( $tts(split_caps) == 0 ) && ( $tts(allcaps_beep) == 0 ) } { caps "none" } } @@ -387,7 +369,7 @@ set tts(capitalize) 0 caps "tone" } else { - if { [ $tts(split_caps) == 0 ] && [ $tts(capitalize) == 0 ] } { + if { ( $tts(split_caps) == 0 ) && ( $tts(capitalize) == 0 ) } { caps "none" } } @@ -406,7 +388,7 @@ proc r {rate} { global queue tts - set queue($tts(q_tail)) [list s ""] + set queue($tts(q_tail)) [list r $rate] incr tts(q_tail) return "" } @@ -451,11 +433,10 @@ set tts(talking?) 1 set tts(not_stopped) 1 - set r $tts(speech_rate) set length [queue_length] set la $langcode(current) - set prefix "" + set prefix "" loop index 0 $length { set event [queue_remove] @@ -479,12 +460,10 @@ eval beep $event } } - n { + r { - if {$tts(midi)} { - lvarpop event - eval note $event - } +# The first argument to setRate is ignored. + setRate 0 [lindex $event 1] } } if {$tts(talking?) == 0} {break;} @@ -519,12 +498,14 @@ #do not die if you see a control-c signal ignore {sigint} +# Set input encoding to utf-8 +fconfigure stdin -encoding utf-8 + #initialize eSpeak tts_initialize set tts(speech_rate) 225 -notes_initialize beep_initialize -set tts(input) file0 +set tts(input) stdin if {[info exists server_p]} { set tts(input) sock0 } --- emacspeak-26.0.orig/servers/ssh-dtk-exp +++ emacspeak-26.0/servers/ssh-dtk-exp @@ -1,4 +1,5 @@ -#!/usr/bin/tcl +#!/usr/bin/tclsh8.4 +package require Tclx #$Id: ssh-dtk-exp 4532 2007-05-04 01:13:44Z tv.raman.tv $ #Description: Launch a TTS server on a remote host. #Copyright (C) 1995 -- 2007, T. V. Raman @@ -35,7 +36,7 @@ set user [lindex $user_host 0] set host [lindex $user_host 1] if {$user == ""} {set user env($USER)} -set tcl /usr/bin/tcl +set tcl /usr/bin/tclsh8.4 regsub {/ssh-} $argv0 {/} tts puts stderr "Running " exec ssh -o StrictHostKeyChecking=no $host \ --- emacspeak-26.0.orig/servers/dtk-mv +++ emacspeak-26.0/servers/dtk-mv @@ -1,4 +1,5 @@ -#!/usr/bin/tcl +#!/usr/bin/tclsh8.4 +package require Tclx # $Id: dtk-mv 4047 2006-08-11 19:11:17Z tv.raman.tv $ # Description: Interfacing to a Dectalk via TCL. # Keywords: Emacspeak, Dectalk, TCL @@ -559,7 +560,7 @@ # {{{ Initialize and set state. #working around tcl 7.5 -set tts(input) file0 +set tts(input) stdin if {[string match [info tclversion] 7.5] || [string match 8.0 [info tclversion]] } { if {[info exists server_p]} { --- emacspeak-26.0.orig/servers/dtk-exp +++ emacspeak-26.0/servers/dtk-exp @@ -1,4 +1,5 @@ -#!/usr/bin/tcl +#!/usr/bin/tclsh8.4 +package require Tclx # $Id: dtk-exp 4248 2006-11-03 15:12:59Z tv.raman.tv $ # Description: Interfacing to a Dectalk via TCL. # Keywords: Emacspeak, Dectalk, TCL @@ -420,7 +421,7 @@ set tts(say_rate) [round \ [expr $tts(speech_rate) * $tts(char_factor)]] notes_initialize -set tts(input) file0 +set tts(input) stdin if {[info exists server_p]} { set tts(input) sock0 } --- emacspeak-26.0.orig/servers/linux-outloud/atcleci.cpp +++ emacspeak-26.0/servers/linux-outloud/atcleci.cpp @@ -481,7 +481,7 @@ alsa_init () { int err; - char *device = "default"; + const char *device = "default"; size_t chunk_bytes = 0; if ((err = snd_pcm_open (&AHandle, device, SND_PCM_STREAM_PLAYBACK, 0)) < 0) { @@ -910,7 +910,7 @@ free (dest); if (!rc) { - Tcl_SetResult (interp, "Internal tts error", TCL_STATIC); + Tcl_SetResult (interp, (char*)"Internal tts error", TCL_STATIC); return TCL_ERROR; } } @@ -921,7 +921,7 @@ rc = _eciSynthesize (eciHandle); if (!rc) { - Tcl_SetResult (interp, "Internal tts synth error", TCL_STATIC); + Tcl_SetResult (interp, (char*)"Internal tts synth error", TCL_STATIC); return TCL_ERROR; } } @@ -940,7 +940,7 @@ int rc = _eciSynchronize (eciHandle); if (!rc) { - Tcl_SetResult (interp, "Internal tts synth error", TCL_STATIC); + Tcl_SetResult (interp, (char*)"Internal tts synth error", TCL_STATIC); return TCL_ERROR; } return TCL_OK; @@ -955,7 +955,7 @@ alsa_reset (); return TCL_OK; } - Tcl_SetResult (interp, "Could not stop synthesis", TCL_STATIC); + Tcl_SetResult (interp, (char*)"Could not stop synthesis", TCL_STATIC); return TCL_ERROR; } @@ -982,7 +982,7 @@ { if (_eciPause (eciHandle, 1)) return TCL_OK; - Tcl_SetResult (interp, "Could not pause synthesis", TCL_STATIC); + Tcl_SetResult (interp, (char*)"Could not pause synthesis", TCL_STATIC); return TCL_ERROR; } @@ -992,7 +992,7 @@ { if (_eciPause (eciHandle, 0)) return TCL_OK; - Tcl_SetResult (interp, "Could not resume synthesis", TCL_STATIC); + Tcl_SetResult (interp, (char*)"Could not resume synthesis", TCL_STATIC); return TCL_ERROR; } --- emacspeak-26.0.orig/servers/linux-outloud/tcleci.cpp +++ emacspeak-26.0/servers/linux-outloud/tcleci.cpp @@ -509,7 +509,7 @@ free (dest); if (!rc) { - Tcl_SetResult (interp, "Internal tts error", TCL_STATIC); + Tcl_SetResult (interp, (char*)"Internal tts error", TCL_STATIC); return TCL_ERROR; } } @@ -520,7 +520,7 @@ rc = _eciSynthesize (eciHandle); if (!rc) { - Tcl_SetResult (interp, "Internal tts synth error", TCL_STATIC); + Tcl_SetResult (interp, (char*)"Internal tts synth error", TCL_STATIC); return TCL_ERROR; } } @@ -534,7 +534,7 @@ int rc = _eciSynchronize (eciHandle); if (!rc) { - Tcl_SetResult (interp, "Internal tts synth error", TCL_STATIC); + Tcl_SetResult (interp, (char*)"Internal tts synth error", TCL_STATIC); return TCL_ERROR; } if (dsp != -1) @@ -558,7 +558,7 @@ } return TCL_OK; } - Tcl_SetResult (interp, "Could not stop synthesis", TCL_STATIC); + Tcl_SetResult (interp, (char*)"Could not stop synthesis", TCL_STATIC); return TCL_ERROR; } @@ -583,7 +583,7 @@ { if (_eciPause (eciHandle, 1)) return TCL_OK; - Tcl_SetResult (interp, "Could not pause synthesis", TCL_STATIC); + Tcl_SetResult (interp, (char*)"Could not pause synthesis", TCL_STATIC); return TCL_ERROR; } @@ -593,7 +593,7 @@ { if (_eciPause (eciHandle, 0)) return TCL_OK; - Tcl_SetResult (interp, "Could not resume synthesis", TCL_STATIC); + Tcl_SetResult (interp, (char*)"Could not resume synthesis", TCL_STATIC); return TCL_ERROR; } --- emacspeak-26.0.orig/servers/linux-outloud/langswitch.cpp +++ emacspeak-26.0/servers/linux-outloud/langswitch.cpp @@ -69,7 +69,7 @@ int j = 0; enum ECILanguageDialect aCurrentLanguage, aEnglishLanguage, aFirstLanguage; aCurrentLanguage = aEnglishLanguage = aFirstLanguage = NODEFINEDCODESET; - char* aDefaultLang = (char*)getenv("LANGUAGE"); + const char* aDefaultLang = (char*)getenv("LANGUAGE"); if (aDefaultLang == NULL) { @@ -169,7 +169,7 @@ const char* getAnnotation (Tcl_Interp *interp, int* theIndex) { const char* code = NULL; - char* aInfo = Tcl_GetVar2(interp, "langsynth", "current", 0); + const char* aInfo = Tcl_GetVar2(interp, "langsynth", "current", 0); if (aInfo) { --- emacspeak-26.0.orig/servers/linux-outloud/Makefile +++ emacspeak-26.0/servers/linux-outloud/Makefile @@ -1,37 +1,23 @@ #$Id: Makefile 4464 2007-04-21 03:03:52Z tv.raman.tv $ -CC=g++ +CXX=g++ INSTALL = install PREFIX = /usr libparentdir = ${PREFIX}/share/emacs/site-lisp libdir =$(libparentdir)/emacspeak/servers/linux-outloud -CFLAGS= -g -O2 -fPIC -DPIC -pedantic -ansi -Wall -LIBS= -ltcl -ldl +CXXFLAGS= -I/usr/include/tcl8.4 -g -O2 -fPIC -DPIC -ansi -Wall +LIBS= -ltcl8.4 -ldl TTS=tcleci.so eci.ini VIAVOICE ATTS=atcleci.so atcleci.cpp ALSA asoundrc MISC=alsaparams.c all: tcleci.so atcleci.so -tcleci.lo: tcleci.cpp - libtool --mode=compile $(CC) $(CFLAGS) -c $< +tcleci.so: tcleci.o langswitch.o + $(CXX) $(CXXFLAGS) -g -o $@ $^ $(LIBS) -shared -langswitch.lo: langswitch.cpp - libtool --mode=compile $(CC) $(CFLAGS) -c $< +atcleci.so: atcleci.o langswitch.o + $(CXX) -shared $(CXXFLAGS) -g -o $@ $^ -lasound $(LIBS) -tcleci.so: tcleci.lo langswitch.lo - libtool --mode=link $(CC) $(CFLAGS) -g -o $@ $^ $(LIBS) -shared - -atcleci.lo: atcleci.cpp - libtool --mode=compile $(CC) $(CFLAGS) -c $< - -atcleci.so: atcleci.lo langswitch.lo - libtool --mode=link $(CC) $(CFLAGS) -g -o $@ $^ -lasound $(LIBS) -shared - -alsaparams.o: alsaparams.c - libtool --mode=compile $(CC) $(CFLAGS) -c $< - -alsaparams: alsaparams.o - libtool --mode=link $(CC) $(CFLAGS) -g -o $@ $< -lasound clean: rm -f *.so *.o *.lo \ atcleci.so atcleci.o atcleci.lo --- emacspeak-26.0.orig/servers/linux-espeak/Makefile +++ emacspeak-26.0/servers/linux-espeak/Makefile @@ -0,0 +1,32 @@ +#$Id: Makefile 3963 2006-05-31 15:42:51Z raman $ +# +# Jan 2007 Gilles Casse gcasse@oralux.org> +# * eSpeak driver for emacspeak +# +#DESTDIR= +PREFIX=$(DESTDIR)/usr +LIBDIR=$(PREFIX)/lib +INCDIR=$(PREFIX)/include + +CXX=g++ +INSTALL = install +libparentdir = ${PREFIX}/share/emacs/site-lisp +libdir2 =$(libparentdir)/emacspeak/servers/linux-espeak +CXXFLAGS= -I/usr/include/tcl8.4 -g -O2 -I/usr/include/espeak -fPIC -DPIC -ansi -Wall +LIBS= -ltcl8.4 -lespeak + +TTS=libtclespeak.so tclespeak.cpp +all: libtclespeak.so + +libtclespeak.so: tclespeak.o + $(CXX) $(CXXFLAGS) -g -o $@ $^ $(LIBS) -shared + +clean: + rm -f *.so *.o *.lo libtclespeak.so + rm -rf .libs + +install: libtclespeak.so + if test ! -d $(libdir2) ; then mkdir $(libdir2); fi ; \ + chmod 755 $(libdir2); \ + $(INSTALL) -m 0644 $(TTS) Makefile $(libdir2) + --- emacspeak-26.0.orig/servers/linux-espeak/tclespeak.cpp +++ emacspeak-26.0/servers/linux-espeak/tclespeak.cpp @@ -0,0 +1,636 @@ +/*Id: This code comes from atcleci.cpp 4231 2006-10-13 02:43:46Z tv.raman.tv */ + +// Jan 2007 Gilles Casse +// * eSpeak driver for emacspeak +// +// Mar 2007 +// * Language switching. +// + +// +// +#include +#include +#include +#include +#include +#include +#include "speak_lib.h" +#ifndef ESPEAK_API_REVISION +#define ESPEAK_API_REVISION 1 +#endif + +#include +using std::string; + +#define PACKAGENAME "tts" +#define PACKAGEVERSION "1.0" +#define EXPORT + +//using namespace std; + +//> +// +//< preferred languages + +// Uncomment below your preferred languages + +static const char* ThePreferredLanguages[]= + { +// "af", // afrikaans +// "cs", // czech-test +// "cy", // welsh-test +// "de", // german +// "el", // greek_test +// "en-r", // en-rhotic +// "en-sc", // en-scottish + "en-uk", // english +// "en-uk-north", // lancashire +// "en-uk-rp", // english_rp +// "en-uk-wmids", // english_wmids +// "eo", // esperanto +// "es", // spanish +// "fi" // finnish + "fr", // french-test +// "fr-ca", // quebec-test +// "hi", // hindi-test +// "hu", // hungarian +// "it", // italian +// "nl", // dutch-test +// "no", // norwegian-test +// "pl", // polish_test +// "pt", // brazil +// "pt-pt", // portugal +// "ro", // romanian +// "ro", // romanian-mbrola +// "ru", // russian_test +// "sk", // slovak-test +// "sv", // swedish-test +// "sw", // swahihi-test +// "vi", // vietnam-test +// "zh", // cantonese-test + }; + + +#define MaxPreferredLang (int)(sizeof(ThePreferredLanguages)/sizeof(ThePreferredLanguages[0])) + + +//> +// +// + // + + initLanguage (interp); + + // + return TCL_OK; +} + +int +GetRate (ClientData handle, Tcl_Interp * interp, + int objc, Tcl_Obj * CONST objv[]) +{ + int rc, rate, voice; + if (objc != 2) + { + Tcl_AppendResult (interp, "Usage: getRate voiceCode ", TCL_STATIC); + return TCL_ERROR; + } + rc = Tcl_GetIntFromObj (interp, objv[1], &voice); + if (rc != TCL_OK) + return rc; + + rate = espeak_GetParameter(espeakRATE, 1); + + Tcl_SetObjResult (interp, Tcl_NewIntObj (rate)); + return TCL_OK; +} + +int +SetRate (ClientData handle, Tcl_Interp * interp, + int objc, Tcl_Obj * CONST objv[]) +{ + int rc, rate, voice; + if (objc != 3) + { + Tcl_AppendResult (interp, "Usage: setRate voiceCode speechRate ", + TCL_STATIC); + return TCL_ERROR; + } + rc = Tcl_GetIntFromObj (interp, objv[1], &voice); + if (rc != TCL_OK) + return rc; + rc = Tcl_GetIntFromObj (interp, objv[2], &rate); + if (rc != TCL_OK) + return rc; + + return (espeak_SetParameter(espeakRATE, rate, 0) == EE_OK) ? TCL_OK : TCL_ERROR; +} + +//> +//') && a_tag_count) + { + a_tag_count--; + } + tag++; + } + + if (a_text_is_present) + { + tag = tag_orig; + while (tag) + { + // look for a '<' + tag = strrchr(tag_orig, '<'); + + if (tag) + { + char* end = strchr(tag, ' '); + if (!end && (NULL == strchr(tag, '/'))) + { + end = strchr(tag, '>'); + } + if (end && (tag+1"; + } + *tag = 0; + } + } + } + + free(tag_orig); + + return a_text_is_present; +} + + +int +Say (ClientData handle, Tcl_Interp * interp, + int objc, Tcl_Obj * CONST objv[]) +{ + int i, rc, index, length; + for (i = 1; i < objc; i++) + { + // if string begins with -, assume it is an index value + char *txt = Tcl_GetStringFromObj (objv[i], &length); + if (Tcl_StringMatch (txt, "-reset")) + { + //TBD + // espeakReset (handle); + // if ((espeakSetParam (handle, espeakInputType, 1) == -1) + // || (espeakSetParam (handle, espeakSynthMode, 1) == -1) + // || (espeakSetParam (handle, espeakSampleRate, 1) == -1)) + // { + // Tcl_AppendResult (interp, "Could not re-initialized tts", NULL); + // return TCL_ERROR; + // } + } + else if (Tcl_StringMatch (txt, "-index")) + { + i++; + if (i == objc) + { + Tcl_AppendResult (interp, "missing index parameter", + TCL_STATIC); + return TCL_ERROR; + } + rc = Tcl_GetIntFromObj (interp, objv[i], &index); + if (rc != TCL_OK) + return rc; + // TBD + // rc = espeakInsertIndex (handle, index); + // if (!rc) + // { + // Tcl_AppendResult (interp, "Could not insert index", TCL_STATIC); + // return TCL_ERROR; + // } + } + else + { + // TBD: need a forthcoming eSpeak service (a deffered espeak_Synth). + + char* a_text = (char*)Tcl_GetStringFromObj (objv[i], NULL); + if (a_text) + { + string a_begin_ssml = a_text; + string a_end_ssml; + if (closeTags(a_begin_ssml, a_end_ssml)) + { + string a_ssml = a_begin_ssml + a_end_ssml; + + unsigned int unique_identifier=0; + espeak_Synth(a_ssml.c_str(), a_ssml.length()+1, 0, POS_CHARACTER, 0, espeakCHARS_UTF8|espeakSSML, &unique_identifier, NULL); + } + // TBD:: EE_BUFFER_FULL? + } + } + } + // TBD + if (Tcl_StringMatch (Tcl_GetStringFromObj (objv[0], NULL), "synth")) + { + // TBD: need a forthcoming eSpeak service. + // rc = espeakSynthesize (handle); + // if (!rc) + // { + // Tcl_SetResult (interp, "Internal tts synth error", TCL_STATIC); + // return TCL_ERROR; + // } + } + return TCL_OK; +} + +//> +// + +int +SpeakingP (ClientData handle, Tcl_Interp * interp, int objc, + Tcl_Obj * CONST objv[]) +{ + if (espeak_IsPlaying()) + { + Tcl_SetObjResult (interp, Tcl_NewIntObj (1)); + } + else + { + Tcl_SetObjResult (interp, Tcl_NewIntObj (0)); + } + return TCL_OK; +} + +int +Pause (ClientData handle, Tcl_Interp * interp, int objc, + Tcl_Obj * CONST objv[]) +{ + // TBD: need a forthcoming eSpeak service. + return TCL_OK; +} + +int +Resume (ClientData handle, Tcl_Interp * interp, int objc, + Tcl_Obj * CONST objv[]) +{ + // TBD: need a forthcoming eSpeak service. + return TCL_OK; +} + +//> +// +//< Caps + +int +Caps (ClientData handle, + Tcl_Interp * interp, int objc, Tcl_Obj * CONST objv[]) +{ + char* a_mode = (char*)Tcl_GetStringFromObj (objv[1], NULL); + if (a_mode) + { + int a_type = 0; // none + + if (strcmp(a_mode,"tone") == 0) + { + a_type = 1; + } + else if (strcmp(a_mode,"spelling") == 0) + { + a_type = 2; + } + else if (strcmp(a_mode,"pitch") == 0) + { + a_type = 30; + } + + espeak_SetParameter(espeakCAPITALS, a_type, 0); + } + return TCL_OK; +} + +//> +//< Punct + +int +Punct (ClientData handle, + Tcl_Interp * interp, int objc, Tcl_Obj * CONST objv[]) +{ + char* a_mode = (char*)Tcl_GetStringFromObj (objv[1], NULL); + if (a_mode) + { + espeak_PUNCT_TYPE a_type = espeakPUNCT_NONE; + + if (strcmp(a_mode,"none")==0) + { + a_type = espeakPUNCT_NONE; + } + else if (strcmp(a_mode,"all")==0) + { + a_type = espeakPUNCT_ALL; + } + else if (strcmp(a_mode,"some")==0) + { + a_type = espeakPUNCT_SOME; + } + + espeak_SetParameter(espeakPUNCTUATION, a_type, 0); + + } + return TCL_OK; +} + +//> +// +// +//languages, buffer_i, 0); + } + + langInfoMax = i; + + int aLang; + for (aLang = 0; aLang < MaxPreferredLang; aLang++) + { + char buffer_i[3]; + char buffer_j[3]; + + for (i = 0; i < langInfoMax; i++) + { + if (voices[i] + && voices[i]->languages + && (strcmp(1 + voices[i]->languages, ThePreferredLanguages[aLang]) == 0)) + break; + } + + if(i == langInfoMax) + { + continue; + } + + const char* aLangCode = 1 + voices[i]->languages; + + snprintf(buffer_i, 3, "%d", aLang); + snprintf(buffer_j, 3, "%d", j++); + Tcl_SetVar2(interp, "langsynth", buffer_j, buffer_i, 0); + + if (strncmp(aDefaultLang, aLangCode, 2) == 0) + { + Tcl_SetVar2(interp, "langsynth", "current", buffer_i, 0); + Tcl_SetVar2(interp, "langcode", "current", aLangCode, 0); + } + + Tcl_SetVar2(interp, "langlabel", buffer_j, voices[i]->name, 0); + Tcl_SetVar2(interp, "langcode", buffer_j, aLangCode, 0); + Tcl_SetVar2(interp, "langsynth", "top", buffer_j, 0); + } +} + +static int +getLangIndex (Tcl_Interp * interp, int* theIndex) +{ + int aStatus = 0; + const char* aInfo = Tcl_GetVar2(interp, "langsynth", "current", 0); + if (aInfo) + { + *theIndex = atoi(aInfo); + + if ((*theIndex > 0) && (*theIndex < MaxPreferredLang)) + { + aStatus = 1; + } + } + return aStatus; +} + +//> +// --- emacspeak-26.0.orig/lisp/emacspeak-wizards.el +++ emacspeak-26.0/lisp/emacspeak-wizards.el @@ -1792,15 +1792,20 @@ (read-from-minibuffer "Count: "))) (declare (special emacspeak-wizards-table-content-extractor)) - (let ((output (format "/tmp/%s.csv" task))) - (shell-command - (format "%s --task=%s --url='%s' --depth=%s --count=%s" - emacspeak-wizards-table-content-extractor - task - url - depth count )) - (emacspeak-table-find-csv-file output) - (delete-file output))) + (let ((buffer (get-buffer-create " *table extractor*"))) + (save-excursion + (set-buffer buffer) + (erase-buffer) + (setq buffer-undo-list t) + (call-process + emacspeak-wizards-table-content-extractor + nil t nil + "--task" task + "--url" url + "--depth" depth + "--count" count + "2>/dev/null") + (emacspeak-table-view-csv-buffer)))) ;;;###autoload (defun emacspeak-wizards-get-table-content-from-file (task file depth count ) "Extract table specified by depth and count from HTML @@ -1814,11 +1819,21 @@ (read-from-minibuffer "Depth: ") (read-from-minibuffer "Count: "))) (declare (special emacspeak-wizards-table-content-extractor)) - (shell-command - (format "%s --task=%s --file=%s --depth=%s --count=%s" - emacspeak-wizards-table-content-extractor - task file depth count )) - (emacspeak-table-find-csv-file (format "/tmp/%s.csv" task))) + (let ((buffer + (get-buffer-create " *table extractor* "))) + (save-excursion + (set-buffer buffer) + (erase-buffer) + (setq buffer-undo-list t) + (call-process + emacspeak-wizards-table-content-extractor + nil t nil + "--task" task + "--file" file + "--depth" depth + "--count" count + "2>/dev/null") + (emacspeak-table-view-csv-buffer)))) ;;}}} ;;{{{ annotation wizard @@ -2171,8 +2186,10 @@ emacspeak-wizards-quote-command emacspeak-wizards-quote-row-filter)) (let ((temp-file - (format "/tmp/%s.csv" - (gensym "quotes")))) + (expand-file-name + (format "%s.csv" + (gensym "quotes")) + emacspeak-resource-directory))) (shell-command (format "echo '%s' | perl %s > %s" --- emacspeak-26.0.orig/lisp/emacspeak-w3m.el +++ emacspeak-26.0/lisp/emacspeak-w3m.el @@ -867,9 +867,10 @@ "Preview this buffer in w3m." (interactive) (let ((filename - (format "/tmp/%s.html" - (make-temp-name "w3m")))) - (write-region (point-min) + (make-temp-file + (format "%s.html" + (make-temp-name "w3m"))))) + (write-region (point-min) (point-max) filename) (w3m-find-file filename) --- emacspeak-26.0.orig/info/emacspeak.texi +++ emacspeak-26.0/info/emacspeak.texi @@ -6,13 +6,13 @@ @dircategory Accessibility @dircategory Emacs @direntry - * Emacspeak:(emacspeak). Speech-enabled Audio Desktop. +* Emacspeak:(emacspeak). Speech-enabled Audio Desktop. @end direntry @include preamble.texi @include copyright.texi -@include announce.texi +@include announce.texi @include introduction.texi @include install.texi @include using.texi --- emacspeak-26.0.orig/info/tts-server.texi +++ emacspeak-26.0/info/tts-server.texi @@ -1,209 +1,209 @@ - @c $Id: tts-server.texi 4047 2006-08-11 19:11:17Z tv.raman.tv $ - @node TTS Servers - @chapter Emacspeak TTS Servers - - Emacspeak produces spoken output by communicating with one of many - speech servers. This section documents the communication protocol - between the client application i.e. Emacspeak, and the TTS - server. This section is primarily intended for developers wishing to: - @itemize @bullet - @item Create new speech servers that comply with this communication - protocol - @item Developers of other client applications who wish to use - the various Emacspeak speech servers. - @end itemize - - @subsection High-level Overview - - The TTS server reads commands from standard input, and script - @emph{speech-server} can be used to cause a TTS server to communicate - via a TCP socket. Speech server commands are used by the client - application to make specific requests of the server; the server - listens for these requests in a non-blocking read loop and executes - requests as they become available. Requests can be classified - as follows: - @itemize @bullet - @item Commands that send text to be spoken. - @item Commands that set @emph{state} of the TTS server. - @end itemize - - All commands are of the form - @example - commandWord @{arguments@} - @end example - The braces are optional if the command argument contains no white - space. The speech server maintains a @emph{current state} that - determines various characteristics of spoken output such as speech - rate, punctuations mode etc. (see set of commands that manipulate - speech state for complete list). The client application @emph{queues} The - text and non-speech audio output to be produced before asking the - server to @emph{dispatch} the set of queued requests, i.e. start - producing output. - - Once the server has been asked to produce output, it removes items - from the front of the queue, sends the requisite commands to the - underlying TTS engine, and waits for the engine to acknowledge that - the request has been completely processed. This is a non-blocking - operation, i.e., if the client application generates additional - requests, these are processed @emph{immediately}. - - The above design allows the Emacspeak TTS server to be - @emph{highly} responsive; Cleint applications can queue large - amounts of text (typically queued a clause at a time to - achieve the best prosody), ask the TTS server to start speaking, - and interrupt the spoken output at any time. - - @subsection Commands That Queue Output. - - This section documents commands that either produce spoken - output, or queue output to be produced on demand. - Commands that place the request on the queue are clearly marked. - - @example - version - @end example - - Speaks the @emph{version} of the TTS engine. Produces output - immediately. - - @example - tts_say text - @end example - - Speaks the specified @emph{text} immediately. The text is not - pre-processed in any way, contrast this with the primary way of - speaking text which is to queue text before asking the server to - process the queue. - - @example - l c - @end example - - Speak @emph{c} a single character, as a letter. The character is - spoken immediately. This command uses the TTS engine's capability to - speak a single character with the ability to flush speech - @emph{immediately}. Client applications wishing to produce - character-at-a-time output, e.g., when providing character echo during - keyboard input should use this command. - - @example - d - @end example - - This command is used to @emph{dispatch} all queued requests. - It was renamed to a single character command (like many of the - commonly used TTS server commands) to work more effectively over - slow (9600) dialup lines. - The effect of calling this command is for the TTS server to start - processing items that have been queued via earlier requests. - - @example - tts_pause - @end example - - This pauses speech @emph{immediately}. - It does not affect queued requests; when command - @emph{tts_resume} is called, the output resumes at the point - where it was paused. Not all TTS engines provide this capability. - - @example - tts_resume - @end example - - Resume spoken output if it has been paused earlier. - - @example - s - @end example - - Stop speech @emph{immediately}. - Spoken output is interrupted, and all pending requests are - flushed from the queue. - - @example - q text - @end example - - Queues text to be spoken. No spoken output is produced until a - @emph{dispatch} request is received via execution of command - @emph{d}. - - @example - a filename - @end example - - Cues the audio file identified by filename for playing. - - @example - t freq length - @end example - - Queues a tone to be played at the specified frequency and having the - specified length. Frequency is specified in hertz and length is - specified in milliseconds. - - @example - sh duration - @end example - - Queues the specified duration of silence. Silence is specified in - milliseconds. - - @subsection Commands That Set State - - @example - tts_reset - @end example - - Reset TTS engine to default settings. - - @example - tts_set_punctuations mode - @end example - - Sets TTS engine to the specified punctuation mode. Typicaly, TTS - servers provide at least three modes: - @itemize @bullet - @item None: Do not speak punctuation characters. - @item some: Speak some punctuation characters. Used for English - prose. - @item all: Speak out @emph{all} punctuation characters; useful in - programming modes. - @end itemize - - @example - tts_set_speech_rate rate - @end example - - Sets speech rate. The interpretation of this value is typically - engine specific. - - @example - tts_set_character_scale factor - @end example - - Scale factor applied to speech rate when speaking individual - characters.Thus, setting speech rate to 500 and character - scale to 1.2 will cause command @emph{l} to use a speech rate - of @emph{500 * 1.2 = 600}. - - @example - tts_split_caps flag - @end example - - Set state of @emph{split caps} processing. Turn this on to - speak mixed-case (AKA Camel Case) identifiers. - - @example - tts_capitalize flag - @end example - - Indicate capitalization via a beep tone or voice pitch. - - @example - tts_allcaps_beep flag - @end example +@c $Id: tts-server.texi 4047 2006-08-11 19:11:17Z tv.raman.tv $ +@node TTS Servers +@chapter Emacspeak TTS Servers + +Emacspeak produces spoken output by communicating with one of many +speech servers. This section documents the communication protocol +between the client application i.e. Emacspeak, and the TTS +server. This section is primarily intended for developers wishing to: +@itemize @bullet +@item Create new speech servers that comply with this communication +protocol +@item Developers of other client applications who wish to use +the various Emacspeak speech servers. +@end itemize + +@subsection High-level Overview + +The TTS server reads commands from standard input, and script +@emph{speech-server} can be used to cause a TTS server to communicate +via a TCP socket. Speech server commands are used by the client +application to make specific requests of the server; the server +listens for these requests in a non-blocking read loop and executes +requests as they become available. Requests can be classified +as follows: +@itemize @bullet +@item Commands that send text to be spoken. +@item Commands that set @emph{state} of the TTS server. +@end itemize + +All commands are of the form +@example +commandWord @{arguments@} +@end example +The braces are optional if the command argument contains no white +space. The speech server maintains a @emph{current state} that +determines various characteristics of spoken output such as speech +rate, punctuations mode etc. (see set of commands that manipulate +speech state for complete list). The client application @emph{queues} The +text and non-speech audio output to be produced before asking the +server to @emph{dispatch} the set of queued requests, i.e. start +producing output. + +Once the server has been asked to produce output, it removes items +from the front of the queue, sends the requisite commands to the +underlying TTS engine, and waits for the engine to acknowledge that +the request has been completely processed. This is a non-blocking +operation, i.e., if the client application generates additional +requests, these are processed @emph{immediately}. + +The above design allows the Emacspeak TTS server to be +@emph{highly} responsive; Cleint applications can queue large +amounts of text (typically queued a clause at a time to +achieve the best prosody), ask the TTS server to start speaking, +and interrupt the spoken output at any time. + +@subsection Commands That Queue Output. + +This section documents commands that either produce spoken +output, or queue output to be produced on demand. +Commands that place the request on the queue are clearly marked. + +@example +version +@end example + +Speaks the @emph{version} of the TTS engine. Produces output +immediately. + +@example +tts_say text +@end example + +Speaks the specified @emph{text} immediately. The text is not +pre-processed in any way, contrast this with the primary way of +speaking text which is to queue text before asking the server to +process the queue. + +@example +l c +@end example + +Speak @emph{c} a single character, as a letter. The character is +spoken immediately. This command uses the TTS engine's capability to +speak a single character with the ability to flush speech +@emph{immediately}. Client applications wishing to produce +character-at-a-time output, e.g., when providing character echo during +keyboard input should use this command. + +@example +d +@end example + +This command is used to @emph{dispatch} all queued requests. +It was renamed to a single character command (like many of the +commonly used TTS server commands) to work more effectively over +slow (9600) dialup lines. +The effect of calling this command is for the TTS server to start +processing items that have been queued via earlier requests. + +@example +tts_pause +@end example + +This pauses speech @emph{immediately}. +It does not affect queued requests; when command +@emph{tts_resume} is called, the output resumes at the point +where it was paused. Not all TTS engines provide this capability. + +@example +tts_resume +@end example + +Resume spoken output if it has been paused earlier. + +@example +s +@end example + +Stop speech @emph{immediately}. +Spoken output is interrupted, and all pending requests are +flushed from the queue. + +@example +q text +@end example + +Queues text to be spoken. No spoken output is produced until a +@emph{dispatch} request is received via execution of command +@emph{d}. + +@example +a filename +@end example + +Cues the audio file identified by filename for playing. + +@example +t freq length +@end example + +Queues a tone to be played at the specified frequency and having the +specified length. Frequency is specified in hertz and length is +specified in milliseconds. + +@example +sh duration +@end example + +Queues the specified duration of silence. Silence is specified in +milliseconds. + +@subsection Commands That Set State + +@example +tts_reset +@end example + +Reset TTS engine to default settings. + +@example +tts_set_punctuations mode +@end example + +Sets TTS engine to the specified punctuation mode. Typicaly, TTS +servers provide at least three modes: +@itemize @bullet +@item None: Do not speak punctuation characters. +@item some: Speak some punctuation characters. Used for English +prose. +@item all: Speak out @emph{all} punctuation characters; useful in +programming modes. +@end itemize + +@example +tts_set_speech_rate rate +@end example + +Sets speech rate. The interpretation of this value is typically +engine specific. + +@example +tts_set_character_scale factor +@end example + +Scale factor applied to speech rate when speaking individual +characters.Thus, setting speech rate to 500 and character +scale to 1.2 will cause command @emph{l} to use a speech rate +of @emph{500 * 1.2 = 600}. + +@example +tts_split_caps flag +@end example + +Set state of @emph{split caps} processing. Turn this on to +speak mixed-case (AKA Camel Case) identifiers. + +@example +tts_capitalize flag +@end example + +Indicate capitalization via a beep tone or voice pitch. + +@example +tts_allcaps_beep flag +@end example - Setting this flag produces a high-pitched beep when speaking words that are in - all-caps, e.g. abbreviations. +Setting this flag produces a high-pitched beep when speaking words that are in +all-caps, e.g. abbreviations. --- emacspeak-26.0.orig/info/using.texi +++ emacspeak-26.0/info/using.texi @@ -74,7 +74,9 @@ interface, and are especially valuable to the experienced user in facilitating rapid interaction. Note that in order to support auditory icons, the computer must be equipped with sound hardware for which the -operating system has been correctly configured @xref{emacspeak-sounds}.@node Working +operating system has been correctly configured +@xref{emacspeak-sounds}. +@node Working @section Working In Emacs Buffers. While typing in an Emacs buffer, hitting space speaks the recently typed --- emacspeak-26.0.orig/info/tts.texi +++ emacspeak-26.0/info/tts.texi @@ -1,5 +1,5 @@ @c $Id: tts.texi 4047 2006-08-11 19:11:17Z tv.raman.tv $ - @section Speech System Commands +@c @section Speech System Commands @cindex tts @cindex speech system @@ -10,7 +10,7 @@ @menu * Controlling Echo:: Character, Word and Line Echo. -* Speech Output Control:: Indicating case, capitalization and indentation. +* Speech Output Control:: Indicating case, capitalization and indentation. * Miscellaneous:: Miscellaneous TTS Commands. @end menu @@ -36,30 +36,30 @@ @table @kbd @findex emacspeak-toggle-character-echo - @kindex control e d k +@kindex control e d k @item @kbd{control e d k } emacspeak-toggle-character-echo - Toggle state of Emacspeak character echo. +Toggle state of Emacspeak character echo. Interactive PREFIX arg means toggle the global default value, and then set the current local value to the result. @findex emacspeak-toggle-word-echo - @kindex control e d w - +@kindex control e d w + @item @kbd{ control e d w } emacspeak-toggle-word-echo - Toggle state of Emacspeak word echo. +Toggle state of Emacspeak word echo. Interactive PREFIX arg means toggle the global default value, and then set the current local value to the result. @findex emacspeak-toggle-line-echo - @kindex control e d l - +@kindex control e d l + @item @kbd{ control e d l } emacspeak-toggle-line-echo - Toggle state of Emacspeak line echo. +Toggle state of Emacspeak line echo. Interactive PREFIX arg means toggle the global default value, and then set the current local value to the result. @end table @@ -82,21 +82,21 @@ @table @kbd @findex dtk-set-rate - @kindex control e d r - +@kindex control e d r + @item @kbd{ control e d r } dtk-set-rate - Set speaking RATE for the tts. +Set speaking RATE for the tts. Interactive PREFIX arg means set the global default value, and then set the current local value to the result. @findex dtk-set-character-scale - @kindex control e d f - +@kindex control e d f + @item @kbd{ control e d f } dtk-set-character-scale - Set scale FACTOR for speech rate. +Set scale FACTOR for speech rate. Speech rate is scaled by this factor when speaking characters. Interactive PREFIX arg means set the global default value, and then set the @@ -109,20 +109,20 @@ @findex dtk-set-predefined-speech-rate - @kindex control e d 9 control e d 8 control e d 7 control e d 6 control e d 5 control e d 4 control e d 3 control e d 2 control e d 1 control e d 0 - +@kindex control e d 9 control e d 8 control e d 7 control e d 6 control e d 5 control e d 4 control e d 3 control e d 2 control e d 1 control e d 0 + @item @kbd{ control e d 9 control e d 8 control e d 7 control e d 6 control e d 5 control e d 4 control e d 3 control e d 2 control e d 1 control e d 0 } dtk-set-predefined-speech-rate - Set speech rate to one of nine predefined levels. +Set speech rate to one of nine predefined levels. Interactive PREFIX arg says to set the rate globally. @findex dtk-set-punctuations - @kindex control e d p - +@kindex control e d p + @item @kbd{ control e d p } dtk-set-punctuations - Set punctuation mode to MODE. +Set punctuation mode to MODE. Possible values are `some', `all', or `none'. Interactive PREFIX arg means set the global default value, and then set the current local value to the result. @@ -130,11 +130,11 @@ @findex dtk-set-pronunciation-mode - @kindex control e d m - +@kindex control e d m + @item @kbd{ control e d m } dtk-set-pronunciation-mode - Set pronunciation MODE. +Set pronunciation MODE. This command is valid only for newer Dectalks, e.g. the Dectalk Express. Possible values are `math, name, europe, spell', all of which can be turned on or off. @@ -143,11 +143,11 @@ @findex dtk-toggle-split-caps - @kindex control e d s +@kindex control e d s @item @kbd{ control e d s } dtk-toggle-split-caps - Toggle split caps mode. +Toggle split caps mode. Split caps mode is useful when reading Hungarian notation in program source code. Interactive PREFIX arg means toggle the global default value, and then set the current local @@ -155,22 +155,22 @@ @findex dtk-toggle-capitalization - @kindex control e d c - +@kindex control e d c + @item @kbd{ control e d c } dtk-toggle-capitalization - Toggle capitalization. +Toggle capitalization. when set, capitalization is indicated by a short beep. Interactive PREFIX arg means toggle the global default value, and then set the current local value to the result. @findex dtk-toggle-allcaps-beep - @kindex control e d cap C - +@kindex control e d cap C + @item @kbd{ control e d cap C } dtk-toggle-allcaps-beep - Toggle allcaps-beep. +Toggle allcaps-beep. when set, allcaps words are indicated by a short beep. Interactive PREFIX arg means toggle the global default value, and then set the current local value to the result. @@ -188,11 +188,11 @@ @table @kbd @findex emacspeak-toggle-audio-indentation - @kindex control e d i - +@kindex control e d i + @item @kbd{ control e d i } emacspeak-toggle-audio-indentation - Toggle state of Emacspeak audio indentation. +Toggle state of Emacspeak audio indentation. Interactive PREFIX arg means toggle the global default value, and then set the current local value to the result. Specifying the method of indentation as `tones' @@ -227,19 +227,19 @@ @table @kbd @findex dtk-stop - @kindex pause control e s - +@kindex pause control e s + @item @kbd{Control e s} dtk-stop - Stop speech now. +Stop speech now. @findex dtk-pause - @kindex control e p - +@kindex control e p + @item @kbd{ control e p } dtk-pause - Pause ongoing speech. +Pause ongoing speech. The speech can be resumed with command `dtk-resume' normally bound to C-e SPC. Pausing speech is useful when one needs to perform a few actions before continuing to read a large document. Emacspeak @@ -250,24 +250,24 @@ @findex dtk-resume - @kindex control e SPACE - +@kindex control e SPACE + @item @kbd{ control e SPACE } dtk-resume - Resume paused speech. +Resume paused speech. This command resumes speech that has been suspended by executing command `dtk-pause' bound to C-e p. If speech has not been paused, and variable `dtk-resume-should-toggle' is t - then this command will pause ongoing speech. +then this command will pause ongoing speech. @findex dtk-toggle-quiet - @kindex control e d q - +@kindex control e d q + @item @kbd{ control e d q } dtk-toggle-quiet - Toggle state of the speech device between being quiet and talkative. +Toggle state of the speech device between being quiet and talkative. Useful if you want to continue using an Emacs session that has emacspeak loaded but wish to make the speech shut up. Optional argument PREFIX specifies whether speech is turned off in the current buffer or in all buffers. @@ -275,11 +275,11 @@ @findex dtk-emergency-restart - @kindex control e control s - +@kindex control e control s + @item @kbd{ control e control s } dtk-emergency-restart - Use this to nuke the currently running dtk server and restart it. +Use this to nuke the currently running dtk server and restart it. Useful if you want to switch to another synthesizer while emacspeak is running. Also useful for emergency stopping of speech. @@ -293,11 +293,11 @@ @table @kbd @findex dtk-add-cleanup-pattern - @kindex control e d a - +@kindex control e d a + @item @kbd{ control e d a } dtk-add-cleanup-pattern - Add this pattern to the list of repeating patterns that are cleaned up. +Add this pattern to the list of repeating patterns that are cleaned up. Optional interactive prefix arg deletes this pattern if previously added. Cleaning up repeated patterns results in emacspeak speaking the pattern followed by a repeat count instead of speaking @@ -310,22 +310,22 @@ @findex dtk-select-server - @kindex control e d d - +@kindex control e d d + @item @kbd{ control e d d } dtk-select-server - Select a speech server interactively. +Select a speech server interactively. This will be the server that is used when you next call either M-x dtk-initialize or C-e C-s. Argument PROGRAM specifies the speech server program. @findex dtk-toggle-splitting-on-white-space - @kindex control e d SPACE - +@kindex control e d SPACE + @item @kbd{ control e d SPACE } dtk-toggle-splitting-on-white-space - Toggle splitting of speech on white space. +Toggle splitting of speech on white space. This affects the internal state of emacspeak that decides if we split text purely by clause boundaries, or also include whitespace. By default, emacspeak sends a clause at a time @@ -342,37 +342,37 @@ @findex dtk-set-chunk-separator-syntax - @kindex control e d RETURN - +@kindex control e d RETURN + @item @kbd{ control e d RETURN } dtk-set-chunk-separator-syntax - Interactively set how text is split in chunks. +Interactively set how text is split in chunks. See the Emacs documentation on syntax tables for details on how characters are classified into various syntactic classes. Argument S specifies the syntax class. @findex emacspeak-dial-dtk - @kindex control e d t - +@kindex control e d t + @item @kbd{ control e d t } emacspeak-dial-dtk - Prompt for and dial a phone NUMBER with the Dectalk. +Prompt for and dial a phone NUMBER with the Dectalk. @findex emacspeak-dtk-speak-version - @kindex control e d cap V - +@kindex control e d cap V + @item @kbd{ control e d cap V } emacspeak-dtk-speak-version - Use this to find out which version of the TTS firmware you are running. +Use this to find out which version of the TTS firmware you are running. @findex emacspeak-zap-dtk - @kindex control e d z - +@kindex control e d z + @item @kbd{ control e d z } emacspeak-zap-dtk - Send this command to the TTS engine directly. +Send this command to the TTS engine directly. @end table --- emacspeak-26.0.orig/debian/browsing-sourceforge-download-servers.html +++ emacspeak-26.0/debian/browsing-sourceforge-download-servers.html @@ -0,0 +1,29 @@ + +
+

Sourceforge is a nice service, but it can also be painful to +use because of the heavy-weight Web page design, and the need to +repeatedly click before you get the download you want.

+

The most irksome of these is the download mechanism provided +by Sourceforge --- where you first need to browse a list of +download servers, pick a mirror, and then download what you +want. +Emacspeak implements a Smart URL that enables one to +download from Sourceforge in a single step.

+

By default, this uses a North American mirror; the behavior +can be customized if outside the US. +Use smart URL Sourceforge Browse Mirror and +specify the name of a SF hosted project when prompted. +This brings up the index page for the project's download area, +sorted by date. Move to the bottom of the page and hit +b to move to the latest available download.

+

The smart URL sets up the W3 buffer with a +context-sensitive download function; when on a download link, hit +C-d +to start downloading. This command will prompt for the URL; +rather than hitting return (which would bring you to +the browse mirrors page, hit M-p to get the +download URL for your SF mirror. +Note that this wizard uses GNU wget to perform the +download +via Emacs module w3-wget.

+


--
Posted by T. V. Raman to emacspeak The Complete Audio Desktop at 1/27/2006 08:52:45 PM --- emacspeak-26.0.orig/debian/changelog +++ emacspeak-26.0/debian/changelog @@ -0,0 +1,615 @@ +emacspeak (26.0-3+voxin3) lenny; urgency=high + + * linux-outloud: supply the tcleci.so and atcleci.so libraries. + * linux-outloud/atcleci.cpp, linux-outloud/tcleci.cpp: fix warning + * linux-outloud/langswitch.cpp: fix compilation error + * linux-outloud/Makefile: no libtool, + * espeak, linux-espeak: upstream sources from emacspeak-29.0. + * linux-espeak: supply the tclespeak.so library. + * linux-espeak/tclespeak.cpp: fix warning + * linux-espeak/Makefile: no libtool + * emacspeak.conf: Export the ECIINI variable. + * postinst, emacspeak.conf: no question asked for easing the installation, + the default server is espeak or outloud if the ibmtts libraries have been + installed. + * tts-lib.tcl: fix for stopping espeak. + * control: espeak is required, architecture: any (instead of all) since + the binary speech drivers are now included. + * rules : compile the linux-espeak and linux-outloud speech server + + -- Gilles Casse Thu, 19 Mar 2009 19:09:03 +0100 + +emacspeak (26.0-3+lenny1) testing; urgency=high + + * Non-maintainer upload. + * Backport the fix for preventing symlink attacks from the new upstream + release. (Closes: #496431) + * Use Christian Perrier's patch for stopping the call to + emacspeakconfig. (Closes: #502761) + * Use James Westby's patch to fix the error: + "No `START-INFO-DIR-ENTRY' and no `This file documents'." + during installation. (Closes: #500638) + + -- Kumar Appaiah Sat, 08 Nov 2008 14:11:24 -0600 + +emacspeak (26.0-3) unstable; urgency=low + + * debian/control: depend on w3-el-e21 (thanks to Sam Hartman + , closes:#451867), bump policy to 3.7.3 + (no changes needed), move Homepage: to regular field for the source + package. + * debian/dirs: don't include (empty) directory /usr/bin in package + + + -- James R. Van Zandt Wed, 05 Dec 2007 20:33:01 -0500 + +emacspeak (26.0-2) unstable; urgency=low + + * debian/espeak.blurb: add .blurb file for espeak. + + * debian/control: Suggests: espeak + + * debian/compat: version 5, to match the Build-Depends entry. + + -- James R. Van Zandt Fri, 24 Aug 2007 21:15:48 -0400 + +emacspeak (26.0-1) unstable; urgency=low + + * New upstream release + + -- James R. Van Zandt Wed, 08 Aug 2007 20:24:15 -0400 + +emacspeak (24-3) unstable; urgency=low + + * debian/control: depend on "emacs" so emacs22 would satisfy the + dependency (thanks to Tatsuya Kinoshita , + closes:#434973) + + * debian/emacsen-install: alternative emacspeak.emacs22 inherits its + priority from either emacs22 or emacs22-x. Make extraction of + priority more robust. /usr/share/emacs/site-lisp/emacspeak/lisp + should have only .el files - delete any .elc files there. + + * debian/emacsen-startup: fix spelling of "site-lisp". + + * debian/emacsen-install: configure and compile with ${FLAVOR}, not just + "emacs" (closes:#435317) + + * debian/rules: don't ignore errors on "make clean" (silences lintian + warning). + + -- James R. Van Zandt Sat, 04 Aug 2007 16:20:18 -0400 + +emacspeak (24-2) unstable; urgency=low + + * servers/{dtk-exp,dtk-mv,outloud} updating all tcl servers to use tclsh8.4 + * debian/control: depend on tcl8.4 and tclx8.4. + + -- James R. Van Zandt Thu, 22 Mar 2007 17:43:57 -0400 + +emacspeak (24-1) unstable; urgency=low + + * New upstream release + + * debian/copyright: added (Google) copyright and (BSD style) license + text covering recent additions. + + -- James R. Van Zandt Sun, 6 Aug 2006 18:14:54 -0400 + +emacspeak (23.505-4) unstable; urgency=low + + * debian/control: add link to emacspeak homepage + + -- James R. Van Zandt Sun, 18 Jun 2006 13:40:35 -0400 + +emacspeak (23.505-3) unstable; urgency=low + + * debian/control: depend on perl-5.6|perl, since perl-5.005 isn't + available any more. emacspeak no longer depends on debmake + (closes:Bug#372988). Bump policy version to 3.7.2 (no changes + needed). Convert Build-Depends-Indep to Build-Depends, per lintian + explanation: "The specified package is required to run the clean + target of debian/rules and therefore must be listed in Build-Depends, + even if no architecture-dependent packages are built". + + * debian/doc-base: fix spelling of "emacspeak.txt.gz". + + -- James R. Van Zandt Sun, 18 Jun 2006 12:03:50 -0400 + +emacspeak (23.505-2) unstable; urgency=low + + * debian/control: suggest eflite, don't depend on xemacs21 or emacs20 + * debian/emacsen-install: don't compile for xemacs or emacs20. Don't + replace server or blurb directories with symlinks. Compress the + install log. Don't bother with redundant compiles (i.e. if run only + because another package is being installed). + + -- James R. Van Zandt Sat, 18 Feb 2006 12:01:10 -0500 + +emacspeak (23.505-1) unstable; urgency=low + + * New upstream release (closes:#207393,#291970,#175879,#188224) + * debian/copyright: clarify copyright (closes:#321802,#302599,#292322) + * README.Debian: Revise discussion of ViaVoice (closes:#106480). + Combine with README.debian (closes:#204273) + * debian/control: depend on emacsen-common (closes:#256288) and tclx8.3 + (removing alternative of "tclx", since alternative tclx8.4 doesn't + provide /usr/bin/tcl). Conflict with emacspeak-ss prior to 1.10 + because the speech server interface has changed upstream. Remove + pre-depends on some flavor of emacs, because byte-compiling can be + done whenever a flavor is installed (closes:#232756). Add dependency + on some version of emacs or xemacs. + * added .blurb files for more servers: remote-tcl.blurb decsoft.blurb + * No longer installing symbolic link for /usr/doc/emacspeak. + * added #!/usr/bin/tcl lines to server script tts-lib.tcl just to + silence lintian complaint. (The file is not executed by itself, only + sourced by other scripts.) + * debian/rules: update to use debhelper (closes:#292854,#292322) + * debian/emacsen-startup: add both source directory (with .el files) and + flavor directory (with .elc files) to load-path + * emacspeak-wizards.el, emacspeak-calendar.el: add ;;;###autoload + cookies for several functions + * emacspeak-keymap.el: "emacspeak-gridtext" changed to + "emacspeak-gridtext-apply" and "emacspeak + * install DOC file in documentation directory, install symlinks from + flavor/.../etc/DOC so emacspeak-view-emacspeak-doc (C-e D) works + (closes:#102246) + * emacspeak-wizards.el(emacspeak-generate-documentation): If there is no + key assignment, add whitespace between function name and documentation + string. + * copy all the source files to the flavor directory tree, not just the + elisp files (closes:#351710) + * depend on make (now used during installation) + * byte-compile (at package installation time) using upstream Makefile + * byte-compile for xemacs + * use alternatives to manage /usr/bin/emacspeak and /usr/bin/xemacspeak. + * patch software-dtk sources for compilation under Debian, as + recommended by Mario Lang, mlang@debian.org (closes:#228353). Note: + not tested by the maintainer, because compilation also requires + commercial software. See /usr/share/doc/emacspeak/DTK. + + -- James R. Van Zandt Fri, 30 Jan 2004 20:57:53 -0500 + +emacspeak (17.0-1) unstable; urgency=low + + * emacspeakconfig: tell user how to reconfigure, and that port is + ignored for a software speech synthesizer (closes:Bug#181044) + * add .blurb files for Software DECtalk and Outloud + * emacspeak-eshell.el: delete extraneous space within variable name, per + Raman's posting of 25 Nov + * New upstream release + + -- James R. Van Zandt Sun, 16 Mar 2003 13:02:20 -0500 + +emacspeak (16.0-1) unstable; urgency=low + + * New upstream release + * add texinfo to build-depends (closes:Bug#141265) + * Fix debian/rules to use && not ; for calls to make info + (thanks to hartmans@mit.edu (Sam Hartman)) + * make compilation log world-readable (closes:Bug#167792) + + -- James R. Van Zandt Thu, 18 Jul 2002 20:42:13 -0400 + +emacspeak (15-4) unstable; urgency=low + + * debian/control: change build-depend to build-depend-indep + * debian/: remove *.ex files + + -- James R. Van Zandt Thu, 18 Jul 2002 20:03:29 -0400 + +emacspeak (15-3) unstable; urgency=low + + * debian/rules: install xsl directory (thanks to Dimitry Paduchih + ) + * lisp/emacspeak-setup: add emacspeak-lisp-directory to end of load-path + instead of beginning, and only if "emacspeak" can't be found by + load-library. + * debian/control: build-depend on texi2html and lynx + * debian/control: suggest xsltproc (thanks to Dimitry Paduchih + ) + + -- James R. Van Zandt Fri, 8 Mar 2002 22:01:11 -0500 + +emacspeak (15-2) unstable; urgency=low + + * debian/rules: compile emacspeak-rpm.el and regexp-opt.el + + -- James R. Van Zandt Tue, 25 Dec 2001 15:47:29 -0500 + +emacspeak (15-1) unstable; urgency=low + + * New upstream release + * no longer need to adjust emacspeak-load-path.el or emacspeak-setup.el + * omit /usr/share/emacs/site-lisp/emacspeak/realaudio/.cvsignore + * remove patch from emacspeak-advice.el + * ignore reference to missing "add-css.pl" while building html docs + + -- James R. Van Zandt Sun, 9 Dec 2001 16:13:20 -0500 + +emacspeak (14-4) unstable; urgency=low + + * debian/control: emacs21 will satisfy emacs dependency + (thanks to Saqib Shaikh ) + + -- James R. Van Zandt Sun, 28 Oct 2001 12:49:42 -0500 + +emacspeak (14-3) unstable; urgency=low + + * debian/control: just plain "perl" will satisfy dependency + (closes:bug#113215) + * debian/control: tclx8.3 will satisfy the tclx dependency. + + -- James R. Van Zandt Mon, 24 Sep 2001 20:57:11 -0400 + +emacspeak (14-2) unstable; urgency=low + + * debian/control: depend on perl-5.6 (closes:bug#80728) + * debian/emacspeakconfig: put quotes on both sides of comparison (thanks + to Robert Cymbala cymbaLa@Lafn.org) + * new maintainer email address + + -- James R. Van Zandt Sun, 1 Jul 2001 14:19:26 -0400 + +emacspeak (14-1) unstable; urgency=low + + * New upstream release (closes:Bug#97225) + * debian/control: emacs19 has been removed from unstable, so can't + satisfy a depends (closes:Bug#82682) + * debian/control: move build-depends line to source section. Update to + version 3.5.2. + * debian/watch: support uscan + + -- James R. Van Zandt Sat, 12 May 2001 09:55:50 -0400 + +emacspeak (13.0-3) unstable; urgency=low + + * Just creating ".nosearch" in /usr/share/emacs/emacspeak will prevent + recursion. + + * lisp/emacspeak-speak.el: fix command history voice feedback (thanks to + "Dm. Paduchih" ) + + -- James R. Van Zandt Sun, 24 Dec 2000 18:32:33 -0500 + +emacspeak (13.0-2) unstable; urgency=low + + * README.debian: Raman wants only raman@cs.cornell.edu advertised + * emacspeakconfig: If the user gives a symbolic link as the output + device, test the group of the actual device rather than that of the + link. (Closes:Bug#78708) + * README.debian: Viavoice Outloud instructions shouldn't refer to + emacspeak-11 sources. + * Add files ".nosearch" in many directories so they don't get added to + load-path. + * emacspeak-message.el: line 51 is a comment + + -- James R. Van Zandt Sat, 9 Dec 2000 20:00:38 -0500 + +emacspeak (13.0-1) unstable; urgency=low + + * New upstream release + * emacspeak script: replace "source" with "." to satisfy Bourne shell. + * emacsen-install: byte-compile the elisp files one at a time, in the + same order the source package uses. Don't hide compilation warnings. + Set byte-compile-dynamic true during compilation. + * display byte-compile time estimate (since it's so slow) + * depend on perl. + * fix directory permissions with "chmod -R ugo+rX" + * remove define-theme.elc + + -- James R. Van Zandt Thu, 23 Nov 2000 21:20:32 -0500 + +emacspeak (12.0-4) unstable; urgency=low + + * emacspeak-setup.def: add the source directory to the load + path only if Emacspeak would not be found otherwise (thanks to + Matthew Campbell , Closes:Bug#77490) + + -- James R. Van Zandt Mon, 20 Nov 2000 23:43:13 -0500 + +emacspeak (12.0-3) unstable; urgency=low + + * README.debian: update URL and instructions for viavoice + + -- James R. Van Zandt Sat, 28 Oct 2000 11:28:41 -0400 + +emacspeak (12.0-2) unstable; urgency=low + + * build-depends on debmake and debhelper(Closes:Bug#70373) + + * pre-depend on emacs (Closes:Bug#72192) + + -- James R. Van Zandt Sun, 3 Sep 2000 11:56:12 -0400 + +emacspeak (12.0-1) unstable; urgency=low + + * New upstream release + * info/Makefile: allow chmod to fail. + * Adapt debian/rules to new deep directory structure (lisp files in + lisp/, servers in servers/, etc.). + * debian/rules: The makefile variable controlling the install location + is now "prefix" rather than "PREFIX". + * emacsen-install: lisp files are now in + /usr/share/emacs/site-lisp/emacspeak/lisp + * emacspeak-setup.def: hard code the emacspeak directory + * emacspeak-load-path.def: hard code the emacspeak directory + * rename servers/.servers and add postinst command to assemble the real + servers/.servers at installation time. + * conflict with all previous emacspeak-ss packages. + * move .blurb files to their own directory. + * README.debian: IBM ViaVoice is available only for i386. + + -- James R. Van Zandt Tue, 2 May 2000 21:06:00 -0400 + +emacspeak (11.0-4) unstable; urgency=low + + * info/using.texi: escape `@' in two places. + * info/audio-desktop.texi: Removed leading space before @section and + @subsection commands in four places. + * debian/copyright: remove mention of old GPL location. + * Add debhelper token to postinst and prerm. + + -- James R. Van Zandt Sat, 29 Apr 2000 21:36:01 -0400 + +emacspeak (11.0-3) unstable; urgency=low + + * dtk-speak.el: Back out previous change which added the emacspeak-ss + servers to the list which dtk-select-server accepts. + * emacspeak.def: Register any additional servers for the + dtk-select-server command (control-e d d) + + -- James R. Van Zandt Mon, 27 Dec 1999 18:54:07 -0500 + +emacspeak (11.0-2) unstable; urgency=high + + * My changes to emacspeak-setup.def included a syntax error. Fixed. + * Install tts-lib.tcl. + * dtk-speak.el has a list of speech servers which can be invoked while + running. Add the six speech servers in the emacspeak-ss package: + accent, apollo, braillenspeak, ciber, doubletalk, hablado. + + -- James R. Van Zandt Thu, 9 Dec 1999 20:35:03 -0500 + +emacspeak (11.0-1) unstable; urgency=low + + * New upstream release + + -- James R. Van Zandt Wed, 1 Dec 1999 20:09:53 -0500 + +emacspeak (10.0-6) unstable; urgency=low + + * Manpage updates: Raman's email, other speech servers, blinux ftp site. + * emacspeakconfig fixes: $PORT is a device rather than a file, don't + export DTK_TCL if it's the null string (thanks to Matt Campbell + ) + + -- James R. Van Zandt Sat, 27 Nov 1999 20:31:37 -0500 + +emacspeak (10.0-5) unstable; urgency=low + + * Fix line wrap in Description. + * Add symlink from /usr/doc/emacspeak to /usr/share/doc/emacspeak + + -- James R. Van Zandt Sat, 11 Sep 1999 16:23:38 -0400 + +emacspeak (10.0-4) unstable; urgency=low + + * Startup and w3 fixes by Matthew Campbell + * Update to FHS + * Update GPL reference in copyright file + + -- James R. Van Zandt Mon, 6 Sep 1999 20:53:34 -0400 + +emacspeak (10.0-3) unstable; urgency=low + + * Compile with --no-site-file --no-init-file (closes Bug#40474) + + -- James R. Van Zandt Thu, 1 Jul 1999 19:07:10 -0400 + +emacspeak (10.0-2) unstable; urgency=low + + * Move NEWS-10 to replace NEWS (since the latter is for version 9.0) + * Remove extra space in the info page node title "Speech + Output Control" which breaks info readers. + + -- James R. Van Zandt Sat, 26 Jun 1999 12:13:39 -0400 + +emacspeak (10.0-1) unstable; urgency=low + + * New upstream release + * Follow Debian emacsen policy: byte-compile during installation (of + either this package, or a new flavor of emacs) rather than at + package build time. + * Provide one-line program description for Info directory. + * Register documentation using doc-base. + * Supports emacs19 as well as emacs20 (but not xemacs). + + -- James R. Van Zandt Sun, 16 May 1999 20:34:59 -0400 + +emacspeak (9.0-4) unstable; urgency=low + + * Fix ring.au with sox (add header). + + -- James R. Van Zandt Wed, 30 Dec 1998 19:40:10 -0500 + +emacspeak (9.0-3) unstable; urgency=low + + * Add emacspeak list subscription info to README.debian. + + -- James R. Van Zandt Tue, 1 Dec 1998 21:59:33 -0500 + +emacspeak (9.0-2) unstable; urgency=high + + * Pay attention to DTK_PORT and DTK_OS again. (Patch provided by + upstream maintainer.) + + -- James R. Van Zandt Sun, 8 Nov 1998 20:17:27 -0500 + +emacspeak (9.0-1) unstable; urgency=low + + * Fix explain to find key bindings for "outline" commands. + * In explain, correctly extract docs from several existing sections. + * In .texinfo file, add references to new sections. + * Install FAQ. + * New upstream release + + -- James R. Van Zandt Sun, 1 Nov 1998 15:24:42 -0500 + +emacspeak (8.0-3) unstable; urgency=low + + * remote-tcl needs 755 permissions. + * Provide feedback as you hit backspace within incremental search. + (Patch by upstream maintainer.) + + -- James R. Van Zandt Fri, 28 Aug 1998 21:52:45 -0400 + +emacspeak (8.0-2) unstable; urgency=low + + * Removed extra copy of *.info* files from documentation directory. + * Added upstream file NEWS to the documentation directory. + * Added "tables.html" file which was missing from distribution (but + was supplied by upstream maintainer via email). + + -- James R. Van Zandt Sun, 17 May 1998 14:18:43 -0400 + +emacspeak (8.0-1) unstable; urgency=low + + * New upstream release + + -- James R. Van Zandt Sun, 17 May 1998 11:21:11 -0400 + +emacspeak (7.0-5) frozen unstable; urgency=low + + * Added quotes in configuration script to eliminate some "unary + operator expected" warnings. + + -- James R. Van Zandt Wed, 18 Mar 1998 22:44:09 -0500 + +emacspeak (7.0-4) unstable; urgency=low + + * The configuration script now collects menu choices from each server + package (.blurb files), so it will not show unavailable choices and + does not need updating when new server packages are released. It also + allows the user to abort the configuration. + * Requires emacs20. + * Substituted new files dtk-exp, dtk-mv, and speech-server from upstream + developer. (He did not release a new emacspeak package.) These work + with tcl 7.5 and 8.0 (and presumably versions in between). + + -- James R. Van Zandt Tue, 10 Mar 1998 19:44:09 -0500 + +emacspeak (7.0-3) unstable; urgency=low + + * emacs19 or emacs20 will satisfy dependency + * Priority "extra" (requires special hardware) + + -- James R. Van Zandt Sat, 21 Feb 1998 16:06:27 -0500 + +emacspeak (7.0-2) unstable; urgency=low + + * Revised documentation and configure script to fix nomenclature: the + program used to access the speech device is a "speech server" rather + than a "driver". + + -- James R. Van Zandt Fri, 13 Feb 1998 21:10:14 -0500 + +emacspeak (7.0-1) unstable; urgency=high + + * New upstream version with these improvements: + 1) Usability enhancements including: + a) Smart prefix recognition + b) Flexible customization of dictionaries + c) Pause and resume + d) Lazy voice-lock for faster audio formatting + e) Enhanced outline support + 2) Support for games including gomoku and tetris. + 3) Better support for running remote sessions. + 4) Supports many additional major modes. + + Preliminary support for the recently released Emacs 20. + * Documentation scripts improved to include more key codes. + + -- James R. Van Zandt Sat, 15 Nov 1997 13:48:57 -0500 + +emacspeak (6.0-4) unstable; urgency=low + + * configuration script presents previous values as defaults, + and sets DTK_DISPLAY. + + -- James R. Van Zandt Sun, 12 Oct 1997 18:01:51 -0400 + +emacspeak (6.0-3) stable; urgency=low + + * update configuration scripts to allow for DoubleTalk PC + * generate plain text version of documentation + + -- James R. Van Zandt Sun, 10 Aug 1997 17:38:56 -0400 + +emacspeak (6.0-2) unstable; urgency=low + + * tclx76 also satisfies the dependency + + -- James R. Van Zandt Sun, 1 Jun 1997 20:59:51 -0400 + +emacspeak (6.0-1) unstable; urgency=medium + + * New upstream version with these improvements: + 1) Support for WWW ACSS (Aural Cascading Style Sheets) + 2) Audio formatted output for rich text + 3) Enhanced support for browsing tables + 4) Support for speaking commonly used ISO Latin characters + 5) Speech support for the Emacs widget libraries + 6) Support for SGML mode + 7) an automatically generated users manual + (The last feature was adopted from the Debian package for + Emacspeak 5.0) + * In Makefile: added ";\" to a command line in the install target, + so the preceding "if" clause is completed by the following "fi". + In the call to info/make install, fixed the initialization of + variable infodir. + * In info/Makefile: fixed initialization of variable infodir, so it + doesn't include a space. Also added a command to actually install + the info pages. + * Translating the .texinfo documentation into HTML. + * In emacspeak-eterm.el, fix spelling of "contents" in + emacspeak-eterm-toggle-review docs, and added period in + emacspeak-eterm-maybe-send-raw docs. + * Improved the description of eterm screen review mode. + + -- James R. Van Zandt Sat, 3 May 1997 22:53:28 -0400 + +emacspeak (5.0-2) frozen unstable; urgency=high + + * Variables in /etc/emacspeak.conf now have $ signs and variables + are exported to the environment. (Previously, config file had no + effect). postinst now fixes up previous config file. + + -- James R. Van Zandt Sun, 20 Apr 1997 20:29:14 -0400 + +emacspeak (5.0-1) unstable stable; urgency=low + + * Added line to emacspeak script to source /etc/emacspeak.conf which sets + environment variables. Added emacspeakconfig to set the default + values, and to add or subtract users from whatever group owns the + output device. + * Building documentation files on the fly: concatenating all the source + files, then running perl script `explain' to extract the docs into + separate .texinfo files, then running makeinfo on the master + .texinfo file to build the .info files. Put extra commands for + this into debian/debMakefile, and added an include line in + Makefile. + * Makefile could not install to a different directory than the + configured directory. Moved the line `make config CWD=$(libdir)' + to permit this. + * Initial Release. + + -- James R. Van Zandt Wed, 5 Mar 1997 21:51:04 -0500 + + +emacspeak (7.0-1) unstable; urgency=low + + * Initial Release. + + -- James R. Van Zandt Sat, 15 Nov 1997 13:48:57 -0500 + + --- emacspeak-26.0.orig/debian/postinst +++ emacspeak-26.0/debian/postinst @@ -0,0 +1,94 @@ +#! /bin/sh +# postinst script for emacspeak +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package +# + +build_conf(){ + if [ -e "/opt/IBM/ibmtts/lib/libibmeci.so" ]; then + DTK_PROGRAM=outloud + DTK_DEVICE="Viavoice outloud" + else + DTK_PROGRAM=espeak + DTK_DEVICE="eSpeak" + fi + + cat </etc/emacspeak.conf +# emacspeak configuration file +# +# +if [ "\$DTK_PROGRAM" = "" ]; then + DTK_PROGRAM=$DTK_PROGRAM +fi +if [ "\$DTK_PORT" = "" ]; then + DTK_PORT= +fi +if [ "\$DTK_TCL" = "" ]; then + DTK_TCL=tcl +fi +if [ "\$DTK_DEVICE" = "" ]; then + DTK_DEVICE="$DTK_DEVICE" +fi +export DTK_PROGRAM DTK_PORT DTK_DEVICE +if [ "\$DTK_TCL" != "" ]; then export DTK_TCL; fi + +export ECIINI=/var/opt/IBM/ibmtts/cfg/eci.ini + +EOF +} + +case "$1" in + configure) + build_conf + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# GC: for easing the installation, no question is asked at installation time +# +# # original config file was missing the `$' characters on the variable names +# # insert them if necessary +# if [ -f /etc/emacspeak.conf ]; then +# sed 's/^if *\[ *"DTK/if \[ "$DTK/' /etc/emacspeak.conf >/etc/temp.$$ +# mv /etc/temp.$$ /etc/emacspeak.conf +# if grep 'export' /etc/emacspeak.conf >/dev/null; then +# true; +# else +# cat >>/etc/emacspeak.conf <<\EOF +# export DTK_PROGRAM DTK_PORT DTK_TCL +# EOF +# fi +# fi + +# emacspeakconfig -i + + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + --- emacspeak-26.0.orig/debian/decthree.blurb +++ emacspeak-26.0/debian/decthree.blurb @@ -0,0 +1,4 @@ +blurb: DECtalk 3 +program: dtk-mv +tcl: tcl +device: DECtalk 3 --- emacspeak-26.0.orig/debian/README.Debian +++ emacspeak-26.0/debian/README.Debian @@ -0,0 +1,92 @@ +emacspeak for DEBIAN +---------------------- + +Emacspeak is authored by T. V. Raman . These +are the primary changes made in building the Debian package: html and +plain text versions of the documentation were added. A configuration +script (/usr/sbin/emacspeakconfig) and associated speech server +descriptions (/usr/share/emacs/site-lisp/emacspeak/blurbs/*) were +added. Manual pages for emacspeak and the configuration script were +added. Minor changes are listed in changelog.Debian. + +The user is expected to start emacspeak with /usr/bin/emacspeak, which +gets configuration parameters from /etc/emacspeak.conf and starts +emacs with emacspeak support. + +Before it is used, Emacspeak must be configured by root, by running +'emacspeakconfig -i'. + +Several "flavors" of emacs may be installed at the same time (emacs20, +emacs21, xemacs21, etc.). In accordance with the Debian emacs policy, +emacspeak is byte-compiled separately for each supported flavor - +currently only emacs21. There is a separate script to start each +flavor of emacs with emacspeak support - for example, +/usr/bin/emacspeak.emacs21. /usr/bin/emacspeak is actually a symlink +managed by the "alternatives" mechanism. That is, it points to +/etc/alternatives/emacspeak, which points to one of several links like +/usr/bin/emacspeak.emacs21. (See the manpage for +update-alternatives.) + +The alternatives for emacspeak inherit their priorities from the +corresponding emacs packages. So, as long as the emacs and emacspeak +alternatives are in "automatic" mode, both "emacs" and "emacspeak" +will start emacs21. If someday an emacs22 package is installed, with +priority higher than for emacs 21, then by default both "emacs" and +"emacspeak" will start emacs22. + +The administrator can use update-alternatives to change which flavor +is started by either /usr/bin/emacs or /usr/bin/emacspeak. Or, of +course, any user can use one of the flavor-specific links like +/usr/bin/emacspeak.emacs21 to start whichever flavor he wants. + +Starting with version 11.0, the Emacspeak sources include a speech +server written in C++ for the IBM ViaVoice speech synthesis software. +However, it depends on the ViaVoice runtime kit which does not meet +the Debian Free Software Guidelines. (It is available only as object +code, and only under a temporary license.) Therefore, support for +ViaVoice is not included in this Debian package. If you would like to +try it, you can find some information in +/usr/share/docs/emacspeak/VIAVOICE. + +Starting with version 10.0, Dr. Raman has rewritten the documentation +files. Approximately 100 commands are described there, compared to +over 800 in the documentation shipped with the previous release. +Therefore, the user should pay particular attention to the section +"Using Online Help". + +Many command-line applications can be run under emacs, and can +therefore be made accessible with emacspeak. Much of this is +explained in the documentation entitled "Running Terminal Based +Applications". However, it is worth emphasizing this point: "For +regular shell interaction just use M-x shell instead of using the +terminal emulator." + +The example file "tables.html" was supplied by Dr. Raman in a separate +email. It may be found in /usr/doc/emacspeak/examples. It includes a +sample table with three columns (labeled "item", "date", and +"amount"), and three rows. For a discussion of the support for tables +in emacspeak and w3, see NEWS (or NEWS.gz) in /usr/doc/emacspeak. + +The Emacspeak-HOWTO contains additional documentation. The plain text +form of this can be found in the Debian package doc-linux, and is +installed as /usr/doc/HOWTO/Emacspeak-HOWTO.gz. Other formats are +also available. For example, these can be found at sunsite.unc.edu: + + /pub/Linux/docs/HOWTO/other-formats/dvi/Emacspeak-HOWTO.dvi.gz + /pub/Linux/docs/HOWTO/other-formats/html/Emacspeak-HOWTO-html.tar.gz + /pub/Linux/docs/HOWTO/other-formats/ps/Emacspeak-HOWTO.ps.gz + /pub/Linux/docs/HOWTO/other-formats/sgml/Emacspeak-HOWTO.sgml.gz + +There is also an Emacspeak mailing list. To subscribe, send a message +to: + + emacspeak-request@cs.vassar.edu + +with a subject of: + + subscribe + +James R. Van Zandt , Mon Jan 30 21:36:59 EST 2006 + + + -- Christian Perrier , Sat, 25 Oct 2008 13:31:18 z --- emacspeak-26.0.orig/debian/decexp.blurb +++ emacspeak-26.0/debian/decexp.blurb @@ -0,0 +1,4 @@ +blurb: DECtalk Express +program: dtk-exp +tcl: tcl +device: DECtalk Express --- emacspeak-26.0.orig/debian/watch +++ emacspeak-26.0/debian/watch @@ -0,0 +1,15 @@ +# Example watch control file for uscan +# Rename this file to "watch" and then you can run the "uscan" command +# to check for upstream updates and more. +# See uscan(1) for format + +# Compulsory line, this is a version 3 file +version=3 + +# Uncomment to find new files on sourceforge, for debscripts >= 2.9 +# http://sf.net/emacspeak/emacspeak-(.*)\.tar\.bz2 debian uupdate + +# this doesn't seem to work either +#ftp://ftp.sf.net/pub/sourceforge/e/em/emacspeak/emacspeak-(.*)\.tar\.bz2 debian uupdate +ftp://heanet.dl.sourceforge.net/e/em/emacspeak/emacspeak-(.*)\.tar\.bz2 debian uupdate +# ftp://heanet.dl.sourceforge.net/g/gp/gpsbabel/gpsbabel-([0-9a-z.]+)\.tar.gz debian uupdate --- emacspeak-26.0.orig/debian/emacspeakconfig +++ emacspeak-26.0/debian/emacspeakconfig @@ -0,0 +1,476 @@ +#!/bin/sh +# +# emacspeakconfig - configuration script for emacspeak +# +# This script sets values in /etc/emacspeak.conf, which override the +# defaults compiled into emacspeak TCL scripts and .elc files. +# Values in the user's environment will override those in +# /etc/emacspeak.conf +# +# Written by Jim Van Zandt for Debian Linux, +# and hereby placed in the public domain for use by anyone. + +set -e + +CFG=/etc/emacspeak.conf +GROUPFILE=/etc/group +DRIVERDIR=/usr/lib/emacs/common/emacspeak/drivers +USUAL=/usr/share/emacs/site-lisp/emacspeak + +# on a Slackware or Red Hat system, a user may attempt configuration +# with awk missing. +if [ -x /usr/bin/awk -o -x /bin/awk ]; then true; else +cat <$CFG <<\EOF +# emacspeak configuration file +# +# +if [ "$DTK_PROGRAM" = "" ]; then + DTK_PROGRAM= +fi +if [ "$DTK_TCL" = "" ]; then + DTK_TCL= +fi +if [ "$DTK_PORT" = "" ]; then + DTK_PORT= +fi +if [ "$DTK_DEVICE" = "" ]; then + DTK_DEVICE= +fi +if [ "$ECIINI" = "" ]; then + export ECIINI=/var/opt/IBM/ibmtts/cfg/eci.ini +fi +export DTK_PROGRAM DTK_PORT DTK_DEVICE +if [ "$DTK_TCL" != "" ]; then export DTK_TCL; fi +EOF +fi + +# if the configuration file does not set the DTK_DEVICE variable, then +# add that section +if grep 'export.*DTK_DEVICE' $CFG >/dev/null ; then + true +else + awk ' + / *export/{ + print "if [ \"$DTK_DEVICE\" = \"\" ]; then"; + print "DTK_DEVICE="; + print "fi"; + print "export DTK_PROGRAM DTK_PORT DTK_DEVICE"; + print "if [ \"$DTK_TCL\" != \"\" ]; then export DTK_TCL; fi"; + next;} + {print;}' $CFG > $CFG.TMP && mv $CFG.TMP $CFG +fi + +# return success if answer is "yes" +yesno() { +# first argument is question +# second argument is default answer +while true; do + echo -n "$1 [$2]: "; read ans; + if [ "$ans" = "" ]; then ans=$2; fi + if [ "$ans" = "y" -o "$ans" = "Y" -o "$ans" = "yes" ]; then return 0; fi + if [ "$ans" = "n" -o "$ans" = "N" -o "$ans" = "no" ]; then return 1; fi +done +} + +# set TEXT to a string typed by the user +text() { +# first argument is question +# second argument is default answer +echo -n "$1 [$2]: "; read ans; +if [ "$ans" = "" ]; then ans=$2; fi +TEXT=$ans +} + +# get parameters for some new synthesizer +request_params() { + text "Please enter the name of the synthesizer" "$DEVICE"; DEVICE=$TEXT + if [ "$TCL" = "tcl" ]; then IS_TCL=y; else IS_TCL=n; fi + if yesno "Is the speech server a TCL script? " $IS_TCL ; then + echo "These files in $USUAL/servers appear to be TCL scripts:" + (cd $USUAL/servers; grep -l dectalk_globals * 2>/dev/null) + text "Please enter the name (not path) of the $DEVICE speech server" \ + ${PROGRAM:-$TCL} + PROGRAM=$TEXT + TCL=tcl; + else + text "Please enter the full path name of the $DEVICE speech server" \ + ${PROGRAM:-$TCL} + TCL=$TEXT + PROGRAM=; + fi; + if echo $PORT|grep '^/dev/ttyS' >/dev/null; then ans=y; else ans=n; fi; + if yesno "Is the $DEVICE connected to a serial port?" $ans ; then + true; + else + valid=no; + while [ "$valid" = "no" ]; do + text "Please enter the device (for example, /dev/lp0): " \ + ${PORT:-/dev/lp0} + PORT=$TEXT; + if check_port; then valid=yes; fi + done + HAVE_PORT=yes; + fi; + +# echo "PROGRAM=$PROGRAM, TCL=$TCL, PORT=$PORT" +} + +# print warning if a program does not exist +check_pgm() { +if [ -x $TCL -o -x /usr/bin/$TCL ]; then true; else + echo + echo "NOTICE: Before using Emacspeak, please install" + echo " $TCL" + echo + echo -n "Press Enter to continue: "; read junk; +fi +} + +# return success if $PORT is (or will be) a valid character device +check_port() { + +if [ -c "$PORT" ]; then return 0; fi +echo "$PORT is not a character device" +yesno "Will $PORT be compiled into the kernel or loaded as a module?" "y" +} + +# give a user a supplementary group ID +# +# usage: enroll user1[,user2...] group1[,group2...] +enroll() { +set -e +awk ' +BEGIN { + FS=":"; + OFS=":"; + if (ARGC<4) { + print "requires two arguments" >"/dev/stderr"; + exit(1); + } + userlist=ARGV[1]; + if (userlist!~/^[a-z][a-z,]*$/) { + print "invalid user list" >"/dev/stderr"; + exit(1); + } + nu=split(userlist,user,","); + grouplist=ARGV[2]; + if (grouplist!~/^[a-z][a-z,]*$/) { + print "invalid group list" >"/dev/stderr"; + exit(1); + } + ng=split(grouplist,group,","); +# printf("%d users: ",nu); +# for (i=1; i<=nu; i++) printf("%s ", user[i]); +# printf("\n"); +# printf("%d groups: ",ng); +# for (i=1; i<=nu; i++) printf("%s ", group[i]); +# printf("\n"); + ARGC=2; + ARGV[1]=ARGV[3]; +} +{ + for (i=1; i<=ng; i++) { + if ($1~group[i]) { + if (NF==3) { # no group members yet + $4=userlist; + } else { # already some group members + delete names; + delete member; + split($4,names,","); + for (j in names) {member[names[j]]=1;} + for (j=1;j <= nu;j++) {member[user[j]]=1;} + $4=""; + for (name in member) {$4=$4 "," name;} + $4=substr($4, 2); + } + } + } + print; +}' $1 $2 $GROUPFILE >$GROUPFILE.$$ && mv $GROUPFILE.$$ $GROUPFILE +} + +# take a supplementary group ID away from a user +# +# usage: dismiss user1[,user2...] group1[,group2...] +dismiss() { +set -e +awk ' +BEGIN { + FS=":"; + OFS=":"; + if (ARGC<4) { + print "requires two arguments" >"/dev/stderr"; + exit(1); + } + userlist=ARGV[1]; + if (userlist!~/^[a-z][a-z,]*$/) { + print "invalid user list" >"/dev/stderr"; + exit(1); + } + nu=split(userlist,user,","); + grouplist=ARGV[2]; + if (grouplist!~/^[a-z][a-z,]*$/) { + print "invalid group list" >"/dev/stderr"; + exit(1); + } + ng=split(grouplist,group,","); +#printf("userlist=%s\n",userlist); +#printf("%d users: ",nu); for (i=1; i<=nu; i++) printf("%s ", user[i]); printf("\n"); +#printf("%d groups: ",ng); for (i=1; i<=nu; i++) printf("%s ", group[i]); printf("\n"); + ARGC=2; + ARGV[1]=ARGV[3]; +} +{ + for (i=1; i<=ng; i++) { + if ($1~group[i]) { + if (NF==3) { # no group members yet + } else { # already some group members + delete names; + delete member; + split($4,names,","); + for (j in names) {member[names[j]]=1;} + for (j=1;j <= nu;j++) {delete member[user[j]];} + $4=""; + for (name in member) {$4=$4 "," name;} + $4=substr($4, 2); + } + } + } + print; +}' $1 $2 $GROUPFILE >$GROUPFILE.$$ && mv $GROUPFILE.$$ $GROUPFILE +} + +# get the current parameter values (if any) from the configuration file +if [ -s $CFG ]; then + PORT=`awk 'BEGIN{FS="="}/^ *DTK_PORT/{print $2}' $CFG` + TCL=`awk 'BEGIN{FS="="}/^ *DTK_TCL/{print $2}' $CFG` + PROGRAM=`awk 'BEGIN{FS="="}/^ *DTK_PROGRAM/{print $2}' $CFG` + DEVICE=`awk ' + / *DTK_DEVICE="?.*"?/{ + word=substr($0,index($0,"=")+1); + gsub(/\"/,"",word); + if (length(word) == 0) word="DECtalk Express"; + print word; + }' $CFG` +fi +HAVE_PORT=no; + +#echo initial values are: PROGRAM=$PROGRAM TCL=$TCL PORT=$PORT DEVICE=$DEVICE +#echo getting speech server choice + +# There must be a file foo.blurb in $BLURBS for each distinct +# combination of speech server and hardware device. It contains lines +# beginning with a single word and a colon (anything else is ignored). +# The valid words are +# blurb: the description to print +# device: value for DTK_DEVICE (supplies default for next time) +# tcl: value for DTK_TCL +# program: value for DTK_PROGRAM + +# get synthesizer name +if [ $initial = no -o "$PROGRAM" = "" -o "$TCL" = "" ]; then + valid=no + while [ $valid = no ]; do + + # first pass: print menu + awk ' + BEGIN { + printf("Please enter the number of your choice:\n\n"); + ARGC=1; + cmd = "ls " ARGV[1] "/blurbs/*.blurb"; + while (cmd|getline >0){bname[++n] = $1;} + for (i = 1; i <= n; i++){ + while (getline < bname[i] > 0){ + if ($0 ~ /^blurb:/){$1 = ""; blurb[i] = $0;} + if ($0 ~ /^program:/){program[i] = $2;} + if ($0 ~ /^tcl:/){tcl[i] = $2;} + if ($0 ~ /^device:/){$1 = ""; device[i] = $0;} + } + close(bname[i]); + printf(" %2d %s\n", i, blurb[i]); + } + printf(" o other. I can provide the filename\n"); + printf(" a abort, and restart configuration after\n"); + printf(" installation of another speech server package\n"); + }' $USUAL "$DEVICE" + + # second pass: determine default choice + area=`awk ' + BEGIN { + ARGC=1; + cmd = "ls " ARGV[1] "/blurbs/*.blurb"; + while (cmd|getline >0){bname[++n] = $1;} + for (i = 1; i <= n; i++){ + while (getline < bname[i] > 0){ + if ($0 ~ /^blurb:/){$1 = ""; blurb[i] = $0;} + if ($0 ~ /^program:/){program[i] = $2;} + if ($0 ~ /^tcl:/){tcl[i] = $2;} + if ($0 ~ /^device:/){$1 = ""; device[i] = $0;} + } + if (index(device[i],ARGV[2])){deflt=i;} + if (index(device[i],"DECtalk Express")){decexp=i;} + close(bname[i]); + } + if (deflt == 0) print decexp; + print deflt; + }' $USUAL "$DEVICE" ` + + # get answer from user + text "Number" $area; area=$TEXT + + # third pass: set shell variables according to his choice + eval `awk ' + BEGIN { + ARGC=1; + cmd = "ls " ARGV[1] "/blurbs/*.blurb"; + while (cmd|getline >0){bname[++n] = $1;} + for (i = 1; i <= n; i++){ + while (getline < bname[i] > 0){ + if ($0 ~ /^blurb:/){$1 = ""; blurb[i] = $0;} + if ($0 ~ /^program:/){program[i] = $2;} + if ($0 ~ /^tcl:/){tcl[i] = $2;} + if ($0 ~ /^device:/){$1 = ""; device[i] = $0;} + } + if (i == ARGV[2]){ + sub(/^ */,"",device[i]); + printf("PROGRAM=%s; TCL=%s; DEVICE=\"%s\"; valid=yes;\n", \ + program[i], tcl[i], device[i]); + } + } + }' $USUAL $area` + if [ "$area" = "a" ]; then exit 0; fi + if [ "$area" = "0" -o "$area" = "o" -o "$area" = "O" ]; then + request_params; + fi + if [ "$PROGRAM" = "none" -o "$PROGRAM" = "" ]; then check_pgm; fi + done +fi + +#echo new values are: DEVICE=$DEVICE PROGRAM=$PROGRAM TCL=$TCL PORT=$PORT + +# get unix device +if [ "$DEVICE" = "DoubleTalk PC" ]; then + IN_PORT=/dev/dtlk +else + IN_PORT=$PORT + if [ "$IN_PORT" = "" -o "$IN_PORT" = "/dev/dtlk" ]; then + IN_PORT=/dev/ttyS0; + fi +fi +if [ $HAVE_PORT = no ]; then + if [ $initial = no -o "$PORT" = "" ]; then + valid=no + while [ $valid = no ]; do + text " + Your speech synthesizer is connected to which port, if any? + (The first serial port would be /dev/ttyS0. + This is ignored for a software synthesizer)" $IN_PORT + PORT=$TEXT + if check_port $PORT; then valid=yes; fi + done + fi +fi + +#echo " " +#echo emacspeak is configured for $DEVICE attached to $PORT + +# adjust unix device group membership if needed +if [ -c "$PORT" ]; then + DEVICEGROUP=`ls -l -L $PORT|awk '{print $4}'` +else + if [ "$DEVICE" = "DoubleTalk PC" -a -f /etc/makedev.cfg ]; then + DEVICEGROUP=`awk '/audio:/{print $4}' /etc/makedev.cfg` + else + DEVICEGROUP=audio + fi + echo "$PORT is assumed to be in group: $DEVICEGROUP" +fi + +if [ $DEVICEGROUP = root ]; +then + echo "$PORT is in group: root" + echo "please move it to another group with chown," + echo "then repeat emacspeak configuration" + exit 1 +fi + +# skip the enrolling of additional users if there is already at least +# one user, and it's the initial installation +MEMBERS=`grep ^${DEVICEGROUP} $GROUPFILE|awk 'BEGIN{FS=":"}{print $4}'` +if [ "$MEMBERS" = "" -o $initial = no ]; +then + echo " " + echo $PORT can be accessed by members of the group: $DEVICEGROUP. + if [ "$MEMBERS" = "" ]; + then echo "Currently, no users are in group $DEVICEGROUP"; + else echo "Currently, these users are in group $DEVICEGROUP: $MEMBERS"; + fi + finished=no + while [ $finished = no ]; do + echo " " + echo "If you wish to enroll any other users into group $DEVICEGROUP," + echo "(even if their accounts have not been created yet)," + echo -n "please list their usernames here separated by commas: " + read USERS + if [ "$USERS" = "" ] || enroll $USERS $DEVICEGROUP; then + finished=yes; + fi + done + finished=no + while [ $finished = no ]; do + echo " " + echo "If you wish to remove any users from group $DEVICEGROUP," + echo -n "please list their usernames here separated by commas: " + read USERS + if [ "$USERS" = "" ] || dismiss $USERS $DEVICEGROUP; then + finished=yes; + fi + done +fi + +echo " " +echo "You may reconfigure emacspeak at any time by running emacspeakconfig as root" + +# make sure the group has both read and write permissions +if [ -e "$PORT" ]; then chmod g+rw $PORT; fi + +# update the configuration file +sed -e "s@^ *DTK_PROGRAM=.*@ DTK_PROGRAM=$PROGRAM@" \ + -e "s@^ *DTK_PORT=.*@ DTK_PORT=$PORT@" \ + -e "s@^ *DTK_TCL=.*@ DTK_TCL=$TCL@" \ + -e "s@^ *DTK_DEVICE=.*@ DTK_DEVICE=\"$DEVICE\"@" \ + $CFG > $CFG.TMP && mv $CFG.TMP $CFG --- emacspeak-26.0.orig/debian/bbc-channels-on-emacspeak.html +++ emacspeak-26.0/debian/bbc-channels-on-emacspeak.html @@ -0,0 +1,36 @@ + +
+

Since the BBC's various channels are what I listen to the +most, launching BBC channels has always been a couple of +keystrokes in Emacspeak. As a first step, directory +realaudio/radio contains shortcut files for +launching live streams from the various BBC channels.

+

+In addition, module emacspeak-url-template defines a +number of Smart URLs for single-click access to BBC +programs. The ones I use the most are:

+ +
    +
  • Smart URL BBC Channels On Demand, and
  • +
  • Smart URL BBC Genres On Demand
  • +
+

+These smart URLs prompt for the channel or genre +respectively and bring up a Web page that lists the various shows +that are available --- note that the BBC archives shows for a +whole week. +The resulting Web page is easy to browse in W3; the most +effective way to skim the buffer is to repeatedly hit +i which moves through the various items on the page. +Hitting e e (that's the letter e +twice) while on a hyperlink will launch the +corresponding media stream by calling a context-aware +command that knows about transforming the URL to one that +accesses the program stream; --- note that simply following the +hyperlink will get you first to a page about the program, rather +than to the program stream itself.

+

To find out what channels and genres are available, browse the +BBC Web site --- channel and genre names are not hard-wired into +Emacspeak since these can change over time with channels and +genres being added or renamed.

+


--
Posted by T. V. Raman to emacspeak The Complete Audio Desktop at 1/27/2006 08:43:48 PM --- emacspeak-26.0.orig/debian/dtksoft.blurb +++ emacspeak-26.0/debian/dtksoft.blurb @@ -0,0 +1,4 @@ +blurb: Software DECtalk +program: dtk-soft +tcl: tcl +device: Software DECtalk --- emacspeak-26.0.orig/debian/decsoft.blurb +++ emacspeak-26.0/debian/decsoft.blurb @@ -0,0 +1,4 @@ +blurb: Software DECtalk +program: dtk-soft +tcl: tcl +device: sound card with Software DECtalk --- emacspeak-26.0.orig/debian/emacspeak-initialization +++ emacspeak-26.0/debian/emacspeak-initialization @@ -0,0 +1,35 @@ +Following is Raman's sample code to add to ~/.emacs to start +emacspeak. File locations are different in a Debian system. - Jim Van Zandt + +emacspeak initialization... +Anyone who copies this blindly without bothering to +understand what it does will get what they deserve:-) + + ;;{{{ Load and customize emacspeak + + + (unless (featurep 'emacspeak) + (load-file + (expand-file-name "~/emacs/lisp/emacspeak/emacspeak-setup.el"))) + + (when (featurep 'emacspeak) + (declare (special emacspeak-play-program emacspeak-play-args + emacspeak-auditory-icon-function + dtk-default-speech-rate)) + (if (file-exists-p "/usr/demo/SOUND/play") + (setq + emacspeak-play-program "/usr/demo/SOUND/play" + emacspeak-play-args "-i" + emacspeak-auditory-icon-function + 'emacspeak-play-auditory-icon)) + (if (file-exists-p "/usr/bin/audioplay") + (setq + emacspeak-play-program "/usr/bin/audioplay" + emacspeak-play-args "-i" + emacspeak-auditory-icon-function 'emacspeak-play-auditory-icon)) + (setq dtk-default-speech-rate 485) + (emacspeak-pronounce-load-dictionaries "~/.emacspeak/.dictionary") + (dtk-set-rate 480 t) + (unless blackdog-p (emacspeak-toggle-auditory-icons t))) + + ;;}}} --- emacspeak-26.0.orig/debian/playing-sudoku-using-auditory-feedback.html +++ emacspeak-26.0/debian/playing-sudoku-using-auditory-feedback.html @@ -0,0 +1,105 @@ + +
+

Emacspeak speech-enables SuDoKu implemented by sudoku.el. +Speech-enabling games is an effective means of discovering what +additions one needs to make to an auditory interface for +working effectively in an eyes-free environment --- this was +aptly demonstrated a few years ago by identifying interesting +conversational gestures by speech-enabling the game of +Tetris --- see Conversational +Gestures For The Audio Desktop from Assets 1998.

+ + +

Advicing Interactive Commands

+

As with speech-enabling any Emacs module, +emacspeak-sudoku advices all interactive +commands to produce spoken feedback. +In addition to speaking the cell moved to, all navigation +commands produce an auditory icon that is a function of whether +the cell value is mutable --- original values cannot be changed +and this is indicated with a distinctive icon.

+ +

Additional Interactive Commands

+ +

Playing SuDoKu effectively requires one to build a good mental +image of the state of the board as well as the ability to +effectively query the game for currently active constraints. The +eye's ability to quickly move around the board and perceive row, +column and sub-square constraints needs to be compensated for in +an eyes-free environment. As an example, it is too difficult to +build the necessary mental model by just listening to the board +spoken aloud, or by listening to idnividual cells by navigating +to them.

+ +

Here are the set of additional interactive commands that +needed to be added in order to be able to play the game +effectively.

+ +
+
r
+
Speak current row.
+
c
+
Speak current column
+
s
+
Speak current sub-square.
+
R
+
Speak number of remaining cells in current row.
+
C
+
Speak number of remaining cells in current column.
+
S
+
Speak number of remaining cells in current sub-square.
+
d
+
Move to the sub-square below the current sub-square.
+
u
+
Move to the sub-square above the current sub-square.
+
n
+
Move to the next sub-square.
+
p
+
Move to the previous sub-square.
+
a
+
Move to the beginning of current row.
+
e
+
Move to the end of the current row.
+
t
+
Move to the top of the current column.
+
b
+
Move to the bottom of the current column.
+
,
+
Speaks information about the overall distribution of +numbers on the board. +
    +
  • d --- Conveys how many instances of each digit +have been filled in.
  • +
  • s --- Conveys number of remaining cells in each +sub-square.
  • +
  • r --- Conveys number of remaining cells in each +row.
  • +
  • c --- Conveys number of remaining cells in each +column.
  • +
+
+
/
+
Speaks number of remaining cells in the current board.
+
.
+
Speaks value in current cell.
+
+ +

Notes on how invormation is spoken:

+
    +
  • Numbers are spoken in groups of 3 to achieve effective +intonation.
  • +
  • When navigating by sub-squares, point always moves +to the top left corner of the sub-square.
  • +
  • Additional commands bound to M-r, +M-c and M-s erase the current row, +column or sub-square respectively. These commands would probably +be convenient to have independent of whether one is using visual +output.
  • +
+ +

Effectiveness Of The Resulting Interface

+ +

With the above interface in place, the simpler levels of the +game are a breeze, levels difficult and evil +are sufficiently challenging to be fun.

+


--
Posted by T. V. Raman to emacspeak The Complete Audio Desktop at 2/11/2006 06:04:52 PM --- emacspeak-26.0.orig/debian/doc-base +++ emacspeak-26.0/debian/doc-base @@ -0,0 +1,12 @@ +Document: emacspeak +Title: Emacspeak --The Complete Audio Desktop +Author: T. V. Raman +Abstract: This manual documents Emacspeak, a speech interface to Emacs. +Section: Editors + +Format: text +Files: /usr/share/doc/emacspeak/emacspeak.txt.gz + +Format: HTML +Index: /usr/share/doc/emacspeak/emacspeak.html +Files: /usr/share/doc/emacspeak/*.html --- emacspeak-26.0.orig/debian/remote-tcl.blurb +++ emacspeak-26.0/debian/remote-tcl.blurb @@ -0,0 +1,4 @@ +blurb: Remote DECtalk server +program: remote-tcl +tcl: /usr/share/emacs/site-lisp/emacspeak/servers/remote-tcl +device: a speech server on another computer --- emacspeak-26.0.orig/debian/TODO +++ emacspeak-26.0/debian/TODO @@ -0,0 +1,3 @@ +Replace emacspeakconfig with debconf. +Combine the three .blurb parsing programs into one shell function. + --- emacspeak-26.0.orig/debian/dirs +++ emacspeak-26.0/debian/dirs @@ -0,0 +1 @@ +usr/sbin --- emacspeak-26.0.orig/debian/control +++ emacspeak-26.0/debian/control @@ -0,0 +1,26 @@ +Source: emacspeak +Section: editors +Priority: extra +Maintainer: Gilles Casse +XSBC-Original-Maintainer: James R. Van Zandt +Build-Depends: debhelper (>= 5), tclx8.4-dev, tcl8.4-dev, libasound2-dev, libespeak-dev +Build-Depends-Indep: texi2html, lynx, texinfo +Standards-Version: 3.7.3 +Homepage: http://emacspeak.sf.net + +Package: emacspeak +Architecture: any +Depends: tclx8.4, tcl8.4, perl-5.6|perl, emacsen-common, make, emacs|emacs21, w3-el-e21, espeak +Conflicts: emacspeak-dt (<= 0.30), emacspeak-ss (<< 1.10) +Suggests: emacspeak-ss, calc, psgml, xsltproc, eflite +Description: speech output interface to Emacs + Emacspeak is a speech output system that will allow someone who + cannot see to work directly on a UNIX system. Emacspeak is built on + top of Emacs. Once you start emacs with emacspeak loaded, you get + spoken feedback for everything you do. Your mileage will vary + depending on how well you can use Emacs. There is nothing that you + cannot do inside Emacs :-). This package includes speech servers + written in tcl to support eSpeak, Viavoice Outloud, + the DECtalk Express and DECtalk MultiVoice speech synthesizers. + For other synthesizers, look for separate speech server packages + such as emacspeak-ss and eflite. --- emacspeak-26.0.orig/debian/emacsen-startup +++ emacspeak-26.0/debian/emacsen-startup @@ -0,0 +1,21 @@ +;; -*-emacs-lisp-*- +;; /etc/emacs/site-start.d/50emacspeak.el +;; +;; Emacs startup file for the Debian emacspeak package +;; +;; Originally contributed by Nils Naumann +;; Modified by Dirk Eddelbuettel +;; Adapted for dh-make by Jim Van Zandt + +;; The emacspeak package follows the Debian/GNU Linux 'emacsen' policy and +;; byte-compiles its elisp files for each 'emacs flavor' (emacs19, +;; xemacs19, emacs20, xemacs20...). The compiled code is then +;; installed in a subdirectory of the respective site-lisp directory. +;; We have to add this to the load-path: +(let ((package-dir (concat "/usr/share/" + (symbol-name flavor) + "/site-lisp/emacspeak")) + (source-dir "/usr/share/emacs/site-lisp/emacspeak")) + (when (file-directory-p package-dir) + (setq load-path (cons package-dir (cons source-dir load-path))))) + --- emacspeak-26.0.orig/debian/NEWS.Debian +++ emacspeak-26.0/debian/NEWS.Debian @@ -0,0 +1,7 @@ +Sun Feb 5 10:24:53 EST 2006 + + The user is still expected to start emacspeak with +/usr/bin/emacspeak, but it is now a symlink managed by the +"alternatives" mechanism. Emacspeak is also byte-compiled for xemacs, +and there is another symlink /usr/bin/xemacspeak. (For details, see +README.Debian and update-alternatives(8)). --- emacspeak-26.0.orig/debian/copyright +++ emacspeak-26.0/debian/copyright @@ -0,0 +1,109 @@ +This package was debianized by Gilles Casse on +Mon, 09 Mar 2009 14:58:56 +0100. + +and based on the Debian emacspeak package by James R. Van Zandt . + +The Emacspeak sources were downloaded from http://emacspeak.sf.net . +The Emacspeak license is copied below [1]. + +The IBM TTS speech server has been compiled against the eci.h header file downloaded from http://ibmtts-sdk.sf.net . +The license of the eci.h file is copied below [2]. + +* [1] Emacspeak license + +Copyright Holder: "T. V. Raman" + + From: "T. V. Raman" + To: jrvz@comcast.net + Cc: tvraman@comcast.net, 292322@bugs.debian.org, jcasey@gnu.org + Subject: emacspeak license + Date: Sun, 30 Jan 2005 19:29:03 -0800 + The references to DEC and Adobe are legcy. + + Each lisp file clearly states it's not part of Emacs but the same + licensing rules apply --as far as I am concerned that's GPL. + +License: + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301, USA. + +On a Debian system you can find a copy of this license in +/usr/share/common-licenses/GPL. + + +Recent additions are covered by the following copyright: + + Copyright (c) 2005--2006, Google Inc. + All rights reserved. + +They are released under the following license: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + * The name of the author may not be used to endorse or promote + products derived from this software without specific prior + written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +* [2] eci.h license + +Copyright (c) 2006, IBM Corp. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. * + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of IBM Corp. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --- emacspeak-26.0.orig/debian/espeak.blurb +++ emacspeak-26.0/debian/espeak.blurb @@ -0,0 +1,4 @@ +blurb: eSpeak +program: espeak +tcl: tcl +device: espeak --- emacspeak-26.0.orig/debian/outloud.blurb +++ emacspeak-26.0/debian/outloud.blurb @@ -0,0 +1,4 @@ +blurb: ViaVoice Outloud +program: outloud +tcl: tcl +device: ViaVoice Outloud --- emacspeak-26.0.orig/debian/emacspeak.1 +++ emacspeak-26.0/debian/emacspeak.1 @@ -0,0 +1,58 @@ +..\"{{{ Title Emacs major mode should be: -*- nroff -*- +.TH EMACSPEAK 1 "December 1, 1999" +..\"}}} +..\"{{{ Name +.SH NAME +emacspeak \- speech output interface to Emacs +..\"}}} +..\"{{{ Synopsis +.SH SYNOPSIS +.ad l +.\" commands only +.BR emacspeak +.RI "[ " options " ] [ " file... " ]" +..\"}}} +..\"{{{ Config +.SH DESCRIPTION +This script starts \fBemacs\fP(1) with speech extensions. \fBemacspeak\fP +comes with support for the following speech synthesizers: DECtalk Express, +DECtalk MultiVoice, and software DECtalk on the DEC Alpha. +.\" or the IBM ViaVoice Outloud. +Separate speech servers are available to support other synthesizers. +.P +\fBemacspeak\fP reads the type of text to speech device and the +port where it is connected from \fI/etc/emacspeak.conf\fP. +.P +For runtime commands supplied by \fBemacspeak\fP, see the +\fBEmacspeak-HOWTO\fP, or consult the .info file: +.nf +.B " info emacspeak" +.fi +.SH OPTIONS +.TP +.BI -o +Use IBM ViaVoice Outloud speech server. +.TP +.BI -m +Use \fBmbrola\fP(1) for speech output. +.TP +.BI -q +Do not process the startup file \fI~/.emacs\fP. +.SH AUTHOR +T. V. Raman, Adobe Systems Incorporated +..\"}}} +..\"{{{ +.SH FILES +.nf +\fI/etc/emacspeak.conf\fP +.fi +..\"}}} +..\"{{{ See also +.SH "SEE ALSO" +.nf +.BR emacspeakconfig (8), +.IR emacspeak.info , +.B ftp://leb.net/pub/blinux/emacspeak/blinux. + +.fi +..\"}}} --- emacspeak-26.0.orig/debian/compat +++ emacspeak-26.0/debian/compat @@ -0,0 +1 @@ +5 --- emacspeak-26.0.orig/debian/DOC +++ emacspeak-26.0/debian/DOC @@ -0,0 +1,3373 @@ +DOC --- Automatically generated by command emacspeak-generate-documentation +$Id: emacspeak-wizards.el,v 23.505 2005/11/25 16:30:50 raman Exp $ +------------------------------------------------------------ + +** dtk-add-cleanup-pattern Key Sequence: control e d a + +Add this pattern to the list of repeating patterns that +are cleaned up. Optional interactive prefix arg deletes +this pattern if previously added. Cleaning up repeated +patterns results in emacspeak speaking the pattern followed +by a repeat count instead of speaking all the characters +making up the pattern. Thus, by adding the repeating +pattern `.' (this is already added by default) emacspeak +will say ``aw fifteen dot'' when speaking the string +``...............'' instead of ``period period period period +'' + +------------------------------------------------------------ + +** dtk-notes-shutdown + +Shutdown midi system. + +------------------------------------------------------------ + +** dtk-pause Key Sequence: control e p + +Pause ongoing speech. +The speech can be resumed with command `dtk-resume' +normally bound to C-e SPC. Pausing speech is useful when one needs to +perform a few actions before continuing to read a large document. Emacspeak +gives you speech feedback as usual once speech has been paused. `dtk-resume' +continues the interrupted speech irrespective of the buffer +in which it is executed. +Optional PREFIX arg flushes any previously paused speech. + +------------------------------------------------------------ + +** dtk-reset-state Key Sequence: control e d cap R + +Restore sanity to the Dectalk. +Typically used after the Dectalk has been power cycled. + +------------------------------------------------------------ + +** dtk-resume Key Sequence: control e SPACE + +Resume paused speech. +This command resumes speech that has been suspended by executing +command `dtk-pause' bound to C-e p. +If speech has not been paused, +and variable `dtk-resume-should-toggle' is t + then this command will pause ongoing speech. + +------------------------------------------------------------ + +** dtk-select-server Key Sequence: control e d d + +Select a speech server interactively. +Argument PROGRAM specifies the speech server program. +When called interactively, The selected server is started immediately. + +------------------------------------------------------------ + +** dtk-set-character-scale Key Sequence: control e d f + +Set scale FACTOR for speech rate. +Speech rate is scaled by this factor +when speaking characters. +Interactive PREFIX arg means set the global default value, and then set the +current local value to the result. + +------------------------------------------------------------ + +** dtk-set-chunk-separator-syntax Key Sequence: control e d RETURN + +Interactively set how text is split in chunks. +See the Emacs documentation on syntax tables for details on how characters are +classified into various syntactic classes. +Argument S specifies the syntax class. + +------------------------------------------------------------ + +** dtk-set-predefined-speech-rate Key Sequence: control e d 9 control e d 8 control e d 7 control e d 6 control e d 5 control e d 4 control e d 3 control e d 2 control e d 1 control e d 0 + +Set speech rate to one of nine predefined levels. +Interactive PREFIX arg says to set the rate globally. +Formula used is: +rate = dtk-speech-rate-base + dtk-speech-rate-step * level. + +------------------------------------------------------------ + +** dtk-set-punctuations Key Sequence: control e d p + +Set punctuation mode to MODE. +Possible values are `some', `all', or `none'. +Interactive PREFIX arg means set the global default value, and then set the +current local value to the result. + +------------------------------------------------------------ + +** dtk-set-punctuations-to-all + +Set punctuation mode to all. +Interactive PREFIX arg sets punctuation mode globally. + +------------------------------------------------------------ + +** dtk-set-punctuations-to-some + +Set punctuation mode to some. +Interactive PREFIX arg sets punctuation mode globally. + +------------------------------------------------------------ + +** dtk-set-rate Key Sequence: control e d r + +Set speaking RATE for the tts. +Interactive PREFIX arg means set the global default value, and then set the +current local value to the result. + +------------------------------------------------------------ + +** dtk-stop Key Sequence: control e s + +Stop speech now. + +------------------------------------------------------------ + +** dtk-toggle-allcaps-beep Key Sequence: control e d cap C + +Toggle allcaps-beep. +when set, allcaps words are indicated by a +short beep. Interactive PREFIX arg means toggle the global default +value, and then set the current local value to the result. +Note that allcaps-beep is a very useful thing when programming. +However it is irritating to have it on when reading documents. + +------------------------------------------------------------ + +** dtk-toggle-capitalization Key Sequence: control e d c + +Toggle capitalization. +when set, capitalization is indicated by a +short beep. Interactive PREFIX arg means toggle the global default +value, and then set the current local value to the result. + +------------------------------------------------------------ + +** dtk-toggle-debug Key Sequence: control e d b + +Toggle state of the debug FLAG. +When debugging is on, you can switch to the buffer +*speaker* to examine the output from the process +that talks to the speech device by using command C-e d C-M-b. +Note: *speaker* is a hidden buffer, ie it has a leading space in its name. + +------------------------------------------------------------ + +** dtk-toggle-punctuation-mode + +Toggle punctuation mode between "some" and "all". +Interactive PREFIX arg makes the new setting global. + +------------------------------------------------------------ + +** dtk-toggle-quiet Key Sequence: control e d q + +Toggles state of dtk-quiet. +Turning on this switch silences speech. +Optional interactive prefix arg causes this setting to become global. + +------------------------------------------------------------ + +** dtk-toggle-speak-nonprinting-chars Key Sequence: control e d n + +Toggle speak-nonprinting-chars. +Switches behavior of how characters with the high bit set are handled. +Interactive PREFIX arg means toggle the global default +value, and then set the current local value to the result. + +------------------------------------------------------------ + +** dtk-toggle-split-caps Key Sequence: control e d s + +Toggle split caps mode. +Split caps mode is useful when reading +Hungarian notation in program source code. Interactive PREFIX arg +means toggle the global default value, and then set the current local +value to the result. + +------------------------------------------------------------ + +** dtk-toggle-splitting-on-white-space Key Sequence: control e d SPACE + +Toggle splitting of speech on white space. +This affects the internal state of emacspeak that decides if we split +text purely by clause boundaries, or also include +whitespace. By default, emacspeak sends a clause at a time +to the speech device. This produces fluent speech for +normal use. However in modes such as `shell-mode' and some +programming language modes, clause markers appear +infrequently, and this can result in large amounts of text +being sent to the speech device at once, making the system +unresponsive when asked to stop talking. Splitting on white +space makes emacspeak's stop command responsive. However, +when splitting on white space, the speech sounds choppy +since the synthesizer is getting a word at a time. + +------------------------------------------------------------ + +** dtk-toggle-stop-immediately-while-typing Key Sequence: control e d cap I + +Toggle state of variable `dtk-stop-immediately-while-typing'. +As the name implies, if T then speech flushes immediately as you +type. Optional argument PREFIX specifies if the setting applies +to all buffers. + +------------------------------------------------------------ + +** emacspeak-describe-emacspeak Key Sequence: control h control e + +Give a brief overview of emacspeak. + +------------------------------------------------------------ + +** emacspeak-submit-bug Key Sequence: control e CONTROL meta b + +Function to submit a bug to the programs maintainer. + +------------------------------------------------------------ + +** emacspeak-aumix Key Sequence: control e ( + +Setup output parameters of the auditory display. + Launch this tool while you have auditory output on +multiple channels playing so you can +adjust the settings to your preference. Hit q to quit when +you are done. + +------------------------------------------------------------ + +** emacspeak-aumix-edit + +Edit aumix settings interactively. +Run command M-x emacspeak-aumix-reset +after saving the settings to have them take effect. + +------------------------------------------------------------ + +** emacspeak-aumix-reset + +Reset to default audio settings. + +------------------------------------------------------------ + +** emacspeak-aumix-volume-decrease + +Decrease overall volume. + +------------------------------------------------------------ + +** emacspeak-aumix-volume-increase + +Increase overall volume. + +------------------------------------------------------------ + +** emacspeak-aumix-wave-decrease + +Decrease volume of wave output. + +------------------------------------------------------------ + +** emacspeak-aumix-wave-increase + +Increase volume of wave output. + +------------------------------------------------------------ + +** emacspeak-list-buffers-next-line + +Speech enabled buffer menu navigation + +------------------------------------------------------------ + +** emacspeak-list-buffers-previous-line + +Speech enabled buffer menu navigation + +------------------------------------------------------------ + +** emacspeak-list-buffers-speak-buffer-line + +Speak information about this buffer + +------------------------------------------------------------ + +** emacspeak-list-buffers-speak-buffer-name + +Speak the name of the buffer on this line + +------------------------------------------------------------ + +** emacspeak-compilation-speak-error + +Speech feedback about the compilation error. + +------------------------------------------------------------ + +** emacspeak-custom-goto-group + +Jump to custom group when in a customization buffer. + +------------------------------------------------------------ + +** emacspeak-custom-goto-toolbar + +Jump to custom toolbar when in a customization buffer. + +------------------------------------------------------------ + +** emacspeak-dired-label-fields + +Labels the fields of the listing in the dired buffer. +Currently is a no-op unless +unless `dired-listing-switches' contains -al + +------------------------------------------------------------ + +** emacspeak-dired-show-file-type + +Displays type of current file by running command file. +Like Emacs' built-in dired-show-file-type but allows user to customize +options passed to command `file'. + +------------------------------------------------------------ + +** emacspeak-dired-speak-file-access-time + +Speak access time of the current file. + +------------------------------------------------------------ + +** emacspeak-dired-speak-file-modification-time + +Speak modification time of the current file. + +------------------------------------------------------------ + +** emacspeak-dired-speak-file-permissions + +Speak the permissions of the current file. + +------------------------------------------------------------ + +** emacspeak-dired-speak-file-size + +Speak the size of the current file. +On a directory line, run du -s on the directory to speak its size. + +------------------------------------------------------------ + +** emacspeak-dired-speak-header-line + +Speak the header line of the dired buffer. + +------------------------------------------------------------ + +** emacspeak-dired-speak-symlink-target + +Speaks the target of the symlink on the current line. + +------------------------------------------------------------ + +** emacspeak-eterm-copy-region-to-register + +Copy text from terminal to an Emacs REGISTER. +This copies region delimited by the emacspeak eterm marker +set by command M-x emacspeak-eterm-set-marker and the +emacspeak eterm pointer to a register. + +------------------------------------------------------------ + +** emacspeak-eterm-define-window + +Prompt for a window ID. +The window is then define to be +the rectangle delimited by point and eterm mark. This is to +be used when emacspeak is set to review mode inside an +eterm. + +------------------------------------------------------------ + +** emacspeak-eterm-describe-window + +Describe an eterm window. +Description indicates eterm window coordinates and whether it is stretchable + +------------------------------------------------------------ + +** emacspeak-eterm-goto-line + +Move emacspeak eterm pointer to a specified LINE. + +------------------------------------------------------------ + +** emacspeak-eterm-kill-ring-save-region + +Copy text from terminal to kill ring. +This copies region delimited by the emacspeak eterm marker +set by command M-x emacspeak-eterm-set-marker and the +emacspeak eterm pointer. + +------------------------------------------------------------ + +** emacspeak-eterm-maybe-send-raw + +Send a raw character through if in the terminal buffer. +Execute end of line if +in a non eterm buffer if executed via C-e C-e + +------------------------------------------------------------ + +** emacspeak-eterm-paste-register + +Paste contents of REGISTER at current location. +If the specified register contains text, then that text is +sent to the terminal as if it were typed by the user. + +------------------------------------------------------------ + +** emacspeak-eterm-pointer-backward-word + +Move the pointer backward by words. +Interactive numeric prefix arg specifies number of words to move. +Argument COUNT specifies number of words by which to move. + +------------------------------------------------------------ + +** emacspeak-eterm-pointer-down + +Move the pointer down a line. +Argument COUNT specifies number of lines by which to move. + +------------------------------------------------------------ + +** emacspeak-eterm-pointer-forward-word + +Move the pointer forward by words. +Interactive numeric prefix arg specifies number of words to move. +Argument COUNT specifies number of words by which to move. + +------------------------------------------------------------ + +** emacspeak-eterm-pointer-left + +Move the pointer left. +Argument COUNT specifies number of columns by which to move. + +------------------------------------------------------------ + +** emacspeak-eterm-pointer-right + +Move the pointer right. +Argument COUNT specifies number of columns by which to move. + +------------------------------------------------------------ + +** emacspeak-eterm-pointer-to-bottom + +Move the pointer to the bottom of the screen. + +------------------------------------------------------------ + +** emacspeak-eterm-pointer-to-cursor + +Move the pointer to the cursor. + +------------------------------------------------------------ + +** emacspeak-eterm-pointer-to-left-edge + +Move the pointer to the right edge. + +------------------------------------------------------------ + +** emacspeak-eterm-pointer-to-next-color-change + +Move the eterm pointer to the next color change. +This allows you to move between highlighted regions of the screen. +Optional argument COUNT specifies how many changes to skip. + +------------------------------------------------------------ + +** emacspeak-eterm-pointer-to-previous-color-change + +Move the eterm pointer to the next color change. +This allows you to move between highlighted regions of the screen. +Optional argument COUNT specifies how many changes to skip. + +------------------------------------------------------------ + +** emacspeak-eterm-pointer-to-right-edge + +Move the pointer to the right edge. + +------------------------------------------------------------ + +** emacspeak-eterm-pointer-to-top + +Move the pointer to the top of the screen. + +------------------------------------------------------------ + +** emacspeak-eterm-pointer-up + +Move the pointer up a line. +Argument COUNT .specifies number of lines by which to move. + +------------------------------------------------------------ + +** emacspeak-eterm-remote-term Key Sequence: control e CONTROL meta r + +Start a terminal-emulator in a new buffer. + +------------------------------------------------------------ + +** emacspeak-eterm-search-backward + +Search backward on the terminal. + +------------------------------------------------------------ + +** emacspeak-eterm-search-forward + +Search forward on the terminal. + +------------------------------------------------------------ + +** emacspeak-eterm-set-filter-window + +Prompt for the id of a predefined window, +and set the `filter' window to it. +Non-nil interactive prefix arg `unsets' the filter window; +this is equivalent to having the entire terminal as the filter window (this is +what eterm starts up with). +Setting the filter window results in emacspeak only monitoring screen +activity within the filter window. + +------------------------------------------------------------ + +** emacspeak-eterm-set-focus-window + +Prompt for the id of a predefined window, +and set the `focus' window to it. +Non-nil interactive prefix arg `unsets' the focus window; +this is equivalent to having the entire terminal as the focus window (this is +what eterm starts up with). +Setting the focus window results in emacspeak monitoring screen +and speaking that window upon seeing screen activity. + +------------------------------------------------------------ + +** emacspeak-eterm-set-marker + +Set Emacspeak eterm marker. +This sets the emacspeak eterm marker to the position pointed +to by the emacspeak eterm pointer. + +------------------------------------------------------------ + +** emacspeak-eterm-speak-cursor + +Speak cursor position. + +------------------------------------------------------------ + +** emacspeak-eterm-speak-pointer + +Speak current pointer position. + +------------------------------------------------------------ + +** emacspeak-eterm-speak-pointer-char + +Speak char under eterm pointer. +Pronounces character phonetically unless called with a PREFIX arg. + +------------------------------------------------------------ + +** emacspeak-eterm-speak-pointer-line + +Speak the line the pointer is on. + +------------------------------------------------------------ + +** emacspeak-eterm-speak-pointer-word + +Speak the word the pointer is on. + +------------------------------------------------------------ + +** emacspeak-eterm-speak-predefined-window + +Speak a predefined eterm window between 1 and 10. + +------------------------------------------------------------ + +** emacspeak-eterm-speak-screen + +Speak the screen. Default is to speak from the emacspeak pointer to point. +Optional prefix arg FLAG causes region above +the Emacspeak pointer to be spoken. + +------------------------------------------------------------ + +** emacspeak-eterm-speak-window + +Speak an eterm window. +Argument ID specifies the window. + +------------------------------------------------------------ + +** emacspeak-eterm-toggle-filter-window + +Toggle active state of filter window. + +------------------------------------------------------------ + +** emacspeak-eterm-toggle-focus-window + +Toggle active state of focus window. + +------------------------------------------------------------ + +** emacspeak-eterm-toggle-pointer-mode + +Toggle emacspeak eterm pointer mode. +With optional interactive prefix arg, turn it on. +When emacspeak eterm is in pointer mode, the eterm read pointer +stays where it is rather than automatically moving to the terminal cursor when +there is terminal activity. + +------------------------------------------------------------ + +** emacspeak-eterm-toggle-review + +Toggle state of eterm review. +In review mode, you can move around the terminal and listen to the contnets +without sending input to the terminal itself. + +------------------------------------------------------------ + +** emacspeak-eterm-yank-window + +Yank contents of an eterm window at point. + +------------------------------------------------------------ + +** emacspeak-toggle-eterm-autospeak + +Toggle state of eterm autospeak. +When eterm autospeak is turned on and the terminal is in line mode, +all output to the terminal is automatically spoken. + Interactive prefix arg means toggle the global default value, and then set the + current local value to the result. + +------------------------------------------------------------ + +** emacspeak-fix-all-recent-commands + +Fix recently loaded interactive commands. +This command looks through `load-history' and fixes commands if necessary. +Memoizes call in emacspeak-load-history-pointer to memoize this call. + +------------------------------------------------------------ + +** emacspeak-fix-commands-loaded-from + +Fix all commands loaded from a specified module. + +------------------------------------------------------------ + +** emacspeak-forms-find-file + +Visit a forms file + +------------------------------------------------------------ + +** emacspeak-forms-flush-unwanted-records + +Prompt for pattern and flush matching lines + +------------------------------------------------------------ + +** emacspeak-forms-rerun-filter + +Rerun filter --allows us to nuke more matching records + +------------------------------------------------------------ + +** emacspeak-forms-speak-field + +Speak current form field name and value. +Assumes that point is at the front of a field value. + +------------------------------------------------------------ + +** emacspeak-forms-summarize-current-position + +Summarize current position in list of records + +------------------------------------------------------------ + +** emacspeak-forms-summarize-current-record + +Summarize current record + +------------------------------------------------------------ + +** emacspeak-keymap-choose-new-emacspeak-prefix + +Interactively select a new prefix key to use for all emacspeak +commands. The default is to use `C-e' This command +lets you switch the prefix to something else. This is a useful thing +to do if you run emacspeak on a remote machine from inside a terminal +that is running inside a local emacspeak session. You can have the +remote emacspeak use a different control key to give your fingers some +relief. + +------------------------------------------------------------ + +** emacspeak-toggle-comint-output-monitor Key Sequence: control e o + +Toggle state of Emacspeak comint monitor. +When turned on, comint output is automatically spoken. Turn this on if +you want your shell to speak its results. Interactive +PREFIX arg means toggle the global default value, and then +set the current local value to the result. + +------------------------------------------------------------ + +** emacspeak-pronounce-clear-dictionaries + +Clear all current pronunciation dictionaries. + +------------------------------------------------------------ + +** emacspeak-pronounce-define-local-pronunciation + +Define buffer local pronunciation. +Argument WORD specifies the word which should be pronounced as specified by PRONUNCIATION. + +------------------------------------------------------------ + +** emacspeak-pronounce-define-pronunciation + +Interactively define entries in the pronunciation dictionaries. +Default term to define is delimited by region. +First loads any persistent dictionaries if not already loaded. + +------------------------------------------------------------ + +** emacspeak-pronounce-define-template-pronunciation + +Interactively define template entries in the pronunciation dictionaries. +Default term to define is delimited by region. +First loads any persistent dictionaries if not already loaded. + +------------------------------------------------------------ + +** emacspeak-pronounce-dispatch Key Sequence: control e meta d + +Provides the user interface front-end to Emacspeak's pronunciation dictionaries. + +------------------------------------------------------------ + +** emacspeak-pronounce-edit-pronunciations + +Prompt for and launch a pronunciation editor on the +specified pronunciation dictionary key. + +------------------------------------------------------------ + +** emacspeak-pronounce-load-dictionaries + +Load pronunciation dictionaries. +Optional argument FILENAME specifies the dictionary file. + +------------------------------------------------------------ + +** emacspeak-pronounce-refresh-pronunciations + +Refresh pronunciation table for current buffer. +Activates pronunciation dictionaries if not already active. + +------------------------------------------------------------ + +** emacspeak-pronounce-save-dictionaries + +Writes out the persistent emacspeak pronunciation dictionaries. + +------------------------------------------------------------ + +** emacspeak-pronounce-toggle-use-of-dictionaries + +Toggle use of pronunciation dictionaries in current buffer. +Pronunciations can be defined on a per file, per directory and/or per +mode basis. +Pronunciations are activated on a per buffer basis. +Turning on the use of pronunciation dictionaries results in emacspeak +composing a pronunciation table based on the currently defined +pronunciation dictionaries. +After this, the pronunciations will be applied whenever text in the +buffer is spoken. +Optional argument state can be used from Lisp programs to +explicitly turn pronunciations on or off. + +------------------------------------------------------------ + +** emacspeak-pronounce-yank-word + +Yank word at point into minibuffer. + +------------------------------------------------------------ + +** emacspeak-backward-char Key Sequence: control b + +Backward-char redefined to speak char moved to. + +------------------------------------------------------------ + +** emacspeak-forward-char Key Sequence: control f + +Forward-char redefined to speak char moved to. + +------------------------------------------------------------ + +** emacspeak-self-insert-command Key Sequence: Character set JISX0213-2 Character set Tibetan 2 column Character set Indian 2 Column Character set CNS11643-7 (Chinese traditional): ISO-IR-187 Character set CNS11643-6 (Chinese traditional): ISO-IR-186 Character set CNS11643-5 (Chinese traditional): ISO-IR-185 Character set CNS11643-4 (Chinese traditional): ISO-IR-184 Character set CNS11643-3 (Chinese traditional): ISO-IR-183 Character set Ethiopic characters Character set Unicode subset ( cap U +0100.. cap U +24FF) Character set Unicode subset ( cap U +E000+FFFF) Character set Unicode subset ( cap U +2500.. cap U +33FF) Character set Tibetan 1 column Character set Indian 1 Column Character set Indian IS 13194 Character set Arabic 2-column Character set Lao Character set ASCII with right-to-left direction Character set Arabic 1-column Character set Arabic digit Character set VISCII upper-case Character set VISCII lower-case Character set IPA Character set SiSheng (PinYin/ZhuYin) Character set Big5 (Level-2) C940-FEFE Character set Big5 (Level-1) A141-C67F Character set JISX0213-1 Character set CNS11643-2 (Chinese traditional): ISO-IR-172 Character set CNS11643-1 (Chinese traditional): ISO-IR-171 Character set JISX0212 (Japanese): ISO-IR-159 Character set KSC5601 (Korean): ISO-IR-149 Character set JISX0208.1983/1990 (Japanese): ISO-IR-87 Character set GB2312: ISO-IR-58 Character set JISX0208.1978 (Japanese): ISO-IR-42 Character set RHP of Latin-8 (ISO 8859-14) Character set RHP of Latin-9 (ISO 8859-15): ISO-IR-203 Character set RHP of Latin-5 (ISO 8859-9): ISO-IR-148 Character set RHP of Cyrillic (ISO 8859-5): ISO-IR-144 Character set Japanese Roman (JISX0201.1976) Character set Japanese Katakana (JISX0201.1976) Character set RHP of Hebrew (ISO 8859-8): ISO-IR-138 Character set RHP of Arabic (ISO 8859-6): ISO-IR-127 Character set RHP of Greek (ISO 8859-7): ISO-IR-126 Character set RHP of Thai (TIS620): ISO-IR-166 Character set RHP of Latin-4 (ISO 8859-4): ISO-IR-110 Character set RHP of Latin-3 (ISO 8859-3): ISO-IR-109 Character set RHP of Latin-2 (ISO 8859-2): ISO-IR-101 Character set RHP of Latin-1 (ISO 8859-1): ISO-IR-100 ÿ þ ý ü û ú ù ø ÷ ö õ ô ó ò ñ ð ï î í ì ë ê é è ç æ å ä ã â á à ß Þ Ý Ü Û Ú Ù Ø × Ö Õ Ô Ó Ò Ñ Ð Ï Î Í Ì Ë Ê É È Ç Æ Å Ä Ã Â Á À ¿ ¾ ½ ¼ » º ¹ ¸ · ¶ µ ´ ³ ² ± ° ¯ ® ­ ¬ « ª © ¨ § ¦ ¥ ¤ £ ¢ ¡   ~ } | { z y x w v u t s r q p o n m l k j i h g f e d c b a ` _ ^ ] \ [ cap Z cap Y cap X cap W cap V cap U cap T cap S cap R cap Q cap P cap O cap N cap M cap L cap K cap J cap I cap H cap G cap F cap E cap D cap C cap B cap A @ ? > = < ; : 9 8 7 6 5 4 3 2 1 0 / . - , + * ) ( ' & % $ # " ! SPACE + +Insert a character. +Speaks the character if emacspeak-character-echo is true. +See command emacspeak-toggle-word-echo bound to +C-e d w. +Toggle variable dtk-stop-immediately-while-typing if you want to have +speech flush as you type. + +------------------------------------------------------------ + +** emacspeak-rmail-speak-current-message-labels + +Speak labels of current message + +------------------------------------------------------------ + +** emacspeak-rmail-summarize-current-message + +Summarize current message + +------------------------------------------------------------ + +** emacspeak-play-all-icons + +Plays all defined icons and speaks their names. + +------------------------------------------------------------ + +** emacspeak-set-auditory-icon-player Key Sequence: control e meta a + +Select player used for producing auditory icons. +Recommended choices: + +emacspeak-serve-auditory-icon for the wave device. +emacspeak-queue-auditory-icon when using software TTS. +emacspeak-play-midi-icon for midi device. + +------------------------------------------------------------ + +** emacspeak-sounds-reset-local-player + +Ask Emacspeak to use a local audio player. +This lets me have Emacspeak switch to using audioplay on +solaris after I've used it for a while from a remote session +where it would use the more primitive speech-server based +audio player. + +------------------------------------------------------------ + +** emacspeak-sounds-reset-sound + +Reload sound drivers. + +------------------------------------------------------------ + +** emacspeak-sounds-select-theme Key Sequence: control e ) + +Select theme for auditory icons. + +------------------------------------------------------------ + +** emacspeak-toggle-auditory-icons Key Sequence: control e control a + +Toggle use of auditory icons. +Optional interactive PREFIX arg toggles global value. + +------------------------------------------------------------ + +** emacspeak-audio-annotate-paragraphs + +Set property auditory-icon at front of all paragraphs. + +------------------------------------------------------------ + +** emacspeak-blink-matching-open + +Display matching delimiter in the minibuffer. + +------------------------------------------------------------ + +** emacspeak-completions-move-to-completion-group + +Move to group of choices beginning with character last +typed. If no such group exists, then we dont move. + +------------------------------------------------------------ + +** emacspeak-dial-dtk Key Sequence: control e d t + +Prompt for and dial a phone NUMBER with the Dectalk. + +------------------------------------------------------------ + +** emacspeak-execute-repeatedly + +Execute COMMAND repeatedly. + +------------------------------------------------------------ + +** emacspeak-mark-backward-mark Key Sequence: + +Cycle backward through the mark ring. + +------------------------------------------------------------ + +** emacspeak-mark-forward-mark Key Sequence: + +Cycle forward through the mark ring. + +------------------------------------------------------------ + +** emacspeak-owindow-next-line Key Sequence: ESCAPE + +Move to the next line in the other window and speak it. +Numeric prefix arg COUNT can specify number of lines to move. + +------------------------------------------------------------ + +** emacspeak-owindow-previous-line Key Sequence: ESCAPE + +Move to the next line in the other window and speak it. +Numeric prefix arg COUNT specifies number of lines to move. + +------------------------------------------------------------ + +** emacspeak-owindow-scroll-down Key Sequence: ESCAPE + +Scroll down the window that command `other-window' would move to. +Speak the window contents after scrolling. + +------------------------------------------------------------ + +** emacspeak-owindow-scroll-up Key Sequence: ESCAPE + +Scroll up the window that command `other-window' would move to. +Speak the window contents after scrolling. + +------------------------------------------------------------ + +** emacspeak-owindow-speak-line Key Sequence: ESCAPE