diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el index 2c534aa785a..0b775b2d5c8 100644 --- a/lisp/progmodes/c-ts-mode.el +++ b/lisp/progmodes/c-ts-mode.el @@ -296,6 +296,9 @@ PARENT and BOL are like other anchor functions." (setq prev-sibling (treesit-node-child prev-sibling -2))) ((or "preproc_elif" "preproc_else") (setq prev-sibling (treesit-node-child prev-sibling -1))) + ((or "#elif" "#else") + (setq prev-sibling (treesit-node-prev-sibling + (treesit-node-parent prev-sibling) t))) ;; If the start of the previous sibling isn't at the ;; beginning of a line, something's probably not quite ;; right, go a step further. diff --git a/test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts b/test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts index a82596e0010..ce753b5b3ea 100644 --- a/test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts +++ b/test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts @@ -89,6 +89,9 @@ int main() { #else if (f->output_method == output_termcap) create_tty_output (f); +#elif defined (HAVE_X_WINDOWS) /* X without toolkit. */ + if (FRAME_WINDOW_P (f)) + {} #endif t->display_info.tty->top_frame = selected_frame; change_frame_size ();