Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package emacs-vterm for openSUSE:Factory 
checked in at 2026-09-12 21:21:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/emacs-vterm (Old)
 and      /work/SRC/openSUSE:Factory/.emacs-vterm.new.1265 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "emacs-vterm"

Sat Sep 12 21:21:32 2026 rev:5 rq:1377470 version:724.7092111

Changes:
--------
--- /work/SRC/openSUSE:Factory/emacs-vterm/emacs-vterm.changes  2026-03-03 
15:31:49.679263470 +0100
+++ /work/SRC/openSUSE:Factory/.emacs-vterm.new.1265/emacs-vterm.changes        
2026-09-12 21:25:19.366448124 +0200
@@ -1,0 +2,15 @@
+Sat Sep 05 02:53:17 UTC 2026 - RN <[email protected]>
+
+- Update to version 724.7092111:
+  * fix: avoid parsing user input as options in emacs-vterm.fish
+  * feat: add DEL for terminal Emacs, handle C-DEL
+  * fix: use current tramp method instead of default
+  * feat: show vterm directory in buffer listings
+  * fix: remove unused resizing flag.
+  * fix: prevent metadata array corruption on reflow-triggered sb_pop.
+  * fix: avoid resize metadata corruption with reflow
+  * feat: enable reflow feature from vterm 0.3+.
+  * Fix backtrack on doubleclick in vterm
+  * Fix return type of `string_bytes`
+
+-------------------------------------------------------------------

Old:
----
  emacs-libvterm-708.99c1f5e.obscpio
  emacs-libvterm-715.a01a289.obscpio

New:
----
  emacs-libvterm-724.7092111.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ emacs-vterm.spec ++++++
--- /var/tmp/diff_new_pack.BkkNRO/_old  2026-09-12 21:25:19.848468355 +0200
+++ /var/tmp/diff_new_pack.BkkNRO/_new  2026-09-12 21:25:19.849468397 +0200
@@ -21,7 +21,7 @@
 %global _upstream_name emacs-libvterm
 
 Name:           emacs-%{_name}
-Version:        715.a01a289
+Version:        724.7092111
 Release:        0
 Summary:        An experimental module for libvterm bindings to Emacs
 License:        GPL-3.0-or-later

++++++ emacs-libvterm-708.99c1f5e.obscpio -> emacs-libvterm-724.7092111.obscpio 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emacs-libvterm-708.99c1f5e/CMakeLists.txt 
new/emacs-libvterm-724.7092111/CMakeLists.txt
--- old/emacs-libvterm-708.99c1f5e/CMakeLists.txt       2024-12-18 
04:31:26.000000000 +0100
+++ new/emacs-libvterm-724.7092111/CMakeLists.txt       2026-07-30 
16:14:18.000000000 +0200
@@ -51,6 +51,10 @@
     if (${VTermSBClearExists} EQUAL "0")
       add_definitions(-DVTermSBClearNotExists)
     endif()
