> From: Jeremie Courreges-Anglas <[email protected]>
> Date: Fri, 30 Sep 2016 17:00:45 +0200
>
> Mark Kettenis <[email protected]> writes:
>
> [...]
>
> >> > - for (i = 0; kbdenc_tab[i].value; i++)
> >> > - printf("%s\n", kbdenc_tab[i].name);
> >> > + for (i = 0; i < encs->nencodings; i++) {
> >> > + n = &kbdenc_tab[0];
> >> > + found = 0;
> >> > + encoding = encs->encodings[i];
> >> > + while (n->value) {
> >> > + if (n->value == KB_ENCODING(encoding)) {
> >> > + printf("%s", n->name);
> >> > + found++;
> >> > + }
> >> > + n++;
> >> > + }
> >>
> >> This looks a lot like a for loop.
> >
> > Right. But there are some similar loops that are already written this
> > way. So I left it the way I wrote^H^H^H^H^Hcopied it. Feel free to
> > submite a separate patch that fixes this.
>
> Ah, I see. Here's the diff.
Thanks! ok kettenis@
> Index: kbd_wscons.c
> ===================================================================
> RCS file: /cvs/src/sbin/kbd/kbd_wscons.c,v
> retrieving revision 1.31
> diff -u -p -p -u -r1.31 kbd_wscons.c
> --- kbd_wscons.c 30 Sep 2016 12:07:23 -0000 1.31
> +++ kbd_wscons.c 30 Sep 2016 14:55:03 -0000
> @@ -100,27 +100,23 @@ kbd_show_enc(struct wskbd_encoding_data
> kbtype_tab[idx]);
>
> for (i = 0; i < encs->nencodings; i++) {
> - n = &kbdenc_tab[0];
> found = 0;
> encoding = encs->encodings[i];
> - while (n->value) {
> + for (n = &kbdenc_tab[0]; n->value; n++) {
> if (n->value == KB_ENCODING(encoding)) {
> printf("%s", n->name);
> found++;
> }
> - n++;
> }
> if (found == 0)
> printf("<encoding 0x%04x>", KB_ENCODING(encoding));
> - n = &kbdvar_tab[0];
> found = 0;
> variant = KB_VARIANT(encoding);
> - while (n->value) {
> + for (n = &kbdvar_tab[0]; n->value; n++) {
> if ((n->value & KB_VARIANT(encoding)) == n->value) {
> printf(".%s", n->name);
> variant &= ~n->value;
> }
> - n++;
> }
> if (variant != 0)
> printf(".<variant 0x%08x>", variant);
> @@ -248,11 +244,9 @@ kbd_set(char *name, int verbose)
> *b++ = *c++;
> *b = '\0';
> v = 0;
> - n = &kbdvar_tab[0];
> - while (n->value) {
> + for (n = &kbdvar_tab[0]; n->value; n++) {
> if (strcmp(n->name, buf) == 0)
> v = n->value;
> - n++;
> }
> if (v == 0)
> errx(1, "unknown variant %s", buf);
>
> --
> jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE
>