diff options
49 files changed, 1557 insertions, 304 deletions
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt index 31feaf56e..83f50f183 100644 --- a/runtime/doc/change.txt +++ b/runtime/doc/change.txt @@ -1,4 +1,4 @@ -*change.txt* For Vim version 7.0aa. Last change: 2005 Jun 16 +*change.txt* For Vim version 7.0aa. Last change: 2005 Jun 25 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1527,4 +1527,8 @@ found here: |sort()|. Note that using ":sort" with ":global" doesn't sort the matching lines, it's quite useless. +The details about sorting depend on the library function used. There is no +guarantee that sorting is "stable" or obeys the current locale. You will have +to try it out. + vim:tw=78:ts=8:ft=help:norl: diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 83f81ad68..8a96f9875 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 7.0aa. Last change: 2005 Jun 20 +*eval.txt* For Vim version 7.0aa. Last change: 2005 Jun 25 VIM REFERENCE MANUAL by Bram Moolenaar @@ -3775,10 +3775,16 @@ spellsuggest({word} [, {max}]) {word} can be a badly spelled word followed by other text. This allows for joining two words that were split. The - suggestions then also include the following text. + suggestions also include the following text, thus you can + replace a line. + + {word} may also be a good word. Similar words will then be + returned. {word} itself is also included, most likely as the + first entry, thus this can be used to check spelling. The spelling information for the current window is used. The - 'spell' option must be set and 'spelllang' is relevant. + 'spell' option must be set and the value of 'spelllang' is + used. split({expr} [, {pattern} [, {keepempty}]]) *split()* diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt index 5b9a54107..c08f12303 100644 --- a/runtime/doc/repeat.txt +++ b/runtime/doc/repeat.txt @@ -1,4 +1,4 @@ -*repeat.txt* For Vim version 7.0aa. Last change: 2005 Jun 16 +*repeat.txt* For Vim version 7.0aa. Last change: 2005 Jun 25 VIM REFERENCE MANUAL by Bram Moolenaar @@ -515,6 +515,9 @@ DELETING BREAKPOINTS Delete breakpoint {nr}. Use |:breaklist| to see the number of each breakpoint. +:breakd[el] * + Delete all breakpoints. + :breakd[el] func [lnum] {name} Delete a breakpoint in a function. diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt index 399fc679c..aaef05f10 100644 --- a/runtime/doc/spell.txt +++ b/runtime/doc/spell.txt @@ -1,4 +1,4 @@ -*spell.txt* For Vim version 7.0aa. Last change: 2005 Jun 23 +*spell.txt* For Vim version 7.0aa. Last change: 2005 Jun 25 VIM REFERENCE MANUAL by Bram Moolenaar @@ -71,9 +71,15 @@ zw Add word under the cursor as a wrong (bad) word to *:spellw* *:spellwrong* :spellw[rong] {word} Add [word} as a wrong (bad) word to 'spellfile'. -After adding a word to 'spellfile' its associated ".spl" file will -automatically be updated. More details about the 'spellfile' format below -|spell-wordlist-format|. +After adding a word to 'spellfile' with the above commands its associated +".spl" file will automatically be updated. If you edit 'spellfile' manually +you need to use the |:mkspell| command. This sequence of commands mostly +works well: > + :exe 'e ' . &spellfile +< (make changes to the spell file) > + :mkspell! % + +More details about the 'spellfile' format below |spell-wordlist-format|. Finding suggestions for bad words: @@ -208,7 +214,7 @@ include characters like '-' in 'iskeyword'. The word characters do depend on The table with word characters is stored in the main .spl file. Therefore it matters what the current locale is when generating it! A .add.spl file does -not contain a word table. +not contain a word table though. A word that starts with a digit is always ignored. That includes hex numbers in the form 0xff and 0XFF. diff --git a/runtime/doc/tags b/runtime/doc/tags index c4d5d78ff..3f0df20b7 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -2408,6 +2408,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME* :source_crnl repeat.txt /*:source_crnl* :sp windows.txt /*:sp* :spe spell.txt /*:spe* +:spelld spell.txt /*:spelld* +:spelldump spell.txt /*:spelldump* :spellgood spell.txt /*:spellgood* :spellw spell.txt /*:spellw* :spellwrong spell.txt /*:spellwrong* @@ -3703,6 +3705,7 @@ E748 repeat.txt /*E748* E749 eval.txt /*E749* E75 vi_diff.txt /*E75* E750 repeat.txt /*E750* +E751 spell.txt /*E751* E754 spell.txt /*E754* E756 spell.txt /*E756* E758 spell.txt /*E758* @@ -6272,6 +6275,7 @@ spell-affix-mbyte spell.txt /*spell-affix-mbyte* spell-affix-vim spell.txt /*spell-affix-vim* spell-dic-format spell.txt /*spell-dic-format* spell-file-format spell.txt /*spell-file-format* +spell-load spell.txt /*spell-load* spell-mkspell spell.txt /*spell-mkspell* spell-quickstart spell.txt /*spell-quickstart* spell-syntax spell.txt /*spell-syntax* diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt index 9b617802a..f9a221754 100644 --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -98,6 +98,12 @@ PLANNED FOR VERSION 7.0: - Add SPELLCHECKER, with support for many languages. - Spell checking code todo's: + - Special handling of ' and -: define in the .aff file. + Aspell does this with "special". + - Support user function to make suggestions: + :set spellsuggest=MySuggest,fast + Also support a list with common mistakes? + - For "z?" a "replace all" mechanism would be welcome. - Add hl groups to 'spelllang'? :set spelllang=en_us,en-rare/SpellRare,en-math/SpellMath More complicated: Regions with different languages? E.g. comments diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt index 40002dddb..f9a634c94 100644 --- a/runtime/doc/version7.txt +++ b/runtime/doc/version7.txt @@ -1,4 +1,4 @@ -*version7.txt* For Vim version 7.0aa. Last change: 2005 Jun 21 +*version7.txt* For Vim version 7.0aa. Last change: 2005 Jun 25 VIM REFERENCE MANUAL by Bram Moolenaar @@ -681,6 +681,11 @@ file. When running the tests and one of them fails to produce "test.out" the following tests are still executed. This helps when running out of memory. +When compiling with EXITFREE defined and the ccmalloc library it is possible +to detect memory leaks. Some memory will always reported as leaked, such as +allocated by X11 library functions and the memory allocated in alloc_cmdbuff() +to store the ":quit" command. + ============================================================================== BUG FIXES *bug-fixes-7* diff --git a/runtime/indent/lua.vim b/runtime/indent/lua.vim index ace7fd1a7..ffe03be4a 100644 --- a/runtime/indent/lua.vim +++ b/runtime/indent/lua.vim @@ -2,7 +2,7 @@ " Language: Lua script " Maintainer: Marcus Aurelius Farias <marcus.cf 'at' bol.com.br> " First Author: Max Ischenko <mfi 'at' ukr.net> -" Last Change: 2005 Jun 09 +" Last Change: 2005 Jun 23 " Only load this indent file when no other was loaded. if exists("b:did_indent") @@ -10,19 +10,19 @@ if exists("b:did_indent") endif let b:did_indent = 1 -" Only define the function once. -if exists("*GetLuaIndent") - finish -endif - setlocal indentexpr=GetLuaIndent() " To make Vim call GetLuaIndent() when it finds '\s*end' or '\s*until' -" on the current line (else is default). +" on the current line ('else' is default and includes 'elseif'). setlocal indentkeys+=0=end,0=until setlocal autoindent +" Only define the function once. +if exists("*GetLuaIndent") + finish +endif + function! GetLuaIndent() " Find a non-blank line above the current line. let lnum = prevnonblank(v:lnum - 1) @@ -32,18 +32,19 @@ function! GetLuaIndent() return 0 endif - " Add a 'shiftwidth' after lines beginning with: - " function, if, for, while, repeat, else, elseif, '{' + " Add a 'shiftwidth' after lines that start a block: + " 'function', 'if', 'for', 'while', 'repeat', 'else', 'elseif', '{' let ind = indent(lnum) let flag = 0 let prevline = getline(lnum) - if prevline =~ '^\s*\%(if\>\|for\>\|while\>\|repeat\>\|else\>\|elseif\>\|do\>\)' || prevline =~ '{\s*$' || prevline =~ '\<function\>\s*\%(\k\|[.:]\)\{-}\s*(' + if prevline =~ '^\s*\%(if\>\|for\>\|while\>\|repeat\>\|else\>\|elseif\>\|do\>\|then\>\)' + \ || prevline =~ '{\s*$' || prevline =~ '\<function\>\s*\%(\k\|[.:]\)\{-}\s*(' let ind = ind + &shiftwidth let flag = 1 endif " Subtract a 'shiftwidth' after lines ending with - " 'end' when they begin with while, if, for, etc. + " 'end' when they begin with 'while', 'if', 'for', etc. too. if flag == 1 && prevline =~ '\<end\>\|\<until\>' let ind = ind - &shiftwidth endif diff --git a/runtime/spell/en.ascii.spl b/runtime/spell/en.ascii.spl Binary files differindex 739899cd1..54630e7a6 100644 --- a/runtime/spell/en.ascii.spl +++ b/runtime/spell/en.ascii.spl diff --git a/src/edit.c b/src/edit.c index ebfe7fd69..c91170215 100644 --- a/src/edit.c +++ b/src/edit.c @@ -4985,6 +4985,15 @@ set_last_insert(c) } } +#if defined(EXITFREE) || defined(PROTO) + void +free_last_insert() +{ + vim_free(last_insert); + last_insert = NULL; +} +#endif + /* * Add character "c" to buffer "s". Escape the special meaning of K_SPECIAL * and CSI. Handle multi-byte characters. diff --git a/src/eval.c b/src/eval.c index dc38936aa..f3e31e281 100644 --- a/src/eval.c +++ b/src/eval.c @@ -2588,7 +2588,10 @@ eval_for_line(arg, errp, nextcmdp, skip) { l = tv.vval.v_list; if (tv.v_type != VAR_LIST || l == NULL) + { EMSG(_(e_listreq)); + clear_tv(&tv); + } else { fi->fi_list = l; @@ -2640,7 +2643,10 @@ free_for_info(fi_void) forinfo_T *fi = (forinfo_T *)fi_void; if (fi != NULL && fi->fi_list != NULL) + { list_rem_watch(fi->fi_list, &fi->fi_lw); + list_unref(fi->fi_list); + } vim_free(fi); } diff --git a/src/ex_cmds.c b/src/ex_cmds.c index 834614566..9daa8f671 100644 --- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -789,6 +789,16 @@ ex_copy(line1, line2, n) msgmore((long)count); } +static char_u *prevcmd = NULL; /* the previous command */ + +#if defined(EXITFREE) || defined(PROTO) + void +free_prev_shellcmd() +{ + vim_free(prevcmd); +} +#endif + /* * Handle the ":!cmd" command. Also for ":r !cmd" and ":w !cmd" * Bangs in the argument are replaced with the previously entered command. @@ -807,7 +817,6 @@ do_bang(addr_count, eap, forceit, do_in, do_out) char_u *arg = eap->arg; /* command */ linenr_T line1 = eap->line1; /* start of range */ linenr_T line2 = eap->line2; /* end of range */ - static char_u *prevcmd = NULL; /* the previous command */ char_u *newcmd = NULL; /* the new command */ int free_newcmd = FALSE; /* need to free() newcmd */ int ins_prevcmd; @@ -5001,6 +5010,14 @@ write_viminfo_sub_string(fp) } #endif /* FEAT_VIMINFO */ +#if defined(EXITFREE) || defined(PROTO) + void +free_old_sub() +{ + vim_free(old_sub); +} +#endif + #if (defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)) || defined(PROTO) /* * Set up for a tagpreview. diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c index b86e4812e..45bd2ee63 100644 --- a/src/ex_cmds2.c +++ b/src/ex_cmds2.c @@ -600,6 +600,7 @@ ex_breakdel(eap) struct debuggy *bp, *bpi; int nr; int todel = -1; + int del_all = FALSE; int i; linenr_T best_lnum = 0; @@ -614,6 +615,11 @@ ex_breakdel(eap) break; } } + else if (*eap->arg == '*') + { + todel = 0; + del_all = TRUE; + } else { /* ":breakdel {func|file} [lnum] {name}" */ @@ -640,15 +646,18 @@ ex_breakdel(eap) if (todel < 0) EMSG2(_("E161: Breakpoint not found: %s"), eap->arg); else - { - vim_free(BREAKP(todel).dbg_name); - vim_free(BREAKP(todel).dbg_prog); - --dbg_breakp.ga_len; - if (todel < dbg_breakp.ga_len) - mch_memmove(&BREAKP(todel), &BREAKP(todel + 1), - (dbg_breakp.ga_len - todel) * sizeof(struct debuggy)); - ++debug_tick; - } + while (dbg_breakp.ga_len > 0) + { + vim_free(BREAKP(todel).dbg_name); + vim_free(BREAKP(todel).dbg_prog); + --dbg_breakp.ga_len; + if (todel < dbg_breakp.ga_len) + mch_memmove(&BREAKP(todel), &BREAKP(todel + 1), + (dbg_breakp.ga_len - todel) * sizeof(struct debuggy)); + ++debug_tick; + if (!del_all) + break; + } } /* diff --git a/src/ex_eval.c b/src/ex_eval.c index 485721b9c..eaa5dec8c 100644 --- a/src/ex_eval.c +++ b/src/ex_eval.c @@ -917,8 +917,8 @@ ex_endif(eap) * Doing this here prevents an exception for a parsing error being * discarded by throwing the interrupt exception later on. */ - if (!(eap->cstack->cs_flags[eap->cstack->cs_idx] & CSF_TRUE) && - dbg_check_skipped(eap)) + if (!(eap->cstack->cs_flags[eap->cstack->cs_idx] & CSF_TRUE) + && dbg_check_skipped(eap)) (void)do_intthrow(eap->cstack); --eap->cstack->cs_idx; @@ -2108,8 +2108,7 @@ cleanup_conditionals(cstack, searched_cond, inclusive) * ":return", or ":finish" before the finally clause. We must not * discard it, unless an error or interrupt occurred afterwards. */ - if (did_emsg || got_int || - (cstack->cs_flags[idx] & CSF_FINALLY)) + if (did_emsg || got_int || (cstack->cs_flags[idx] & CSF_FINALLY)) { switch (cstack->cs_pending[idx]) { @@ -2194,7 +2193,7 @@ cleanup_conditionals(cstack, searched_cond, inclusive) * memory used to store it. */ if ((cstack->cs_flags[idx] & CSF_TRY) - && (cstack->cs_flags[idx] & CSF_SILENT)) + && (cstack->cs_flags[idx] & CSF_SILENT)) { eslist_T *elem; diff --git a/src/ex_getln.c b/src/ex_getln.c index 86da1aa88..d221249e7 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -2307,6 +2307,18 @@ realloc_cmdbuff(len) return OK; } +#if defined(FEAT_ARABIC) || defined(PROTO) +static char_u *arshape_buf = NULL; + +# if defined(EXITFREE) || defined(PROTO) + void +free_cmdline_buf() +{ + vim_free(arshape_buf); +} +# endif +#endif + /* * Draw part of the cmdline at the current cursor position. But draw stars * when cmdline_star is TRUE. @@ -2333,7 +2345,6 @@ draw_cmdline(start, len) #ifdef FEAT_ARABIC if (p_arshape && !p_tbidi && enc_utf8 && len > 0) { - static char_u *buf; static int buflen = 0; char_u *p; int j; @@ -2354,10 +2365,10 @@ draw_cmdline(start, len) { /* Re-allocate the buffer. We keep it around to avoid a lot of * alloc()/free() calls. */ - vim_free(buf); + vim_free(arshape_buf); buflen = len * 2; - buf = alloc(buflen); - if (buf == NULL) + arshape_buf = alloc(buflen); + if (arshape_buf == NULL) return; /* out of memory */ } @@ -2394,23 +2405,24 @@ draw_cmdline(start, len) u8c = arabic_shape(u8c, NULL, &u8c_c1, pc, pc1, nc); - newlen += (*mb_char2bytes)(u8c, buf + newlen); + newlen += (*mb_char2bytes)(u8c, arshape_buf + newlen); if (u8c_c1 != 0) { - newlen += (*mb_char2bytes)(u8c_c1, buf + newlen); + newlen += (*mb_char2bytes)(u8c_c1, arshape_buf + newlen); if (u8c_c2 != 0) - newlen += (*mb_char2bytes)(u8c_c2, buf + newlen); + newlen += (*mb_char2bytes)(u8c_c2, + arshape_buf + newlen); } } else { prev_c = u8c; - mch_memmove(buf + newlen, p, mb_l); + mch_memmove(arshape_buf + newlen, p, mb_l); newlen += mb_l; } } - msg_outtrans_len(buf, newlen); + msg_outtrans_len(arshape_buf, newlen); } else #endif diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c index 37858dcc8..cd306093d 100644 --- a/src/gui_gtk_x11.c +++ b/src/gui_gtk_x11.c @@ -598,6 +598,14 @@ gui_mch_prepare(int *argc, char **argv) gui_argv[gui_argc] = NULL; } +#if defined(EXITFREE) || defined(PROTO) + void +gui_mch_free_all() +{ + vim_free(gui_argv); +} +#endif + /* * This should be maybe completely removed. * Doesn't seem possible, since check_copy_area() relies on diff --git a/src/main.c b/src/main.c index 2bed19281..1b64c3435 100644 --- a/src/main.c +++ b/src/main.c @@ -104,6 +104,7 @@ main #endif int n_commands = 0; /* no. of commands from + or -c */ char_u *commands[MAX_ARG_CMDS]; /* commands from + or -c option */ + char_u cmds_tofree[MAX_ARG_CMDS]; /* commands that need free() */ #ifdef FEAT_PRECOMMANDS int p_commands = 0; /* no. of commands from --cmd */ char_u *pre_commands[MAX_ARG_CMDS]; /* commands from --cmd option */ @@ -191,6 +192,8 @@ main TIME_MSG("GUI prepared"); #endif + vim_memset(cmds_tofree, 0, sizeof(cmds_tofree)); + /* Init the table of Normal mode commands. */ init_normal_cmds(); @@ -930,6 +933,7 @@ main if (p == NULL) mch_exit(2); sprintf((char *)p, "so %s", a); + cmds_tofree[n_commands] = TRUE; commands[n_commands++] = p; } else @@ -2013,7 +2017,11 @@ scripterror: current_SID = SID_CARG; #endif for (i = 0; i < n_commands; ++i) + { do_cmdline_cmd(commands[i]); + if (cmds_tofree[i]) + vim_free(commands[i]); + } sourcing_name = NULL; #ifdef FEAT_EVAL current_SID = 0; diff --git a/src/misc1.c b/src/misc1.c index 30d7696bd..87c0f1a0a 100644 --- a/src/misc1.c +++ b/src/misc1.c @@ -3406,6 +3406,14 @@ init_homedir() } } +#if defined(EXITFREE) || defined(PROTO) + void +free_homedir() +{ + vim_free(homedir); +} +#endif + /* * Expand environment variable with path name. * "~/" is also expanded, using $HOME. For Unix "~user/" is expanded. diff --git a/src/misc2.c b/src/misc2.c index 4fdbc2798..fd882ff99 100644 --- a/src/misc2.c +++ b/src/misc2.c @@ -16,6 +16,10 @@ # include <fcntl.h> /* for chdir() */ #endif +static char_u *username = NULL; /* cached result of mch_get_user_name() */ + +static char_u *ff_expand_buffer = NULL; /* used for expanding filenames */ + #if defined(FEAT_VIRTUALEDIT) || defined(PROTO) static int coladvance2 __ARGS((pos_T *pos, int addspaces, int finetune, colnr_T wcol)); @@ -922,15 +926,29 @@ do_outofmem_msg(size) } #if defined(EXITFREE) || defined(PROTO) + +# if defined(FEAT_SEARCHPATH) +static void free_findfile __ARGS((void)); +# endif + /* * Free everything that we allocated. * Can be used to detect memory leaks, e.g., with ccmalloc. - * Doesn't do nearly all that is required... + * NOTE: This is tricky! Things are freed that functions depend on. Don't be + * surprised if Vim crashes... + * Some things can't be freed, esp. things local to a library function. */ void free_all_mem() { buf_T *buf, *nextbuf; + static int entered = FALSE; + + /* When we cause a crash here it is caught and Vim tries to exit cleanly. + * Don't try freeing everything again. */ + if (entered) + return; + entered = TRUE; ++autocmd_block; /* don't want to trigger autocommands here */ @@ -939,20 +957,30 @@ free_all_mem() spell_free_all(); # endif -#if defined(FEAT_USR_CMDS) +# if defined(FEAT_USR_CMDS) /* Clear user commands (before deleting buffers). */ ex_comclear(NULL); -#endif +# endif # ifdef FEAT_MENU /* Clear menus. */ do_cmdline_cmd((char_u *)"aunmenu *"); # endif - /* Clear mappings and abbreviations. */ + /* Clear mappings, abbreviations, breakpoints. */ do_cmdline_cmd((char_u *)"mapclear"); do_cmdline_cmd((char_u *)"mapclear!"); do_cmdline_cmd((char_u *)"abclear"); +# if defined(FEAT_EVAL) + do_cmdline_cmd((char_u *)"breakdel *"); +# endif + +# ifdef FEAT_TITLE + free_titles(); +# endif +# if defined(FEAT_SEARCHPATH) + free_findfile(); +# endif /* Obviously named calls. */ # if defined(FEAT_EVAL) @@ -963,11 +991,44 @@ free_all_mem() free_all_autocmds(); # endif clear_termcodes(); + free_all_options(); + free_all_marks(); + alist_clear(&global_alist); + free_homedir(); + free_search_patterns(); + free_old_sub(); + free_last_insert(); + free_prev_shellcmd(); + free_regexp_stuff(); + free_tag_stuff(); + free_cd_dir(); + set_expr_line(NULL); + diff_clear(); + + /* Free some global vars. */ + vim_free(username); + vim_free(clip_exclude_prog); + vim_free(last_cmdline); + vim_free(new_last_cmdline); + vim_free(keep_msg); + vim_free(ff_expand_buffer); /* Clear cmdline history. */ p_hi = 0; init_history(); +#ifdef FEAT_QUICKFIX + qf_free_all(); +#endif + + /* Close all script inputs. */ + close_all_scripts(); + +#if defined(FEAT_WINDOWS) + /* Destroy all windows. Must come before freeing buffers. */ + win_free_all(); +#endif + /* Free all buffers. */ for (buf = firstbuf; buf != NULL; ) { @@ -979,9 +1040,8 @@ free_all_mem() buf = firstbuf; } -#if defined(FEAT_WINDOWS) - /* Destroy all windows. */ - win_free_all(); +#ifdef FEAT_ARABIC + free_cmdline_buf(); #endif /* Clear registers. */ @@ -989,6 +1049,10 @@ free_all_mem() ResetRedobuff(); ResetRedobuff(); +#ifdef FEAT_CLIENTSERVER + vim_free(serverDelayedStartName); +#endif + /* highlight info */ free_highlight(); @@ -1006,12 +1070,18 @@ free_all_mem() eval_clear(); # endif + free_termoptions(); + /* screenlines (can't display anything now!) */ free_screenlines(); #if defined(USE_XSMP) xsmp_close(); #endif +#ifdef FEAT_GUI_GTK + gui_mch_free_all(); +#endif + clear_hl_tables(); vim_free(IObuff); vim_free(NameBuff); @@ -3642,11 +3712,9 @@ typedef struct ff_search_ctx_T char_u **ffsc_stopdirs_v; #endif int ffsc_need_dir; -}ff_search_ctx_T; -static ff_search_ctx_T *ff_search_ctx = NULL; +} ff_search_ctx_T; -/* used for expanding filenames */ -static char_u *ff_expand_buffer = NULL; +static ff_search_ctx_T *ff_search_ctx = NULL; /* locally needed functions */ #ifdef FEAT_PATH_EXTRA @@ -3994,8 +4062,7 @@ vim_findfile_init(path, filename, stopdirs, level, free_visited, need_dir, ff_expand_buffer[len++] = *wc_part++; } ff_expand_buffer[len] = NUL; - ff_search_ctx->ffsc_wc_path = - vim_strsave(ff_expand_buffer); + ff_search_ctx->ffsc_wc_path = vim_strsave(ff_expand_buffer); if (ff_search_ctx->ffsc_wc_path == NULL) goto error_return; @@ -4085,7 +4152,7 @@ vim_findfile_stopdir(buf) vim_findfile_cleanup(ctx) void *ctx; { - if (NULL == ctx) + if (ctx == NULL) return; ff_search_ctx = ctx; @@ -4452,8 +4519,8 @@ vim_findfile(search_ctx) * still wildcards left, push the directories for further * search */ - for (i = ctx->ffs_filearray_cur; i < ctx->ffs_filearray_size; - ++i) + for (i = ctx->ffs_filearray_cur; + i < ctx->ffs_filearray_size; ++i) { if (!mch_isdir(ctx->ffs_filearray[i])) continue; /* not a directory */ @@ -4474,7 +4541,8 @@ vim_findfile(search_ctx) */ if (STRNCMP(ctx->ffs_wc_path, "**", 2) == 0) { - for (i = ctx->ffs_filearray_cur; i < ctx->ffs_filearray_size; ++i) + for (i = ctx->ffs_filearray_cur; + i < ctx->ffs_filearray_size; ++i) { if (fnamecmp(ctx->ffs_filearray[i], ctx->ffs_fix_path) == 0) continue; /* don't repush same directory */ @@ -4875,8 +4943,7 @@ ff_push(ctx) ff_stack_T *ctx; { /* check for NULL pointer, not to return an error to the user, but - * to prevent a crash - */ + * to prevent a crash */ if (ctx != NULL) { ctx->ffs_prev = ff_search_ctx->ffsc_stack_ptr; @@ -5045,6 +5112,18 @@ find_file_in_path(ptr, len, options, first, rel_fname) FALSE, rel_fname); } +static char_u *ff_file_to_find = NULL; +static void *fdip_search_ctx = NULL; + +#if defined(EXITFREE) + static void +free_findfile() +{ + vim_free(ff_file_to_find); + vim_findfile_cleanup(fdip_search_ctx); +} +#endif + /* * Find the directory name "ptr[len]" in the path. * @@ -5076,9 +5155,7 @@ find_file_in_path_option(ptr, len, options, first, path_option, need_dir, rel_fn int need_dir; /* looking for directory name */ char_u *rel_fname; /* file name we are looking relative to. */ { - static void *search_ctx = NULL; static char_u *dir; - static char_u *file_to_find = NULL; static int did_findfile_init = FALSE; char_u save_char; char_u *file_name = NULL; @@ -5100,33 +5177,33 @@ find_file_in_path_option(ptr, len, options, first, path_option, need_dir, rel_fn expand_env(ptr, NameBuff, MAXPATHL); ptr[len] = save_char; - vim_free(file_to_find); - file_to_find = vim_strsave(NameBuff); - if (file_to_find == NULL) /* out of memory */ + vim_free(ff_file_to_find); + ff_file_to_find = vim_strsave(NameBuff); + if (ff_file_to_find == NULL) /* out of memory */ { file_name = NULL; goto theend; } } - rel_to_curdir = (file_to_find[0] == '.' - && (file_to_find[1] == NUL - || vim_ispathsep(file_to_find[1]) - || (file_to_find[1] == '.' - && (file_to_find[2] == NUL - || vim_ispathsep(file_to_find[2]))))); - if (vim_isAbsName(file_to_find) + rel_to_curdir = (ff_file_to_find[0] == '.' + && (ff_file_to_find[1] == NUL + || vim_ispathsep(ff_file_to_find[1]) + || (ff_file_to_find[1] == '.' + && (ff_file_to_find[2] == NUL + || vim_ispathsep(ff_file_to_find[2]))))); + if (vim_isAbsName(ff_file_to_find) /* "..", "../path", "." and "./path": don't use the path_option */ || rel_to_curdir #if defined(MSWIN) || defined(MSDOS) || defined(OS2) /* handle "\tmp" as absolute path */ - || vim_ispathsep(file_to_find[0]) + || vim_ispathsep(ff_file_to_find[0]) /* handle "c:name" as absulute path */ - || (file_to_find[0] != NUL && file_to_find[1] == ':') + || (ff_file_to_find[0] != NUL && ff_file_to_find[1] == ':') #endif #ifdef AMIGA /* handle ":tmp" as absolute path */ - || file_to_find[0] == ':' + || ff_file_to_find[0] == ':' #endif ) { @@ -5140,9 +5217,9 @@ find_file_in_path_option(ptr, len, options, first, path_option, need_dir, rel_fn int l; int run; - if (path_with_url(file_to_find)) + if (path_with_url(ff_file_to_find)) { - file_name = vim_strsave(file_to_find); + file_name = vim_strsave(ff_file_to_find); goto theend; } @@ -5150,7 +5227,7 @@ find_file_in_path_option(ptr, len, options, first, path_option, need_dir, rel_fn * Otherwise or when this fails use the current directory. */ for (run = 1; run <= 2; ++run) { - l = (int)STRLEN(file_to_find); + l = (int)STRLEN(ff_file_to_find); if (run == 1 && rel_to_curdir && (options & FNAME_REL) @@ -5158,12 +5235,12 @@ find_file_in_path_option(ptr, len, options, first, path_option, need_dir, rel_fn && STRLEN(rel_fname) + l < MAXPATHL) { STRCPY(NameBuff, rel_fname); - STRCPY(gettail(NameBuff), file_to_find); + STRCPY(gettail(NameBuff), ff_file_to_find); l = (int)STRLEN(NameBuff); } else { - STRCPY(NameBuff, file_to_find); + STRCPY(NameBuff, ff_file_to_find); run = 2; } @@ -5203,7 +5280,7 @@ find_file_in_path_option(ptr, len, options, first, path_option, need_dir, rel_fn if (first == TRUE) { /* vim_findfile_free_visited can handle a possible NULL pointer */ - vim_findfile_free_visited(search_ctx); + vim_findfile_free_visited(fdip_search_ctx); dir = path_option; did_findfile_init = FALSE; } @@ -5213,7 +5290,7 @@ find_file_in_path_option(ptr, len, options, first, path_option, need_dir, rel_fn if (did_findfile_init) { ff_search_ctx->ffsc_need_dir = need_dir; - file_name = vim_findfile(search_ctx); + file_name = vim_findfile(fdip_search_ctx); ff_search_ctx->ffsc_need_dir = FALSE; if (file_name != NULL) break; @@ -5228,8 +5305,8 @@ find_file_in_path_option(ptr, len, options, first, path_option, need_dir, rel_fn { /* We searched all paths of the option, now we can * free the search context. */ - vim_findfile_cleanup(search_ctx); - search_ctx = NULL; + vim_findfile_cleanup(fdip_search_ctx); + fdip_search_ctx = NULL; break; } @@ -5246,9 +5323,10 @@ find_file_in_path_option(ptr, len, options, first, path_option, need_dir, rel_fn #else r_ptr = NULL; #endif - search_ctx = vim_findfile_init(buf, file_to_find, r_ptr, 100, - FALSE, TRUE, search_ctx, FALSE, rel_fname); - if (search_ctx != NULL) + fdip_search_ctx = vim_findfile_init(buf, ff_file_to_find, + r_ptr, 100, FALSE, TRUE, + fdip_search_ctx, FALSE, rel_fname); + if (fdip_search_ctx != NULL) did_findfile_init = TRUE; vim_free(buf); } @@ -5260,19 +5338,19 @@ find_file_in_path_option(ptr, len, options, first, path_option, need_dir, rel_fn { if (need_dir) EMSG2(_("E344: Can't find directory \"%s\" in cdpath"), - file_to_find); + ff_file_to_find); else EMSG2(_("E345: Can't find file \"%s\" in path"), - file_to_find); + ff_file_to_find); } else { if (need_dir) EMSG2(_("E346: No more directory \"%s\" found in cdpath"), - file_to_find); + ff_file_to_find); else EMSG2(_("E347: No more file \"%s\" found in path"), - file_to_find); + ff_file_to_find); } } @@ -5320,16 +5398,14 @@ get_user_name(buf, len) char_u *buf; int len; { - static char_u *name = NULL; - - if (name == NULL) + if (username == NULL) { if (mch_get_user_name(buf, len) == FAIL) return FAIL; - name = vim_strsave(buf); + username = vim_strsave(buf); } else - STRNCPY(buf, name, len); + STRNCPY(buf, username, len); return OK; } diff --git a/src/option.c b/src/option.c index 97c0aa538..389ab6ea3 100644 --- a/src/option.c +++ b/src/option.c @@ -3165,6 +3165,34 @@ set_number_default(name, val) options[findoption((char_u *)name)].def_val[VI_DEFAULT] = (char_u *)val; } +#if defined(EXITFREE) || defined(PROTO) +/* + * Free all options. + */ + void +free_all_options() +{ + int i; + + for (i = 0; !istermoption(&options[i]); i++) + { + if (options[i].indir == PV_NONE) + { + /* global option: free value and default value. */ + if (options[i].flags & P_ALLOCED && options[i].var != NULL) + free_string_option(*(char_u **)options[i].var); + if (options[i].flags & P_DEF_ALLOCED) + free_string_option(options[i].def_val[VI_DEFAULT]); + } + else if (options[i].var != VAR_WIN + && (options[i].flags & P_STRING)) + /* buffer-local option: free global value */ + free_string_option(*(char_u **)options[i].var); + } +} +#endif + + /* * Initialize the options, part two: After getting Rows and Columns and * setting 'term'. @@ -8001,8 +8029,6 @@ put_setbool(fd, cmd, name, value) void clear_termoptions() { - struct vimoption *p; - /* * Reset a few things before clearing the old options. This may cause * outputting a few things that the terminal doesn't understand, but the @@ -8028,6 +8054,14 @@ clear_termoptions() #endif stoptermcap(); /* stop termcap mode */ + free_termoptions(); +} + + void +free_termoptions() +{ + struct vimoption *p; + for (p = &options[0]; p->fullname != NULL; p++) if (istermoption(p)) { diff --git a/src/os_unix.c b/src/os_unix.c index d27b05a6d..07645dc49 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -2703,8 +2703,11 @@ mch_early_init() void mch_free_mem() { -# if defined(HAVE_SIGALTSTACK) || defined(HAVE_SIGSTACK) - vim_free(signal_stack); +# if defined(FEAT_CLIPBOARD) && defined(FEAT_X11) + if (clip_star.owned) + clip_lose_selection(&clip_star); + if (clip_plus.owned) + clip_lose_selection(&clip_plus); # endif # if (defined(FEAT_X11) && defined(FEAT_XCLIPBOARD)) || defined(PROTO) if (xterm_Shell != (Widget)0) @@ -2714,6 +2717,18 @@ mch_free_mem() if (app_context != (XtAppContext)NULL) XtDestroyApplicationContext(app_context); # endif +# ifdef FEAT_X11 + if (x11_display != NULL && x11_display != xterm_dpy) + XCloseDisplay(x11_display); +# endif +# if defined(HAVE_SIGALTSTACK) || defined(HAVE_SIGSTACK) + vim_free(signal_stack); + signal_stack = NULL; +# endif +# ifdef FEAT_TITLE + vim_free(oldtitle); + vim_free(oldicon); +# endif } #endif diff --git a/src/proto/diff.pro b/src/proto/diff.pro index b912a56d6..b9b33c9e4 100644 --- a/src/proto/diff.pro +++ b/src/proto/diff.pro @@ -11,6 +11,7 @@ void ex_diffsplit __ARGS((exarg_T *eap)); void ex_diffthis __ARGS((exarg_T *eap)); void diff_win_options __ARGS((win_T *wp, int addbuf)); void ex_diffoff __ARGS((exarg_T *eap)); +void diff_clear __ARGS((void)); int diff_check __ARGS((win_T *wp, linenr_T lnum)); int diff_check_fill __ARGS((win_T *wp, linenr_T lnum)); void diff_set_topline __ARGS((win_T *fromwin, win_T *towin)); diff --git a/src/proto/edit.pro b/src/proto/edit.pro index 59939593e..2168cd8b3 100644 --- a/src/proto/edit.pro +++ b/src/proto/edit.pro @@ -17,6 +17,7 @@ void auto_format __ARGS((int trailblank, int prev_line)); int comp_textwidth __ARGS((int ff)); int stop_arrow __ARGS((void)); void set_last_insert __ARGS((int c)); +void free_last_insert __ARGS((void)); char_u *add_char2buf __ARGS((int c, char_u *s)); void beginline __ARGS((int flags)); int oneright __ARGS((void)); diff --git a/src/proto/ex_cmds.pro b/src/proto/ex_cmds.pro index baa123353..6404cc8d6 100644 --- a/src/proto/ex_cmds.pro +++ b/src/proto/ex_cmds.pro @@ -5,6 +5,7 @@ void ex_sort __ARGS((exarg_T *eap)); void ex_retab __ARGS((exarg_T *eap)); int do_move __ARGS((linenr_T line1, linenr_T line2, linenr_T dest)); void ex_copy __ARGS((linenr_T line1, linenr_T line2, linenr_T n)); +void free_prev_shellcmd __ARGS((void)); void do_bang __ARGS((int addr_count, exarg_T *eap, int forceit, int do_in, int do_out)); void do_shell __ARGS((char_u *cmd, int flags)); char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp)); @@ -37,6 +38,7 @@ void ex_global __ARGS((exarg_T *eap)); void global_exe __ARGS((char_u *cmd)); int read_viminfo_sub_string __ARGS((vir_T *virp, int force)); void write_viminfo_sub_string __ARGS((FILE *fp)); +void free_old_sub __ARGS((void)); void prepare_tagpreview __ARGS((void)); void ex_help __ARGS((exarg_T *eap)); char_u *check_help_lang __ARGS((char_u *arg)); diff --git a/src/proto/ex_docmd.pro b/src/proto/ex_docmd.pro index 3a8200e38..f4df30d76 100644 --- a/src/proto/ex_docmd.pro +++ b/src/proto/ex_docmd.pro @@ -33,6 +33,7 @@ void alist_add __ARGS((alist_T *al, char_u *fname, int set_fnum)); void alist_slash_adjust __ARGS((void)); void ex_splitview __ARGS((exarg_T *eap)); void do_exedit __ARGS((exarg_T *eap, win_T *old_curwin)); +void free_cd_dir __ARGS((void)); void do_sleep __ARGS((long msec)); int vim_mkdir_emsg __ARGS((char_u *name, int prot)); FILE *open_exfile __ARGS((char_u *fname, int forceit, char *mode)); diff --git a/src/proto/ex_getln.pro b/src/proto/ex_getln.pro index 688eb3d8f..f0d45a31f 100644 --- a/src/proto/ex_getln.pro +++ b/src/proto/ex_getln.pro @@ -6,6 +6,7 @@ char_u *getexmodeline __ARGS((int promptc, void *dummy, int indent)); int cmdline_overstrike __ARGS((void)); int cmdline_at_end __ARGS((void)); colnr_T cmdline_getvcol_cursor __ARGS((void)); +void free_cmdline_buf __ARGS((void)); void putcmdline __ARGS((int c, int shift)); void unputcmdline __ARGS((void)); int put_on_cmdline __ARGS((char_u *str, int len, int redraw)); diff --git a/src/proto/getchar.pro b/src/proto/getchar.pro index 7b8d6bc85..86c3c6f0f 100644 --- a/src/proto/getchar.pro +++ b/src/proto/getchar.pro @@ -31,6 +31,7 @@ int save_typebuf __ARGS((void)); void save_typeahead __ARGS((tasave_T *tp)); void restore_typeahead __ARGS((tasave_T *tp)); void openscript __ARGS((char_u *name, int directly)); +void close_all_scripts __ARGS((void)); int using_script __ARGS((void)); void updatescript __ARGS((int c)); int vgetc __ARGS((void)); diff --git a/src/proto/mark.pro b/src/proto/mark.pro index f7e5cf8c5..040f08bc0 100644 --- a/src/proto/mark.pro +++ b/src/proto/mark.pro @@ -19,6 +19,7 @@ void mark_col_adjust __ARGS((linenr_T lnum, colnr_T mincol, long lnum_amount, lo void copy_jumplist __ARGS((win_T *from, win_T *to)); void free_jumplist __ARGS((win_T *wp)); void set_last_cursor __ARGS((win_T *win)); +void free_all_marks __ARGS((void)); int read_viminfo_filemark __ARGS((vir_T *virp, int force)); void write_viminfo_filemarks __ARGS((FILE *fp)); int removable __ARGS((char_u *name)); diff --git a/src/proto/misc1.pro b/src/proto/misc1.pro index c2ae831fc..94d04554c 100644 --- a/src/proto/misc1.pro +++ b/src/proto/misc1.pro @@ -47,6 +47,7 @@ void msgmore __ARGS((long n)); void beep_flush __ARGS((void)); void vim_beep __ARGS((void)); void init_homedir __ARGS((void)); +void free_homedir __ARGS((void)); void expand_env __ARGS((char_u *src, char_u *dst, int dstlen)); void expand_env_esc __ARGS((char_u *src, char_u *dst, int dstlen, int esc)); char_u *vim_getenv __ARGS((char_u *name, int *mustfree)); diff --git a/src/proto/option.pro b/src/proto/option.pro index c0c5504eb..49e1d9aea 100644 --- a/src/proto/option.pro +++ b/src/proto/option.pro @@ -2,6 +2,7 @@ void set_init_1 __ARGS((void)); void set_string_default __ARGS((char *name, char_u *val)); void set_number_default __ARGS((char *name, long val)); +void free_all_options __ARGS((void)); void set_init_2 __ARGS((void)); void set_init_3 __ARGS((void)); void set_helplang_default __ARGS((char_u *lang)); @@ -26,6 +27,7 @@ char_u *get_encoding_default __ARGS((void)); int makeset __ARGS((FILE *fd, int opt_flags, int local_only)); int makefoldset __ARGS((FILE *fd)); void clear_termoptions __ARGS((void)); +void free_termoptions __ARGS((void)); void set_term_defaults __ARGS((void)); void comp_col __ARGS((void)); char_u *get_equalprg __ARGS((void)); diff --git a/src/proto/quickfix.pro b/src/proto/quickfix.pro index cc2f2a75a..7369a6441 100644 --- a/src/proto/quickfix.pro +++ b/src/proto/quickfix.pro @@ -1,5 +1,6 @@ /* quickfix.c */ int qf_init __ARGS((char_u *efile, char_u *errorformat, int newlist)); +void qf_free_all __ARGS((void)); void qf_jump __ARGS((int dir, int errornr, int forceit)); void qf_list __ARGS((exarg_T *eap)); void qf_age __ARGS((exarg_T *eap)); diff --git a/src/proto/regexp.pro b/src/proto/regexp.pro index 0ff1c24ea..df2fde40c 100644 --- a/src/proto/regexp.pro +++ b/src/proto/regexp.pro @@ -1,4 +1,5 @@ /* regexp.c */ +void free_regexp_stuff __ARGS((void)); int re_multiline __ARGS((regprog_T *prog)); int re_lookbehind __ARGS((regprog_T *prog)); char_u *skip_regexp __ARGS((char_u *startp, int dirc, int magic, char_u **newp)); diff --git a/src/proto/search.pro b/src/proto/search.pro index 304ad7398..3d934f2af 100644 --- a/src/proto/search.pro +++ b/src/proto/search.pro @@ -3,6 +3,7 @@ int search_regcomp __ARGS((char_u *pat, int pat_save, int pat_use, int options, char_u *get_search_pat __ARGS((void)); void save_search_patterns __ARGS((void)); void restore_search_patterns __ARGS((void)); +void free_search_patterns __ARGS((void)); int ignorecase __ARGS((char_u *pat)); char_u *last_search_pat __ARGS((void)); void reset_search_dir __ARGS((void)); diff --git a/src/proto/syntax.pro b/src/proto/syntax.pro index 967d88ed3..4b132ead4 100644 --- a/src/proto/syntax.pro +++ b/src/proto/syntax.pro @@ -22,6 +22,7 @@ char_u *hl_get_font_name __ARGS((void)); void hl_set_font_name __ARGS((char_u *font_name)); void hl_set_bg_color_name __ARGS((char_u *name)); void hl_set_fg_color_name __ARGS((char_u *name)); +void clear_hl_tables __ARGS((void)); int hl_combine_attr __ARGS((int char_attr, int prim_attr)); attrentry_T *syn_gui_attr2entry __ARGS((int attr)); attrentry_T *syn_term_attr2entry __ARGS((int attr)); diff --git a/src/proto/tag.pro b/src/proto/tag.pro index 5df6c30f7..8ee4c280d 100644 --- a/src/proto/tag.pro +++ b/src/proto/tag.pro @@ -3,6 +3,7 @@ int do_tag __ARGS((char_u *tag, int type, int count, int forceit, int verbose)); void tag_freematch __ARGS((void)); void do_tags __ARGS((exarg_T *eap)); int find_tags __ARGS((char_u *pat, int *num_matches, char_u ***matchesp, int flags, int mincount, char_u *buf_ffname)); +void free_tag_stuff __ARGS((void)); void simplify_filename __ARGS((char_u *filename)); int expand_tags __ARGS((int tagnames, char_u *pat, int *num_file, char_u ***file)); int get_tags __ARGS((list_T *list, char_u *pat)); diff --git a/src/quickfix.c b/src/quickfix.c index 41ad00b20..5de1e11e1 100644 --- a/src/quickfix.c +++ b/src/quickfix.c @@ -732,6 +732,17 @@ qf_new_list() qf_lists[qf_curlist].qf_count = 0; } +#if defined(EXITFREE) || defined(PROTO) + void +qf_free_all() +{ + int i; + + for (i = 0; i < qf_listcount; ++i) + qf_free(i); +} +#endif + /* * Add an entry to the end of the list of errors. * Returns OK or FAIL. diff --git a/src/regexp.c b/src/regexp.c index bc13b38ea..dd0b1530a 100644 --- a/src/regexp.c +++ b/src/regexp.c @@ -373,7 +373,15 @@ re_multi_type(c) */ #define JUST_CALC_SIZE ((char_u *) -1) -static char_u *reg_prev_sub; +static char_u *reg_prev_sub = NULL; + +#if defined(EXITFREE) || defined(PROTO) + void +free_regexp_stuff() +{ + vim_free(reg_prev_sub); +} +#endif /* * REGEXP_INRANGE contains all characters which are always special in a [] @@ -1700,7 +1708,7 @@ regatom(flagp) /* NOTREACHED */ case Magic('~'): /* previous substitute pattern */ - if (reg_prev_sub) + if (reg_prev_sub != NULL) { char_u *lp; diff --git a/src/search.c b/src/search.c index 537076942..20745d9bc 100644 --- a/src/search.c +++ b/src/search.c @@ -338,6 +338,15 @@ restore_search_patterns() } #endif +#if defined(EXITFREE) || defined(PROTO) + void +free_search_patterns() +{ + vim_free(spats[0].pat); + vim_free(spats[1].pat); +} +#endif + /* * Return TRUE when case should be ignored for search pattern "pat". * Uses the 'ignorecase' and 'smartcase' options. diff --git a/src/spell/de_DE.diff b/src/spell/de_DE.diff index 8940e4439..762215cbf 100644 --- a/src/spell/de_DE.diff +++ b/src/spell/de_DE.diff @@ -1,12 +1,12 @@ *** de_DE.orig.aff Fri Jun 17 10:01:18 2005 ---- de_DE.aff Sat Jun 18 19:46:19 2005 +--- de_DE.aff Thu Jun 23 17:41:38 2005 *************** *** 3,4 **** --- 3,8 ---- -+ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþß -+ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþß -+ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞß ++ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ ++ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ ++ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ + # (c) copyright by Bjoern Jacke <bjoern@j3e.de> *** de_DE.orig.dic Fri Jun 17 10:01:27 2005 diff --git a/src/spell/en_AU.diff b/src/spell/en_AU.diff index d78f557bb..d1dedf4ae 100644 --- a/src/spell/en_AU.diff +++ b/src/spell/en_AU.diff @@ -1,18 +1,20 @@ *** en_AU.orig.aff Fri Apr 15 13:20:36 2005 ---- en_AU.aff Sat Jun 18 19:42:07 2005 +--- en_AU.aff Thu Jun 23 17:43:22 2005 *************** *** 7,9 **** SET ISO8859-1 ! TRY esiaénrtolcdugmphbyfvkw-'.zqjxSNRTLCGDMPHBEAUYOFIVKWöâôZQJXÅçèîêàïüäñ REP 24 ---- 7,15 ---- +--- 7,17 ---- SET ISO8859-1 ! TRY esiaénrtolcdugmphbyfvkw-'.zqjxSNRTLCGDMPHBEAUYOFIVKWöâôZQJXÅçèîêàïüäñ ! -! FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþß -! LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþß -! UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞß +! FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ +! LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ +! UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ ! +! RAR ? +! BAD ! ! REP 24 *************** @@ -37,7 +39,7 @@ PFX E Y 1 ! PFX E 0 dis . PFX F Y 5 ---- 40,59 ---- +--- 42,61 ---- PFX A Y 2 ! PFX A 0 re [^e] ! PFX A 0 re- e @@ -455,7 +457,7 @@ SFX T y iest [^aeiou]y ! SFX T 0 er [aeiou]y SFX T 0 est [aeiou]y ---- 63,457 ---- +--- 65,459 ---- PFX F 0 col l ! PFX F 0 con [^abehilmopru]. PFX K Y 1 @@ -1539,7 +1541,7 @@ ! SFX 3 0 ist's [aeioubp]y ! SFX 3 o ist's o ! SFX 3 0 ist's [^eoy] ---- 464,1149 ---- +--- 466,1272 ---- SFX R Y 72 ! SFX R 0 r e ! SFX R 0 rs e @@ -2226,8 +2228,129 @@ ! SFX 3 0 ist's [aeioubp]y ! SFX 3 o ist's o ! SFX 3 0 ist's [^eoy] +! +! MAP 5 +! MAP aàáâãäå +! MAP eèéêë +! MAP iìíîï +! MAP oòóôõö +! MAP uùúûü +! MAP nñ +! MAP cç +! MAP yÿý +! MAP sß +! +! # This comes from Aspell en_phonet.dat, version 1.1, 2000-01-07 +! +! SAL AH(AEIOUY)-^ *H +! SAL AR(AEIOUY)-^ *R +! SAL A(HR)^ * +! SAL A^ * +! SAL AH(AEIOUY)- H +! SAL AR(AEIOUY)- R +! SAL A(HR) _ +! SAL À^ * +! SAL Å^ * +! SAL BB- _ +! SAL B B +! SAL CQ- _ +! SAL CIA X +! SAL CH X +! SAL C(EIY)- S +! SAL CK K +! SAL COUGH^ KF +! SAL CC< C +! SAL C K +! SAL DG(EIY) K +! SAL DD- _ +! SAL D T +! SAL É< E +! SAL EH(AEIOUY)-^ *H +! SAL ER(AEIOUY)-^ *R +! SAL E(HR)^ * +! SAL ENOUGH^$ *NF +! SAL E^ * +! SAL EH(AEIOUY)- H +! SAL ER(AEIOUY)- R +! SAL E(HR) _ +! SAL FF- _ +! SAL F F +! SAL GN^ N +! SAL GN$ N +! SAL GNS$ NS +! SAL GNED$ N +! SAL GH(AEIOUY)- K +! SAL GH _ +! SAL GG9 K +! SAL G K +! SAL H H +! SAL IH(AEIOUY)-^ *H +! SAL IR(AEIOUY)-^ *R +! SAL I(HR)^ * +! SAL I^ * +! SAL ING6 N +! SAL IH(AEIOUY)- H +! SAL IR(AEIOUY)- R +! SAL I(HR) _ +! SAL J K +! SAL KN^ N +! SAL KK- _ +! SAL K K +! SAL LAUGH^ LF +! SAL LL- _ +! SAL L L +! SAL MB$ M +! SAL MM M +! SAL M M +! SAL NN- _ +! SAL N N +! SAL OH(AEIOUY)-^ *H +! SAL OR(AEIOUY)-^ *R +! SAL O(HR)^ * +! SAL O^ * +! SAL OH(AEIOUY)- H +! SAL OR(AEIOUY)- R +! SAL O(HR) _ +! SAL PH F +! SAL PN^ N +! SAL PP- _ +! SAL P P +! SAL Q K +! SAL RH^ R +! SAL ROUGH^ RF +! SAL RR- _ +! SAL R R +! SAL SCH(EOU)- SK +! SAL SC(IEY)- S +! SAL SH X +! SAL SI(AO)- X +! SAL SS- _ +! SAL S S +! SAL TI(AO)- X +! SAL TH @ +! SAL TCH-- _ +! SAL TOUGH^ TF +! SAL TT- _ +! SAL T T +! SAL UH(AEIOUY)-^ *H +! SAL UR(AEIOUY)-^ *R +! SAL U(HR)^ * +! SAL U^ * +! SAL UH(AEIOUY)- H +! SAL UR(AEIOUY)- R +! SAL U(HR) _ +! SAL V^ W +! SAL V F +! SAL WR^ R +! SAL WH^ W +! SAL W(AEIOU)- W +! SAL X^ S +! SAL X KS +! SAL Y(AEIOU)- Y +! SAL ZZ- _ +! SAL Z S *** en_AU.orig.dic Fri Apr 15 13:20:36 2005 ---- en_AU.dic Tue Jun 21 20:24:15 2005 +--- en_AU.dic Wed Jun 22 14:06:35 2005 *************** *** 912,914 **** Alaska/M @@ -2250,53 +2373,122 @@ + Bram/M braid/DGS *************** +*** 5753,5755 **** + cad/ZSM +- c/aE + CAE +--- 5753,5754 ---- +*************** +*** 8535,8537 **** + coniferous +- conj + conjectural +--- 8534,8535 ---- +*************** +*** 8544,8545 **** +--- 8542,8544 ---- + conjunctiva/MS ++ conj. + conjunctive/S +*************** *** 10288,10289 **** ---- 10288,10292 ---- +--- 10287,10291 ---- dB/M + dBi + dBm + dBd DBMS *************** +*** 11781,11783 **** + DNA +- d/o + DOB +--- 11783,11784 ---- +*************** *** 12468,12469 **** ---- 12471,12473 ---- +--- 12469,12471 ---- Dutch/5m + Farsi Dutchwomen/M *************** +*** 12516,12518 **** + dystrophy/M +- e + ea +--- 12518,12519 ---- +*************** *** 13779,13781 **** estuary/MS ! et ETA ---- 13783,13786 ---- +--- 13780,13783 ---- estuary/MS ! et cetera ! et al. ETA *************** +*** 15296,15298 **** + fjord/SM +! f/K + flab/2zZM +--- 15298,15300 ---- + fjord/SM +! pref + flab/2zZM +*************** +*** 16480,16482 **** + FYI +- g/7 + gabardine/SM +--- 16482,16483 ---- +*************** +*** 18599,18601 **** + HDTV +- h/E + headache/SM +--- 18600,18601 ---- +*************** *** 19214,19216 **** Hobbes ! hobbit hobble/RGSD ---- 19219,19221 ---- +--- 19214,19216 ---- Hobbes ! hobbit/MS hobble/RGSD *************** +*** 21791,21793 **** + jive/DSMG +- j/k + jnr. +--- 21791,21792 ---- +*************** +*** 22125,22127 **** + kcal +- k/E + Keane +--- 22124,22125 ---- +*************** +*** 22606,22608 **** + Kyushu/M +- l/3 + label/AGaSD +--- 22604,22605 ---- +*************** *** 22885,22887 **** lass/SM - last-ditch lasted/e ---- 22890,22891 ---- +--- 22882,22883 ---- *************** *** 22890,22892 **** last/kJYDSG - last-minute lasts/e ---- 22894,22895 ---- +--- 22886,22887 ---- *************** *** 26417,26418 **** ---- 26420,26422 ---- +--- 26412,26414 ---- Moolawatana + Moolenaar/M Moomba @@ -2307,7 +2499,7 @@ nationhood/M ! nation/M nationwide ---- 27192,27196 ---- +--- 27184,27188 ---- nationals/4 ! national/sQq3SZ nationhood/M @@ -2315,73 +2507,123 @@ nationwide *************** *** 27194,27195 **** ---- 27198,27201 ---- +--- 27190,27193 ---- nativity/MS + natively + nativeness NATO/M *************** +*** 28365,28367 **** + nuzzle/SDG +- n/xvuNVn + Nyah +--- 28363,28364 ---- +*************** +*** 29464,29466 **** + oz +- o/z + Ozark/MS +--- 29461,29462 ---- +*************** *** 31035,31037 **** Pk - p/KF pl. ---- 31041,31042 ---- +--- 31031,31032 ---- *************** *** 31288,31289 **** ---- 31293,31295 ---- +--- 31283,31285 ---- pneumonia/MS + pneumonic PO *************** *** 31460,31461 **** ---- 31466,31468 ---- +--- 31456,31458 ---- pompom/MS + pompon/M pomposity/MS *************** +*** 32865,32867 **** + pyx/S +- q + Qatar +--- 32862,32863 ---- +*************** *** 33378,33380 **** razzmatazz - r/d Rd/M ---- 33385,33386 ---- +--- 33374,33375 ---- *************** *** 34979,34981 **** RSPCA - rte rub-a-dub ---- 34985,34986 ---- +--- 34974,34975 ---- *************** *** 36012,36014 **** sec. ! s/eca secant/MS ---- 36017,36019 ---- +--- 36006,36008 ---- sec. ! outs secant/MS *************** +*** 40242,40244 **** + Szechwan/M +! t/7k + Ta +--- 40236,40238 ---- + Szechwan/M +! tingly + Ta +*************** *** 42616,42618 **** Tyson/M - u ubiquitousness ---- 42621,42622 ---- +--- 42610,42611 ---- *************** *** 42990,42991 **** ---- 42994,42996 ---- +--- 42983,42985 ---- unscrupulous + searchable unsearchable *************** +*** 43252,43254 **** + Uzi/M +- v + vacancy/MS +--- 43246,43247 ---- +*************** *** 43749,43751 **** Vilnius/M ! vim/M vinaigrette/MS ---- 43754,43756 ---- +--- 43742,43744 ---- Vilnius/M ! Vim/M vinaigrette/MS *************** +*** 45494,45496 **** + yippee +- y/K + YMCA +--- 45487,45488 ---- +*************** +*** 45586,45588 **** + zap/SGRD +- z/d + Zealanders +--- 45578,45579 ---- +*************** *** 45655 **** ---- 45660,45661 ---- +--- 45646,45652 ---- zymurgy/S + nd ++ the the/! ++ a a/! ++ a an/! ++ an a/! ++ an an/! diff --git a/src/spell/en_CA.diff b/src/spell/en_CA.diff index 62e72130c..a57ad3476 100644 --- a/src/spell/en_CA.diff +++ b/src/spell/en_CA.diff @@ -1,12 +1,15 @@ *** en_CA.orig.aff Fri Apr 15 13:20:36 2005 ---- en_CA.aff Sat Jun 18 19:42:19 2005 +--- en_CA.aff Thu Jun 23 17:43:26 2005 *************** *** 3,4 **** ---- 3,8 ---- +--- 3,11 ---- -+ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþß -+ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþß -+ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞß ++ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ ++ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ ++ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ ++ ++ RAR ? ++ BAD ! + PFX A Y 1 *************** @@ -15,7 +18,7 @@ ! SFX N y ication y ! SFX N 0 en [^ey] ---- 34,37 ---- +--- 37,40 ---- SFX N e ion e ! SFX N y ication y ! SFX N 0 en [^ey] @@ -25,7 +28,7 @@ SFX H y ieth y ! SFX H 0 th [^y] ---- 44,46 ---- +--- 47,49 ---- SFX H y ieth y ! SFX H 0 th [^y] @@ -34,12 +37,137 @@ SFX G e ing e ! SFX G 0 ing [^e] ---- 51,53 ---- +--- 54,56 ---- SFX G e ing e ! SFX G 0 ing [^e] +*************** +*** 98 **** +--- 105,226 ---- + SFX L 0 ment . ++ ++ MAP 5 ++ MAP aàáâãäå ++ MAP eèéêë ++ MAP iìíîï ++ MAP oòóôõö ++ MAP uùúûü ++ MAP nñ ++ MAP cç ++ MAP yÿý ++ MAP sß ++ ++ # This comes from Aspell en_phonet.dat, version 1.1, 2000-01-07 ++ ++ SAL AH(AEIOUY)-^ *H ++ SAL AR(AEIOUY)-^ *R ++ SAL A(HR)^ * ++ SAL A^ * ++ SAL AH(AEIOUY)- H ++ SAL AR(AEIOUY)- R ++ SAL A(HR) _ ++ SAL À^ * ++ SAL Å^ * ++ SAL BB- _ ++ SAL B B ++ SAL CQ- _ ++ SAL CIA X ++ SAL CH X ++ SAL C(EIY)- S ++ SAL CK K ++ SAL COUGH^ KF ++ SAL CC< C ++ SAL C K ++ SAL DG(EIY) K ++ SAL DD- _ ++ SAL D T ++ SAL É< E ++ SAL EH(AEIOUY)-^ *H ++ SAL ER(AEIOUY)-^ *R ++ SAL E(HR)^ * ++ SAL ENOUGH^$ *NF ++ SAL E^ * ++ SAL EH(AEIOUY)- H ++ SAL ER(AEIOUY)- R ++ SAL E(HR) _ ++ SAL FF- _ ++ SAL F F ++ SAL GN^ N ++ SAL GN$ N ++ SAL GNS$ NS ++ SAL GNED$ N ++ SAL GH(AEIOUY)- K ++ SAL GH _ ++ SAL GG9 K ++ SAL G K ++ SAL H H ++ SAL IH(AEIOUY)-^ *H ++ SAL IR(AEIOUY)-^ *R ++ SAL I(HR)^ * ++ SAL I^ * ++ SAL ING6 N ++ SAL IH(AEIOUY)- H ++ SAL IR(AEIOUY)- R ++ SAL I(HR) _ ++ SAL J K ++ SAL KN^ N ++ SAL KK- _ ++ SAL K K ++ SAL LAUGH^ LF ++ SAL LL- _ ++ SAL L L ++ SAL MB$ M ++ SAL MM M ++ SAL M M ++ SAL NN- _ ++ SAL N N ++ SAL OH(AEIOUY)-^ *H ++ SAL OR(AEIOUY)-^ *R ++ SAL O(HR)^ * ++ SAL O^ * ++ SAL OH(AEIOUY)- H ++ SAL OR(AEIOUY)- R ++ SAL O(HR) _ ++ SAL PH F ++ SAL PN^ N ++ SAL PP- _ ++ SAL P P ++ SAL Q K ++ SAL RH^ R ++ SAL ROUGH^ RF ++ SAL RR- _ ++ SAL R R ++ SAL SCH(EOU)- SK ++ SAL SC(IEY)- S ++ SAL SH X ++ SAL SI(AO)- X ++ SAL SS- _ ++ SAL S S ++ SAL TI(AO)- X ++ SAL TH @ ++ SAL TCH-- _ ++ SAL TOUGH^ TF ++ SAL TT- _ ++ SAL T T ++ SAL UH(AEIOUY)-^ *H ++ SAL UR(AEIOUY)-^ *R ++ SAL U(HR)^ * ++ SAL U^ * ++ SAL UH(AEIOUY)- H ++ SAL UR(AEIOUY)- R ++ SAL U(HR) _ ++ SAL V^ W ++ SAL V F ++ SAL WR^ R ++ SAL WH^ W ++ SAL W(AEIOU)- W ++ SAL X^ S ++ SAL X KS ++ SAL Y(AEIOU)- Y ++ SAL ZZ- _ ++ SAL Z S *** en_CA.orig.dic Sat Apr 16 14:40:06 2005 ---- en_CA.dic Tue Jun 21 20:25:01 2005 +--- en_CA.dic Wed Jun 22 14:06:43 2005 *************** *** 46,48 **** R/G @@ -47,70 +175,145 @@ easternmost --- 46,47 ---- *************** -*** 59,61 **** +*** 59,66 **** a ! b/KGDT Emmey/M ---- 58,61 ---- + baggagemen +! c/EAS + antimalarial/S +- d/AMV + enveloper/M +--- 58,65 ---- a ! probing ! probed Emmey/M + baggagemen +! recs + antimalarial/S + enveloper/M *************** -*** 82,84 **** - m/XG +*** 68,98 **** + Balearic/M +! e/FDSM +! f/BVXT + Karamazov/M +! g/VXB +! h/VEMS +! i + Braille/DSGM +- j/FTV + transceiver/MS +! k/FGISE + promising/YU +! l/XTJGV + Emmet/M +! m/XG ! n/FKT - o ---- 82,84 ---- - m/XG -! pron - o -*************** -*** 86,91 **** +! o + xviii fitting/PSY -- p/KRT - q +! p/KRT +! q ! r/GVTJ ! s/FK fatting ---- 86,89 ---- +! t/BGXTJ + Franciska/M + oedipal +! u +! v/VTK +! w/JXTGV + youths +--- 67,94 ---- + Balearic/M +! fens + Karamazov/M +! gens + Braille/DSGM + transceiver/MS +! inking +! disking +! conking +! inks +! disks +! conks + promising/YU +! lings + Emmet/M +! ming +! pron + xviii fitting/PSY - q ! cons fatting -*************** -*** 94,96 **** +! tings + Franciska/M oedipal -- u - v/VTK ---- 92,93 ---- +! vive +! wens +! wings + youths +*************** +*** 100,103 **** + x +! y/F +! z/JGT + crumby/RT +--- 96,98 ---- + x +! zings + crumby/RT +*************** +*** 714,715 **** +--- 709,711 ---- + silty/RT ++ conj. + conjectural/Y *************** *** 3145,3146 **** ---- 3142,3144 ---- +--- 3141,3143 ---- semester/MS + etc. etch/GZSRDJ *************** +*** 6190,6191 **** +--- 6187,6190 ---- + Paula/M ++ coned ++ cone/MS + coneflower/M +*************** *** 7022,7024 **** DA - DB DC ---- 7020,7021 ---- +--- 7021,7022 ---- +*************** +*** 7395,7397 **** + rec +! red/YPS + Eamon/M +--- 7393,7395 ---- + rec +! red/YPSM + Eamon/M *************** *** 8388,8390 **** slotting - ON OR ---- 8385,8386 ---- +--- 8386,8387 ---- *************** *** 9125,9127 **** perchance - rte hastiness/MS ---- 9121,9122 ---- +--- 9122,9123 ---- *************** *** 10603,10604 **** ---- 10598,10602 ---- +--- 10599,10603 ---- dB/M + dBi + dBm @@ -121,19 +324,19 @@ Garold/M - db tollhouse/M ---- 10613,10614 ---- +--- 10614,10615 ---- *************** *** 11017,11019 **** hr - ht MCI/M ---- 11014,11015 ---- +--- 11015,11016 ---- *************** *** 11609,11611 **** demureness/SM ! nd/A MIA ---- 11605,11607 ---- +--- 11606,11608 ---- demureness/SM ! nd MIA @@ -142,13 +345,13 @@ engross/LDRSG ! hobbit certainty/MUS ---- 13665,13667 ---- +--- 13666,13668 ---- engross/LDRSG ! hobbit/MS certainty/MUS *************** *** 14434,14435 **** ---- 14430,14432 ---- +--- 14431,14433 ---- pompom/MS + pompon/M Devland/M @@ -157,7 +360,7 @@ bloodstone/M ! cetera/S storm/SGZRDM ---- 19262,19264 ---- +--- 19263,19265 ---- bloodstone/M ! et cetera/S storm/SGZRDM @@ -166,13 +369,28 @@ Hansel/M ! ring/GZJDRM Hansen/M ---- 20159,20161 ---- +--- 20160,20162 ---- Hansel/M ! ring/GZJDRMS Hansen/M *************** +*** 26960,26965 **** + Wisenheimer/M +! disc/GDM + horticulturist/SM + isotropically +! dish/DG + disburser/M +--- 26958,26963 ---- + Wisenheimer/M +! disc/GDMS + horticulturist/SM + isotropically +! dish/DGMS + disburser/M +*************** *** 28157,28158 **** ---- 28154,28156 ---- +--- 28155,28157 ---- pneumonia/MS + pneumonic Socratic/S @@ -181,16 +399,16 @@ claque/MS - etc Chad/M ---- 34997,34998 ---- +--- 34998,34999 ---- *************** *** 36707,36708 **** ---- 36704,36706 ---- +--- 36705,36707 ---- Moody/M + Moolenaar/M Bresenham/M *************** *** 50272,50273 **** ---- 50270,50272 ---- +--- 50271,50273 ---- Dutch/M + Farsi Sharon/M @@ -199,18 +417,23 @@ hatchery/MS ! vim/SM compatriot/MS ---- 52564,52566 ---- +--- 52565,52567 ---- hatchery/MS ! Vim/SM compatriot/MS *************** *** 53490,53491 **** ---- 53489,53491 ---- +--- 53490,53492 ---- unsearchable + searchable felicitous/IY *************** *** 62341 **** ---- 62341,62342 ---- +--- 62342,62348 ---- data/M + et al. ++ the the/! ++ a a/! ++ a an/! ++ an a/! ++ an an/! diff --git a/src/spell/en_GB.diff b/src/spell/en_GB.diff index 42fdc5da4..c2ec40467 100644 --- a/src/spell/en_GB.diff +++ b/src/spell/en_GB.diff @@ -1,17 +1,20 @@ *** en_GB.orig.aff Fri Apr 15 13:20:36 2005 ---- en_GB.aff Sat Jun 18 19:42:24 2005 +--- en_GB.aff Thu Jun 23 17:43:30 2005 *************** *** 7,9 **** SET ISO8859-1 ! TRY esiaénrtolcdugmphbyfvkw-'.zqjxSNRTLCGDMPHBEAUYOFIVKWöâôZQJXÅçèîêàïüäñ REP 24 ---- 7,14 ---- +--- 7,17 ---- SET ISO8859-1 ! TRY esiaénrtolcdugmphbyfvkw-'.zqjxSNRTLCGDMPHBEAUYOFIVKWöâôZQJXÅçèîêàïüäñ ! -! FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþß -! LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþß -! UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞß +! FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ +! LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ +! UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ +! +! RAR ? +! BAD ! ! REP 24 *************** @@ -36,7 +39,7 @@ PFX E Y 1 ! PFX E 0 dis . PFX F Y 5 ---- 39,58 ---- +--- 42,61 ---- PFX A Y 2 ! PFX A 0 re [^e] ! PFX A 0 re- e @@ -454,7 +457,7 @@ SFX T y iest [^aeiou]y ! SFX T 0 er [aeiou]y SFX T 0 est [aeiou]y ---- 62,456 ---- +--- 65,459 ---- PFX F 0 col l ! PFX F 0 con [^abehilmopru]. PFX K Y 1 @@ -1538,7 +1541,7 @@ ! SFX 3 0 ist's [aeioubp]y ! SFX 3 o ist's o ! SFX 3 0 ist's [^eoy] ---- 463,1148 ---- +--- 466,1272 ---- SFX R Y 72 ! SFX R 0 r e ! SFX R 0 rs e @@ -2225,8 +2228,129 @@ ! SFX 3 0 ist's [aeioubp]y ! SFX 3 o ist's o ! SFX 3 0 ist's [^eoy] +! +! MAP 5 +! MAP aàáâãäå +! MAP eèéêë +! MAP iìíîï +! MAP oòóôõö +! MAP uùúûü +! MAP nñ +! MAP cç +! MAP yÿý +! MAP sß +! +! # This comes from Aspell en_phonet.dat, version 1.1, 2000-01-07 +! +! SAL AH(AEIOUY)-^ *H +! SAL AR(AEIOUY)-^ *R +! SAL A(HR)^ * +! SAL A^ * +! SAL AH(AEIOUY)- H +! SAL AR(AEIOUY)- R +! SAL A(HR) _ +! SAL À^ * +! SAL Å^ * +! SAL BB- _ +! SAL B B +! SAL CQ- _ +! SAL CIA X +! SAL CH X +! SAL C(EIY)- S +! SAL CK K +! SAL COUGH^ KF +! SAL CC< C +! SAL C K +! SAL DG(EIY) K +! SAL DD- _ +! SAL D T +! SAL É< E +! SAL EH(AEIOUY)-^ *H +! SAL ER(AEIOUY)-^ *R +! SAL E(HR)^ * +! SAL ENOUGH^$ *NF +! SAL E^ * +! SAL EH(AEIOUY)- H +! SAL ER(AEIOUY)- R +! SAL E(HR) _ +! SAL FF- _ +! SAL F F +! SAL GN^ N +! SAL GN$ N +! SAL GNS$ NS +! SAL GNED$ N +! SAL GH(AEIOUY)- K +! SAL GH _ +! SAL GG9 K +! SAL G K +! SAL H H +! SAL IH(AEIOUY)-^ *H +! SAL IR(AEIOUY)-^ *R +! SAL I(HR)^ * +! SAL I^ * +! SAL ING6 N +! SAL IH(AEIOUY)- H +! SAL IR(AEIOUY)- R +! SAL I(HR) _ +! SAL J K +! SAL KN^ N +! SAL KK- _ +! SAL K K +! SAL LAUGH^ LF +! SAL LL- _ +! SAL L L +! SAL MB$ M +! SAL MM M +! SAL M M +! SAL NN- _ +! SAL N N +! SAL OH(AEIOUY)-^ *H +! SAL OR(AEIOUY)-^ *R +! SAL O(HR)^ * +! SAL O^ * +! SAL OH(AEIOUY)- H +! SAL OR(AEIOUY)- R +! SAL O(HR) _ +! SAL PH F +! SAL PN^ N +! SAL PP- _ +! SAL P P +! SAL Q K +! SAL RH^ R +! SAL ROUGH^ RF +! SAL RR- _ +! SAL R R +! SAL SCH(EOU)- SK +! SAL SC(IEY)- S +! SAL SH X +! SAL SI(AO)- X +! SAL SS- _ +! SAL S S +! SAL TI(AO)- X +! SAL TH @ +! SAL TCH-- _ +! SAL TOUGH^ TF +! SAL TT- _ +! SAL T T +! SAL UH(AEIOUY)-^ *H +! SAL UR(AEIOUY)-^ *R +! SAL U(HR)^ * +! SAL U^ * +! SAL UH(AEIOUY)- H +! SAL UR(AEIOUY)- R +! SAL U(HR) _ +! SAL V^ W +! SAL V F +! SAL WR^ R +! SAL WH^ W +! SAL W(AEIOU)- W +! SAL X^ S +! SAL X KS +! SAL Y(AEIOU)- Y +! SAL ZZ- _ +! SAL Z S *** en_GB.orig.dic Sun Apr 17 18:08:50 2005 ---- en_GB.dic Tue Jun 21 20:26:11 2005 +--- en_GB.dic Wed Jun 22 14:06:46 2005 *************** *** 187,189 **** aitch/SM @@ -2234,6 +2358,18 @@ al-Jazeera --- 187,188 ---- *************** +*** 1795,1796 **** +--- 1794,1796 ---- + conic/S ++ conj. + conjectural +*************** +*** 2103,2105 **** + czarship +- d/o + d'art +--- 2103,2104 ---- +*************** *** 2148,2150 **** dazzle/DRkGJS - dBm @@ -2283,8 +2419,14 @@ + dBd DCB *************** +*** 11591,11593 **** + dérailleur/SM +- e + e'en +--- 11590,11591 ---- +*************** *** 14591,14592 **** ---- 14590,14592 ---- +--- 14589,14591 ---- native/SP + natively nativity/SM @@ -2293,22 +2435,34 @@ RSPCA - rte rubati ---- 16172,16173 ---- +--- 16171,16172 ---- +*************** +*** 17251,17253 **** + séance/SM +- t/ac + T'ang +--- 17249,17250 ---- *************** *** 17808,17809 **** ---- 17807,17809 ---- +--- 17805,17807 ---- unsearchable + searchable unshakable/Y *************** +*** 18268,18270 **** + xylophone/SM +- y/K + yachters +--- 18266,18267 ---- +*************** *** 18322,18323 **** ---- 18322,18324 ---- +--- 18319,18321 ---- émigré/S + nd 3GPP *************** *** 19303,19304 **** ---- 19304,19306 ---- +--- 19301,19303 ---- Brampton/M + Bram/M brand/MRDGSZ @@ -2317,14 +2471,26 @@ estimative ! et etalon ---- 21099,21102 ---- +--- 21096,21099 ---- estimative ! et cetera ! et al. etalon *************** +*** 21228,21230 **** + Ezra +- f/37 + Faber/M +--- 21228,21229 ---- +*************** +*** 22734,22736 **** + justification/M +- k/E + Kabul +--- 22733,22734 ---- +*************** *** 23632,23633 **** ---- 23635,23637 ---- +--- 23630,23632 ---- Moog + Moolenaar/M moonlight/GRDSM @@ -2333,40 +2499,103 @@ oxygenation/M - p/FYAI Pablo/M ---- 24246,24247 ---- +--- 24241,24242 ---- *************** *** 27223,27225 **** Villiers ! vim/M Vinci/M ---- 27226,27228 ---- +--- 27221,27223 ---- Villiers ! Vim/M Vinci/M *************** +*** 27568,27570 **** + Yvette +- z/d + Zealanders +--- 27566,27567 ---- +*************** *** 28174,28176 **** Aztec/M - b/bp Baal/M ---- 28177,28178 ---- +--- 28171,28172 ---- +*************** +*** 28890,28892 **** + Cathy +! cation/MW + catnip/SM +--- 28886,28888 ---- + Cathy +! cation/MWS + catnip/SM +*************** +*** 30587,30589 **** + fissionable/S +! fist/6GD + fit/6TRGMYJPSDj +--- 30583,30585 ---- + fissionable/S +! fist/6GDMS + fit/6TRGMYJPSDj +*************** +*** 30846,30848 **** + fuzzy/TP +- g/73 + Ga/y +--- 30842,30843 ---- *************** *** 31409,31411 **** hob/MDGZS ! hobbit Hobbs ---- 31411,31413 ---- +--- 31404,31406 ---- hob/MDGZS ! hobbit/MS Hobbs *************** +*** 32110,32112 **** + kWh +! l/F + lab/MoS +--- 32105,32107 ---- + kWh +! coll + lab/MoS +*************** *** 32174,32176 **** lasso/GMDS - last-ditch Laszlo/M ---- 32176,32177 ---- +--- 32169,32170 ---- +*************** +*** 34188,34190 **** + pâté/M +- q + Qatar +--- 34182,34183 ---- +*************** +*** 36324,36326 **** + uttermost +- v + vacate/nDGNS +--- 36317,36318 ---- +*************** +*** 37916,37918 **** + bys +- c/nN + Ca/y +--- 37908,37909 ---- +*************** +*** 40468,40470 **** + Gödel/M +- h/E + ha'p'orth +--- 40459,40460 ---- *************** *** 43275,43276 **** ---- 43276,43278 ---- +--- 43265,43267 ---- pneumonia/MS + pneumonic PO @@ -2375,4 +2604,13 @@ qwerty - r/d Ra ---- 43667,43668 ---- +--- 43656,43657 ---- +*************** +*** 46148 **** +--- 46138,46143 ---- + à ++ the the/! ++ a a/! ++ a an/! ++ an a/! ++ an an/! diff --git a/src/spell/en_US.diff b/src/spell/en_US.diff index 460fa4eb6..497400f03 100644 --- a/src/spell/en_US.diff +++ b/src/spell/en_US.diff @@ -1,14 +1,15 @@ *** en_US.orig.aff Fri Apr 15 13:20:36 2005 ---- en_US.aff Tue Jun 21 20:46:52 2005 +--- en_US.aff Thu Jun 23 17:42:05 2005 *************** *** 3,4 **** ---- 3,10 ---- +--- 3,11 ---- -+ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþß -+ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþß -+ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞß ++ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ ++ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ ++ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ + + RAR ? ++ BAD ! + PFX A Y 1 *************** @@ -17,7 +18,7 @@ ! SFX N y ication y ! SFX N 0 en [^ey] ---- 36,39 ---- +--- 37,40 ---- SFX N e ion e ! SFX N y ication y ! SFX N 0 en [^ey] @@ -27,7 +28,7 @@ SFX H y ieth y ! SFX H 0 th [^y] ---- 46,48 ---- +--- 47,49 ---- SFX H y ieth y ! SFX H 0 th [^y] @@ -36,20 +37,20 @@ SFX G e ing e ! SFX G 0 ing [^e] ---- 53,55 ---- +--- 54,56 ---- SFX G e ing e ! SFX G 0 ing [^e] *************** *** 137,138 **** ---- 143,146 ---- +--- 144,147 ---- REP uy i + REP y ie + REP ie y REP i ee *************** *** 188 **** ---- 196,317 ---- +--- 197,318 ---- REP shun cion + + MAP 5 @@ -173,7 +174,7 @@ + SAL ZZ- _ + SAL Z S *** en_US.orig.dic Fri Apr 15 13:20:36 2005 ---- en_US.dic Tue Jun 21 20:26:22 2005 +--- en_US.dic Wed Jun 22 14:06:29 2005 *************** *** 5944,5946 **** bk @@ -185,11 +186,30 @@ ! probed Bk/M *************** +*** 9007,9009 **** + Cazzie/M +- c/B + CB +--- 9008,9009 ---- +*************** *** 9233,9235 **** cetacean/S - cetera/S Cetus/M ---- 9234,9235 ---- +--- 9233,9234 ---- +*************** +*** 11575,11576 **** +--- 11574,11577 ---- + conduit/MS ++ coned ++ cone/MS + coneflower/M +*************** +*** 11712,11713 **** +--- 11713,11715 ---- + coniferous ++ conj. + conjectural/Y *************** *** 14038,14043 **** dazzling/Y @@ -198,7 +218,7 @@ dbl dB/M DBMS ---- 14038,14044 ---- +--- 14040,14046 ---- dazzling/Y dbl dB/M @@ -207,12 +227,42 @@ + dBd DBMS *************** +*** 15464,15466 **** + dingbat/MS +! ding/GD + dinghy/SM +--- 15467,15469 ---- + dingbat/MS +! ding/GDS + dinghy/SM +*************** +*** 15690,15692 **** + dishevelment/MS +! dish/GD + dishonest +--- 15693,15695 ---- + dishevelment/MS +! dish/GDMS + dishonest +*************** +*** 15973,15975 **** + djellaba/S +- d/JGVX + Djibouti/M +--- 15976,15977 ---- +*************** *** 16911,16912 **** ---- 16912,16914 ---- +--- 16913,16915 ---- dusty/RPT + Farsi Dutch/M *************** +*** 17357,17359 **** + EFL +- e/FMDS + Efrain/M +--- 17360,17361 ---- +*************** *** 18780,18782 **** estuary/SM ! et @@ -232,11 +282,32 @@ ! etc. etcetera/SM *************** +*** 20559,20561 **** + Fiori/M +- f/IRAC + firearm/SM +--- 20562,20563 ---- +*************** +*** 24402,24404 **** + guzzler/M +! g/VBX + Gwalior/M +--- 24404,24406 ---- + guzzler/M +! gens + Gwalior/M +*************** +*** 25473,25475 **** + hemp/MNS +- h/EMS + hemstitch/DSMG +--- 25475,25476 ---- +*************** *** 25963,25965 **** hobbing ! hobbit hobbler/M ---- 25966,25968 ---- +--- 25964,25966 ---- hobbing ! hobbit/MS hobbler/M @@ -245,17 +316,62 @@ HST - ht HTML ---- 26527,26528 ---- +--- 26525,26526 ---- +*************** +*** 26942,26944 **** + Hz +- i + I +--- 26942,26943 ---- +*************** +*** 29627,29629 **** + Jezebel/MS +- j/F + JFK/M +--- 29626,29627 ---- +*************** +*** 30578,30580 **** + keyword/SM +! k/FGEIS + kg +--- 30576,30583 ---- + keyword/SM +! inking +! disking +! conking +! inks +! disks +! conks + kg +*************** +*** 32694,32696 **** + Lizzy/M +! l/JGVXT + Ljubljana/M +--- 32697,32699 ---- + Lizzy/M +! lings + Ljubljana/M +*************** +*** 34456,34458 **** + mash/JGZMSRD +! m/ASK + masked/U +--- 34459,34462 ---- + mash/JGZMSRD +! rems +! prom/S + masked/U *************** *** 34746,34747 **** ---- 34748,34751 ---- +--- 34750,34753 ---- Mb + Mbyte + Mbit MB *************** *** 36605,36606 **** ---- 36609,36611 ---- +--- 36611,36613 ---- Moog + Moolenaar/M moo/GSD @@ -264,25 +380,31 @@ NSF - n/T NT ---- 38876,38877 ---- +--- 38878,38879 ---- +*************** +*** 39011,39013 **** + NZ +- o + O +--- 39017,39018 ---- *************** *** 39532,39534 **** om/XN - ON onanism/M ---- 39536,39537 ---- +--- 39537,39538 ---- *************** *** 42508,42510 **** pinfeather/SM ! ping/GDRM pinheaded/P ---- 42511,42513 ---- +--- 42512,42514 ---- pinfeather/SM ! ping/GDRMS pinheaded/P *************** *** 42983,42984 **** ---- 42986,42988 ---- +--- 42987,42989 ---- pneumonia/MS + pneumonic PO @@ -291,7 +413,7 @@ pompom/SM ! pompon's pomposity/MS ---- 43220,43222 ---- +--- 43221,43223 ---- pompom/SM ! pompon/M pomposity/MS @@ -300,7 +422,13 @@ PX - p/XTGJ Pygmalion/M ---- 44944,44945 ---- +--- 44945,44946 ---- +*************** +*** 44983,44985 **** + pyx/MDSG +- q + Q +--- 44987,44988 ---- *************** *** 46507,46509 **** Renault/MS @@ -341,6 +469,15 @@ ! sings sybarite/MS *************** +*** 57728,57730 **** + TX +! t/XTJBG + Tybalt/M +--- 57727,57729 ---- + TX +! tings + Tybalt/M +*************** *** 57809,57811 **** Tzeltal/M - u @@ -353,6 +490,15 @@ + searchable unseasonal *************** +*** 59072,59074 **** + vast/PTSYR +! v/ASV + VAT +--- 59071,59073 ---- + vast/PTSYR +! revs + VAT +*************** *** 59538,59540 **** vi/MDR ! vim/MS @@ -362,8 +508,37 @@ ! Vim/MS vinaigrette/MS *************** +*** 61534,61536 **** + WWW +! w/XTJGV + WY +--- 61533,61536 ---- + WWW +! wens +! wings + WY +*************** +*** 61750,61752 **** + yew/SM +- y/F + Yggdrasil/M +--- 61750,61751 ---- +*************** +*** 62058,62060 **** + Zsigmondy/M +! z/TGJ + Zubenelgenubi/M +--- 62057,62059 ---- + Zsigmondy/M +! zings + Zubenelgenubi/M +*************** *** 62077 **** ---- 62076,62078 ---- +--- 62076,62082 ---- zymurgy/S -+ the the/? + nd ++ the the/! ++ a a/! ++ a an/! ++ an a/! ++ an an/! diff --git a/src/spell/fr_FR.diff b/src/spell/fr_FR.diff index 1c02728bc..2be033450 100644 --- a/src/spell/fr_FR.diff +++ b/src/spell/fr_FR.diff @@ -1,11 +1,27 @@ *** fr_FR.orig.aff Sun Apr 14 17:18:22 2002 ---- fr_FR.aff Sat Jun 18 19:43:02 2005 +--- fr_FR.aff Sat Jun 25 15:12:00 2005 *************** *** 3,4 **** --- 3,8 ---- -+ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþß -+ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþß -+ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞß ++ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ ++ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ ++ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ + PFX A Y 10 +*************** +*** 691,692 **** +--- 695,707 ---- + ++ ++ MAP 5 ++ MAP aàáâãäå ++ MAP eèéêë ++ MAP iìíîï ++ MAP oòóôõö ++ MAP uùúûü ++ MAP nñ ++ MAP cç ++ MAP yÿý ++ MAP sß + diff --git a/src/spell/nl_NL.diff b/src/spell/nl_NL.diff index f6a8f086e..c72a4e65d 100644 --- a/src/spell/nl_NL.diff +++ b/src/spell/nl_NL.diff @@ -1,12 +1,14 @@ *** nl_NL.orig.aff Wed Apr 20 11:48:16 2005 ---- nl_NL.aff Tue Jun 21 11:08:32 2005 +--- nl_NL.aff Thu Jun 23 20:52:18 2005 *************** *** 3,4 **** ---- 3,8 ---- +--- 3,10 ---- -+ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþß -+ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþß -+ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞß ++ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ ++ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ ++ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ ++ ++ KEP = + NOSPLITSUGS *************** @@ -31,7 +33,7 @@ ! SFX J 0 je [aeiou][bcdfgkpt] ! SFX J 0 jes [aeiou][bcdfgkpt] ---- 37,56 ---- +--- 39,58 ---- SFX J N 18 ! SFX J 0 tje [aeiou][aeiou] ! SFX J 0 tjes [aeiou][aeiou] @@ -57,7 +59,7 @@ REP ubi ibu ! REP croc krok REP ten than ---- 257,259 ---- +--- 259,261 ---- REP ubi ibu ! REP croc krok REP ten than @@ -66,7 +68,7 @@ REP capucino cappuccino ! REP celcius Celsius REP kado cadeau ---- 292,294 ---- +--- 294,296 ---- REP capucino cappuccino ! REP celcius Celsius REP kado cadeau @@ -79,7 +81,7 @@ REP kommittee comité ! REP kwis quiz REP kwissen quizzen ---- 298,304 ---- +--- 300,306 ---- REP committee comité ! REP komitee comité ! REP komittee comité @@ -92,7 +94,7 @@ REP copy kopij ! REP pitoresque pittoreske REP reikweite reikwijdte ---- 306,308 ---- +--- 308,310 ---- REP copy kopij ! REP pitoresque pittoreske REP reikweite reikwijdte @@ -104,7 +106,7 @@ ! REP kontekst context ! REP korrekt correct REP kritikus criticus ---- 318,323 ---- +--- 320,325 ---- REP klup club ! REP wiskid whizzkid ! REP kontakt contact @@ -113,8 +115,10 @@ REP kritikus criticus *************** *** 333 **** ---- 337,458 ---- +--- 339,462 ---- REP aflassen afgelasten ++ REP svp s.v.p. ++ REP zoz z.o.z. + + MAP 5 + MAP aàáâãäå @@ -237,7 +241,16 @@ + SAL ZZ- _ + SAL Z S *** nl_NL.orig.dic Tue Apr 19 21:03:15 2005 ---- nl_NL.dic Wed Jun 15 10:36:20 2005 +--- nl_NL.dic Fri Jun 24 15:42:29 2005 +*************** +*** 1,3 **** + 119937 +! 'Versie-12-8-2003. Copyright (c) Nederlandse Tex Gebruikersgroep en S.Brouwer' + 's-Graveland +--- 1,3 ---- + 119937 +! #Versie-12-8-2003. Copyright (c) Nederlandse Tex Gebruikersgroep en S.Brouwer' + 's-Graveland *************** *** 8,9 **** --- 8,11 ---- @@ -266,27 +279,32 @@ Dwingeloo *************** *** 7485,7486 **** ---- 7489,7493 ---- +--- 7489,7498 ---- avond/SN -+ 's avonds -+ 's middags -+ 's ochtends ++ 's avonds/= ++ 's middags/= ++ 's ochtends/= ++ 's morgens/= ++ 's Avonds ++ 's Middags ++ 's Ochtends ++ 's Morgens avondappèl/S *************** *** 20681,20682 **** ---- 20688,20690 ---- +--- 20693,20695 ---- cytostatica + d.m.v. daad/P *************** *** 46300,46301 **** ---- 46308,46310 ---- +--- 46313,46315 ---- informaticus + informatie/S informatie-uitwisseling *************** *** 60206,60208 **** ---- 60215,60222 ---- +--- 60220,60227 ---- löss + m.a.w. + m.b.t. @@ -297,26 +315,27 @@ maag *************** *** 97474,97475 **** ---- 97488,97490 ---- +--- 97493,97496 ---- suïciderisico/X + s.v.p. ++ z.o.z. swagger/S *************** *** 101428,101429 **** ---- 101443,101446 ---- +--- 101449,101452 ---- toezichthouder/S + toezichthoudersaansprakelijkheidsverzekering + toezichthoudersaansprakelijkheidsverzekeringen toezie/N *************** *** 103707,103708 **** ---- 103724,103726 ---- +--- 103730,103732 ---- tête-à-tête/S + u uchtend/N *************** *** 119938 **** ---- 119956,120126 ---- +--- 119962,120136 ---- überhaupt + Christiaan/X + Fred/X @@ -488,3 +507,7 @@ + wishful thinking + à gogo + à propos ++ ca. ++ evt. ++ enz. ++ bijv. diff --git a/src/syntax.c b/src/syntax.c index 6092a1c97..313f6002d 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -7074,7 +7074,11 @@ free_highlight() int i; for (i = 0; i < highlight_ga.ga_len; ++i) + { highlight_clear(i); + vim_free(HL_TABLE()[i].sg_name); + vim_free(HL_TABLE()[i].sg_name_u); + } ga_clear(&highlight_ga); } #endif @@ -7485,7 +7489,7 @@ get_attr_entry(table, aep) attrentry_T *aep; { int i; - attrentry_T *gap; + attrentry_T *taep; static int recursive = FALSE; /* @@ -7499,35 +7503,39 @@ get_attr_entry(table, aep) */ for (i = 0; i < table->ga_len; ++i) { - gap = &(((attrentry_T *)table->ga_data)[i]); - if ( aep->ae_attr == gap->ae_attr + taep = &(((attrentry_T *)table->ga_data)[i]); + if ( aep->ae_attr == taep->ae_attr && ( #ifdef FEAT_GUI (table == &gui_attr_table - && (aep->ae_u.gui.fg_color == gap->ae_u.gui.fg_color - && aep->ae_u.gui.bg_color == gap->ae_u.gui.bg_color - && aep->ae_u.gui.sp_color == gap->ae_u.gui.sp_color - && aep->ae_u.gui.font == gap->ae_u.gui.font + && (aep->ae_u.gui.fg_color == taep->ae_u.gui.fg_color + && aep->ae_u.gui.bg_color + == taep->ae_u.gui.bg_color + && aep->ae_u.gui.sp_color + == taep->ae_u.gui.sp_color + && aep->ae_u.gui.font == taep->ae_u.gui.font # ifdef FEAT_XFONTSET - && aep->ae_u.gui.fontset == gap->ae_u.gui.fontset + && aep->ae_u.gui.fontset == taep->ae_u.gui.fontset # endif )) || #endif (table == &term_attr_table - && (aep->ae_u.term.start == NULL) == - (gap->ae_u.term.start == NULL) + && (aep->ae_u.term.start == NULL) + == (taep->ae_u.term.start == NULL) && (aep->ae_u.term.start == NULL || STRCMP(aep->ae_u.term.start, - gap->ae_u.term.start) == 0) - && (aep->ae_u.term.stop == NULL) == - (gap->ae_u.term.stop == NULL) + taep->ae_u.term.start) == 0) + && (aep->ae_u.term.stop == NULL) + == (taep->ae_u.term.stop == NULL) && (aep->ae_u.term.stop == NULL || STRCMP(aep->ae_u.term.stop, - gap->ae_u.term.stop) == 0)) + taep->ae_u.term.stop) == 0)) || (table == &cterm_attr_table - && aep->ae_u.cterm.fg_color == gap->ae_u.cterm.fg_color - && aep->ae_u.cterm.bg_color == gap->ae_u.cterm.bg_color) + && aep->ae_u.cterm.fg_color + == taep->ae_u.cterm.fg_color + && aep->ae_u.cterm.bg_color + == taep->ae_u.cterm.bg_color) )) return i + ATTR_OFF; @@ -7547,11 +7555,8 @@ get_attr_entry(table, aep) } recursive = TRUE; -#ifdef FEAT_GUI - ga_clear(&gui_attr_table); -#endif - ga_clear(&term_attr_table); - ga_clear(&cterm_attr_table); + clear_hl_tables(); + must_redraw = CLEAR; for (i = 0; i < highlight_ga.ga_len; ++i) @@ -7566,41 +7571,63 @@ get_attr_entry(table, aep) if (ga_grow(table, 1) == FAIL) return 0; - gap = &(((attrentry_T *)table->ga_data)[table->ga_len]); - vim_memset(gap, 0, sizeof(attrentry_T)); - gap->ae_attr = aep->ae_attr; + taep = &(((attrentry_T *)table->ga_data)[table->ga_len]); + vim_memset(taep, 0, sizeof(attrentry_T)); + taep->ae_attr = aep->ae_attr; #ifdef FEAT_GUI if (table == &gui_attr_table) { - gap->ae_u.gui.fg_color = aep->ae_u.gui.fg_color; - gap->ae_u.gui.bg_color = aep->ae_u.gui.bg_color; - gap->ae_u.gui.sp_color = aep->ae_u.gui.sp_color; - gap->ae_u.gui.font = aep->ae_u.gui.font; + taep->ae_u.gui.fg_color = aep->ae_u.gui.fg_color; + taep->ae_u.gui.bg_color = aep->ae_u.gui.bg_color; + taep->ae_u.gui.sp_color = aep->ae_u.gui.sp_color; + taep->ae_u.gui.font = aep->ae_u.gui.font; # ifdef FEAT_XFONTSET - gap->ae_u.gui.fontset = aep->ae_u.gui.fontset; + taep->ae_u.gui.fontset = aep->ae_u.gui.fontset; # endif } #endif if (table == &term_attr_table) { if (aep->ae_u.term.start == NULL) - gap->ae_u.term.start = NULL; + taep->ae_u.term.start = NULL; else - gap->ae_u.term.start = vim_strsave(aep->ae_u.term.start); + taep->ae_u.term.start = vim_strsave(aep->ae_u.term.start); if (aep->ae_u.term.stop == NULL) - gap->ae_u.term.stop = NULL; + taep->ae_u.term.stop = NULL; else - gap->ae_u.term.stop = vim_strsave(aep->ae_u.term.stop); + taep->ae_u.term.stop = vim_strsave(aep->ae_u.term.stop); } else if (table == &cterm_attr_table) { - gap->ae_u.cterm.fg_color = aep->ae_u.cterm.fg_color; - gap->ae_u.cterm.bg_color = aep->ae_u.cterm.bg_color; + taep->ae_u.cterm.fg_color = aep->ae_u.cterm.fg_color; + taep->ae_u.cterm.bg_color = aep->ae_u.cterm.bg_color; } ++table->ga_len; return (table->ga_len - 1 + ATTR_OFF); } +/* + * Clear all highlight tables. + */ + void +clear_hl_tables() +{ + int i; + attrentry_T *taep; + +#ifdef FEAT_GUI + ga_clear(&gui_attr_table); +#endif + for (i = 0; i < term_attr_table.ga_len; ++i) + { + taep = &(((attrentry_T *)term_attr_table.ga_data)[i]); + vim_free(taep->ae_u.term.start); + vim_free(taep->ae_u.term.stop); + } + ga_clear(&term_attr_table); + ga_clear(&cterm_attr_table); +} + #if defined(FEAT_SYN_HL) || defined(PROTO) /* * Combine special attributes (e.g., for spelling) with other attributes @@ -122,7 +122,8 @@ static taggy_T ptag_entry = {NULL}; * type == DT_LAST: jump to last match of same tag * type == DT_SELECT: ":tselect [tag]", select tag from a list of all matches * type == DT_JUMP: ":tjump [tag]", jump to tag or select tag from a list - * type == DT_CSCOPE: use cscope to find the tag. + * type == DT_CSCOPE: use cscope to find the tag + * type == DT_FREE: free cached matches * * for cscope, returns TRUE if we jumped to tag or aborted, FALSE otherwise */ @@ -173,6 +174,19 @@ do_tag(tag, type, count, forceit, verbose) static char_u **matches = NULL; static int flags; +#ifdef EXITFREE + if (type == DT_FREE) + { + /* remove the list of matches */ + FreeWild(num_matches, matches); +# ifdef FEAT_CSCOPE + cs_free_tags(); +# endif + num_matches = 0; + return FALSE; + } +#endif + if (type == DT_HELP) { type = DT_TAG; @@ -2108,7 +2122,8 @@ line_read_in: * other tag: <mtt><tag_fname><NUL><NUL><lbuf> * without Emacs tags: <mtt><tag_fname><NUL><lbuf> */ - len = (int)STRLEN(tag_fname) + (int)STRLEN(lbuf_line) + 3; + len = (int)STRLEN(tag_fname) + + (int)STRLEN(lbuf_line) + 3; #ifdef FEAT_EMACS_TAGS if (is_etag) len += (int)STRLEN(ebuf) + 1; @@ -2345,6 +2360,17 @@ found_tagfile_cb(fname, cookie) vim_strsave(fname); } +static void *search_ctx = NULL; + +#if defined(EXITFREE) || defined(PROTO) + void +free_tag_stuff() +{ + vim_findfile_cleanup(search_ctx); + do_tag(NULL, DT_FREE, 0, 0, 0); +} +#endif + /* * Get the next name of a tag file from the tag file list. * For help files, use "tags" file only. @@ -2356,7 +2382,6 @@ get_tagfname(first, buf) int first; /* TRUE when first file name is wanted */ char_u *buf; /* pointer to buffer of MAXPATHL chars */ { - static void *search_ctx = NULL; static char_u *np = NULL; static int did_filefind_init; static int hf_idx = 0; diff --git a/src/undo.c b/src/undo.c index 2bb545617..e586e5633 100644 --- a/src/undo.c +++ b/src/undo.c @@ -411,6 +411,8 @@ u_savecommon(top, bot, newbot) } } } + else + uep->ue_array = NULL; uep->ue_next = curbuf->b_u_newhead->uh_entry; curbuf->b_u_newhead->uh_entry = uep; curbuf->b_u_synced = FALSE; @@ -923,6 +925,7 @@ u_freeentry(uep, n) { while (n) U_FREE_LINE(uep->ue_array[--n]); + U_FREE_LINE((char_u *)uep->ue_array); U_FREE_LINE((char_u *)uep); } @@ -1047,6 +1050,7 @@ u_blockfree(buf) { while (buf->b_u_newhead != NULL) u_freelist(buf, buf->b_u_newhead); + U_FREE_LINE(buf->b_u_line_ptr); } #else diff --git a/src/version.h b/src/version.h index 4de29d0c1..0c38a0eab 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 Jun 24)" -#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Jun 24, compiled " +#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Jun 25)" +#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Jun 25, compiled " |