summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Src/parse.c7
-rw-r--r--Src/utils.c10
3 files changed, 21 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 65fca2bfd..d8d4385ba 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2006-08-04 Peter Stephenson <pws@csr.com>
+ * 22586: Src/parse.c, Src/utils.c: minor warnings spotted
+ on Cygwin: unnecessary static declaration in parse.c, typo in
+ set_widearray, also comments on other warnings that are harder
+ to avoid.
+
* 22585: makepro.awk, Src/utils.c: zsh.exports was missing
VA_ALIST declarations and some multibyte-related stuff.
diff --git a/Src/parse.c b/Src/parse.c
index 7063599b4..a25eb3efa 100644
--- a/Src/parse.c
+++ b/Src/parse.c
@@ -2966,17 +2966,23 @@ build_cur_dump(char *nam, char *dump, char **names, int match, int map,
return 0;
}
+/**/
#if defined(HAVE_SYS_MMAN_H) && defined(HAVE_MMAP) && defined(HAVE_MUNMAP)
#include <sys/mman.h>
+/**/
#if defined(MAP_SHARED) && defined(PROT_READ)
+/**/
#define USE_MMAP 1
+/**/
#endif
+/**/
#endif
+/**/
#ifdef USE_MMAP
/* List of dump files mapped. */
@@ -3060,6 +3066,7 @@ load_dump_file(char *dump, struct stat *sbuf, int other, int len)
#define zwcstat(f, b) (!!stat(f, b))
+/**/
#endif
/* Try to load a function from one of the possible wordcode files for it.
diff --git a/Src/utils.c b/Src/utils.c
index 0dcf4e59b..8fdf2c0ab 100644
--- a/Src/utils.c
+++ b/Src/utils.c
@@ -79,10 +79,15 @@ set_widearray(char *mb_array, Widechar_array wca)
if (!mblen)
break;
/* No good unless all characters are convertible */
- if (*wcptr == WEOF)
+ if (wci == WEOF)
return;
*wcptr++ = (wchar_t)wci;
#ifdef DEBUG
+ /*
+ * This generates a warning from the compiler (and is
+ * indeed useless) if chars are unsigned. It's
+ * extreme paranoia anyway.
+ */
if (wcptr[-1] < 0)
fprintf(stderr, "BUG: Bad cast to wchar_t\n");
#endif
@@ -501,6 +506,9 @@ wcs_nicechar(wchar_t c, size_t *widthp, char **swidep)
/*
* Can't or don't want to convert character: use UCS-2 or
* UCS-4 code in print escape format.
+ *
+ * This comparison fails and generates a compiler warning
+ * if wchar_t is 16 bits, but the code is still correct.
*/
if (c >= 0x10000) {
sprintf(buf, "\\U%.8x", (unsigned int)c);