60
60
#define CLEAR_LINE_SEQUENCE "\033[2K\r\n"
61
61
#define BACKSPACE "\b\033[0K"
63
#define MAX_LOG_MESSAGES 40
64
66
PLY_BOOT_SPLASH_DISPLAY_NORMAL,
65
67
PLY_BOOT_SPLASH_DISPLAY_QUESTION_ENTRY,
141
143
if (!strncmp (plugin->message, "log:ok", 6) || !strncmp(plugin->message, "log:failed", 10))
143
if (plugin->log_messages[19] != NULL)
145
if (plugin->log_messages[MAX_LOG_MESSAGES-1] != NULL)
145
int size = strlen (plugin->log_messages[19]);
146
if (!(size > 2 && !strncmp (plugin->log_messages[19] + size - 2, "ok", 2)) &&
147
!(size > 6 && !strncmp (plugin->log_messages[19] + size - 6, "failed", 6)))
147
int size = strlen (plugin->log_messages[MAX_LOG_MESSAGES-1]);
148
if (!(size > 2 && !strncmp (plugin->log_messages[MAX_LOG_MESSAGES-1] + size - 2, "ok", 2)) &&
149
!(size > 6 && !strncmp (plugin->log_messages[MAX_LOG_MESSAGES-1] + size - 6, "failed", 6)))
149
char *new_message = calloc (strlen (plugin->message + 4) + strlen (plugin->log_messages[19]) + 4, sizeof (char));
150
sprintf (new_message, "%s %s", plugin->log_messages[19], plugin->message + 4);
151
free (plugin->log_messages[19]);
152
plugin->log_messages[19] = new_message;
151
char *new_message = calloc (strlen (plugin->message + 4) + strlen (plugin->log_messages[MAX_LOG_MESSAGES-1]) + 4, sizeof (char));
152
sprintf (new_message, "%s %s", plugin->log_messages[MAX_LOG_MESSAGES-1], plugin->message + 4);
153
free (plugin->log_messages[MAX_LOG_MESSAGES-1]);
154
plugin->log_messages[MAX_LOG_MESSAGES-1] = new_message;
158
160
if (plugin->log_messages[0] != NULL)
159
161
free (plugin->log_messages[0]);
161
for (i = 0; i < 19; i++)
163
for (i = 0; i < MAX_LOG_MESSAGES-1; i++)
162
164
plugin->log_messages[i] = plugin->log_messages[i+1];
164
if (strlen (plugin->message + 4) > display_width - 20)
165
plugin->message[display_width - 20] = 0;
166
if (strlen (plugin->message + 4) > display_width - MAX_LOG_MESSAGES)
167
plugin->message[display_width - MAX_LOG_MESSAGES] = 0;
167
plugin->log_messages[19] = calloc (strlen (plugin->message + 4) + 4, sizeof (char));
168
strcpy (plugin->log_messages[19], plugin->message + 4);
169
strcpy (plugin->log_messages[19] + strlen(plugin->log_messages[19]), "...");
169
plugin->log_messages[MAX_LOG_MESSAGES-1] = calloc (strlen (plugin->message + 4) + 4, sizeof (char));
170
strcpy (plugin->log_messages[MAX_LOG_MESSAGES-1], plugin->message + 4);
171
strcpy (plugin->log_messages[MAX_LOG_MESSAGES-1] + strlen(plugin->log_messages[MAX_LOG_MESSAGES-1]), "...");
172
begin = (display_height / 2 - 4 > 20) ? 0 : ( 20 - display_height / 2 - 4);
174
begin = MAX_LOG_MESSAGES - display_height / 2 + 4;
174
176
color = PLY_TERMINAL_COLOR_WHITE;
175
177
y = display_height / 2 + 4;
177
for (i = begin; i < 20; i++)
182
for (i = begin; i < MAX_LOG_MESSAGES; i++)
178
183
if (plugin->log_messages[i] != NULL)
179
184
if (max_width < strlen (plugin->log_messages[i]))
180
185
max_width = strlen (plugin->log_messages[i]);
182
for (i = begin; i < 20; i++)
187
for (i = begin; i < MAX_LOG_MESSAGES; i++)
183
188
if (plugin->log_messages[i] != NULL)
184
189
view_text_display_message (view, (display_width - max_width) / 2, y++, color, plugin->log_messages[i]);
394
399
plugin = calloc (1, sizeof (ply_boot_splash_plugin_t));
395
400
plugin->message = NULL;
397
for (i = 0; i < 20; i++)
402
for (i = 0; i < MAX_LOG_MESSAGES; i++)
398
403
plugin->log_messages[i] = NULL;
400
405
plugin->views = ply_list_new ();