diff options
author | Bram Moolenaar <Bram@vim.org> | 2005-07-18 21:58:11 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2005-07-18 21:58:11 +0000 |
commit | ce0842a6ee214621ccf03693ab77a94851c09ab0 (patch) | |
tree | 1dd3965d94b6497335e9c7ca77c0e02a58003218 /src | |
parent | bbebc857507f24c82cd5bb2f80305b74390b4611 (diff) | |
download | vim-git-ce0842a6ee214621ccf03693ab77a94851c09ab0.tar.gz |
updated for version 7.0109v7.0109
Diffstat (limited to 'src')
-rw-r--r-- | src/dosinst.c | 2 | ||||
-rw-r--r-- | src/edit.c | 18 | ||||
-rw-r--r-- | src/eval.c | 8 | ||||
-rw-r--r-- | src/ex_cmds2.c | 24 | ||||
-rw-r--r-- | src/ex_getln.c | 8 | ||||
-rw-r--r-- | src/fold.c | 5 | ||||
-rw-r--r-- | src/gui_gtk.c | 6 | ||||
-rw-r--r-- | src/gui_gtk_x11.c | 12 | ||||
-rw-r--r-- | src/gui_w32.c | 3 | ||||
-rw-r--r-- | src/memline.c | 8 | ||||
-rw-r--r-- | src/menu.c | 3 | ||||
-rw-r--r-- | src/misc1.c | 6 | ||||
-rw-r--r-- | src/ops.c | 3 | ||||
-rw-r--r-- | src/option.c | 5 | ||||
-rw-r--r-- | src/os_amiga.c | 4 | ||||
-rw-r--r-- | src/os_qnx.c | 3 | ||||
-rw-r--r-- | src/proto/misc2.pro | 2 | ||||
-rw-r--r-- | src/structs.h | 6 | ||||
-rw-r--r-- | src/syntax.c | 66 | ||||
-rw-r--r-- | src/testdir/test51.in | 2 | ||||
-rw-r--r-- | src/testdir/test58.in | 15 | ||||
-rw-r--r-- | src/version.c | 6 | ||||
-rw-r--r-- | src/version.h | 4 |
23 files changed, 118 insertions, 101 deletions
diff --git a/src/dosinst.c b/src/dosinst.c index deaf15f7a..efc6fdfee 100644 --- a/src/dosinst.c +++ b/src/dosinst.c @@ -2080,7 +2080,7 @@ print_cmd_line_help(void) printf(" or $HOME directory\n"); #ifdef WIN3264 printf("-register-OLE"); - printf(" Register gvim for OLE\n"); + printf(" Ignored\n"); #endif printf("\n"); } diff --git a/src/edit.c b/src/edit.c index 7028dd32a..bf7096111 100644 --- a/src/edit.c +++ b/src/edit.c @@ -1970,8 +1970,7 @@ ins_compl_add_infercase(str, len, fname, dir, reuse) { /* Infer case of completed part -- webb */ /* Use IObuff, str would change text in buffer! */ - STRNCPY(IObuff, str, len); - IObuff[len] = NUL; + vim_strncpy(IObuff, str, len); /* Rule 1: Were any chars converted to lower? */ for (idx = 0; idx < completion_length; ++idx) @@ -2010,7 +2009,7 @@ ins_compl_add_infercase(str, len, fname, dir, reuse) } /* Copy the original case of the part we typed */ - STRNCPY(IObuff, original_text, completion_length); + vim_strncpy(IObuff, original_text, completion_length); return ins_compl_add(IObuff, len, fname, dir, reuse); } @@ -3053,17 +3052,17 @@ ins_compl_get_exp(ini, dir) tmp_ptr = find_word_end(tmp_ptr); if (tmp_ptr > ptr) { - if (*ptr != ')' && IObuff[len-1] != TAB) + if (*ptr != ')' && IObuff[len - 1] != TAB) { - if (IObuff[len-1] != ' ') + if (IObuff[len - 1] != ' ') IObuff[len++] = ' '; /* IObuf =~ "\k.* ", thus len >= 2 */ if (p_js - && (IObuff[len-2] == '.' + && (IObuff[len - 2] == '.' || (vim_strchr(p_cpo, CPO_JOINSP) == NULL - && (IObuff[len-2] == '?' - || IObuff[len-2] == '!')))) + && (IObuff[len - 2] == '?' + || IObuff[len - 2] == '!')))) IObuff[len++] = ' '; } /* copy as much as posible of the new word */ @@ -3741,8 +3740,7 @@ ins_complete(c) curr_match->number, completion_matches); else sprintf((char *)IObuff, _("match %d"), curr_match->number); - STRNCPY(match_ref, IObuff, 30 ); - match_ref[30] = '\0'; + vim_strncpy(match_ref, IObuff, 30); edit_submode_extra = match_ref; edit_submode_highl = HLF_R; if (dollar_vcol) diff --git a/src/eval.c b/src/eval.c index a1404c224..6adfb4d40 100644 --- a/src/eval.c +++ b/src/eval.c @@ -6197,8 +6197,7 @@ dict_find(d, key, len) else { /* Avoid a malloc/free by using buf[]. */ - STRNCPY(buf, key, len); - buf[len] = NUL; + vim_strncpy(buf, key, len); akey = buf; } @@ -10681,10 +10680,7 @@ f_inputdialog(argvars, rettv) message = get_tv_string_chk(&argvars[0]); if (argvars[1].v_type != VAR_UNKNOWN && (defstr = get_tv_string_buf_chk(&argvars[1], buf)) != NULL) - { - STRNCPY(IObuff, defstr, IOSIZE); - IObuff[IOSIZE - 1] = NUL; - } + vim_strncpy(IObuff, defstr, IOSIZE - 1); else IObuff[0] = NUL; if (message != NULL && defstr != NULL diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c index b3faec86c..923faf9bc 100644 --- a/src/ex_cmds2.c +++ b/src/ex_cmds2.c @@ -5511,16 +5511,14 @@ prt_open_resource(resource) switch (dsc_line.type) { case PRT_DSC_TITLE_TYPE: - STRNCPY(resource->title, dsc_line.string, dsc_line.len); - resource->title[dsc_line.len] = '\0'; + vim_strncpy(resource->title, dsc_line.string, dsc_line.len); seen_title = TRUE; if (seen_version) seen_all = TRUE; break; case PRT_DSC_VERSION_TYPE: - STRNCPY(resource->version, dsc_line.string, dsc_line.len); - resource->version[dsc_line.len] = '\0'; + vim_strncpy(resource->version, dsc_line.string, dsc_line.len); seen_version = TRUE; if (seen_title) seen_all = TRUE; @@ -5862,8 +5860,7 @@ prt_build_cid_fontname(font, name, name_len) fontname = (char *)alloc(name_len + 1); if (fontname == NULL) return FALSE; - STRNCPY(fontname, name, name_len); - fontname[name_len] = '\0'; + vim_strncpy((char_u *)fontname, name, name_len); prt_ps_mb_font.ps_fontname[font] = fontname; return TRUE; @@ -5977,7 +5974,6 @@ mch_print_init(psettings, jobname, forceit) double bottom; #ifdef FEAT_MBYTE int cmap; - int pmcs_len; char_u *p_encoding; struct prt_ps_encoding_S *p_mbenc; struct prt_ps_encoding_S *p_mbenc_first; @@ -6035,7 +6031,7 @@ mch_print_init(psettings, jobname, forceit) if (prt_out_mbyte) { /* Build CMap name - will be same for all multi-byte fonts used */ - prt_cmap[0] = '\0'; + prt_cmap[0] = NUL; prt_custom_cmap = prt_out_mbyte && p_mbchar == NULL; @@ -6051,26 +6047,26 @@ mch_print_init(psettings, jobname, forceit) /* Add charset name if not empty */ if (p_mbchar->cmap_charset != NULL) { - STRCAT(prt_cmap, p_mbchar->cmap_charset); + vim_strncpy((char_u *)prt_cmap, + (char_u *)p_mbchar->cmap_charset, sizeof(prt_cmap) - 3); STRCAT(prt_cmap, "-"); } } else { /* Add custom CMap character set name */ - pmcs_len = STRLEN(p_pmcs); - if (pmcs_len == 0) + if (*p_pmcs == NUL) { EMSG(_("E674: printmbcharset cannot be empty with multi-byte encoding.")); return FALSE; } - STRNCPY(prt_cmap, p_pmcs, STRLEN(p_pmcs)); - prt_cmap[pmcs_len] = '\0'; + vim_strncpy((char_u *)prt_cmap, p_pmcs, sizeof(prt_cmap) - 3); STRCAT(prt_cmap, "-"); } /* CMap name ends with (optional) encoding name and -H for horizontal */ - if (p_mbenc->cmap_encoding != NULL) + if (p_mbenc->cmap_encoding != NULL && STRLEN(prt_cmap) + + STRLEN(p_mbenc->cmap_encoding) + 3 < sizeof(prt_cmap)) { STRCAT(prt_cmap, p_mbenc->cmap_encoding); STRCAT(prt_cmap, "-"); diff --git a/src/ex_getln.c b/src/ex_getln.c index 119262254..c96f11488 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -3239,10 +3239,7 @@ ExpandOne(xp, str, orig, options, mode) } ss = alloc((unsigned)len + 1); if (ss) - { - STRNCPY(ss, xp->xp_files[0], len); - ss[len] = NUL; - } + vim_strncpy(ss, xp->xp_files[0], (size_t)len); findex = -1; /* next p_wc gets first one */ } @@ -3749,8 +3746,7 @@ addstar(fname, len, context) retval = alloc(len + 4); if (retval != NULL) { - STRNCPY(retval, fname, len); - retval[len] = NUL; + vim_strncpy(retval, fname, len); /* * Don't add a star to ~, ~user, $var or `cmd`. diff --git a/src/fold.c b/src/fold.c index 0380516d9..cccc17e56 100644 --- a/src/fold.c +++ b/src/fold.c @@ -1809,10 +1809,7 @@ foldAddMarker(lnum, marker, markerlen) return; STRCPY(newline, line); if (p == NULL) - { - STRNCPY(newline + line_len, marker, markerlen); - newline[line_len + markerlen] = NUL; - } + vim_strncpy(newline + line_len, marker, markerlen); else { STRCPY(newline + line_len, cms); diff --git a/src/gui_gtk.c b/src/gui_gtk.c index 5bde7913c..cdd645b65 100644 --- a/src/gui_gtk.c +++ b/src/gui_gtk.c @@ -1476,8 +1476,7 @@ dlg_destroy(GtkWidget *dlg) const char *text; text = gtk_entry_get_text(GTK_ENTRY(dialog_textentry)); - STRNCPY(dialog_textfield, text, IOSIZE); - dialog_textfield[IOSIZE - 1] = NUL; + vim_strncpy(dialog_textfield, (char_u *)text, IOSIZE - 1); } /* Destroy the dialog, will break the waiting loop. */ @@ -2340,8 +2339,7 @@ gui_mch_dialog(int type, /* type of dialog */ text = (char_u *)gtk_entry_get_text(GTK_ENTRY(entry)); text = CONVERT_FROM_UTF8(text); - STRNCPY(textfield, text, IOSIZE); - textfield[IOSIZE - 1] = NUL; + vim_strncpy(textfield, text, IOSIZE - 1); CONVERT_FROM_UTF8_FREE(text); } diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c index cd306093d..d93f7bc75 100644 --- a/src/gui_gtk_x11.c +++ b/src/gui_gtk_x11.c @@ -2325,9 +2325,9 @@ sm_client_die(GnomeClient *client, gpointer data) /* Don't write messages to the GUI anymore */ full_screen = FALSE; - STRNCPY(IObuff, _("Vim: Received \"die\" request from session manager\n"), - IOSIZE); - IObuff[IOSIZE - 1] = NUL; + vim_strncpy(IObuff, + _("Vim: Received \"die\" request from session manager\n"), + IOSIZE - 1); preserve_exit(); } @@ -3527,9 +3527,9 @@ mainwin_destroy_cb(GtkObject *object, gpointer data) if (!exiting) /* only do anything if the destroy was unexpected */ { - STRNCPY(IObuff, _("Vim: Main window unexpectedly destroyed\n"), - IOSIZE); - IObuff[IOSIZE - 1] = NUL; + vim_strncpy(IObuff, + (char_u *)_("Vim: Main window unexpectedly destroyed\n"), + IOSIZE - 1); preserve_exit(); } } diff --git a/src/gui_w32.c b/src/gui_w32.c index 11d0281a6..f0b47172e 100644 --- a/src/gui_w32.c +++ b/src/gui_w32.c @@ -3592,8 +3592,7 @@ gui_mch_tearoff( if (label == NULL) break; - STRNCPY(text, menu->name, nameLen); - text[nameLen] = NUL; + vim_strncpy(text, menu->name, nameLen); text = vim_strchr(text, TAB); /* stop at TAB before actext */ if (text == NULL) text = label + nameLen; /* no actext, use whole name */ diff --git a/src/memline.c b/src/memline.c index 47dc00d84..d1cf71f0d 100644 --- a/src/memline.c +++ b/src/memline.c @@ -698,8 +698,7 @@ set_b0_fname(b0p, buf) /* Systems that cannot translate "~user" back into a path: copy the * file name unmodified. Do use slashes instead of backslashes for * portability. */ - STRNCPY(b0p->b0_fname, buf->b_ffname, B0_FNAME_SIZE); - b0p->b0_fname[B0_FNAME_SIZE - 1] = NUL; + vim_strncpy(b0p->b0_fname, buf->b_ffname, B0_FNAME_SIZE - 1); # ifdef BACKSLASH_IN_FILENAME forward_slash(b0p->b0_fname); # endif @@ -721,10 +720,7 @@ set_b0_fname(b0p, buf) /* If there is no user name or it is too long, don't use "~/" */ if (get_user_name(uname, B0_UNAME_SIZE) == FAIL || (ulen = STRLEN(uname)) + flen > B0_FNAME_SIZE - 1) - { - STRNCPY(b0p->b0_fname, buf->b_ffname, B0_FNAME_SIZE); - b0p->b0_fname[B0_FNAME_SIZE - 1] = NUL; - } + vim_strncpy(b0p->b0_fname, buf->b_ffname, B0_FNAME_SIZE - 1); else { mch_memmove(b0p->b0_fname + ulen + 1, b0p->b0_fname + 1, flen); diff --git a/src/menu.c b/src/menu.c index 08a7314a2..678705694 100644 --- a/src/menu.c +++ b/src/menu.c @@ -1258,8 +1258,7 @@ set_context_in_menu_cmd(xp, cmd, arg, forceit) path_name = alloc((unsigned)(after_dot - arg)); if (path_name == NULL) return NULL; - STRNCPY(path_name, arg, after_dot - arg - 1); - path_name[after_dot - arg - 1] = NUL; + vim_strncpy(path_name, arg, after_dot - arg - 1); } name = path_name; while (name != NULL && *name) diff --git a/src/misc1.c b/src/misc1.c index 29be8e50a..f0de5935a 100644 --- a/src/misc1.c +++ b/src/misc1.c @@ -976,8 +976,7 @@ open_line(dir, flags, old_indent) lead_len = 0; else { - STRNCPY(leader, saved_line, lead_len); - leader[lead_len] = NUL; + vim_strncpy(leader, saved_line, lead_len); /* * Replace leader with lead_repl, right or left adjusted @@ -3345,8 +3344,7 @@ init_homedir() p = vim_strchr(var + 1, '%'); if (p != NULL) { - STRNCPY(NameBuff, var + 1, p - (var + 1)); - NameBuff[p - (var + 1)] = NUL; + vim_strncpy(NameBuff, var + 1, p - (var + 1)); exp = mch_getenv(NameBuff); if (exp != NULL && *exp != NUL && STRLEN(exp) + STRLEN(p) < MAXPATHL) @@ -2532,8 +2532,7 @@ op_change(oap) { if ((ins_text = alloc_check((unsigned)(ins_len + 1))) != NULL) { - STRNCPY(ins_text, firstline + bd.textcol, ins_len); - ins_text[ins_len] = NUL; + vim_strncpy(ins_text, firstline + bd.textcol, (size_t)ins_len); for (linenr = oap->start.lnum + 1; linenr <= oap->end.lnum; linenr++) { diff --git a/src/option.c b/src/option.c index ab0740dd4..30341d60c 100644 --- a/src/option.c +++ b/src/option.c @@ -4318,8 +4318,7 @@ skip: if (errmsg != NULL) { - STRNCPY(IObuff, _(errmsg), IOSIZE - 1); - IObuff[IOSIZE - 1] = NUL; + vim_strncpy(IObuff, (char_u *)_(errmsg), IOSIZE - 1); i = STRLEN(IObuff) + 2; if (i + (arg - startarg) < IOSIZE) { @@ -9365,7 +9364,7 @@ option_value2string(opp, opt_flags) else if ((char_u **)opp->var == &p_pt) str2specialbuf(p_pt, NameBuff, MAXPATHL); else - STRNCPY(NameBuff, varp, MAXPATHL); + vim_strncpy(NameBuff, varp, MAXPATHL - 1); } } diff --git a/src/os_amiga.c b/src/os_amiga.c index 8717825f3..2c2a770e0 100644 --- a/src/os_amiga.c +++ b/src/os_amiga.c @@ -626,7 +626,7 @@ mch_get_host_name(s, len) char_u *s; int len; { - STRNCPY(s, "Amiga", len); + vim_strncpy(s, "Amiga", len - 1); } /* @@ -690,7 +690,7 @@ mch_FullName(fname, buf, len, force) { if (i < len - 1 && (i == 0 || buf[i - 1] != ':')) buf[i++] = '/'; - STRNCPY(buf + i, fname, len - i); + vim_strncpy(buf + i, fname, len - i - 1); } } } diff --git a/src/os_qnx.c b/src/os_qnx.c index 704061a4e..1a7250eab 100644 --- a/src/os_qnx.c +++ b/src/os_qnx.c @@ -148,8 +148,7 @@ clip_mch_set_selection( VimClipboard *cbd ) #endif } - STRNCPY( text_clip, str, len ); - text_clip[ len ] = NUL; + vim_strncpy( text_clip, str, len ); vim_clip[ 1 ] = NUL; diff --git a/src/proto/misc2.pro b/src/proto/misc2.pro index 936f38fad..3f6e2edca 100644 --- a/src/proto/misc2.pro +++ b/src/proto/misc2.pro @@ -36,7 +36,7 @@ char_u *strup_save __ARGS((char_u *orig)); void copy_spaces __ARGS((char_u *ptr, size_t count)); void copy_chars __ARGS((char_u *ptr, size_t count, int c)); void del_trailing_spaces __ARGS((char_u *ptr)); -void vim_strncpy __ARGS((char_u *to, char_u *from, int len)); +void vim_strncpy __ARGS((char_u *to, char_u *from, size_t len)); int copy_option_part __ARGS((char_u **option, char_u *buf, int maxlen, char *sep_chars)); void vim_free __ARGS((void *x)); int vim_stricmp __ARGS((char *s1, char *s2)); diff --git a/src/structs.h b/src/structs.h index b7f39febf..e238d0f6d 100644 --- a/src/structs.h +++ b/src/structs.h @@ -1067,6 +1067,11 @@ struct dictvar_S dict_T *dv_used_prev; /* previous dict in used dicts list */ }; +/* values for b_syn_spell: what to do with toplevel text */ +#define SYNSPL_DEFAULT 0 /* spell check if @Spell not defined */ +#define SYNSPL_TOP 1 /* spell check toplevel text */ +#define SYNSPL_NOTOP 2 /* don't spell check toplevel text */ + /* * buffer: structure that holds information about one file @@ -1429,6 +1434,7 @@ struct file_buffer hashtab_T b_keywtab; /* syntax keywords hash table */ hashtab_T b_keywtab_ic; /* idem, ignore case */ int b_syn_ic; /* ignore case for :syn cmds */ + int b_syn_spell; /* SYNSPL_ values */ garray_T b_syn_patterns; /* table for syntax patterns */ garray_T b_syn_clusters; /* table for syntax clusters */ int b_spell_cluster_id; /* @Spell cluster ID or 0 */ diff --git a/src/syntax.c b/src/syntax.c index 4ecec9b38..54a50612a 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -396,6 +396,7 @@ static char_u *syn_getcurline __ARGS((void)); static int syn_regexec __ARGS((regmmatch_T *rmp, linenr_T lnum, colnr_T col)); static int check_keyword_id __ARGS((char_u *line, int startcol, int *endcol, long *flags, short **next_list, stateitem_T *cur_si)); static void syn_cmd_case __ARGS((exarg_T *eap, int syncing)); +static void syn_cmd_spell __ARGS((exarg_T *eap, int syncing)); static void syntax_sync_clear __ARGS((void)); static void syn_remove_pattern __ARGS((buf_T *buf, int idx)); static void syn_clear_pattern __ARGS((buf_T *buf, int i)); @@ -1698,6 +1699,17 @@ get_syntax_attr(col, can_spell) if (syn_buf->b_sst_array == NULL) return 0; + /* After 'synmaxcol' the attribute is always zero. */ + if (syn_buf->b_p_smc > 0 && col >= syn_buf->b_p_smc) + { + clear_current_state(); +#ifdef FEAT_EVAL + current_id = 0; + current_trans_id = 0; +#endif + return 0; + } + /* Make sure current_state is valid */ if (INVALID_STATE(¤t_state)) validate_current_state(); @@ -2189,13 +2201,12 @@ syn_current_attr(syncing, displaying, can_spell) * set "can_spell" to TRUE if spell checking is supposed to be * done in the current item. */ - if (syn_buf->b_spell_cluster_id == 0) { /* There is no @Spell cluster: Do spelling for items without * @NoSpell cluster. */ if (syn_buf->b_nospell_cluster_id == 0 || current_trans_id == 0) - *can_spell = TRUE; + *can_spell = (syn_buf->b_syn_spell != SYNSPL_NOTOP); else { sps.inc_tag = 0; @@ -2207,9 +2218,11 @@ syn_current_attr(syncing, displaying, can_spell) else { /* The @Spell cluster is defined: Do spelling in items with - * the @Spell cluster. But not when @NoSpell is also there. */ + * the @Spell cluster. But not when @NoSpell is also there. + * At the toplevel only spell check when ":syn spell toplevel" + * was used. */ if (current_trans_id == 0) - *can_spell = FALSE; + *can_spell = (syn_buf->b_syn_spell == SYNSPL_TOP); else { sps.inc_tag = 0; @@ -2248,8 +2261,11 @@ syn_current_attr(syncing, displaying, can_spell) } } else if (can_spell != NULL) - /* Only do spelling when there is no @Spell cluster. */ - *can_spell = (syn_buf->b_spell_cluster_id == 0); + /* Default: Only do spelling when there is no @Spell cluster or when + * ":syn spell toplevel" was used. */ + *can_spell = syn_buf->b_syn_spell == SYNSPL_DEFAULT + ? (syn_buf->b_spell_cluster_id == 0) + : (syn_buf->b_syn_spell == SYNSPL_TOP); /* nextgroup ends at end of line, unless "skipnl" or "skipemtpy" present */ if (current_next_list != NULL @@ -3050,8 +3066,7 @@ check_keyword_id(line, startcol, endcolp, flagsp, next_listp, cur_si) * Must make a copy of the keyword, so we can add a NUL and make it * lowercase. */ - STRNCPY(keyword, kwp, kwlen); - keyword[kwlen] = NUL; + vim_strncpy(keyword, kwp, kwlen); /* * Try twice: @@ -3120,6 +3135,33 @@ syn_cmd_case(eap, syncing) } /* + * Handle ":syntax spell" command. + */ +/* ARGSUSED */ + static void +syn_cmd_spell(eap, syncing) + exarg_T *eap; + int syncing; /* not used */ +{ + char_u *arg = eap->arg; + char_u *next; + + eap->nextcmd = find_nextcmd(arg); + if (eap->skip) + return; + + next = skiptowhite(arg); + if (STRNICMP(arg, "toplevel", 8) == 0 && next - arg == 8) + curbuf->b_syn_spell = SYNSPL_TOP; + else if (STRNICMP(arg, "notoplevel", 10) == 0 && next - arg == 10) + curbuf->b_syn_spell = SYNSPL_NOTOP; + else if (STRNICMP(arg, "default", 4) == 0 && next - arg == 4) + curbuf->b_syn_spell = SYNSPL_DEFAULT; + else + EMSG2(_("E390: Illegal argument: %s"), arg); +} + +/* * Clear all syntax info for one buffer. */ void @@ -3129,6 +3171,7 @@ syntax_clear(buf) int i; buf->b_syn_ic = FALSE; /* Use case, by default */ + buf->b_syn_spell = SYNSPL_DEFAULT; /* default spell checking */ buf->b_syn_containedin = FALSE; /* free the keywords */ @@ -5519,8 +5562,7 @@ get_id_list(arg, keylen, list) failed = TRUE; break; } - STRNCPY(name + 1, p, end - p); - name[end - p + 1] = NUL; + vim_strncpy(name + 1, p, end - p); if ( STRCMP(name + 1, "ALLBUT") == 0 || STRCMP(name + 1, "ALL") == 0 || STRCMP(name + 1, "TOP") == 0 @@ -5806,6 +5848,7 @@ static struct subcommand subcommands[] = {"off", syn_cmd_off}, {"region", syn_cmd_region}, {"reset", syn_cmd_reset}, + {"spell", syn_cmd_spell}, {"sync", syn_cmd_sync}, {"", syn_cmd_list}, {NULL, NULL} @@ -8131,8 +8174,7 @@ syn_name2id(name) /* Avoid using stricmp() too much, it's slow on some systems */ /* Avoid alloc()/free(), these are slow too. ID names over 200 chars * don't deserve to be found! */ - STRNCPY(name_u, name, 199); - name_u[199] = NUL; + vim_strncpy(name_u, name, 199); vim_strup(name_u); for (i = highlight_ga.ga_len; --i >= 0; ) if (HL_TABLE()[i].sg_name_u != NULL diff --git a/src/testdir/test51.in b/src/testdir/test51.in index a158c8691..49c88ec7e 100644 --- a/src/testdir/test51.in +++ b/src/testdir/test51.in @@ -29,6 +29,8 @@ STARTTEST :%s/ctermbg=\d*/ctermbg=3/ :" filter out possibly translated error message :%s/E475: [^:]*:/E475:/ +:" fix the fileformat +:set ff& :wq! ENDTEST diff --git a/src/testdir/test58.in b/src/testdir/test58.in index 9e1427067..e03c8e05c 100644 --- a/src/testdir/test58.in +++ b/src/testdir/test58.in @@ -7,9 +7,9 @@ STARTTEST :set enc=latin1 :e! :" 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 -:mkspell Xtest Xtest +gg:/^affstart1/+1,/^affend1/-1w! Xtest.aff +gg:/^dicstart/+1,/^dicend/-1w! Xtest.dic +:mkspell! Xtest Xtest :" :" use that spell file :set spl=Xtest.latin1.spl @@ -71,30 +71,29 @@ gg:/^affstart2/+1,/^affend2/-1w! Xtest.aff :" also use an addition file gg:/^addstart/+1,/^addend/-1w! Xtest.latin1.add :mkspell! Xtest.latin1.add.spl Xtest.latin1.add -:set spl=en :set spellfile=Xtest.latin1.add /^test2: ]s:let str = spellbadword() :$put =str -:set spl=en_us +:set spl=Xtest_us.latin1.spl /^test2: ]smm:let str = spellbadword() :$put =str `m]s:let str = spellbadword() :$put =str -:set spl=en_gb +:set spl=Xtest_gb.latin1.spl /^test2: ]smm:let str = spellbadword() :$put =str `m]s:let str = spellbadword() :$put =str -:set spl=en_nz +:set spl=Xtest_nz.latin1.spl /^test2: ]smm:let str = spellbadword() :$put =str `m]s:let str = spellbadword() :$put =str -:set spl=en_ca +:set spl=Xtest_ca.latin1.spl /^test2: ]smm:let str = spellbadword() :$put =str diff --git a/src/version.c b/src/version.c index e52839c8b..165ead098 100644 --- a/src/version.c +++ b/src/version.c @@ -1159,11 +1159,9 @@ do_intro_line(row, mesg, add_version, attr) if (*mesg == ' ') { - STRNCPY(modby, _("Modified by "), MODBY_LEN); - modby[MODBY_LEN - 1] = NUL; + vim_strncpy(modby, _("Modified by "), MODBY_LEN - 1); l = STRLEN(modby); - STRNCPY(modby + l, MODIFIED_BY, MODBY_LEN - l); - modby[MODBY_LEN - 1] = NUL; + vim_strncpy(modby + l, MODIFIED_BY, MODBY_LEN - l - 1); mesg = modby; } #endif diff --git a/src/version.h b/src/version.h index 1fa3fbac5..a5695f7a1 100644 --- a/src/version.h +++ b/src/version.h @@ -36,5 +36,5 @@ #define VIM_VERSION_NODOT "vim70aa" #define VIM_VERSION_SHORT "7.0aa" #define VIM_VERSION_MEDIUM "7.0aa ALPHA" -#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 12)" -#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 12, compiled " +#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 18)" +#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 18, compiled " |