diff options
author | vimboss <devnull@localhost> | 2006-09-12 20:25:24 +0000 |
---|---|---|
committer | vimboss <devnull@localhost> | 2006-09-12 20:25:24 +0000 |
commit | 2191239c1c7115c252fe23bce7ee49aa9811ec6e (patch) | |
tree | 7cb0a180d879361482fae3eb266975a54d47ec46 | |
parent | 6f72df5ac12e5839bbe0bb8a6e2565fe5e6bc55e (diff) | |
download | vim-2191239c1c7115c252fe23bce7ee49aa9811ec6e.tar.gz |
-rw-r--r-- | src/spell.c | 13 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 12 insertions, 3 deletions
diff --git a/src/spell.c b/src/spell.c index a79453ea..a6581af1 100644 --- 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 index c170e153..2565b7ab 100644 --- 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, |