ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
manpage.h
Go to the documentation of this file.
1
16
17#pragma once
18
19#include "builder.h"
20#include "../common.h"
21#include <stdio.h>
22#include <stdbool.h>
23#include <stddef.h>
24
35
53
111 const char *mode_name, const char *output_path,
112 const char *brief_description);
113
130 const char *mode_name, const char *output_path,
131 const char *brief_description);
132
181 const char *mode_name, const char *output_path,
182 const char *brief_description);
183
194parsed_section_t *parse_manpage_sections(const char *filepath, size_t *num_sections);
195
204void free_parsed_sections(parsed_section_t *sections, size_t num_sections);
205
216const parsed_section_t *find_section(const parsed_section_t *sections, size_t num_sections, const char *section_name);
217
233#ifndef NDEBUG
234asciichat_error_t options_config_generate_final_manpage(const char *template_path, const char *output_path,
235 const char *version_string, const char *content_file_path);
236#endif
237
250const char *escape_groff_special(const char *str);
251
264const char *format_mode_names(option_mode_bitmask_t bitmask);
265
Options builder API for flexible command-line option configuration.
⚙️ Common definitions, error codes, macros, and types shared throughout the application
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
const parsed_section_t * find_section(const parsed_section_t *sections, size_t num_sections, const char *section_name)
Find section by name.
Definition manpage.c:763
const char * escape_groff_special(const char *str)
Escape special groff/troff characters in text.
Definition manpage.c:46
asciichat_error_t options_config_generate_final_manpage(const char *template_path, const char *output_path, const char *version_string, const char *content_file_path)
Generate final man page (.1) from template (.1.in) with version substitution and optional content fil...
Definition manpage.c:768
asciichat_error_t options_builder_generate_manpage_template(options_builder_t *builder, const char *program_name, const char *mode_name, const char *output_path, const char *brief_description)
Generate man page template from builder (before build()).
Definition manpage.c:229
asciichat_error_t options_config_generate_manpage_template(const options_config_t *config, const char *program_name, const char *mode_name, const char *output_path, const char *brief_description)
Generate a man page template from options builder configuration.
Definition manpage.c:106
void free_parsed_sections(parsed_section_t *sections, size_t num_sections)
Free parsed sections array.
Definition manpage.c:759
parsed_section_t * parse_manpage_sections(const char *filepath, size_t *num_sections)
Parse existing man page template to extract sections.
Definition manpage.c:736
const char * format_mode_names(option_mode_bitmask_t bitmask)
Format option mode names as human-readable string.
Definition manpage.c:50
option_mode_bitmask_t
Option mode bitmask.
Definition options.h:936
asciichat_error_t options_config_generate_manpage_merged(const options_config_t *config, const char *program_name, const char *mode_name, const char *output_path, const char *brief_description)
Generate merged man page template preserving manual content.
Definition manpage.c:688
section_type_t
Owned slice of a parsed roff man-page section.
Definition manpage.h:29
@ SECTION_TYPE_MERGE
Intelligently merged: auto + manual content.
Definition manpage.h:32
@ SECTION_TYPE_UNMARKED
No marker found, defaults to MANUAL.
Definition manpage.h:33
@ SECTION_TYPE_AUTO
Fully auto-generated, manual edits lost on regeneration.
Definition manpage.h:30
@ SECTION_TYPE_MANUAL
Manually maintained, never touched by generator.
Definition manpage.h:31
Immutable parsing tables produced from an options builder.
Definition builder.h:457
Immutable parsing tables produced from an options builder.
Definition builder.h:414
Owned slice of a parsed roff man-page section.
Definition manpage.h:44
bool has_markers
True if marked with AUTO/MANUAL/MERGE markers.
Definition manpage.h:51
char * content
Full section content (including .SH header).
Definition manpage.h:47
size_t content_len
Length of content.
Definition manpage.h:48
size_t end_line
Line number where section ends (1-based).
Definition manpage.h:50
size_t start_line
Line number where section starts (1-based).
Definition manpage.h:49
section_type_t type
Section type (AUTO/MANUAL/MERGE/UNMARKED).
Definition manpage.h:46
char * section_name
Section name (e.g., "ENVIRONMENT", "OPTIONS").
Definition manpage.h:45