if (tcsetattr(STDIN_FILENO, TCSADRAIN, &new_termios) < 0)
return -errno;
- r = loop_write(STDOUT_FILENO, "\x1B]11;?" ANSI_ST, SIZE_MAX);
+ r = loop_write(STDOUT_FILENO, ANSI_OSC "11;?" ANSI_ST, SIZE_MAX);
if (r < 0)
goto finish;
usec_t end = usec_add(now(CLOCK_MONOTONIC), 333 * USEC_PER_MSEC);
- char buf[STRLEN("\x1B]11;rgb:0/0/0" ANSI_ST)]; /* shortest possible reply */
+ char buf[STRLEN(ANSI_OSC "11;rgb:0/0/0" ANSI_ST)]; /* shortest possible reply */
size_t buf_full = 0;
BackgroundColorContext context = {};
* use 0x1B 0x5c */
#define ANSI_ST "\e\\"
+/* The "operating system command" ("OSC") start sequence */
+#define ANSI_OSC "\e]"
+
bool isatty_safe(int fd);
int terminal_reset_defensive(int fd, bool switch_to_text);
text = url;
if (urlify_enabled())
- n = strjoin("\x1B]8;;", url, ANSI_ST, text, "\x1B]8;;" ANSI_ST);
+ n = strjoin(ANSI_OSC "8;;", url, ANSI_ST,
+ text,
+ ANSI_OSC "8;;" ANSI_ST);
else
n = strdup(text);
if (!n)
* https://conemu.github.io/en/AnsiEscapeCodes.html#ConEmu_specific_OSC
* https://github.com/microsoft/terminal/pull/8055
*/
- fprintf(stderr, "\x1B]9;4;1;%u" ANSI_ST, (unsigned) ceil(percentage));
+ fprintf(stderr, ANSI_OSC "9;4;1;%u" ANSI_ST, (unsigned) ceil(percentage));
size_t cols = columns();
size_t prefix_width = utf8_console_width(prefix) + 1 /* space */;
stderr);
else
/* Undo Windows Terminal progress indication again. */
- fputs("\x1B]9;4;0;;" ANSI_ST
+ fputs(ANSI_OSC "9;4;0;;" ANSI_ST
ANSI_ERASE_TO_END_OF_LINE, stderr);
fputc('\r', stderr);
if (!t)
return 0;
- _cleanup_free_ char *joined = strjoin("\x1b]0;", f->title_prefix, t, ANSI_ST);
+ _cleanup_free_ char *joined = strjoin(ANSI_OSC "0;", f->title_prefix, t, ANSI_ST);
if (!joined)
return -ENOMEM;
if (f->title) {
if (!strextend(&f->out_buffer,
ANSI_WINDOW_TITLE_PUSH
- "\x1b]2;", f->title, ANSI_ST))
+ ANSI_OSC "2;", f->title, ANSI_ST))
return log_oom();
}