Due to a manifest mix-up (which had some html files marked as markdown
and as display_via_github as true) the respective entries' index.html
linked to html files on GitHub which do not render right (and is the
wrong place in any case).
This means that the index.html files and the .entry.json files were
updated. This in particular goes for:
2024/burton
2024/ferguson1
2024/howe
Thanks to @SirWumpus for reporting this!
To build:
make all
Bugs and (Mis)features:
The current status of this entry is:
STATUS: known bug - please help us fix
For more detailed information see 2024/howe in bugs.html.
Try:
./try.sh
Judges' remarks:
This is not your grandmother's 👵 emacs(1) 🤓, nor is it as limited as ed(1), eh (🇨🇦)?
The source (and of this program) has fun with an UTF-8 conforming accent, in a manor of speaking 😉.
TL;DR - to exit type Q or press CTRL+C.
As mentioned in the COMMANDS section of prog.html, try these commands:
| Key cmd | Action |
|----------|------------------------------------------------------------|
| h j k l | Left, down, up, right cursor movement |
| H J K L | Page top, page down, page up, page bottom |
| b w | Word left, word right |
| | | Goto column (count) of physical line |
| /ERE | Find first occurrence of ERE pattern after the cursor |
| n | Find next occurrence of ERE |
| G | Goto line (count) number; 1G top of file, G bottom |
| \ | Toggle text selection |
| d motion | Delete text selection or region given by motion |
| y motion | Yank (copy) text selection or region given by motion |
| P | Paste last deleted or yanked text region before the cursor |
| i | Insert text mode before cursor, ESC or CTRL+C ends insert |
| u | Toggle undo of last edit |
| x | Delete character after the cursor, i.e., dl |
| W | Write buffer to file |
| Q | Quit |
| CTRL+C | Quit |
NOTE: Any other key will redraw the screen.
Author's remarks:
Building
Simply type make to build. There are two macros that can be customised:
-
BUFto set the buffer size; default 128KB. -
MODEto set the file creation mode; default 0600.
What's Interesting
-
This is an update with bug fixes of a previous IOCCC winner, with permission of the author.
-
This entry requires Curses. Some Linux might require NCurses built with wide character support,
-lncursesw. -
The source is UTF-8. When are
éëêènot same ase? -
The documentation is found in prog.html.
-
progcan view its own source. -
A regression test suite is available on demand. The test suite requires
tic(1)to build the specialised test terminal entry. -
Original unobfuscated more fully featured source available (search/replace, pipe-filter selection, markers, insert file, edit buffer grows, literal character input, multi undo/redo). See full version.
-
The
iocccsize(1)tool only counts bytes, not characters, i.e,. UTF-8 multibyte characters such that some characters cost 2, 3, or 4 bytes, thus penalising UTF-8 entries.UTF-8 demands equal rights and respect as real characters! The dominance of slim ASCII must end! We are the UTF-8 People's Front for Freedom, Equality, and Brotherhood (oh that's been used already) - We are the UTF-8 Countless Tourist Defence Farce for One Voice, One World, One Character Set.
Furthermore:
-
Refactor page framing to address original issue of scrolling and paging up/down when the file contains long lines.
-
CTRL+C will exit insert mode as with
vi(1); CTRL+C will also quit, unlikevi(1), for those who cannot findQ. -
Add extended regular expression forward search with buffer wrap-around.
-
Add text selection with delete (cut), yank (copy), and put (paste).
-
Add delete (cut), yank (copy) with motion.
-
Replace start/end of line with goto-column command.
-
Add counts for motion commands, delete, and put.
-
Replace top/end of file with goto-line command.
-
Fix word left to behave like
vi(1). -
Add basic UTF-8 support.