Re: disklabel - 'P' option
This diff includes the 'P' option in the manpage and interactive helptext. The install floppys are here: http://www.cyodesigns.com/diffs/floppy47.fs http://www.cyodesigns.com/diffs/floppyB47.fs http://www.cyodesigns.com/diffs/floppyC47.fs If you take one for a spin, could you let me know pls. I have only tested floppyB47.fs on a vm since the my machine with a floppy drive is transit in a 40ft container somewhere. -mark Index: editor.c === RCS file: /cvs/src/sbin/disklabel/editor.c,v retrieving revision 1.231 diff -u -p -r1.231 editor.c --- editor.c4 Apr 2010 14:12:12 - 1.231 +++ editor.c9 Apr 2010 22:45:03 - @@ -150,6 +150,7 @@ static u_int64_t starting_sector; static u_int64_t ending_sector; static int expert; static int overlap; +static int auto_print = 0; /* * Simple partition editor. @@ -164,7 +165,8 @@ editor(struct disklabel *lp, int f) char buf[BUFSIZ], *cmd, *arg; char **omountpoints = NULL; char **origmountpoints = NULL, **tmpmountpoints = NULL; - int i, error = 0; + int i, error = 0, print_info = 0; + static char *argcpy; /* Alloc and init mount point info */ if (!(omountpoints = calloc(MAXPARTITIONS, sizeof(char *))) || @@ -305,8 +307,19 @@ editor(struct disklabel *lp, int f) editor_name(&label, arg); break; + case 'P': + free(argcpy); + argcpy = NULL; + if (arg) { + if ((argcpy = strdup(arg)) == NULL) + err(1, "strdup"); + auto_print = 1; + } else + auto_print = !auto_print; + break; + case 'p': - display_edit(&label, arg ? *arg : 0, editor_countfree(&label)); + print_info = 1; break; case 'l': @@ -475,6 +488,19 @@ editor(struct disklabel *lp, int f) break; } + if ((print_info || auto_print) && + (*cmd != 'h' && *cmd != '?')) { + if (auto_print) { + printf("--" \ + "--\n"); + if (!print_info) + arg = argcpy; + } + display_edit(&label, arg ? *arg : 0, + editor_countfree(&label)); + print_info = 0; + } + /* * If no changes were made to label or mountpoints, then * restore undo info. @@ -1734,6 +1760,11 @@ editor_help(char *arg) /* XXX - put these strings in a table instead? */ switch (*arg) { + case 'P': + puts( +"The 'P' command will print disklabel information after every command.\n" +"The information displayed and arguments accepted are equivalent to 'p'\n" +"(see below).\n"); case 'p': puts( "The 'p' command prints the current partitions. By default, it prints size\n" @@ -1887,7 +1918,7 @@ editor_help(char *arg) default: puts("Available commands:"); puts( -" ? [cmd] - show help n [part] - set mount point\n" +" ? [cmd] - show help P [unit] - always print partitions\n" " A- auto partition all space p [unit] - print partitions\n" " a [part] - add partition q- quit & save changes\n" " b- set OpenBSD boundaries R [part] - resize a partition\n" @@ -1899,6 +1930,7 @@ editor_help(char *arg) " l [unit] - print disk label headerX- toggle expert mode\n" " M- disklabel(8) man page x- exit & lose changes\n" " m [part] - modify partition z- delete all partitions\n" +" n [part] - set mount point\n" "\n" "Suffixes can be used to indicate units other than sectors:\n" "\t'b' (bytes), 'k' (kilobytes), 'm' (megabytes), 'g' (gigabytes)\n" Index: disklabel.8 === RCS file: /cvs/src/sbin/disklabel/disklabel.8,v retrieving revision 1.88 diff -u -p -r1.88 disklabel.8 --- disklabel.8 23 Mar 2010 18:43:06 - 1.88 +++ disklabel.8 9 Apr 2010 22:45:03 - @@ -183,6 +183,8 @@ Disallow writing of the pack label area .It Fl n Make no permanent changes to the disklabel .Pq useful for debugging purposes . +.It Fl P Ar unit +Equivalent to 'p' (see below) but print information after every command. .It Fl p Ar unit Print partition sizes in .Ar unit
Re: disklabel - 'P' option
Meh, nothing like being an Inconsistent mad typist. . . (I did learn on a Manual Typewriter... It was a "Green" Terminal, it worked even if the power was out...) I'd give a Yay to this variant. ( an Even Bigger Yay now it does 'p m' even... ) -sean > Date: Thu, 8 Apr 2010 10:03:27 +0200 > Subject: Re: disklabel - 'P' option > >> 'megabyte-able' printing more consistent to my liking. > >> > > Attached is an amended diff that allows the 'P' option to take an > > argument just as the 'p' option does. > > That is the crux of the issue. For those of us who like to type less this > > diff helps, for you people who like type more... you're weird ;) > > > > Anyway, with only one yay, I don't think this will progress much further. > I like this too, fwiw. > Landry _ Hotmail & Messenger are available on your phone. Try now. http://go.microsoft.com/?linkid=9724461
Re: disklabel - 'P' option
On Thu, Apr 8, 2010 at 1:34 PM, Mark Lumsden wrote: >> When I use Disklabel, I have been in the habit of issuing 'p m ' >> rather than just 'p ' >> >> Since I do it for disk / usb thumb setups, and so forth, I find the >> 'megabyte-able' printing more consistent to my liking. >> > > Attached is an amended diff that allows the 'P' option to take an > argument just as the 'p' option does. > >> I'd say leave it out, since CHS information may get scrolled off the >> screen if it was relevant. (Or am I thinking fdisk...?) >> As it is, both 'p' and 'm' keys have less wear than 'e' 't' and 's' and >> make for good finger dexterity... >> > > That is the crux of the issue. For those of us who like to type less this > diff helps, for you people who like type more... you're weird ;) > > Anyway, with only one yay, I don't think this will progress much further. I like this too, fwiw. Landry
Re: disklabel - 'P' option
> When I use Disklabel, I have been in the habit of issuing 'p m ' > rather than just 'p ' > > Since I do it for disk / usb thumb setups, and so forth, I find the > 'megabyte-able' printing more consistent to my liking. > Attached is an amended diff that allows the 'P' option to take an argument just as the 'p' option does. > I'd say leave it out, since CHS information may get scrolled off the > screen if it was relevant. (Or am I thinking fdisk...?) > As it is, both 'p' and 'm' keys have less wear than 'e' 't' and 's' and > make for good finger dexterity... > That is the crux of the issue. For those of us who like to type less this diff helps, for you people who like type more... you're weird ;) Anyway, with only one yay, I don't think this will progress much further. -mark Index: editor.c === RCS file: /cvs/src/sbin/disklabel/editor.c,v retrieving revision 1.231 diff -u -p -r1.231 editor.c --- editor.c4 Apr 2010 14:12:12 -1.231 +++ editor.c8 Apr 2010 07:03:35 - @@ -150,6 +150,7 @@ static u_int64_t starting_sector; static u_int64_t ending_sector; static int expert; static int overlap; +static int auto_print = 0; /* * Simple partition editor. @@ -164,7 +165,8 @@ editor(struct disklabel *lp, int f) char buf[BUFSIZ], *cmd, *arg; char **omountpoints = NULL; char **origmountpoints = NULL, **tmpmountpoints = NULL; -int i, error = 0; +int i, error = 0, print_info = 0; +static char *argcpy; /* Alloc and init mount point info */ if (!(omountpoints = calloc(MAXPARTITIONS, sizeof(char *))) || @@ -305,8 +307,19 @@ editor(struct disklabel *lp, int f) editor_name(&label, arg); break; +case 'P': +free(argcpy); +argcpy = NULL; +if (arg) { +if ((argcpy = strdup(arg)) == NULL) +err(1, "strdup"); +auto_print = 1; +} else +auto_print = !auto_print; +break; + case 'p': -display_edit(&label, arg ? *arg : 0, editor_countfree(&label)); +print_info = 1; break; case 'l': @@ -473,6 +486,17 @@ editor(struct disklabel *lp, int f) default: printf("Unknown option: %c ('?' for help)\n", *cmd); break; +} + +if (print_info || auto_print) { +if (auto_print) { +printf("--" \ +"--\n"); +if (!print_info) +arg = argcpy; +} +display_edit(&label, arg ? *arg : 0, editor_countfree(&label)); +print_info = 0; } /*
Re: disklabel - 'P' option
When I use Disklabel, I have been in the habit of issuing 'p m ' rather than just 'p ' Since I do it for disk / usb thumb setups, and so forth, I find the 'megabyte-able' printing more consistent to my liking. I'd say leave it out, since CHS information may get scrolled off the screen if it was relevant. (Or am I thinking fdisk...?) As it is, both 'p' and 'm' keys have less wear than 'e' 't' and 's' and make for good finger dexterity... -sean > Date: Wed, 7 Apr 2010 13:41:25 +0100 > Subject: Re: disklabel - 'P' option > > On 2010/04/07 11:21, Mark Lumsden wrote: > > I press 'p' then after everything I do in disklabel. > > 'P' automatically prints out the equivalent of 'p' after each command and saves on finger wear and tear. > > like/dislike? > > hmm..not sure. I might find it useful if it allowed setting the unit > too, but I doubt I'd remember it exists when actually using disklabel. _ Live connected. Get Hotmail & Messenger on your phone. http://go.microsoft.com/?linkid=9724462
Re: disklabel - 'P' option
> On 2010/04/07 11:21, Mark Lumsden wrote: >> I press 'p' then after everything I do in disklabel. >> >> 'P' automatically prints out the equivalent of 'p' after each command >> and saves on finger wear and tear. >> >> like/dislike? > > hmm..not sure. I might find it useful if it allowed setting the unit > too, but I doubt I'd remember it exists when actually using disklabel. > > in any event, to be a complete diff it also needs > > - helptext entry > - manpage entry > > details of which install media have had a test-build would be useful too.. > This was just a "is anyone interested" diff. If there is interest, then I'd look into progressing it, as you describe above. I realise the limitations on install media so I am not expecting too much. However, it is a beautiful option once you get used to it :) I'm sure you would not forget it ;) However, code is like marmite i find. -mark
Re: disklabel - 'P' option
On 2010/04/07 11:21, Mark Lumsden wrote: > I press 'p' then after everything I do in disklabel. > > 'P' automatically prints out the equivalent of 'p' after each command and > saves on finger wear and tear. > > like/dislike? hmm..not sure. I might find it useful if it allowed setting the unit too, but I doubt I'd remember it exists when actually using disklabel. in any event, to be a complete diff it also needs - helptext entry - manpage entry details of which install media have had a test-build would be useful too..
Re: disklabel - 'P' option
On Wed, Apr 07, 2010 at 11:21:49AM +, Mark Lumsden wrote: > I press 'p' then after everything I do in disklabel. > > 'P' automatically prints out the equivalent of 'p' after each command and > saves on finger wear and tear. > > like/dislike? Neat! Dani -- LIVAI Daniel PGP key ID = 0x83B63A8F Key fingerprint = DBEC C66B A47A DFA2 792D 650C C69B BE4C 83B6 3A8F
disklabel - 'P' option
I press 'p' then after everything I do in disklabel. 'P' automatically prints out the equivalent of 'p' after each command and saves on finger wear and tear. like/dislike? -mark Index: editor.c === RCS file: /cvs/src/sbin/disklabel/editor.c,v retrieving revision 1.231 diff -u -p -r1.231 editor.c --- editor.c4 Apr 2010 14:12:12 - 1.231 +++ editor.c6 Apr 2010 06:06:14 - @@ -150,6 +150,7 @@ static u_int64_t starting_sector; static u_int64_t ending_sector; static int expert; static int overlap; +static int print_mode = 0; /* * Simple partition editor. @@ -164,7 +165,7 @@ editor(struct disklabel *lp, int f) char buf[BUFSIZ], *cmd, *arg; char **omountpoints = NULL; char **origmountpoints = NULL, **tmpmountpoints = NULL; - int i, error = 0; + int i, error = 0, print_info; /* Alloc and init mount point info */ if (!(omountpoints = calloc(MAXPARTITIONS, sizeof(char *))) || @@ -305,8 +306,12 @@ editor(struct disklabel *lp, int f) editor_name(&label, arg); break; + case 'P': + print_mode = !print_mode; + break; + case 'p': - display_edit(&label, arg ? *arg : 0, editor_countfree(&label)); + print_info = 1; break; case 'l': @@ -475,6 +480,14 @@ editor(struct disklabel *lp, int f) break; } + if (print_info || print_mode) { + if (print_mode) + printf("--" \ + "--\n"); + display_edit(&label, arg ? *arg : 0, editor_countfree(&label)); + print_info = 0; + } + /* * If no changes were made to label or mountpoints, then * restore undo info.