diff options
author | Eliseo Martínez <eliseomarmol@gmail.com> | 2014-05-02 21:23:17 +0200 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2014-05-04 12:40:27 -0400 |
commit | a9e6098637e63c56209047707c6631da7b9ca409 (patch) | |
tree | 69032580a60c98b2d5ef69933e5d43f73a1fa1a5 | |
parent | d84fe0a1b0df64f07ba14137ae94bb843ad4fe2d (diff) | |
download | rneovim-a9e6098637e63c56209047707c6631da7b9ca409.tar.gz rneovim-a9e6098637e63c56209047707c6631da7b9ca409.tar.bz2 rneovim-a9e6098637e63c56209047707c6631da7b9ca409.zip |
Use portable format specifiers: Adapt/fix EMSGU/emsgu to use (uint64_t).
Problem
EMSGU macro was defined as the unsigned counterpart of EMSGN. This is,
invoking emsgu instead of emsgn and having a long_u argument instead of
a long.
But, surprisingly, emsgu was not defined anywhere, which didn't result
in an error because in fact EMSGU was not used (the only point in code
printing a %lu erroneously using EMSGN instead).
Solution
- Define emsgu.
- Adapt EMSGU macro to use uint64_t instead of long_u.
-rw-r--r-- | src/misc2.c | 11 | ||||
-rw-r--r-- | src/misc2.h | 1 | ||||
-rw-r--r-- | src/vim.h | 2 |
3 files changed, 13 insertions, 1 deletions
diff --git a/src/misc2.c b/src/misc2.c index 06a4764250..9ffec654d1 100644 --- a/src/misc2.c +++ b/src/misc2.c @@ -900,6 +900,17 @@ int emsgn(char_u *s, int64_t n) } /* + * Print an error message with one "%" PRIu64 and one (uint64_t) argument. + */ +int emsgu(char_u *s, uint64_t n) +{ + if (emsg_not_now()) + return TRUE; /* no error messages at the moment */ + vim_snprintf((char *)IObuff, IOSIZE, (char *)s, n); + return emsg(IObuff); +} + +/* * Read 2 bytes from "fd" and turn them into an int, MSB first. */ int get2c(FILE *fd) diff --git a/src/misc2.h b/src/misc2.h index 7567b11e60..a15c75c435 100644 --- a/src/misc2.h +++ b/src/misc2.h @@ -39,6 +39,7 @@ int illegal_slash(char *name); int vim_chdir(char_u *new_dir); int emsg3(char_u *s, char_u *a1, char_u *a2); int emsgn(char_u *s, int64_t n); +int emsgu(char_u *s, uint64_t n); int get2c(FILE *fd); int get3c(FILE *fd); int get4c(FILE *fd); @@ -1024,7 +1024,7 @@ typedef enum { #define EMSG3(s, p, q) emsg3((char_u *)(s), (char_u *)(p), \ (char_u *)(q)) #define EMSGN(s, n) emsgn((char_u *)(s), (int64_t)(n)) -#define EMSGU(s, n) emsgu((char_u *)(s), (long_u)(n)) +#define EMSGU(s, n) emsgu((char_u *)(s), (uint64_t)(n)) #define OUT_STR(s) out_str((char_u *)(s)) #define OUT_STR_NF(s) out_str_nf((char_u *)(s)) #define MSG_PUTS(s) msg_puts((char_u *)(s)) |