> Can some mg user please test this ? It's getting
> so irritating that I want to smash my keyboard.
Noone tests patches which come without a detailed description.
> Index: dired.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/mg/dired.c,v
> retrieving revision 1.48
> diff -u -p -r1.48 dired.c
> --- dired.c 23 Jan 2011 00:45:03 -0000 1.48
> +++ dired.c 25 Jul 2011 15:36:51 -0000
> @@ -36,6 +36,9 @@ static int d_rename(int, int);
> static int d_shell_command(int, int);
> static int d_create_directory(int, int);
> static int d_makename(struct line *, char *, size_t);
> +static int d_forwpage(int, int);
> +static int d_backpage(int, int);
> +static int d_gotoline(int, int);
> static void reaper(int);
>
> extern struct keymap_s helpmap, cXmap, metamap;
> @@ -58,15 +61,15 @@ static PF diredcl[] = {
> reposition, /* ^L */
> d_findfile, /* ^M */
> forwline, /* ^N */
> - rescan, /* ^O */
> + d_gotoline, /* ^O */
> backline, /* ^P */
> rescan, /* ^Q */
> backisearch, /* ^R */
> forwisearch, /* ^S */
> - rescan, /* ^T */
> + d_backpage, /* ^T */
> universal_argument, /* ^U */
> forwpage, /* ^V */
> - rescan, /* ^W */
> + d_forwpage, /* ^W */
> NULL /* ^X */
> };
>
> @@ -590,6 +593,36 @@ d_makename(struct line *lp, char *fn, si
> if (strlcat(fn, p, len) >= len)
> return (FALSE);
> return ((lgetc(lp, 2) == 'd') ? TRUE : FALSE);
> +}
> +
> +static int
> +d_forwpage(int f, int n)
> +{
> + forwpage(f | FFRAND, n);
> + if ((strrchr(curwp->w_dotp->l_text, ' ')) != NULL)
> + curwp->w_doto = strrchr(curwp->w_dotp->l_text, ' ') -
> + curwp->w_dotp->l_text + 1;
> + return TRUE;
> +}
> +
> +static int
> +d_backpage(int f, int n)
> +{
> + backpage(f | FFRAND, n);
> + if ((strrchr(curwp->w_dotp->l_text, ' ')) != NULL)
> + curwp->w_doto = strrchr(curwp->w_dotp->l_text, ' ') -
> + curwp->w_dotp->l_text + 1;
> + return TRUE;
> +}
> +
> +static int
> +d_gotoline(int f, int n)
> +{
> + gotoline(f | FFRAND, n);
> + if ((strrchr(curwp->w_dotp->l_text, ' ')) != NULL)
> + curwp->w_doto = strrchr(curwp->w_dotp->l_text, ' ') -
> + curwp->w_dotp->l_text + 1;
> + return TRUE;
> }
>
> /*