ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
platform/string.h
Go to the documentation of this file.
1#pragma once
2
16#include <stddef.h>
17#include <stdarg.h>
18#include <stdio.h>
19#include "../asciichat_errno.h"
20
21// Define ssize_t for all platforms
22#ifdef _WIN32
23#include <BaseTsd.h>
24typedef SSIZE_T ssize_t;
25#else
26#include <sys/types.h> // For ssize_t on POSIX systems
27#endif
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
33/* ============================================================================
34 * String Formatting
35 * ============================================================================
36 */
37
46int platform_vsnprintf(char *str, size_t size, const char *format, va_list ap);
47
58int platform_asprintf(char **strp, const char *format, ...);
59
67int platform_vasprintf(char **strp, const char *format, va_list ap);
68
74char *platform_strdup(const char *s);
75
82int platform_strcasecmp(const char *s1, const char *s2);
83
91int platform_strncasecmp(const char *s1, const char *s2, size_t n);
92
100char *platform_strtok_r(char *str, const char *delim, char **saveptr);
101
109size_t platform_strlcpy(char *dst, const char *src, size_t size);
110
119int platform_strncpy(char *dst, size_t dst_size, const char *src, size_t count);
120
128ssize_t platform_getline(char **lineptr, size_t *n, FILE *stream);
129
130/* ============================================================================
131 * Shell Path Escaping
132 * ============================================================================
133 */
134
160asciichat_error_t platform_escape_shell_path(const char *path, char *output, size_t output_size);
161
162#ifdef __cplusplus
163}
164#endif
165
asciichat_error_t
Error and exit codes - unified status values (0-255)
Definition error_codes.h:49
int platform_asprintf(char **strp, const char *format,...)
Allocate formatted string (asprintf replacement)
int platform_strncasecmp(const char *s1, const char *s2, size_t n)
Case-insensitive string comparison with length limit.
int platform_strcasecmp(const char *s1, const char *s2)
Case-insensitive string comparison.
ssize_t platform_getline(char **lineptr, size_t *n, FILE *stream)
Cross-platform getline implementation.
char * platform_strdup(const char *s)
Duplicate string (strdup replacement)
int platform_strncpy(char *dst, size_t dst_size, const char *src, size_t count)
Safe string copy with explicit size bounds (strncpy replacement)
size_t platform_strlcpy(char *dst, const char *src, size_t size)
Safe string copy with size tracking (strlcpy)
char * platform_strtok_r(char *str, const char *delim, char **saveptr)
Thread-safe string tokenization (strtok_r replacement)
int platform_vsnprintf(char *str, size_t size, const char *format, va_list ap)
Safe variable-argument string formatting.
int platform_vasprintf(char **strp, const char *format, va_list ap)
Allocate formatted string with va_list (vasprintf replacement)
asciichat_error_t platform_escape_shell_path(const char *path, char *output, size_t output_size)
Escape a path string for safe shell usage.