Commit Diff


commit - ebd3fc9d15ad0d629bba5910c9719d061c785127
commit + 98411855465df0c75210def209a669060f239901
blob - a9c72168f9204fe2900169f3c3bd4872669e08fa
blob + 2f88e09f60ec774b7b5cfcf00b7bd34fc4f796b6
--- telescope.h
+++ telescope.h
@@ -340,6 +340,13 @@ extern int	 body_lines;
 extern int	 body_cols;
 extern int	 in_minibuffer;
 
+struct excursion {
+	int		 curs_x, curs_y;
+	size_t		 line_off;
+	struct vline	*current_line;
+	size_t		 cpoff;
+};
+
 enum pairs {
 	PTL_BG = 1,
 	PTL_TAB,
@@ -411,6 +418,8 @@ struct ministate {
 };
 extern struct ministate ministate;
 
+void		 save_excursion(struct excursion *, struct buffer *);
+void		 restore_excursion(struct excursion *, struct buffer *);
 void		 restore_cursor(struct buffer *);
 void		 minibuffer_taint_hist(void);
 void		 eecmd_self_insert(void);
blob - 81b7a7a5f38242ca6403f3d5ede068f4cdb40d5c
blob + dcfbb568f6985528326c5be137a2ef97654a1dc7
--- ui.c
+++ ui.c
@@ -274,6 +274,26 @@ load_default_keys(void)
 	minibuffer_set_key("M-n",		cmd_mini_next_history_element);
 	minibuffer_set_key("<up>",		cmd_mini_previous_history_element);
 	minibuffer_set_key("<down>",		cmd_mini_next_history_element);
+}
+
+void
+save_excursion(struct excursion *place, struct buffer *buffer)
+{
+	place->curs_x = buffer->curs_x;
+	place->curs_y = buffer->curs_y;
+	place->line_off = buffer->line_off;
+	place->current_line = buffer->current_line;
+	place->cpoff = buffer->cpoff;
+}
+
+void
+restore_excursion(struct excursion *place, struct buffer *buffer)
+{
+	buffer->curs_x = place->curs_x;
+	buffer->curs_y = place->curs_y;
+	buffer->line_off = place->line_off;
+	buffer->current_line = place->current_line;
+	buffer->cpoff = place->cpoff;
 }
 
 void