From db1ec847f989a71b2cb1e0c39194e277613931fd Mon Sep 17 00:00:00 2001 From: Kurtis Rader Date: Wed, 1 Jun 2016 22:03:27 -0700 Subject: fix lint error in wgettext() Cppcheck was complaining about the `return val.c_str()` at the end of the `wgettext()` function. That would normally a bug since the lifetime of `val` ends when the function returns. In this particular case that's not true because the string is interned in a cache. Nonetheless, rather than suppress the lint warning I decided to modify the API to be more idiomatic. In the process of fixing the aforementioned lint warning I fixed several other lint errors in that module. This required making our copy of `wgetopt()` compatible with the rest of the fish code. Specifically, by removing its local definitions of the "_" macro so it uses the same macro used everywhere else in the fish code. The sooner we kill the use of wide chars the better. --- src/common.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/common.h') diff --git a/src/common.h b/src/common.h index e59dfc0e..07342436 100644 --- a/src/common.h +++ b/src/common.h @@ -226,8 +226,8 @@ void write_ignore(int fd, const void *buff, size_t count); return retval; \ } -/// Shorthand for wgettext call. -#define _(wstr) wgettext(wstr) +/// Shorthand for wgettext call in situations where a C-style string is needed (e.g., fwprintf()). +#define _(wstr) wgettext(wstr).c_str() /// Noop, used to tell xgettext that a string should be translated, even though it is not directly /// sent to wgettext. -- cgit v1.2.3