On Mon, Dec 27, 2010 at 03:01:57PM -0700, Kjell Wooding wrote:
> Looks good. Here is a slight cleanup. Essentially, fix alphabetical
> ordering, change function name :
The patch isn't applying for me. It seems tabs have been converted to
spaces in your diff.
> Index: def.h
> ===================================================================
> RCS file: /cvs/src/usr.bin/mg/def.h,v
> retrieving revision 1.113
> diff -u -u -r1.113 def.h
> --- def.h 30 Jun 2010 19:12:54 -0000 1.113
> +++ def.h 27 Dec 2010 21:58:28 -0000
> @@ -511,6 +511,7 @@
> int forwdel(int, int);
> int backdel(int, int);
> int space_to_tabstop(int, int);
> +int backtoindent(int, int);
>
> /* extend.c X */
> int insert(int, int);
> Index: funmap.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/mg/funmap.c,v
> retrieving revision 1.32
> diff -u -u -r1.32 funmap.c
> --- funmap.c 15 Sep 2008 16:13:35 -0000 1.32
> +++ funmap.c 27 Dec 2010 21:58:28 -0000
> @@ -26,6 +26,7 @@
> {auto_execute, "auto-execute", },
> {fillmode, "auto-fill-mode",},
> {indentmode, "auto-indent-mode",},
> + {backtoindent, "back-to-indentation",},
> {backchar, "backward-char",},
> {delbword, "backward-kill-word",},
> {gotobop, "backward-paragraph",},
> Index: keymap.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/mg/keymap.c,v
> retrieving revision 1.43
> diff -u -u -r1.43 keymap.c
> --- keymap.c 27 Aug 2008 04:11:52 -0000 1.43
> +++ keymap.c 27 Dec 2010 21:58:28 -0000
> @@ -241,7 +241,7 @@
>
> static PF metal[] = {
> lowerword, /* l */
> - rescan, /* m */
> + backtoindent, /* m */
> rescan, /* n */
> rescan, /* o */
> rescan, /* p */
> Index: mg.1
> ===================================================================
> RCS file: /cvs/src/usr.bin/mg/mg.1,v
> retrieving revision 1.47
> diff -u -u -r1.47 mg.1
> --- mg.1 7 Oct 2010 17:08:58 -0000 1.47
> +++ mg.1 27 Dec 2010 21:58:28 -0000
> @@ -230,6 +230,8 @@
> forward-word
> .It M-l
> downcase-word
> +.It M-m
> +back-to-indentation
> .It M-q
> fill-paragraph
> .It M-r
> @@ -304,6 +306,8 @@
> to a new line.
> .It auto-indent-mode
> Toggle indent mode, where indentation is preserved after a newline.
> +.It back-to-indentation
> +Move the dot to the first non-whitespace character on the current line.
> .It backward-char
> Move cursor backwards one character.
> .It backward-kill-word
> Index: random.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/mg/random.c,v
> retrieving revision 1.26
> diff -u -u -r1.26 random.c
> --- random.c 15 Sep 2008 16:13:35 -0000 1.26
> +++ random.c 27 Dec 2010 21:58:28 -0000
> @@ -440,3 +440,16 @@
> return (linsert((n << 3) - (curwp->w_doto & 7), ' '));
> }
> #endif /* NOTAB */
> +
> +/*
> + * Move the dot to the first non-whitespace character of the current line.
> + */
> +int
> +backtoindent(int f, int n)
> +{
> + gotobol(FFRAND, 1);
> + while (curwp->w_doto < llength(curwp->w_dotp) &&
> + (isspace(lgetc(curwp->w_dotp, curwp->w_doto))))
> + ++curwp->w_doto;
> + return (TRUE);
> +}