summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2005-07-18 21:47:53 +0000
committerBram Moolenaar <Bram@vim.org>2005-07-18 21:47:53 +0000
commitbbebc857507f24c82cd5bb2f80305b74390b4611 (patch)
tree4c1a949017d7975cb3e61b246783369bb529d53d /src
parentfe3ca8ddd9b85240387b6fa7934af3317e25b731 (diff)
downloadvim-git-bbebc857507f24c82cd5bb2f80305b74390b4611.tar.gz
updated for version 7.0109
Diffstat (limited to 'src')
-rw-r--r--src/gui_mac.c15
-rw-r--r--src/gui_motif.c5
-rw-r--r--src/mbyte.c1
-rw-r--r--src/misc2.c17
-rw-r--r--src/os_msdos.c11
-rw-r--r--src/os_unix.c14
-rw-r--r--src/quickfix.c6
-rw-r--r--src/regexp.c7
-rw-r--r--src/regexp.h2
-rw-r--r--src/tag.c22
-rw-r--r--src/testdir/test59.in15
11 files changed, 46 insertions, 69 deletions
diff --git a/src/gui_mac.c b/src/gui_mac.c
index 70393be1a..8f5424959 100644
--- a/src/gui_mac.c
+++ b/src/gui_mac.c
@@ -3865,8 +3865,7 @@ gui_mch_init_font(font_name, fontset)
else
{
font = gui_mac_find_font(font_name);
- STRNCPY(used_font_name, font_name, sizeof(used_font_name));
- used_font_name[sizeof(used_font_name) - 1] = NUL;
+ vim_strncpy(used_font_name, font_name, sizeof(used_font_name) - 1);
if (font == NOFONT)
return FAIL;
@@ -6201,8 +6200,7 @@ gui_mch_dialog(
if (name[0] > IOSIZE)
name[0] = IOSIZE - 1;
#endif
- STRNCPY(textfield, &name[1], name[0]);
- textfield[name[0]] = NUL;
+ vim_strncpy(textfield, &name[1], name[0]);
}
/* Restore the original graphical port */
@@ -6522,8 +6520,7 @@ char_u *FullPathFromFSSpec_save(FSSpec file)
#endif
/* Start filling fname with file.name */
- STRNCPY(filenamePtr, &file.name[1], file.name[0]);
- filenamePtr[file.name[0]] = 0; /* NULL terminate the string */
+ vim_strncpy(filenamePtr, &file.name[1], file.name[0]);
/* Get the info about the file specified in FSSpec */
theCPB.dirInfo.ioFDirIndex = 0;
@@ -6625,8 +6622,7 @@ char_u *FullPathFromFSSpec_save(FSSpec file)
/* Put the new directoryName in front of the current fname */
STRCPY(temporaryPtr, filenamePtr);
- STRNCPY(filenamePtr, &directoryName[1], directoryName[0]);
- filenamePtr[directoryName[0]] = 0; /* NULL terminate the string */
+ vim_strncpy(filenamePtr, &directoryName[1], directoryName[0]);
STRCAT(filenamePtr, ":");
STRCAT(filenamePtr, temporaryPtr);
}
@@ -6660,8 +6656,7 @@ char_u *FullPathFromFSSpec_save(FSSpec file)
{
/* Add the volume name */
STRCPY(temporaryPtr, filenamePtr);
- STRNCPY(filenamePtr, &directoryName[1], directoryName[0]);
- filenamePtr[directoryName[0]] = 0; /* NULL terminate the string */
+ vim_strncpy(filenamePtr, &directoryName[1], directoryName[0]);
STRCAT(filenamePtr, ":");
STRCAT(filenamePtr, temporaryPtr);
diff --git a/src/gui_motif.c b/src/gui_motif.c
index 408b588a6..14f65caeb 100644
--- a/src/gui_motif.c
+++ b/src/gui_motif.c
@@ -2620,10 +2620,7 @@ gui_mch_dialog(type, title, message, button_names, dfltbutton, textfield)
if (p == NULL || dialogStatus < 0)
*textfield = NUL;
else
- {
- STRNCPY(textfield, p, IOSIZE);
- textfield[IOSIZE - 1] = NUL;
- }
+ vim_strncpy(textfield, p, IOSIZE - 1);
}
suppress_dialog_mnemonics(dialogform);
diff --git a/src/mbyte.c b/src/mbyte.c
index ff165fa1d..a0063120b 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -701,6 +701,7 @@ codepage_invalid:
* where mblen() returns 0 for invalid character.
* Therefore, following condition includes 0.
*/
+ (void)mblen(NULL, 0); /* First reset the state. */
if (mblen(buf, (size_t)1) <= 0)
n = 2;
else
diff --git a/src/misc2.c b/src/misc2.c
index 75d8a4dc2..8434ec611 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -1372,7 +1372,7 @@ del_trailing_spaces(ptr)
vim_strncpy(to, from, len)
char_u *to;
char_u *from;
- int len;
+ size_t len;
{
STRNCPY(to, from, len);
to[len] = NUL;
@@ -2957,8 +2957,7 @@ vim_chdirfile(fname)
{
char_u dir[MAXPATHL];
- STRNCPY(dir, fname, MAXPATHL);
- dir[MAXPATHL - 1] = NUL;
+ vim_strncpy(dir, fname, MAXPATHL - 1);
*gettail_sep(dir) = NUL;
return mch_chdir((char *)dir) == 0 ? OK : FAIL;
}
@@ -3907,8 +3906,7 @@ vim_findfile_init(path, filename, stopdirs, level, free_visited, need_dir,
if (!vim_isAbsName(rel_fname) && len + 1 < MAXPATHL)
{
/* Make the start dir an absolute path name. */
- STRNCPY(ff_expand_buffer, rel_fname, len);
- ff_expand_buffer[len] = NUL;
+ vim_strncpy(ff_expand_buffer, rel_fname, len);
ff_search_ctx->ffsc_start_dir = FullName_save(ff_expand_buffer,
FALSE);
}
@@ -4810,7 +4808,7 @@ ff_check_visited(visited_list, fname
* device/inode (unix) or the full path name (not Unix). */
if (path_with_url(fname))
{
- STRNCPY(ff_expand_buffer, fname, MAXPATHL);
+ vim_strncpy(ff_expand_buffer, fname, MAXPATHL - 1);
#ifdef UNIX
url = TRUE;
#endif
@@ -5393,9 +5391,10 @@ vim_chdir(new_dir)
}
/*
- * Get user name from machine-specific function and cache it.
+ * Get user name from machine-specific function.
* Returns the user name in "buf[len]".
- * Some systems are quite slow in obtaining the user name (Windows NT).
+ * Some systems are quite slow in obtaining the user name (Windows NT), thus
+ * cache the result.
* Returns OK or FAIL.
*/
int
@@ -5410,7 +5409,7 @@ get_user_name(buf, len)
username = vim_strsave(buf);
}
else
- STRNCPY(buf, username, len);
+ vim_strncpy(buf, username, len - 1);
return OK;
}
diff --git a/src/os_msdos.c b/src/os_msdos.c
index a70d58e3d..36304cc61 100644
--- a/src/os_msdos.c
+++ b/src/os_msdos.c
@@ -1515,8 +1515,7 @@ mch_FullName(
{
if (!force && mch_isFullName(fname)) /* already expanded */
{
- STRNCPY(buf, fname, len);
- buf[len - 1] = NUL;
+ vim_strncpy(buf, fname, len - 1);
slash_adjust(buf);
return OK;
}
@@ -1533,8 +1532,7 @@ mch_FullName(
if (!_truename(fname, fullpath))
return FAIL;
slash_adjust(fullpath); /* Only needed when 'shellslash' set */
- STRNCPY(buf, fullpath, len);
- buf[len - 1] = NUL;
+ vim_strncpy(buf, fullpath, len - 1);
return OK;
# else /* Old code, to be deleted... */
@@ -3074,9 +3072,8 @@ mch_get_host_name(
int len)
{
#ifdef DJGPP
- STRNCPY(s, "PC (32 bits Vim)", len);
+ vim_strncpy(s, "PC (32 bits Vim)", len - 1);
#else
- STRNCPY(s, "PC (16 bits Vim)", len);
+ vim_strncpy(s, "PC (16 bits Vim)", len - 1);
#endif
- s[len - 1] = NUL; /* make sure it's terminated */
}
diff --git a/src/os_unix.c b/src/os_unix.c
index e22f62267..9952266b3 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -2072,7 +2072,7 @@ mch_get_user_name(s, len)
int len;
{
#ifdef VMS
- STRNCPY((char *)s, cuserid(NULL), len);
+ vim_strncpy((char *)s, cuserid(NULL), len - 1);
return OK;
#else
return mch_get_uname(getuid(), s, len);
@@ -2095,8 +2095,7 @@ mch_get_uname(uid, s, len)
if ((pw = getpwuid(uid)) != NULL
&& pw->pw_name != NULL && *(pw->pw_name) != NUL)
{
- STRNCPY(s, pw->pw_name, len);
- s[len - 1] = NUL;
+ vim_strncpy(s, (char_u *)pw->pw_name, len - 1);
return OK;
}
#endif
@@ -2119,8 +2118,7 @@ mch_get_host_name(s, len)
if (uname(&vutsname) < 0)
*s = NUL;
else
- STRNCPY(s, vutsname.nodename, len);
- s[len - 1] = NUL; /* make sure it's terminated */
+ vim_strncpy(s, (char_u *)vutsname.nodename, len - 1);
}
#else /* HAVE_SYS_UTSNAME_H */
@@ -2300,8 +2298,7 @@ mch_FullName(fname, buf, len, force)
retval = FAIL;
else
{
- STRNCPY(buf, fname, p - fname);
- buf[p - fname] = NUL;
+ vim_strncpy(buf, fname, p - fname);
if (mch_chdir((char *)buf))
retval = FAIL;
else
@@ -2630,8 +2627,7 @@ mch_can_exe(name)
STRCPY(buf, "./");
else
{
- STRNCPY(buf, p, e - p);
- buf[e - p] = NUL;
+ vim_strncpy(buf, p, e - p);
add_pathsep(buf);
}
STRCAT(buf, name);
diff --git a/src/quickfix.c b/src/quickfix.c
index 281cac868..d46578701 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -443,7 +443,8 @@ qf_init_ext(efile, buf, errorformat, newlist, lnumfirst, lnumlast)
{
if (buflnum > lnumlast)
break;
- STRNCPY(IObuff, ml_get_buf(buf, buflnum++, FALSE), CMDBUFFSIZE - 2);
+ vim_strncpy(IObuff, ml_get_buf(buf, buflnum++, FALSE),
+ CMDBUFFSIZE - 2);
}
else if (fgets((char *)IObuff, CMDBUFFSIZE - 2, fd) == NULL)
break;
@@ -516,8 +517,7 @@ restofline:
else if ((i = (int)fmt_ptr->addr[5]) > 0) /* %m */
{
len = (int)(regmatch.endp[i] - regmatch.startp[i]);
- STRNCPY(errmsg, regmatch.startp[i], len);
- errmsg[len] = NUL;
+ vim_strncpy(errmsg, regmatch.startp[i], len);
}
if ((i = (int)fmt_ptr->addr[6]) > 0) /* %r */
tail = regmatch.startp[i];
diff --git a/src/regexp.c b/src/regexp.c
index ae1bfd12f..7ff271b43 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -3047,7 +3047,7 @@ static int ireg_icombine;
* Copy of "rmm_maxcol": maximum column to search for a match. Zero when
* there is no maximum.
*/
-static int ireg_maxcol;
+static colnr_T ireg_maxcol;
/*
* Sometimes need to save a copy of a line. Since alloc()/free() is very
@@ -6866,10 +6866,7 @@ reg_submatch(no)
len = submatch_mmatch->endpos[no].col
- submatch_mmatch->startpos[no].col;
if (round == 2)
- {
- STRNCPY(retval, s, len);
- retval[len] = NUL;
- }
+ vim_strncpy(retval, s, len);
++len;
}
else
diff --git a/src/regexp.h b/src/regexp.h
index fee6cc450..09c8d0c79 100644
--- a/src/regexp.h
+++ b/src/regexp.h
@@ -64,7 +64,7 @@ typedef struct
lpos_T startpos[NSUBEXP];
lpos_T endpos[NSUBEXP];
int rmm_ic;
- int rmm_maxcol; /* when not zero: maximum column */
+ colnr_T rmm_maxcol; /* when not zero: maximum column */
} regmmatch_T;
/*
diff --git a/src/tag.c b/src/tag.c
index a06edebd4..f46ae72f4 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -1558,8 +1558,8 @@ line_read_in:
{
if (STRLEN(fullpath_ebuf) > LSIZE)
EMSG2(_("E430: Tag file path truncated for %s\n"), ebuf);
- STRNCPY(tag_fname, fullpath_ebuf, LSIZE);
- tag_fname[LSIZE] = NUL;
+ vim_strncpy(tag_fname, fullpath_ebuf,
+ MAXPATHL);
++incstack_idx;
is_etag = 0; /* we can include anything */
}
@@ -2090,8 +2090,7 @@ line_read_in:
{
mfp->len = len + 1; /* include the NUL */
p = mfp->match;
- STRNCPY(p, tagp.command + 2, len);
- p[len] = NUL;
+ vim_strncpy(p, tagp.command + 2, len);
}
}
else
@@ -2107,8 +2106,7 @@ line_read_in:
{
mfp->len = len + 1; /* include the NUL */
p = mfp->match;
- STRNCPY(p, tagp.tagname, len);
- p[len] = NUL;
+ vim_strncpy(p, tagp.tagname, len);
}
/* if wanted, re-read line to get long form too */
@@ -2436,10 +2434,8 @@ get_tagfname(first, buf)
STRCPY(gettail(buf), "tags");
}
else
- {
- STRNCPY(buf, ((char_u **)(tag_fnames.ga_data))[hf_idx++], MAXPATHL);
- buf[MAXPATHL - 1] = NUL;
- }
+ vim_strncpy(buf, ((char_u **)(tag_fnames.ga_data))[hf_idx++],
+ MAXPATHL - 1);
}
else
{
@@ -3186,8 +3182,8 @@ expand_tag_fname(fname, tag_fname, expand)
if (retval != NULL)
{
STRCPY(retval, tag_fname);
- STRNCPY(retval + (p - tag_fname), fname,
- MAXPATHL - (p - tag_fname));
+ vim_strncpy(retval + (p - tag_fname), fname,
+ MAXPATHL - (p - tag_fname) - 1);
/*
* Translate names like "src/a/../b/file.c" into "src/b/file.c".
*/
@@ -3586,7 +3582,7 @@ add_tag_field(dict, field_name, start, end)
len = end - start;
if (len > sizeof(buf) - 1)
len = sizeof(buf) - 1;
- STRNCPY(buf, start, len);
+ vim_strncpy(buf, start, len);
}
buf[len] = NUL;
return dict_add_nr_str(dict, field_name, 0L, buf);
diff --git a/src/testdir/test59.in b/src/testdir/test59.in
index 61f22d57a..6b3a30d96 100644
--- a/src/testdir/test59.in
+++ b/src/testdir/test59.in
@@ -10,10 +10,10 @@ STARTTEST
:e!
:set fenc=
:" First generate a .spl file from a .dic and a .aff file.
-gg:/^affstart1/+1,/^affend1/-1w Xtest.aff
-gg:/^dicstart/+1,/^dicend/-1w Xtest.dic
+gg:/^affstart1/+1,/^affend1/-1w! Xtest.aff
+gg:/^dicstart/+1,/^dicend/-1w! Xtest.dic
:set enc=utf-8
-:mkspell Xtest Xtest
+:mkspell! Xtest Xtest
:"
:" use that spell file
:set spl=Xtest.utf-8.spl
@@ -75,30 +75,29 @@ gg:/^affstart2/+1,/^affend2/-1w! Xtest.aff
:" also use an addition file
gg:/^addstart/+1,/^addend/-1w! Xtest.utf-8.add
:mkspell! Xtest.utf-8.add.spl Xtest.utf-8.add
-:set spl=en
:set spellfile=Xtest.utf-8.add
/^test2:
]s:let str = spellbadword()
:$put =str
-:set spl=en_us
+:set spl=Xtest_us.utf-8.spl
/^test2:
]smm:let str = spellbadword()
:$put =str
`m]s:let str = spellbadword()
:$put =str
-:set spl=en_gb
+:set spl=Xtest_gb.utf-8.spl
/^test2:
]smm:let str = spellbadword()
:$put =str
`m]s:let str = spellbadword()
:$put =str
-:set spl=en_nz
+:set spl=Xtest_nz.utf-8.spl
/^test2:
]smm:let str = spellbadword()
:$put =str
`m]s:let str = spellbadword()
:$put =str
-:set spl=en_ca
+:set spl=Xtest_ca.utf-8.spl
/^test2:
]smm:let str = spellbadword()
:$put =str