diff options
author | erw7 <erw7.github@gmail.com> | 2019-06-02 09:41:10 +0900 |
---|---|---|
committer | erw7 <erw7.github@gmail.com> | 2019-06-09 13:28:10 +0900 |
commit | 6fad1736fbe369d92afd88fb14ef637366bc5e77 (patch) | |
tree | fd403b7004ac4bee8f9318f524703c8b090e00d7 /src | |
parent | 53551d823e2a4cc7fa7dc9f9027c21f23b08aeab (diff) | |
download | rneovim-6fad1736fbe369d92afd88fb14ef637366bc5e77.tar.gz rneovim-6fad1736fbe369d92afd88fb14ef637366bc5e77.tar.bz2 rneovim-6fad1736fbe369d92afd88fb14ef637366bc5e77.zip |
Change mch_errmsg and mch_msg from macro to function
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/message.c | 88 | ||||
-rw-r--r-- | src/nvim/vim.h | 29 |
2 files changed, 56 insertions, 61 deletions
diff --git a/src/nvim/message.c b/src/nvim/message.c index 86a9904392..6f90cde505 100644 --- a/src/nvim/message.c +++ b/src/nvim/message.c @@ -2554,32 +2554,31 @@ static int do_more_prompt(int typed_char) return retval; } -#if defined(USE_MCH_ERRMSG) +#if defined(USE_MCH_ERRMSG) || defined(WIN32) -#ifdef mch_errmsg -# undef mch_errmsg -#endif -#ifdef mch_msg -# undef mch_msg -#endif +# ifdef mch_errmsg +# undef mch_errmsg +# endif +# ifdef mch_msg +# undef mch_msg +# endif -/* - * Give an error message. To be used when the screen hasn't been initialized - * yet. When stderr can't be used, collect error messages until the GUI has - * started and they can be displayed in a message box. - */ +# if defined(USE_MCH_ERRMSG) +// Give an error message. To be used when the screen hasn't been initialized +// yet. When stderr can't be used, collect error messages until the GUI has +// started and they can be displayed in a message box. void mch_errmsg(const char *const str) FUNC_ATTR_NONNULL_ALL { -#ifdef UNIX - /* On Unix use stderr if it's a tty. - * When not going to start the GUI also use stderr. - * On Mac, when started from Finder, stderr is the console. */ +# ifdef UNIX + // On Unix use stderr if it's a tty. + // When not going to start the GUI also use stderr. + // On Mac, when started from Finder, stderr is the console. if (os_isatty(2)) { fprintf(stderr, "%s", str); return; } -#endif +# endif /* avoid a delay for a message that isn't there */ emsg_on_display = FALSE; @@ -2591,8 +2590,8 @@ void mch_errmsg(const char *const str) } ga_grow(&error_ga, len); memmove(error_ga.ga_data + error_ga.ga_len, str, len); -#ifdef UNIX - /* remove CR characters, they are displayed */ +# ifdef UNIX + // remove CR characters, they are displayed/ { char_u *p; @@ -2604,31 +2603,54 @@ void mch_errmsg(const char *const str) *p = ' '; } } -#endif - --len; /* don't count the NUL at the end */ +# endif + len--; // don't count the NUL at the end error_ga.ga_len += len; } -/* - * Give a message. To be used when the screen hasn't been initialized yet. - * When there is no tty, collect messages until the GUI has started and they - * can be displayed in a message box. - */ +// Give a message. To be used when the screen hasn't been initialized yet. +// When there is no tty, collect messages until the GUI has started and they +// can be displayed in a message box. void mch_msg(char *str) { -#ifdef UNIX - /* On Unix use stdout if we have a tty. This allows "vim -h | more" and - * uses mch_errmsg() when started from the desktop. - * When not going to start the GUI also use stdout. - * On Mac, when started from Finder, stderr is the console. */ +# ifdef UNIX + // On Unix use stdout if we have a tty. This allows "vim -h | more" and + // uses mch_errmsg() when started from the desktop. + // When not going to start the GUI also use stdout. + // On Mac, when started from Finder, stderr is the console. if (os_isatty(2)) { printf("%s", str); return; } -# endif +# endif mch_errmsg(str); } -#endif /* USE_MCH_ERRMSG */ +# else +void mch_errmsg(char *str) +{ + wchar_t *utf16str; + int conversion_result = utf8_to_utf16((str), &utf16str); + if (conversion_result != 0) { + EMSG2("utf8_to_utf16 failed: %d", conversion_result); + } else { + fwprintf(stderr, L"%ls", utf16str); + xfree(utf16str); + } +} + +void mch_msg(char *str) +{ + wchar_t *utf16str; + int conversion_result = utf8_to_utf16((str), &utf16str); + if (conversion_result != 0) { + EMSG2("utf8_to_utf16 failed: %d", conversion_result); + } else { + wprintf(L"%ls", utf16str); + xfree(utf16str); + } +} +# endif // USE_MCH_ERRMSG +#endif // USE_MCH_ERRMSG && WIN32 /* * Put a character on the screen at the current message position and advance diff --git a/src/nvim/vim.h b/src/nvim/vim.h index d74427ef26..5261d266b2 100644 --- a/src/nvim/vim.h +++ b/src/nvim/vim.h @@ -35,10 +35,6 @@ enum { NUMBUFLEN = 65 }; #include "nvim/gettext.h" -#ifdef WIN32 -# include "nvim/mbyte.h" // for utf8_to_utf16 -#endif - // special attribute addition: Put message in history #define MSG_HIST 0x1000 @@ -291,30 +287,7 @@ enum { FOLD_TEXT_LEN = 51 }; //!< buffer size for get_foldtext() // functions of these names. The declarations would break if the defines had // been seen at that stage. But it must be before globals.h, where error_ga // is declared. -#ifdef WIN32 -# define mch_errmsg(str) \ - do { \ - wchar_t *utf16str; \ - int conversion_result = utf8_to_utf16((str), &utf16str); \ - if (conversion_result != 0) { \ - EMSG2("utf8_to_utf16 failed: %d", conversion_result); \ - } else { \ - fwprintf(stderr, L"%ls", utf16str); \ - xfree(utf16str); \ - } \ - } while (0) -# define mch_msg(str) \ - do { \ - wchar_t *utf16str; \ - int conversion_result = utf8_to_utf16((str), &utf16str); \ - if (conversion_result != 0) { \ - EMSG2("utf8_to_utf16 failed: %d", conversion_result); \ - } else { \ - wprintf(L"%ls", utf16str); \ - xfree(utf16str); \ - } \ - } while (0) -#else +#ifndef WIN32 # define mch_errmsg(str) fprintf(stderr, "%s", (str)) # define mch_msg(str) printf("%s", (str)) #endif |