]> granicus.if.org Git - vim/commitdiff
updated for version 7.0093 v7.0093
authorBram Moolenaar <Bram@vim.org>
Sat, 25 Jun 2005 23:04:51 +0000 (23:04 +0000)
committerBram Moolenaar <Bram@vim.org>
Sat, 25 Jun 2005 23:04:51 +0000 (23:04 +0000)
49 files changed:
runtime/doc/change.txt
runtime/doc/eval.txt
runtime/doc/repeat.txt
runtime/doc/spell.txt
runtime/doc/tags
runtime/doc/todo.txt
runtime/doc/version7.txt
runtime/indent/lua.vim
runtime/spell/en.ascii.spl
src/edit.c
src/eval.c
src/ex_cmds.c
src/ex_cmds2.c
src/ex_eval.c
src/ex_getln.c
src/gui_gtk_x11.c
src/main.c
src/misc1.c
src/misc2.c
src/option.c
src/os_unix.c
src/proto/diff.pro
src/proto/edit.pro
src/proto/ex_cmds.pro
src/proto/ex_docmd.pro
src/proto/ex_getln.pro
src/proto/getchar.pro
src/proto/mark.pro
src/proto/misc1.pro
src/proto/option.pro
src/proto/quickfix.pro
src/proto/regexp.pro
src/proto/search.pro
src/proto/syntax.pro
src/proto/tag.pro
src/quickfix.c
src/regexp.c
src/search.c
src/spell/de_DE.diff
src/spell/en_AU.diff
src/spell/en_CA.diff
src/spell/en_GB.diff
src/spell/en_US.diff
src/spell/fr_FR.diff
src/spell/nl_NL.diff
src/syntax.c
src/tag.c
src/undo.c
src/version.h

index 31feaf56e0f966fe1d6e3471c14874ed5f5f1516..83f50f1831c8b730af80b40bdc2175ca78bf1d68 100644 (file)
@@ -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:
index 83f81ad68071f13a85789a79029a0a7913ea45de..8a96f9875bc68c76bb583ddc93953f86446e5d06 100644 (file)
@@ -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()*
index 5b9a541071243045c7ec2abff29166730a7f0e10..c08f123032494976df77910ee6ba677b1cd158d7 100644 (file)
@@ -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.
 
index 399fc679ca519ddcb3678c60f62b4bb8c555680b..aaef05f10ea6eb1a9a2775329c817d1c8e798809 100644 (file)
@@ -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.
index c4d5d78ff6ff2cba619ba98c4dbeb8d4cd0c7c71..3f0df20b7b76795301141e7c28974961eebd0a6e 100644 (file)
@@ -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*
index 9b617802afadc3d49a6be50278b12142c730024f..f9a221754ca38ae5cd26864cfa52c692a05ccc30 100644 (file)
@@ -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
index 40002dddb8f6cdfdd683baf59224a51c04e9e525..f9a634c94dca9d2951046de1d565f24a1fcb54d8 100644 (file)
@@ -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*
 
index ace7fd1a7fae16a8ea7023110bec48e727c9d9b6..ffe03be4a9a3f81eaf38a45df539e221a250e779 100644 (file)
@@ -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
index 739899cd1d5d5a0149115e02193e7b8479734e79..54630e7a6cd95c18135d9567d2e59480ac005dbf 100644 (file)
Binary files a/runtime/spell/en.ascii.spl and b/runtime/spell/en.ascii.spl differ
index ebfe7fd6996a6a65189a0bf0a505371e39c1edc6..c91170215dcc08c189ff1facecfb32016fff567d 100644 (file)
@@ -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.
index dc38936aa43e3de1e0a3f3708a52f8117e86d9e3..f3e31e2812ebfbaa880bdd2bd9722123e73bb660 100644 (file)
@@ -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);
 }
 
index 8346145663e37ab4239fbb496ba5c0fc50c8862b..9daa8f671a34205564c5a8370ea87099070fcb37 100644 (file)
@@ -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.
index b86e4812eab41974a8d97e915d881b57a22536dc..45bd2ee63f6a56bad9d520dcb3445f7a71932238 100644 (file)
@@ -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;
+       }
 }
 
 /*
index 485721b9c83c9972adc035f204d6cd4748c4d44c..eaa5dec8cb280059560a1072c6276e1a173ae034 100644 (file)
@@ -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;
 
index 86da1aa88a26e3abdf290816aeab00b27c7f841a..d221249e7eba4208bdb28106b6ed3ae6e0b402cb 100644 (file)
@@ -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
index 37858dcc89a0014d32595deb676fc93542003548..cd306093dcf6e5252c40fd344a578e76cd6c0322 100644 (file)
@@ -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
index 2bed19281610a6d0556a6f845d9bcd05781b8c9c..1b64c343544939e3340fcaf9ab091d9678468966 100644 (file)
@@ -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;
index 30d7696bd9b9cb64636832b7990a02d4ea2beb3d..87c0f1a0a13c1beaa7473291bd87452a18a7d355 100644 (file)
@@ -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.
index 4fdbc2798a4b4e1485fcef4c5332180589f53abd..fd882ff99132ca00ea7f5202fd7c24a212774336 100644 (file)
 # 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;
 }
 
index 97c0aa538ffeed12289506316120db3ebbb1e0dc..389ab6ea366c3793326f363be3f65aa5e4d85885 100644 (file)
@@ -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))
        {
index d27b05a6d37617b37269b52b595a8d36879fadb5..07645dc49f3f8d40f61500a991ff6afbdedf3026 100644 (file)
@@ -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
 
index b912a56d6a36718a0a3ff04043f23fefe6bfa0c0..b9b33c9e4018244871d7ef407ead6275f9fa55b6 100644 (file)
@@ -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));
index 59939593eba2f9e27b5a28d76de7d91bff3fea48..2168cd8b3efb50dcf07e72d8bc09721c8f3a4c51 100644 (file)
@@ -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));
index baa1233538edc73dc20f1f6df6f75516da2b07b3..6404cc8d6e4f4a2b53d69eb911e7d3481d1d1480 100644 (file)
@@ -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));
index 3a8200e38d63b81a2daa167d4359bb5db32c0f12..f4df30d766a06341defbef906e4838b3c135909f 100644 (file)
@@ -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));
index 688eb3d8f0d6c4582d6c90402ca0c630d12bb2a3..f0d45a31fe982a723dfb3d4594d9544cbd3a1db9 100644 (file)
@@ -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));
index 7b8d6bc859cda83c7006eb228157cef9e6ab1f94..86c3c6f0ff9ad688d8fc40fe8ac55a09dc494055 100644 (file)
@@ -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));
index f7e5cf8c52649d2d49fe54a10f87bbf4da4f726f..040f08bc05d17e042e6b0f268fe21f61b26be10d 100644 (file)
@@ -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));
index c2ae831fc733ab6f1eb32db6ed6f14f1ca18fb3d..94d04554c5f8a7aa16f92735727621a5f866b801 100644 (file)
@@ -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));
index c0c5504eb6311255ab3b90d9c749b1ebe87a7acd..49e1d9aead494513e1cb28ab2836da955ae08855 100644 (file)
@@ -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));
index cc2f2a75ac46e0f2b1858180d5da3ba36c481f08..7369a6441c1b555fd2aca75df38b5078fc02c234 100644 (file)
@@ -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));
index 0ff1c24eae0d0d1db3b93c33468d65c960b3e156..df2fde40cec97ddcd8c4df998c927a278d2deeb6 100644 (file)
@@ -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));
index 304ad7398f95aad42fe706673ee34b66ca497576..3d934f2afc53791bdf327a1a255ee9d4370fc444 100644 (file)
@@ -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));
index 967d88ed3a14d93cf65883dd27a2ae37f0fb20ad..4b132ead4bf2ee6825837758de042cf97d7ba622 100644 (file)
@@ -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));
index 5df6c30f72982cdd4ca99050c2980bef89c6b12c..8ee4c280ddc51f5c8125d6c5422415262c069fde 100644 (file)
@@ -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));
index 41ad00b203318b7f9ca17e7db4b3f7433fe76df8..5de1e11e16ae45ba619cdd61263ab62c55efbee0 100644 (file)
@@ -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.
index bc13b38ea4b775c5be792058f38c4491f127aefe..dd0b1530a55ebeeb9113f4ecfa6d71e9d0c1f5ac 100644 (file)
@@ -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;
 
index 5370769423ec0c98b6a86fadf3ac580aeb515a87..20745d9bc6a15ba84e7797d8be9ab6abefd84201 100644 (file)
@@ -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.
index 8940e4439fe6113c79140f33a7b14aee08deaa85..762215cbf6f0a7e312a10bc0172a8937c243fc32 100644 (file)
@@ -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
index d78f557bbb7d55acb2b1788e888c7f1b30aedffb..d1dedf4ae8ff97e8ea0bb536562b08d1857f0b7b 100644 (file)
@@ -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
   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
 ! 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
 ! 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
 + 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
   nationhood/M
 ! nation/M
   nationwide
---- 27192,27196 ----
+--- 27184,27188 ----
   nationals/4
 ! national/sQq3SZ
   nationhood/M
   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/!
index 62e72130c43d1d16cbe75b5817114891d2939789..a57ad347645b3811e9bf6e4d808d3042b08bd737 100644 (file)
@@ -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]
   
   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
   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
   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
   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
   bloodstone/M
 ! cetera/S
   storm/SGZRDM
---- 19262,19264 ----
+--- 19263,19265 ----
   bloodstone/M
 ! et cetera/S
   storm/SGZRDM
   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
   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
   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/!
index 42fdc5da41396331dd58b88386f45c80616c9c01..c2ec40467a7453d6c99d970ec72a9985bff49979 100644 (file)
@@ -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
   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
 ! 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
 ! 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
   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
 + dBd
   DCB
 ***************
+*** 11591,11593 ****
+  dérailleur/SM
+- e
+  e'en
+--- 11590,11591 ----
+***************
 *** 14591,14592 ****
---- 14590,14592 ----
+--- 14589,14591 ----
   native/SP
 + natively
   nativity/SM
   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
   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
   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
   qwerty
 - r/d
   Ra
---- 43667,43668 ----
+--- 43656,43657 ----
+***************
+*** 46148 ****
+--- 46138,46143 ----
+  à
++ the the/!
++ a a/!
++ a an/!
++ an a/!
++ an an/!
index 460fa4eb6f97b30ac434c490df5a6255879875d4..497400f039b0bc658eee46f1325ac377afff5dae 100644 (file)
@@ -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]
   
   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
 + 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
 ! 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
   dbl
   dB/M
   DBMS
---- 14038,14044 ----
+--- 14040,14046 ----
   dazzling/Y
   dbl
   dB/M
 + 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
 ! 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
   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
   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
   pompom/SM
 ! pompon's
   pomposity/MS
---- 43220,43222 ----
+--- 43221,43223 ----
   pompom/SM
 ! pompon/M
   pomposity/MS
   PX
 - p/XTGJ
   Pygmalion/M
---- 44944,44945 ----
+--- 44945,44946 ----
+***************
+*** 44983,44985 ****
+  pyx/MDSG
+- q
+  Q
+--- 44987,44988 ----
 ***************
 *** 46507,46509 ****
   Renault/MS
 ! sings
   sybarite/MS
 ***************
+*** 57728,57730 ****
+  TX
+! t/XTJBG
+  Tybalt/M
+--- 57727,57729 ----
+  TX
+! tings
+  Tybalt/M
+***************
 *** 57809,57811 ****
   Tzeltal/M
 - u
 + searchable
   unseasonal
 ***************
+*** 59072,59074 ****
+  vast/PTSYR
+! v/ASV
+  VAT
+--- 59071,59073 ----
+  vast/PTSYR
+! revs
+  VAT
+***************
 *** 59538,59540 ****
   vi/MDR
 ! vim/MS
 ! 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/!
index 1c02728bc4561795f194d7d6c5d8d7c38c26f544..2be033450a081b3a94770937b58d1511142acfa6 100644 (file)
@@ -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ß
+  
index f6a8f086e7c5a04b216307b95d936f92030c786c..c72a4e65d3e78c5426c73d62a93731dc60be950c 100644 (file)
@@ -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
 ! REP kontekst context 
 ! REP korrekt correct 
   REP kritikus criticus
---- 318,323 ----
+--- 320,325 ----
   REP klup club
 ! REP wiskid whizzkid
 ! REP kontakt contact
   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àáâãäå
 + 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 ----
   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.
   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
 + wishful thinking
 + à gogo
 + à propos
++ ca.
++ evt.
++ enz.
++ bijv.
index 6092a1c97527d8438a32a3c919b3217c3f1653af..313f6002de99499ac9cca1846542bcef67841a6b 100644 (file)
@@ -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
index e94322d6a624f4e36b7bf7437e1ad38cc9040a55..e780b3c30396acb2bc89f001c44e59a9776d23b6 100644 (file)
--- a/src/tag.c
+++ b/src/tag.c
@@ -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;
index 2bb54561773fd454d21e0a673b6a4f251fb1ff7a..e586e563371853476440011e1da2be9b1306b75e 100644 (file)
@@ -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
index 4de29d0c1c8de2efa7d2555b4f00af60e3d59b7b..0c38a0eab824c705c0b9cdd3ddb6842d554a99f7 100644 (file)
@@ -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 "