# HG changeset patch # User vimboss # Date 1158092724 0 # Node ID f88008797313e07112b8c4e549dc2217747fed98 # Parent ed44c1c436d3d61a94062c7a781b77dabeb8ebbe updated for version 7.0-101 diff --git a/src/spell.c b/src/spell.c --- a/src/spell.c +++ b/src/spell.c @@ -9347,20 +9347,27 @@ spell_add_word(word, len, bad, idx, undo fclose(fd); } } - else + + if (!undo) { fd = mch_fopen((char *)fname, "a"); if (fd == NULL && new_spf) { + char_u *p; + /* We just initialized the 'spellfile' option and can't open the * file. We may need to create the "spell" directory first. We * already checked the runtime directory is writable in * init_spellfile(). */ - if (!dir_of_file_exists(fname)) - { + if (!dir_of_file_exists(fname) && (p = gettail_sep(fname)) != fname) + { + int c = *p; + /* The directory doesn't exist. Try creating it and opening * the file again. */ - vim_mkdir(NameBuff, 0755); + *p = NUL; + vim_mkdir(fname, 0755); + *p = c; fd = mch_fopen((char *)fname, "a"); } } diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -667,6 +667,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 101, +/**/ 100, /**/ 99,