// File: /workspace/github_c_makefile_star2_O2/j-hoppe[P]tu58fs/getopt2.c
// Function: getopt_help_option_intern
static void getopt_help_option_intern(getopt_option_descr_t *odesc, FILE *stream, unsigned linelen, unsigned indent)
{
	char linebuff[2 * GETOPT_MAX_LINELEN];
	char phrase[2 * GETOPT_MAX_LINELEN];
	linebuff[0] = 0;

	// print syntax
	strncpy(phrase, getopt_getoptionsyntax(odesc, 1), sizeof(phrase));
	output_append(stream, linebuff, sizeof(linebuff), phrase, /*linebreak*/0, linelen, indent);
	output_append(stream, linebuff, sizeof(linebuff), "", /*linebreak*/1, linelen, indent); // newline
	if (odesc->info)
		getopt_print_multilinestring(stream, linebuff, sizeof(linebuff), odesc->info, linelen, indent);
	if (odesc->default_args) {
		snprintf(phrase, sizeof(phrase), " Default: \"%s\"", odesc->default_args);
		output_append(stream, linebuff, sizeof(linebuff), phrase, /*linebreak*/0, linelen, indent);
	}

	// print examples:
	if (odesc->example_simple_cline_args) {
		output_append(stream, linebuff, sizeof(linebuff), "Simple example:  ", 1, linelen, indent);
		if (odesc->short_name) {
			output_append(stream, linebuff, sizeof(linebuff), "-", 0, linelen, indent);
			output_append(stream, linebuff, sizeof(linebuff), odesc->short_name, 0, linelen, indent);
			output_append(stream, linebuff, sizeof(linebuff), " ", 0, linelen, indent);
		}
		getopt_print_multilinestring(stream, linebuff, sizeof(linebuff), odesc->example_simple_cline_args, linelen, indent + 4);
		output_append(stream, linebuff, sizeof(linebuff), "    ", /*linebreak*/1, linelen, indent); // newline + extra indent
//		output_append(stream, linebuff, sizeof(linebuff), "", /*linebreak*/1, linelen, indent); // newline + extra indent
		getopt_print_multilinestring(stream, linebuff, sizeof(linebuff), odesc->example_simple_info, linelen, indent + 4);
	}
	if (odesc->example_complex_cline_args) {
		output_append(stream, linebuff, sizeof(linebuff), "Complex example:  ", 1, linelen, indent);
		if (odesc->long_name) {
			output_append(stream, linebuff, sizeof(linebuff), "--", 0, linelen, indent);
			output_append(stream, linebuff, sizeof(linebuff), odesc->long_name, 0, linelen, indent);
			output_append(stream, linebuff, sizeof(linebuff), " ", 0, linelen, indent);
		}
		getopt_print_multilinestring(stream, linebuff, sizeof(linebuff), odesc->example_complex_cline_args, linelen, indent + 4);
		//		output_append(stream, linebuff, sizeof(linebuff), "", /*linebreak*/1, linelen, indent); // newline + extra indent
		output_append(stream, linebuff, sizeof(linebuff), "    ", /*linebreak*/1, linelen, indent); // newline + extra indent
		getopt_print_multilinestring(stream, linebuff, sizeof(linebuff), odesc->example_complex_info, linelen, indent + 4);
	}
	// flush
	fprintf(stream, "%s\n", linebuff);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x408, %rsp            # imm = 0x408
movl %ecx, %r15d
movl %edx, %ebp
movq %rsi, %rbx
movq %rdi, %r14
movq %rsp, %r12
movb $0x0, (%r12)
pushq $0x1
popq %rsi
callq 0x5d1f
leaq 0x17cac(%rip), %rsi     # 0x1dc70
leaq 0x200(%rsp), %r13
movl $0x200, %edx            # imm = 0x200
movq %r13, %rdi
callq 0x30a0
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rdx
xorl %ecx, %ecx
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x5ef8
leaq 0xe7e5(%rip), %rdx      # 0x147db
movq %rbx, %rdi
movq %r12, %rsi
pushq $0x1
popq %rcx
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x5ef8
movq 0x688(%r14), %rdx
testq %rdx, %rdx
je 0x6026
movq %rsp, %rsi
movq %rbx, %rdi
movl %ebp, %ecx
movl %r15d, %r8d
callq 0x62fe
movq 0x680(%r14), %rcx
testq %rcx, %rcx
je 0x6066
leaq 0xd6ab(%rip), %rdx      # 0x136e4
leaq 0x200(%rsp), %r12
movl $0x200, %esi            # imm = 0x200
movq %r12, %rdi
xorl %eax, %eax
callq 0x31d0
movq %rsp, %rsi
movq %rbx, %rdi
movq %r12, %rdx
xorl %ecx, %ecx
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x5ef8
cmpq $0x0, 0x690(%r14)
je 0x6134
leaq 0xd678(%rip), %rdx      # 0x136f3
movq %rsp, %rsi
pushq $0x1
popq %rcx
movq %rbx, %rdi
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x5ef8
cmpq $0x0, 0x8(%r14)
je 0x60e4
leaq 0xd398(%rip), %rdx      # 0x13435
movq %rsp, %r12
movq %rbx, %rdi
movq %r12, %rsi
xorl %ecx, %ecx
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x5ef8
movq 0x8(%r14), %rdx
movq %rbx, %rdi
movq %r12, %rsi
xorl %ecx, %ecx
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x5ef8
leaq 0xf743(%rip), %rdx      # 0x15814
movq %rbx, %rdi
movq %r12, %rsi
xorl %ecx, %ecx
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x5ef8
movq 0x690(%r14), %rdx
leal 0x4(%r15), %r12d
movq %rsp, %r13
movq %rbx, %rdi
movq %r13, %rsi
movl %ebp, %ecx
movl %r12d, %r8d
callq 0x62fe
leaq 0xf708(%rip), %rdx      # 0x15811
pushq $0x1
popq %rcx
movq %rbx, %rdi
movq %r13, %rsi
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x5ef8
movq 0x698(%r14), %rdx
movq %rbx, %rdi
movq %r13, %rsi
movl %ebp, %ecx
movl %r12d, %r8d
callq 0x62fe
cmpq $0x0, 0x6a0(%r14)
je 0x6202
leaq 0xd5bc(%rip), %rdx      # 0x13705
movq %rsp, %rsi
pushq $0x1
popq %rcx
movq %rbx, %rdi
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x5ef8
cmpq $0x0, 0x10(%r14)
je 0x61b2
leaq 0xd2c9(%rip), %rdx      # 0x13434
movq %rsp, %r12
movq %rbx, %rdi
movq %r12, %rsi
xorl %ecx, %ecx
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x5ef8
movq 0x10(%r14), %rdx
movq %rbx, %rdi
movq %r12, %rsi
xorl %ecx, %ecx
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x5ef8
leaq 0xf675(%rip), %rdx      # 0x15814
movq %rbx, %rdi
movq %r12, %rsi
xorl %ecx, %ecx
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x5ef8
movq 0x6a0(%r14), %rdx
leal 0x4(%r15), %r12d
movq %rsp, %r13
movq %rbx, %rdi
movq %r13, %rsi
movl %ebp, %ecx
movl %r12d, %r8d
callq 0x62fe
leaq 0xf63a(%rip), %rdx      # 0x15811
pushq $0x1
popq %rcx
movq %rbx, %rdi
movq %r13, %rsi
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x5ef8
movq 0x6a8(%r14), %rdx
movq %rbx, %rdi
movq %r13, %rsi
movl %ebp, %ecx
movl %r12d, %r8d
callq 0x62fe
leaq 0xeb88(%rip), %rsi      # 0x14d91
movq %rsp, %rdx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x3310
addq $0x408, %rsp            # imm = 0x408
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq