]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
[main] Send CTRL-C instead of NULL for password cancel
authorRay Strode <rstrode@redhat.com>
Tue, 26 Jan 2010 06:10:09 +0000 (01:10 -0500)
committerRay Strode <rstrode@redhat.com>
Tue, 26 Jan 2010 06:20:00 +0000 (01:20 -0500)
We'll want to use NULL for "daemon can't ask"

src/client/plymouth.c
src/main.c

index c069526337423fccfc5200592f1d67108e70f18e..2d4429474f3e7b1c76518b767f87249a7e11c9de 100644 (file)
@@ -41,6 +41,8 @@
 #define PLY_MAX_COMMAND_LINE_SIZE 512
 #endif
 
+#define KEY_CTRL_C ('\100' ^'C')
+
 typedef struct
 {
   ply_event_loop_t     *loop;
@@ -248,7 +250,7 @@ on_password_answer (password_answer_state_t   *answer_state,
   int exit_status;
 
   exit_status = 127;
-  if (answer != NULL)  /* a NULL answer means the user quit */
+  if (answer != NULL && answer[0] != KEY_CTRL_C)  /* a CTRL-C answer means the user canceled */
     {
       if (answer_state->command != NULL)
         {
index 1103b8e525250f96bcead54e216c5a8ad68a2a82..e3cafc092ca87797f4001b26302532ebada679a6 100644 (file)
@@ -888,7 +888,7 @@ on_keyboard_input (state_t                  *state,
       if (character_size == 1 && ( keyboard_input[0] == '\x3' || keyboard_input[0] == '\x4' ))
         {
           ply_entry_trigger_t* entry_trigger = ply_list_node_get_data (node);
-          ply_trigger_pull (entry_trigger->trigger, NULL);
+          ply_trigger_pull (entry_trigger->trigger, "\x3");
           ply_buffer_clear (state->entry_buffer);
           ply_list_remove_node (state->entry_triggers, node);
           free (entry_trigger);