mirror of
				https://gitlab.gnome.org/GNOME/glib.git
				synced 2025-11-04 01:58:54 +01:00 
			
		
		
		
	gfileutils: Make -Werror=format-nonliteral happy
I tried to please it by using G_GNUC_FORMAT, but that didn't work, so let's just fall back to pushing an ignore. https://bugzilla.gnome.org/show_bug.cgi?id=702516
This commit is contained in:
		@@ -1004,25 +1004,47 @@ rename_file (const char  *old_name,
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static char *
 | 
			
		||||
format_error_message (const gchar  *filename,
 | 
			
		||||
                      const gchar  *format_string) G_GNUC_FORMAT(2);
 | 
			
		||||
 | 
			
		||||
static char *
 | 
			
		||||
format_error_message (const gchar  *filename,
 | 
			
		||||
                      const gchar  *format_string)
 | 
			
		||||
{
 | 
			
		||||
  gint saved_errno = errno;
 | 
			
		||||
  gchar *display_name;
 | 
			
		||||
  gchar *msg;
 | 
			
		||||
 | 
			
		||||
#pragma GCC diagnostic push
 | 
			
		||||
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
 | 
			
		||||
 | 
			
		||||
  display_name = g_filename_display_name (filename);
 | 
			
		||||
  msg = g_strdup_printf (format_string, display_name, g_strerror (saved_errno));
 | 
			
		||||
  g_free (display_name);
 | 
			
		||||
 | 
			
		||||
#pragma GCC diagnostic pop
 | 
			
		||||
 | 
			
		||||
  return msg;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* format string must have two '%s':
 | 
			
		||||
 *
 | 
			
		||||
 *   - the place for the filename
 | 
			
		||||
 *   - the place for the strerror
 | 
			
		||||
 */
 | 
			
		||||
static void
 | 
			
		||||
format_error_message (GError      **error,
 | 
			
		||||
                      const gchar  *filename,
 | 
			
		||||
                      const gchar  *format_string)
 | 
			
		||||
set_file_error (GError      **error,
 | 
			
		||||
                const gchar  *filename,
 | 
			
		||||
                const gchar  *format_string)
 | 
			
		||||
                      
 | 
			
		||||
{
 | 
			
		||||
  gint saved_errno = errno;
 | 
			
		||||
  gchar *display_name;
 | 
			
		||||
  int saved_errno = errno;
 | 
			
		||||
  char *msg = format_error_message (filename, format_string);
 | 
			
		||||
 | 
			
		||||
  display_name = g_filename_display_name (filename);
 | 
			
		||||
 | 
			
		||||
  g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (saved_errno),
 | 
			
		||||
               format_string, display_name, g_strerror (saved_errno));
 | 
			
		||||
 | 
			
		||||
  g_free (display_name);
 | 
			
		||||
  g_set_error_literal (error, G_FILE_ERROR, g_file_error_from_errno (saved_errno),
 | 
			
		||||
                       msg);
 | 
			
		||||
  g_free (msg);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static gchar *
 | 
			
		||||
@@ -1044,7 +1066,7 @@ write_to_temp_file (const gchar  *contents,
 | 
			
		||||
 | 
			
		||||
  if (fd == -1)
 | 
			
		||||
    {
 | 
			
		||||
      format_error_message (err, tmp_name, _("Failed to create file '%s': %s"));
 | 
			
		||||
      set_file_error (err, tmp_name, _("Failed to create file '%s': %s"));
 | 
			
		||||
      goto out;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -1068,7 +1090,7 @@ write_to_temp_file (const gchar  *contents,
 | 
			
		||||
          if (errno == EINTR)
 | 
			
		||||
            continue;
 | 
			
		||||
 | 
			
		||||
          format_error_message (err, tmp_name, _("Failed to write file '%s': write() failed: %s"));
 | 
			
		||||
          set_file_error (err, tmp_name, _("Failed to write file '%s': write() failed: %s"));
 | 
			
		||||
          close (fd);
 | 
			
		||||
          g_unlink (tmp_name);
 | 
			
		||||
 | 
			
		||||
@@ -1108,7 +1130,7 @@ write_to_temp_file (const gchar  *contents,
 | 
			
		||||
     */
 | 
			
		||||
    if (g_lstat (dest_file, &statbuf) == 0 && statbuf.st_size > 0 && fsync (fd) != 0)
 | 
			
		||||
      {
 | 
			
		||||
        format_error_message (err, tmp_name, _("Failed to write file '%s': fsync() failed: %s"));
 | 
			
		||||
        set_file_error (err, tmp_name, _("Failed to write file '%s': fsync() failed: %s"));
 | 
			
		||||
        close (fd);
 | 
			
		||||
        g_unlink (tmp_name);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user