diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-09-04 11:55:19 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-09-04 11:55:19 +0100 |
commit | 3c7707680fea0881fe96c75f962af01edf810d5d (patch) | |
tree | af697facffc090903daf0f2639f693aa347b1b97 /src/spellfile.c | |
parent | a5348f241bbbb6d5db863d666fa9ca72fc95037a (diff) | |
download | vim-git-3c7707680fea0881fe96c75f962af01edf810d5d.tar.gz |
patch 9.0.0374: Coverity still complains about dropping sign of characterv9.0.0374
Problem: Coverity still complains about dropping sign of character.
Solution: Add intermediate variable.
Diffstat (limited to 'src/spellfile.c')
-rw-r--r-- | src/spellfile.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/spellfile.c b/src/spellfile.c index 8b6388fb5..69b27ae91 100644 --- a/src/spellfile.c +++ b/src/spellfile.c @@ -404,7 +404,7 @@ spell_load_file( * <HEADER>: <fileID> */ for (i = 0; i < VIMSPELLMAGICL; ++i) - buf[i] = (unsigned)getc(fd); // <fileID> + buf[i] = c = getc(fd); // <fileID> if (STRNCMP(buf, VIMSPELLMAGIC, VIMSPELLMAGICL) != 0) { emsg(_(e_this_does_not_look_like_spell_file)); @@ -700,7 +700,7 @@ suggest_load_files(void) * <SUGHEADER>: <fileID> <versionnr> <timestamp> */ for (i = 0; i < VIMSUGMAGICL; ++i) - buf[i] = (unsigned)getc(fd); // <fileID> + buf[i] = c = getc(fd); // <fileID> if (STRNCMP(buf, VIMSUGMAGIC, VIMSUGMAGICL) != 0) { semsg(_(e_this_does_not_look_like_sug_file_str), @@ -841,13 +841,14 @@ read_cnt_string(FILE *fd, int cnt_bytes, int *cntp) read_region_section(FILE *fd, slang_T *lp, int len) { int i; + int c; if (len > MAXREGIONS * 2) return SP_FORMERROR; for (i = 0; i < len; ++i) - lp->sl_regions[i] = (unsigned)getc(fd); // <regionname> + lp->sl_regions[i] = c = getc(fd); // <regionname> lp->sl_regions[len] = NUL; - return 0; + return c == EOF ? SP_TRUNCERROR : 0; } /* @@ -898,6 +899,7 @@ read_prefcond_section(FILE *fd, slang_T *lp) int cnt; int i; int n; + int c; char_u *p; char_u buf[MAXWLEN + 1]; @@ -925,7 +927,9 @@ read_prefcond_section(FILE *fd, slang_T *lp) buf[0] = '^'; // always match at one position only p = buf + 1; while (n-- > 0) - *p++ = (unsigned)getc(fd); // <condstr> + *p++ = c = getc(fd); // <condstr> + if (c == EOF) + break; *p = NUL; lp->sl_prefprog[i] = vim_regcomp(buf, RE_MAGIC + RE_STRING); } @@ -1063,7 +1067,7 @@ read_sal_section(FILE *fd, slang_T *slang) // store the char we got while checking for end of sm_lead *p++ = c; for (++i; i < ccnt; ++i) - *p++ = (unsigned)getc(fd); // <salfrom> + *p++ = c = getc(fd); // <salfrom> *p++ = NUL; // <saltolen> <salto> |