+    execute_process(COMMAND  grep -c "vterm_screen_enable_reflow" 
"${LIBVTERM_INCLUDE_DIR}/vterm.h" OUTPUT_VARIABLE VTermScreenEnableReflowExists)
+    if (${VTermScreenEnableReflowExists} EQUAL "0")
+      add_definitions(-DVTermScreenEnableReflowNotExists)
+    endif()
   else()
     message(STATUS "System libvterm not found: libvterm will be downloaded and 
compiled as part of the build process")
   endif()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emacs-libvterm-708.99c1f5e/README.md 
new/emacs-libvterm-724.7092111/README.md
--- old/emacs-libvterm-708.99c1f5e/README.md    2024-12-18 04:31:26.000000000 
+0100
+++ new/emacs-libvterm-724.7092111/README.md    2026-07-30 16:14:18.000000000 
+0200
@@ -3,7 +3,7 @@
 # Introduction
 
 Emacs-libvterm (_vterm_) is fully-fledged terminal emulator inside GNU Emacs
-based on [libvterm](https://github.com/neovim/libvterm), a C library. As a
+based on [`libvterm`](https://github.com/neovim/libvterm), a C library. As a
 result of using compiled code (instead of elisp), emacs-libvterm is fully
 capable, fast, and it can seamlessly handle large outputs.
 
@@ -45,9 +45,10 @@
   `vterm` outperforms `term` and has a nearly universal compatibility with
   terminal applications.
 
-Vterm is not for you if you are using Windows, or if you cannot set up Emacs
-with support for modules. Otherwise, you should try vterm, as it provides a
-superior terminal experience in Emacs.
+Vterm is not for you [if you are using
+Windows](https://github.com/akermu/emacs-libvterm/issues/12), or if you cannot
+set up Emacs with support for modules. Otherwise, you should try vterm, as it
+provides a superior terminal experience in Emacs.
 
 Using `vterm` is like using Gnome Terminal inside Emacs: Vterm is 
fully-featured
 and fast, but is not as well integrated in Emacs as `eshell` (yet), so some of
@@ -85,7 +86,7 @@
 with support for modules), `vterm` will compile the module the first time it is
 run. This is the recommended way to install `vterm`.
 
-`vterm` can be install from MELPA with `use-package` by adding the following
+`vterm` can be installed from MELPA with `use-package` by adding the following
 lines to your `init.el`:
 
 ```elisp
@@ -105,8 +106,8 @@
 git clone https://github.com/akermu/emacs-libvterm.git
 ```
 
-By default, vterm will try to find if libvterm is installed. If it is not 
found,
-emacs-libvterm will download the latest version available of libvterm (from
+By default, vterm will try to find if `libvterm` is installed. If it is not 
found,
+emacs-libvterm will download the latest version available of `libvterm` (from
 [here](https://github.com/neovim/libvterm)), compile it, and use it. If you
 always want to use the vendored version as opposed to the one on you system, 
set
 `USE_SYSTEM_LIBVTERM` to `no`. To do this, change `cmake ..` with `cmake
@@ -139,18 +140,20 @@
 ## vterm and Ubuntu
 ### 20.04
 Using `vterm` on Ubuntu requires additional steps. The latest LTS version
-(20.04) ships without CMake installed and Emacs27 is not yet available from 
Ubuntu's package repository.
+(20.04) ships without CMake installed and Emacs27 is not yet available from
+Ubuntu's package repository.
 
 The basic steps for getting vterm to work on Ubuntu 20.04 are:
 * Ensure Emacs27 is installed
-* Install cmake, libtool, and libtool-bin
+* Install `cmake`, `libtool`, and `libtool-bin`
 
 There are a few options for installing Emacs27 on Ubuntu 20.04:
 * Compile Emacs27 from source
 * Install Emacs27 from Snap
 * Install Emacs27 from Kevin Kelley's PPA
 
-In any case, if you have an older Emacs version you will need to purge it 
before proceeding:
+In any case, if you have an older Emacs version you will need to purge it 
before
+proceeding:
 
 #### Purge Emacs
 
@@ -198,9 +201,9 @@
 
 ### 18.04
 
-Using `vterm` on Ubuntu 18.04 requires additional steps.
-18.04 ships with a version of CMake that is too old for `vterm` and GNU
-Emacs is not compiled with support for dynamical module loading.
+Using `vterm` on Ubuntu 18.04 requires additional steps. 18.04 ships with a
+version of CMake that is too old for `vterm` and GNU Emacs is not compiled with
+support for dynamical module loading.
 
 It is possible to install GNU Emacs with module support from Kevin Kelley's 
PPA.
 The binary in Ubuntu Emacs Lisp PPA is currently broken and leads to 
segmentation faults
@@ -228,7 +231,7 @@
 Pull requests to improve support for Ubuntu are welcome (e.g., simplifying the
 installation).
 
-Some releases of Ubuntu (e.g., 18.04) ship with a old version of libvterm that
+Some releases of Ubuntu (e.g., 18.04) ship with a old version of `libvterm` 
that
 can lead to compilation errors. If you have this problem, see the
 [FAQ](#frequently-asked-questions-and-problems) for a solution.
 
@@ -369,9 +372,9 @@
 
 ## `vterm-environment`
 
-to add more environment variables there is the custom vterm-environment which 
has
-a similar format than the internal Emacs variable process-environment.
-You can check the documentation with C-h v process-environment for more 
details.
+To add more environment variables there is the custom `vterm-environment` which
+has a similar format to the internal Emacs variable `process-environment`. You
+can check the documentation with `C-h v process-environment` for more details.
 
 ## `vterm-term-environment-variable`
 
@@ -390,8 +393,8 @@
 
 Compilation flags and arguments to be given to CMake when compiling the module.
 This string is directly passed to CMake, so it uses the same syntax. At the
-moment, it main use is for compiling vterm using the system libvterm instead of
-the one downloaded from GitHub. You can find all the arguments and flags
+moment, its main use is for compiling vterm using the system `libvterm` instead
+of the one downloaded from GitHub. You can find all the arguments and flags
 available with `cmake -LA` in the build directory.
 
 ## `vterm-copy-exclude-prompt`
@@ -412,21 +415,24 @@
 
 Vterm support copy text to Emacs kill ring and system clipboard by using OSC 
52.
 See https://invisible-island.net/xterm/ctlseqs/ctlseqs.html for more info 
about OSC 52.
-For example: send 'blabla' to kill ring: printf "\033]52;c;$(printf "%s" 
"blabla" | base64)\a"
+For example: send `"blabla"` to kill ring: `printf "\033]52;c;$(printf "%s" 
"blabla" | base64)\a"`
 
-tmux can share its copy buffer to terminals by supporting osc52(like iterm2 
xterm),
-you can enable this feature for tmux by :
+tmux can share its copy buffer to terminals by supporting OSC 52 (like iterm2
+and xterm), you can enable this feature for tmux by:
+
+```
 set -g set-clipboard on         #osc 52 copy paste share with iterm
 set -ga terminal-overrides ',xterm*:XT:Ms=\E]52;%p1%s;%p2%s\007'
 set -ga terminal-overrides ',screen*:XT:Ms=\E]52;%p1%s;%p2%s\007'
+```
 
 The clipboard querying/clearing functionality offered by OSC 52 is not 
implemented here,
-And for security reason, this feature is disabled by default."
+And for security reason, this feature is disabled by default.
 
-This feature need the new way of handling strings with a struct 
`VTermStringFragment`
-in libvterm. You'd better compile emacs-libvterm with `cmake 
-DUSE_SYSTEM_LIBVTERM=no ..`.
-If you don't do that, when  the content you want to copied is too long, it 
would be truncated
-by bug of libvterm.
+This feature needs the new way of handling strings with a struct
+`VTermStringFragment` in `libvterm`. You'd better compile `emacs-libvterm` with
+`cmake -DUSE_SYSTEM_LIBVTERM=no ..`. If you don't do that, when the content you
+want to copy is too long, it would be truncated by a bug in `libvterm`.
 
 ## `vterm-buffer-name-string`
 
@@ -437,7 +443,7 @@
 to which all the vterm buffers will be named "vterm TITLE".
 
 This requires some shell-side configuration to print the title. For example to
-set the name "HOSTNAME:PWD", use can you the following:
+set the name "HOSTNAME:PWD", you can use the following:
 
 For `zsh`,
 
@@ -477,10 +483,10 @@
 When not-nil fake newlines are removed on entering copy mode.
 vterm inserts fake-newlines purely for rendering. When using
 `vterm-copy-mode` these are in conflict with many emacs functions
-like isearch-forward. if this varialbe is not-nil the
+like `isearch-forward`. if this variable is not-nil the
 fake-newlines are removed on entering copy-mode and re-inserted
-on leaving copy mode. Also truncate-lines is set to t on entering
-copy-mode and set to nil on leaving.
+on leaving copy mode. Also `truncate-lines` is set to `t` on entering
+copy-mode and set to `nil` on leaving.
 
 ## `vterm-tramp-shells`
 
@@ -490,10 +496,10 @@
 `(TRAMP-METHOD SHELL)`
 
 The `TRAMP-METHOD` is a method string as used by tramp (e.g., `"ssh"`).
-Use t as `TRAMP-METHOD` to specify a default shell for all methods.
+Use `t` as `TRAMP-METHOD` to specify a default shell for all methods.
 Specific methods always take precedence over `t`.
 
-Set SHELL to `'login-shell` to use the user's login shell on the remote host.
+Set `SHELL` to `'login-shell` to use the user's login shell on the remote host.
 The login-shell detection currently works for POSIX-compliant remote hosts that
 have the `getent` command (regular GNU/Linux distros, *BSDs, but not MacOS X
 unfortunately).
@@ -504,7 +510,7 @@
 fall back to tramp's shell.
 
 Examples:
-- Usee the default login shell for all methods, except for docker.
+- Use the default login shell for all methods, except for docker.
   `'((t login-shell) ("docker" "/bin/sh"))`
 - Use the default login shell for ssh and scp, fall back to "/bin/bash".
   Use tramp's default shell for all other methods.
@@ -552,7 +558,7 @@
 
 You can use another font for vterm buffer
 
-``` elisp
+```elisp
 (add-hook 'vterm-mode-hook
           (lambda ()
                (set (make-local-variable 'buffer-face-mode-face) '(:family 
"IosevkaTerm Nerd Font"))
@@ -560,7 +566,8 @@
 ```
 ## Blink cursor
 
-When `vterm-ignore-blink-cursor` is `t`, vterm will ignore request from 
application to turn on or off cursor blink.
+When `vterm-ignore-blink-cursor` is `t`, vterm will ignore request from
+application to turn on or off cursor blink.
 
 If `nil`, cursor in any window may begin to blink or not blink because 
`blink-cursor-mode`
 is a global minor mode in Emacs, you can use `M-x blink-cursor-mode` to toggle.
@@ -596,9 +603,9 @@
 `find-file`) will do so starting from the current location.
 
 And `vterm` supports _prompt tracking_. If this feature is enabled, Emacs knows
-where the prompt ends, you needn't  customize `term-prompt-regexp` any more.
-Then you can use `vterm-next-prompt` and `vterm-previous-prompt`
-moving to end of next/previous prompt. The default keybinding is `C-c C-n` and 
`C-c C-p`.
+where the prompt ends, you needn't customize `term-prompt-regexp` any more. 
Then
+you can use `vterm-next-prompt` and `vterm-previous-prompt` moving to end of
+next/previous prompt. The default keybinding is `C-c C-n` and `C-c C-p`.
 
 And `vterm-beginning-of-line` would move the point to the first character 
after the
 shell prompt on this line. If the point is already there, move to the 
beginning of the line.
@@ -704,7 +711,7 @@
 function vterm_cmd --description 'Run an Emacs command among the ones been 
defined in vterm-eval-cmds.'
     set -l vterm_elisp ()
     for arg in $argv
-        set -a vterm_elisp (printf '"%s" ' (string replace -a -r '([\\\\"])' 
'\\\\\\\\$1' $arg))
+        set -a vterm_elisp (printf '"%s" ' (string replace -a -r -- 
'([\\\\"])' '\\\\\\\\$1' $arg))
     end
     vterm_printf '51;E'(string join '' $vterm_elisp)
 end
@@ -816,8 +823,8 @@
 
 The version of `libvterm` installed on your system is too old. You should let
 `emacs-libvterm` download `libvterm` for you. You can either uninstall your
-libvterm, or instruct Emacs to ignore the system libvterm. If you are compiling
-from Emacs, you can do this by setting:
+`libvterm`, or instruct Emacs to ignore the system `libvterm`. If you are
+compiling from Emacs, you can do this by setting:
 
 ```elisp
 (setq vterm-module-cmake-args "-DUSE_SYSTEM_LIBVTERM=no")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emacs-libvterm-708.99c1f5e/elisp.c 
new/emacs-libvterm-724.7092111/elisp.c
--- old/emacs-libvterm-708.99c1f5e/elisp.c      2024-12-18 04:31:26.000000000 
+0100
+++ new/emacs-libvterm-724.7092111/elisp.c      2026-07-30 16:14:18.000000000 
+0200
@@ -79,7 +79,7 @@
   return env->funcall(env, Fsymbol_value, 1, (emacs_value[]){symbol});
 }
 
-int string_bytes(emacs_env *env, emacs_value string) {
+ptrdiff_t string_bytes(emacs_env *env, emacs_value string) {
   ptrdiff_t size = 0;
   env->copy_string_contents(env, string, NULL, &size);
   return size;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emacs-libvterm-708.99c1f5e/elisp.h 
new/emacs-libvterm-724.7092111/elisp.h
--- old/emacs-libvterm-708.99c1f5e/elisp.h      2024-12-18 04:31:26.000000000 
+0100
+++ new/emacs-libvterm-724.7092111/elisp.h      2026-07-30 16:14:18.000000000 
+0200
@@ -65,7 +65,7 @@
 void bind_function(emacs_env *env, const char *name, emacs_value Sfun);
 void provide(emacs_env *env, const char *feature);
 emacs_value symbol_value(emacs_env *env, emacs_value symbol);
-int string_bytes(emacs_env *env, emacs_value string);
+ptrdiff_t string_bytes(emacs_env *env, emacs_value string);
 emacs_value length(emacs_env *env, emacs_value string);
 emacs_value list(emacs_env *env, emacs_value elements[], ptrdiff_t len);
 emacs_value nth(emacs_env *env, int idx, emacs_value list);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emacs-libvterm-708.99c1f5e/etc/emacs-vterm.fish 
new/emacs-libvterm-724.7092111/etc/emacs-vterm.fish
--- old/emacs-libvterm-708.99c1f5e/etc/emacs-vterm.fish 2024-12-18 
04:31:26.000000000 +0100
+++ new/emacs-libvterm-724.7092111/etc/emacs-vterm.fish 2026-07-30 
16:14:18.000000000 +0200
@@ -40,7 +40,7 @@
 function vterm_cmd --description 'Run an Emacs command among the ones defined 
in vterm-eval-cmds.'
     set -l vterm_elisp ()
     for arg in $argv
-        set -a vterm_elisp (printf '"%s" ' (string replace -a -r '([\\\\"])' 
'\\\\\\\\$1' $arg))
+        set -a vterm_elisp (printf '"%s" ' (string replace -a -r -- 
'([\\\\"])' '\\\\\\\\$1' $arg))
     end
     vterm_printf '51;E'(string join '' $vterm_elisp)
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emacs-libvterm-708.99c1f5e/vterm-module.c 
new/emacs-libvterm-724.7092111/vterm-module.c
--- old/emacs-libvterm-708.99c1f5e/vterm-module.c       2024-12-18 
04:31:26.000000000 +0100
+++ new/emacs-libvterm-724.7092111/vterm-module.c       2026-07-30 
16:14:18.000000000 +0200
@@ -28,6 +28,9 @@
 }
 static int term_sb_push(int cols, const VTermScreenCell *cells, void *data) {
   Term *term = (Term *)data;
+  bool pushed_by_height_decr =
+      term->height_resize < 0 &&
+      term->sb_pending_by_height_decr < -term->height_resize;
 
   if (!term->sb_size) {
     return 0;
@@ -69,8 +72,9 @@
   sbrow->info = term->lines[0];
   memmove(term->lines, term->lines + 1,
           sizeof(term->lines[0]) * (term->lines_len - 1));
-  if (term->resizing) {
-    /* pushed by window height decr */
+  if (pushed_by_height_decr) {
+    /* Only shrink line metadata for rows lost to a height decrease.
+       Reflow can also push lines during width changes. */
     if (term->lines[term->lines_len - 1] != NULL) {
       /* do not need free here ,it is reused ,we just need set null */
       term->lines[term->lines_len - 1] = NULL;
@@ -97,8 +101,7 @@
   if (term->sb_pending < term->sb_size) {
     term->sb_pending++;
     /* when window height decreased */
-    if (term->height_resize < 0 &&
-        term->sb_pending_by_height_decr < -term->height_resize) {
+    if (pushed_by_height_decr) {
       term->sb_pending_by_height_decr++;
     }
   }
@@ -114,6 +117,9 @@
 /// @param data   Term
 static int term_sb_pop(int cols, VTermScreenCell *cells, void *data) {
   Term *term = (Term *)data;
+  bool popped_by_height_incr =
+      term->height_resize > 0 &&
+      term->lines_len < term->height + term->height_resize;
 
   if (!term->sb_current) {
     return 0;
@@ -142,14 +148,23 @@
     cells[col].width = 1;
   }
 
-  LineInfo **lines = malloc(sizeof(LineInfo *) * (term->lines_len + 1));
-
-  memmove(lines + 1, term->lines, sizeof(term->lines[0]) * term->lines_len);
-  lines[0] = sbrow->info;
+  if (popped_by_height_incr) {
+    LineInfo **lines = malloc(sizeof(LineInfo *) * (term->lines_len + 1));
+    memmove(lines + 1, term->lines, sizeof(term->lines[0]) * term->lines_len);
+    lines[0] = sbrow->info;
+    term->lines_len += 1;
+    free(term->lines);
+    term->lines = lines;
+  } else if (term->lines_len > 0) {
+    LineInfo *lastline = term->lines[term->lines_len - 1];
+    memmove(term->lines + 1, term->lines,
+            sizeof(term->lines[0]) * (term->lines_len - 1));
+    term->lines[0] = sbrow->info;
+    free_lineinfo(lastline);
+  } else {
+    free_lineinfo(sbrow->info);
+  }
   free(sbrow);
-  term->lines_len += 1;
-  free(term->lines);
-  term->lines = lines;
 
   return 1;
 }
@@ -209,8 +224,11 @@
 static char *get_row_directory(Term *term, int row) {
   if (row < 0) {
     ScrollbackLine *sbrow = term->sb_buffer[-row - 1];
-    return sbrow->info->directory;
-    /* return term->dirs[0]; */
+    if ( sbrow && sbrow->info && sbrow->info->directory ) {
+      return sbrow->info->directory;
+    } else {
+      return NULL;
+    }
   } else {
     LineInfo *line = term->lines[row];
     return line ? line->directory : NULL;
@@ -418,10 +436,11 @@
   term->invalid_start = 0;
   term->invalid_end = rows;
 
-  /* if rows=term->lines_len, that means term_sb_pop already resize term->lines
-   */
+  /* term_sb_pop grows term->lines only for rows gained by height increases.
+   * Reflow can also pop lines during width changes, but those pops keep the
+   * metadata length stable. */
   /* if rows<term->lines_len, term_sb_push would resize term->lines there */
-  /* we noly need to take care of rows>term->height */
+  /* we only need to take care of rows>term->height */
 
   if (rows > term->height) {
     if (rows > term->lines_len) {
@@ -453,7 +472,6 @@
   term->height = rows;
 
   invalidate_terminal(term, -1, -1);
-  term->resizing = false;
 
   return 1;
 }
@@ -485,8 +503,8 @@
 
     term->linenum += term->sb_pending;
     del_cnt = term->linenum - max_line_count; /* extra lines at the bottom */
-    /* buf_index is negative,so we move to end of buffer,then backward
-       -buf_index lines. goto lines backward is effectively when
+    /* buf_index is negative, so we move to end of buffer, then backward
+       -buf_index lines. goto lines backward is effective when
        vterm-max-scrollback is a large number.
      */
     int buf_index = -(term->height + del_cnt);
@@ -500,7 +518,7 @@
   del_cnt = term->linenum - max_line_count;
   if (del_cnt > 0) {
     term->linenum -= del_cnt;
-    /* -del_cnt is negative,so we delete_lines from end of buffer.
+    /* -del_cnt is negative, so we delete_lines from end of buffer.
        this line means: delete del_cnt count of lines at end of buffer.
      */
     delete_lines(env, -del_cnt, del_cnt, true);
@@ -515,7 +533,7 @@
   VTermPos pos;
   vterm_state_get_cursorpos(state, &pos);
 
-  /* pos.row-term->height is negative,so we backward term->height-pos.row
+  /* pos.row-term->height is negative, so we backward term->height-pos.row
    * lines from end of buffer
    */
 
@@ -1230,7 +1248,7 @@
   int disable_underline = env->is_not_nil(env, args[4]);
   int disable_inverse_video = env->is_not_nil(env, args[5]);
   int ignore_blink_cursor = env->is_not_nil(env, args[6]);
-  int set_bold_hightbright = env->is_not_nil(env, args[7]);
+  int set_bold_highbright = env->is_not_nil(env, args[7]);
 
   term->vt = vterm_new(rows, cols);
   vterm_set_utf8(term->vt, 1);
@@ -1244,12 +1262,15 @@
   vterm_state_set_selection_callbacks(state, &selection_callbacks, term,
                                       term->selection_buf, SELECTION_BUF_LEN);
 #endif
-  vterm_state_set_bold_highbright(state, set_bold_hightbright);
+  vterm_state_set_bold_highbright(state, set_bold_highbright);
 
   vterm_screen_reset(term->vts, 1);
   vterm_screen_set_callbacks(term->vts, &vterm_screen_callbacks, term);
   vterm_screen_set_damage_merge(term->vts, VTERM_DAMAGE_SCROLL);
   vterm_screen_enable_altscreen(term->vts, true);
+#ifndef VTermScreenEnableReflowNotExists
+  vterm_screen_enable_reflow(term->vts, true);
+#endif
   term->sb_size = MIN(SB_MAX, sb_size);
   term->sb_current = 0;
   term->sb_pending = 0;
@@ -1272,7 +1293,6 @@
   }
   term->linenum = term->height;
   term->linenum_added = 0;
-  term->resizing = false;
 
   term->pty_fd = -1;
 
@@ -1370,7 +1390,6 @@
         term->linenum_added = rows - term->height - term->sb_current;
       }
     }
-    term->resizing = true;
     vterm_set_size(term->vt, rows, cols);
     vterm_screen_flush_damage(term->vts);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emacs-libvterm-708.99c1f5e/vterm-module.h 
new/emacs-libvterm-724.7092111/vterm-module.h
--- old/emacs-libvterm-708.99c1f5e/vterm-module.h       2024-12-18 
04:31:26.000000000 +0100
+++ new/emacs-libvterm-724.7092111/vterm-module.h       2026-07-30 
16:14:18.000000000 +0200
@@ -113,7 +113,6 @@
 
   int width, height;
   int height_resize;
-  bool resizing;
   bool disable_bold_font;
   bool disable_underline;
   bool disable_inverse_video;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/emacs-libvterm-708.99c1f5e/vterm.el 
new/emacs-libvterm-724.7092111/vterm.el
--- old/emacs-libvterm-708.99c1f5e/vterm.el     2024-12-18 04:31:26.000000000 
+0100
+++ new/emacs-libvterm-724.7092111/vterm.el     2026-07-30 16:14:18.000000000 
+0200
@@ -43,7 +43,7 @@
 ;; emacs-libvterm will downloaded and compiled.  In this case, libtool is
 ;; needed.
 
-;; The reccomended way to install emacs-libvterm is from MELPA.
+;; The recommended way to install emacs-libvterm is from MELPA.
 
 ;;; Usage
 
@@ -383,11 +383,14 @@
   :type  'boolean
   :group 'vterm)
 
-(defcustom vterm-set-bold-hightbright nil
-  "When not-nil, using hightbright colors for bolded text, see #549."
+(defcustom vterm-set-bold-highbright nil
+  "When not-nil, using highbright colors for bolded text, see #549."
   :type  'boolean
   :group 'vterm)
 
+(define-obsolete-variable-alias 'vterm-set-bold-hightbright
+  'vterm-set-bold-highbright "0.0.2")
+
 (defcustom vterm-ignore-blink-cursor t
   "When t, vterm will ignore request from application to turn on/off cursor 
blink.
 
@@ -429,7 +432,7 @@
 
 vterm inserts \\='fake\\=' newlines purely for rendering. When using
 vterm-copy-mode these are in conflict with many emacs functions
-like isearch-forward. if this varialbe is not-nil the
+like isearch-forward. if this variable is not-nil the
 fake-newlines are removed on entering copy-mode and re-inserted
 on leaving copy mode. Also truncate-lines is set to t on entering
 copy-mode and set to nil on leaving."
@@ -574,7 +577,7 @@
   "Shell process of current term.")
 
 (defvar-local vterm--redraw-timer nil)
-(defvar-local vterm--redraw-immididately nil)
+(defvar-local vterm--redraw-immediately nil)
 (defvar-local vterm--linenum-remapping nil)
 (defvar-local vterm--prompt-tracking-enabled-p nil)
 (defvar-local vterm--insert-function (symbol-function #'insert))
@@ -583,6 +586,7 @@
 (defvar-local vterm--undecoded-bytes nil)
 (defvar-local vterm--copy-mode-fake-newlines nil)
 
+(define-obsolete-variable-alias 'vterm--redraw-immididately 
'vterm--redraw-immediately "2025-07-15")
 
 (defvar vterm-timer-delay 0.1
   "Delay for refreshing the buffer after receiving updates from libvterm.
@@ -675,6 +679,8 @@
     (define-key map [backspace]                 #'vterm-send-backspace)
     (define-key map (kbd "DEL")                 #'vterm-send-backspace)
     (define-key map [delete]                    #'vterm-send-delete)
+    (define-key map (kbd "<deletechar>")        #'vterm-send-delete) ; OKAY!
+    (define-key map [C-delete]                  #'vterm-send-ctrl-delete)
     (define-key map [M-backspace]               #'vterm-send-meta-backspace)
     (define-key map (kbd "M-DEL")               #'vterm-send-meta-backspace)
     (define-key map [C-backspace]               #'vterm-send-meta-backspace)
@@ -774,7 +780,7 @@
                                   vterm-disable-underline
                                   vterm-disable-inverse-video
                                   vterm-ignore-blink-cursor
-                                  vterm-set-bold-hightbright))
+                                  vterm-set-bold-highbright))
     (setq buffer-read-only t)
     (setq-local scroll-conservatively 101)
     (setq-local scroll-margin 0)
@@ -839,7 +845,10 @@
   ;; Support to compilation-shell-minor-mode
   ;; Is this necessary? See vterm--compilation-setup
   (setq next-error-function 'vterm-next-error-function)
-  (setq-local bookmark-make-record-function 'vterm--bookmark-make-record))
+  (setq-local bookmark-make-record-function 'vterm--bookmark-make-record)
+
+  ;; Support to display directory in buffer listings.
+  (setq list-buffers-directory (expand-file-name default-directory)))
 
 (defun vterm--tramp-get-shell (method)
   "Get the shell for a remote location as specified in `vterm-tramp-shells'.
@@ -994,7 +1003,7 @@
 behave similarly to buffer in `fundamental-mode'.  This mode is
 typically used to copy text from vterm buffers.
 
-A conventient way to exit `vterm-copy-mode' is with
+A convenient way to exit `vterm-copy-mode' is with
 `vterm-copy-mode-done', which copies the selected text and exit
 `vterm-copy-mode'."
   :group 'vterm
@@ -1055,7 +1064,7 @@
     (let ((inhibit-redisplay t)
           (inhibit-read-only t))
       (vterm--update vterm--term key shift meta ctrl)
-      (setq vterm--redraw-immididately t)
+      (setq vterm--redraw-immediately t)
       (when accept-proc-output
         (accept-process-output vterm--process vterm-timer-delay nil t)))))
 
@@ -1114,6 +1123,11 @@
   (interactive)
   (vterm-send-key "<delete>"))
 
+(defun vterm-send-ctrl-delete ()
+  "Send `C-<delete>' to the libvterm."
+  (interactive)
+  (vterm-send-key "<delete>" nil nil t))
+
 (defun vterm-send-meta-backspace ()
   "Send `M-<backspace>' to the libvterm."
   (interactive)
@@ -1239,12 +1253,9 @@
 But when clicking to the unused area below the last prompt,
 move the cursor to the prompt area."
   (interactive "e\np")
-  (let ((pt (mouse-set-point event promote-to-region)))
-    (if (= (count-words pt (point-max)) 0)
-        (vterm-reset-cursor-point)
-      pt))
-  ;; Otherwise it selects text for every other click
-  (keyboard-quit))
+  (if (> (count-words (posn-point (event-end event)) (point-max)) 0)
+      (mouse-set-point event promote-to-region)
+    (vterm-reset-cursor-point)))
 
 (defun vterm-send-string (string &optional paste-p)
   "Send the string STRING to vterm.
@@ -1256,7 +1267,7 @@
       (vterm--update vterm--term (char-to-string char)))
     (when paste-p
       (vterm--update vterm--term "<end_paste>")))
-  (setq vterm--redraw-immididately t)
+  (setq vterm--redraw-immediately t)
   (accept-process-output vterm--process vterm-timer-delay nil t))
 
 (defun vterm-insert (&rest contents)
@@ -1271,11 +1282,11 @@
         (dolist (char (string-to-list c))
           (vterm--update vterm--term (char-to-string char)))))
     (vterm--update vterm--term "<end_paste>")
-    (setq vterm--redraw-immididately t)
+    (setq vterm--redraw-immediately t)
     (accept-process-output vterm--process vterm-timer-delay nil t)))
 
 (defun vterm-delete-region (start end)
-  "Delete the text between START and END for vterm. "
+  "Delete the text between START and END for vterm."
   (when vterm--term
     (save-excursion
       (when (get-text-property start 'vterm-line-wrap)
@@ -1313,9 +1324,9 @@
 ;;; Internal
 
 (defun vterm--forward-char ()
-  "Move point 1 character forward ().
+  "Move point 1 character forward.
 
-the return value is `t' when cursor moved."
+The return value is `t' when cursor moved."
   (vterm-reset-cursor-point)
   (let ((pt (point)))
     (vterm-send-key "<right>" nil nil nil t)
@@ -1339,7 +1350,7 @@
 (defun vterm--backward-char ()
   "Move point N characters backward.
 
-Return count of moved characeters."
+Return count of moved characters."
   (vterm-reset-cursor-point)
   (let ((pt (point)))
     (vterm-send-key "<left>" nil nil nil t)
@@ -1398,14 +1409,14 @@
 
 (defun vterm--invalidate ()
   "The terminal buffer is invalidated, the buffer needs redrawing."
-  (if (and (not vterm--redraw-immididately)
+  (if (and (not vterm--redraw-immediately)
            vterm-timer-delay)
       (unless vterm--redraw-timer
         (setq vterm--redraw-timer
               (run-with-timer vterm-timer-delay nil
                               #'vterm--delayed-redraw (current-buffer))))
     (vterm--delayed-redraw (current-buffer))
-    (setq vterm--redraw-immididately nil)))
+    (setq vterm--redraw-immediately nil)))
 
 (defun vterm-check-proc (&optional buffer)
   "Check if there is a running process associated to the vterm buffer BUFFER.
@@ -1698,7 +1709,9 @@
 (defun vterm--set-directory (path)
   "Set `default-directory' to PATH."
   (let ((dir (vterm--get-directory path)))
-    (when dir (setq default-directory dir))))
+    (when dir
+      (setq default-directory dir)
+      (setq list-buffers-directory dir))))
 
 (defun vterm--get-directory (path)
   "Get normalized directory to PATH."
@@ -1714,7 +1727,10 @@
                   (progn
                     (when (file-directory-p dir)
                       (setq directory (file-name-as-directory dir))))
-                (setq directory (file-name-as-directory (concat "/-:" 
path))))))
+                (let ((method (if (tramp-tramp-file-p default-directory)
+                                  (tramp-file-name-method 
(tramp-dissect-file-name default-directory))
+                                tramp-default-method-marker)))
+                  (setq directory (file-name-as-directory (concat 
tramp-prefix-format method tramp-postfix-method-format path)))))))
         (when (file-directory-p path)
           (setq directory (file-name-as-directory path))))
       directory)))
@@ -1814,7 +1830,7 @@
 
 (defun vterm--get-beginning-of-line (&optional pt)
   "Find the start of the line, bypassing line wraps.
-If PT is specified, find it's beginning of the line instead of the beginning
+If PT is specified, find its beginning of the line instead of the beginning
 of the line at cursor."
   (save-excursion
     (when pt (goto-char pt))
@@ -1826,8 +1842,8 @@
     (point)))
 
 (defun vterm--get-end-of-line (&optional pt)
-  "Find the start of the line, bypassing line wraps.
-If PT is specified, find it's end of the line instead of the end
+  "Find the end of the line, bypassing line wraps.
+If PT is specified, find its end of the line instead of the end
 of the line at cursor."
   (save-excursion
     (when pt (goto-char pt))
@@ -1862,7 +1878,7 @@
   (= (point) (or (vterm--get-prompt-point) 0)))
 
 (defun vterm-cursor-in-command-buffer-p (&optional pt)
-  "Check whether cursor in command buffer area."
+  "Check whether cursor is in command buffer area."
   (save-excursion
     (vterm-reset-cursor-point)
     (let ((promp-pt (vterm--get-prompt-point)))

++++++ emacs-libvterm.obsinfo ++++++
--- /var/tmp/diff_new_pack.BkkNRO/_old  2026-09-12 21:25:19.984474064 +0200
+++ /var/tmp/diff_new_pack.BkkNRO/_new  2026-09-12 21:25:19.988474231 +0200
@@ -1,5 +1,5 @@
 name: emacs-libvterm
-version: 715.a01a289
-mtime: 1763571189
-commit: a01a2894a1c1e81a39527835a9169e35b7ec5dec
+version: 724.7092111
+mtime: 1785420858
+commit: 70921114908ebb260d6686db8cbe2445a64f90a2
 

Reply via email to