Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

updated for version 7.3.703

Problem:    When 'undofile' is reset the hash is computed unnecessarily.
Solution:   Only compute the hash when the option was set. (Christian Brabandt)
  • Loading branch information...
commit 9a8ace4dd27eb7405ca5e4d1b41de88e96545490 1 parent 354e9e9
@brammool brammool authored
Showing with 22 additions and 14 deletions.
  1. +20 −14 src/option.c
  2. +2 −0  src/version.c
View
34 src/option.c
@@ -7573,24 +7573,30 @@ set_bool_option(opt_idx, varp, value, opt_flags)
/* 'undofile' */
else if ((int *)varp == &curbuf->b_p_udf || (int *)varp == &p_udf)
{
- char_u hash[UNDO_HASH_SIZE];
- buf_T *save_curbuf = curbuf;
-
- for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next)
+ /* Only take action when the option was set. When reset we do not
+ * delete the undo file, the option may be set again without making
+ * any changes in between. */
+ if (curbuf->b_p_udf || p_udf)
{
- /* When 'undofile' is set globally: for every buffer, otherwise
- * only for the current buffer: Try to read in the undofile, if
- * one exists and the buffer wasn't changed and the buffer was
- * loaded. */
- if ((curbuf == save_curbuf
- || (opt_flags & OPT_GLOBAL) || opt_flags == 0)
- && !curbufIsChanged() && curbuf->b_ml.ml_mfp != NULL)
+ char_u hash[UNDO_HASH_SIZE];
+ buf_T *save_curbuf = curbuf;
+
+ for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next)
{
- u_compute_hash(hash);
- u_read_undo(NULL, hash, curbuf->b_fname);
+ /* When 'undofile' is set globally: for every buffer, otherwise
+ * only for the current buffer: Try to read in the undofile,
+ * if one exists, the buffer wasn't changed and the buffer was
+ * loaded */
+ if ((curbuf == save_curbuf
+ || (opt_flags & OPT_GLOBAL) || opt_flags == 0)
+ && !curbufIsChanged() && curbuf->b_ml.ml_mfp != NULL)
+ {
+ u_compute_hash(hash);
+ u_read_undo(NULL, hash, curbuf->b_fname);
+ }
}
+ curbuf = save_curbuf;
}
- curbuf = save_curbuf;
}
#endif
View
2  src/version.c
@@ -720,6 +720,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 703,
+/**/
702,
/**/
701,
Please sign in to comment.
Something went wrong with that request. Please try again.