Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/games/cgram cgram: allow providing an input file instead of ...
details: https://anonhg.NetBSD.org/src/rev/ad5a04a5354b
branches: trunk
changeset: 1020703:ad5a04a5354b
user: wiz <wiz%NetBSD.org@localhost>
date: Thu Apr 22 14:57:36 2021 +0000
description:
cgram: allow providing an input file instead of the random fortune
diffstat:
games/cgram/cgram.6 | 15 +++++++++------
games/cgram/cgram.c | 48 +++++++++++++++++++++++++++++++++++-------------
2 files changed, 44 insertions(+), 19 deletions(-)
diffs (134 lines):
diff -r 2c90a5bbb8fa -r ad5a04a5354b games/cgram/cgram.6
--- a/games/cgram/cgram.6 Thu Apr 22 10:26:24 2021 +0000
+++ b/games/cgram/cgram.6 Thu Apr 22 14:57:36 2021 +0000
@@ -1,4 +1,4 @@
-.\" $NetBSD: cgram.6,v 1.2 2013/08/04 07:55:09 wiz Exp $
+.\" $NetBSD: cgram.6,v 1.3 2021/04/22 14:57:36 wiz Exp $
.\"
.\" Copyright (c) 2004, 2013 The NetBSD Foundation, Inc.
.\" All rights reserved.
@@ -27,21 +27,24 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd August 3, 2013
+.Dd April 22, 2021
.Dt CGRAM 6
.Os
.Sh NAME
.Nm cgram
.Nd solve Sunday-paper cryptograms
.Sh SYNOPSIS
-.Nm
+.Nm Op Ar file
.Sh DESCRIPTION
.Nm
is a curses-based widget for solving Sunday-paper-type cryptograms
based on substitution ciphers.
-A random cleartext is chosen using
-.Xr fortune 6
-and a random substitution key is generated.
+If
+.Ar file
+is given, it is used as cleartext, otherwise a random cleartext is
+chosen using
+.Xr fortune 6 ;
+either way, a random substitution key is generated.
.Pp
The ciphertext is displayed.
Typing a letter changes the key so that the letter under the cursor
diff -r 2c90a5bbb8fa -r ad5a04a5354b games/cgram/cgram.c
--- a/games/cgram/cgram.c Thu Apr 22 10:26:24 2021 +0000
+++ b/games/cgram/cgram.c Thu Apr 22 14:57:36 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: cgram.c,v 1.17 2021/02/26 15:18:40 rillig Exp $ */
+/* $NetBSD: cgram.c,v 1.18 2021/04/22 14:57:36 wiz Exp $ */
/*-
* Copyright (c) 2013, 2021 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: cgram.c,v 1.17 2021/02/26 15:18:40 rillig Exp $");
+__RCSID("$NetBSD: cgram.c,v 1.18 2021/04/22 14:57:36 wiz Exp $");
#endif
#include <assert.h>
@@ -216,13 +216,7 @@
return lines.v[cursor_y].s[cursor_x];
}
-static void
-readquote(void)
-{
- FILE *f = popen(_PATH_FORTUNE, "r");
- if (f == NULL)
- err(1, "%s", _PATH_FORTUNE);
-
+static void getquote(FILE *f) {
struct string line;
string_init(&line);
@@ -249,6 +243,30 @@
extent_y = (int)lines.num;
for (int i = 0; i < extent_y; i++)
extent_x = imax(extent_x, (int)lines.v[i].len);
+}
+
+static void
+readfile(const char *name)
+{
+ FILE *f = fopen(name, "r");
+ if (f == NULL)
+ err(1, "%s", name);
+
+ getquote(f);
+
+ if (fclose(f) != 0)
+ exit(1);
+}
+
+
+static void
+readquote(void)
+{
+ FILE *f = popen(_PATH_FORTUNE, "r");
+ if (f == NULL)
+ err(1, "%s", _PATH_FORTUNE);
+
+ getquote(f);
if (pclose(f) != 0)
exit(1); /* error message must come from child process */
@@ -535,12 +553,16 @@
}
static void
-init(void)
+init(const char *filename)
{
stringarray_init(&lines);
stringarray_init(&sollines);
srandom((unsigned int)time(NULL));
- readquote();
+ if (filename) {
+ readfile(filename);
+ } else {
+ readquote();
+ }
encode();
initscr();
@@ -573,9 +595,9 @@
////////////////////////////////////////////////////////////
int
-main(void)
+main(int argc, char *argv[])
{
- init();
+ init(argc > 1 ? argv[1] : NULL);
loop();
clean_up();
}
Home |
Main Index |
Thread Index |
Old Index