git: cgram(6): Sync the rewritten version from NetBSD
Aaron LI
aly at crater.dragonflybsd.org
Mon Feb 22 06:34:03 PST 2021
commit 564d76995a9b0d872beace4bedee44a79e102dce
Author: Aaron LI <aly at aaronly.me>
Date: Mon Feb 22 21:51:58 2021 +0800
cgram(6): Sync the rewritten version from NetBSD
Fixes:
* Do not consider the puzzle solved if all letters in the visible area
are substituted correctly. To be properly solved, the whole puzzle
must be solved, even those parts that are currently off-screen.
* Never place the cursor at the very right edge of the screen since that
does not work well with some terminals. The maximum valid x
coordinate is COLS - 1.
* Add horizontal scrolling. Make all coordinate handling symmetric in
regard to the horizontal and vertical axes. Previously, lines longer
than 80 characters could not be seen on the screen.
* Fix undefined behavior when pressing function keys, which was
resulting parts of the screen being cleaned.
Improvements:
* Remove the arbitrary limit of 128 characters per line. Even if
fortune(6) may never generate such long lines, the code is easy
enough to adapt to other sources.
* Properly clean up the allocated memory. Previously, only the string
arrays were freed but not the strings themselves.
* Allow navigation with page up/down keys.
* Consistently use char for characters, avoiding converting back and
forth between char, unsigned char and int.
Summary of changes:
games/cgram/cgram.c | 525 +++++++++++++++++++++++++++++++++-------------------
1 file changed, 336 insertions(+), 189 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/564d76995a9b0d872beace4bedee44a79e102dce
--
DragonFly BSD source repository
More information about the Commits
mailing list