mirror of
https://github.com/ghostty-org/ghostty.git
synced 2026-04-13 19:15:48 +00:00
libghostty: add cpp-vt-stream example and fix C++ header compatibility
Add a cpp-vt-stream example that verifies libghostty headers compile cleanly in C++ mode. The example is a simplified C++ port of c-vt-stream. The headers used the C idiom `typedef struct Foo* Foo` for opaque handles, which is invalid in C++ because struct tags and typedefs share the same namespace. Fix all 12 opaque handle typedefs across the headers to use a distinct struct tag with an Impl suffix, e.g. `typedef struct GhosttyTerminalImpl* GhosttyTerminal`. This is a source-compatible change for existing C consumers since the struct tags were never referenced directly.
This commit is contained in:
19
example/cpp-vt-stream/README.md
Normal file
19
example/cpp-vt-stream/README.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# Example: VT Stream Processing in C++
|
||||
|
||||
This contains a simple example of how to use `ghostty_terminal_vt_write`
|
||||
to parse and process VT sequences in C++. This is a simplified C++ port
|
||||
of the `c-vt-stream` example that verifies libghostty compiles in C++
|
||||
mode.
|
||||
|
||||
> [!IMPORTANT]
|
||||
>
|
||||
> **`libghostty` is a C library.** This example is only here so our CI
|
||||
> verifies that the library can be built in used from C++ files.
|
||||
|
||||
## Usage
|
||||
|
||||
Run the program:
|
||||
|
||||
```shell-session
|
||||
zig build run
|
||||
```
|
||||
Reference in New Issue
Block a user