libghostty
Loading...
Searching...
No Matches
Paste Utilities

Detailed Description

Utilities for validating paste data safety.

Basic Usage

Use ghostty_paste_is_safe() to check if paste data contains potentially dangerous sequences before sending it to the terminal.

Example

#include <stdio.h>
#include <string.h>
#include <ghostty/vt.h>
int main() {
const char* safe_data = "hello world";
const char* unsafe_data = "rm -rf /\n";
if (ghostty_paste_is_safe(safe_data, strlen(safe_data))) {
printf("Safe to paste\n");
}
if (!ghostty_paste_is_safe(unsafe_data, strlen(unsafe_data))) {
printf("Unsafe! Contains newline\n");
}
return 0;
}
bool ghostty_paste_is_safe(const char *data, size_t len)

Functions

bool ghostty_paste_is_safe (const char *data, size_t len)

Function Documentation

◆ ghostty_paste_is_safe()

bool ghostty_paste_is_safe ( const char * data,
size_t len )

Check if paste data is safe to paste into the terminal.

Data is considered unsafe if it contains:

  • Newlines (\n) which can inject commands
  • The bracketed paste end sequence (\x1b[201~) which can be used to exit bracketed paste mode and inject commands

This check is conservative and considers data unsafe regardless of current terminal state.

Parameters
dataThe paste data to check (must not be NULL)
lenThe length of the data in bytes
Returns
true if the data is safe to paste, false otherwise
Examples
c-vt-paste/src/main.c.