commit - c4c8200352fa44cde50cbd6d44b395be3da28959
commit + 0a805b02e875d567d6752130f6a8ad13954ddf58
blob - 55a513ad69b5e71102390f476f64fe812173825c
blob + d0aa00a41fe1b7d1c3f698c0aa612c1497938598
--- telescope.h
+++ telescope.h
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);
void eecmd_select(void);
blob - ecec3c4b0de9dec0998e41844a293067f80e08c1
blob + 06a3922d220a391b8a27c9aae0e6dc6d3c015505
--- ui.c
+++ ui.c
static struct event stdioev, winchev;
+static void restore_curs_x(struct buffer *);
static void global_key_unbound(void);
static void minibuffer_hist_save_entry(void);
static void minibuffer_self_insert(void);
buffer->cpoff = place->cpoff;
}
-void
-restore_cursor(struct buffer *buffer)
+static void
+restore_curs_x(struct buffer *buffer)
{
struct vline *vl;
const char *prfx;
struct vline *vl;
int l, onscreen;
- restore_cursor(buffer);
+ restore_curs_x(buffer);
/*
- * Don't bother redraw the body if nothing changed. Cursor
- * movements count as "nothing changed" if it hasn't produced
- * a scroll. Ensure that wmove is called though!
+ * TODO: ignoring buffer->force_update and always
+ * re-rendering. In theory we can recompute the y position
+ * without a re-render, and optimize here. It's not the only
+ * optimisation possible here, wscrl wolud also be an
+ * interesting one.
*/
- if (!buffer->force_redraw &&
- buffer->last_line_off == buffer->line_off)
- goto end;
again:
werase(win);