// File: /workspace/github_cpp_makefile_star2_O2/jovermann[P]streplace/src/streplace.cpp
// Function: Streplace::printPreview(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, unsigned long)
void printPreview(const std::string& s, const std::string& filename, size_t numMatches)
    {
        std::cout << escapeSequences.bold << filename << escapeSequences.normal << " (" << escapeSequences.bold << numMatches << escapeSequences.normal << " match" + ut1::pluralS(numMatches, "es") + "):\n";

        if (context == -1)
        {
            // Print whole file.
            std::cout << s;
        }
        else
        {
            // Print only changed lines plus context.
            std::vector<std::string> lines = ut1::splitLines(s);

            // Mark all lines which contain the escape sequences for matches including context lines.
            std::vector<bool> marked(lines.size());
            for (ssize_t line = 0; line < ssize_t(lines.size()); line++)
            {
                if (ut1::contains(lines[line], escapeSequences.bold) || ut1::contains(lines[line], escapeSequences.normal))
                {
                    for (ssize_t i = line - context; i <= ssize_t(line + context); i++)
                    {
                        if ((i >= 0) && (i < ssize_t(marked.size())))
                        {
                            marked[i] = true;
                        }
                    }
                }
            }

            // Print all marked lines.
            for (size_t line = 0; line < lines.size(); line++)
            {
                if ((!previewHideSep) && (marked[line] && ((line == 0) || (!marked[line - 1]))))
                {
                    std::cout << escapeSequences.thin << "--" << line + 1 << "--" << escapeSequences.normal << "\n";
                }
                if (marked[line])
                {
                    std::cout << lines[line] << "\n";
                }
            }
        }
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
movq %rcx, %r13
movq %rdx, %r14
movq %rsi, 0x10(%rsp)
movq %rdi, %rbx
leaq 0xb8(%rdi), %r15
movq 0x110c3(%rip), %rdi     # 0x2afb0
movq %r15, %rsi
callq 0x53c0
movq %rax, %rdi
movq %r14, %rsi
callq 0x53c0
leaq 0xf8(%rbx), %r14
movq %rax, %rdi
movq %r14, %rsi
callq 0x53c0
leaq 0x1289(%rip), %rsi      # 0x1b1a2
movq %rax, %rdi
callq 0x5400
movq %rax, %rdi
movq %r15, %rsi
callq 0x53c0
movq %rax, %rdi
movq %r13, %rsi
callq 0x52e0
movq %rax, %rdi
movq %r14, 0x38(%rsp)
movq %r14, %rsi
callq 0x53c0
movq %rax, %rbp
leaq 0x2b77(%rip), %rsi      # 0x1cac8
leaq 0xa8(%rsp), %r12
leaq 0xf(%rsp), %rdx
movq %r12, %rdi
callq 0x760a
leaq 0x98(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
cmpq $0x1, %r13
leaq 0x88(%rsp), %rax
cmoveq %rax, %r12
leaq 0x68(%rsp), %rdi
movq %r12, %rsi
callq 0x55d0
leaq 0x2b23(%rip), %rsi      # 0x1cac1
leaq 0x18(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x7717
leaq 0x2b17(%rip), %rdx      # 0x1cacb
leaq 0x40(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x76f8
leaq 0x40(%rsp), %rsi
movq %rbp, %rdi
callq 0x53c0
leaq 0x40(%rsp), %rdi
callq 0x51f0
leaq 0x18(%rsp), %rdi
callq 0x51f0
leaq 0x68(%rsp), %rdi
callq 0x51f0
leaq 0x88(%rsp), %rdi
callq 0x51f0
leaq 0xa8(%rsp), %rdi
callq 0x51f0
cmpl $-0x1, 0xc(%rbx)
je 0x1a1e5
leaq 0x18(%rsp), %r12
movq %r12, %rdi
movq 0x10(%rsp), %rsi
xorl %edx, %edx
callq 0x9326
movq 0x8(%r12), %rsi
subq (%r12), %rsi
sarq $0x5, %rsi
leaq 0x40(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x1a286
xorl %r14d, %r14d
leaq 0x40(%rsp), %r12
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rax
movq %rax, %rcx
subq %rdi, %rcx
sarq $0x5, %rcx
cmpq %rcx, %r14
jge 0x1a0de
movq %r14, %r13
shlq $0x5, %r13
addq %r13, %rdi
movq %r15, %rsi
callq 0x8c98
testb %al, %al
jne 0x1a08f
addq 0x18(%rsp), %r13
movq %r13, %rdi
movq 0x38(%rsp), %rsi
callq 0x8c98
testb %al, %al
je 0x1a0d6
movslq 0xc(%rbx), %rax
movq %r14, %r13
subq %rax, %r13
movslq %eax, %rcx
addq %r14, %rcx
cmpq %rcx, %r13
jg 0x1a0d6
testq %r13, %r13
js 0x1a0d1
movq 0x50(%rsp), %rcx
movl 0x58(%rsp), %edx
subq 0x40(%rsp), %rcx
leaq (%rdx,%rcx,8), %rcx
cmpq %rcx, %r13
jge 0x1a0d1
movq %r12, %rdi
movq %r13, %rsi
callq 0x1a29a
orq %rdx, (%rax)
movl 0xc(%rbx), %eax
incq %r13
jmp 0x1a099
incq %r14
jmp 0x1a04a
leaq 0xd8(%rbx), %rcx
movq %rcx, 0x10(%rsp)
xorl %r14d, %r14d
leaq 0x40(%rsp), %r12
movq 0x10eb7(%rip), %r13     # 0x2afb0
leaq 0xfa9(%rip), %rbp       # 0x1b0a9
xorl %r15d, %r15d
subq %rdi, %rax
sarq $0x5, %rax
cmpq %rax, %r15
jae 0x1a1cf
cmpb $0x0, 0xa(%rbx)
jne 0x1a18e
movq %r12, %rdi
movq %r15, %rsi
callq 0x1a29a
testq %rdx, (%rax)
je 0x1a18e
testq %r15, %r15
je 0x1a13f
leaq -0x1(%r15), %rsi
movq %r12, %rdi
callq 0x1a29a
testq %rdx, (%rax)
jne 0x1a18e
movq %r13, %rdi
movq 0x10(%rsp), %rsi
callq 0x53c0
movq %rax, %rdi
leaq 0x109d(%rip), %rsi      # 0x1b1f3
callq 0x5400
leaq 0x1(%r15), %rsi
movq %rax, %rdi
callq 0x52e0
movq %rax, %rdi
leaq 0x1082(%rip), %rsi      # 0x1b1f3
callq 0x5400
movq %rax, %rdi
movq 0x38(%rsp), %rsi
callq 0x53c0
movq %rax, %rdi
movq %rbp, %rsi
callq 0x5400
movq %r12, %rdi
movq %r15, %rsi
callq 0x1a29a
testq %rdx, (%rax)
je 0x1a1b9
movq 0x18(%rsp), %rsi
addq %r14, %rsi
movq %r13, %rdi
callq 0x53c0
movq %rax, %rdi
movq %rbp, %rsi
callq 0x5400
incq %r15
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rax
addq $0x20, %r14
jmp 0x1a103
leaq 0x40(%rsp), %rdi
callq 0x1a2b8
leaq 0x18(%rsp), %rdi
callq 0x7646
jmp 0x1a1f6
movq 0x10dc4(%rip), %rdi     # 0x2afb0
movq 0x10(%rsp), %rsi
callq 0x53c0
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0x1a273
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x51f0
jmp 0x1a21f
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x51f0
jmp 0x1a22e
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x51f0
jmp 0x1a23d
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x51f0
leaq 0xa8(%rsp), %rdi
callq 0x51f0
jmp 0x1a27d
movq %rax, %rbx
jmp 0x1a27d
jmp 0x1a266
jmp 0x1a266
jmp 0x1a266
jmp 0x1a266
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x1a2b8
leaq 0x18(%rsp), %rdi
callq 0x7646
movq %rbx, %rdi
callq 0x5730
nop