mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-10-01 23:48:35 +00:00

This also changes OSC strings to be null-terminated to ease lib-vt integration. This shouldn't have any practical effect on terminal performance, but it does lower the maximum length of OSC strings by 1 since we always reserve space for the null terminator.
37 lines
969 B
C
37 lines
969 B
C
#include <stddef.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <ghostty/vt.h>
|
|
|
|
int main() {
|
|
GhosttyOscParser parser;
|
|
if (ghostty_osc_new(NULL, &parser) != GHOSTTY_SUCCESS) {
|
|
return 1;
|
|
}
|
|
|
|
// Setup change window title command to change the title to "hello"
|
|
ghostty_osc_next(parser, '0');
|
|
ghostty_osc_next(parser, ';');
|
|
const char *title = "hello";
|
|
for (size_t i = 0; i < strlen(title); i++) {
|
|
ghostty_osc_next(parser, title[i]);
|
|
}
|
|
|
|
// End parsing and get command
|
|
GhosttyOscCommand command = ghostty_osc_end(parser, 0);
|
|
|
|
// Get and print command type
|
|
GhosttyOscCommandType type = ghostty_osc_command_type(command);
|
|
printf("Command type: %d\n", type);
|
|
|
|
// Extract and print the title
|
|
if (ghostty_osc_command_data(command, GHOSTTY_OSC_DATA_CHANGE_WINDOW_TITLE_STR, &title)) {
|
|
printf("Extracted title: %s\n", title);
|
|
} else {
|
|
printf("Failed to extract title\n");
|
|
}
|
|
|
|
ghostty_osc_free(parser);
|
|
return 0;
|
|
}
|