diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2020-07-29 02:35:31 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-07-29 14:02:41 +0200 |
commit | 2067fd92d75b6d9085a43caf050bca5d88c491b8 (patch) | |
tree | 9c15bdf3efa0fc8e4dc57966d0f0cfce4a32de54 /drivers/staging | |
parent | 408a68c5f64fe2f7921449d655ffef5038144f06 (diff) |
staging/speakup: Move out of staging
The nasty TODO items are done.
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Link: https://lore.kernel.org/r/20200729003531.907370-1-samuel.thibault@ens-lyon.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging')
46 files changed, 0 insertions, 13413 deletions
diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig index b3fb4d41e231..e6c831c6cccc 100644 --- a/drivers/staging/Kconfig +++ b/drivers/staging/Kconfig @@ -56,8 +56,6 @@ source "drivers/staging/sm750fb/Kconfig" source "drivers/staging/emxx_udc/Kconfig" -source "drivers/staging/speakup/Kconfig" - source "drivers/staging/nvec/Kconfig" source "drivers/staging/media/Kconfig" diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile index 3d8c7ea21a10..a3b1fd0622f9 100644 --- a/drivers/staging/Makefile +++ b/drivers/staging/Makefile @@ -20,7 +20,6 @@ obj-$(CONFIG_VME_BUS) += vme/ obj-$(CONFIG_IIO) += iio/ obj-$(CONFIG_FB_SM750) += sm750fb/ obj-$(CONFIG_USB_EMXX) += emxx_udc/ -obj-$(CONFIG_SPEAKUP) += speakup/ obj-$(CONFIG_MFD_NVEC) += nvec/ obj-$(CONFIG_ANDROID) += android/ obj-$(CONFIG_STAGING_BOARD) += board/ diff --git a/drivers/staging/speakup/DefaultKeyAssignments b/drivers/staging/speakup/DefaultKeyAssignments deleted file mode 100644 index 101c803b21fd..000000000000 --- a/drivers/staging/speakup/DefaultKeyAssignments +++ /dev/null @@ -1,46 +0,0 @@ -This file is intended to give you an overview of the default keys used -by speakup for it's review functions. You may change them to be -anything you want but that will take some familiarity with key -mapping. - -We have remapped the insert or zero key on the keypad to act as a -shift key. Well, actually as an altgr key. So in the following list -InsKeyPad-period means hold down the insert key like a shift key and -hit the keypad period. - -KeyPad-8 Say current Line -InsKeyPad-8 say from top of screen to reading cursor. -KeyPad-7 Say Previous Line (UP one line) -KeyPad-9 Say Next Line (down one line) -KeyPad-5 Say Current Word -InsKeyPad-5 Spell Current Word -KeyPad-4 Say Previous Word (left one word) -InsKeyPad-4 say from left edge of line to reading cursor. -KeyPad-6 Say Next Word (right one word) -InsKeyPad-6 Say from reading cursor to right edge of line. -KeyPad-2 Say Current Letter -InsKeyPad-2 say current letter phonetically -KeyPad-1 Say Previous Character (left one letter) -KeyPad-3 Say Next Character (right one letter) -KeyPad-plus Say Entire Screen -InsKeyPad-plus Say from reading cursor line to bottom of screen. -KeyPad-Minus Park reading cursor (toggle) -InsKeyPad-minus Say character hex and decimal value. -KeyPad-period Say Position (current line, position and console) -InsKeyPad-period say colour attributes of current position. -InsKeyPad-9 Move reading cursor to top of screen (insert pgup) -InsKeyPad-3 Move reading cursor to bottom of screen (insert pgdn) -InsKeyPad-7 Move reading cursor to left edge of screen (insert home) -InsKeyPad-1 Move reading cursor to right edge of screen (insert end) -ControlKeyPad-1 Move reading cursor to last character on current line. -KeyPad-Enter Shut Up (until another key is hit) and sync reading cursor -InsKeyPad-Enter Shut Up (until toggled back on). -InsKeyPad-star n<x|y> go to line (y) or column (x). Where 'n' is any - allowed value for the row or column for your current screen. -KeyPad-/ Mark and Cut screen region. -InsKeyPad-/ Paste screen region into any console. - -Hitting any key while speakup is outputting speech will quiet the -synth until it has caught up with what is being printed on the -console. - diff --git a/drivers/staging/speakup/Kconfig b/drivers/staging/speakup/Kconfig deleted file mode 100644 index 0803c2013cf4..000000000000 --- a/drivers/staging/speakup/Kconfig +++ /dev/null @@ -1,200 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0 -menu "Speakup console speech" - -config SPEAKUP - depends on VT - tristate "Speakup core" - help - This is the Speakup screen reader. Think of it as a - video console for blind people. If built in to the - kernel, it can speak everything on the text console from - boot up to shutdown. For more information on Speakup, - point your browser at <http://www.linux-speakup.org/>. - There is also a mailing list at the above url that you - can subscribe to. - - Supported synthesizers are accent sa, accent pc, - appollo II., Auddapter, Braille 'n Speak, Dectalk - external (old), Dectalk PC (full length isa board), - Dectalk express, Doubletalk, Doubletalk LT or - Litetalk, Keynote Gold internal PC, software - synthesizers, Speakout, transport, and a dummy module - that can be used with a plain text terminal. - - Speakup can either be built in or compiled as a module - by answering y or m. If you answer y here, then you - must answer either y or m to at least one of the - synthesizer drivers below. If you answer m here, then - the synthesizer drivers below can only be built as - modules. - - These drivers are not standalone drivers, but must be - used in conjunction with Speakup. Think of them as - video cards for blind people. - - - The Dectalk pc driver can only be built as a module, and - requires software to be pre-loaded on to the card before - the module can be loaded. See the decpc choice below - for more details. - - If you are not a blind person, or don't have access to - one of the listed synthesizers, you should say n. - -if SPEAKUP -config SPEAKUP_SYNTH_ACNTSA - tristate "Accent SA synthesizer support" - help - This is the Speakup driver for the Accent SA - synthesizer. You can say y to build it into the kernel, - or m to build it as a module. See the configuration - help on the Speakup choice above for more info. - -config SPEAKUP_SYNTH_ACNTPC - tristate "Accent PC synthesizer support" - depends on ISA || COMPILE_TEST - help - This is the Speakup driver for the accent pc - synthesizer. You can say y to build it into the kernel, - or m to build it as a module. See the configuration - help on the Speakup choice above for more info. - -config SPEAKUP_SYNTH_APOLLO - tristate "Apollo II synthesizer support" - help - This is the Speakup driver for the Apollo II - synthesizer. You can say y to build it into the kernel, - or m to build it as a module. See the configuration - help on the Speakup choice above for more info. - -config SPEAKUP_SYNTH_AUDPTR - tristate "Audapter synthesizer support" - help - This is the Speakup driver for the Audapter synthesizer. - You can say y to build it into the kernel, or m to - build it as a module. See the configuration help on the - Speakup choice above for more info. - -config SPEAKUP_SYNTH_BNS - tristate "Braille 'n' Speak synthesizer support" - help - This is the Speakup driver for the Braille 'n' Speak - synthesizer. You can say y to build it into the kernel, - or m to build it as a module. See the configuration - help on the Speakup choice above for more info. - -config SPEAKUP_SYNTH_DECTLK - tristate "DECtalk Express synthesizer support" - help - - This is the Speakup driver for the DecTalk Express - synthesizer. You can say y to build it into the kernel, - or m to build it as a module. See the configuration - help on the Speakup choice above for more info. - -config SPEAKUP_SYNTH_DECEXT - tristate "DECtalk External (old) synthesizer support" - help - - This is the Speakup driver for the DecTalk External - (old) synthesizer. You can say y to build it into the - kernel, or m to build it as a module. See the - configuration help on the Speakup choice above for more - info. - -config SPEAKUP_SYNTH_DECPC - depends on m - depends on ISA || COMPILE_TEST - tristate "DECtalk PC (big ISA card) synthesizer support" - help - - This is the Speakup driver for the DecTalk PC (full - length ISA) synthesizer. You can say m to build it as - a module. See the configuration help on the Speakup - choice above for more info. - - In order to use the DecTalk PC driver, you must download - the dec_pc.tgz file from linux-speakup.org. It is in - the pub/linux/goodies directory. The dec_pc.tgz file - contains the software which must be pre-loaded on to the - DecTalk PC board in order to use it with this driver. - This driver must be built as a module, and can not be - loaded until the file system is mounted and the DecTalk - PC software has been pre-loaded on to the board. - - See the README file in the dec_pc.tgz file for more - details. - -config SPEAKUP_SYNTH_DTLK - tristate "DoubleTalk PC synthesizer support" - depends on ISA || COMPILE_TEST - help - - This is the Speakup driver for the internal DoubleTalk - PC synthesizer. You can say y to build it into the - kernel, or m to build it as a module. See the - configuration help on the Speakup choice above for more - info. - -config SPEAKUP_SYNTH_KEYPC - tristate "Keynote Gold PC synthesizer support" - depends on ISA || COMPILE_TEST - help - - This is the Speakup driver for the Keynote Gold - PC synthesizer. You can say y to build it into the - kernel, or m to build it as a module. See the - configuration help on the Speakup choice above for more - info. - -config SPEAKUP_SYNTH_LTLK - tristate "DoubleTalk LT/LiteTalk synthesizer support" -help - - This is the Speakup driver for the LiteTalk/DoubleTalk - LT synthesizer. You can say y to build it into the - kernel, or m to build it as a module. See the - configuration help on the Speakup choice above for more - info. - -config SPEAKUP_SYNTH_SOFT - tristate "Userspace software synthesizer support" - help - - This is the software synthesizer device node. It will - register a device /dev/softsynth which midware programs - and speech daemons may open and read to provide kernel - output to software synths such as espeak, festival, - flite and so forth. You can select 'y' or 'm' to have - it built-in to the kernel or loaded as a module. - -config SPEAKUP_SYNTH_SPKOUT - tristate "Speak Out synthesizer support" - help - - This is the Speakup driver for the Speakout synthesizer. - You can say y to build it into the kernel, or m to - build it as a module. See the configuration help on the - Speakup choice above for more info. - -config SPEAKUP_SYNTH_TXPRT - tristate "Transport synthesizer support" - help - - This is the Speakup driver for the Transport - synthesizer. You can say y to build it into the kernel, - or m to build it as a module. See the configuration - help on the Speakup choice above for more info. - -config SPEAKUP_SYNTH_DUMMY - tristate "Dummy synthesizer driver (for testing)" - help - - This is a dummy Speakup driver for plugging a mere serial - terminal. This is handy if you want to test speakup but - don't have the hardware. You can say y to build it into - the kernel, or m to build it as a module. See the - configuration help on the Speakup choice above for more info. - -endif # SPEAKUP -endmenu diff --git a/drivers/staging/speakup/Makefile b/drivers/staging/speakup/Makefile deleted file mode 100644 index 5befb4933b85..000000000000 --- a/drivers/staging/speakup/Makefile +++ /dev/null @@ -1,32 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0 -obj-$(CONFIG_SPEAKUP_SYNTH_ACNTSA) += speakup_acntsa.o -obj-$(CONFIG_SPEAKUP_SYNTH_ACNTPC) += speakup_acntpc.o -obj-$(CONFIG_SPEAKUP_SYNTH_APOLLO) += speakup_apollo.o -obj-$(CONFIG_SPEAKUP_SYNTH_AUDPTR) += speakup_audptr.o -obj-$(CONFIG_SPEAKUP_SYNTH_BNS) += speakup_bns.o -obj-$(CONFIG_SPEAKUP_SYNTH_DECTLK) += speakup_dectlk.o -obj-$(CONFIG_SPEAKUP_SYNTH_DECEXT) += speakup_decext.o -obj-$(CONFIG_SPEAKUP_SYNTH_DECPC) += speakup_decpc.o -obj-$(CONFIG_SPEAKUP_SYNTH_DTLK) += speakup_dtlk.o -obj-$(CONFIG_SPEAKUP_SYNTH_KEYPC) += speakup_keypc.o -obj-$(CONFIG_SPEAKUP_SYNTH_LTLK) += speakup_ltlk.o -obj-$(CONFIG_SPEAKUP_SYNTH_SOFT) += speakup_soft.o -obj-$(CONFIG_SPEAKUP_SYNTH_SPKOUT) += speakup_spkout.o -obj-$(CONFIG_SPEAKUP_SYNTH_TXPRT) += speakup_txprt.o -obj-$(CONFIG_SPEAKUP_SYNTH_DUMMY) += speakup_dummy.o - -obj-$(CONFIG_SPEAKUP) += speakup.o -speakup-y := \ - buffers.o \ - devsynth.o \ - i18n.o \ - fakekey.o \ - main.o \ - keyhelp.o \ - kobjects.o \ - selection.o \ - serialio.o \ - spk_ttyio.o \ - synth.o \ - thread.o \ - varhandlers.o diff --git a/drivers/staging/speakup/TODO b/drivers/staging/speakup/TODO deleted file mode 100644 index d4ca093bf0bd..000000000000 --- a/drivers/staging/speakup/TODO +++ /dev/null @@ -1,22 +0,0 @@ -Speakup project home: http://www.linux-speakup.org - -Mailing List: speakup@linux-speakup.org - -Speakup is a kernel based screen review package for the linux operating -system. It allows blind users to interact with applications on the -linux console by means of synthetic speech. - -Currently, speakup has one issue we know of. - -It seems to only happen on SMP systems. It seems that text in the output buffer -gets garbled because a lock is not set. This bug happens regularly, but no one -has been able to find a situation which produces it consistently. - -Patches, suggestions, corrections, etc, are definitely welcome. - -We prefer that you contact us on the mailing list; however, if you do -not want to subscribe to a mailing list, send your email to all of the -following: - -okash.khawaja@gmail.com, w.d.hubbs@gmail.com, chris@the-brannons.com, -kirk@reisers.ca and samuel.thibault@ens-lyon.org. diff --git a/drivers/staging/speakup/buffers.c b/drivers/staging/speakup/buffers.c deleted file mode 100644 index 1371ced2f5ca..000000000000 --- a/drivers/staging/speakup/buffers.c +++ /dev/null @@ -1,124 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#include <linux/console.h> -#include <linux/types.h> -#include <linux/wait.h> - -#include "speakup.h" -#include "spk_priv.h" - -#define SYNTH_BUF_SIZE 8192 /* currently 8K bytes */ - -static u16 synth_buffer[SYNTH_BUF_SIZE]; /* guess what this is for! */ -static u16 *buff_in = synth_buffer; -static u16 *buff_out = synth_buffer; -static u16 *buffer_end = synth_buffer + SYNTH_BUF_SIZE - 1; - -/* These try to throttle applications by stopping the TTYs - * Note: we need to make sure that we will restart them eventually, which is - * usually not possible to do from the notifiers. TODO: it should be possible - * starting from linux 2.6.26. - * - * So we only stop when we know alive == 1 (else we discard the data anyway), - * and the alive synth will eventually call start_ttys from the thread context. - */ -void speakup_start_ttys(void) -{ - int i; - - for (i = 0; i < MAX_NR_CONSOLES; i++) { - if (speakup_console[i] && speakup_console[i]->tty_stopped) - continue; - if (vc_cons[i].d && vc_cons[i].d->port.tty) - start_tty(vc_cons[i].d->port.tty); - } -} -EXPORT_SYMBOL_GPL(speakup_start_ttys); - -static void speakup_stop_ttys(void) -{ - int i; - - for (i = 0; i < MAX_NR_CONSOLES; i++) - if (vc_cons[i].d && vc_cons[i].d->port.tty) - stop_tty(vc_cons[i].d->port.tty); -} - -static int synth_buffer_free(void) -{ - int chars_free; - - if (buff_in >= buff_out) - chars_free = SYNTH_BUF_SIZE - (buff_in - buff_out); - else - chars_free = buff_out - buff_in; - return chars_free; -} - -int synth_buffer_empty(void) -{ - return (buff_in == buff_out); -} -EXPORT_SYMBOL_GPL(synth_buffer_empty); - -void synth_buffer_add(u16 ch) -{ - if (!synth->alive) { - /* This makes sure that we won't stop TTYs if there is no synth - * to restart them - */ - return; - } - if (synth_buffer_free() <= 100) { - synth_start(); - speakup_stop_ttys(); - } - if (synth_buffer_free() <= 1) - return; - *buff_in++ = ch; - if (buff_in > buffer_end) - buff_in = synth_buffer; - /* We have written something to the speech synthesis, so we are not - * paused any more. - */ - spk_paused = false; -} - -u16 synth_buffer_getc(void) -{ - u16 ch; - - if (buff_out == buff_in) - return 0; - ch = *buff_out++; - if (buff_out > buffer_end) - buff_out = synth_buffer; - return ch; -} -EXPORT_SYMBOL_GPL(synth_buffer_getc); - -u16 synth_buffer_peek(void) -{ - if (buff_out == buff_in) - return 0; - return *buff_out; -} -EXPORT_SYMBOL_GPL(synth_buffer_peek); - -void synth_buffer_skip_nonlatin1(void) -{ - while (buff_out != buff_in) { - if (*buff_out < 0x100) - return; - buff_out++; - if (buff_out > buffer_end) - buff_out = synth_buffer; - } -} -EXPORT_SYMBOL_GPL(synth_buffer_skip_nonlatin1); - -void synth_buffer_clear(void) -{ - buff_in = synth_buffer; - buff_out = synth_buffer; -} -EXPORT_SYMBOL_GPL(synth_buffer_clear); diff --git a/drivers/staging/speakup/devsynth.c b/drivers/staging/speakup/devsynth.c deleted file mode 100644 index d30571663585..000000000000 --- a/drivers/staging/speakup/devsynth.c +++ /dev/null @@ -1,92 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#include <linux/errno.h> -#include <linux/miscdevice.h> /* for misc_register, and MISC_DYNAMIC_MINOR */ -#include <linux/types.h> -#include <linux/uaccess.h> - -#include "speakup.h" -#include "spk_priv.h" - -static int misc_registered; -static int dev_opened; - -static ssize_t speakup_file_write(struct file *fp, const char __user *buffer, - size_t nbytes, loff_t *ppos) -{ - size_t count = nbytes; - const char __user *ptr = buffer; - size_t bytes; - unsigned long flags; - u_char buf[256]; - - if (!synth) - return -ENODEV; - while (count > 0) { - bytes = min(count, sizeof(buf)); - if (copy_from_user(buf, ptr, bytes)) - return -EFAULT; - count -= bytes; - ptr += bytes; - spin_lock_irqsave(&speakup_info.spinlock, flags); - synth_write(buf, bytes); - spin_unlock_irqrestore(&speakup_info.spinlock, flags); - } - return (ssize_t)nbytes; -} - -static ssize_t speakup_file_read(struct file *fp, char __user *buf, - size_t nbytes, loff_t *ppos) -{ - return 0; -} - -static int speakup_file_open(struct inode *ip, struct file *fp) -{ - if (!synth) - return -ENODEV; - if (xchg(&dev_opened, 1)) - return -EBUSY; - return 0; -} - -static int speakup_file_release(struct inode *ip, struct file *fp) -{ - dev_opened = 0; - return 0; -} - -static const struct file_operations synth_fops = { - .read = speakup_file_read, - .write = speakup_file_write, - .open = speakup_file_open, - .release = speakup_file_release, -}; - -static struct miscdevice synth_device = { - .minor = MISC_DYNAMIC_MINOR, - .name = "synth", - .fops = &synth_fops, -}; - -void speakup_register_devsynth(void) -{ - if (misc_registered != 0) - return; -/* zero it so if register fails, deregister will not ref invalid ptrs */ - if (misc_register(&synth_device)) { - pr_warn("Couldn't initialize miscdevice /dev/synth.\n"); - } else { - pr_info("initialized device: /dev/synth, node (MAJOR %d, MINOR %d)\n", - MISC_MAJOR, synth_device.minor); - misc_registered = 1; - } -} - -void speakup_unregister_devsynth(void) -{ - if (!misc_registered) - return; - pr_info("speakup: unregistering synth device /dev/synth\n"); - misc_deregister(&synth_device); - misc_registered = 0; -} diff --git a/drivers/staging/speakup/fakekey.c b/drivers/staging/speakup/fakekey.c deleted file mode 100644 index cd029968462f..000000000000 --- a/drivers/staging/speakup/fakekey.c +++ /dev/null @@ -1,87 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0+ -/* fakekey.c - * Functions for simulating keypresses. - * - * Copyright (C) 2010 the Speakup Team - */ -#include <linux/types.h> -#include <linux/slab.h> -#include <linux/preempt.h> -#include <linux/percpu.h> -#include <linux/input.h> - -#include "speakup.h" - -#define PRESSED 1 -#define RELEASED 0 - -static DEFINE_PER_CPU(int, reporting_keystroke); - -static struct input_dev *virt_keyboard; - -int speakup_add_virtual_keyboard(void) -{ - int err; - - virt_keyboard = input_allocate_device(); - - if (!virt_keyboard) - return -ENOMEM; - - virt_keyboard->name = "Speakup"; - virt_keyboard->id.bustype = BUS_VIRTUAL; - virt_keyboard->phys = "speakup/input0"; - virt_keyboard->dev.parent = NULL; - - __set_bit(EV_KEY, virt_keyboard->evbit); - __set_bit(KEY_DOWN, virt_keyboard->keybit); - - err = input_register_device(virt_keyboard); - if (err) { - input_free_device(virt_keyboard); - virt_keyboard = NULL; - } - - return err; -} - -void speakup_remove_virtual_keyboard(void) -{ - if (virt_keyboard) { - input_unregister_device(virt_keyboard); - virt_keyboard = NULL; - } -} - -/* - * Send a simulated down-arrow to the application. - */ -void speakup_fake_down_arrow(void) -{ - unsigned long flags; - - /* disable keyboard interrupts */ - local_irq_save(flags); - /* don't change CPU */ - preempt_disable(); - - __this_cpu_write(reporting_keystroke, true); - input_report_key(virt_keyboard, KEY_DOWN, PRESSED); - input_report_key(virt_keyboard, KEY_DOWN, RELEASED); - input_sync(virt_keyboard); - __this_cpu_write(reporting_keystroke, false); - - /* reenable preemption */ - preempt_enable(); - /* reenable keyboard interrupts */ - local_irq_restore(flags); -} - -/* - * Are we handling a simulated keypress on the current CPU? - * Returns a boolean. - */ -bool speakup_fake_key_pressed(void) -{ - return this_cpu_read(reporting_keystroke); -} diff --git a/drivers/staging/speakup/i18n.c b/drivers/staging/speakup/i18n.c deleted file mode 100644 index ee240d36f947..000000000000 --- a/drivers/staging/speakup/i18n.c +++ /dev/null @@ -1,625 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/* Internationalization implementation. Includes definitions of English - * string arrays, and the i18n pointer. - */ - -#include <linux/slab.h> /* For kmalloc. */ -#include <linux/ctype.h> -#include <linux/module.h> -#include <linux/string.h> -#include "speakup.h" -#include "spk_priv.h" - -static char *speakup_msgs[MSG_LAST_INDEX]; -static char *speakup_default_msgs[MSG_LAST_INDEX] = { - [MSG_BLANK] = "blank", - [MSG_IAM_ALIVE] = "I'm aLive!", - [MSG_YOU_KILLED_SPEAKUP] = "You killed speakup!", - [MSG_HEY_THATS_BETTER] = "hey. That's better!", - [MSG_YOU_TURNED_ME_OFF] = "You turned me off!", - [MSG_PARKED] = "parked!", - [MSG_UNPARKED] = "unparked!", - [MSG_MARK] = "mark", - [MSG_CUT] = "cut", - [MSG_MARK_CLEARED] = "mark, cleared", - [MSG_PASTE] = "paste", - [MSG_BRIGHT] = "bright", - [MSG_ON_BLINKING] = "on blinking", - [MSG_OFF] = "off", - [MSG_ON] = "on", - [MSG_NO_WINDOW] = "no window", - [MSG_CURSORING_OFF] = "cursoring off", - [MSG_CURSORING_ON] = "cursoring on", - [MSG_HIGHLIGHT_TRACKING] = "highlight tracking", - [MSG_READ_WINDOW] = "read windo", - [MSG_READ_ALL] = "read all", - [MSG_EDIT_DONE] = "edit done", - [MSG_WINDOW_ALREADY_SET] = "window already set, clear then reset", - [MSG_END_BEFORE_START] = "error end before start", - [MSG_WINDOW_CLEARED] = "window cleared", - [MSG_WINDOW_SILENCED] = "window silenced", - [MSG_WINDOW_SILENCE_DISABLED] = "window silence disabled", - [MSG_ERROR] = "error", - [MSG_GOTO_CANCELED] = "goto canceled", - [MSG_GOTO] = "go to?", - [MSG_LEAVING_HELP] = "leaving help", - [MSG_IS_UNASSIGNED] = "is unassigned", - [MSG_HELP_INFO] = - "press space to exit, up or down to scroll, or a letter to go to a command", - [MSG_EDGE_TOP] = "top,", - [MSG_EDGE_BOTTOM] = "bottom,", - [MSG_EDGE_LEFT] = "left,", |