- Split tests/ (libc feature tests) and examples/ (real apps); shared
app.mk in repo root, was examples/example.mk
- libc/io/* split into libc/{conio,env,errno,file,mouse,string,sys,
time,video}/ — clearer module boundaries
- New examples/mdview/: markdown viewer (Phases 1-5 + light nested
lists). Headers (H1-H4), HR, ulist/olist/quote with nesting via
leading spaces, fenced code blocks, inline emphasis (bold/italic/
underscore/code), wrap/unwrap mode with soft wrap (F2), horizontal
pan (← →) with '>' truncation indicator
- libc additions: scroll() in conio (ESTEX SCROLL), strlwr/strupr,
gets() test
- Makefile updates across tests/ for the new shared app.mk path
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
4.0 KiB
MDVIEW Sample Document
This is a sample Markdown file for testing the Sprinter mdview text
viewer. Phase 3 adds inline emphasis: bold, italic and underscore
runs render with distinct background colours.
Section: Inline emphasis
Plain words mixed with bold words, italic words, underscore
words and code words to verify all four styles render with their
own colours.
A single bold stretch, then a single italic stretch, then a single
underscore stretch, then a single code stretch, all on the same line.
A long italic run that spans multiple words and several columns before it closes here and continues plain.
Inline code with punctuation: call printf("%d\n", x) then check the
result; or use argv[0] to grab the program name.
Unclosed emphasis (open **bold left dangling) — should auto-close at the end of the line so the next line starts clean.
Conflict cases: bold with a stray * inside stays bold, and italic
with a stray _ inside stays italic, and code with **bold** inside
stays code.
Section: Lorem ipsum
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Section: Lists
Unordered (dash):
- alpha
- bravo
- charlie
Unordered (asterisk):
- delta
- echo
Unordered (plus):
- foxtrot
- golf
Numbered list (digits + period highlighted):
- first
- second
- third
- tenth — verifies multi-digit numbering
- ninety-ninth
Numbered with parens:
- parenthesised one
- parenthesised two
Nested lists (light v1 — leading spaces enable detection at non-zero col; no hanging indent in wrap continuation yet):
- top level alpha
- nested level 1 bravo
- nested level 1 charlie
- nested level 2 delta
- nested level 2 echo
- nested level 3 foxtrot
- nested level 1 golf
- top level hotel
Mixed nested:
- first top
- nested numeric
- nested numeric
- mixed bullet under numeric
- another bullet
- nested numeric
- second top
Section: Blockquote
Single-line blockquote.
Multi-line blockquote starts here. Each line keeps the > prefix highlighted while the body stays plain text.
Section: Code
Inline code: printf("hello").
Fenced block (lines inside should render with code attribute on the full row, no inline parsing — note the stars and italics below remain literal):
int main(void) {
/* **not bold**, *not italic*, `not nested` */
return 42;
}
After the block, normal bold parsing resumes.
Section: Long line truncation
This line is intentionally long to verify that the viewer truncates at 80 columns instead of wrapping or scrolling horizontally. Anything past the 80th visible column should simply not appear on screen.
Section: Tabs
Indented with tabs:
tab-indent level 1
tab-indent level 2
tab-indent level 3
Section: Blockquote
Markdown blockquotes start with a greater-than sign at column zero. Multiple lines look like this.
Subsection: deeper heading (H3)
The line above is an H3 — it should render in a colour distinct from H1 and H2.
Subsubsection: H4 and below
H4 (and the rarely-seen H5/H6) all share the H4 colour slot.
Section: Filler
The remaining content exists to make the document scroll past one viewport.
Line 50 ........... approx. Line 51 ........... . Line 52 ........... .. Line 53 ........... ... Line 54 ........... .... Line 55 ........... ..... Line 56 ........... ...... Line 57 ........... ....... Line 58 ........... ........ Line 59 ........... ......... Line 60 ........... ..........
End-of-document marker. If you can see this line you can use Home / End to bounce between the start and finish of the file.