Index: gnu/usr.bin/grep/dfa.c =================================================================== --- gnu/usr.bin/grep/dfa.c +++ gnu/usr.bin/grep/dfa.c @@ -383,7 +383,7 @@ next character is a multibyte character or not. */ if (! cur_mb_index) { - cur_mb_len = mbrlen(p, len, &mbs); + cur_mb_len = mbrlen((const char *)p, len, &mbs); if (cur_mb_len > 1) /* It is a multibyte character. cur_mb_len was already set by mbrlen(). */ @@ -410,7 +410,7 @@ return lasttok = END; \ } \ if (MB_CUR_MAX > 1) \ - update_mb_len_index(lexptr, lexleft); \ + update_mb_len_index((const unsigned char *)lexptr, lexleft); \ (c) = (unsigned char) *lexptr++; \ --lexleft; \ } @@ -485,7 +485,8 @@ work_mbc->nchars = work_mbc->nranges = work_mbc->nch_classes = 0; work_mbc->nequivs = work_mbc->ncoll_elems = 0; - work_mbc->chars = work_mbc->ch_classes = NULL; + work_mbc->chars = NULL; + work_mbc->ch_classes = NULL; work_mbc->range_sts = work_mbc->range_ends = NULL; work_mbc->equivs = work_mbc->coll_elems = NULL; @@ -554,7 +555,7 @@ wt = wctype (str); if (ch_classes_al == 0) - MALLOC(work_mbc->ch_classes, wchar_t, ++ch_classes_al); + MALLOC(work_mbc->ch_classes, wctype_t, ++ch_classes_al); REALLOC_IF_NECESSARY(work_mbc->ch_classes, wctype_t, ch_classes_al, work_mbc->nch_classes + 1); @@ -2508,14 +2509,14 @@ goto charset_matched; } - strncpy(buffer, buf_begin + index, match_len); + strncpy(buffer, (const char *)(buf_begin + index), match_len); buffer[match_len] = '\0'; /* match with an equivalent class? */ for (i = 0; inequivs; i++) { op_len = strlen(work_mbc->equivs[i]); - strncpy(buffer, buf_begin + index, op_len); + strncpy(buffer, (const char *)(buf_begin + index), op_len); buffer[op_len] = '\0'; if (strcoll(work_mbc->equivs[i], buffer) == 0) { @@ -2528,7 +2529,7 @@ for (i = 0; incoll_elems; i++) { op_len = strlen(work_mbc->coll_elems[i]); - strncpy(buffer, buf_begin + index, op_len); + strncpy(buffer, (const char*)(buf_begin + index), op_len); buffer[op_len] = '\0'; if (strcoll(work_mbc->coll_elems[i], buffer) == 0) @@ -2783,7 +2784,7 @@ if (MB_CUR_MAX > 1) { int remain_bytes, i; - buf_begin = begin; + buf_begin = (const unsigned char *)begin; buf_end = end; /* initialize mblen_buf, and inputwcs. */ Index: gnu/usr.bin/grep/search.c =================================================================== --- gnu/usr.bin/grep/search.c +++ gnu/usr.bin/grep/search.c @@ -105,7 +105,7 @@ void dfaerror (char const *mesg) { - error (2, 0, mesg); + error (2, 0, "%s", mesg); } static void @@ -144,7 +144,7 @@ continue; ++kwset_exact_matches; if ((err = kwsincr (kwset, dm->must, strlen (dm->must))) != 0) - error (2, 0, err); + error (2, 0, "%s", err); } /* Now, we compile the substrings that will require the use of the regexp matcher. */ @@ -153,10 +153,10 @@ if (dm->exact) continue; if ((err = kwsincr (kwset, dm->must, strlen (dm->must))) != 0) - error (2, 0, err); + error (2, 0, "%s", err); } if ((err = kwsprep (kwset)) != 0) - error (2, 0, err); + error (2, 0, "%s", err); } } @@ -200,7 +200,7 @@ if ((err = re_compile_pattern (motif, len, &(patterns[pcount].regexbuf))) != 0) - error (2, 0, err); + error (2, 0, "%s", err); pcount++; motif = sep; @@ -284,7 +284,7 @@ if ((err = re_compile_pattern (motif, len, &(patterns[pcount].regexbuf))) != 0) - error (2, 0, err); + error (2, 0, "%s", err); pcount++; motif = sep; @@ -755,7 +755,7 @@ if (wclen == 0) { if ((err = kwsincr (fimb_kwset, "", 0)) != 0) - error (2, 0, err); + error (2, 0, "%s", err); } else for (i = 0; i < (1 << wclen); i++) @@ -778,7 +778,7 @@ p += k; } if ((err = kwsincr (fimb_kwset, starts, p - starts)) != 0) - error (2, 0, err); + error (2, 0, "%s", err); } if (wclim < wcpattern + wcsize) ++wclim; @@ -790,7 +790,7 @@ free (starts); Fimb.match = xmalloc (Fimb.count); if ((err = kwsprep (kwset)) != 0) - error (2, 0, err); + error (2, 0, "%s", err); return; } } @@ -804,7 +804,7 @@ for (lim = beg; lim < pattern + size && *lim != '\n'; ++lim) ; if ((err = kwsincr (kwset, beg, lim - beg)) != 0) - error (2, 0, err); + error (2, 0, "%s", err); if (lim < pattern + size) ++lim; beg = lim; @@ -812,7 +812,7 @@ while (beg < pattern + size); if ((err = kwsprep (kwset)) != 0) - error (2, 0, err); + error (2, 0, "%s", err); } #ifdef MBS_SUPPORT