// File: /workspace/github_c_makefile_star2_O3/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)
movl $0x1, %esi
callq 0x5ff9
leaq 0x179a7(%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 0x61f6
leaq 0xf508(%rip), %rdx      # 0x15803
movq %rbx, %rdi
movq %r12, %rsi
movl $0x1, %ecx
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x61f6
movq 0x688(%r14), %rdx
testq %rdx, %rdx
je 0x632d
movq %rsp, %rsi
movq %rbx, %rdi
movl %ebp, %ecx
movl %r15d, %r8d
callq 0x6611
movq 0x680(%r14), %rcx
testq %rcx, %rcx
je 0x636d
leaq 0xe392(%rip), %rdx      # 0x146d2
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 0x61f6
cmpq $0x0, 0x690(%r14)
je 0x643f
leaq 0xe35f(%rip), %rdx      # 0x146e1
movq %rsp, %rsi
movq %rbx, %rdi
movl $0x1, %ecx
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x61f6
cmpq $0x0, 0x8(%r14)
je 0x63ed
leaq 0xe07d(%rip), %rdx      # 0x14423
movq %rsp, %r12
movq %rbx, %rdi
movq %r12, %rsi
xorl %ecx, %ecx
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x61f6
movq 0x8(%r14), %rdx
movq %rbx, %rdi
movq %r12, %rsi
xorl %ecx, %ecx
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x61f6
leaq 0x10486(%rip), %rdx     # 0x16860
movq %rbx, %rdi
movq %r12, %rsi
xorl %ecx, %ecx
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x61f6
movq 0x690(%r14), %rdx
leal 0x4(%r15), %r12d
movq %rsp, %r13
movq %rbx, %rdi
movq %r13, %rsi
movl %ebp, %ecx
movl %r12d, %r8d
callq 0x6611
leaq 0x1044b(%rip), %rdx     # 0x1685d
movq %rbx, %rdi
movq %r13, %rsi
movl $0x1, %ecx
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x61f6
movq 0x698(%r14), %rdx
movq %rbx, %rdi
movq %r13, %rsi
movl %ebp, %ecx
movl %r12d, %r8d
callq 0x6611
cmpq $0x0, 0x6a0(%r14)
je 0x6511
leaq 0xe29f(%rip), %rdx      # 0x146f3
movq %rsp, %rsi
movq %rbx, %rdi
movl $0x1, %ecx
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x61f6
cmpq $0x0, 0x10(%r14)
je 0x64bf
leaq 0xdfaa(%rip), %rdx      # 0x14422
movq %rsp, %r12
movq %rbx, %rdi
movq %r12, %rsi
xorl %ecx, %ecx
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x61f6
movq 0x10(%r14), %rdx
movq %rbx, %rdi
movq %r12, %rsi
xorl %ecx, %ecx
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x61f6
leaq 0x103b4(%rip), %rdx     # 0x16860
movq %rbx, %rdi
movq %r12, %rsi
xorl %ecx, %ecx
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x61f6
movq 0x6a0(%r14), %rdx
leal 0x4(%r15), %r12d
movq %rsp, %r13
movq %rbx, %rdi
movq %r13, %rsi
movl %ebp, %ecx
movl %r12d, %r8d
callq 0x6611
leaq 0x10379(%rip), %rdx     # 0x1685d
movq %rbx, %rdi
movq %r13, %rsi
movl $0x1, %ecx
movl %ebp, %r8d
movl %r15d, %r9d
callq 0x61f6
movq 0x6a8(%r14), %rdx
movq %rbx, %rdi
movq %r13, %rsi
movl %ebp, %ecx
movl %r12d, %r8d
callq 0x6611
leaq 0xf8c6(%rip), %rsi      # 0x15dde
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