Commit 0a1771d4 authored by Thomas Roessler's avatar Thomas Roessler

Add capitalize-word, upcase-word, downcase-word functions to the

editor.  Bindings follow the Emacs conventions (i.e., M-c, M-u, M-d).
parent f31f6d24
......@@ -73,6 +73,9 @@ OP_EDITOR_KILL_LINE "delete all chars on the line"
OP_EDITOR_KILL_WORD "delete the word in front of the cursor"
OP_EDITOR_QUOTE_CHAR "quote the next typed key"
OP_EDITOR_TRANSPOSE_CHARS "transpose character under cursor with previous"
OP_EDITOR_CAPITALIZE_WORD "capitalize the word"
OP_EDITOR_DOWNCASE_WORD "convert the word to lower case"
OP_EDITOR_UPCASE_WORD "convert the word to upper case"
OP_ENTER_COMMAND "enter a muttrc command"
OP_ENTER_MASK "enter a file mask"
OP_EXIT "exit this menu"
......
......@@ -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)
{
......
......@@ -351,6 +351,9 @@ struct binding_t OpEditor[] = {
{ "bol", OP_EDITOR_BOL, "\001" },
{ "backward-char", OP_EDITOR_BACKWARD_CHAR, "\002" },
{ "backward-word", OP_EDITOR_BACKWARD_WORD, "\033b"},
{ "capitalize-word", OP_EDITOR_CAPITALIZE_WORD, "\033c"},
{ "downcase-word", OP_EDITOR_DOWNCASE_WORD, "\033l"},
{ "upcase-word", OP_EDITOR_UPCASE_WORD, "\033u"},
{ "delete-char", OP_EDITOR_DELETE_CHAR, "\004" },
{ "eol", OP_EDITOR_EOL, "\005" },
{ "forward-char", OP_EDITOR_FORWARD_CHAR, "\006" },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment