asprintf and snprintf support
This commit is contained in:
parent
c181849b95
commit
8b442f3f4c
60 changed files with 396 additions and 345 deletions
|
@ -63,12 +63,11 @@ read_fs_list (void)
|
|||
{
|
||||
char *filename;
|
||||
|
||||
filename = grub_malloc (grub_strlen (prefix) + sizeof ("/fs.lst"));
|
||||
filename = grub_asprintf ("%s/fs.lst", prefix);
|
||||
if (filename)
|
||||
{
|
||||
grub_file_t file;
|
||||
|
||||
grub_sprintf (filename, "%s/fs.lst", prefix);
|
||||
file = grub_file_open (filename);
|
||||
if (file)
|
||||
{
|
||||
|
|
|
@ -107,17 +107,12 @@ iterate_partition (grub_disk_t disk, const grub_partition_t p)
|
|||
if (! partition_name)
|
||||
return 1;
|
||||
|
||||
name = grub_malloc (grub_strlen (disk_name) + 1
|
||||
+ grub_strlen (partition_name) + 1);
|
||||
if (! name)
|
||||
{
|
||||
grub_free (partition_name);
|
||||
return 1;
|
||||
}
|
||||
|
||||
grub_sprintf (name, "%s,%s", disk_name, partition_name);
|
||||
name = grub_asprintf ("%s,%s", disk_name, partition_name);
|
||||
grub_free (partition_name);
|
||||
|
||||
if (! name)
|
||||
return 1;
|
||||
|
||||
ret = add_completion (name, ")", GRUB_COMPLETION_TYPE_PARTITION);
|
||||
grub_free (name);
|
||||
return ret;
|
||||
|
@ -141,11 +136,15 @@ iterate_dir (const char *filename, const struct grub_dirhook_info *info)
|
|||
}
|
||||
else if (grub_strcmp (filename, ".") && grub_strcmp (filename, ".."))
|
||||
{
|
||||
char fname[grub_strlen (filename) + 2];
|
||||
char *fname;
|
||||
|
||||
grub_sprintf (fname, "%s/", filename);
|
||||
fname = grub_asprintf ("%s/", filename);
|
||||
if (add_completion (fname, "", GRUB_COMPLETION_TYPE_FILE))
|
||||
return 1;
|
||||
{
|
||||
grub_free (fname);
|
||||
return 1;
|
||||
}
|
||||
grub_free (fname);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -360,8 +359,9 @@ complete_arguments (char *command)
|
|||
if (!option->longarg)
|
||||
continue;
|
||||
|
||||
longarg = grub_malloc (grub_strlen (option->longarg));
|
||||
grub_sprintf (longarg, "--%s", option->longarg);
|
||||
longarg = grub_asprintf ("--%s", option->longarg);
|
||||
if (!longarg)
|
||||
return 1;
|
||||
|
||||
if (add_completion (longarg, " ", GRUB_COMPLETION_TYPE_ARGUMENT))
|
||||
{
|
||||
|
|
|
@ -75,12 +75,11 @@ read_command_list (void)
|
|||
{
|
||||
char *filename;
|
||||
|
||||
filename = grub_malloc (grub_strlen (prefix) + sizeof ("/command.lst"));
|
||||
filename = grub_asprintf ("%s/command.lst", prefix);
|
||||
if (filename)
|
||||
{
|
||||
grub_file_t file;
|
||||
|
||||
grub_sprintf (filename, "%s/command.lst", prefix);
|
||||
file = grub_file_open (filename);
|
||||
if (file)
|
||||
{
|
||||
|
|
|
@ -172,12 +172,11 @@ read_handler_list (void)
|
|||
{
|
||||
char *filename;
|
||||
|
||||
filename = grub_malloc (grub_strlen (prefix) + sizeof ("/handler.lst"));
|
||||
filename = grub_asprintf ("%s/handler.lst", prefix);
|
||||
if (filename)
|
||||
{
|
||||
grub_file_t file;
|
||||
|
||||
grub_sprintf (filename, "%s/handler.lst", prefix);
|
||||
file = grub_file_open (filename);
|
||||
if (file)
|
||||
{
|
||||
|
|
|
@ -389,16 +389,17 @@ grub_normal_init_page (void)
|
|||
int posx;
|
||||
const char *msg = _("GNU GRUB version %s");
|
||||
|
||||
char *msg_formatted = grub_malloc (grub_strlen(msg) +
|
||||
grub_strlen(PACKAGE_VERSION));
|
||||
|
||||
grub_cls ();
|
||||
|
||||
grub_sprintf (msg_formatted, msg, PACKAGE_VERSION);
|
||||
char *msg_formatted;
|
||||
|
||||
grub_uint32_t *unicode_msg;
|
||||
grub_uint32_t *last_position;
|
||||
|
||||
grub_cls ();
|
||||
|
||||
msg_formatted = grub_asprintf (msg, PACKAGE_VERSION);
|
||||
if (!msg_formatted)
|
||||
return;
|
||||
|
||||
msg_len = grub_utf8_to_ucs4_alloc (msg_formatted,
|
||||
&unicode_msg, &last_position);
|
||||
|
||||
|
@ -475,11 +476,10 @@ grub_cmd_normal (struct grub_command *cmd,
|
|||
prefix = grub_env_get ("prefix");
|
||||
if (prefix)
|
||||
{
|
||||
config = grub_malloc (grub_strlen (prefix) + sizeof ("/grub.cfg"));
|
||||
config = grub_asprintf ("%s/grub.cfg", prefix);
|
||||
if (! config)
|
||||
goto quit;
|
||||
|
||||
grub_sprintf (config, "%s/grub.cfg", prefix);
|
||||
grub_enter_normal_mode (config);
|
||||
grub_free (config);
|
||||
}
|
||||
|
@ -528,10 +528,11 @@ grub_normal_reader_init (void)
|
|||
|
||||
const char *msg_esc = _("ESC at any time exits.");
|
||||
|
||||
char *msg_formatted = grub_malloc (sizeof (char) * (grub_strlen (msg) +
|
||||
grub_strlen(msg_esc) + 1));
|
||||
char *msg_formatted;
|
||||
|
||||
grub_sprintf (msg_formatted, msg, reader_nested ? msg_esc : "");
|
||||
msg_formatted = grub_asprintf (msg, reader_nested ? msg_esc : "");
|
||||
if (!msg_formatted)
|
||||
return grub_errno;
|
||||
grub_print_message_indented (msg_formatted, 3, STANDARD_MARGIN);
|
||||
grub_puts ("\n");
|
||||
|
||||
|
@ -546,9 +547,11 @@ static grub_err_t
|
|||
grub_normal_read_line (char **line, int cont)
|
||||
{
|
||||
grub_parser_t parser = grub_parser_get_current ();
|
||||
char prompt[sizeof(">") + grub_strlen (parser->name)];
|
||||
char *prompt;
|
||||
|
||||
grub_sprintf (prompt, "%s>", parser->name);
|
||||
prompt = grub_asprintf ("%s>", parser->name);
|
||||
if (!prompt)
|
||||
return grub_errno;
|
||||
|
||||
while (1)
|
||||
{
|
||||
|
|
|
@ -78,7 +78,7 @@ grub_menu_set_timeout (int timeout)
|
|||
{
|
||||
char buf[16];
|
||||
|
||||
grub_sprintf (buf, "%d", timeout);
|
||||
grub_snprintf (buf, sizeof (buf), "%d", timeout);
|
||||
grub_env_set ("timeout", buf);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -210,13 +210,14 @@ command-line or ESC to return menu."), STANDARD_MARGIN, STANDARD_MARGIN);
|
|||
}
|
||||
else
|
||||
{
|
||||
const char *msg = _("Use the %C and %C keys to select which \
|
||||
entry is highlighted.\n");
|
||||
char *msg_translated =
|
||||
grub_malloc (sizeof (char) * grub_strlen (msg) + 1);
|
||||
const char *msg = _("Use the %C and %C keys to select which "
|
||||
"entry is highlighted.\n");
|
||||
char *msg_translated;
|
||||
|
||||
grub_sprintf (msg_translated, msg, (grub_uint32_t) GRUB_TERM_DISP_UP,
|
||||
(grub_uint32_t) GRUB_TERM_DISP_DOWN);
|
||||
msg_translated = grub_asprintf (msg, (grub_uint32_t) GRUB_TERM_DISP_UP,
|
||||
(grub_uint32_t) GRUB_TERM_DISP_DOWN);
|
||||
if (!msg_translated)
|
||||
return;
|
||||
grub_putchar ('\n');
|
||||
grub_print_message_indented (msg_translated, STANDARD_MARGIN, STANDARD_MARGIN);
|
||||
|
||||
|
@ -394,13 +395,13 @@ print_timeout (int timeout, int offset)
|
|||
{
|
||||
const char *msg =
|
||||
_("The highlighted entry will be booted automatically in %ds.");
|
||||
char *msg_translated;
|
||||
|
||||
grub_gotoxy (0, GRUB_TERM_HEIGHT - 3);
|
||||
|
||||
char *msg_translated =
|
||||
grub_malloc (sizeof (char) * grub_strlen (msg) + 5);
|
||||
|
||||
grub_sprintf (msg_translated, msg, timeout);
|
||||
msg_translated = grub_asprintf (msg, timeout);
|
||||
if (!msg_translated)
|
||||
return;
|
||||
grub_print_message_indented (msg_translated, 3, 0);
|
||||
|
||||
int posx;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue