Patch 7.4.108
Problem:    "zG" and "zW" leave temp files around on MS-Windows.
Solution:   Delete the temp files when exiting. (Ken Takata)
Files:      src/memline.c, src/proto/spell.pro, src/spell.c


*** ../vim-7.4.107/src/memline.c        2013-11-04 02:53:46.000000000 +0100
--- src/memline.c       2013-11-28 17:27:06.000000000 +0100
***************
*** 841,848 ****
      for (buf = firstbuf; buf != NULL; buf = buf->b_next)
        ml_close(buf, del_file && ((buf->b_flags & BF_PRESERVED) == 0
                                 || vim_strchr(p_cpo, CPO_PRESERVE) == NULL));
  #ifdef TEMPDIRNAMES
!     vim_deltempdir();     /* delete created temp directory */
  #endif
  }
  
--- 841,851 ----
      for (buf = firstbuf; buf != NULL; buf = buf->b_next)
        ml_close(buf, del_file && ((buf->b_flags & BF_PRESERVED) == 0
                                 || vim_strchr(p_cpo, CPO_PRESERVE) == NULL));
+ #ifdef FEAT_SPELL
+     spell_delete_wordlist();  /* delete the internal wordlist */
+ #endif
  #ifdef TEMPDIRNAMES
!     vim_deltempdir();         /* delete created temp directory */
  #endif
  }
  
*** ../vim-7.4.107/src/proto/spell.pro  2013-08-10 13:37:26.000000000 +0200
--- src/proto/spell.pro 2013-11-28 17:25:59.000000000 +0100
***************
*** 3,8 ****
--- 3,9 ----
  int spell_move_to __ARGS((win_T *wp, int dir, int allwords, int curline, 
hlf_T *attrp));
  void spell_cat_line __ARGS((char_u *buf, char_u *line, int maxlen));
  char_u *did_set_spelllang __ARGS((win_T *wp));
+ void spell_delete_wordlist __ARGS((void));
  void spell_free_all __ARGS((void));
  void spell_reload __ARGS((void));
  int spell_check_msm __ARGS((void));
*** ../vim-7.4.107/src/spell.c  2013-11-21 17:42:26.000000000 +0100
--- src/spell.c 2013-11-28 17:25:59.000000000 +0100
***************
*** 2180,2188 ****
      char_u    *endp;
      hlf_T     attr;
      int               len;
! # ifdef FEAT_SYN_HL
      int               has_syntax = syntax_present(wp);
! # endif
      int               col;
      int               can_spell;
      char_u    *buf = NULL;
--- 2180,2188 ----
      char_u    *endp;
      hlf_T     attr;
      int               len;
! #ifdef FEAT_SYN_HL
      int               has_syntax = syntax_present(wp);
! #endif
      int               col;
      int               can_spell;
      char_u    *buf = NULL;
***************
*** 2280,2286 ****
                                                     : p - buf)
                                                  > wp->w_cursor.col)))
                    {
! # ifdef FEAT_SYN_HL
                        if (has_syntax)
                        {
                            col = (int)(p - buf);
--- 2280,2286 ----
                                                     : p - buf)
                                                  > wp->w_cursor.col)))
                    {
! #ifdef FEAT_SYN_HL
                        if (has_syntax)
                        {
                            col = (int)(p - buf);
***************
*** 4701,4707 ****
      return flags;
  }
  
! # if defined(FEAT_MBYTE) || defined(EXITFREE) || defined(PROTO)
  /*
   * Free all languages.
   */
--- 4701,4725 ----
      return flags;
  }
  
! /*
!  * Delete the internal wordlist and its .spl file.
!  */
!     void
! spell_delete_wordlist()
! {
!     char_u    fname[MAXPATHL];
! 
!     if (int_wordlist != NULL)
!     {
!       mch_remove(int_wordlist);
!       int_wordlist_spl(fname);
!       mch_remove(fname);
!       vim_free(int_wordlist);
!       int_wordlist = NULL;
!     }
! }
! 
! #if defined(FEAT_MBYTE) || defined(EXITFREE) || defined(PROTO)
  /*
   * Free all languages.
   */
***************
*** 4710,4716 ****
  {
      slang_T   *slang;
      buf_T     *buf;
-     char_u    fname[MAXPATHL];
  
      /* Go through all buffers and handle 'spelllang'. <VN> */
      for (buf = firstbuf; buf != NULL; buf = buf->b_next)
--- 4728,4733 ----
***************
*** 4723,4746 ****
        slang_free(slang);
      }
  
!     if (int_wordlist != NULL)
!     {
!       /* Delete the internal wordlist and its .spl file */
!       mch_remove(int_wordlist);
!       int_wordlist_spl(fname);
!       mch_remove(fname);
!       vim_free(int_wordlist);
!       int_wordlist = NULL;
!     }
  
      vim_free(repl_to);
      repl_to = NULL;
      vim_free(repl_from);
      repl_from = NULL;
  }
! # endif
  
! # if defined(FEAT_MBYTE) || defined(PROTO)
  /*
   * Clear all spelling tables and reload them.
   * Used after 'encoding' is set and when ":mkspell" was used.
--- 4740,4755 ----
        slang_free(slang);
      }
  
!     spell_delete_wordlist();
  
      vim_free(repl_to);
      repl_to = NULL;
      vim_free(repl_from);
      repl_from = NULL;
  }
! #endif
  
! #if defined(FEAT_MBYTE) || defined(PROTO)
  /*
   * Clear all spelling tables and reload them.
   * Used after 'encoding' is set and when ":mkspell" was used.
***************
*** 4773,4779 ****
        }
      }
  }
! # endif
  
  /*
   * Reload the spell file "fname" if it's loaded.
--- 4782,4788 ----
        }
      }
  }
! #endif
  
  /*
   * Reload the spell file "fname" if it's loaded.
*** ../vim-7.4.107/src/version.c        2013-11-28 17:04:38.000000000 +0100
--- src/version.c       2013-11-28 17:26:31.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
  {   /* Add new patch number below this line */
+ /**/
+     108,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
9. All your daydreaming is preoccupied with getting a faster connection to the
   net: 28.8...ISDN...cable modem...T1...T3.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Raspunde prin e-mail lui