diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d37b6e6..d7e9939d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -64,6 +64,12 @@ ### Changed + +* OSC-9: sequences beginning with `;` are now ignored. These + sequences are ConEmu/Windows Terminal sequences, and not intended to + be notifications. + + ### Deprecated ### Removed ### Fixed diff --git a/osc.c b/osc.c index 535e29c8..72f3c366 100644 --- a/osc.c +++ b/osc.c @@ -1231,10 +1231,22 @@ osc_dispatch(struct terminal *term) osc_uri(term, string); break; - case 9: + case 9: { /* iTerm2 Growl notifications */ + const char *sep = strchr(string, ';'); + if (sep != NULL) { + errno = 0; + char *end = NULL; + strtoul(string, &end, 10); + if (end == sep && errno == 0) { + /* Ignore ConEmu/Windows Terminal escape */ + break; + } + } + osc_notify(term, string); break; + } case 10: /* fg */ case 11: /* bg */