aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/mark.h
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2015-06-28 08:06:16 +0300
committerZyX <kp-pav@yandex.ru>2015-10-08 21:59:53 +0300
commit200e62efebe8e87fc612218b675b74def57519f1 (patch)
tree6aa90a5522f5ef70a9eb3b6d8edb10a477c171a7 /src/nvim/mark.h
parent9ab08c82569d57fad29da95dc776ae288300903e (diff)
downloadrneovim-200e62efebe8e87fc612218b675b74def57519f1.tar.gz
rneovim-200e62efebe8e87fc612218b675b74def57519f1.tar.bz2
rneovim-200e62efebe8e87fc612218b675b74def57519f1.zip
shada: Add support for dumping/restoring bufs changes and win jumps
Diffstat (limited to 'src/nvim/mark.h')
-rw-r--r--src/nvim/mark.h31
1 files changed, 28 insertions, 3 deletions
diff --git a/src/nvim/mark.h b/src/nvim/mark.h
index a8aaf56648..3f63e274bb 100644
--- a/src/nvim/mark.h
+++ b/src/nvim/mark.h
@@ -3,24 +3,49 @@
#include "nvim/buffer_defs.h"
#include "nvim/mark_defs.h"
+#include "nvim/memory.h"
#include "nvim/pos.h"
#include "nvim/os/time.h"
-/// Free and set fmark using given value
-#define RESET_FMARK(fmarkp_, mark_, fnum_) \
+/// Set fmark using given value
+#define SET_FMARK(fmarkp_, mark_, fnum_) \
do { \
fmark_T *const fmarkp__ = fmarkp_; \
- free_fmark(*fmarkp__); \
fmarkp__->mark = mark_; \
fmarkp__->fnum = fnum_; \
fmarkp__->timestamp = os_time(); \
fmarkp__->additional_data = NULL; \
} while (0)
+/// Free and set fmark using given value
+#define RESET_FMARK(fmarkp_, mark_, fnum_) \
+ do { \
+ fmark_T *const fmarkp___ = fmarkp_; \
+ free_fmark(*fmarkp___); \
+ SET_FMARK(fmarkp___, mark_, fnum_); \
+ } while (0)
+
/// Clear given fmark
#define CLEAR_FMARK(fmarkp_) \
RESET_FMARK(fmarkp_, ((pos_T) {0, 0, 0}), 0)
+/// Set given extended mark (regular mark + file name)
+#define SET_XFMARK(xfmarkp_, mark_, fnum_, fname_) \
+ do { \
+ xfmark_T *const xfmarkp__ = xfmarkp_; \
+ xfmarkp__->fname = fname_; \
+ SET_FMARK(&(xfmarkp__->fmark), mark_, fnum_); \
+ } while (0)
+
+/// Free and set given extended mark (regular mark + file name)
+#define RESET_XFMARK(xfmarkp_, mark_, fnum_, fname_) \
+ do { \
+ xfmark_T *const xfmarkp__ = xfmarkp_; \
+ free_xfmark(*xfmarkp__); \
+ xfmarkp__->fname = fname_; \
+ SET_FMARK(&(xfmarkp__->fmark), mark_, fnum_); \
+ } while (0)
+
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "mark.h.generated.h"
#endif