Skip to content

Commit

Permalink
Merge pull request #83 from jixiuf/fix-recenter-emacs27
Browse files Browse the repository at this point in the history
fix recenter for emacs27
  • Loading branch information
akermu committed May 2, 2019
2 parents 6adcedf + f83dff1 commit db9679d
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 1 deletion.
4 changes: 4 additions & 0 deletions elisp.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,10 @@ void delete_lines(emacs_env *env, int linenum, int count, bool del_whole_line) {
void recenter(emacs_env *env, emacs_value pos) {
env->funcall(env, Frecenter, 1, (emacs_value[]){pos});
}
bool eq(emacs_env *env, emacs_value e1, emacs_value e2) {
emacs_value Qeq = env->funcall(env, Feq, 2, (emacs_value[]){e1, e2});
return env->is_not_nil(env, Qeq);
}

void forward_char(emacs_env *env, emacs_value n) {
env->funcall(env, Fforward_char, 1, (emacs_value[]){n});
Expand Down
2 changes: 2 additions & 0 deletions elisp.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ emacs_value Fget_buffer_window;
emacs_value Fselected_window;
emacs_value Fvterm_set_title;
emacs_value Fvterm_invalidate;
emacs_value Feq;

// Utils
void bind_function(emacs_env *env, const char *name, emacs_value Sfun);
Expand All @@ -65,6 +66,7 @@ emacs_value get_hex_color_fg(emacs_env *env, emacs_value face);
emacs_value get_hex_color_bg(emacs_env *env, emacs_value face);
emacs_value buffer_line_number(emacs_env *env);
void recenter(emacs_env *env, emacs_value pos);
bool eq(emacs_env *env, emacs_value e1, emacs_value e2);
void forward_char(emacs_env *env, emacs_value n);
emacs_value get_buffer_window(emacs_env *env);
emacs_value selected_window(emacs_env *env);
Expand Down
3 changes: 2 additions & 1 deletion vterm-module.c
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ static void adjust_topline(Term *term, emacs_env *env, long added) {
emacs_value window = get_buffer_window(env);
emacs_value swindow = selected_window(env);

if (swindow == window) {
if (eq(env, window, swindow)) {
if (following) {
// "Follow" the terminal output
recenter(env, env->make_integer(
Expand Down Expand Up @@ -733,6 +733,7 @@ int emacs_module_init(struct emacs_runtime *ert) {
env->make_global_ref(env, env->intern(env, "vterm--set-title"));
Fvterm_invalidate =
env->make_global_ref(env, env->intern(env, "vterm--invalidate"));
Feq = env->make_global_ref(env, env->intern(env, "eq"));

// Exported functions
emacs_value fun;
Expand Down

0 comments on commit db9679d

Please sign in to comment.