diff --git a/Documentation/Developers/REGISTER b/Documentation/Developers/REGISTER index 71f4b6d39..59ae945a1 100644 --- a/Documentation/Developers/REGISTER +++ b/Documentation/Developers/REGISTER @@ -86,6 +86,7 @@ Reserved User and Group IDs: Filedescriptor Numbers ---------------------- +198 Internal FD for tts output plugin 199 Output plugins unchroot mechanism 200 Package build $builddir/build.pid 201 Target build $build_logs/build_target_$$.log diff --git a/misc/output/speech-config.in b/misc/output/speech-config.in deleted file mode 100644 index 76a496519..000000000 --- a/misc/output/speech-config.in +++ /dev/null @@ -1,112 +0,0 @@ -# --- ROCK-COPYRIGHT-NOTE-BEGIN --- -# -# This copyright note is auto-generated by ./scripts/Create-CopyPatch. -# Please add additional copyright information _after_ the line containing -# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by -# the ./scripts/Create-CopyPatch script. Do not edit this copyright text! -# -# ROCK Linux: rock-src/misc/output/speech-config.in -# ROCK Linux is Copyright (C) 1998 - 2003 Clifford Wolf -# -# 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 of the License, or -# (at your option) any later version. A copy of the GNU General Public -# License can be found at Documentation/COPYING. -# -# Many people helped and are helping developing ROCK Linux. Please -# have a look at http://www.rocklinux.org/ and the Documentation/TEAM -# file for details. -# -# --- ROCK-COPYRIGHT-NOTE-END --- - - -menu_begin OUTPUT_SPEECH_MENU 'Speech Output Configuration' -block_begin 1 - - comment ' ' - comment 'Please use the Help menu, it should answer all your questions.' - comment ' ' - comment '- Helper programs' - - bool 'Use existing program we can pipe text to' \ - ROCKCFG_OUTPUT_SPEECH_OWNSCRIPT 0 - - if [ $ROCKCFG_OUTPUT_SPEECH_OWNSCRIPT -eq 1 ] ; then - text 'executable that accepts text on stdin' \ - ROCKCFG_OUTPUT_SPEECH_SAYPROG "`which say || echo '/usr/bin/say'`" - else - bool 'Use the Festival TTS System instead of MBROLA' \ - ROCKCFG_OUTPUT_SPEECH_USEFESTIVAL 1 - - if [ $ROCKCFG_OUTPUT_SPEECH_USEFESTIVAL -eq 1 ] ; then - text 'the festival executable' \ - ROCKCFG_OUTPUT_SPEECH_FESTIVAL "`which festival || echo '/usr/bin/festival'`" - else - - text 'the mbrola executable' \ - ROCKCFG_OUTPUT_SPEECH_MBROLA "`which mbrola || echo '/usr/bin/mbrola'`" - text 'the voice file to use' \ - ROCKCFG_OUTPUT_SPEECH_VOICEFILE "$(dirname `dirname $ROCKCFG_OUTPUT_SPEECH_MBROLA`)/lib/mbrola/us1" - text 'txt to pho converter executable' \ - ROCKCFG_OUTPUT_SPEECH_TXT2PHO "`which txt2pho || echo '/usr/bin/txt2pho'`" - text 'console wav player executable' \ - ROCKCFG_OUTPUT_SPEECH_PLAY "`which play || echo '/usr/bin/play'`" - fi ; - fi ; - - comment ' ' - comment '- What would you like to be informed about?' - block_begin 2 - - bool 'Generic header at section start' \ - ROCKCFG_OUTPUT_SPEECH_ENABLE_HEADER 0 - bool 'Generic status messages' \ - ROCKCFG_OUTPUT_SPEECH_ENABLE_STATUS 0 - bool 'Generic error messages' \ - ROCKCFG_OUTPUT_SPEECH_ENABLE_ERROR 1 - comment ' ' - - bool 'Package build refusals' \ - ROCKCFG_OUTPUT_SPEECH_ENABLE_PKG_DENY 0 - [ $ROCKCFG_OUTPUT_SPEECH_ENABLE_PKG_DENY -eq 1 ] && - text 'Text to say when package is denied' \ - ROCKCFG_OUTPUT_SPEECH_TXT_PKG_DENY \ - 'The package \$2 has been rejected in stage \$1 because of \$3.' - comment ' ' - - bool 'Package build starting messages' \ - ROCKCFG_OUTPUT_SPEECH_ENABLE_PKG_START 1 - [ $ROCKCFG_OUTPUT_SPEECH_ENABLE_PKG_START -eq 1 ] && - text 'Text to say when package build starts' \ - ROCKCFG_OUTPUT_SPEECH_TXT_PKG_START \ - 'The build of the package \$3 from the \$2 repository is beginning for stage \$1.' - comment ' ' - - bool 'Package build finished messages' \ - ROCKCFG_OUTPUT_SPEECH_ENABLE_PKG_FINISH 1 - [ $ROCKCFG_OUTPUT_SPEECH_ENABLE_PKG_FINISH -eq 1 ] && - text 'Text to say when package build is finished' \ - ROCKCFG_OUTPUT_SPEECH_TXT_PKG_FINISH \ - 'The build of the package \$3 from the \$2 repository has finished succesfully.' - comment ' ' - - bool 'Package build aborted messages' \ - ROCKCFG_OUTPUT_SPEECH_ENABLE_PKG_ABORT 1 - [ $ROCKCFG_OUTPUT_SPEECH_ENABLE_PKG_ABORT -eq 1 ] && - text 'Text to say when package build has been aborted' \ - ROCKCFG_OUTPUT_SPEECH_TXT_PKG_ABORT \ - 'Unfortunately, the build of package \$3 from the \$2 repository had to be aborted!' - comment ' ' - - bool 'Package build errorquote messages' \ - ROCKCFG_OUTPUT_SPEECH_ENABLE_ERRORQUOTE 0 - [ $ROCKCFG_OUTPUT_SPEECH_ENABLE_ERRORQUOTE -eq 1 ] && - text 'Text to say when the logfile would be quoted' \ - ROCKCFG_OUTPUT_SPEECH_TXT_ERRORQUOTE \ - 'An Error occured. Please have a look at the logfile!' - block_end - -block_end -menu_end - diff --git a/misc/output/tts/config.hlp b/misc/output/tts/config.hlp new file mode 100644 index 000000000..61dc3de84 --- /dev/null +++ b/misc/output/tts/config.hlp @@ -0,0 +1,141 @@ + +ROCKCFG_OUTPUT_TTS_SYSTEM + Please select which Text-to-Speech system to use + +ROCKCFG_OUTPUT_TTS_FLITE + Please supply the full, absolute location of your flite executable, + in most cases, this file is in /usr/bin/flite (rock package: flite) + +ROCKCFG_OUTPUT_TTS_MBROLA + Please supply the full, absolute location of your mbrola executable, + in most cases, if installed manually, this file is called mbrola- + linux-i386. + +ROCKCFG_OUTPUT_TTS_VOICEFILE + Please supply the full, absolute location of your desired voicefile. + Yes, this is the huge file you waited so long to download for. It + is suggested to use an english/american voice, as ROCK Linux build + output will be mostly english (but you can adjust some parts for + your language below) + +ROCKCFG_OUTPUT_TTS_TXT2PHO + Please supply the full, absolute location of your text-to-pho converter + program. This program should be able to read text input from STDIN and + write .pho output on STDOUT, so texts can be 'piped through'. The most + common program for german voices for this, as far as i know, is txt2pho. + +ROCKCFG_OUTPUT_TTS_PLAY + Please supply the full, absolute location of your console wave file + player of choice. It should be able to read it's input from STDIN, + any output on STDOUT of the program will be discarded. I suggest using + the 'play' utility that comes with the sox package, if you are using + OSS, or 'aplay' from the alsa-utils package, if you prefer ALSA. + +ROCKCFG_OUTPUT_TTS_ENABLE_HEADER + This class of messages looks like, for example: + + "Building cross binutils and cc for ${arch_target} ..." + + and would be read out exactly like this. So, if you plan to use a non- + english voice, you wouldn't want this to be read. + +ROCKCFG_OUTPUT_TTS_ENABLE_STATUS + This class of messages looks like, for exmaple: + + "writing build log to src.cross.$id/binutils.log." + + and would be read out exactly like this. So, if you plan to use a non- + english voice, you wouldn't want this to be read. + +ROCKCFG_OUTPUT_TTS_ENABLE_ERROR + This class of messages looks like, for example: + + "Detected a problem with the flist wrapper lib on your system" + + and would be read out exactly like this. So, again, if you plan to use + a non-english voice, you pobably wouldn't be too happy with the result. + +ROCKCFG_OUTPUT_TTS_ENABLE_PKG_DENY + This class of message is issued when a package build is categorically + denied before even the tarball is touched. Common examples are trying + to build e17 without imlib2 having compiled. The hook for this class + of messages provides 3 arguments: + + $1 the current stagelevel + $2 the current package-name + $3 the reason why this package got refused + + You can use these in the free configurable text, as shown in the + example text. Note, however, that for a text in a non-english language + you might want to leave $3 out, as the reason is in english usually. + +ROCKCFG_OUTPUT_TTS_TXT_PKG_DENY + Please have a look at the help of ROCKCFG_OUTPUT_TTS_ENABLE_PKG_DENY. + +ROCKCFG_OUTPUT_TTS_ENABLE_PKG_START + This class of message is issued when a package build is started. + The hook for this class of messages provides 5 arguments: + + $1 the current stagelevel + $2 the current package's repository + $3 the current package-name + $4 the ROCK Linux version, for example 2.0.0 + $5 the ROCK Linux extraversion, e.g. -rc1 + + You can use these in the free configurable text, as shown in the + example text. + +ROCKCFG_OUTPUT_TTS_TXT_PKG_START + Please have a look at the help of ROCKCFG_OUTPUT_TTS_ENABLE_PKG_START. + +ROCKCFG_OUTPUT_TTS_ENABLE_PKG_FINISH + This class of message is issued when a package build is finished. + The hook for this class of messages provides 3 arguments: + + $1 the current stagelevel + $2 the current package's repository + $3 the current package-name + + You can use these in the free configurable text, as shown in the + example text. + +ROCKCFG_OUTPUT_TTS_TXT_PKG_FINISH + Please have a look at the help of ROCKCFG_OUTPUT_TTS_ENABLE_PKG_FINISH. + +ROCKCFG_OUTPUT_TTS_ENABLE_PKG_ABORT + This class of message is issued when a package build is aborted. + The hook for this class of messages provides 3 arguments: + + $1 the current stagelevel + $2 the current package's repository + $3 the current package-name + + You can use these in the free configurable text, as shown in the + example text. + +ROCKCFG_OUTPUT_TTS_TXT_PKG_ABORT + Please have a look at the help of ROCKCFG_OUTPUT_TTS_ENABLE_PKG_ABORT. + +ROCKCFG_OUTPUT_TTS_ENABLE_ERRORQUOTE + This class of message is usually used to quote the last few lines of a + logfile to let you probably guess the reason of a failed build without + the need to open the logfile. This is not ment to be read out (not even + by humans), but you can replace the text with a generic, severe error + message in your preferred message (as the example shows). The log + excerpt will be readable on console as usual. However, if you intend to + produce some weird noise, any argument given is to be interpreted as + logfile content (so, use $*, if you want it all). + +ROCKCFG_OUTPUT_TTS_TXT_ERRORQUOTE + Please have a look at the help of ROCKCFG_OUTPUT_TTS_ENABLE_ERRORQUOTE. + +ROCKCFG_OUTPUT_TTS_SAYPROG + Please have a look at the help of ROCKCFG_OUTPUT_TTS_OWNSCRIPT. + +ROCKCFG_OUTPUT_TTS_USEFESTIVAL + Select this, if you have installed the festival tts system. The festival + system is major to mbrola with regards to it's licence, mbrola is binary- + only, whereas festival is licensed under an OSI-approved licences. + +ROCKCFG_OUTPUT_TTS_FESTIVAL + Please supply the full, absolute location of your 'festival' binary. diff --git a/misc/output/tts/config.in b/misc/output/tts/config.in new file mode 100644 index 000000000..ee0df63fb --- /dev/null +++ b/misc/output/tts/config.in @@ -0,0 +1,124 @@ +# --- ROCK-COPYRIGHT-NOTE-BEGIN --- +# +# This copyright note is auto-generated by ./scripts/Create-CopyPatch. +# Please add additional copyright information _after_ the line containing +# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by +# the ./scripts/Create-CopyPatch script. Do not edit this copyright text! +# +# ROCK Linux: rock-src/misc/output/tts/config.in +# ROCK Linux is Copyright (C) 1998 - 2003 Clifford Wolf +# +# 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 of the License, or +# (at your option) any later version. A copy of the GNU General Public +# License can be found at Documentation/COPYING. +# +# Many people helped and are helping developing ROCK Linux. Please +# have a look at http://www.rocklinux.org/ and the Documentation/TEAM +# file for details. +# +# --- ROCK-COPYRIGHT-NOTE-END --- + + +bool 'Text-to-Speech Output Plugin' ROCKCFG_OUTPUT_TTS 0 + +if [ "$ROCKCFG_OUTPUT_TTS" = 1 ] ; then + menu_begin OUTPUT_TTS_MENU 'Speech Output Configuration' + block_begin 1 + + comment ' ' + comment 'Please use the Help menu, it should answer all your questions.' + comment ' ' + + comment '- Select Text-to-Speech System' + + choice ROCKCFG_OUTPUT_TTS_SYSTEM ownscript \ + ownscript 'Use existing program we can pipe text to' \ + flite 'Use the Flite TTS System' \ + festival 'Use the Festival TTS System' \ + mbrola 'Use the MBROLA TTS System' + + comment '- TTS specific settings' + + if [ "$ROCKCFG_OUTPUT_TTS_SYSTEM" = ownscript ] ; then + text 'executable that accepts text on stdin' \ + ROCKCFG_OUTPUT_TTS_SAYPROG "`which say || echo '/usr/bin/say'`" + fi + + if [ "$ROCKCFG_OUTPUT_TTS_SYSTEM" = flite ] ; then + text 'the flite executable' \ + ROCKCFG_OUTPUT_TTS_FLITE "`which flite || echo '/usr/bin/flite'`" + fi + + if [ "$ROCKCFG_OUTPUT_TTS_SYSTEM" = festival ] ; then + text 'the festival executable' \ + ROCKCFG_OUTPUT_TTS_FESTIVAL "`which festival || echo '/usr/bin/festival'`" + fi + + if [ "$ROCKCFG_OUTPUT_TTS_SYSTEM" = mbrola ] ; then + text 'the mbrola executable' \ + ROCKCFG_OUTPUT_TTS_MBROLA "`which mbrola || echo '/usr/bin/mbrola'`" + text 'the voice file to use' \ + ROCKCFG_OUTPUT_TTS_VOICEFILE "$(dirname `dirname $ROCKCFG_OUTPUT_TTS_MBROLA`)/lib/mbrola/us1" + text 'txt to pho converter executable' \ + ROCKCFG_OUTPUT_TTS_TXT2PHO "`which txt2pho || echo '/usr/bin/txt2pho'`" + text 'console wav player executable' \ + ROCKCFG_OUTPUT_TTS_PLAY "`which play || echo '/usr/bin/play'`" + fi ; + + comment ' ' + comment '- What would you like to be informed about?' + block_begin 2 + + bool 'Generic header at section start' \ + ROCKCFG_OUTPUT_TTS_ENABLE_HEADER 0 + bool 'Generic status messages' \ + ROCKCFG_OUTPUT_TTS_ENABLE_STATUS 0 + bool 'Generic error messages' \ + ROCKCFG_OUTPUT_TTS_ENABLE_ERROR 1 + comment ' ' + + bool 'Package build refusals' \ + ROCKCFG_OUTPUT_TTS_ENABLE_PKG_DENY 0 + [ $ROCKCFG_OUTPUT_TTS_ENABLE_PKG_DENY -eq 1 ] && + text 'Text to say when package is denied' \ + ROCKCFG_OUTPUT_TTS_TXT_PKG_DENY \ + 'The package \$2 has been rejected in stage \$1 because of \$3.' + comment ' ' + + bool 'Package build starting messages' \ + ROCKCFG_OUTPUT_TTS_ENABLE_PKG_START 1 + [ $ROCKCFG_OUTPUT_TTS_ENABLE_PKG_START -eq 1 ] && + text 'Text to say when package build starts' \ + ROCKCFG_OUTPUT_TTS_TXT_PKG_START \ + 'The build of the package \$3 from the \$2 repository is beginning for stage \$1.' + comment ' ' + + bool 'Package build finished messages' \ + ROCKCFG_OUTPUT_TTS_ENABLE_PKG_FINISH 1 + [ $ROCKCFG_OUTPUT_TTS_ENABLE_PKG_FINISH -eq 1 ] && + text 'Text to say when package build is finished' \ + ROCKCFG_OUTPUT_TTS_TXT_PKG_FINISH \ + 'The build of the package \$3 from the \$2 repository has finished succesfully.' + comment ' ' + + bool 'Package build aborted messages' \ + ROCKCFG_OUTPUT_TTS_ENABLE_PKG_ABORT 1 + [ $ROCKCFG_OUTPUT_TTS_ENABLE_PKG_ABORT -eq 1 ] && + text 'Text to say when package build has been aborted' \ + ROCKCFG_OUTPUT_TTS_TXT_PKG_ABORT \ + 'Unfortunately, the build of package \$3 from the \$2 repository had to be aborted!' + comment ' ' + + bool 'Package build errorquote messages' \ + ROCKCFG_OUTPUT_TTS_ENABLE_ERRORQUOTE 0 + [ $ROCKCFG_OUTPUT_TTS_ENABLE_ERRORQUOTE -eq 1 ] && + text 'Text to say when the logfile would be quoted' \ + ROCKCFG_OUTPUT_TTS_TXT_ERRORQUOTE \ + 'An Error occured. Please have a look at the logfile!' + block_end + + block_end + menu_end +fi diff --git a/misc/output/speech b/misc/output/tts/functions.sh similarity index 52% rename from misc/output/speech rename to misc/output/tts/functions.sh index f442dffa9..8dd905f89 100644 --- a/misc/output/speech +++ b/misc/output/tts/functions.sh @@ -5,7 +5,7 @@ # the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by # the ./scripts/Create-CopyPatch script. Do not edit this copyright text! # -# ROCK Linux: rock-src/misc/output/speech +# ROCK Linux: rock-src/misc/output/tts/functions.sh # ROCK Linux is Copyright (C) 1998 - 2003 Clifford Wolf # # This program is free software; you can redistribute it and/or modify @@ -21,48 +21,63 @@ # --- ROCK-COPYRIGHT-NOTE-END --- # first we will construct a universal 'say' function +function say_proc() { + while read line + do + while read -t1 subline; do + line="$( echo -e "${line%.}.\\n$subline" | tail -n10 )" + done + + case "$ROCKCFG_OUTPUT_TTS_SYSTEM" in + ownscript) + echo "${line%.}." | ($ROCKCFG_OUTPUT_TTS_SAYPROG 2>&1) > /dev/null ;; + festival) + echo "${line%.}." | $ROCKCFG_OUTPUT_TTS_FESTIVAL --tts - ;; + mbrola) + echo "${line%.}." | $ROCKCFG_OUTPUT_TTS_TXT2PHO \ + | $ROCKCFG_OUTPUT_TTS_MBROLA \ + $ROCKCFG_OUTPUT_TTS_VOICEFILE - -.wav \ + | $ROCKCFG_OUTPUT_TTS_PLAY ;; + flite) + $ROCKCFG_OUTPUT_TTS_FLITE -t "${line%.}." 2>&1 > /dev/null ;; + esac + done +} function say() { - if [ $ROCKCFG_OUTPUT_SPEECH_OWNSCRIPT -eq 1 ] ; then - echo $* | ($ROCKCFG_OUTPUT_SPEECH_SAYPROG 2>&1) > /dev/null - else - if [ $ROCKCFG_OUTPUT_SPEECH_USEFESTIVAL -eq 1 ] ; then - - echo $* | $ROCKCFG_OUTPUT_SPEECH_FESTIVAL --tts - ; - else - echo $* | $ROCKCFG_OUTPUT_SPEECH_TXT2PHO \ - | $ROCKCFG_OUTPUT_SPEECH_MBROLA $ROCKCFG_OUTPUT_SPEECH_VOICEFILE - -.wav \ - | $ROCKCFG_OUTPUT_SPEECH_PLAY ; - fi ; - fi ; + if [ -z "$ROCK_OUPUT_PLUGIN_TTS_PROC_ACTIVE" ]; then + export ROCK_OUPUT_PLUGIN_TTS_PROC_ACTIVE=1 + exec 198> >( say_proc ) + fi + echo "$*" >&198 } # A free-form header at start of a section usually followed by calls to # echo_status_terminal(). # -echo_header_speech() { - [ $ROCKCFG_OUTPUT_SPEECH_ENABLE_HEADER -eq 1 ] && say "$*" +echo_header_tts() { + [ $ROCKCFG_OUTPUT_TTS_ENABLE_HEADER -eq 1 ] && say "$*" } # A free-form status message informaing the user of what is happening just # now. # -echo_status_speech() { - [ $ROCKCFG_OUTPUT_SPEECH_ENABLE_STATUS -eq 1 ] && say "$*" +echo_status_tts() { + [ $ROCKCFG_OUTPUT_TTS_ENABLE_STATUS -eq 1 ] && say "$*" } # A free-form error or warning message if something fails. # -echo_error_speech() { - [ $ROCKCFG_OUTPUT_SPEECH_ENABLE_ERROR -eq 1 ] && say "$*" +echo_error_tts() { + [ $ROCKCFG_OUTPUT_TTS_ENABLE_ERROR -eq 1 ] && say "$*" } # We deny to build a package for some reason. # # Usage: echo_pkg_deny # -echo_pkg_deny_speech() { - [ $ROCKCFG_OUTPUT_SPEECH_ENABLE_PKG_DENY -eq 1 ] && - say `eval echo "$ROCKCFG_OUTPUT_SPEECH_TXT_PKG_DENY"` +echo_pkg_deny_tts() { + [ $ROCKCFG_OUTPUT_TTS_ENABLE_PKG_DENY -eq 1 ] && + say `eval echo "$ROCKCFG_OUTPUT_TTS_TXT_PKG_DENY"` } # We start building a package. @@ -70,34 +85,34 @@ echo_pkg_deny_speech() { # Usage: echo_pkg_start \ # # -echo_pkg_start_speech() { - [ $ROCKCFG_OUTPUT_SPEECH_ENABLE_PKG_START -eq 1 ] && - say `eval echo "$ROCKCFG_OUTPUT_SPEECH_TXT_PKG_START"` +echo_pkg_start_tts() { + [ $ROCKCFG_OUTPUT_TTS_ENABLE_PKG_START -eq 1 ] && + say `eval echo "$ROCKCFG_OUTPUT_TTS_TXT_PKG_START"` } # We finished building a package. # # Usage: echo_pkg_finish # -echo_pkg_finish_speech() { - [ $ROCKCFG_OUTPUT_SPEECH_ENABLE_PKG_FINISH -eq 1 ] && - say `eval echo "$ROCKCFG_OUTPUT_SPEECH_TXT_PKG_FINISH"` +echo_pkg_finish_tts() { + [ $ROCKCFG_OUTPUT_TTS_ENABLE_PKG_FINISH -eq 1 ] && + say `eval echo "$ROCKCFG_OUTPUT_TTS_TXT_PKG_FINISH"` } # We aborted building a package. # # Usage: echo_pkg_abort # -echo_pkg_abort_speech() { - [ $ROCKCFG_OUTPUT_SPEECH_ENABLE_PKG_ABORT -eq 1 ] && - say `eval echo "$ROCKCFG_OUTPUT_SPEECH_TXT_PKG_ABORT"` +echo_pkg_abort_tts() { + [ $ROCKCFG_OUTPUT_TTS_ENABLE_PKG_ABORT -eq 1 ] && + say `eval echo "$ROCKCFG_OUTPUT_TTS_TXT_PKG_ABORT"` } # Whenever the tail of error logs are printed, this function is used for # that. The parameter may contain newlines. # -echo_errorquote_speech() { - [ $ROCKCFG_OUTPUT_SPEECH_ENABLE_ERRORQUOTE -eq 1 ] && - say `eval echo "$ROCKCFG_OUTPUT_SPEECH_TXT_ERRORQUOTE"` +echo_errorquote_tts() { + [ $ROCKCFG_OUTPUT_TTS_ENABLE_ERRORQUOTE -eq 1 ] && + say `eval echo "$ROCKCFG_OUTPUT_TTS_TXT_ERRORQUOTE"` } diff --git a/scripts/config.func b/scripts/config.func index 7c82b3ad6..2e906d83f 100644 --- a/scripts/config.func +++ b/scripts/config.func @@ -530,7 +530,7 @@ $item_name:\\ /^[^ ]/q s/^ // p - }" scripts/config*.hlp package/*/*/subconfig-*.hlp package/*/*/config*.hlp target/*/config*.hlp misc/config/config*.hlp 2>/dev/null ) + }" scripts/config*.hlp package/*/*/subconfig-*.hlp package/*/*/config*.hlp target/*/config*.hlp misc/*/config*.hlp misc/*/*/config*.hlp 2>/dev/null ) # Get help strings out of the temporary file. tmp_text=$(grep "^$item_name" config.help | cut -f2- -d' ' | sed -e "s,^',," -e "s,'$,," )