From 58d4874b8afd4ec4e0cc8cc2e091af0c081fa068 Mon Sep 17 00:00:00 2001 From: ruinivist Date: Sun, 14 Jun 2026 13:46:37 +0000 Subject: [PATCH] docs: add ss --- README.md | 2 ++ screenshot.png | Bin 0 -> 15285 bytes 2 files changed, 2 insertions(+) create mode 100644 screenshot.png diff --git a/README.md b/README.md index 5143943..ba4314d 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ A small (ish) shell written in ( \*hopefully ) modern C++. +![screenshot](screenshot.png) + Made while doing the codecrafters' shell implementation challenge -- but let's see I'll add stuff that I find interesting. Given it's at ~1000 LOC the goal is still to keep it as small as possible, as part of that diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..1acfdd7a982f080c46347d41777a13aaf660dce9 GIT binary patch literal 15285 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 Dg!Fo} literal 0 HcmV?d00001