From 1798af1921146c577dd6689b83a98b7fced0c691 Mon Sep 17 00:00:00 2001 From: ParadoxV5 Date: Thu, 15 Aug 2024 01:21:11 -0600 Subject: [PATCH] =?UTF-8?q?Update=20`my=5Fsnprintf`=E2=80=99s=20last=20loo?= =?UTF-8?q?se=20ends=20to=20suffixes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Migrate `mysys/errors.c`, `sql-common/errmsg.c` and a couple of insignificant loose ends to use suffix-based, `-Wformat`-compatible `my_snprintf` format extensions introduced in MDEV-21978 This commit is the final batch of MDEV-21978’s migration process. While GCC `-Wformat` (with `ATTRIBUTE_FORMAT`) can catch obsolete or malformed format string literals, formats originating from other sources (such as those strings headers) (still) require manual review. Thus, after all the automatic `-Wformat` complaints fixed in previous commits, I’ve done a manual `grep` and caught these final matches. --- mysys/errors.c | 116 ++++++++++++++++++++-------------------- sql-common/errmsg.c | 8 +-- sql/sql_table.cc | 2 +- storage/maria/ma_sort.c | 2 +- 4 files changed, 64 insertions(+), 64 deletions(-) diff --git a/mysys/errors.c b/mysys/errors.c index fadcaf3bd3474..3ac1cb834df61 100644 --- a/mysys/errors.c +++ b/mysys/errors.c @@ -21,42 +21,42 @@ const char *globerrs[GLOBERRS+1]= { - "Can't create/write to file '%s' (Errcode: %M)", - "Error reading file '%s' (Errcode: %M)", - "Error writing file '%s' (Errcode: %M)", - "Error on close of '%s' (Errcode: %M)", + "Can't create/write to file '%s' (Errcode: %iE)", + "Error reading file '%s' (Errcode: %iE)", + "Error writing file '%s' (Errcode: %iE)", + "Error on close of '%s' (Errcode: %iE)", "Out of memory (Needed %u bytes)", - "Error on delete of '%s' (Errcode: %M)", - "Error on rename of '%s' to '%s' (Errcode: %M)", + "Error on delete of '%s' (Errcode: %iE)", + "Error on rename of '%s' to '%s' (Errcode: %iE)", "", - "Unexpected end-of-file found when reading file '%s' (Errcode: %M)", - "Can't lock file (Errcode: %M)", - "Can't unlock file (Errcode: %M)", - "Can't read dir of '%s' (Errcode: %M)", - "Can't get stat of '%s' (Errcode: %M)", - "Can't change size of file (Errcode: %M)", - "Can't open stream from handle (Errcode: %M)", - "Can't get working directory (Errcode: %M)", - "Can't change dir to '%s' (Errcode: %M)", + "Unexpected end-of-file found when reading file '%s' (Errcode: %iE)", + "Can't lock file (Errcode: %iE)", + "Can't unlock file (Errcode: %iE)", + "Can't read dir of '%s' (Errcode: %iE)", + "Can't get stat of '%s' (Errcode: %iE)", + "Can't change size of file (Errcode: %iE)", + "Can't open stream from handle (Errcode: %iE)", + "Can't get working directory (Errcode: %iE)", + "Can't change dir to '%s' (Errcode: %iE)", "Warning: '%s' had %d links", "Warning: %d files and %d streams is left open\n", - "Disk is full writing '%s' (Errcode: %M). Waiting for someone to free space... (Expect up to %d secs delay for server to continue after freeing disk space)", - "Can't create directory '%s' (Errcode: %M)", + "Disk is full writing '%s' (Errcode: %iE). Waiting for someone to free space... (Expect up to %d secs delay for server to continue after freeing disk space)", + "Can't create directory '%s' (Errcode: %iE)", "Character set '%s' is not a compiled character set and is not specified in the '%s' file", - "Out of resources when opening file '%s' (Errcode: %M)", - "Can't read value for symlink '%s' (Errcode: %M)", - "Can't create symlink '%s' pointing at '%s' (Errcode: %M)", - "Error on realpath() on '%s' (Errcode: %M)", - "Can't sync file '%s' to disk (Errcode: %M)", + "Out of resources when opening file '%s' (Errcode: %iE)", + "Can't read value for symlink '%s' (Errcode: %iE)", + "Can't create symlink '%s' pointing at '%s' (Errcode: %iE)", + "Error on realpath() on '%s' (Errcode: %iE)", + "Can't sync file '%s' to disk (Errcode: %iE)", "Collation '%s' is not a compiled collation and is not specified in the '%s' file", - "File '%s' not found (Errcode: %M)", + "File '%s' not found (Errcode: %iE)", "File '%s' (fileno: %d) was not closed", - "Can't change ownership of the file '%s' (Errcode: %M)", - "Can't change permissions of the file '%s' (Errcode: %M)", - "Can't seek in file '%s' (Errcode: %M)", - "Can't change mode for file '%s' to 0x%lx (Errcode: %M)", - "Warning: Can't copy ownership for file '%s' (Errcode: %M)", - "Failed to release memory pointer %p, %zu bytes (Errcode: %M)", + "Can't change ownership of the file '%s' (Errcode: %iE)", + "Can't change permissions of the file '%s' (Errcode: %iE)", + "Can't seek in file '%s' (Errcode: %iE)", + "Can't change mode for file '%s' to 0x%lx (Errcode: %iE)", + "Warning: Can't copy ownership for file '%s' (Errcode: %iE)", + "Failed to release memory pointer %p, %zu bytes (Errcode: %iE)", "Lock Pages in memory access rights required", "Memcntl %s cmd %s error", "Warning: Charset id '%d' csname '%s' trying to replace existing csname '%s'", @@ -75,41 +75,41 @@ void init_glob_errs(void) void init_glob_errs() { - EE(EE_CANTCREATEFILE) = "Can't create/write to file '%s' (Errcode: %M)"; - EE(EE_READ) = "Error reading file '%s' (Errcode: %M)"; - EE(EE_WRITE) = "Error writing file '%s' (Errcode: %M)"; - EE(EE_BADCLOSE) = "Error on close of '%'s (Errcode: %M)"; + EE(EE_CANTCREATEFILE) = "Can't create/write to file '%s' (Errcode: %iE)"; + EE(EE_READ) = "Error reading file '%s' (Errcode: %iE)"; + EE(EE_WRITE) = "Error writing file '%s' (Errcode: %iE)"; + EE(EE_BADCLOSE) = "Error on close of '%'s (Errcode: %iE)"; EE(EE_OUTOFMEMORY) = "Out of memory (Needed %u bytes)"; - EE(EE_DELETE) = "Error on delete of '%s' (Errcode: %M)"; - EE(EE_LINK) = "Error on rename of '%s' to '%s' (Errcode: %M)"; - EE(EE_EOFERR) = "Unexpected eof found when reading file '%s' (Errcode: %M)"; - EE(EE_CANTLOCK) = "Can't lock file (Errcode: %M)"; - EE(EE_CANTUNLOCK) = "Can't unlock file (Errcode: %M)"; - EE(EE_DIR) = "Can't read dir of '%s' (Errcode: %M)"; - EE(EE_STAT) = "Can't get stat of '%s' (Errcode: %M)"; - EE(EE_CANT_CHSIZE) = "Can't change size of file (Errcode: %M)"; - EE(EE_CANT_OPEN_STREAM)= "Can't open stream from handle (Errcode: %M)"; - EE(EE_GETWD) = "Can't get working directory (Errcode: %M)"; - EE(EE_SETWD) = "Can't change dir to '%s' (Errcode: %M)"; + EE(EE_DELETE) = "Error on delete of '%s' (Errcode: %iE)"; + EE(EE_LINK) = "Error on rename of '%s' to '%s' (Errcode: %iE)"; + EE(EE_EOFERR) = "Unexpected eof found when reading file '%s' (Errcode: %iE)"; + EE(EE_CANTLOCK) = "Can't lock file (Errcode: %iE)"; + EE(EE_CANTUNLOCK) = "Can't unlock file (Errcode: %iE)"; + EE(EE_DIR) = "Can't read dir of '%s' (Errcode: %iE)"; + EE(EE_STAT) = "Can't get stat of '%s' (Errcode: %iE)"; + EE(EE_CANT_CHSIZE) = "Can't change size of file (Errcode: %iE)"; + EE(EE_CANT_OPEN_STREAM)= "Can't open stream from handle (Errcode: %iE)"; + EE(EE_GETWD) = "Can't get working directory (Errcode: %iE)"; + EE(EE_SETWD) = "Can't change dir to '%s' (Errcode: %iE)"; EE(EE_LINK_WARNING) = "Warning: '%s' had %d links"; EE(EE_OPEN_WARNING) = "Warning: %d files and %d streams is left open\n"; - EE(EE_DISK_FULL) = "Disk is full writing '%s' (Errcode: %M). Waiting for someone to free space... (Expect up to %d secs delay for server to continue after freeing disk space)", - EE(EE_CANT_MKDIR) ="Can't create directory '%s' (Errcode: %M)"; + EE(EE_DISK_FULL) = "Disk is full writing '%s' (Errcode: %iE). Waiting for someone to free space... (Expect up to %d secs delay for server to continue after freeing disk space)", + EE(EE_CANT_MKDIR) ="Can't create directory '%s' (Errcode: %iE)"; EE(EE_UNKNOWN_CHARSET)= "Character set '%s' is not a compiled character set and is not specified in the %s file"; - EE(EE_OUT_OF_FILERESOURCES)="Out of resources when opening file '%s' (Errcode: %M)"; - EE(EE_CANT_READLINK)= "Can't read value for symlink '%s' (Errcode: %M)"; - EE(EE_CANT_SYMLINK)= "Can't create symlink '%s' pointing at '%s' (Errcode: %M)"; - EE(EE_REALPATH)= "Error on realpath() on '%s' (Errcode: %M)"; - EE(EE_SYNC)= "Can't sync file '%s' to disk (Errcode: %M)"; + EE(EE_OUT_OF_FILERESOURCES)="Out of resources when opening file '%s' (Errcode: %iE)"; + EE(EE_CANT_READLINK)= "Can't read value for symlink '%s' (Errcode: %iE)"; + EE(EE_CANT_SYMLINK)= "Can't create symlink '%s' pointing at '%s' (Errcode: %iE)"; + EE(EE_REALPATH)= "Error on realpath() on '%s' (Errcode: %iE)"; + EE(EE_SYNC)= "Can't sync file '%s' to disk (Errcode: %iE)"; EE(EE_UNKNOWN_COLLATION)= "Collation '%s' is not a compiled collation and is not specified in the %s file"; - EE(EE_FILENOTFOUND) = "File '%s' not found (Errcode: %M)"; + EE(EE_FILENOTFOUND) = "File '%s' not found (Errcode: %iE)"; EE(EE_FILE_NOT_CLOSED) = "File '%s' (fileno: %d) was not closed"; - EE(EE_CHANGE_OWNERSHIP) = "Can't change ownership of the file '%s' (Errcode: %M)"; - EE(EE_CHANGE_PERMISSIONS) = "Can't change permissions of the file '%s' (Errcode: %M)"; - EE(EE_CANT_SEEK) = "Can't seek in file '%s' (Errcode: %M)"; - EE(EE_CANT_CHMOD) = "Can't change mode for file '%s' to 0x%lx (Errcode: %M)"; - EE(EE_CANT_COPY_OWNERSHIP)= "Warning: Can't copy ownership for file '%s' (Errcode: %M)"; - EE(EE_BADMEMORYRELEASE)= "Failed to release memory pointer %p, %zu bytes (Errcode: %M)"; + EE(EE_CHANGE_OWNERSHIP) = "Can't change ownership of the file '%s' (Errcode: %iE)"; + EE(EE_CHANGE_PERMISSIONS) = "Can't change permissions of the file '%s' (Errcode: %iE)"; + EE(EE_CANT_SEEK) = "Can't seek in file '%s' (Errcode: %iE)"; + EE(EE_CANT_CHMOD) = "Can't change mode for file '%s' to 0x%lx (Errcode: %iE)"; + EE(EE_CANT_COPY_OWNERSHIP)= "Warning: Can't copy ownership for file '%s' (Errcode: %iE)"; + EE(EE_BADMEMORYRELEASE)= "Failed to release memory pointer %p, %zu bytes (Errcode: %iE)"; EE(EE_PERM_LOCK_MEMORY)= "Lock Pages in memory access rights required"; EE(EE_MEMCNTL) = "Memcntl %s cmd %s error"; EE(EE_DUPLICATE_CHARSET)= "Warning: Charset id %d trying to replace csname %s with %s"; diff --git a/sql-common/errmsg.c b/sql-common/errmsg.c index 47d721705254f..401bbb230cf76 100644 --- a/sql-common/errmsg.c +++ b/sql-common/errmsg.c @@ -28,9 +28,9 @@ const char *client_errors[]= { "Unknown error", "Can't create UNIX socket (%d)", - "Can't connect to local server through socket '%-.100s' (%M)", - "Can't connect to server on '%-.100s' (%M)", - "Can't create TCP/IP socket (%M)", + "Can't connect to local server through socket '%-.100s' (%iE)", + "Can't connect to server on '%-.100s' (%iE)", + "Can't create TCP/IP socket (%iE)", "Unknown server host '%-.100s' (%d)", "Server has gone away", "Protocol mismatch; server version = %d, client version = %d", @@ -81,7 +81,7 @@ const char *client_errors[]= "Prepared statement contains no metadata", "Attempt to read a row while there is no result set associated with the statement", "This feature is not implemented yet", - "Lost connection to server at '%s', system error: %M", + "Lost connection to server at '%s', system error: %iE", "Statement closed indirectly because of a preceding %s() call", "The number of columns in the result set differs from the number of bound buffers. You must reset the statement, rebind the result set columns, and execute the statement again", "This handle is already connected. Use a separate handle for each connection.", diff --git a/sql/sql_table.cc b/sql/sql_table.cc index eb43ff50ab094..3b5c61f35097c 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -10148,7 +10148,7 @@ const char *online_alter_check_supported(const THD *thd, LEX_CSTRING nxvl{STRING_WITH_LEN("NEXTVAL()")}; size_t len= strlen(fmt) + nxvl.length + c.field_name.length + dflt.length; char *resp= (char*)thd->alloc(len); - // expression %s cannot be used in the %s clause of %`s + // expression %s cannot be used in the %s clause of %sQ my_snprintf(resp, len, fmt, nxvl.str, dflt.str, c.field_name.str); return resp; } diff --git a/storage/maria/ma_sort.c b/storage/maria/ma_sort.c index 4b24b994ffb6e..3126636b7b5eb 100644 --- a/storage/maria/ma_sort.c +++ b/storage/maria/ma_sort.c @@ -282,7 +282,7 @@ int _ma_create_index_by_sort(MARIA_SORT_PARAM *info, my_bool no_messages, if (merge_index(info,keys,sort_keys,dynamic_element(&buffpek,0,BUFFPEK *), maxbuffer,&tempfile)) { - const char *format= "Got error %M when merging index"; + const char *format= "Got error %iE when merging index"; _ma_check_print_error(info->sort_info->param, format, (int) my_errno); goto err; /* purecov: inspected */