From 0a1771d4dc71fc9f197ff6d5a5d13ead116f5956 Mon Sep 17 00:00:00 2001 From: Thomas Roessler Date: Fri, 27 Oct 2000 10:35:04 +0000 Subject: Add capitalize-word, upcase-word, downcase-word functions to the editor. Bindings follow the Emacs conventions (i.e., M-c, M-u, M-d). --- enter.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'enter.c') diff --git a/enter.c b/enter.c index a9307223..6795ddc7 100644 --- a/enter.c +++ b/enter.c @@ -331,6 +331,60 @@ int _mutt_enter_string (unsigned char *buf, size_t buflen, int y, int x, } break; + case OP_EDITOR_CAPITALIZE_WORD: + if (curpos == lastchar) + { + BEEP (); + break; + } + while (curpos < lastchar && ISSPACE (buf[curpos])) + curpos++; + if (curpos < lastchar) + { + buf[curpos] = toupper (buf[curpos]); + curpos++; + } + if (curpos == lastchar || ISSPACE (buf[curpos])) + { + if (!pass) + { + if (curpos >= begin + width) + begin = curpos - width / 2; + else + move (y, x + curpos - begin); + redraw = M_REDRAW_LINE; + } + break; + } + + /* fall through */ + case OP_EDITOR_UPCASE_WORD: + case OP_EDITOR_DOWNCASE_WORD: + if (curpos == lastchar) + { + BEEP(); + break; + } + while (curpos < lastchar && ISSPACE (buf[curpos])) + curpos++; + while (curpos < lastchar && !ISSPACE(buf[curpos])) + { + if (ch == OP_EDITOR_UPCASE_WORD) + buf[curpos] = toupper (buf[curpos]); + else /* DOWNCASE_WORD, CAPITALIZE_WORD */ + buf[curpos] = tolower (buf[curpos]); + curpos++; + } + if (!pass) + { + if (curpos >= begin + width) + begin = curpos - width / 2; + else + move (y, x + curpos - begin); + redraw = M_REDRAW_LINE; + } + break; + case OP_EDITOR_DELETE_CHAR: if (curpos != lastchar) { -- cgit v1.2.3