diff -Nru /tmp/kCgOGBEdS4/kbd-chooser-1.23ubuntu17/debian/changelog /tmp/24pHGXQKm4/kbd-chooser-1.23ubuntu18/debian/changelog --- /tmp/kCgOGBEdS4/kbd-chooser-1.23ubuntu17/debian/changelog 2006-05-15 11:23:49.000000000 +0100 +++ /tmp/24pHGXQKm4/kbd-chooser-1.23ubuntu18/debian/changelog 2006-05-22 21:43:09.000000000 +0100 @@ -1,3 +1,12 @@ +kbd-chooser (1.23ubuntu18) dapper; urgency=low + + * Explicitly reset kbd-chooser/method on the occasions when we need to do + so to avoid infinite loops, rather than forcibly resetting it nearly + every time; fixes preseeding (closes: Malone #31661). + * Fix segfault if localechooser hasn't been run yet. + + -- Colin Watson Mon, 22 May 2006 21:43:08 +0100 + kbd-chooser (1.23ubuntu17) dapper; urgency=low * Change button order in oem-config's glade file. Malone #40226. diff -Nru /tmp/kCgOGBEdS4/kbd-chooser-1.23ubuntu17/kbd-chooser.c /tmp/24pHGXQKm4/kbd-chooser-1.23ubuntu18/kbd-chooser.c --- /tmp/kCgOGBEdS4/kbd-chooser-1.23ubuntu17/kbd-chooser.c 2006-05-03 20:31:53.000000000 +0100 +++ /tmp/24pHGXQKm4/kbd-chooser-1.23ubuntu18/kbd-chooser.c 2006-05-22 21:34:39.000000000 +0100 @@ -530,7 +530,7 @@ */ if (debconf_get(client, "debconf/language")) { - lang = ""; + lang = strdup(""); } else { lang = strdup(client->value); } @@ -875,22 +875,22 @@ def = keymap_get (maplist_get (arch), ptr, NULL); mydebconf_default_set (template, ptr, false); txt_default = translate_keyboard_name (arch, ptr, false); - mydebconf_default_set ("kbd-chooser/method", txt_default, true); + mydebconf_default_set ("kbd-chooser/method", txt_default, false); } else { sprintf (template, "console-keymaps-%s/keymap", arch); if (!debconf_get (client, template) && *client->value) { - di_info ("keymap_ask: default map: %s", *keymap); *keymap = strdup(client->value); + di_info ("keymap_ask: default map: %s", *keymap); txt_default = translate_keyboard_name (arch, *keymap, false); di_info ("keymap_ask: trans: %s", *keymap); - mydebconf_default_set ("kbd-chooser/method", txt_default, true); + mydebconf_default_set ("kbd-chooser/method", txt_default, false); } else { di_info ("keymap_ask: no default map!"); txt_default = description_get ("kbd-chooser/no-keyboard"); if (access("/usr/share/keymaps/decision-tree", R_OK) == 0) mydebconf_default_set ("kbd-chooser/method", txt_try, false); else - mydebconf_default_set ("kbd-chooser/method", txt_select, true); + mydebconf_default_set ("kbd-chooser/method", txt_select, false); } } @@ -1116,6 +1116,7 @@ state = GOBACK; } else { keymap_set (client, keymap); + debconf_set (client, "kbd-chooser/method", ""); state = CHOOSE_METHOD; } break; @@ -1154,6 +1155,7 @@ } else { di_info ("choose_keymap: keymap = %s", keymap); keymap_set (client, keymap); + debconf_set (client, "kbd-chooser/method", ""); // state = QUIT; state = CHOOSE_METHOD; } @@ -1173,10 +1175,12 @@ state = CHOOSE_METHOD; else if (res) state = CMD_GOBACK; - else + else { /* Just returning may be misunderstood. */ + debconf_set (client, "kbd-chooser/method", ""); // state = QUIT; state = CHOOSE_METHOD; + } break; case QUIT: