|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
diff --git a/src/chars.c b/src/chars.c
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
index beb88ca..1d73b81 100644
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
--- a/src/chars.c
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
+++ b/src/chars.c
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
@@ -79,6 +79,16 @@ bool is_byte(int c)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
return ((unsigned int)c == (unsigned char)c);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
}
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+static void mbtowc_reset(void)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+{
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
+ IGNORE_CALL_RESULT(mbtowc(NULL, NULL, 0));
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+}
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+static void wctomb_reset(void)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+{
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
+ IGNORE_CALL_RESULT(wctomb(NULL, 0));
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+}
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
/* This function is equivalent to isalnum() for multibyte characters. */
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
bool is_alnum_mbchar(const char *c)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
{
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
@@ -89,7 +99,7 @@ bool is_alnum_mbchar(const char *c)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
wchar_t wc;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
if (mbtowc(&wc, c, MB_CUR_MAX) < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
- int shutup = mbtowc(NULL, NULL, 0);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+ mbtowc_reset();
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
wc = bad_wchar;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
}
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
@@ -109,7 +119,7 @@ bool is_blank_mbchar(const char *c)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
wchar_t wc;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
if (mbtowc(&wc, c, MB_CUR_MAX) < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
- int shutup = mbtowc(NULL, NULL, 0);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+ mbtowc_reset();
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
wc = bad_wchar;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
}
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
@@ -156,7 +166,7 @@ bool is_cntrl_mbchar(const char *c)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
wchar_t wc;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
if (mbtowc(&wc, c, MB_CUR_MAX) < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
- int shutup = mbtowc(NULL, NULL, 0);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+ mbtowc_reset();
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
wc = bad_wchar;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
}
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
@@ -177,7 +187,7 @@ bool is_punct_mbchar(const char *c)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
int c_mb_len = mbtowc(&wc, c, MB_CUR_MAX);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
if (c_mb_len < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
- int shutup = mbtowc(NULL, NULL, 0);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+ mbtowc_reset();
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
wc = bad_wchar;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
}
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
@@ -243,14 +253,14 @@ char *control_mbrep(const char *c, char *crep, int *crep_len)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
wchar_t wc;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
if (mbtowc(&wc, c, MB_CUR_MAX) < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
- int shutup = mbtowc(NULL, NULL, 0);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+ mbtowc_reset();
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
*crep_len = bad_mbchar_len;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
strncpy(crep, bad_mbchar, *crep_len);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
} else {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
*crep_len = wctomb(crep, control_wrep(wc));
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
if (*crep_len < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
- int shutup = wctomb(NULL, 0);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+ wctomb_reset();
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
*crep_len = 0;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
}
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
}
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
@@ -278,14 +288,14 @@ char *mbrep(const char *c, char *crep, int *crep_len)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
/* Reject invalid Unicode characters. */
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
if (mbtowc(&wc, c, MB_CUR_MAX) < 0 || !is_valid_unicode(wc)) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
- int shutup = mbtowc(NULL, NULL, 0);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+ mbtowc_reset();
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
*crep_len = bad_mbchar_len;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
strncpy(crep, bad_mbchar, *crep_len);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
} else {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
*crep_len = wctomb(crep, wc);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
if (*crep_len < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
- int shutup = wctomb(NULL, 0);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+ wctomb_reset();
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
*crep_len = 0;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
}
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
}
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
@@ -311,7 +321,7 @@ int mbwidth(const char *c)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
int width;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
if (mbtowc(&wc, c, MB_CUR_MAX) < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
- int shutup = mbtowc(NULL, NULL, 0);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+ mbtowc_reset();
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
wc = bad_wchar;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
}
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
@@ -356,7 +366,7 @@ char *make_mbchar(long chr, int *chr_mb_len)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
/* Reject invalid Unicode characters. */
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
if (*chr_mb_len < 0 || !is_valid_unicode((wchar_t)chr)) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
- int shutup = wctomb(NULL, 0);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+ wctomb_reset();
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
*chr_mb_len = 0;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
}
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
} else {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
@@ -388,7 +398,7 @@ int parse_mbchar(const char *buf, char *chr, size_t *col)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
/* If buf contains an invalid multibyte character, only
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
* interpret buf's first byte. */
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
if (buf_mb_len < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
- int shutup = mblen(NULL, 0);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
+ IGNORE_CALL_RESULT(mblen(NULL, 0));
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
buf_mb_len = 1;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
} else if (buf_mb_len == 0)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
buf_mb_len++;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
@@ -545,7 +555,7 @@ int mbstrncasecmp(const char *s1, const char *s2, size_t n)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
s1_mb_len = parse_mbchar(s1, s1_mb, NULL);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
if (mbtowc(&ws1, s1_mb, s1_mb_len) < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
- int shutup = mbtowc(NULL, NULL, 0);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+ mbtowc_reset();
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
ws1 = (unsigned char)*s1_mb;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
bad_s1_mb = TRUE;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
}
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
@@ -553,7 +563,7 @@ int mbstrncasecmp(const char *s1, const char *s2, size_t n)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
s2_mb_len = parse_mbchar(s2, s2_mb, NULL);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
if (mbtowc(&ws2, s2_mb, s2_mb_len) < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
- int shutup = mbtowc(NULL, NULL, 0);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+ mbtowc_reset();
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
ws2 = (unsigned char)*s2_mb;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
bad_s2_mb = TRUE;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
}
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
@@ -781,7 +791,7 @@ char *mbstrchr(const char *s, const char *c)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
int c_mb_len = mbtowc(&wc, c, MB_CUR_MAX);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
if (c_mb_len < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
- int shutup = mbtowc(NULL, NULL, 0);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+ mbtowc_reset();
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
wc = (unsigned char)*c;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
bad_c_mb = TRUE;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
}
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
@@ -790,7 +800,7 @@ char *mbstrchr(const char *s, const char *c)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
int s_mb_len = parse_mbchar(s, s_mb, NULL);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
if (mbtowc(&ws, s_mb, s_mb_len) < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
- int shutup = mbtowc(NULL, NULL, 0);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
+ mbtowc_reset();
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
ws = (unsigned char)*s;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
bad_s_mb = TRUE;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
}
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
diff --git a/src/files.c b/src/files.c
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
index 17eb431..92d6d88 100644
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
--- a/src/files.c
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
+++ b/src/files.c
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
@@ -1092,7 +1092,6 @@ char *get_full_path(const char *origpath)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
char *d_here, *d_there, *d_there_file = NULL;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
const char *last_slash;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
bool path_only;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
- int shutup;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
if (origpath == NULL)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
return NULL;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
@@ -1191,7 +1190,7 @@ char *get_full_path(const char *origpath)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
/* Finally, go back to the path specified in d_here,
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
* where we were before. We don't check for a chdir()
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
6e31aec |
* error, since we can do nothing if we get one. */
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
- shutup = chdir(d_here);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
481dc20 |
+ IGNORE_CALL_RESULT(chdir(d_here));
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
481dc20 |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
481dc20 |
/* Free d_here, since we're done using it. */
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
481dc20 |
free(d_here);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
diff --git a/src/nano.h b/src/nano.h
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
index 0cc8f22..2fe383f 100644
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
--- a/src/nano.h
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
2b03926 |
+++ b/src/nano.h
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
@@ -54,6 +54,9 @@
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
#include <stdarg.h>
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
481dc20 |
#endif
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
481dc20 |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
481dc20 |
+/* Suppress warnings for __attribute__((warn_unused_result)) */
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
481dc20 |
+#define IGNORE_CALL_RESULT(call) do { if (call) {} } while(0)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
481dc20 |
+
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
481dc20 |
/* Macros for flags. */
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
#define FLAGOFF(flag) ((flag) / (sizeof(unsigned) * 8))
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
8e49530 |
#define FLAGMASK(flag) (1 << ((flag) % (sizeof(unsigned) * 8)))
|