aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--vterm-module.c29
2 files changed, 15 insertions, 16 deletions
diff --git a/README.md b/README.md
index b7e7347..00107b4 100644
--- a/README.md
+++ b/README.md
@@ -100,7 +100,7 @@ For `zsh` put this in your `.zshrc`:
```zsh
function chpwd() {
- echo -e "\e]51;$(pwd)\e\\"
+ print -Pn "\e]51;$(pwd)\e\\";
}
```
diff --git a/vterm-module.c b/vterm-module.c
index 21ace5f..7b8270f 100644
--- a/vterm-module.c
+++ b/vterm-module.c
@@ -392,7 +392,8 @@ static void term_redraw(Term *term, emacs_env *env) {
}
if (term->directory_changed) {
- set_directory(env, env->make_string(env, term->directory, strlen(term->directory)));
+ set_directory(
+ env, env->make_string(env, term->directory, strlen(term->directory)));
term->directory_changed = false;
}
@@ -644,20 +645,18 @@ void term_finalize(void *object) {
free(term);
}
-static int osc_callback(const char *command, size_t cmdlen, void *user)
-{
- Term *term = (Term *) user;
+static int osc_callback(const char *command, size_t cmdlen, void *user) {
+ Term *term = (Term *)user;
char buffer[cmdlen + 1];
buffer[cmdlen] = '\0';
memcpy(buffer, command, cmdlen);
- if (term->directory != NULL) {
- free(term->directory);
- term->directory = NULL;
- }
-
if (cmdlen > 3 && buffer[0] == '5' && buffer[1] == '1' && buffer[2] == ';') {
+ if (term->directory != NULL) {
+ free(term->directory);
+ term->directory = NULL;
+ }
term->directory = malloc(cmdlen - 3 + 1);
strcpy(term->directory, &buffer[3]);
term->directory_changed = true;
@@ -667,12 +666,12 @@ static int osc_callback(const char *command, size_t cmdlen, void *user)
}
static VTermParserCallbacks parser_callbacks = {
- .text = NULL,
- .control = NULL,
- .escape = NULL,
- .csi = NULL,
- .osc = &osc_callback,
- .dcs = NULL,
+ .text = NULL,
+ .control = NULL,
+ .escape = NULL,
+ .csi = NULL,
+ .osc = &osc_callback,
+ .dcs = NULL,
};
emacs_value Fvterm_new(emacs_env *env, ptrdiff_t nargs, emacs_value args[],