27#include "platform/windows/getopt.h"
51 char **remaining_argv;
57 return defaults_result;
67 if (remaining_argc > 0) {
68 (void)fprintf(stderr,
"Error: Unexpected arguments after options:\n");
69 for (
int i = 0; i < remaining_argc; i++) {
70 (void)fprintf(stderr,
" %s\n", remaining_argv[i]);
73 return option_error_invalid();
113 (void)fprintf(desc,
"Error: Failed to create options config\n");
118 (void)fprintf(desc,
"USAGE:\n");
119 (void)fprintf(desc,
" %s [options...]\n\n", config->
program_name);
127 (void)fprintf(desc,
" %s\n", pos_arg->
examples[i]);
129 (void)fprintf(desc,
"\n");
asciichat_error_t parse_acds_options(int argc, char **argv, options_t *opts)
Parse ACDS-specific command-line options.
⚠️‼️ Error and/or exit() when things go bad.
void options_config_print_usage(const options_config_t *config, FILE *stream)
Print usage/help text.
asciichat_error_t options_config_set_defaults(const options_config_t *config, void *options_struct)
Set default values in options struct.
asciichat_error_t options_config_parse(const options_config_t *config, int argc, char **argv, void *options_struct, int *remaining_argc, char ***remaining_argv)
Parse command-line arguments.
void options_config_destroy(options_config_t *config)
Free options config.
Options builder API for flexible command-line option configuration.
const options_config_t * options_preset_acds(const char *program_name, const char *description)
Get acds mode options preset.
#define SAFE_STRNCPY(dst, src, size)
#define SET_ERRNO(code, context_msg,...)
Set error code with custom context message and log it.
asciichat_error_t
Error and exit codes - unified status values (0-255)
char opt_acds_key_path[OPTIONS_BUFF_SIZE]
Ed25519 identity key path (ACDS mode only)
int opt_acds_port
TCP listen port (ACDS mode only)
#define OPTIONS_BUFF_SIZE
Buffer size for option string values.
void usage_acds(FILE *desc)
Print ACDS usage information.
char opt_acds_database_path[OPTIONS_BUFF_SIZE]
SQLite database path (ACDS mode only)
char * get_config_dir(void)
Get configuration directory path with XDG_CONFIG_HOME support.
🌍 IP Address Parsing and Formatting Utilities
📝 Logging API with multiple log levels and terminal output control
ACDS (Discovery Service) mode option parsing.
Common utilities and helpers for option parsing.
Validation functions for options parsing.
⚙️ Command-line options parsing and configuration management for ascii-chat
📂 Path Manipulation Utilities
positional_arg_descriptor_t * positional_args
Array of positional argument descriptors.
const char * program_name
For usage header.
size_t num_positional_args
Number of positional arguments.
const char * description
For usage header.
Consolidated options structure.
char acds_key_path[256]
ACDS identity key file path (default: ~/.ascii-chat/acds_identity)
char acds_database_path[256]
ACDS database file path (default: ~/.ascii-chat/acds.db)
Positional argument descriptor.
const char * section_heading
Section heading for examples (e.g., "ADDRESS FORMATS")
const char ** examples
Array of example strings with descriptions.
size_t num_examples
Number of examples.
Common SIMD utilities and structures.